boltdocs 3.3.3 → 3.3.5

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 (33) hide show
  1. package/dist/{build-Dh61OnDW.cjs → build-B672n0hL.cjs} +1 -1
  2. package/dist/{build-WmZDi-TG.mjs → build-BVoMHMhw.mjs} +1 -1
  3. package/dist/client/index.cjs +55 -24
  4. package/dist/client/index.d.cts +1 -1
  5. package/dist/client/index.d.ts +1 -1
  6. package/dist/client/index.js +55 -24
  7. package/dist/client/primitives.d.cts +1 -1
  8. package/dist/client/primitives.d.ts +1 -1
  9. package/dist/{dev-BObyQM9q.mjs → dev-B49V6O6p.mjs} +1 -1
  10. package/dist/{dev-wKVrEH6o.cjs → dev-DbuhNcF5.cjs} +1 -1
  11. package/dist/{index-Cg3TmXIZ.d.ts → index-B3o307nd.d.ts} +6 -2
  12. package/dist/{index-CSiMUBhC.d.cts → index-Bg-JtZeK.d.cts} +6 -2
  13. package/dist/node/cli-entry.cjs +1 -1
  14. package/dist/node/cli-entry.mjs +1 -1
  15. package/dist/node/index.cjs +1 -1
  16. package/dist/node/index.mjs +1 -1
  17. package/dist/{node-B4GvEOqF.cjs → node-BljvHMpS.cjs} +2 -2
  18. package/dist/{node-DwgtnlGU.mjs → node-CWxGw4H4.mjs} +2 -2
  19. package/dist/{package-xYC9zF1o.cjs → package-CNqjEYE1.cjs} +1 -1
  20. package/dist/{package-DWYDpDWO.mjs → package-sdcKhDhe.mjs} +1 -1
  21. package/dist/{plugin-VpWRKnmN.mjs → plugin-BPcm1cU0.mjs} +2 -2
  22. package/dist/plugin-WUhxnpko.cjs +69 -0
  23. package/dist/{plugin-context-BxF88sW4.cjs → plugin-context-CscLcXjH.cjs} +1 -1
  24. package/dist/{plugin-context-BKK-nfOd.mjs → plugin-context-DuSg-Hax.mjs} +1 -1
  25. package/dist/{plugin-lifecycle-mhRaVBY8.cjs → plugin-lifecycle-BywrEoWK.cjs} +1 -1
  26. package/dist/{search-dialog-MmwxFMmE.js → search-dialog-B9mdxsUC.js} +1 -1
  27. package/dist/{search-dialog-D3jtaw6w.cjs → search-dialog-Bp_ouN1c.cjs} +36 -11
  28. package/dist/{search-dialog-DmirOMPg.cjs → search-dialog-DCtm2dyR.cjs} +1 -1
  29. package/dist/{search-dialog-DRiXejws.js → search-dialog-an2BNMj6.js} +36 -11
  30. package/dist/{virtual-modules-XBiJoTsp.mjs → virtual-modules-B2X4Ht2r.mjs} +1 -1
  31. package/dist/{virtual-modules-hndVivLR.cjs → virtual-modules-DPsdHKcu.cjs} +1 -1
  32. package/package.json +4 -4
  33. package/dist/plugin-CxlOHnaa.cjs +0 -69
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./node-B4GvEOqF.cjs`),n=require(`./node/cache.cjs`),r=require(`./update-check-DFQZyoSU.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);let o=require(`@bdocs/dui`),s=require(`vite`);const c=new Set([`Client build`,`Server build`,`Render pages`,`Static loader data`,`Build metrics`]);function l(e,t){let n=i.default.join(e,`.boltdocs`,`benchmarks`);a.default.existsSync(n)||a.default.mkdirSync(n,{recursive:!0});let r=i.default.join(n,`phases-report-${new Date().toISOString().replace(/[:.]/g,`-`).slice(0,19)}.json`),o={timestamp:new Date().toISOString(),root:e,...t,error:t.error?.message||t.error?.toString()};return a.default.writeFileSync(r,JSON.stringify(o,null,2)),r}async function u(e=process.cwd(),i={}){process.env.NODE_ENV=`production`,r.t();let a=process.env.BOLTDOCS_BENCHMARK_PHASES===`true`;try{let i=await t.c().run({root:e,timing:{}});if(a&&console.log(`[boltdocs] ${JSON.stringify({name:`Build pipeline`,success:i.success,steps:i.stepResults.map(e=>({name:e.name,duration:Math.round(e.duration),success:e.success,...e.details?{details:e.details}:{}}))})}`),!i.success){if((0,o.error)(`Build failed at step "${i.failedStep}":`,i.error),a){let t=l(e,i);console.log(`[benchmark] failure report written to ${t}`)}await n.flushCache(),process.exit(1)}if(a){let t=l(e,i);console.log(`[benchmark] phase report written to ${t}`),await n.flushCache(),process.exit(0)}let s=i.stepResults.filter(e=>!c.has(e.name)),u=i.stepResults.find(e=>e.name===`Build metrics`)?.metrics,d=e=>(e/1024).toFixed(0),f=e=>(e/1024/1024).toFixed(1),p=e=>e>1024*1024?`${f(e)} MB`:`${d(e)} kB`;console.log(r.a({totalMs:i.timing.total,steps:s.map(e=>({name:e.name,success:e.success,duration:e.duration,details:e.details})),pages:u?.totalPages,jsSize:u?p(u.jsSize):void 0,cssSize:u?p(u.cssSize):void 0,outDir:`dist/`})),await n.flushCache(),process.exit(0)}catch(e){(0,o.error)(`Build failed:`,e),await n.flushCache(),process.exit(1)}}async function d(e=process.cwd(),n={}){try{let i=await t.n(e,`production`,void 0,{skipTypes:!0,skipLinkTree:!0});i.logLevel=`warn`,i.clearScreen=!1,n.port!==void 0&&(i.preview=i.preview||{},i.preview.port=Number(n.port)),n.host!==void 0&&(i.preview=i.preview||{},i.preview.host=n.host);let a=performance.now(),o=(await(0,s.preview)(i)).resolvedUrls;console.log(r.c(o?.local?.[0]??`http://localhost:${n.port??4173}`,o?.network?.[0]??null,{readyIn:performance.now()-a}))}catch(e){(0,o.error)(`Failed to start preview server:`,e),process.exit(1)}}exports.buildAction=u,exports.previewAction=d;
6
+ const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./node-BljvHMpS.cjs`),n=require(`./node/cache.cjs`),r=require(`./update-check-DFQZyoSU.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);let o=require(`@bdocs/dui`),s=require(`vite`);const c=new Set([`Client build`,`Server build`,`Render pages`,`Static loader data`,`Build metrics`]);function l(e,t){let n=i.default.join(e,`.boltdocs`,`benchmarks`);a.default.existsSync(n)||a.default.mkdirSync(n,{recursive:!0});let r=i.default.join(n,`phases-report-${new Date().toISOString().replace(/[:.]/g,`-`).slice(0,19)}.json`),o={timestamp:new Date().toISOString(),root:e,...t,error:t.error?.message||t.error?.toString()};return a.default.writeFileSync(r,JSON.stringify(o,null,2)),r}async function u(e=process.cwd(),i={}){process.env.NODE_ENV=`production`,r.t();let a=process.env.BOLTDOCS_BENCHMARK_PHASES===`true`;try{let i=await t.c().run({root:e,timing:{}});if(a&&console.log(`[boltdocs] ${JSON.stringify({name:`Build pipeline`,success:i.success,steps:i.stepResults.map(e=>({name:e.name,duration:Math.round(e.duration),success:e.success,...e.details?{details:e.details}:{}}))})}`),!i.success){if((0,o.error)(`Build failed at step "${i.failedStep}":`,i.error),a){let t=l(e,i);console.log(`[benchmark] failure report written to ${t}`)}await n.flushCache(),process.exit(1)}if(a){let t=l(e,i);console.log(`[benchmark] phase report written to ${t}`),await n.flushCache(),process.exit(0)}let s=i.stepResults.filter(e=>!c.has(e.name)),u=i.stepResults.find(e=>e.name===`Build metrics`)?.metrics,d=e=>(e/1024).toFixed(0),f=e=>(e/1024/1024).toFixed(1),p=e=>e>1024*1024?`${f(e)} MB`:`${d(e)} kB`;console.log(r.a({totalMs:i.timing.total,steps:s.map(e=>({name:e.name,success:e.success,duration:e.duration,details:e.details})),pages:u?.totalPages,jsSize:u?p(u.jsSize):void 0,cssSize:u?p(u.cssSize):void 0,outDir:`dist/`})),await n.flushCache(),process.exit(0)}catch(e){(0,o.error)(`Build failed:`,e),await n.flushCache(),process.exit(1)}}async function d(e=process.cwd(),n={}){try{let i=await t.n(e,`production`,void 0,{skipTypes:!0,skipLinkTree:!0});i.logLevel=`warn`,i.clearScreen=!1,n.port!==void 0&&(i.preview=i.preview||{},i.preview.port=Number(n.port)),n.host!==void 0&&(i.preview=i.preview||{},i.preview.host=n.host);let a=performance.now(),o=(await(0,s.preview)(i)).resolvedUrls;console.log(r.c(o?.local?.[0]??`http://localhost:${n.port??4173}`,o?.network?.[0]??null,{readyIn:performance.now()-a}))}catch(e){(0,o.error)(`Failed to start preview server:`,e),process.exit(1)}}exports.buildAction=u,exports.previewAction=d;
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{l as e,n as t}from"./node-DwgtnlGU.mjs";import{flushCache as n}from"./node/cache.mjs";import{a as r,c as i,t as a}from"./update-check-BXD1atVv.mjs";import o from"node:path";import s from"node:fs";import{error as c}from"@bdocs/dui";import{preview as l}from"vite";const u=new Set([`Client build`,`Server build`,`Render pages`,`Static loader data`,`Build metrics`]);function d(e,t){let n=o.join(e,`.boltdocs`,`benchmarks`);s.existsSync(n)||s.mkdirSync(n,{recursive:!0});let r=o.join(n,`phases-report-${new Date().toISOString().replace(/[:.]/g,`-`).slice(0,19)}.json`),i={timestamp:new Date().toISOString(),root:e,...t,error:t.error?.message||t.error?.toString()};return s.writeFileSync(r,JSON.stringify(i,null,2)),r}async function f(t=process.cwd(),i={}){process.env.NODE_ENV=`production`,a();let o=process.env.BOLTDOCS_BENCHMARK_PHASES===`true`;try{let i=await e().run({root:t,timing:{}});if(o&&console.log(`[boltdocs] ${JSON.stringify({name:`Build pipeline`,success:i.success,steps:i.stepResults.map(e=>({name:e.name,duration:Math.round(e.duration),success:e.success,...e.details?{details:e.details}:{}}))})}`),!i.success){if(c(`Build failed at step "${i.failedStep}":`,i.error),o){let e=d(t,i);console.log(`[benchmark] failure report written to ${e}`)}await n(),process.exit(1)}if(o){let e=d(t,i);console.log(`[benchmark] phase report written to ${e}`),await n(),process.exit(0)}let a=i.stepResults.filter(e=>!u.has(e.name)),s=i.stepResults.find(e=>e.name===`Build metrics`)?.metrics,l=e=>(e/1024).toFixed(0),f=e=>(e/1024/1024).toFixed(1),p=e=>e>1024*1024?`${f(e)} MB`:`${l(e)} kB`;console.log(r({totalMs:i.timing.total,steps:a.map(e=>({name:e.name,success:e.success,duration:e.duration,details:e.details})),pages:s?.totalPages,jsSize:s?p(s.jsSize):void 0,cssSize:s?p(s.cssSize):void 0,outDir:`dist/`})),await n(),process.exit(0)}catch(e){c(`Build failed:`,e),await n(),process.exit(1)}}async function p(e=process.cwd(),n={}){try{let r=await t(e,`production`,void 0,{skipTypes:!0,skipLinkTree:!0});r.logLevel=`warn`,r.clearScreen=!1,n.port!==void 0&&(r.preview=r.preview||{},r.preview.port=Number(n.port)),n.host!==void 0&&(r.preview=r.preview||{},r.preview.host=n.host);let a=performance.now(),o=(await l(r)).resolvedUrls;console.log(i(o?.local?.[0]??`http://localhost:${n.port??4173}`,o?.network?.[0]??null,{readyIn:performance.now()-a}))}catch(e){c(`Failed to start preview server:`,e),process.exit(1)}}export{f as buildAction,p as previewAction};
6
+ import{l as e,n as t}from"./node-CWxGw4H4.mjs";import{flushCache as n}from"./node/cache.mjs";import{a as r,c as i,t as a}from"./update-check-BXD1atVv.mjs";import o from"node:path";import s from"node:fs";import{error as c}from"@bdocs/dui";import{preview as l}from"vite";const u=new Set([`Client build`,`Server build`,`Render pages`,`Static loader data`,`Build metrics`]);function d(e,t){let n=o.join(e,`.boltdocs`,`benchmarks`);s.existsSync(n)||s.mkdirSync(n,{recursive:!0});let r=o.join(n,`phases-report-${new Date().toISOString().replace(/[:.]/g,`-`).slice(0,19)}.json`),i={timestamp:new Date().toISOString(),root:e,...t,error:t.error?.message||t.error?.toString()};return s.writeFileSync(r,JSON.stringify(i,null,2)),r}async function f(t=process.cwd(),i={}){process.env.NODE_ENV=`production`,a();let o=process.env.BOLTDOCS_BENCHMARK_PHASES===`true`;try{let i=await e().run({root:t,timing:{}});if(o&&console.log(`[boltdocs] ${JSON.stringify({name:`Build pipeline`,success:i.success,steps:i.stepResults.map(e=>({name:e.name,duration:Math.round(e.duration),success:e.success,...e.details?{details:e.details}:{}}))})}`),!i.success){if(c(`Build failed at step "${i.failedStep}":`,i.error),o){let e=d(t,i);console.log(`[benchmark] failure report written to ${e}`)}await n(),process.exit(1)}if(o){let e=d(t,i);console.log(`[benchmark] phase report written to ${e}`),await n(),process.exit(0)}let a=i.stepResults.filter(e=>!u.has(e.name)),s=i.stepResults.find(e=>e.name===`Build metrics`)?.metrics,l=e=>(e/1024).toFixed(0),f=e=>(e/1024/1024).toFixed(1),p=e=>e>1024*1024?`${f(e)} MB`:`${l(e)} kB`;console.log(r({totalMs:i.timing.total,steps:a.map(e=>({name:e.name,success:e.success,duration:e.duration,details:e.details})),pages:s?.totalPages,jsSize:s?p(s.jsSize):void 0,cssSize:s?p(s.cssSize):void 0,outDir:`dist/`})),await n(),process.exit(0)}catch(e){c(`Build failed:`,e),await n(),process.exit(1)}}async function p(e=process.cwd(),n={}){try{let r=await t(e,`production`,void 0,{skipTypes:!0,skipLinkTree:!0});r.logLevel=`warn`,r.clearScreen=!1,n.port!==void 0&&(r.preview=r.preview||{},r.preview.port=Number(n.port)),n.host!==void 0&&(r.preview=r.preview||{},r.preview.host=n.host);let a=performance.now(),o=(await l(r)).resolvedUrls;console.log(i(o?.local?.[0]??`http://localhost:${n.port??4173}`,o?.network?.[0]??null,{readyIn:performance.now()-a}))}catch(e){c(`Failed to start preview server:`,e),process.exit(1)}}export{f as buildAction,p as previewAction};
@@ -9,7 +9,7 @@ const require_link = require('../link-vZjmD-es.cjs');
9
9
  const require_image = require('../image-Hnaa2bJd.cjs');
10
10
  const require_mdx = require('../mdx-D0Absdq5.cjs');
11
11
  const require_docs_layout = require('../docs-layout-vzfXed1Q.cjs');
12
- const require_search_dialog = require('../search-dialog-D3jtaw6w.cjs');
12
+ const require_search_dialog = require('../search-dialog-Bp_ouN1c.cjs');
13
13
  const require_search_dialog$1 = require('../search-dialog-x_qHU8ty.cjs');
14
14
  let react = require("react");
15
15
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -480,6 +480,27 @@ function I18nUpdater({ config }) {
480
480
  dir: direction
481
481
  } });
482
482
  }
483
+ /**
484
+ * Removes the per-page critical-CSS inline blocks once the app is hydrated.
485
+ *
486
+ * The critters pass inlines one `<style data-zig-critters>` per rendered page.
487
+ * On a full page load the block belongs to the current page and is redundant:
488
+ * the external stylesheet ships in the initial HTML and is loaded before
489
+ * hydration. After a client-side navigation, however, the block left by the
490
+ * *first* page stays in `<head>` and — emitted after the external stylesheet
491
+ * — wins the cascade for every utility it contains, breaking pages reached
492
+ * via SPA that rely on utilities the first page never used (e.g. `xl:flex`
493
+ * hiding the OnThisPage rail for the rest of the session).
494
+ */
495
+ function CrittersStyleCleanup() {
496
+ (0, react.useEffect)(() => {
497
+ if (typeof document === "undefined") return;
498
+ document.querySelectorAll("style[data-zig-critters]").forEach((el) => {
499
+ el.remove();
500
+ });
501
+ }, []);
502
+ return null;
503
+ }
483
504
  function StoreSync({ config, routeMap }) {
484
505
  const location = require_router.useLocation();
485
506
  const { currentLocale, currentVersion, setLocale, setVersion } = require_link.useBoltdocsContext();
@@ -548,26 +569,30 @@ function BoltdocsShell({ config, routes, components = {}, collectionsData, conte
548
569
  value: config,
549
570
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(CollectionsProvider, {
550
571
  collectionsData: collectionsData || {},
551
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ScrollHandler, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_link.BoltdocsProvider, {
552
- initialLocale: initialData.initLocale,
553
- initialVersion: initialData.initVersion,
554
- children: [
555
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StoreSync, {
556
- config,
557
- routeMap
558
- }),
559
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(I18nUpdater, { config }),
560
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Head, {
561
- siteTitle: config.theme?.title,
562
- siteDescription: config.theme?.description,
563
- routes
564
- }),
565
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.InternalErrorBoundary, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
566
- className: require_link.cn("boltdocs-shell-content h-screen overflow-hidden", contentClassName),
567
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_router.Outlet, {})
568
- }) })
569
- ]
570
- })]
572
+ children: [
573
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ScrollHandler, {}),
574
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CrittersStyleCleanup, {}),
575
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_link.BoltdocsProvider, {
576
+ initialLocale: initialData.initLocale,
577
+ initialVersion: initialData.initVersion,
578
+ children: [
579
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StoreSync, {
580
+ config,
581
+ routeMap
582
+ }),
583
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(I18nUpdater, { config }),
584
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Head, {
585
+ siteTitle: config.theme?.title,
586
+ siteDescription: config.theme?.description,
587
+ routes
588
+ }),
589
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.InternalErrorBoundary, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
590
+ className: require_link.cn("boltdocs-shell-content h-screen overflow-hidden", contentClassName),
591
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_router.Outlet, {})
592
+ }) })
593
+ ]
594
+ })
595
+ ]
571
596
  })
572
597
  })
573
598
  }) }) })
@@ -1694,7 +1719,7 @@ function I18nSelector({ className }) {
1694
1719
 
1695
1720
  //#endregion
1696
1721
  //#region src/client/components/ui-base/navbar.tsx
1697
- const SearchDialog$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("../search-dialog-DmirOMPg.cjs")).then((m) => ({ default: m.SearchDialog })));
1722
+ const SearchDialog$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("../search-dialog-DCtm2dyR.cjs")).then((m) => ({ default: m.SearchDialog })));
1698
1723
  function Navbar({ className }) {
1699
1724
  const { links, title, logo, logoProps, github, social, config } = useNavbar();
1700
1725
  const { routes, allRoutes, currentRoute, isCollectionPage, currentVersion, currentLocale } = require_search_dialog.useRoutes();
@@ -2686,8 +2711,14 @@ function buildExternalRouteRecord(options) {
2686
2711
  };
2687
2712
  const ExternalLayout = externalLayout;
2688
2713
  const ExternalComponent = component;
2689
- if (ExternalComponent) record.element = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalPageWrapper, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalLayout, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalComponent, {}) }) });
2690
- else if (mdxLoader) record.lazy = async () => {
2714
+ if (ExternalComponent) {
2715
+ const LazyExternal = typeof ExternalComponent === "function" && !ExternalComponent.prototype?.render ? (0, react.lazy)(ExternalComponent) : null;
2716
+ if (LazyExternal) record.element = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalPageWrapper, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalLayout, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Suspense, {
2717
+ fallback: null,
2718
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LazyExternal, {})
2719
+ }) }) });
2720
+ else record.element = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalPageWrapper, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalLayout, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalComponent, {}) }) });
2721
+ } else if (mdxLoader) record.lazy = async () => {
2691
2722
  const module = await resolveModuleLoader(mdxLoader);
2692
2723
  return { Component: function ExternalMdxRoute() {
2693
2724
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalPageWrapper, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalLayout, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExternalMdxContent, {
@@ -1,4 +1,4 @@
1
1
 
2
2
  import { $ as LazyRouteResult, A as matchRouteBranch, B as useRouteData, C as stripSiteProtocol, D as normalizeBasename, E as hasBasename, F as useLoaderData, G as MatchesContext, H as LocationProvider, I as useLocation, J as PrefetchContext, K as NavigateContext, L as useMatches, M as resolveRouteBranch, N as Outlet, O as stripBasename, P as OutletContext, Q as CreateRoutesResult, R as useNavigate, S as splitUrlReference, T as addBasename, U as LocationProviderProps, V as LocationContext, W as LocationState, X as RouteDataContext, Y as PrefetchFunction, Z as defaultNavigate, _ as isConfiguredVersion, a as UrlRouteHint, at as RouterOptions, b as parseUrlReference, c as buildUrl, d as getConfiguredVersions, dt as BoltdocsRoutePath, et as LoaderFunction, f as getVersionPrefixSegments, ft as BoltdocsRoutePathWithFallback, g as isConfiguredLocale, h as hasUrlBase, ht as BoltdocsVersion, i as UrlContractConfig, it as RouteRendererProps, j as matchRouteBranchWithParams, k as RouteRenderer, l as classifyUrlPath, lt as BoltdocsLocale, m as hasUriScheme, mt as BoltdocsTypes, n as ParsedUrl, nt as RouteMatch, o as UrlRouteKind, p as getVersionSegments, q as NavigateFunction, r as ResolveUrlOptions, rt as RouteRecord, s as addUrlBase, st as BoltdocsConfig, t as BuildUrlOptions, tt as LoaderFunctionArgs, u as getConfiguredLocales, v as normalizeUrlBase, w as stripUrlBase, x as resolveUrlReference, y as normalizeUrlPath, z as usePrefetch } from "../index-CgWkOCCn.cjs";
3
- import { A as cn, At as useUI, B as NotFound, Bt as CollectionsData, C as createArticleStructuredData, Ct as usePageNav, D as defineStructuredData, Dt as useSearch, E as createWebSiteStructuredData, Et as useTabs, F as TimelineVariant, Ft as BoltdocsShell, G as Breadcrumbs, Gt as ComponentRoute, H as CopyMarkdown, Ht as BoltdocsTab, I as usePost, It as MdxPage, Jt as OnThisPageProps, K as OnThisPage, Kt as LayoutProps, L as usePosts, Lt as createRoutes, M as TimelineBadgeConfig, Mt as useTheme, N as TimelineItemProps, Nt as useConfig, O as getTranslated, Ot as useSidebar, P as TimelineProps, Pt as ViteReactSSG, R as useRecentPosts, Rt as CollectionPost, S as WebSiteStructuredDataOptions, St as useBreadcrumbs, T as createStructuredData, Tt as useVersion, U as ErrorBoundary, Ut as CollectionListLoaderData, V as SearchDialog, Vt as CurrentPostProvider, W as PageNav, Wt as CollectionPostLoaderData, Xt as SiteConfig, Yt as SidebarProps, Zt as TabsProps, _ as StructuredData, _t as useTrackEvent, a as useExpandable, b as BreadcrumbStructuredDataItem, bt as useLocalizedTo, c as getStarsRepo, d as ViewTransitionHandle, dt as Navbar, f as ViewTransitionOptions, ft as DocsLayoutComponent, g as useViewTransition, gt as useAnalytics, h as startViewTransition, ht as useHeadings, i as UseExpandableOptions, j as Timeline, jt as useMdxComponents, k as resolvePublicAssetUrl, kt as useNavbar, l as copyToClipboard, m as ViewTransitionUpdate, mt as useMergedComponents, n as UseCodeBlockFeedbackOptions, o as useCopyButton, p as ViewTransitionRunner, pt as useFeedback, q as Sidebar, qt as NavbarLink, r as useCodeBlockFeedback, s as useCodeBlock, t as CodeBlockFeedbackPayload, u as reactToText, v as StructuredDataProps, vt as useTrackPageView, w as createBreadcrumbStructuredData, wt as useI18n, x as StructuredDataFactoryOptions, xt as useRoutes, y as ArticleStructuredDataOptions, yt as useSearchHighlight, z as Banner, zt as CollectionsContext } from "../index-CSiMUBhC.cjs";
3
+ import { A as cn, At as useUI, B as NotFound, Bt as CollectionsData, C as createArticleStructuredData, Ct as usePageNav, D as defineStructuredData, Dt as useSearch, E as createWebSiteStructuredData, Et as useTabs, F as TimelineVariant, Ft as BoltdocsShell, G as Breadcrumbs, Gt as ComponentRoute, H as CopyMarkdown, Ht as BoltdocsTab, I as usePost, It as MdxPage, Jt as OnThisPageProps, K as OnThisPage, Kt as LayoutProps, L as usePosts, Lt as createRoutes, M as TimelineBadgeConfig, Mt as useTheme, N as TimelineItemProps, Nt as useConfig, O as getTranslated, Ot as useSidebar, P as TimelineProps, Pt as ViteReactSSG, R as useRecentPosts, Rt as CollectionPost, S as WebSiteStructuredDataOptions, St as useBreadcrumbs, T as createStructuredData, Tt as useVersion, U as ErrorBoundary, Ut as CollectionListLoaderData, V as SearchDialog, Vt as CurrentPostProvider, W as PageNav, Wt as CollectionPostLoaderData, Xt as SiteConfig, Yt as SidebarProps, Zt as TabsProps, _ as StructuredData, _t as useTrackEvent, a as useExpandable, b as BreadcrumbStructuredDataItem, bt as useLocalizedTo, c as getStarsRepo, d as ViewTransitionHandle, dt as Navbar, f as ViewTransitionOptions, ft as DocsLayoutComponent, g as useViewTransition, gt as useAnalytics, h as startViewTransition, ht as useHeadings, i as UseExpandableOptions, j as Timeline, jt as useMdxComponents, k as resolvePublicAssetUrl, kt as useNavbar, l as copyToClipboard, m as ViewTransitionUpdate, mt as useMergedComponents, n as UseCodeBlockFeedbackOptions, o as useCopyButton, p as ViewTransitionRunner, pt as useFeedback, q as Sidebar, qt as NavbarLink, r as useCodeBlockFeedback, s as useCodeBlock, t as CodeBlockFeedbackPayload, u as reactToText, v as StructuredDataProps, vt as useTrackPageView, w as createBreadcrumbStructuredData, wt as useI18n, x as StructuredDataFactoryOptions, xt as useRoutes, y as ArticleStructuredDataOptions, yt as useSearchHighlight, z as Banner, zt as CollectionsContext } from "../index-Bg-JtZeK.cjs";
4
4
  export { ArticleStructuredDataOptions, Banner, BoltdocsConfig, BoltdocsLocale, BoltdocsRoutePath, BoltdocsRoutePathWithFallback, BoltdocsShell, BoltdocsTab, BoltdocsTypes, BoltdocsVersion, BreadcrumbStructuredDataItem, Breadcrumbs, BuildUrlOptions, CodeBlockFeedbackPayload, CollectionListLoaderData, CollectionPost, CollectionPostLoaderData, CollectionsContext, CollectionsData, ComponentRoute, CopyMarkdown, CreateRoutesResult, CurrentPostProvider, DocsLayoutComponent as DocsLayout, ErrorBoundary, LayoutProps, LazyRouteResult, LoaderFunction, LoaderFunctionArgs, LocationContext, LocationProvider, LocationProviderProps, LocationState, MatchesContext, MdxPage, Navbar, NavbarLink, NavigateContext, NavigateFunction, NotFound, OnThisPage, OnThisPageProps, Outlet, OutletContext, PageNav, ParsedUrl, PrefetchContext, PrefetchFunction, ResolveUrlOptions, RouteDataContext, RouteMatch, RouteRecord, RouteRenderer, RouteRendererProps, RouterOptions, SearchDialog, Sidebar, SidebarProps, SiteConfig, StructuredData, StructuredDataFactoryOptions, StructuredDataProps, TabsProps, Timeline, TimelineBadgeConfig, TimelineItemProps, TimelineProps, TimelineVariant, UrlContractConfig, UrlRouteHint, UrlRouteKind, UseCodeBlockFeedbackOptions, UseExpandableOptions, ViewTransitionHandle, ViewTransitionOptions, ViewTransitionRunner, ViewTransitionUpdate, ViteReactSSG, WebSiteStructuredDataOptions, addBasename, addUrlBase, buildUrl, classifyUrlPath, cn, copyToClipboard, createArticleStructuredData, createBreadcrumbStructuredData, createRoutes, createStructuredData, createWebSiteStructuredData, defaultNavigate, defineStructuredData, getConfiguredLocales, getConfiguredVersions, getStarsRepo, getTranslated, getVersionPrefixSegments, getVersionSegments, hasBasename, hasUriScheme, hasUrlBase, isConfiguredLocale, isConfiguredVersion, matchRouteBranch, matchRouteBranchWithParams, normalizeBasename, normalizeUrlBase, normalizeUrlPath, parseUrlReference, reactToText, resolvePublicAssetUrl, resolveRouteBranch, resolveUrlReference, splitUrlReference, startViewTransition, stripBasename, stripSiteProtocol, stripUrlBase, useAnalytics, useBreadcrumbs, useCodeBlock, useCodeBlockFeedback, useConfig, useCopyButton, useExpandable, useFeedback, useHeadings, useI18n, useLoaderData, useLocalizedTo, useLocation, useMatches, useMdxComponents, useMergedComponents, useNavbar, useNavigate, usePageNav, usePost, usePosts, usePrefetch, useRecentPosts, useRouteData, useRoutes, useSearch, useSearchHighlight, useSidebar, useTabs, useTheme, useTrackEvent, useTrackPageView, useUI, useVersion, useViewTransition };
@@ -1,4 +1,4 @@
1
1
 
2
2
  import { $ as LazyRouteResult, A as matchRouteBranch, B as useRouteData, C as stripSiteProtocol, D as normalizeBasename, E as hasBasename, F as useLoaderData, G as MatchesContext, H as LocationProvider, I as useLocation, J as PrefetchContext, K as NavigateContext, L as useMatches, M as resolveRouteBranch, N as Outlet, O as stripBasename, P as OutletContext, Q as CreateRoutesResult, R as useNavigate, S as splitUrlReference, T as addBasename, U as LocationProviderProps, V as LocationContext, W as LocationState, X as RouteDataContext, Y as PrefetchFunction, Z as defaultNavigate, _ as isConfiguredVersion, a as UrlRouteHint, at as RouterOptions, b as parseUrlReference, c as buildUrl, d as getConfiguredVersions, dt as BoltdocsRoutePath, et as LoaderFunction, f as getVersionPrefixSegments, ft as BoltdocsRoutePathWithFallback, g as isConfiguredLocale, h as hasUrlBase, ht as BoltdocsVersion, i as UrlContractConfig, it as RouteRendererProps, j as matchRouteBranchWithParams, k as RouteRenderer, l as classifyUrlPath, lt as BoltdocsLocale, m as hasUriScheme, mt as BoltdocsTypes, n as ParsedUrl, nt as RouteMatch, o as UrlRouteKind, p as getVersionSegments, q as NavigateFunction, r as ResolveUrlOptions, rt as RouteRecord, s as addUrlBase, st as BoltdocsConfig, t as BuildUrlOptions, tt as LoaderFunctionArgs, u as getConfiguredLocales, v as normalizeUrlBase, w as stripUrlBase, x as resolveUrlReference, y as normalizeUrlPath, z as usePrefetch } from "../index-CuNSD3E2.js";
3
- import { A as cn, At as useUI, B as NotFound, Bt as CollectionsData, C as createArticleStructuredData, Ct as usePageNav, D as defineStructuredData, Dt as useSearch, E as createWebSiteStructuredData, Et as useTabs, F as TimelineVariant, Ft as BoltdocsShell, G as Breadcrumbs, Gt as ComponentRoute, H as CopyMarkdown, Ht as BoltdocsTab, I as usePost, It as MdxPage, Jt as OnThisPageProps, K as OnThisPage, Kt as LayoutProps, L as usePosts, Lt as createRoutes, M as TimelineBadgeConfig, Mt as useTheme, N as TimelineItemProps, Nt as useConfig, O as getTranslated, Ot as useSidebar, P as TimelineProps, Pt as ViteReactSSG, R as useRecentPosts, Rt as CollectionPost, S as WebSiteStructuredDataOptions, St as useBreadcrumbs, T as createStructuredData, Tt as useVersion, U as ErrorBoundary, Ut as CollectionListLoaderData, V as SearchDialog, Vt as CurrentPostProvider, W as PageNav, Wt as CollectionPostLoaderData, Xt as SiteConfig, Yt as SidebarProps, Zt as TabsProps, _ as StructuredData, _t as useTrackEvent, a as useExpandable, b as BreadcrumbStructuredDataItem, bt as useLocalizedTo, c as getStarsRepo, d as ViewTransitionHandle, dt as Navbar, f as ViewTransitionOptions, ft as DocsLayoutComponent, g as useViewTransition, gt as useAnalytics, h as startViewTransition, ht as useHeadings, i as UseExpandableOptions, j as Timeline, jt as useMdxComponents, k as resolvePublicAssetUrl, kt as useNavbar, l as copyToClipboard, m as ViewTransitionUpdate, mt as useMergedComponents, n as UseCodeBlockFeedbackOptions, o as useCopyButton, p as ViewTransitionRunner, pt as useFeedback, q as Sidebar, qt as NavbarLink, r as useCodeBlockFeedback, s as useCodeBlock, t as CodeBlockFeedbackPayload, u as reactToText, v as StructuredDataProps, vt as useTrackPageView, w as createBreadcrumbStructuredData, wt as useI18n, x as StructuredDataFactoryOptions, xt as useRoutes, y as ArticleStructuredDataOptions, yt as useSearchHighlight, z as Banner, zt as CollectionsContext } from "../index-Cg3TmXIZ.js";
3
+ import { A as cn, At as useUI, B as NotFound, Bt as CollectionsData, C as createArticleStructuredData, Ct as usePageNav, D as defineStructuredData, Dt as useSearch, E as createWebSiteStructuredData, Et as useTabs, F as TimelineVariant, Ft as BoltdocsShell, G as Breadcrumbs, Gt as ComponentRoute, H as CopyMarkdown, Ht as BoltdocsTab, I as usePost, It as MdxPage, Jt as OnThisPageProps, K as OnThisPage, Kt as LayoutProps, L as usePosts, Lt as createRoutes, M as TimelineBadgeConfig, Mt as useTheme, N as TimelineItemProps, Nt as useConfig, O as getTranslated, Ot as useSidebar, P as TimelineProps, Pt as ViteReactSSG, R as useRecentPosts, Rt as CollectionPost, S as WebSiteStructuredDataOptions, St as useBreadcrumbs, T as createStructuredData, Tt as useVersion, U as ErrorBoundary, Ut as CollectionListLoaderData, V as SearchDialog, Vt as CurrentPostProvider, W as PageNav, Wt as CollectionPostLoaderData, Xt as SiteConfig, Yt as SidebarProps, Zt as TabsProps, _ as StructuredData, _t as useTrackEvent, a as useExpandable, b as BreadcrumbStructuredDataItem, bt as useLocalizedTo, c as getStarsRepo, d as ViewTransitionHandle, dt as Navbar, f as ViewTransitionOptions, ft as DocsLayoutComponent, g as useViewTransition, gt as useAnalytics, h as startViewTransition, ht as useHeadings, i as UseExpandableOptions, j as Timeline, jt as useMdxComponents, k as resolvePublicAssetUrl, kt as useNavbar, l as copyToClipboard, m as ViewTransitionUpdate, mt as useMergedComponents, n as UseCodeBlockFeedbackOptions, o as useCopyButton, p as ViewTransitionRunner, pt as useFeedback, q as Sidebar, qt as NavbarLink, r as useCodeBlockFeedback, s as useCodeBlock, t as CodeBlockFeedbackPayload, u as reactToText, v as StructuredDataProps, vt as useTrackPageView, w as createBreadcrumbStructuredData, wt as useI18n, x as StructuredDataFactoryOptions, xt as useRoutes, y as ArticleStructuredDataOptions, yt as useSearchHighlight, z as Banner, zt as CollectionsContext } from "../index-B3o307nd.js";
4
4
  export { ArticleStructuredDataOptions, Banner, BoltdocsConfig, BoltdocsLocale, BoltdocsRoutePath, BoltdocsRoutePathWithFallback, BoltdocsShell, BoltdocsTab, BoltdocsTypes, BoltdocsVersion, BreadcrumbStructuredDataItem, Breadcrumbs, BuildUrlOptions, CodeBlockFeedbackPayload, CollectionListLoaderData, CollectionPost, CollectionPostLoaderData, CollectionsContext, CollectionsData, ComponentRoute, CopyMarkdown, CreateRoutesResult, CurrentPostProvider, DocsLayoutComponent as DocsLayout, ErrorBoundary, LayoutProps, LazyRouteResult, LoaderFunction, LoaderFunctionArgs, LocationContext, LocationProvider, LocationProviderProps, LocationState, MatchesContext, MdxPage, Navbar, NavbarLink, NavigateContext, NavigateFunction, NotFound, OnThisPage, OnThisPageProps, Outlet, OutletContext, PageNav, ParsedUrl, PrefetchContext, PrefetchFunction, ResolveUrlOptions, RouteDataContext, RouteMatch, RouteRecord, RouteRenderer, RouteRendererProps, RouterOptions, SearchDialog, Sidebar, SidebarProps, SiteConfig, StructuredData, StructuredDataFactoryOptions, StructuredDataProps, TabsProps, Timeline, TimelineBadgeConfig, TimelineItemProps, TimelineProps, TimelineVariant, UrlContractConfig, UrlRouteHint, UrlRouteKind, UseCodeBlockFeedbackOptions, UseExpandableOptions, ViewTransitionHandle, ViewTransitionOptions, ViewTransitionRunner, ViewTransitionUpdate, ViteReactSSG, WebSiteStructuredDataOptions, addBasename, addUrlBase, buildUrl, classifyUrlPath, cn, copyToClipboard, createArticleStructuredData, createBreadcrumbStructuredData, createRoutes, createStructuredData, createWebSiteStructuredData, defaultNavigate, defineStructuredData, getConfiguredLocales, getConfiguredVersions, getStarsRepo, getTranslated, getVersionPrefixSegments, getVersionSegments, hasBasename, hasUriScheme, hasUrlBase, isConfiguredLocale, isConfiguredVersion, matchRouteBranch, matchRouteBranchWithParams, normalizeBasename, normalizeUrlBase, normalizeUrlPath, parseUrlReference, reactToText, resolvePublicAssetUrl, resolveRouteBranch, resolveUrlReference, splitUrlReference, startViewTransition, stripBasename, stripSiteProtocol, stripUrlBase, useAnalytics, useBreadcrumbs, useCodeBlock, useCodeBlockFeedback, useConfig, useCopyButton, useExpandable, useFeedback, useHeadings, useI18n, useLoaderData, useLocalizedTo, useLocation, useMatches, useMdxComponents, useMergedComponents, useNavbar, useNavigate, usePageNav, usePost, usePosts, usePrefetch, useRecentPosts, useRouteData, useRoutes, useSearch, useSearchHighlight, useSidebar, useTabs, useTheme, useTrackEvent, useTrackPageView, useUI, useVersion, useViewTransition };
@@ -8,7 +8,7 @@ import { A as useRouteData, B as normalizeBasename, C as Outlet, D as useMatches
8
8
  import { _ as useTheme, g as ThemeProvider } from "../image-B-NDSDuY.js";
9
9
  import { a as useCopyButton, i as useExpandable, n as Timeline, o as copyToClipboard, r as useCodeBlockFeedback, t as mdx_components_default } from "../mdx-BRT71V5Q.js";
10
10
  import { A as UIProvider, C as IconRenderer, E as Menu$1, O as ButtonGroup, S as useSidebar, T as Tabs$1, f as PageNav$1, j as useUI, k as Breadcrumbs$2, m as OnThisPage$1, n as Sidebar$1, t as DocsLayout$1, w as resolveIcon, x as useSearchHighlight } from "../docs-layout-CbZ7LDRe.js";
11
- import { i as useRoutes, n as useSearch, r as InternalErrorBoundary, t as SearchDialog } from "../search-dialog-DRiXejws.js";
11
+ import { i as useRoutes, n as useSearch, r as InternalErrorBoundary, t as SearchDialog } from "../search-dialog-an2BNMj6.js";
12
12
  import { i as ErrorBoundary$1, n as Navbar$1, o as Button$1, r as Github } from "../search-dialog-BqkzDTq2.js";
13
13
  import { ViteReactSSG } from "@bdocs/ssg";
14
14
  import { Suspense, createContext, isValidElement, lazy, use, useCallback, useEffect, useMemo, useRef, useState } from "react";
@@ -475,6 +475,27 @@ function I18nUpdater({ config }) {
475
475
  dir: direction
476
476
  } });
477
477
  }
478
+ /**
479
+ * Removes the per-page critical-CSS inline blocks once the app is hydrated.
480
+ *
481
+ * The critters pass inlines one `<style data-zig-critters>` per rendered page.
482
+ * On a full page load the block belongs to the current page and is redundant:
483
+ * the external stylesheet ships in the initial HTML and is loaded before
484
+ * hydration. After a client-side navigation, however, the block left by the
485
+ * *first* page stays in `<head>` and — emitted after the external stylesheet
486
+ * — wins the cascade for every utility it contains, breaking pages reached
487
+ * via SPA that rely on utilities the first page never used (e.g. `xl:flex`
488
+ * hiding the OnThisPage rail for the rest of the session).
489
+ */
490
+ function CrittersStyleCleanup() {
491
+ useEffect(() => {
492
+ if (typeof document === "undefined") return;
493
+ document.querySelectorAll("style[data-zig-critters]").forEach((el) => {
494
+ el.remove();
495
+ });
496
+ }, []);
497
+ return null;
498
+ }
478
499
  function StoreSync({ config, routeMap }) {
479
500
  const location = useLocation();
480
501
  const { currentLocale, currentVersion, setLocale, setVersion } = useBoltdocsContext();
@@ -543,26 +564,30 @@ function BoltdocsShell({ config, routes, components = {}, collectionsData, conte
543
564
  value: config,
544
565
  children: /* @__PURE__ */ jsxs(CollectionsProvider, {
545
566
  collectionsData: collectionsData || {},
546
- children: [/* @__PURE__ */ jsx(ScrollHandler, {}), /* @__PURE__ */ jsxs(BoltdocsProvider, {
547
- initialLocale: initialData.initLocale,
548
- initialVersion: initialData.initVersion,
549
- children: [
550
- /* @__PURE__ */ jsx(StoreSync, {
551
- config,
552
- routeMap
553
- }),
554
- /* @__PURE__ */ jsx(I18nUpdater, { config }),
555
- /* @__PURE__ */ jsx(Head, {
556
- siteTitle: config.theme?.title,
557
- siteDescription: config.theme?.description,
558
- routes
559
- }),
560
- /* @__PURE__ */ jsx(InternalErrorBoundary, { children: /* @__PURE__ */ jsx("div", {
561
- className: cn("boltdocs-shell-content h-screen overflow-hidden", contentClassName),
562
- children: /* @__PURE__ */ jsx(Outlet, {})
563
- }) })
564
- ]
565
- })]
567
+ children: [
568
+ /* @__PURE__ */ jsx(ScrollHandler, {}),
569
+ /* @__PURE__ */ jsx(CrittersStyleCleanup, {}),
570
+ /* @__PURE__ */ jsxs(BoltdocsProvider, {
571
+ initialLocale: initialData.initLocale,
572
+ initialVersion: initialData.initVersion,
573
+ children: [
574
+ /* @__PURE__ */ jsx(StoreSync, {
575
+ config,
576
+ routeMap
577
+ }),
578
+ /* @__PURE__ */ jsx(I18nUpdater, { config }),
579
+ /* @__PURE__ */ jsx(Head, {
580
+ siteTitle: config.theme?.title,
581
+ siteDescription: config.theme?.description,
582
+ routes
583
+ }),
584
+ /* @__PURE__ */ jsx(InternalErrorBoundary, { children: /* @__PURE__ */ jsx("div", {
585
+ className: cn("boltdocs-shell-content h-screen overflow-hidden", contentClassName),
586
+ children: /* @__PURE__ */ jsx(Outlet, {})
587
+ }) })
588
+ ]
589
+ })
590
+ ]
566
591
  })
567
592
  })
568
593
  }) }) })
@@ -1689,7 +1714,7 @@ function I18nSelector({ className }) {
1689
1714
 
1690
1715
  //#endregion
1691
1716
  //#region src/client/components/ui-base/navbar.tsx
1692
- const SearchDialog$1 = lazy(() => import("../search-dialog-MmwxFMmE.js").then((m) => ({ default: m.SearchDialog })));
1717
+ const SearchDialog$1 = lazy(() => import("../search-dialog-B9mdxsUC.js").then((m) => ({ default: m.SearchDialog })));
1693
1718
  function Navbar({ className }) {
1694
1719
  const { links, title, logo, logoProps, github, social, config } = useNavbar();
1695
1720
  const { routes, allRoutes, currentRoute, isCollectionPage, currentVersion, currentLocale } = useRoutes();
@@ -2681,8 +2706,14 @@ function buildExternalRouteRecord(options) {
2681
2706
  };
2682
2707
  const ExternalLayout = externalLayout;
2683
2708
  const ExternalComponent = component;
2684
- if (ExternalComponent) record.element = /* @__PURE__ */ jsx(ExternalPageWrapper, { children: /* @__PURE__ */ jsx(ExternalLayout, { children: /* @__PURE__ */ jsx(ExternalComponent, {}) }) });
2685
- else if (mdxLoader) record.lazy = async () => {
2709
+ if (ExternalComponent) {
2710
+ const LazyExternal = typeof ExternalComponent === "function" && !ExternalComponent.prototype?.render ? lazy(ExternalComponent) : null;
2711
+ if (LazyExternal) record.element = /* @__PURE__ */ jsx(ExternalPageWrapper, { children: /* @__PURE__ */ jsx(ExternalLayout, { children: /* @__PURE__ */ jsx(Suspense, {
2712
+ fallback: null,
2713
+ children: /* @__PURE__ */ jsx(LazyExternal, {})
2714
+ }) }) });
2715
+ else record.element = /* @__PURE__ */ jsx(ExternalPageWrapper, { children: /* @__PURE__ */ jsx(ExternalLayout, { children: /* @__PURE__ */ jsx(ExternalComponent, {}) }) });
2716
+ } else if (mdxLoader) record.lazy = async () => {
2686
2717
  const module = await resolveModuleLoader(mdxLoader);
2687
2718
  return { Component: function ExternalMdxRoute() {
2688
2719
  return /* @__PURE__ */ jsx(ExternalPageWrapper, { children: /* @__PURE__ */ jsx(ExternalLayout, { children: /* @__PURE__ */ jsx(ExternalMdxContent, {
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { ft as BoltdocsRoutePathWithFallback } from "../index-CgWkOCCn.cjs";
3
- import { $ as SidebarItem, J as Sidebar, Q as SidebarHeader, X as SidebarGroup, Y as SidebarContent, Z as SidebarGroupRenderProps, at as SidebarLinkProps, ct as SidebarSlots, et as SidebarItemProps, it as SidebarLink, lt as SidebarSubGroup, nt as SidebarItems, ot as SidebarMobile, qt as NavbarLink$1, rt as SidebarItemsProps, st as SidebarRoot, tt as SidebarItemRenderProps, ut as ComponentBase } from "../index-CSiMUBhC.cjs";
3
+ import { $ as SidebarItem, J as Sidebar, Q as SidebarHeader, X as SidebarGroup, Y as SidebarContent, Z as SidebarGroupRenderProps, at as SidebarLinkProps, ct as SidebarSlots, et as SidebarItemProps, it as SidebarLink, lt as SidebarSubGroup, nt as SidebarItems, ot as SidebarMobile, qt as NavbarLink$1, rt as SidebarItemsProps, st as SidebarRoot, tt as SidebarItemRenderProps, ut as ComponentBase } from "../index-Bg-JtZeK.cjs";
4
4
  import { a as CalloutRoot, c as CalloutTitleProps, i as CalloutProps, l as CalloutVariant, n as CalloutBody, o as CalloutRootProps, r as CalloutIcon, s as CalloutTitle, t as Callout } from "../callout-plqx9Dw-.cjs";
5
5
  import * as _$react from "react";
6
6
  import { CSSProperties, Component, ComponentProps, ComponentType, ErrorInfo, FC, HTMLAttributes, ImgHTMLAttributes, ReactNode, Ref, RefObject } from "react";
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { ft as BoltdocsRoutePathWithFallback } from "../index-CuNSD3E2.js";
3
- import { $ as SidebarItem, J as Sidebar, Q as SidebarHeader, X as SidebarGroup, Y as SidebarContent, Z as SidebarGroupRenderProps, at as SidebarLinkProps, ct as SidebarSlots, et as SidebarItemProps, it as SidebarLink, lt as SidebarSubGroup, nt as SidebarItems, ot as SidebarMobile, qt as NavbarLink$1, rt as SidebarItemsProps, st as SidebarRoot, tt as SidebarItemRenderProps, ut as ComponentBase } from "../index-Cg3TmXIZ.js";
3
+ import { $ as SidebarItem, J as Sidebar, Q as SidebarHeader, X as SidebarGroup, Y as SidebarContent, Z as SidebarGroupRenderProps, at as SidebarLinkProps, ct as SidebarSlots, et as SidebarItemProps, it as SidebarLink, lt as SidebarSubGroup, nt as SidebarItems, ot as SidebarMobile, qt as NavbarLink$1, rt as SidebarItemsProps, st as SidebarRoot, tt as SidebarItemRenderProps, ut as ComponentBase } from "../index-B3o307nd.js";
4
4
  import { a as CalloutRoot, c as CalloutTitleProps, i as CalloutProps, l as CalloutVariant, n as CalloutBody, o as CalloutRootProps, r as CalloutIcon, s as CalloutTitle, t as Callout } from "../callout-oI_LCbxS.js";
5
5
  import * as _$react from "react";
6
6
  import { CSSProperties, Component, ComponentProps, ComponentType, ErrorInfo, FC, HTMLAttributes, ImgHTMLAttributes, ReactNode, Ref, RefObject } from "react";
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{n as e,u as t}from"./node-DwgtnlGU.mjs";import{t as n}from"./routes-C4wrLWwu.mjs";import{o as r,t as i}from"./update-check-BXD1atVv.mjs";import a from"node:path";import o from"node:fs";import{randomUUID as s}from"node:crypto";import{error as c}from"@bdocs/dui";import{createServer as l}from"@bdocs/ssg/node";function u(e,t,n=e=>process.exit(e)){let r=!1;return{async shutdown(i){if(!r){r=!0;try{await e()}finally{t(),i!==void 0&&n(i)}}},isShuttingDown(){return r}}}function d(e){try{let t=Number.parseInt(o.readFileSync(e,`utf8`).trim(),10);return Number.isInteger(t)&&t>0?t:null}catch{return null}}function f(e){try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function p(e){let t=a.join(e,`.boltdocs`,`dev-server.lock`);for(o.mkdirSync(a.dirname(t),{recursive:!0});;)try{let e=o.openSync(t,`wx`);o.writeFileSync(e,`${process.pid}\n`),o.closeSync(e);let n=!1;return{release(){if(!n){n=!0;try{d(t)===process.pid&&o.unlinkSync(t)}catch{}}}}}catch(e){if(e.code!==`EEXIST`)throw e;let n=d(t);if(n&&f(n))throw Error(`A Boltdocs dev server is already running for this project (pid ${n})`);let r=`${t}.stale-${process.pid}-${s()}`;try{o.renameSync(t,r),o.unlinkSync(r)}catch(e){try{o.existsSync(r)&&o.unlinkSync(r)}catch{}if(e.code===`ENOENT`)continue;throw Error(`Could not recover stale Boltdocs dev lock: ${t}`)}}}let m=!1;async function h(o=process.cwd(),s={}){if(m)return;m=!0;let d=null,f=null,h=()=>{};i();let g,_=process.env.BOLTDOCS_DEBUG===`true`,v=performance.now();try{d=p(o),_&&console.log(`[boltdocs-dev] acquireLock: ${Math.round(performance.now()-v)}ms`);let i=performance.now(),y=performance.now(),b=await e(o,`development`,void 0,{skipTypes:!0,skipLinkTree:!0,skipRoutes:!0});g=b.__boltdocsConfig,_&&console.log(`[boltdocs-dev] createViteConfig: ${Math.round(performance.now()-y)}ms`),b.logLevel=`warn`,b.clearScreen=!1,s.port!==void 0&&(b.server=b.server||{},b.server.port=Number(s.port)),s.host!==void 0&&(b.server=b.server||{},b.server.host=s.host),s.force&&(b.optimizeDeps=b.optimizeDeps||{},b.optimizeDeps.force=!0);let x=performance.now();f=await l(b,{skipResolveConfig:!0}),_&&console.log(`[boltdocs-dev] createServer: ${Math.round(performance.now()-x)}ms`),h=()=>{process.off(`SIGINT`,C),process.off(`SIGTERM`,w)};let S=u(()=>f.close(),()=>{m=!1,d?.release(),h()}),C=()=>{S.shutdown(0)},w=()=>{S.shutdown(143)};process.once(`SIGINT`,C),process.once(`SIGTERM`,w);let T=performance.now();try{await f.listen()}catch(e){throw h(),e}_&&console.log(`[boltdocs-dev] server.listen: ${Math.round(performance.now()-T)}ms`),f.httpServer?.once(`close`,()=>{h(),m=!1,d?.release()}),t(g,o),n(g?.docsDir||a.resolve(o,`docs`),g).catch(e=>{c(`Background route generation failed:`,e)});let E=performance.now()-i;_&&console.log(`[boltdocs-dev] total startup: ${Math.round(E)}ms`);let D=f.resolvedUrls;console.log(r(D?.local?.[0]??`http://localhost:${s.port??5173}`,D?.network?.[0]??null,{readyIn:E})),f.bindCLIShortcuts({print:!1})}catch(e){if(h(),f)try{await f.close()}catch{}m=!1,d?.release(),c(`Failed to start dev server:`,e),process.exit(1)}}export{h as devAction};
6
+ import{n as e,u as t}from"./node-CWxGw4H4.mjs";import{t as n}from"./routes-C4wrLWwu.mjs";import{o as r,t as i}from"./update-check-BXD1atVv.mjs";import a from"node:path";import o from"node:fs";import{randomUUID as s}from"node:crypto";import{error as c}from"@bdocs/dui";import{createServer as l}from"@bdocs/ssg/node";function u(e,t,n=e=>process.exit(e)){let r=!1;return{async shutdown(i){if(!r){r=!0;try{await e()}finally{t(),i!==void 0&&n(i)}}},isShuttingDown(){return r}}}function d(e){try{let t=Number.parseInt(o.readFileSync(e,`utf8`).trim(),10);return Number.isInteger(t)&&t>0?t:null}catch{return null}}function f(e){try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function p(e){let t=a.join(e,`.boltdocs`,`dev-server.lock`);for(o.mkdirSync(a.dirname(t),{recursive:!0});;)try{let e=o.openSync(t,`wx`);o.writeFileSync(e,`${process.pid}\n`),o.closeSync(e);let n=!1;return{release(){if(!n){n=!0;try{d(t)===process.pid&&o.unlinkSync(t)}catch{}}}}}catch(e){if(e.code!==`EEXIST`)throw e;let n=d(t);if(n&&f(n))throw Error(`A Boltdocs dev server is already running for this project (pid ${n})`);let r=`${t}.stale-${process.pid}-${s()}`;try{o.renameSync(t,r),o.unlinkSync(r)}catch(e){try{o.existsSync(r)&&o.unlinkSync(r)}catch{}if(e.code===`ENOENT`)continue;throw Error(`Could not recover stale Boltdocs dev lock: ${t}`)}}}let m=!1;async function h(o=process.cwd(),s={}){if(m)return;m=!0;let d=null,f=null,h=()=>{};i();let g,_=process.env.BOLTDOCS_DEBUG===`true`,v=performance.now();try{d=p(o),_&&console.log(`[boltdocs-dev] acquireLock: ${Math.round(performance.now()-v)}ms`);let i=performance.now(),y=performance.now(),b=await e(o,`development`,void 0,{skipTypes:!0,skipLinkTree:!0,skipRoutes:!0});g=b.__boltdocsConfig,_&&console.log(`[boltdocs-dev] createViteConfig: ${Math.round(performance.now()-y)}ms`),b.logLevel=`warn`,b.clearScreen=!1,s.port!==void 0&&(b.server=b.server||{},b.server.port=Number(s.port)),s.host!==void 0&&(b.server=b.server||{},b.server.host=s.host),s.force&&(b.optimizeDeps=b.optimizeDeps||{},b.optimizeDeps.force=!0);let x=performance.now();f=await l(b,{skipResolveConfig:!0}),_&&console.log(`[boltdocs-dev] createServer: ${Math.round(performance.now()-x)}ms`),h=()=>{process.off(`SIGINT`,C),process.off(`SIGTERM`,w)};let S=u(()=>f.close(),()=>{m=!1,d?.release(),h()}),C=()=>{S.shutdown(0)},w=()=>{S.shutdown(143)};process.once(`SIGINT`,C),process.once(`SIGTERM`,w);let T=performance.now();try{await f.listen()}catch(e){throw h(),e}_&&console.log(`[boltdocs-dev] server.listen: ${Math.round(performance.now()-T)}ms`),f.httpServer?.once(`close`,()=>{h(),m=!1,d?.release()}),t(g,o),n(g?.docsDir||a.resolve(o,`docs`),g).catch(e=>{c(`Background route generation failed:`,e)});let E=performance.now()-i;_&&console.log(`[boltdocs-dev] total startup: ${Math.round(E)}ms`);let D=f.resolvedUrls;console.log(r(D?.local?.[0]??`http://localhost:${s.port??5173}`,D?.network?.[0]??null,{readyIn:E})),f.bindCLIShortcuts({print:!1})}catch(e){if(h(),f)try{await f.close()}catch{}m=!1,d?.release(),c(`Failed to start dev server:`,e),process.exit(1)}}export{h as devAction};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./node-B4GvEOqF.cjs`),n=require(`./routes-C0kb4ue6.cjs`),r=require(`./update-check-DFQZyoSU.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);let o=require(`node:crypto`),s=require(`@bdocs/dui`),c=require(`@bdocs/ssg/node`);function l(e,t,n=e=>process.exit(e)){let r=!1;return{async shutdown(i){if(!r){r=!0;try{await e()}finally{t(),i!==void 0&&n(i)}}},isShuttingDown(){return r}}}function u(e){try{let t=Number.parseInt(a.default.readFileSync(e,`utf8`).trim(),10);return Number.isInteger(t)&&t>0?t:null}catch{return null}}function d(e){try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function f(e){let t=i.default.join(e,`.boltdocs`,`dev-server.lock`);for(a.default.mkdirSync(i.default.dirname(t),{recursive:!0});;)try{let e=a.default.openSync(t,`wx`);a.default.writeFileSync(e,`${process.pid}\n`),a.default.closeSync(e);let n=!1;return{release(){if(!n){n=!0;try{u(t)===process.pid&&a.default.unlinkSync(t)}catch{}}}}}catch(e){if(e.code!==`EEXIST`)throw e;let n=u(t);if(n&&d(n))throw Error(`A Boltdocs dev server is already running for this project (pid ${n})`);let r=`${t}.stale-${process.pid}-${(0,o.randomUUID)()}`;try{a.default.renameSync(t,r),a.default.unlinkSync(r)}catch(e){try{a.default.existsSync(r)&&a.default.unlinkSync(r)}catch{}if(e.code===`ENOENT`)continue;throw Error(`Could not recover stale Boltdocs dev lock: ${t}`)}}}let p=!1;async function m(e=process.cwd(),a={}){if(p)return;p=!0;let o=null,u=null,d=()=>{};r.t();let m,h=process.env.BOLTDOCS_DEBUG===`true`,g=performance.now();try{o=f(e),h&&console.log(`[boltdocs-dev] acquireLock: ${Math.round(performance.now()-g)}ms`);let _=performance.now(),v=performance.now(),y=await t.n(e,`development`,void 0,{skipTypes:!0,skipLinkTree:!0,skipRoutes:!0});m=y.__boltdocsConfig,h&&console.log(`[boltdocs-dev] createViteConfig: ${Math.round(performance.now()-v)}ms`),y.logLevel=`warn`,y.clearScreen=!1,a.port!==void 0&&(y.server=y.server||{},y.server.port=Number(a.port)),a.host!==void 0&&(y.server=y.server||{},y.server.host=a.host),a.force&&(y.optimizeDeps=y.optimizeDeps||{},y.optimizeDeps.force=!0);let b=performance.now();u=await(0,c.createServer)(y,{skipResolveConfig:!0}),h&&console.log(`[boltdocs-dev] createServer: ${Math.round(performance.now()-b)}ms`),d=()=>{process.off(`SIGINT`,S),process.off(`SIGTERM`,C)};let x=l(()=>u.close(),()=>{p=!1,o?.release(),d()}),S=()=>{x.shutdown(0)},C=()=>{x.shutdown(143)};process.once(`SIGINT`,S),process.once(`SIGTERM`,C);let w=performance.now();try{await u.listen()}catch(e){throw d(),e}h&&console.log(`[boltdocs-dev] server.listen: ${Math.round(performance.now()-w)}ms`),u.httpServer?.once(`close`,()=>{d(),p=!1,o?.release()}),t.l(m,e),n.t(m?.docsDir||i.default.resolve(e,`docs`),m).catch(e=>{(0,s.error)(`Background route generation failed:`,e)});let T=performance.now()-_;h&&console.log(`[boltdocs-dev] total startup: ${Math.round(T)}ms`);let E=u.resolvedUrls;console.log(r.o(E?.local?.[0]??`http://localhost:${a.port??5173}`,E?.network?.[0]??null,{readyIn:T})),u.bindCLIShortcuts({print:!1})}catch(e){if(d(),u)try{await u.close()}catch{}p=!1,o?.release(),(0,s.error)(`Failed to start dev server:`,e),process.exit(1)}}exports.devAction=m;
6
+ const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./node-BljvHMpS.cjs`),n=require(`./routes-C0kb4ue6.cjs`),r=require(`./update-check-DFQZyoSU.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);let o=require(`node:crypto`),s=require(`@bdocs/dui`),c=require(`@bdocs/ssg/node`);function l(e,t,n=e=>process.exit(e)){let r=!1;return{async shutdown(i){if(!r){r=!0;try{await e()}finally{t(),i!==void 0&&n(i)}}},isShuttingDown(){return r}}}function u(e){try{let t=Number.parseInt(a.default.readFileSync(e,`utf8`).trim(),10);return Number.isInteger(t)&&t>0?t:null}catch{return null}}function d(e){try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function f(e){let t=i.default.join(e,`.boltdocs`,`dev-server.lock`);for(a.default.mkdirSync(i.default.dirname(t),{recursive:!0});;)try{let e=a.default.openSync(t,`wx`);a.default.writeFileSync(e,`${process.pid}\n`),a.default.closeSync(e);let n=!1;return{release(){if(!n){n=!0;try{u(t)===process.pid&&a.default.unlinkSync(t)}catch{}}}}}catch(e){if(e.code!==`EEXIST`)throw e;let n=u(t);if(n&&d(n))throw Error(`A Boltdocs dev server is already running for this project (pid ${n})`);let r=`${t}.stale-${process.pid}-${(0,o.randomUUID)()}`;try{a.default.renameSync(t,r),a.default.unlinkSync(r)}catch(e){try{a.default.existsSync(r)&&a.default.unlinkSync(r)}catch{}if(e.code===`ENOENT`)continue;throw Error(`Could not recover stale Boltdocs dev lock: ${t}`)}}}let p=!1;async function m(e=process.cwd(),a={}){if(p)return;p=!0;let o=null,u=null,d=()=>{};r.t();let m,h=process.env.BOLTDOCS_DEBUG===`true`,g=performance.now();try{o=f(e),h&&console.log(`[boltdocs-dev] acquireLock: ${Math.round(performance.now()-g)}ms`);let _=performance.now(),v=performance.now(),y=await t.n(e,`development`,void 0,{skipTypes:!0,skipLinkTree:!0,skipRoutes:!0});m=y.__boltdocsConfig,h&&console.log(`[boltdocs-dev] createViteConfig: ${Math.round(performance.now()-v)}ms`),y.logLevel=`warn`,y.clearScreen=!1,a.port!==void 0&&(y.server=y.server||{},y.server.port=Number(a.port)),a.host!==void 0&&(y.server=y.server||{},y.server.host=a.host),a.force&&(y.optimizeDeps=y.optimizeDeps||{},y.optimizeDeps.force=!0);let b=performance.now();u=await(0,c.createServer)(y,{skipResolveConfig:!0}),h&&console.log(`[boltdocs-dev] createServer: ${Math.round(performance.now()-b)}ms`),d=()=>{process.off(`SIGINT`,S),process.off(`SIGTERM`,C)};let x=l(()=>u.close(),()=>{p=!1,o?.release(),d()}),S=()=>{x.shutdown(0)},C=()=>{x.shutdown(143)};process.once(`SIGINT`,S),process.once(`SIGTERM`,C);let w=performance.now();try{await u.listen()}catch(e){throw d(),e}h&&console.log(`[boltdocs-dev] server.listen: ${Math.round(performance.now()-w)}ms`),u.httpServer?.once(`close`,()=>{d(),p=!1,o?.release()}),t.l(m,e),n.t(m?.docsDir||i.default.resolve(e,`docs`),m).catch(e=>{(0,s.error)(`Background route generation failed:`,e)});let T=performance.now()-_;h&&console.log(`[boltdocs-dev] total startup: ${Math.round(T)}ms`);let E=u.resolvedUrls;console.log(r.o(E?.local?.[0]??`http://localhost:${a.port??5173}`,E?.network?.[0]??null,{readyIn:T})),u.bindCLIShortcuts({print:!1})}catch(e){if(d(),u)try{await u.close()}catch{}p=!1,o?.release(),(0,s.error)(`Failed to start dev server:`,e),process.exit(1)}}exports.devAction=m;
@@ -253,11 +253,15 @@ interface CreateRoutesOptions {
253
253
  collectionPosts?: Record<string, React$1.ComponentType<any>>;
254
254
  config: BoltdocsConfig;
255
255
  mdxModules: Record<string, any>;
256
- externalPages?: Record<string, React$1.ComponentType>;
256
+ externalPages?: Record<string, React$1.ComponentType | (() => Promise<{
257
+ default: React$1.ComponentType;
258
+ }>)>;
257
259
  externalLayout?: React$1.ComponentType<{
258
260
  children: React$1.ReactNode;
259
261
  }>;
260
- externalFilePages?: Record<string, React$1.ComponentType>;
262
+ externalFilePages?: Record<string, React$1.ComponentType | (() => Promise<{
263
+ default: React$1.ComponentType;
264
+ }>)>;
261
265
  externalFileMdx?: Record<string, unknown>;
262
266
  components?: Record<string, React$1.ComponentType>;
263
267
  }
@@ -253,11 +253,15 @@ interface CreateRoutesOptions {
253
253
  collectionPosts?: Record<string, React$1.ComponentType<any>>;
254
254
  config: BoltdocsConfig;
255
255
  mdxModules: Record<string, any>;
256
- externalPages?: Record<string, React$1.ComponentType>;
256
+ externalPages?: Record<string, React$1.ComponentType | (() => Promise<{
257
+ default: React$1.ComponentType;
258
+ }>)>;
257
259
  externalLayout?: React$1.ComponentType<{
258
260
  children: React$1.ReactNode;
259
261
  }>;
260
- externalFilePages?: Record<string, React$1.ComponentType>;
262
+ externalFilePages?: Record<string, React$1.ComponentType | (() => Promise<{
263
+ default: React$1.ComponentType;
264
+ }>)>;
261
265
  externalFileMdx?: Record<string, unknown>;
262
266
  components?: Record<string, React$1.ComponentType>;
263
267
  }
@@ -4,4 +4,4 @@
4
4
  * Copyright (c) 2026 Jesus Alcala
5
5
  * Licensed under the MIT License.
6
6
  */
7
- const e=require(`../chunk-D1Md3oWO.cjs`);let t=require(`node:path`);t=e.r(t);let n=require(`node:fs`);n=e.r(n);let r=require(`node:fs/promises`);r=e.r(r);let i=require(`node:module`),a=require(`cac`);a=e.r(a);function o(e){let r=e;for(;r&&r!==t.default.dirname(r);){if(n.default.existsSync(t.default.join(r,`.git`))||n.default.existsSync(t.default.join(r,`pnpm-workspace.yaml`)))return r;r=t.default.dirname(r)}r=e;let i=e;for(;r&&r!==t.default.dirname(r);)n.default.existsSync(t.default.join(r,`package.json`))&&(i=r),r=t.default.dirname(r);return i}let s=o(process.cwd());function c(e){if(!e)return;let n;if(typeof e==`string`)n=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;n=e.pathname}else if(Buffer.isBuffer(e))n=e.toString();else return;let r=t.default.resolve(s,n),i=t.default.relative(s,r),a=i.startsWith(`..`)||t.default.isAbsolute(i),o=r.split(t.default.sep),c=o.some(e=>e.startsWith(`.env`)),l=o.some((e,t)=>{if(e===`node_modules`){let e=o[t+1];return!e||!e.startsWith(`.`)}return!1});if(a||c||l)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${r}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function l(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function u(){let e=n.default.writeFile;n.default.writeFile=((t,...r)=>{try{c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(n.default,t,...r)});let t=n.default.writeFileSync;n.default.writeFileSync=(e,...r)=>(c(e),t.call(n.default,e,...r));let i=n.default.rm;n.default.rm=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(n.default,e,...t)});let a=n.default.rmSync;n.default.rmSync=(e,...t)=>(c(e),a.call(n.default,e,...t));let o=n.default.unlink;n.default.unlink=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(n.default,e,...t)});let s=n.default.unlinkSync;n.default.unlinkSync=(e,...t)=>(c(e),s.call(n.default,e,...t));let u=n.default.mkdir;n.default.mkdir=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return u.call(n.default,e,...t)});let d=n.default.mkdirSync;n.default.mkdirSync=(e,...t)=>(c(e),d.call(n.default,e,...t));let f=n.default.rmdir;n.default.rmdir=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return f.call(n.default,e,...t)});let p=n.default.rmdirSync;n.default.rmdirSync=(e,...t)=>(c(e),p.call(n.default,e,...t));let m=n.default.appendFile;n.default.appendFile=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return m.call(n.default,e,...t)});let h=n.default.appendFileSync;n.default.appendFileSync=(e,...t)=>(c(e),h.call(n.default,e,...t));let g=n.default.copyFile;n.default.copyFile=((e,t,...r)=>{try{c(e),c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return g.call(n.default,e,t,...r)});let _=n.default.copyFileSync;n.default.copyFileSync=(e,t,...r)=>(c(e),c(t),_.call(n.default,e,t,...r));let v=n.default.rename;n.default.rename=((e,t,...r)=>{try{c(e),c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return v.call(n.default,e,t,...r)});let y=n.default.renameSync;n.default.renameSync=(e,t,...r)=>(c(e),c(t),y.call(n.default,e,t,...r));let b=n.default.createWriteStream;n.default.createWriteStream=(e,...t)=>(c(e),b.call(n.default,e,...t));let x=n.default.open;n.default.open=((e,t,...r)=>{if(l(typeof t==`function`?void 0:t))try{c(e)}catch(e){let n=r[r.length-1],i=typeof t==`function`?t:typeof n==`function`?n:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return x.call(n.default,e,t,...r)});let S=n.default.openSync;n.default.openSync=(e,t,...r)=>(l(t)&&c(e),S.call(n.default,e,t,...r));let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(c(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(c(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(c(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(c(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(c(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(c(t),o.call(e,t,...n)));let s=e.copyFile;s&&(e.copyFile=async(t,n,...r)=>(c(t),c(n),s.call(e,t,n,...r)));let u=e.rename;u&&(e.rename=async(t,n,...r)=>(c(t),c(n),u.call(e,t,n,...r)));let d=e.open;d&&(e.open=async(t,n,...r)=>(l(n)&&c(t),d.call(e,t,n,...r)))};C(n.default.promises),C(r.default)}const{emitWarning:d}=process;process.emitWarning=(e,...t)=>{let n=e?.code;if(!(e&&typeof e==`object`&&n===`DEP0205`)&&!(typeof e==`string`&&t.includes(`DEP0205`)))return Reflect.apply(d,process,[e,...t])},u();try{Promise.resolve().then(()=>import(`node:module`)).then(({enableCompileCache:e})=>{typeof e==`function`&&e()}).catch(()=>{})}catch{}const f=[`theme`,`dev`].join(`:`);let p=!1;async function m(){if(p)return;let{configure:e}=await import(`@bdocs/dui`);e({prefix:`boltdocs`}),p=!0}const h=(0,a.default)(`boltdocs`);h.command(`dev [root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(...e)=>{await m();let{devAction:t}=await Promise.resolve().then(()=>require(`../dev-wKVrEH6o.cjs`));return t(...e)}),h.command(`[root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(e=process.cwd(),t)=>{if(e===f)throw Error(`Unknown command: ${f}`);await m();let{devAction:n}=await Promise.resolve().then(()=>require(`../dev-wKVrEH6o.cjs`));return n(e,t)}),h.command(`build [root]`,`Build for production`).action(async(...e)=>{await m();let{buildAction:t}=await Promise.resolve().then(()=>require(`../build-Dh61OnDW.cjs`));return t(...e)}),h.command(`preview [root]`,`Preview production build`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(async(...e)=>{await m();let{previewAction:t}=await Promise.resolve().then(()=>require(`../build-Dh61OnDW.cjs`));return t(...e)}),h.command(`audit [root]`,`Audit configured plugins for security warnings`).action(async(...e)=>{let{auditAction:t}=await Promise.resolve().then(()=>require(`../audit-CHkGiV3c.cjs`));return t(...e)}),h.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{await m();let{doctorAction:n}=await Promise.resolve().then(()=>require(`../doctor-FuFY1jBz.cjs`));await n(e,t)}),h.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).option(`--type <"major"|"minor"|"patch">`,`Filter by version type (major, minor, or patch)`).action(async(e,t)=>{await m();let{generateChangelog:n}=await Promise.resolve().then(()=>require(`../generator-BCrZL53x.cjs`));await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0,type:t.type})});const g=(0,i.createRequire)(require(`url`).pathToFileURL(__filename).href)(`../../package.json`);h.version(g.version),h.parse();
7
+ const e=require(`../chunk-D1Md3oWO.cjs`);let t=require(`node:path`);t=e.r(t);let n=require(`node:fs`);n=e.r(n);let r=require(`node:fs/promises`);r=e.r(r);let i=require(`node:module`),a=require(`cac`);a=e.r(a);function o(e){let r=e;for(;r&&r!==t.default.dirname(r);){if(n.default.existsSync(t.default.join(r,`.git`))||n.default.existsSync(t.default.join(r,`pnpm-workspace.yaml`)))return r;r=t.default.dirname(r)}r=e;let i=e;for(;r&&r!==t.default.dirname(r);)n.default.existsSync(t.default.join(r,`package.json`))&&(i=r),r=t.default.dirname(r);return i}let s=o(process.cwd());function c(e){if(!e)return;let n;if(typeof e==`string`)n=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;n=e.pathname}else if(Buffer.isBuffer(e))n=e.toString();else return;let r=t.default.resolve(s,n),i=t.default.relative(s,r),a=i.startsWith(`..`)||t.default.isAbsolute(i),o=r.split(t.default.sep),c=o.some(e=>e.startsWith(`.env`)),l=o.some((e,t)=>{if(e===`node_modules`){let e=o[t+1];return!e||!e.startsWith(`.`)}return!1});if(a||c||l)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${r}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function l(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function u(){let e=n.default.writeFile;n.default.writeFile=((t,...r)=>{try{c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(n.default,t,...r)});let t=n.default.writeFileSync;n.default.writeFileSync=(e,...r)=>(c(e),t.call(n.default,e,...r));let i=n.default.rm;n.default.rm=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(n.default,e,...t)});let a=n.default.rmSync;n.default.rmSync=(e,...t)=>(c(e),a.call(n.default,e,...t));let o=n.default.unlink;n.default.unlink=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(n.default,e,...t)});let s=n.default.unlinkSync;n.default.unlinkSync=(e,...t)=>(c(e),s.call(n.default,e,...t));let u=n.default.mkdir;n.default.mkdir=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return u.call(n.default,e,...t)});let d=n.default.mkdirSync;n.default.mkdirSync=(e,...t)=>(c(e),d.call(n.default,e,...t));let f=n.default.rmdir;n.default.rmdir=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return f.call(n.default,e,...t)});let p=n.default.rmdirSync;n.default.rmdirSync=(e,...t)=>(c(e),p.call(n.default,e,...t));let m=n.default.appendFile;n.default.appendFile=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return m.call(n.default,e,...t)});let h=n.default.appendFileSync;n.default.appendFileSync=(e,...t)=>(c(e),h.call(n.default,e,...t));let g=n.default.copyFile;n.default.copyFile=((e,t,...r)=>{try{c(e),c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return g.call(n.default,e,t,...r)});let _=n.default.copyFileSync;n.default.copyFileSync=(e,t,...r)=>(c(e),c(t),_.call(n.default,e,t,...r));let v=n.default.rename;n.default.rename=((e,t,...r)=>{try{c(e),c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return v.call(n.default,e,t,...r)});let y=n.default.renameSync;n.default.renameSync=(e,t,...r)=>(c(e),c(t),y.call(n.default,e,t,...r));let b=n.default.createWriteStream;n.default.createWriteStream=(e,...t)=>(c(e),b.call(n.default,e,...t));let x=n.default.open;n.default.open=((e,t,...r)=>{if(l(typeof t==`function`?void 0:t))try{c(e)}catch(e){let n=r[r.length-1],i=typeof t==`function`?t:typeof n==`function`?n:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return x.call(n.default,e,t,...r)});let S=n.default.openSync;n.default.openSync=(e,t,...r)=>(l(t)&&c(e),S.call(n.default,e,t,...r));let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(c(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(c(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(c(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(c(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(c(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(c(t),o.call(e,t,...n)));let s=e.copyFile;s&&(e.copyFile=async(t,n,...r)=>(c(t),c(n),s.call(e,t,n,...r)));let u=e.rename;u&&(e.rename=async(t,n,...r)=>(c(t),c(n),u.call(e,t,n,...r)));let d=e.open;d&&(e.open=async(t,n,...r)=>(l(n)&&c(t),d.call(e,t,n,...r)))};C(n.default.promises),C(r.default)}const{emitWarning:d}=process;process.emitWarning=(e,...t)=>{let n=e?.code;if(!(e&&typeof e==`object`&&n===`DEP0205`)&&!(typeof e==`string`&&t.includes(`DEP0205`)))return Reflect.apply(d,process,[e,...t])},u();try{Promise.resolve().then(()=>import(`node:module`)).then(({enableCompileCache:e})=>{typeof e==`function`&&e()}).catch(()=>{})}catch{}const f=[`theme`,`dev`].join(`:`);let p=!1;async function m(){if(p)return;let{configure:e}=await import(`@bdocs/dui`);e({prefix:`boltdocs`}),p=!0}const h=(0,a.default)(`boltdocs`);h.command(`dev [root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(...e)=>{await m();let{devAction:t}=await Promise.resolve().then(()=>require(`../dev-DbuhNcF5.cjs`));return t(...e)}),h.command(`[root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(e=process.cwd(),t)=>{if(e===f)throw Error(`Unknown command: ${f}`);await m();let{devAction:n}=await Promise.resolve().then(()=>require(`../dev-DbuhNcF5.cjs`));return n(e,t)}),h.command(`build [root]`,`Build for production`).action(async(...e)=>{await m();let{buildAction:t}=await Promise.resolve().then(()=>require(`../build-B672n0hL.cjs`));return t(...e)}),h.command(`preview [root]`,`Preview production build`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(async(...e)=>{await m();let{previewAction:t}=await Promise.resolve().then(()=>require(`../build-B672n0hL.cjs`));return t(...e)}),h.command(`audit [root]`,`Audit configured plugins for security warnings`).action(async(...e)=>{let{auditAction:t}=await Promise.resolve().then(()=>require(`../audit-CHkGiV3c.cjs`));return t(...e)}),h.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{await m();let{doctorAction:n}=await Promise.resolve().then(()=>require(`../doctor-FuFY1jBz.cjs`));await n(e,t)}),h.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).option(`--type <"major"|"minor"|"patch">`,`Filter by version type (major, minor, or patch)`).action(async(e,t)=>{await m();let{generateChangelog:n}=await Promise.resolve().then(()=>require(`../generator-BCrZL53x.cjs`));await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0,type:t.type})});const g=(0,i.createRequire)(require(`url`).pathToFileURL(__filename).href)(`../../package.json`);h.version(g.version),h.parse();
@@ -4,4 +4,4 @@
4
4
  * Copyright (c) 2026 Jesus Alcala
5
5
  * Licensed under the MIT License.
6
6
  */
7
- import{createRequire as e}from"node:module";import t from"node:path";import n from"node:fs";import r from"node:fs/promises";import i from"cac";function a(e){let r=e;for(;r&&r!==t.dirname(r);){if(n.existsSync(t.join(r,`.git`))||n.existsSync(t.join(r,`pnpm-workspace.yaml`)))return r;r=t.dirname(r)}r=e;let i=e;for(;r&&r!==t.dirname(r);)n.existsSync(t.join(r,`package.json`))&&(i=r),r=t.dirname(r);return i}let o=a(process.cwd());function s(e){if(!e)return;let n;if(typeof e==`string`)n=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;n=e.pathname}else if(Buffer.isBuffer(e))n=e.toString();else return;let r=t.resolve(o,n),i=t.relative(o,r),a=i.startsWith(`..`)||t.isAbsolute(i),s=r.split(t.sep),c=s.some(e=>e.startsWith(`.env`)),l=s.some((e,t)=>{if(e===`node_modules`){let e=s[t+1];return!e||!e.startsWith(`.`)}return!1});if(a||c||l)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${r}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function c(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function l(){let e=n.writeFile;n.writeFile=((t,...r)=>{try{s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(n,t,...r)});let t=n.writeFileSync;n.writeFileSync=(e,...r)=>(s(e),t.call(n,e,...r));let i=n.rm;n.rm=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(n,e,...t)});let a=n.rmSync;n.rmSync=(e,...t)=>(s(e),a.call(n,e,...t));let o=n.unlink;n.unlink=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(n,e,...t)});let l=n.unlinkSync;n.unlinkSync=(e,...t)=>(s(e),l.call(n,e,...t));let u=n.mkdir;n.mkdir=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return u.call(n,e,...t)});let d=n.mkdirSync;n.mkdirSync=(e,...t)=>(s(e),d.call(n,e,...t));let f=n.rmdir;n.rmdir=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return f.call(n,e,...t)});let p=n.rmdirSync;n.rmdirSync=(e,...t)=>(s(e),p.call(n,e,...t));let m=n.appendFile;n.appendFile=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return m.call(n,e,...t)});let h=n.appendFileSync;n.appendFileSync=(e,...t)=>(s(e),h.call(n,e,...t));let g=n.copyFile;n.copyFile=((e,t,...r)=>{try{s(e),s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return g.call(n,e,t,...r)});let _=n.copyFileSync;n.copyFileSync=(e,t,...r)=>(s(e),s(t),_.call(n,e,t,...r));let v=n.rename;n.rename=((e,t,...r)=>{try{s(e),s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return v.call(n,e,t,...r)});let y=n.renameSync;n.renameSync=(e,t,...r)=>(s(e),s(t),y.call(n,e,t,...r));let b=n.createWriteStream;n.createWriteStream=(e,...t)=>(s(e),b.call(n,e,...t));let x=n.open;n.open=((e,t,...r)=>{if(c(typeof t==`function`?void 0:t))try{s(e)}catch(e){let n=r[r.length-1],i=typeof t==`function`?t:typeof n==`function`?n:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return x.call(n,e,t,...r)});let S=n.openSync;n.openSync=(e,t,...r)=>(c(t)&&s(e),S.call(n,e,t,...r));let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(s(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(s(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(s(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(s(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(s(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(s(t),o.call(e,t,...n)));let l=e.copyFile;l&&(e.copyFile=async(t,n,...r)=>(s(t),s(n),l.call(e,t,n,...r)));let u=e.rename;u&&(e.rename=async(t,n,...r)=>(s(t),s(n),u.call(e,t,n,...r)));let d=e.open;d&&(e.open=async(t,n,...r)=>(c(n)&&s(t),d.call(e,t,n,...r)))};C(n.promises),C(r)}const{emitWarning:u}=process;process.emitWarning=(e,...t)=>{let n=e?.code;if(!(e&&typeof e==`object`&&n===`DEP0205`)&&!(typeof e==`string`&&t.includes(`DEP0205`)))return Reflect.apply(u,process,[e,...t])},l();try{Promise.resolve().then(()=>import(`node:module`)).then(({enableCompileCache:e})=>{typeof e==`function`&&e()}).catch(()=>{})}catch{}const d=[`theme`,`dev`].join(`:`);let f=!1;async function p(){if(f)return;let{configure:e}=await import(`@bdocs/dui`);e({prefix:`boltdocs`}),f=!0}const m=i(`boltdocs`);m.command(`dev [root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(...e)=>{await p();let{devAction:t}=await import(`../dev-BObyQM9q.mjs`);return t(...e)}),m.command(`[root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(e=process.cwd(),t)=>{if(e===d)throw Error(`Unknown command: ${d}`);await p();let{devAction:n}=await import(`../dev-BObyQM9q.mjs`);return n(e,t)}),m.command(`build [root]`,`Build for production`).action(async(...e)=>{await p();let{buildAction:t}=await import(`../build-WmZDi-TG.mjs`);return t(...e)}),m.command(`preview [root]`,`Preview production build`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(async(...e)=>{await p();let{previewAction:t}=await import(`../build-WmZDi-TG.mjs`);return t(...e)}),m.command(`audit [root]`,`Audit configured plugins for security warnings`).action(async(...e)=>{let{auditAction:t}=await import(`../audit-CMc_ydRr.mjs`);return t(...e)}),m.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{await p();let{doctorAction:n}=await import(`../doctor-i8Qmd8DJ.mjs`).then(e=>e.t);await n(e,t)}),m.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).option(`--type <"major"|"minor"|"patch">`,`Filter by version type (major, minor, or patch)`).action(async(e,t)=>{await p();let{generateChangelog:n}=await import(`../generator-CFukoGa0.mjs`);await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0,type:t.type})});const h=e(import.meta.url)(`../../package.json`);m.version(h.version),m.parse();export{};
7
+ import{createRequire as e}from"node:module";import t from"node:path";import n from"node:fs";import r from"node:fs/promises";import i from"cac";function a(e){let r=e;for(;r&&r!==t.dirname(r);){if(n.existsSync(t.join(r,`.git`))||n.existsSync(t.join(r,`pnpm-workspace.yaml`)))return r;r=t.dirname(r)}r=e;let i=e;for(;r&&r!==t.dirname(r);)n.existsSync(t.join(r,`package.json`))&&(i=r),r=t.dirname(r);return i}let o=a(process.cwd());function s(e){if(!e)return;let n;if(typeof e==`string`)n=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;n=e.pathname}else if(Buffer.isBuffer(e))n=e.toString();else return;let r=t.resolve(o,n),i=t.relative(o,r),a=i.startsWith(`..`)||t.isAbsolute(i),s=r.split(t.sep),c=s.some(e=>e.startsWith(`.env`)),l=s.some((e,t)=>{if(e===`node_modules`){let e=s[t+1];return!e||!e.startsWith(`.`)}return!1});if(a||c||l)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${r}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function c(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function l(){let e=n.writeFile;n.writeFile=((t,...r)=>{try{s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(n,t,...r)});let t=n.writeFileSync;n.writeFileSync=(e,...r)=>(s(e),t.call(n,e,...r));let i=n.rm;n.rm=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(n,e,...t)});let a=n.rmSync;n.rmSync=(e,...t)=>(s(e),a.call(n,e,...t));let o=n.unlink;n.unlink=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(n,e,...t)});let l=n.unlinkSync;n.unlinkSync=(e,...t)=>(s(e),l.call(n,e,...t));let u=n.mkdir;n.mkdir=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return u.call(n,e,...t)});let d=n.mkdirSync;n.mkdirSync=(e,...t)=>(s(e),d.call(n,e,...t));let f=n.rmdir;n.rmdir=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return f.call(n,e,...t)});let p=n.rmdirSync;n.rmdirSync=(e,...t)=>(s(e),p.call(n,e,...t));let m=n.appendFile;n.appendFile=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return m.call(n,e,...t)});let h=n.appendFileSync;n.appendFileSync=(e,...t)=>(s(e),h.call(n,e,...t));let g=n.copyFile;n.copyFile=((e,t,...r)=>{try{s(e),s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return g.call(n,e,t,...r)});let _=n.copyFileSync;n.copyFileSync=(e,t,...r)=>(s(e),s(t),_.call(n,e,t,...r));let v=n.rename;n.rename=((e,t,...r)=>{try{s(e),s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return v.call(n,e,t,...r)});let y=n.renameSync;n.renameSync=(e,t,...r)=>(s(e),s(t),y.call(n,e,t,...r));let b=n.createWriteStream;n.createWriteStream=(e,...t)=>(s(e),b.call(n,e,...t));let x=n.open;n.open=((e,t,...r)=>{if(c(typeof t==`function`?void 0:t))try{s(e)}catch(e){let n=r[r.length-1],i=typeof t==`function`?t:typeof n==`function`?n:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return x.call(n,e,t,...r)});let S=n.openSync;n.openSync=(e,t,...r)=>(c(t)&&s(e),S.call(n,e,t,...r));let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(s(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(s(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(s(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(s(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(s(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(s(t),o.call(e,t,...n)));let l=e.copyFile;l&&(e.copyFile=async(t,n,...r)=>(s(t),s(n),l.call(e,t,n,...r)));let u=e.rename;u&&(e.rename=async(t,n,...r)=>(s(t),s(n),u.call(e,t,n,...r)));let d=e.open;d&&(e.open=async(t,n,...r)=>(c(n)&&s(t),d.call(e,t,n,...r)))};C(n.promises),C(r)}const{emitWarning:u}=process;process.emitWarning=(e,...t)=>{let n=e?.code;if(!(e&&typeof e==`object`&&n===`DEP0205`)&&!(typeof e==`string`&&t.includes(`DEP0205`)))return Reflect.apply(u,process,[e,...t])},l();try{Promise.resolve().then(()=>import(`node:module`)).then(({enableCompileCache:e})=>{typeof e==`function`&&e()}).catch(()=>{})}catch{}const d=[`theme`,`dev`].join(`:`);let f=!1;async function p(){if(f)return;let{configure:e}=await import(`@bdocs/dui`);e({prefix:`boltdocs`}),f=!0}const m=i(`boltdocs`);m.command(`dev [root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(...e)=>{await p();let{devAction:t}=await import(`../dev-B49V6O6p.mjs`);return t(...e)}),m.command(`[root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(e=process.cwd(),t)=>{if(e===d)throw Error(`Unknown command: ${d}`);await p();let{devAction:n}=await import(`../dev-B49V6O6p.mjs`);return n(e,t)}),m.command(`build [root]`,`Build for production`).action(async(...e)=>{await p();let{buildAction:t}=await import(`../build-BVoMHMhw.mjs`);return t(...e)}),m.command(`preview [root]`,`Preview production build`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(async(...e)=>{await p();let{previewAction:t}=await import(`../build-BVoMHMhw.mjs`);return t(...e)}),m.command(`audit [root]`,`Audit configured plugins for security warnings`).action(async(...e)=>{let{auditAction:t}=await import(`../audit-CMc_ydRr.mjs`);return t(...e)}),m.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{await p();let{doctorAction:n}=await import(`../doctor-i8Qmd8DJ.mjs`).then(e=>e.t);await n(e,t)}),m.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).option(`--type <"major"|"minor"|"patch">`,`Filter by version type (major, minor, or patch)`).action(async(e,t)=>{await p();let{generateChangelog:n}=await import(`../generator-CFukoGa0.mjs`);await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0,type:t.type})});const h=e(import.meta.url)(`../../package.json`);m.version(h.version),m.parse();export{};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../chunk-D1Md3oWO.cjs`);const e=require(`../node-B4GvEOqF.cjs`),t=require(`../utils-ej6_SjIZ.cjs`),n=require(`../plugin-context-BxF88sW4.cjs`),r=require(`./cache.cjs`),i=require(`../routes-C0kb4ue6.cjs`),a=require(`../config-CrsQJHQz.cjs`),o=require(`../registry-DLJIooEu.cjs`),s=require(`../handler-Ch-Q9NAB.cjs`),c=require(`../adapters-DwDTQoCG.cjs`);let l=require(`@bdocs/unist-utils`);exports.BUILTIN_HIGHLIGHTERS=o.t,exports.BoltdocsPluginStore=e.d,exports.DEFAULT_HIGHLIGHTER=o.n,exports.PluginCompatibilityError=e.f,exports.PluginError=e.p,exports.PluginHookError=e.m,exports.PluginLifecycleManager=e.o,exports.PluginValidationError=e.h,exports.createArticleStructuredData=e.g,exports.createBreadcrumbStructuredData=e._,exports.createPlugin=e.i,exports.createStructuredData=e.v,exports.createViteConfig=e.n,exports.createWebSiteStructuredData=e.y,exports.default=e.t,exports.defineConfig=a.r,exports.definePlugin=e.a,exports.defineStructuredData=e.b,exports.flushCache=r.flushCache,exports.generateEntryCode=n.g,exports.generateRoutes=i.t,exports.getCodeHighlighterAdapter=o.r,exports.getHighlighterNames=o.i,exports.handleAwsFeedback=c.t,exports.handleFeedback=s.t,exports.handleNetlifyFeedback=c.r,exports.handleVercelFeedback=c.i,exports.handleWebFeedback=c.n,exports.invalidateRouteCache=i.i,exports.isHighlighterRegistered=o.a,Object.defineProperty(exports,`normalizeCodeHighlightConfig`,{enumerable:!0,get:function(){return l.normalizeCodeHighlightConfig}}),exports.normalizePath=t.u,exports.prewarmCodeHighlighting=o.o,exports.prewarmHighlighter=o.s,exports.registerHighlighter=o.c,exports.registerPluginHighlighter=o.l,exports.resolveConfig=a.t,exports.resolvePluginHook=e.s,exports.sanitizeFilename=t.f,exports.validatePlugins=e.u,Object.keys(l).forEach(function(e){e!==`default`&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return l[e]}})});
6
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../chunk-D1Md3oWO.cjs`);const e=require(`../node-BljvHMpS.cjs`),t=require(`../utils-ej6_SjIZ.cjs`),n=require(`../plugin-context-CscLcXjH.cjs`),r=require(`./cache.cjs`),i=require(`../routes-C0kb4ue6.cjs`),a=require(`../config-CrsQJHQz.cjs`),o=require(`../registry-DLJIooEu.cjs`),s=require(`../handler-Ch-Q9NAB.cjs`),c=require(`../adapters-DwDTQoCG.cjs`);let l=require(`@bdocs/unist-utils`);exports.BUILTIN_HIGHLIGHTERS=o.t,exports.BoltdocsPluginStore=e.d,exports.DEFAULT_HIGHLIGHTER=o.n,exports.PluginCompatibilityError=e.f,exports.PluginError=e.p,exports.PluginHookError=e.m,exports.PluginLifecycleManager=e.o,exports.PluginValidationError=e.h,exports.createArticleStructuredData=e.g,exports.createBreadcrumbStructuredData=e._,exports.createPlugin=e.i,exports.createStructuredData=e.v,exports.createViteConfig=e.n,exports.createWebSiteStructuredData=e.y,exports.default=e.t,exports.defineConfig=a.r,exports.definePlugin=e.a,exports.defineStructuredData=e.b,exports.flushCache=r.flushCache,exports.generateEntryCode=n.g,exports.generateRoutes=i.t,exports.getCodeHighlighterAdapter=o.r,exports.getHighlighterNames=o.i,exports.handleAwsFeedback=c.t,exports.handleFeedback=s.t,exports.handleNetlifyFeedback=c.r,exports.handleVercelFeedback=c.i,exports.handleWebFeedback=c.n,exports.invalidateRouteCache=i.i,exports.isHighlighterRegistered=o.a,Object.defineProperty(exports,`normalizeCodeHighlightConfig`,{enumerable:!0,get:function(){return l.normalizeCodeHighlightConfig}}),exports.normalizePath=t.u,exports.prewarmCodeHighlighting=o.o,exports.prewarmHighlighter=o.s,exports.registerHighlighter=o.c,exports.registerPluginHighlighter=o.l,exports.resolveConfig=a.t,exports.resolvePluginHook=e.s,exports.sanitizeFilename=t.f,exports.validatePlugins=e.u,Object.keys(l).forEach(function(e){e!==`default`&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return l[e]}})});
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{g as e}from"../plugin-context-BKK-nfOd.mjs";import{_ as t,a as n,b as r,c as i,d as a,f as o,g as s,h as c,i as l,m as u,n as d,o as f,p,r as m,t as h,v as g,x as _,y as v}from"../node-DwgtnlGU.mjs";import{f as y,u as b}from"../utils-8lzafE49.mjs";import{flushCache as x}from"./cache.mjs";import{r as S,t as C}from"../routes-C4wrLWwu.mjs";import{i as w,n as T}from"../config-DC0nMMk7.mjs";import{a as E,c as D,i as O,l as k,n as A,o as j,r as M,s as N,t as P}from"../registry-CHh8A5as.mjs";import{t as F}from"../handler-Lex5DbvG.mjs";import{i as I,n as L,r as R,t as z}from"../adapters-BKzKe2mO.mjs";export*from"@bdocs/unist-utils";export{P as BUILTIN_HIGHLIGHTERS,o as BoltdocsPluginStore,A as DEFAULT_HIGHLIGHTER,p as PluginCompatibilityError,u as PluginError,c as PluginHookError,f as PluginLifecycleManager,s as PluginValidationError,t as createArticleStructuredData,g as createBreadcrumbStructuredData,l as createPlugin,v as createStructuredData,d as createViteConfig,r as createWebSiteStructuredData,h as default,w as defineConfig,n as definePlugin,_ as defineStructuredData,x as flushCache,e as generateEntryCode,C as generateRoutes,M as getCodeHighlighterAdapter,O as getHighlighterNames,z as handleAwsFeedback,F as handleFeedback,R as handleNetlifyFeedback,I as handleVercelFeedback,L as handleWebFeedback,S as invalidateRouteCache,E as isHighlighterRegistered,m as normalizeCodeHighlightConfig,b as normalizePath,j as prewarmCodeHighlighting,N as prewarmHighlighter,D as registerHighlighter,k as registerPluginHighlighter,T as resolveConfig,i as resolvePluginHook,y as sanitizeFilename,a as validatePlugins};
6
+ import{g as e}from"../plugin-context-DuSg-Hax.mjs";import{_ as t,a as n,b as r,c as i,d as a,f as o,g as s,h as c,i as l,m as u,n as d,o as f,p,r as m,t as h,v as g,x as _,y as v}from"../node-CWxGw4H4.mjs";import{f as y,u as b}from"../utils-8lzafE49.mjs";import{flushCache as x}from"./cache.mjs";import{r as S,t as C}from"../routes-C4wrLWwu.mjs";import{i as w,n as T}from"../config-DC0nMMk7.mjs";import{a as E,c as D,i as O,l as k,n as A,o as j,r as M,s as N,t as P}from"../registry-CHh8A5as.mjs";import{t as F}from"../handler-Lex5DbvG.mjs";import{i as I,n as L,r as R,t as z}from"../adapters-BKzKe2mO.mjs";export*from"@bdocs/unist-utils";export{P as BUILTIN_HIGHLIGHTERS,o as BoltdocsPluginStore,A as DEFAULT_HIGHLIGHTER,p as PluginCompatibilityError,u as PluginError,c as PluginHookError,f as PluginLifecycleManager,s as PluginValidationError,t as createArticleStructuredData,g as createBreadcrumbStructuredData,l as createPlugin,v as createStructuredData,d as createViteConfig,r as createWebSiteStructuredData,h as default,w as defineConfig,n as definePlugin,_ as defineStructuredData,x as flushCache,e as generateEntryCode,C as generateRoutes,M as getCodeHighlighterAdapter,O as getHighlighterNames,z as handleAwsFeedback,F as handleFeedback,R as handleNetlifyFeedback,I as handleVercelFeedback,L as handleWebFeedback,S as invalidateRouteCache,E as isHighlighterRegistered,m as normalizeCodeHighlightConfig,b as normalizePath,j as prewarmCodeHighlighting,N as prewarmHighlighter,D as registerHighlighter,k as registerPluginHighlighter,T as resolveConfig,i as resolvePluginHook,y as sanitizeFilename,a as validatePlugins};