boltdocs 3.2.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/bin/boltdocs.js +20 -1
  2. package/bin/preloader.mjs +28 -0
  3. package/dist/{adapters-ByYY44Zy.mjs → adapters-BmB4TKCc.mjs} +1 -1
  4. package/dist/{adapters-DvmtpdSF.cjs → adapters-Cp1Maurn.cjs} +1 -1
  5. package/dist/audit-CLXjMzwQ.mjs +11 -0
  6. package/dist/audit-COgjnQ5n.cjs +11 -0
  7. package/dist/build-BS2hefiL.cjs +6 -0
  8. package/dist/build-C5mNh9D-.mjs +6 -0
  9. package/dist/cache-CJE9nWLE.cjs +6 -0
  10. package/dist/cache-OY4HzIXl.mjs +6 -0
  11. package/dist/callout-oI_LCbxS.d.ts +71 -0
  12. package/dist/callout-plqx9Dw-.d.cts +71 -0
  13. package/dist/client/index.cjs +1265 -569
  14. package/dist/client/index.d.cts +3 -542
  15. package/dist/client/index.d.ts +3 -542
  16. package/dist/client/index.js +1167 -521
  17. package/dist/client/mdx.cjs +1 -1
  18. package/dist/client/mdx.d.cts +24 -2
  19. package/dist/client/mdx.d.ts +24 -2
  20. package/dist/client/mdx.js +1 -1
  21. package/dist/client/primitives.cjs +14 -4
  22. package/dist/client/primitives.d.cts +281 -38
  23. package/dist/client/primitives.d.ts +281 -38
  24. package/dist/client/primitives.js +5 -5
  25. package/dist/client/router.cjs +49 -0
  26. package/dist/client/router.d.cts +3 -0
  27. package/dist/client/router.d.ts +3 -0
  28. package/dist/client/router.js +8 -0
  29. package/dist/client/theme/reset.css +40 -4
  30. package/dist/{config-BpzaPsJj.d.cts → config-BoRlz0Ca.d.mts} +157 -14
  31. package/dist/{config-xtS0ZkMm.d.mts → config-CTsX_tGM.d.cts} +157 -14
  32. package/dist/config-Ceib-AOH.cjs +7 -0
  33. package/dist/config-DGLQsy7y.mjs +7 -0
  34. package/dist/{package-BcISI5-P.cjs → config-files-BYHDOrKn.mjs} +1 -1
  35. package/dist/config-files-D9cdBMl2.cjs +6 -0
  36. package/dist/config-jJh8WYJI.cjs +6 -0
  37. package/dist/csp-C4LmN1ko.cjs +6 -0
  38. package/dist/csp-D6JEOqKh.mjs +6 -0
  39. package/dist/dev-Ch3hEe5Y.cjs +6 -0
  40. package/dist/dev-QPNxysrd.mjs +6 -0
  41. package/dist/{docs-layout-BdtZ9z6s.js → docs-layout-CbZ7LDRe.js} +504 -249
  42. package/dist/{docs-layout-CFWI15Id.cjs → docs-layout-vzfXed1Q.cjs} +516 -254
  43. package/dist/{doctor-BBtmNJE0.cjs → doctor-B1_YL0Wt.cjs} +1 -1
  44. package/dist/doctor-C7whl4ED.cjs +6 -0
  45. package/dist/doctor-DmQnml2k.mjs +6 -0
  46. package/dist/{generator-COepVWGi.cjs → generator-BlW45ST7.cjs} +5 -3
  47. package/dist/{generator-CcOBN5vI.mjs → generator-BwknNejd.mjs} +5 -3
  48. package/dist/{handler-XX7cLTqe.cjs → handler-CDEoKARD.cjs} +2 -2
  49. package/dist/{handler-DzQae4eA.mjs → handler-D7UyZlPm.mjs} +2 -2
  50. package/dist/{image-Bz87fCla.js → image-B-NDSDuY.js} +129 -11
  51. package/dist/{image-C4TlpMHn.cjs → image-Hnaa2bJd.cjs} +175 -9
  52. package/dist/index-C56bL-A-.d.cts +1344 -0
  53. package/dist/{sidebar-COTaMHR-.d.ts → index-CPUUKzxD.d.cts} +344 -327
  54. package/dist/{sidebar-CrEdJuHX.d.cts → index-Ci4kfOHF.d.ts} +344 -327
  55. package/dist/index-Cu9H6CRa.d.ts +1344 -0
  56. package/dist/link-CgdI6O2o.js +872 -0
  57. package/dist/{link-D1Gjkb-2.cjs → link-vZjmD-es.cjs} +406 -223
  58. package/dist/{mdx-BuO6a1f7.js → mdx-BRT71V5Q.js} +211 -168
  59. package/dist/{mdx-CD-tSjRG.cjs → mdx-D0Absdq5.cjs} +225 -169
  60. package/dist/native-BNCY7PRF.cjs +6 -0
  61. package/dist/native-Di9Fnfrv.mjs +6 -0
  62. package/dist/native-Kre2T5eS.cjs +6 -0
  63. package/dist/node/cache.cjs +1 -1
  64. package/dist/node/cache.d.cts +19 -3
  65. package/dist/node/cache.d.mts +19 -3
  66. package/dist/node/cache.mjs +1 -1
  67. package/dist/node/cli-entry.cjs +1 -9
  68. package/dist/node/cli-entry.mjs +1 -9
  69. package/dist/node/index.cjs +1 -1
  70. package/dist/node/index.d.cts +245 -17
  71. package/dist/node/index.d.mts +246 -18
  72. package/dist/node/index.mjs +1 -1
  73. package/dist/node/mdx/shiki-adapter.cjs +1 -1
  74. package/dist/node/mdx/shiki-adapter.d.cts +24 -3
  75. package/dist/node/mdx/shiki-adapter.d.mts +24 -2
  76. package/dist/node/mdx/shiki-adapter.mjs +1 -1
  77. package/dist/node-Du5UL5wo.mjs +23 -0
  78. package/dist/node-DunuGqyp.cjs +23 -0
  79. package/dist/{package-CCYEAYeA.mjs → package-DA848keM.mjs} +1 -1
  80. package/dist/package-wplzySjz.cjs +6 -0
  81. package/dist/pages-external-BBw8ObVK.mjs +6 -0
  82. package/dist/pages-external-DPiPFxxP.cjs +6 -0
  83. package/dist/parser-BqTOsEUa.cjs +6 -0
  84. package/dist/parser-CGMY2lJ7.mjs +6 -0
  85. package/dist/plugin-BcTzvHAJ.mjs +69 -0
  86. package/dist/plugin-TulVMt1z.cjs +69 -0
  87. package/dist/plugin-context-C-l90hFt.cjs +15 -0
  88. package/dist/plugin-context-wqHNSZum.mjs +15 -0
  89. package/dist/plugin-lifecycle-B1BzSHdn.cjs +6 -0
  90. package/dist/resolve-B7vWOd8R.cjs +6 -0
  91. package/dist/resolve-C2kKnk_5.mjs +6 -0
  92. package/dist/resolve-It1Iug83.cjs +6 -0
  93. package/dist/resolve-YdTrt_FG.mjs +6 -0
  94. package/dist/router-C3kygdRK.cjs +1285 -0
  95. package/dist/router-CZBxMRAH.js +987 -0
  96. package/dist/routes-BL4y79tb.mjs +6 -0
  97. package/dist/routes-C2nPecwu.cjs +6 -0
  98. package/dist/routes-U9L8psZ9.cjs +6 -0
  99. package/dist/{search-dialog-DHqwjJuG.cjs → search-dialog-BCOHQGSt.cjs} +1 -1
  100. package/dist/search-dialog-Bp_P1MPP.js +481 -0
  101. package/dist/{search-dialog-DFnlx8LO.js → search-dialog-BqkzDTq2.js} +107 -57
  102. package/dist/{search-dialog-BRFno7HD.cjs → search-dialog-CIeIUhAn.cjs} +218 -43
  103. package/dist/{search-dialog-D6TvjcuV.js → search-dialog-DtmxmfEu.js} +1 -1
  104. package/dist/{search-dialog-B1NERUNx.cjs → search-dialog-x_qHU8ty.cjs} +107 -58
  105. package/dist/server/index.cjs +1 -1
  106. package/dist/server/index.d.mts +1 -1
  107. package/dist/server/index.mjs +1 -1
  108. package/dist/update-check-BKqmYfwT.cjs +11 -0
  109. package/dist/update-check-QnrVR3q1.mjs +11 -0
  110. package/dist/utils-8lzafE49.mjs +7 -0
  111. package/dist/utils-ej6_SjIZ.cjs +7 -0
  112. package/dist/virtual-modules-Ca5tHk1X.cjs +30 -0
  113. package/dist/virtual-modules-Dlgt1fP0.mjs +30 -0
  114. package/package.json +18 -16
  115. package/src/shared/mdx-path.ts +12 -0
  116. package/src/shared/structured-data.ts +145 -0
  117. package/src/shared/types.ts +220 -16
  118. package/dist/banner-BMop1KLF.d.ts +0 -100
  119. package/dist/banner-CVD0GugR.d.cts +0 -100
  120. package/dist/cache-CO4Dy2uQ.cjs +0 -6
  121. package/dist/cache-Dk53iOo6.mjs +0 -6
  122. package/dist/config-CCXp3aXO.mjs +0 -7
  123. package/dist/config-CMd4XoFq.cjs +0 -6
  124. package/dist/config-DlGoEM9D.cjs +0 -7
  125. package/dist/csp-CRp_3U7a.cjs +0 -6
  126. package/dist/csp-oTC2ygvF.mjs +0 -6
  127. package/dist/doctor-Bv16QSrI.cjs +0 -7
  128. package/dist/doctor-DOAbSaiL.mjs +0 -7
  129. package/dist/headers-Ddwek8K7.mjs +0 -6
  130. package/dist/headers-dg4SDrjY.cjs +0 -6
  131. package/dist/link-2PzgTnaP.js +0 -673
  132. package/dist/meta-loader-C4Hu9RN9.mjs +0 -6
  133. package/dist/meta-loader-Dq1zcFnh.cjs +0 -6
  134. package/dist/node-BXtqM1uH.mjs +0 -6
  135. package/dist/node-BlVk4EVg.cjs +0 -104
  136. package/dist/node-DOf4zhWc.mjs +0 -104
  137. package/dist/node-aD1eisrR.cjs +0 -6
  138. package/dist/pages-external-BYa4JSda.mjs +0 -6
  139. package/dist/pages-external-XkYIs-d5.cjs +0 -6
  140. package/dist/parser-DCiEWkSk.cjs +0 -8
  141. package/dist/parser-qk9FIHJ7.mjs +0 -8
  142. package/dist/plugin-C95kvu6h.mjs +0 -73
  143. package/dist/plugin-DM3u2bVj.cjs +0 -73
  144. package/dist/routes-BW6zsk7Z.mjs +0 -6
  145. package/dist/routes-BgoIB5wb.cjs +0 -6
  146. package/dist/routes-CORVxc02.cjs +0 -6
  147. package/dist/search-dialog-BmxHiKwt.js +0 -312
  148. package/dist/shiki-adapter-CoQ6jyJ4.cjs +0 -6
  149. package/dist/shiki-adapter-D-aKw7PP.mjs +0 -6
  150. package/dist/utils-Crm9oPcV.mjs +0 -7
  151. package/dist/utils-D6Xtj0FZ.cjs +0 -7
  152. /package/dist/{errors-0zGHRLue.mjs → errors-N-b6Sn2G.mjs} +0 -0
  153. /package/dist/{index-1KsTDq4o.d.mts → index-lFoyzCXy.d.mts} +0 -0
  154. /package/dist/{types-generator-BXhv7Ill.cjs → types-generator-DDSA93P3.cjs} +0 -0
  155. /package/dist/{types-generator-bDPvUztF.mjs → types-generator-DG1GX1EZ.mjs} +0 -0
@@ -3,12 +3,12 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const require_link = require('./link-D1Gjkb-2.cjs');
6
+ const require_router = require('./router-C3kygdRK.cjs');
7
+ const require_link = require('./link-vZjmD-es.cjs');
7
8
  let react = require("react");
8
- react = require_link.__toESM(react);
9
9
  let react_jsx_runtime = require("react/jsx-runtime");
10
10
  let react_aria_components = require("react-aria-components");
11
- react_aria_components = require_link.__toESM(react_aria_components);
11
+ react_aria_components = require_router.__toESM(react_aria_components);
12
12
 
13
13
  //#region src/client/components/primitives/button.tsx
14
14
  function Button({ ...props }) {
@@ -56,20 +56,20 @@ var ErrorBoundary = class extends react.Component {
56
56
  return children;
57
57
  }
58
58
  };
59
- function ErrorBoundaryFallback({ error, resetErrorBoundary }) {
59
+ function ErrorBoundaryFallback({ error, resetErrorBoundary, className, titleClassName, messageClassName, buttonClassName }) {
60
60
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
61
- className: "flex flex-col items-center justify-center min-h-[40vh] text-center gap-4 px-6 py-8 border border-subtle bg-surface rounded-2xl max-w-lg mx-auto shadow-xs",
61
+ className: require_link.cn("flex flex-col items-center justify-center min-h-[40vh] text-center gap-4 px-6 py-8 border border-subtle bg-surface rounded-2xl max-w-lg mx-auto shadow-xs", className),
62
62
  children: [
63
63
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
64
- className: "text-lg font-bold text-rose-600 dark:text-rose-400",
64
+ className: require_link.cn("text-lg font-bold text-danger-500", titleClassName),
65
65
  children: "Something went wrong"
66
66
  }),
67
67
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
68
- className: "text-sm text-muted max-w-sm leading-relaxed",
68
+ className: require_link.cn("text-sm text-muted max-w-sm leading-relaxed", messageClassName),
69
69
  children: error?.message || "An unexpected error occurred while rendering this page."
70
70
  }),
71
71
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
72
- className: "rounded-xl border border-subtle bg-main px-6 py-2.5 text-xs font-semibold text-body hover:bg-primary-50/50 hover:border-primary-500/50 transition-all duration-300 cursor-pointer outline-none select-none",
72
+ className: require_link.cn("rounded-xl border border-subtle bg-main px-6 py-2.5 text-xs font-semibold text-body hover:bg-primary-50/50 hover:border-primary-500/50 transition-all duration-300 cursor-pointer outline-none select-none", buttonClassName),
73
73
  onPress: resetErrorBoundary,
74
74
  children: "Try again"
75
75
  })
@@ -120,20 +120,20 @@ const Bluesky = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
120
120
  //#region src/client/components/primitives/navbar.tsx
121
121
  function Navbar({ children, className, ...props }) {
122
122
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("header", {
123
- className: require_link.cn("boltdocs-navbar sticky top-0 z-50 w-full", className),
123
+ className: require_link.cn("boltdocs-navbar sticky top-0 z-50", className),
124
124
  ...props,
125
125
  children
126
126
  });
127
127
  }
128
128
  function NavbarContent({ children, className }) {
129
129
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
130
- className: require_link.cn("mx-auto flex lg:h-navbar max-w-(--breakpoint-3xl) items-center justify-between px-4 md:px-6", className),
130
+ className: require_link.cn("mx-auto flex lg:h-navbar max-w-(--breakpoint-3xl) items-center px-4 md:px-6", className),
131
131
  children
132
132
  });
133
133
  }
134
134
  function NavbarLeft({ children, className }) {
135
135
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
136
- className: require_link.cn("flex flex-1 items-center justify-start gap-4 min-w-0", className),
136
+ className: require_link.cn("flex flex-1 items-center gap-4 min-w-0", className),
137
137
  children
138
138
  });
139
139
  }
@@ -145,27 +145,29 @@ function NavbarRight({ children, className }) {
145
145
  }
146
146
  function NavbarCenter({ children, className }) {
147
147
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
148
- className: require_link.cn("hidden lg:flex flex-1 justify-center items-center gap-4 px-4 min-w-0 w-full", className),
148
+ className: require_link.cn("hidden lg:flex flex-1 justify-center items-center gap-4 px-4 min-w-0", className),
149
149
  children
150
150
  });
151
151
  }
152
- function NavbarLogo({ src, alt, width = 24, height = 24, className, href = "/" }) {
152
+ function NavbarLogo({ src, alt, width = 24, height = 24, className, logoClassName, href = "/" }) {
153
+ const config = require_link.useConfig();
153
154
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Link, {
154
155
  href,
155
156
  className: require_link.cn("flex items-center gap-2 shrink-0 outline-none", className),
156
157
  children: src ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
157
- src,
158
+ src: require_link.resolvePublicAssetUrl(src, config.base),
158
159
  alt,
159
160
  width,
160
161
  height,
161
162
  fetchPriority: "high",
162
- className: "h-6 w-6 object-contain"
163
+ className: require_link.cn("h-6 w-6 object-contain", logoClassName)
163
164
  }) : null
164
165
  });
165
166
  }
166
- function NavbarTitle({ children, className, href = "/" }) {
167
+ function NavbarTitle({ children, className, linkClassName, href = "/" }) {
167
168
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Link, {
168
169
  href,
170
+ className: require_link.cn(linkClassName),
169
171
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
170
172
  className: require_link.cn("text-lg font-bold tracking-tight hidden sm:inline-block", className),
171
173
  children
@@ -178,45 +180,50 @@ function NavbarLinks({ children, className }) {
178
180
  children
179
181
  });
180
182
  }
181
- function NavbarLink({ label, href, to, className }) {
183
+ function NavbarLink({ label, href, to, className, iconClassName }) {
182
184
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_link.Link, {
183
185
  href,
184
186
  target: to === "external" ? "_blank" : void 0,
185
187
  className: require_link.cn("transition-all outline-none", className),
186
188
  children: [label, to === "external" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
187
- className: "ml-1 inline-block",
189
+ className: require_link.cn("ml-1 inline-block", iconClassName),
188
190
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.ExternalLink, { size: 12 })
189
191
  })]
190
192
  });
191
193
  }
192
- function NavbarDropdown({ label, className, children }) {
193
- const [isOpen, setIsOpen] = (0, react.useState)(false);
194
+ function NavbarDropdown({ label, className, triggerClassName, iconClassName, panelClassName, menuClassName, icon, open, onOpenChange, children }) {
195
+ const [internalOpen, setInternalOpen] = (0, react.useState)(false);
196
+ const isOpen = open ?? internalOpen;
197
+ const setOpen = (next) => {
198
+ setInternalOpen(next);
199
+ onOpenChange?.(next);
200
+ };
194
201
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
195
202
  className: require_link.cn("relative", className),
196
- onMouseEnter: () => {
197
- setIsOpen(true);
198
- },
199
- onMouseLeave: () => {
200
- setIsOpen(false);
201
- },
203
+ onMouseEnter: () => setOpen(true),
204
+ onMouseLeave: () => setOpen(false),
202
205
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
203
- className: require_link.cn("flex items-center gap-1 outline-none cursor-pointer select-none font-medium text-muted hover:text-body transition-colors"),
204
- children: [label, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
205
- className: require_link.cn("w-4 h-4 transition-transform", isOpen && "rotate-180"),
206
- fill: "none",
207
- viewBox: "0 0 24 24",
208
- stroke: "currentColor",
209
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
210
- strokeLinecap: "round",
211
- strokeLinejoin: "round",
212
- strokeWidth: 2,
213
- d: "M19 9l-7 7-7-7"
206
+ className: require_link.cn("flex items-center gap-1 outline-none select-none cursor-pointer", triggerClassName),
207
+ children: [label, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
208
+ className: require_link.cn("shrink-0", iconClassName),
209
+ children: icon ?? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
210
+ className: require_link.cn("size-6 transition-transform", isOpen && "rotate-180"),
211
+ fill: "none",
212
+ viewBox: "0 0 24 24",
213
+ stroke: "currentColor",
214
+ "aria-hidden": "true",
215
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
216
+ strokeLinecap: "round",
217
+ strokeLinejoin: "round",
218
+ strokeWidth: 2,
219
+ d: "M19 9l-7 7-7-7"
220
+ })
214
221
  })
215
222
  })]
216
223
  }), isOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
217
- className: "absolute top-full left-0 pt-1 z-[9999]",
224
+ className: require_link.cn("absolute top-full left-0 pt-1 z-9999", panelClassName),
218
225
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
219
- className: "min-w-[180px] p-1 bg-surface border border-subtle rounded-md shadow-lg",
226
+ className: require_link.cn("min-w-[180px] p-1 bg-surface border border-subtle rounded-md shadow-lg", menuClassName),
220
227
  children
221
228
  })
222
229
  })]
@@ -244,7 +251,7 @@ function NavbarSearchTriggerMobile({ className, onPress, children }) {
244
251
  children
245
252
  });
246
253
  }
247
- function NavbarSearchTriggerKbd({ className }) {
254
+ function NavbarSearchTriggerKbd({ className, kbdClassName }) {
248
255
  const [mounted, setMounted] = (0, react.useState)(false);
249
256
  const isMac = mounted && /Mac|iPod|iPhone|iPad/.test(navigator.platform);
250
257
  (0, react.useEffect)(() => {
@@ -253,10 +260,10 @@ function NavbarSearchTriggerKbd({ className }) {
253
260
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
254
261
  className: require_link.cn("hidden sm:flex items-center gap-1 pointer-events-none select-none", className),
255
262
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("kbd", {
256
- className: "flex items-center justify-center font-mono text-[10px]",
263
+ className: require_link.cn("flex items-center justify-center font-mono text-[10px]", kbdClassName),
257
264
  children: isMac ? "⌘" : "Ctrl"
258
265
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("kbd", {
259
- className: "flex items-center justify-center font-mono text-[10px]",
266
+ className: require_link.cn("flex items-center justify-center font-mono text-[10px]", kbdClassName),
260
267
  children: "K"
261
268
  })]
262
269
  });
@@ -304,26 +311,26 @@ function NavbarMore({ onPress, className }) {
304
311
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.MoreVertical, { size: 20 })
305
312
  });
306
313
  }
307
- function NavbarMobileMenu({ isOpen, onClose, children, className }) {
314
+ function NavbarMobileMenu({ isOpen, onClose, children, className, overlayClassName, modalClassName, dialogClassName, closeRowClassName, closeButtonClassName, navClassName }) {
308
315
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.ModalOverlay, {
309
316
  isOpen,
310
317
  onOpenChange: (open) => !open && onClose(),
311
318
  isDismissable: true,
312
- className: require_link.cn("fixed inset-0 z-60 md:hidden transition-all duration-100", className),
319
+ className: require_link.cn("fixed inset-0 z-60 md:hidden transition-all duration-100", className, overlayClassName),
313
320
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Modal, {
314
- className: "fixed inset-0 outline-none",
321
+ className: require_link.cn("fixed inset-0 outline-none", modalClassName),
315
322
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_aria_components.Dialog, {
316
- className: "relative h-full outline-none flex flex-col p-6 pt-[calc(1.5rem+env(safe-area-inset-top,0px))] pb-[calc(1.5rem+env(safe-area-inset-bottom,0px))] px-[calc(1.5rem+env(safe-area-inset-left,0px))]",
323
+ className: require_link.cn("relative h-full outline-none flex flex-col p-6 pt-[calc(1.5rem+env(safe-area-inset-top,0px))] pb-[calc(1.5rem+env(safe-area-inset-bottom,0px))] px-[calc(1.5rem+env(safe-area-inset-left,0px))]", dialogClassName),
317
324
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
318
- className: "flex items-center justify-between mb-6",
325
+ className: require_link.cn("flex items-center justify-between mb-6", closeRowClassName),
319
326
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Button, {
320
327
  onPress: onClose,
321
- className: "flex items-center justify-center outline-none cursor-pointer text-muted hover:text-body transition-colors",
328
+ className: require_link.cn("flex items-center justify-center outline-none cursor-pointer text-muted hover:text-body transition-colors", closeButtonClassName),
322
329
  "aria-label": "Close menu",
323
330
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.X, { size: 24 })
324
331
  })]
325
332
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("nav", {
326
- className: "flex-1 overflow-y-auto flex flex-col gap-4",
333
+ className: require_link.cn("flex-1 overflow-y-auto flex flex-col gap-4", navClassName),
327
334
  children
328
335
  })]
329
336
  })
@@ -339,6 +346,45 @@ function NavbarMobileLink({ label, href, to, onPress, className }) {
339
346
  children: label
340
347
  });
341
348
  }
349
+ function NavbarMobileLinkItem({ link, onClose, depth = 0, className, groupClassName, labelClassName, listClassName, renderItem }) {
350
+ const localizedHref = require_link.useLocalizedTo(link.href || "");
351
+ const { pathname } = require_router.useLocation();
352
+ const active = pathname === localizedHref;
353
+ const hasItems = link.items && link.items.length > 0;
354
+ const custom = renderItem?.({
355
+ link,
356
+ active,
357
+ depth,
358
+ localizedHref,
359
+ onClose
360
+ });
361
+ if (custom !== void 0 && custom !== null) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: custom });
362
+ if (hasItems) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
363
+ className: require_link.cn("flex flex-col gap-1", groupClassName, className),
364
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
365
+ className: require_link.cn("px-3 py-2 text-sm transition-all", active ? "text-body" : "text-muted/80 hover:text-body", labelClassName),
366
+ children: link.label
367
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
368
+ className: require_link.cn("flex flex-col gap-1 pl-4", listClassName),
369
+ children: link.items?.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavbarMobileLinkItem, {
370
+ link: item,
371
+ onClose,
372
+ depth: depth + 1,
373
+ className,
374
+ groupClassName,
375
+ labelClassName,
376
+ listClassName,
377
+ renderItem
378
+ }, item.href))
379
+ })]
380
+ });
381
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavbarMobileLink, {
382
+ label: link.label,
383
+ href: localizedHref,
384
+ onPress: onClose,
385
+ className: require_link.cn("transition-all", active ? "text-body" : "text-muted/80 hover:text-body", className)
386
+ });
387
+ }
342
388
  Navbar.Root = Navbar;
343
389
  Navbar.Left = NavbarLeft;
344
390
  Navbar.Right = NavbarRight;
@@ -357,6 +403,7 @@ Navbar.Content = NavbarContent;
357
403
  Navbar.More = NavbarMore;
358
404
  Navbar.MobileMenu = NavbarMobileMenu;
359
405
  Navbar.MobileLink = NavbarMobileLink;
406
+ Navbar.MobileLinkItem = NavbarMobileLinkItem;
360
407
 
361
408
  //#endregion
362
409
  //#region src/client/components/primitives/search-dialog.tsx
@@ -419,14 +466,13 @@ function SearchDialogClearButton({ className, ...props }) {
419
466
  /**
420
467
  * Pure, unstyled Autocomplete container (maps to RAC.Autocomplete)
421
468
  */
422
- function SearchDialogAutocomplete({ children, className, onSelectionChange, ...props }) {
469
+ function SearchDialogAutocomplete({ children, className, innerClassName, ...props }) {
423
470
  const Autocomplete = react_aria_components.Autocomplete;
424
471
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
425
472
  className: require_link.cn("flex-1 min-h-0", className),
426
473
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Autocomplete, {
427
474
  ...props,
428
- onSelectionChange,
429
- className: "flex flex-col min-h-0",
475
+ className: require_link.cn("flex flex-col min-h-0", innerClassName),
430
476
  children
431
477
  })
432
478
  });
@@ -444,23 +490,26 @@ function SearchDialogList({ children, className, ...props }) {
444
490
  /**
445
491
  * Pure, unstyled List Box Item (maps to RAC.ListBoxItem)
446
492
  */
447
- function SearchDialogItemRoot({ children, className, ...props }) {
493
+ function SearchDialogItemRoot({ children, className, hintClassName, renderHint, ...props }) {
448
494
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.ListBoxItem, {
449
495
  ...props,
450
496
  className: require_link.cn("group flex items-center outline-none cursor-pointer", className),
451
- children: (itemProps) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [children, (itemProps.isFocused || itemProps.isSelected) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
452
- className: "ml-auto opacity-50 flex items-center gap-1",
497
+ children: (itemProps) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [children, renderHint ? renderHint({
498
+ focused: itemProps.isFocused,
499
+ selected: itemProps.isSelected
500
+ }) : itemProps.isFocused || itemProps.isSelected ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
501
+ className: require_link.cn("ml-auto opacity-50 flex items-center gap-1", hintClassName),
453
502
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
454
503
  className: "text-[10px]",
455
504
  children: "Select"
456
505
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.CornerDownLeft, { size: 10 })]
457
- })] })
506
+ }) : null] })
458
507
  });
459
508
  }
460
- function SearchDialogItemIcon({ isHeading, className }) {
509
+ function SearchDialogItemIcon({ isHeading, className, icon }) {
461
510
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
462
511
  className: require_link.cn("shrink-0", className),
463
- children: isHeading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Hash, { size: 18 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.FileText, { size: 18 })
512
+ children: icon ?? (isHeading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Hash, { size: 18 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.FileText, { size: 18 }))
464
513
  });
465
514
  }
466
515
  function SearchDialogItemTitle({ children, className }) {
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../adapters-DvmtpdSF.cjs`);exports.handleAwsFeedback=e.t,exports.handleNetlifyFeedback=e.r,exports.handleVercelFeedback=e.i,exports.handleWebFeedback=e.n;
6
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../adapters-Cp1Maurn.cjs`);exports.handleAwsFeedback=e.t,exports.handleNetlifyFeedback=e.r,exports.handleVercelFeedback=e.i,exports.handleWebFeedback=e.n;
@@ -1,3 +1,3 @@
1
1
 
2
- import { i as handleVercelFeedback, n as handleWebFeedback, r as handleNetlifyFeedback, t as handleAwsFeedback } from "../index-1KsTDq4o.mjs";
2
+ import { i as handleVercelFeedback, n as handleWebFeedback, r as handleNetlifyFeedback, t as handleAwsFeedback } from "../index-lFoyzCXy.mjs";
3
3
  export { handleAwsFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback };
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{i as e,n as t,r as n,t as r}from"../adapters-ByYY44Zy.mjs";export{r as handleAwsFeedback,n as handleNetlifyFeedback,e as handleVercelFeedback,t as handleWebFeedback};
6
+ import{i as e,n as t,r as n,t as r}from"../adapters-BmB4TKCc.mjs";export{r as handleAwsFeedback,n as handleNetlifyFeedback,e as handleVercelFeedback,t as handleWebFeedback};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ const e=require(`./chunk-D1Md3oWO.cjs`);let t=require(`node:path`);t=e.r(t);let n=require(`node:fs`);n=e.r(n);let r=require(`@bdocs/dui`),i=require(`node:module`),a=require(`node:url`),o=require(`node:os`);o=e.r(o);const s=[{pos:0,color:`#95c0ff`},{pos:.55,color:`#3d8bfa`},{pos:1,color:`#2769db`}],c=`#3d8bfa`,l=c;function u(e){if(!r.isColorSupported||(0,r.isPlainMode)())return e;let t=(0,r.gradient)(e.length,[...s]);return[...e].map((e,n)=>(0,r.colorize)(e,t[n],`fg`)).join(``)}function d(e,t=!1){return(0,r.badge)({label:e,colors:{text:`#ffffff`,bg:t?`#2769db`:c}})}function f(){return r.isColorSupported&&!(0,r.isPlainMode)()?(0,r.colorize)(`●`,c,`fg`):`●`}function p(e){return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function m(e){return e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(` `).map((e,t)=>t===0||/^[A-Z0-9]{2,}$/.test(e)?e:e.toLowerCase()).join(` `)}function h(){let e=(0,a.fileURLToPath)(require(`url`).pathToFileURL(__filename).href),r=t.default.dirname(e);for(let e=0;e<8;e++){try{let e=t.default.join(r,`package.json`),i=JSON.parse(n.default.readFileSync(e,`utf-8`));if(i.name===`boltdocs`&&typeof i.version==`string`)return i.version}catch{}r=t.default.dirname(r)}return``}const g=h();function _(e,t,n,i={}){let a=n?r.colors.dim(n):r.colors.gray(`use --host to expose`),o=e=>r.colors.dim(e.padEnd(9)),s=f(),m=[`${s} ${o(`Local`)}${(0,r.colorize)(t,c,`fg`)}`,`${s} ${o(`Network`)}${a}`];e===`dev`&&m.push(``,`${(0,r.kbd)({keys:[`h`,`Enter`]})} ${r.colors.dim(`show help`)}`);let h=i.readyIn===void 0?``:` ${r.colors.dim(`ready in ${p(i.readyIn)}`)}`,_=e===`dev`?`DEV`:`PREVIEW`,v=g?` ${d(`v${g}`,e===`preview`)}`:``;return`
7
+ ${r.colors.bold(`⚡`)} ${u(`boltdocs`)}${v} ${r.colors.dim(`—`)} ${r.colors.bold(e===`dev`?`dev server`:`preview server`)}${h}\n\n`+(0,r.round)(m,{title:d(_,e===`preview`),colors:{border:l}})+`
8
+ `}function v(e,t,n={}){return _(`dev`,e,t,n)}function y(e,t,n={}){return _(`preview`,e,t,n)}function b(e,t){let n=e=>r.colors.dim(e.padEnd(9)),i=f(),a=[`${i} ${n(`Current`)}${r.colors.red(e)} ${r.colors.gray(`→`)} ${r.colors.green(t)}`,``,`${i} ${n(`Install`)}${r.colors.bold(`npm install boltdocs@latest`)}`];return`
9
+ ${r.colors.bold(`⚡`)} ${u(`boltdocs`)} ${r.colors.dim(`—`)} ${r.colors.bold(`update available`)}\n\n`+(0,r.round)(a,{title:d(`UPDATE`,!0),colors:{border:l}})+`
10
+ `}function x(e){let t=p(e.totalMs),n=g?` ${d(`v${g}`)}`:``,i=[];if(i.push(` ${r.colors.bold(`⚡`)} ${u(`boltdocs`)}${n} ${r.colors.dim(`—`)} ${r.colors.bold(`build completed`)} ${r.colors.dim(`in ${t}`)}`),e.steps.length>0){let t=e.steps.map(e=>m(e.name)),n=Math.max(...t.map(e=>e.length))+2;i.push(``),e.steps.forEach((e,a)=>{let o=e.success?r.colors.green(`✔`):r.colors.red(`✘`),s=e.duration===void 0?``:r.colors.dim(p(e.duration)),c=e.details?r.colors.dim(` · ${e.details}`):``;i.push(` ${o} ${t[a].padEnd(n)}${s}${c}`)})}let a=[];return e.pages!==void 0&&a.push(`${e.pages} ${e.pages===1?`page`:`pages`}`),e.jsSize&&a.push(`JS ${e.jsSize}`),e.cssSize&&a.push(`CSS ${e.cssSize}`),e.outDir&&a.push(`→ ${e.outDir}`),a.length>0&&(i.push(``),i.push(` ${(0,r.colorize)(`Build summary`,c,`fg`)} ${r.colors.dim(`─`.repeat(17))}`),i.push(` ${a.join(r.colors.dim(` · `))}`)),`\n${i.join(`
11
+ `)}\n`}const S=(0,i.createRequire)(require(`url`).pathToFileURL(__filename).href);function C(e,t){let n=e.split(`-`)[0].split(`.`).map(Number),r=t.split(`-`)[0].split(`.`).map(Number);for(let e=0;e<Math.max(n.length,r.length);e++){let t=n[e]??0,i=r[e]??0;if(Number.isNaN(t)||Number.isNaN(i))return!1;if(t!==i)return t>i}return!1}async function w(){try{let e=new AbortController,t=setTimeout(()=>e.abort(),2e3),n=await fetch(`https://registry.npmjs.org/boltdocs/latest`,{signal:e.signal,headers:{Accept:`application/vnd.npm.install-v1+json`}});return clearTimeout(t),n.ok?(await n.json()).version??null:null}catch{return null}}async function T(){try{let e=(0,a.fileURLToPath)(require(`url`).pathToFileURL(__filename).href),r=t.default.dirname(e);for(let e=0;e<5;e++){let e=t.default.join(r,`package.json`);if(n.default.existsSync(e)){let t=JSON.parse(n.default.readFileSync(e,`utf-8`));if(t.name===`boltdocs`)return t.version}r=t.default.dirname(r)}}catch{}try{return S(`boltdocs/package.json`).version}catch{return`0.0.0`}}async function E(){let e=``;try{e=t.default.join(o.default.homedir(),`.boltdocs`,`update-check.json`)}catch{return}let r=0;try{if(n.default.existsSync(e)){let t=JSON.parse(n.default.readFileSync(e,`utf-8`));r=Number(t.lastCheck)||0}}catch{}let i=Date.now();if(i-r<864e5)return;try{n.default.mkdirSync(t.default.dirname(e),{recursive:!0}),n.default.writeFileSync(e,JSON.stringify({lastCheck:i}),`utf-8`)}catch{}let a=await T();if(a===`0.0.0`)return;let s=await w();s&&C(s,a)&&console.log(b(a,s))}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return E}});
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ import{createRequire as e}from"node:module";import t from"node:path";import{fileURLToPath as n}from"node:url";import r from"node:fs";import{badge as i,colorize as a,colors as o,gradient as s,isColorSupported as c,isPlainMode as l,kbd as u,round as d}from"@bdocs/dui";import f from"node:os";const p=[{pos:0,color:`#95c0ff`},{pos:.55,color:`#3d8bfa`},{pos:1,color:`#2769db`}],m=`#3d8bfa`,h=m;function g(e){if(!c||l())return e;let t=s(e.length,[...p]);return[...e].map((e,n)=>a(e,t[n],`fg`)).join(``)}function _(e,t=!1){return i({label:e,colors:{text:`#ffffff`,bg:t?`#2769db`:m}})}function v(){return c&&!l()?a(`●`,m,`fg`):`●`}function y(e){return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function b(e){return e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(` `).map((e,t)=>t===0||/^[A-Z0-9]{2,}$/.test(e)?e:e.toLowerCase()).join(` `)}function x(){let e=n(import.meta.url),i=t.dirname(e);for(let e=0;e<8;e++){try{let e=t.join(i,`package.json`),n=JSON.parse(r.readFileSync(e,`utf-8`));if(n.name===`boltdocs`&&typeof n.version==`string`)return n.version}catch{}i=t.dirname(i)}return``}const S=x();function C(e,t,n,r={}){let i=n?o.dim(n):o.gray(`use --host to expose`),s=e=>o.dim(e.padEnd(9)),c=v(),l=[`${c} ${s(`Local`)}${a(t,m,`fg`)}`,`${c} ${s(`Network`)}${i}`];e===`dev`&&l.push(``,`${u({keys:[`h`,`Enter`]})} ${o.dim(`show help`)}`);let f=r.readyIn===void 0?``:` ${o.dim(`ready in ${y(r.readyIn)}`)}`,p=e===`dev`?`DEV`:`PREVIEW`,b=S?` ${_(`v${S}`,e===`preview`)}`:``;return`
7
+ ${o.bold(`⚡`)} ${g(`boltdocs`)}${b} ${o.dim(`—`)} ${o.bold(e===`dev`?`dev server`:`preview server`)}${f}\n\n`+d(l,{title:_(p,e===`preview`),colors:{border:h}})+`
8
+ `}function w(e,t,n={}){return C(`dev`,e,t,n)}function T(e,t,n={}){return C(`preview`,e,t,n)}function E(e,t){let n=e=>o.dim(e.padEnd(9)),r=v(),i=[`${r} ${n(`Current`)}${o.red(e)} ${o.gray(`→`)} ${o.green(t)}`,``,`${r} ${n(`Install`)}${o.bold(`npm install boltdocs@latest`)}`];return`
9
+ ${o.bold(`⚡`)} ${g(`boltdocs`)} ${o.dim(`—`)} ${o.bold(`update available`)}\n\n`+d(i,{title:_(`UPDATE`,!0),colors:{border:h}})+`
10
+ `}function D(e){let t=y(e.totalMs),n=S?` ${_(`v${S}`)}`:``,r=[];if(r.push(` ${o.bold(`⚡`)} ${g(`boltdocs`)}${n} ${o.dim(`—`)} ${o.bold(`build completed`)} ${o.dim(`in ${t}`)}`),e.steps.length>0){let t=e.steps.map(e=>b(e.name)),n=Math.max(...t.map(e=>e.length))+2;r.push(``),e.steps.forEach((e,i)=>{let a=e.success?o.green(`✔`):o.red(`✘`),s=e.duration===void 0?``:o.dim(y(e.duration)),c=e.details?o.dim(` · ${e.details}`):``;r.push(` ${a} ${t[i].padEnd(n)}${s}${c}`)})}let i=[];return e.pages!==void 0&&i.push(`${e.pages} ${e.pages===1?`page`:`pages`}`),e.jsSize&&i.push(`JS ${e.jsSize}`),e.cssSize&&i.push(`CSS ${e.cssSize}`),e.outDir&&i.push(`→ ${e.outDir}`),i.length>0&&(r.push(``),r.push(` ${a(`Build summary`,m,`fg`)} ${o.dim(`─`.repeat(17))}`),r.push(` ${i.join(o.dim(` · `))}`)),`\n${r.join(`
11
+ `)}\n`}const O=e(import.meta.url);function k(e,t){let n=e.split(`-`)[0].split(`.`).map(Number),r=t.split(`-`)[0].split(`.`).map(Number);for(let e=0;e<Math.max(n.length,r.length);e++){let t=n[e]??0,i=r[e]??0;if(Number.isNaN(t)||Number.isNaN(i))return!1;if(t!==i)return t>i}return!1}async function A(){try{let e=new AbortController,t=setTimeout(()=>e.abort(),2e3),n=await fetch(`https://registry.npmjs.org/boltdocs/latest`,{signal:e.signal,headers:{Accept:`application/vnd.npm.install-v1+json`}});return clearTimeout(t),n.ok?(await n.json()).version??null:null}catch{return null}}async function j(){try{let e=n(import.meta.url),i=t.dirname(e);for(let e=0;e<5;e++){let e=t.join(i,`package.json`);if(r.existsSync(e)){let t=JSON.parse(r.readFileSync(e,`utf-8`));if(t.name===`boltdocs`)return t.version}i=t.dirname(i)}}catch{}try{return O(`boltdocs/package.json`).version}catch{return`0.0.0`}}async function M(){let e=``;try{e=t.join(f.homedir(),`.boltdocs`,`update-check.json`)}catch{return}let n=0;try{if(r.existsSync(e)){let t=JSON.parse(r.readFileSync(e,`utf-8`));n=Number(t.lastCheck)||0}}catch{}let i=Date.now();if(i-n<864e5)return;try{r.mkdirSync(t.dirname(e),{recursive:!0}),r.writeFileSync(e,JSON.stringify({lastCheck:i}),`utf-8`)}catch{}let a=await j();if(a===`0.0.0`)return;let o=await A();o&&k(o,a)&&console.log(E(a,o))}export{D as a,T as c,_ as i,S as n,w as o,m as r,g as s,M as t};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ import{r as e}from"./errors-N-b6Sn2G.mjs";import t from"node:fs";import n from"isomorphic-dompurify";import{z as r}from"zod";import{error as i}from"@bdocs/dui";const a=/^[a-zA-Z0-9\-_/.()[\]]+$/,o=r.looseObject({title:r.string().max(200).optional(),description:r.string().max(500).optional(),permalink:r.string().optional(),sidebarPosition:r.number().optional(),sidebarLabel:r.string().max(100).optional(),sidebarHidden:r.boolean().optional(),hidden:r.boolean().optional(),category:r.string().max(50).optional(),order:r.number().optional(),badge:r.union([r.string().max(50),r.object({text:r.string().max(50),expires:r.string().optional()})]).optional(),icon:r.string().max(50).optional(),date:r.union([r.string(),r.date()]).optional(),lastUpdated:r.union([r.string(),r.date()]).optional(),groupTitle:r.string().max(100).optional(),groupPosition:r.number().optional(),seo:r.record(r.string(),r.any()).optional(),tags:r.array(r.string().max(50)).optional(),author:r.union([r.string().max(100),r.object({name:r.string().max(100),avatar:r.string().optional(),url:r.string().optional(),image:r.string().optional()})]).optional(),draft:r.boolean().optional(),excerpt:r.string().max(500).optional(),coverImage:r.string().nullable().optional()});function s(e){let t=e.trim();if(!t.startsWith(`---`))return{data:{},content:e,rawMatter:``};let n=t.indexOf(`---`,3);if(n===-1||n===3)return{data:{},content:e,rawMatter:``};let r=t.slice(3,n).trim(),i=t.slice(n+3).trim();return u(r)?{data:{},content:i,rawMatter:r}:{data:d(r),content:i,rawMatter:r}}const c=/[\s:[\]{},-]/u;function l(e,t){return t===0||c.test(e[t-1])}function u(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r],a=r>0?e[r-1]:``;i===`'`&&!n&&a!==`\\`?t?l(e,r)||(t=!1):l(e,r)&&(t=!0):i===`"`&&!t&&a!==`\\`&&(n?l(e,r)||(n=!1):l(e,r)&&(n=!0))}return t||n}function d(e){let t=e.split(`
7
+ `),n={},r=0;for(;r<t.length;){let e=t[r],i=e.trim();if(!i||i.startsWith(`#`)){r++;continue}let a=i.indexOf(`:`);if(a!==-1){let o=i.slice(0,a).trim(),s=i.slice(a+1).trim();if(s===``){let i=f(t.slice(r+1),e.search(/\S|$/));i.value===void 0?r++:(n[o]=i.value,r+=i.linesConsumed+1)}else n[o]=p(s),r++}else r++}return n}function f(e,t){if(e.length===0)return{value:void 0,linesConsumed:0};if(e[0].trim().startsWith(`-`)){let n=[],r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(o.startsWith(`-`)){let e=o.slice(1).trim();if(e.includes(`:`)){let t={},r=e.split(/,\s*/);for(let e of r){let n=e.indexOf(`:`);if(n!==-1){let r=e.slice(0,n).trim();t[r]=p(e.slice(n+1).trim())}}n.push(t)}else n.push(p(e))}else if(a>t&&n.length>0){let e=n[n.length-1];if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e,n=o.indexOf(`:`);if(n!==-1){let e=o.slice(0,n).trim();t[e]=p(o.slice(n+1).trim())}}}else break;r++}return{value:n.length>0?n:void 0,linesConsumed:r}}let n={},r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(a<=t)break;let s=o.indexOf(`:`);if(s!==-1){let e=o.slice(0,s).trim();n[e]=p(o.slice(s+1).trim())}r++}return{value:Object.keys(n).length>0?n:void 0,linesConsumed:r}}function p(e){let t=e.trim();if(t===`true`)return!0;if(t===`false`)return!1;if(t===`null`||t===`~`)return null;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))return t.slice(1,-1);if(t.startsWith(`[`)&&t.endsWith(`]`)){let e=t.slice(1,-1).trim();return e?e.split(/,\s*/).map(e=>p(e.trim())):[]}if(t.startsWith(`{`)&&t.endsWith(`}`)){let e=t.slice(1,-1).trim(),n={},r=e.split(/,\s*/);for(let e of r){let t=e.indexOf(`:`);if(t!==-1){let r=e.slice(0,t).trim();n[r]=p(e.slice(t+1).trim())}}return n}return t}function m(e){return e.replace(/\\/g,`/`)}function h(e){return e.replace(/^\d+\./,``)}function g(e){let t=e.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function _(e){return/\.mdx?$/.test(e)}const v=new Map;function y(e){let n=Date.now(),r=v.get(e);if(r&&n-r.ts<2e3)return r.mtime;try{let r=t.statSync(e).mtimeMs;return v.set(e,{mtime:r,ts:n}),r}catch{return 0}}function b(t,n,r){let{data:i,content:a,rawMatter:c}=s(n);if(c&&c.length>10240)throw k(`FRONTMATTER_TOO_LARGE`,`Frontmatter block exceeds size limit`,{size:c.length,file:t}),new e(`Security breach: Frontmatter size exceeds limit of 10240 bytes`);if(!r)return{data:i,content:a};let l=o.safeParse(i),u={...l.success?l.data:{}};return u.title&&=E(u.title).trim(),u.description&&=E(u.description).trim(),{data:u,content:a}}async function x(n,r=!0){let i=``;try{i=await t.promises.readFile(n,`utf-8`);let{data:e,content:a}=b(n,i,r);if(r&&!e.lastUpdated)try{e.lastUpdated=(await t.promises.stat(n)).mtimeMs}catch{e.lastUpdated=0}return{data:e,content:a,raw:i}}catch(t){if(t instanceof e)throw t;return{data:{},content:i,raw:i}}}function S(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function C(e){return S(e)}function w(e){let t=m(e).split(`/`).map(e=>O(h(e))).join(`/`).replace(/\/$/,``);return t=t.replace(/\.mdx?$/,``),(t===`index`||t===`_index`||t.endsWith(`/index`)||t.endsWith(`/_index`))&&(t=t.replace(/_?index$/,``)),t.startsWith(`/`)||(t=`/`+t),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function T(e){return n.sanitize(e,{ALLOWED_TAGS:`b.i.em.strong.a.p.br.code.pre.span.div.h1.h2.h3.h4.h5.h6.ul.ol.li.table.thead.tbody.tr.th.td.blockquote.hr`.split(`.`),ALLOWED_ATTR:[`href`,`title`,`target`,`class`,`id`,`src`,`alt`,`width`,`height`],FORCE_BODY:!0})}n.addHook(`afterSanitizeAttributes`,e=>{if(e.hasAttribute(`href`)){let t=e.getAttribute(`href`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`href`)}if(e.hasAttribute(`src`)){let t=e.getAttribute(`src`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`src`)}});function E(e){return e?n.sanitize(e,{ALLOWED_TAGS:[]}).replace(/\s+/g,` `).trim():``}function D(e){return e.charAt(0).toUpperCase()+e.slice(1)}function O(e){return e.replace(/[^a-zA-Z0-9\-_/.]/g,``).split(`/`).filter(e=>e!==`..`&&e!==`.`).map(e=>e.replace(/\.\.+/g,`.`)).join(`/`)}function k(e,t,n={}){let r=new Date().toISOString(),a={...n};for(let e in a)typeof a[e]==`string`&&a[e].includes(`:`)&&(a[e]=a[e].split(/[\\/]/).pop()||a[e]);i(`[SECURITY][${r}] TYPE: ${e} | MESSAGE: ${t} | DETAILS: ${JSON.stringify(a)}`)}function A(){let e=process.env.NODE_ENV!==`production`,t=process.env.BOLTDOCS_CACHE_COMPRESS===void 0?!e:process.env.BOLTDOCS_CACHE_COMPRESS!==`0`;return{dir:process.env.BOLTDOCS_CACHE_DIR||`.boltdocs/cache`,noCache:process.env.BOLTDOCS_NO_CACHE===`1`,lruLimit:parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||`2000`,10),lruTTL:parseInt(process.env.BOLTDOCS_CACHE_LRU_TTL||`14400000`,10),compress:t}}export{a as _,w as a,_ as c,x as d,O as f,o as g,h,g as i,k as l,E as m,S as n,A as o,T as p,C as r,y as s,D as t,m as u};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./errors-vKw8CkiX.cjs`);let n=require(`node:fs`);n=e.r(n);let r=require(`isomorphic-dompurify`);r=e.r(r);let i=require(`zod`),a=require(`@bdocs/dui`);const o=/^[a-zA-Z0-9\-_/.()[\]]+$/,s=i.z.looseObject({title:i.z.string().max(200).optional(),description:i.z.string().max(500).optional(),permalink:i.z.string().optional(),sidebarPosition:i.z.number().optional(),sidebarLabel:i.z.string().max(100).optional(),sidebarHidden:i.z.boolean().optional(),hidden:i.z.boolean().optional(),category:i.z.string().max(50).optional(),order:i.z.number().optional(),badge:i.z.union([i.z.string().max(50),i.z.object({text:i.z.string().max(50),expires:i.z.string().optional()})]).optional(),icon:i.z.string().max(50).optional(),date:i.z.union([i.z.string(),i.z.date()]).optional(),lastUpdated:i.z.union([i.z.string(),i.z.date()]).optional(),groupTitle:i.z.string().max(100).optional(),groupPosition:i.z.number().optional(),seo:i.z.record(i.z.string(),i.z.any()).optional(),tags:i.z.array(i.z.string().max(50)).optional(),author:i.z.union([i.z.string().max(100),i.z.object({name:i.z.string().max(100),avatar:i.z.string().optional(),url:i.z.string().optional(),image:i.z.string().optional()})]).optional(),draft:i.z.boolean().optional(),excerpt:i.z.string().max(500).optional(),coverImage:i.z.string().nullable().optional()});function c(e){let t=e.trim();if(!t.startsWith(`---`))return{data:{},content:e,rawMatter:``};let n=t.indexOf(`---`,3);if(n===-1||n===3)return{data:{},content:e,rawMatter:``};let r=t.slice(3,n).trim(),i=t.slice(n+3).trim();return d(r)?{data:{},content:i,rawMatter:r}:{data:f(r),content:i,rawMatter:r}}const l=/[\s:[\]{},-]/u;function u(e,t){return t===0||l.test(e[t-1])}function d(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r],a=r>0?e[r-1]:``;i===`'`&&!n&&a!==`\\`?t?u(e,r)||(t=!1):u(e,r)&&(t=!0):i===`"`&&!t&&a!==`\\`&&(n?u(e,r)||(n=!1):u(e,r)&&(n=!0))}return t||n}function f(e){let t=e.split(`
7
+ `),n={},r=0;for(;r<t.length;){let e=t[r],i=e.trim();if(!i||i.startsWith(`#`)){r++;continue}let a=i.indexOf(`:`);if(a!==-1){let o=i.slice(0,a).trim(),s=i.slice(a+1).trim();if(s===``){let i=p(t.slice(r+1),e.search(/\S|$/));i.value===void 0?r++:(n[o]=i.value,r+=i.linesConsumed+1)}else n[o]=m(s),r++}else r++}return n}function p(e,t){if(e.length===0)return{value:void 0,linesConsumed:0};if(e[0].trim().startsWith(`-`)){let n=[],r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(o.startsWith(`-`)){let e=o.slice(1).trim();if(e.includes(`:`)){let t={},r=e.split(/,\s*/);for(let e of r){let n=e.indexOf(`:`);if(n!==-1){let r=e.slice(0,n).trim();t[r]=m(e.slice(n+1).trim())}}n.push(t)}else n.push(m(e))}else if(a>t&&n.length>0){let e=n[n.length-1];if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e,n=o.indexOf(`:`);if(n!==-1){let e=o.slice(0,n).trim();t[e]=m(o.slice(n+1).trim())}}}else break;r++}return{value:n.length>0?n:void 0,linesConsumed:r}}let n={},r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(a<=t)break;let s=o.indexOf(`:`);if(s!==-1){let e=o.slice(0,s).trim();n[e]=m(o.slice(s+1).trim())}r++}return{value:Object.keys(n).length>0?n:void 0,linesConsumed:r}}function m(e){let t=e.trim();if(t===`true`)return!0;if(t===`false`)return!1;if(t===`null`||t===`~`)return null;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))return t.slice(1,-1);if(t.startsWith(`[`)&&t.endsWith(`]`)){let e=t.slice(1,-1).trim();return e?e.split(/,\s*/).map(e=>m(e.trim())):[]}if(t.startsWith(`{`)&&t.endsWith(`}`)){let e=t.slice(1,-1).trim(),n={},r=e.split(/,\s*/);for(let e of r){let t=e.indexOf(`:`);if(t!==-1){let r=e.slice(0,t).trim();n[r]=m(e.slice(t+1).trim())}}return n}return t}function h(e){return e.replace(/\\/g,`/`)}function g(e){return e.replace(/^\d+\./,``)}function _(e){let t=e.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function v(e){return/\.mdx?$/.test(e)}const y=new Map;function b(e){let t=Date.now(),r=y.get(e);if(r&&t-r.ts<2e3)return r.mtime;try{let r=n.default.statSync(e).mtimeMs;return y.set(e,{mtime:r,ts:t}),r}catch{return 0}}function x(e,n,r){let{data:i,content:a,rawMatter:o}=c(n);if(o&&o.length>10240)throw A(`FRONTMATTER_TOO_LARGE`,`Frontmatter block exceeds size limit`,{size:o.length,file:e}),new t.r(`Security breach: Frontmatter size exceeds limit of 10240 bytes`);if(!r)return{data:i,content:a};let l=s.safeParse(i),u={...l.success?l.data:{}};return u.title&&=D(u.title).trim(),u.description&&=D(u.description).trim(),{data:u,content:a}}async function S(e,r=!0){let i=``;try{i=await n.default.promises.readFile(e,`utf-8`);let{data:t,content:a}=x(e,i,r);if(r&&!t.lastUpdated)try{t.lastUpdated=(await n.default.promises.stat(e)).mtimeMs}catch{t.lastUpdated=0}return{data:t,content:a,raw:i}}catch(e){if(e instanceof t.r)throw e;return{data:{},content:i,raw:i}}}function C(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function w(e){return C(e)}function T(e){let t=h(e).split(`/`).map(e=>k(g(e))).join(`/`).replace(/\/$/,``);return t=t.replace(/\.mdx?$/,``),(t===`index`||t===`_index`||t.endsWith(`/index`)||t.endsWith(`/_index`))&&(t=t.replace(/_?index$/,``)),t.startsWith(`/`)||(t=`/`+t),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function E(e){return r.default.sanitize(e,{ALLOWED_TAGS:`b.i.em.strong.a.p.br.code.pre.span.div.h1.h2.h3.h4.h5.h6.ul.ol.li.table.thead.tbody.tr.th.td.blockquote.hr`.split(`.`),ALLOWED_ATTR:[`href`,`title`,`target`,`class`,`id`,`src`,`alt`,`width`,`height`],FORCE_BODY:!0})}r.default.addHook(`afterSanitizeAttributes`,e=>{if(e.hasAttribute(`href`)){let t=e.getAttribute(`href`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`href`)}if(e.hasAttribute(`src`)){let t=e.getAttribute(`src`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`src`)}});function D(e){return e?r.default.sanitize(e,{ALLOWED_TAGS:[]}).replace(/\s+/g,` `).trim():``}function O(e){return e.charAt(0).toUpperCase()+e.slice(1)}function k(e){return e.replace(/[^a-zA-Z0-9\-_/.]/g,``).split(`/`).filter(e=>e!==`..`&&e!==`.`).map(e=>e.replace(/\.\.+/g,`.`)).join(`/`)}function A(e,t,n={}){let r=new Date().toISOString(),i={...n};for(let e in i)typeof i[e]==`string`&&i[e].includes(`:`)&&(i[e]=i[e].split(/[\\/]/).pop()||i[e]);(0,a.error)(`[SECURITY][${r}] TYPE: ${e} | MESSAGE: ${t} | DETAILS: ${JSON.stringify(i)}`)}function j(){let e=process.env.NODE_ENV!==`production`,t=process.env.BOLTDOCS_CACHE_COMPRESS===void 0?!e:process.env.BOLTDOCS_CACHE_COMPRESS!==`0`;return{dir:process.env.BOLTDOCS_CACHE_DIR||`.boltdocs/cache`,noCache:process.env.BOLTDOCS_NO_CACHE===`1`,lruLimit:parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||`2000`,10),lruTTL:parseInt(process.env.BOLTDOCS_CACHE_LRU_TTL||`14400000`,10),compress:t}}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return h}});
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./utils-ej6_SjIZ.cjs`),n=require(`./plugin-context-C-l90hFt.cjs`),r=require(`./routes-U9L8psZ9.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);function o(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(o):e&&typeof e==`object`?Object.values(e).flatMap(o):[]}const s=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function c(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=o(Object.entries(n.frontmatter).filter(([e])=>!s.has(e)).map(([e,t])=>t)).join(` `));let r=(e?`${n._content||``} ${e}`:n._content||``).slice(0,500);if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}function l(e){return{path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],_rawContent:e._rawContent||``,frontmatter:e.frontmatter,locale:e.locale,version:e.version,tab:e.tab,collection:e.collection,tags:e.tags,author:e.author,draft:e.draft,excerpt:e.excerpt,coverImage:e.coverImage,group:e.group,groupTitle:e.groupTitle,groupPosition:e.groupPosition,groupIcon:e.groupIcon,subRouteGroup:e.subRouteGroup,seo:e.seo,date:e.date,lastUpdated:e.lastUpdated,category:e.category,order:e.order,sidebarLabel:e.sidebarLabel,sidebarHidden:e.sidebarHidden,slugParts:e.slugParts}}function u(e){return{routeCacheContext:e,routeGenerationFingerprint:void 0,directoryMetaCache:null,routesDataMap:new Map,collectionsDataMap:new Map,searchDataMap:new Map}}const d=u();function f(e){return e??d}function p(e){let t=f(e);t.directoryMetaCache=null,t.routeGenerationFingerprint=void 0,t.routeCacheVariant=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear()}function m(e,t){return(!t.routeCacheContext||t.routeCacheContext.disposed)&&(t.routeCacheContext=r.s(e),t.routeCacheVariant=void 0,t.routeGenerationFingerprint=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear()),t.routeCacheContext}async function h(e,t,n,i){let a=f(n),o=m(e,a),s=r.l(t),c=(i?.fingerprint===s&&o.variants.get(s)===i?i:void 0)??r.c(o,s);a.routeCacheVariant=c,a.routeGenerationFingerprint=s;let l=await r.t(e,t,void 0,!1,o,c);a.routesDataMap.clear();for(let e of l)a.routesDataMap.set(e.path,e);g(a)}function g(e){let t=f(e),n=Array.from(t.routesDataMap.values()),r=c(n);t.searchDataMap.clear();for(let e of r)t.searchDataMap.set(e.id,e);t.collectionsDataMap.clear();for(let e of n)if(e.collection){let n={path:e.path,title:e.title,date:e.date,excerpt:e.excerpt,tags:e.tags,author:e.author,coverImage:e.coverImage,filePath:e.filePath,locale:e.locale,version:e.version,frontmatter:e.frontmatter,draft:e.frontmatter?.draft,collection:e.collection};t.collectionsDataMap.set(e.filePath,n)}}async function _(e,t,n){let i=f(n);m(e,i);let a=r.l(t);(i.routesDataMap.size===0||i.routeGenerationFingerprint!==a)&&(i.routesDataMap.clear(),i.collectionsDataMap.clear(),i.searchDataMap.clear(),await h(e,t,i))}function v(e){let t=f(e),n={},r=Array.from(t.collectionsDataMap.values()).sort((e,t)=>{let n=e=>{if(!e)return-1/0;let t=new Date(e).getTime();return Number.isFinite(t)?t:-1/0},r=n(e.date),i=n(t.date)-r;return i===0?e.path.localeCompare(t.path):i});for(let e of r){let t=e.collection;t&&(n[t]||(n[t]=[]),n[t].push(e))}return n}function y(e,t=e=>e){let n=Array.from(e.values(),t).sort((e,t)=>{let n=e=>{if(typeof e!=`object`||!e)return String(e);let t=e;return`${String(t.path||``)}\u0000${String(t.id||``)}\u0000${String(t.filePath||``)}`};return n(e).localeCompare(n(t))});return`export default ${JSON.stringify(n)};`}function b(e){return Array.from(f(e).searchDataMap.values()).sort((e,t)=>e.id.localeCompare(t.id))}function x(e){return`export default ${JSON.stringify(e)};`}async function S(e,t,n,i,a){let o=f(n);i&&(o.routeCacheContext=i),a&&(o.routeCacheVariant=a);let s=r.l(t);o.routeGenerationFingerprint!==s&&(o.routesDataMap.clear(),o.collectionsDataMap.clear(),o.searchDataMap.clear());let c=new Map(o.routesDataMap),u=new Map(o.collectionsDataMap),d=new Map(o.searchDataMap);await h(e,t,o);let p={routes:{updated:[],deleted:[]},collections:{updated:[],deleted:[]},search:{updated:[],deleted:[]}};for(let[e,t]of o.routesDataMap){let n=c.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&p.routes.updated.push(l(t))}for(let e of c.keys())o.routesDataMap.has(e)||p.routes.deleted.push(e);for(let[e,t]of o.collectionsDataMap){let n=u.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&p.collections.updated.push(t)}for(let e of u.keys())o.collectionsDataMap.has(e)||p.collections.deleted.push(e);for(let[e,t]of o.searchDataMap){let n=d.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&p.search.updated.push(t)}for(let e of d.keys())o.searchDataMap.has(e)||p.search.deleted.push(e);return p}function C(e,r,o,s,c,u){let d=c?.virtualModuleRegistry??n.h,p=f(u);return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){if(o()?.root||process.cwd(),e.includes(`boltdocs-entry`)||e===`virtual:boltdocs-entry`||e===`boltdocs/entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`||e===`\0virtual:boltdocs-entry.tsx`)return`\0virtual:boltdocs-entry.tsx`;if(e.includes(`boltdocs-client`)||e===`virtual:boltdocs-client`||e===`boltdocs/client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.mjs`)return`\0virtual:boltdocs-client.mjs`;if(e.startsWith(`\0`)){let t=e.slice(1);if(!t.startsWith(`virtual:boltdocs-`)&&d?.has(t))return e}else if(!e.startsWith(`virtual:boltdocs-`)&&d?.has(e))return`\0`+e;return e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(c){let u=r(),f=c.startsWith(`\0`)?c.slice(1):c;if(!f.includes(`boltdocs-entry.tsx`)&&!f.includes(`boltdocs-client.mjs`)&&!f.startsWith(`virtual:boltdocs-`)&&d?.has(f)){let e=d?.get(f);if(!e)return null;try{let t=await e.loader();if(typeof t!=`string`)throw Error(`[boltdocs] Plugin virtual module '${f}' loader must return a string source code, got ${typeof t}.`);return t}catch(e){throw Error(`[boltdocs] Plugin virtual module '${f}' failed to load: ${e instanceof Error?e.message:String(e)}`)}}if(c.includes(`boltdocs-entry.tsx`)||c===`\0virtual:boltdocs-entry`){let t=o();return n.g({...e,ssr:!!t?.build?.ssr,useCompiledPages:t?.command===`build`},u)}if(c.includes(`boltdocs-client.mjs`)||c===`\0virtual:boltdocs-client.ts`||c===`virtual:boltdocs-client`){let e=__dirname,n=e;for(;e!==i.default.parse(e).root;){if(a.default.existsSync(i.default.join(e,`package.json`))&&JSON.parse(a.default.readFileSync(i.default.join(e,`package.json`),`utf-8`)).name===`boltdocs`){n=e;break}e=i.default.dirname(e)}let r=i.default.join(n,`src/client/index.ts`),o=i.default.join(n,`dist/client/index.js`);return`export * from '${t.u(a.default.existsSync(r)?r:o)}';`}if(!c.startsWith(`\0virtual:boltdocs-`))return;let m=c.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(m===`routes`)return await _(s,u,p),y(p.routesDataMap,l);if(m===`collections`)return await _(s,u,p),x(v(p));if(m===`config`){await _(s,u,p);let e=p.routeCacheVariant?.directoryMeta||{};p.directoryMetaCache=e;let t=[...new Set(Array.from(p.routesDataMap.values()).map(e=>e.collection).filter(e=>!!e))].sort((e,t)=>e.localeCompare(t)),n=u?.collections,r=n?{...n,labels:{...n.labels||{},...Object.fromEntries(t.map(e=>[e,n.labels?.[e]??e]))}}:t.length>0?t:void 0,i={base:u?.base,theme:u?.theme,i18n:u?.i18n,versions:u?.versions,siteUrl:u?.siteUrl,integrations:u?.integrations,collections:r,seo:u?.seo,experimental:u?.experimental,plugins:u?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(i,null,2)};`}if(m===`entry`){let t=o();return n.g({...e,ssr:!!t?.build?.ssr,useCompiledPages:t?.command===`build`},u)}if(m===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],n=null;for(let t of e){let e=i.default.resolve(s,`mdx-components.${t}`);if(a.default.existsSync(e)){n=e;break}}let r={};if(u?.plugins)for(let e of u.plugins)e.components&&Object.assign(r,e.components);let o=Object.entries(r),c=o.map(([e,t],n)=>`import * as _pluginCompMod_${n} from '${t}';`).join(`
7
+ `),l=o.map(([e],t)=>`${JSON.stringify(e)}: _pluginCompMod_${t}[${JSON.stringify(e)}] || _pluginCompMod_${t}["default"] || _pluginCompMod_${t}`).join(`,
8
+ `);if(n){let e=t.u(n);return`${c}
9
+ import * as components from '${e}';
10
+ const userMdxComponents = components.default || components;
11
+ const mdxComponents = {
12
+ ${l}${l?`,`:``}
13
+ ...userMdxComponents,
14
+ };
15
+ export default mdxComponents;
16
+ export * from '${e}';`}return`${c}
17
+ const mdxComponents = {
18
+ ${l}
19
+ };
20
+ export default mdxComponents;`}if(m===`layout`){let e=[`tsx`,`jsx`],n=null;for(let t of e){let e=i.default.resolve(s,`layout.${t}`);if(a.default.existsSync(e)){n=e;break}}if(n)return`import UserLayout from '${t.u(n)}';
21
+ export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(m===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let t of e){let e=i.default.resolve(s,`icons.${t}`);if(a.default.existsSync(e)){n=e;break}}return n?`import * as icons from '${t.u(n)}';\nexport default icons;`:`export default {};`}if(m===`search`)return await _(s,u,p),`export default async function fetchSearchData(options = {}) {
22
+ const base = import.meta.env.BASE_URL || '/';
23
+ const origin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
24
+ const basePath = base.endsWith('/') ? base : base + '/';
25
+ const url = new URL('search.json', new URL(basePath, origin));
26
+ if (options.bustCache) url.searchParams.set('t', String(Date.now()));
27
+ const res = await fetch(url, { cache: options.bustCache ? 'no-store' : 'default' });
28
+ if (!res.ok) throw new Error('Failed to fetch search index');
29
+ return res.json();
30
+ }`;if(m===`client`){let e=__dirname,n=``;for(;e&&e!==i.default.parse(e).root;){let r=i.default.join(e,`src/client/index.ts`),o=i.default.join(e,`dist/client/index.mjs`),s=i.default.join(e,`client/index.ts`);if(a.default.existsSync(r)){n=t.u(r);break}if(a.default.existsSync(o)){n=t.u(o);break}if(a.default.existsSync(s)){n=t.u(s);break}e=i.default.dirname(e)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${n}';`}}}}exports.computeFrontmatterDelta=S,exports.createVirtualModuleState=u,exports.createVirtualModulesPlugin=C,exports.getSearchDataExport=b,exports.invalidateDirectoryMetaCache=p;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ import{_ as e,g as t,h as n}from"./plugin-context-wqHNSZum.mjs";import{u as r}from"./utils-8lzafE49.mjs";import{c as i,l as a,s as o,t as s}from"./routes-BL4y79tb.mjs";import c from"node:path";import l from"node:fs";function u(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(u):e&&typeof e==`object`?Object.values(e).flatMap(u):[]}const d=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function f(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=u(Object.entries(n.frontmatter).filter(([e])=>!d.has(e)).map(([e,t])=>t)).join(` `));let r=(e?`${n._content||``} ${e}`:n._content||``).slice(0,500);if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}function p(e){return{path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],_rawContent:e._rawContent||``,frontmatter:e.frontmatter,locale:e.locale,version:e.version,tab:e.tab,collection:e.collection,tags:e.tags,author:e.author,draft:e.draft,excerpt:e.excerpt,coverImage:e.coverImage,group:e.group,groupTitle:e.groupTitle,groupPosition:e.groupPosition,groupIcon:e.groupIcon,subRouteGroup:e.subRouteGroup,seo:e.seo,date:e.date,lastUpdated:e.lastUpdated,category:e.category,order:e.order,sidebarLabel:e.sidebarLabel,sidebarHidden:e.sidebarHidden,slugParts:e.slugParts}}function m(e){return{routeCacheContext:e,routeGenerationFingerprint:void 0,directoryMetaCache:null,routesDataMap:new Map,collectionsDataMap:new Map,searchDataMap:new Map}}const h=m();function g(e){return e??h}function _(e){let t=g(e);t.directoryMetaCache=null,t.routeGenerationFingerprint=void 0,t.routeCacheVariant=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear()}function v(e,t){return(!t.routeCacheContext||t.routeCacheContext.disposed)&&(t.routeCacheContext=o(e),t.routeCacheVariant=void 0,t.routeGenerationFingerprint=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear()),t.routeCacheContext}async function y(e,t,n,r){let o=g(n),c=v(e,o),l=a(t),u=(r?.fingerprint===l&&c.variants.get(l)===r?r:void 0)??i(c,l);o.routeCacheVariant=u,o.routeGenerationFingerprint=l;let d=await s(e,t,void 0,!1,c,u);o.routesDataMap.clear();for(let e of d)o.routesDataMap.set(e.path,e);b(o)}function b(e){let t=g(e),n=Array.from(t.routesDataMap.values()),r=f(n);t.searchDataMap.clear();for(let e of r)t.searchDataMap.set(e.id,e);t.collectionsDataMap.clear();for(let e of n)if(e.collection){let n={path:e.path,title:e.title,date:e.date,excerpt:e.excerpt,tags:e.tags,author:e.author,coverImage:e.coverImage,filePath:e.filePath,locale:e.locale,version:e.version,frontmatter:e.frontmatter,draft:e.frontmatter?.draft,collection:e.collection};t.collectionsDataMap.set(e.filePath,n)}}async function x(e,t,n){let r=g(n);v(e,r);let i=a(t);(r.routesDataMap.size===0||r.routeGenerationFingerprint!==i)&&(r.routesDataMap.clear(),r.collectionsDataMap.clear(),r.searchDataMap.clear(),await y(e,t,r))}function S(e){let t=g(e),n={},r=Array.from(t.collectionsDataMap.values()).sort((e,t)=>{let n=e=>{if(!e)return-1/0;let t=new Date(e).getTime();return Number.isFinite(t)?t:-1/0},r=n(e.date),i=n(t.date)-r;return i===0?e.path.localeCompare(t.path):i});for(let e of r){let t=e.collection;t&&(n[t]||(n[t]=[]),n[t].push(e))}return n}function C(e,t=e=>e){let n=Array.from(e.values(),t).sort((e,t)=>{let n=e=>{if(typeof e!=`object`||!e)return String(e);let t=e;return`${String(t.path||``)}\u0000${String(t.id||``)}\u0000${String(t.filePath||``)}`};return n(e).localeCompare(n(t))});return`export default ${JSON.stringify(n)};`}function w(e){return Array.from(g(e).searchDataMap.values()).sort((e,t)=>e.id.localeCompare(t.id))}function T(e){return`export default ${JSON.stringify(e)};`}async function E(e,t,n,r,i){let o=g(n);r&&(o.routeCacheContext=r),i&&(o.routeCacheVariant=i);let s=a(t);o.routeGenerationFingerprint!==s&&(o.routesDataMap.clear(),o.collectionsDataMap.clear(),o.searchDataMap.clear());let c=new Map(o.routesDataMap),l=new Map(o.collectionsDataMap),u=new Map(o.searchDataMap);await y(e,t,o);let d={routes:{updated:[],deleted:[]},collections:{updated:[],deleted:[]},search:{updated:[],deleted:[]}};for(let[e,t]of o.routesDataMap){let n=c.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&d.routes.updated.push(p(t))}for(let e of c.keys())o.routesDataMap.has(e)||d.routes.deleted.push(e);for(let[e,t]of o.collectionsDataMap){let n=l.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&d.collections.updated.push(t)}for(let e of l.keys())o.collectionsDataMap.has(e)||d.collections.deleted.push(e);for(let[e,t]of o.searchDataMap){let n=u.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&d.search.updated.push(t)}for(let e of u.keys())o.searchDataMap.has(e)||d.search.deleted.push(e);return d}function D(i,a,o,s,u,d){let f=u?.virtualModuleRegistry??n,m=g(d);return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){if(o()?.root||process.cwd(),e.includes(`boltdocs-entry`)||e===`virtual:boltdocs-entry`||e===`boltdocs/entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`||e===`\0virtual:boltdocs-entry.tsx`)return`\0virtual:boltdocs-entry.tsx`;if(e.includes(`boltdocs-client`)||e===`virtual:boltdocs-client`||e===`boltdocs/client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.mjs`)return`\0virtual:boltdocs-client.mjs`;if(e.startsWith(`\0`)){let t=e.slice(1);if(!t.startsWith(`virtual:boltdocs-`)&&f?.has(t))return e}else if(!e.startsWith(`virtual:boltdocs-`)&&f?.has(e))return`\0`+e;return e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(n){let u=a(),d=n.startsWith(`\0`)?n.slice(1):n;if(!d.includes(`boltdocs-entry.tsx`)&&!d.includes(`boltdocs-client.mjs`)&&!d.startsWith(`virtual:boltdocs-`)&&f?.has(d)){let e=f?.get(d);if(!e)return null;try{let t=await e.loader();if(typeof t!=`string`)throw Error(`[boltdocs] Plugin virtual module '${d}' loader must return a string source code, got ${typeof t}.`);return t}catch(e){throw Error(`[boltdocs] Plugin virtual module '${d}' failed to load: ${e instanceof Error?e.message:String(e)}`)}}if(n.includes(`boltdocs-entry.tsx`)||n===`\0virtual:boltdocs-entry`){let e=o();return t({...i,ssr:!!e?.build?.ssr,useCompiledPages:e?.command===`build`},u)}if(n.includes(`boltdocs-client.mjs`)||n===`\0virtual:boltdocs-client.ts`||n===`virtual:boltdocs-client`){let t=e,n=t;for(;t!==c.parse(t).root;){if(l.existsSync(c.join(t,`package.json`))&&JSON.parse(l.readFileSync(c.join(t,`package.json`),`utf-8`)).name===`boltdocs`){n=t;break}t=c.dirname(t)}let i=c.join(n,`src/client/index.ts`),a=c.join(n,`dist/client/index.js`);return`export * from '${r(l.existsSync(i)?i:a)}';`}if(!n.startsWith(`\0virtual:boltdocs-`))return;let h=n.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(h===`routes`)return await x(s,u,m),C(m.routesDataMap,p);if(h===`collections`)return await x(s,u,m),T(S(m));if(h===`config`){await x(s,u,m);let e=m.routeCacheVariant?.directoryMeta||{};m.directoryMetaCache=e;let t=[...new Set(Array.from(m.routesDataMap.values()).map(e=>e.collection).filter(e=>!!e))].sort((e,t)=>e.localeCompare(t)),n=u?.collections,r=n?{...n,labels:{...n.labels||{},...Object.fromEntries(t.map(e=>[e,n.labels?.[e]??e]))}}:t.length>0?t:void 0,i={base:u?.base,theme:u?.theme,i18n:u?.i18n,versions:u?.versions,siteUrl:u?.siteUrl,integrations:u?.integrations,collections:r,seo:u?.seo,experimental:u?.experimental,plugins:u?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(i,null,2)};`}if(h===`entry`){let e=o();return t({...i,ssr:!!e?.build?.ssr,useCompiledPages:e?.command===`build`},u)}if(h===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],t=null;for(let n of e){let e=c.resolve(s,`mdx-components.${n}`);if(l.existsSync(e)){t=e;break}}let n={};if(u?.plugins)for(let e of u.plugins)e.components&&Object.assign(n,e.components);let i=Object.entries(n),a=i.map(([e,t],n)=>`import * as _pluginCompMod_${n} from '${t}';`).join(`
7
+ `),o=i.map(([e],t)=>`${JSON.stringify(e)}: _pluginCompMod_${t}[${JSON.stringify(e)}] || _pluginCompMod_${t}["default"] || _pluginCompMod_${t}`).join(`,
8
+ `);if(t){let e=r(t);return`${a}
9
+ import * as components from '${e}';
10
+ const userMdxComponents = components.default || components;
11
+ const mdxComponents = {
12
+ ${o}${o?`,`:``}
13
+ ...userMdxComponents,
14
+ };
15
+ export default mdxComponents;
16
+ export * from '${e}';`}return`${a}
17
+ const mdxComponents = {
18
+ ${o}
19
+ };
20
+ export default mdxComponents;`}if(h===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=c.resolve(s,`layout.${n}`);if(l.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${r(t)}';
21
+ export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(h===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=c.resolve(s,`icons.${n}`);if(l.existsSync(e)){t=e;break}}return t?`import * as icons from '${r(t)}';\nexport default icons;`:`export default {};`}if(h===`search`)return await x(s,u,m),`export default async function fetchSearchData(options = {}) {
22
+ const base = import.meta.env.BASE_URL || '/';
23
+ const origin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
24
+ const basePath = base.endsWith('/') ? base : base + '/';
25
+ const url = new URL('search.json', new URL(basePath, origin));
26
+ if (options.bustCache) url.searchParams.set('t', String(Date.now()));
27
+ const res = await fetch(url, { cache: options.bustCache ? 'no-store' : 'default' });
28
+ if (!res.ok) throw new Error('Failed to fetch search index');
29
+ return res.json();
30
+ }`;if(h===`client`){let t=e,n=``;for(;t&&t!==c.parse(t).root;){let e=c.join(t,`src/client/index.ts`),i=c.join(t,`dist/client/index.mjs`),a=c.join(t,`client/index.ts`);if(l.existsSync(e)){n=r(e);break}if(l.existsSync(i)){n=r(i);break}if(l.existsSync(a)){n=r(a);break}t=c.dirname(t)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${e}`);return`export * from '${n}';`}}}}export{E as computeFrontmatterDelta,m as createVirtualModuleState,D as createVirtualModulesPlugin,w as getSearchDataExport,_ as invalidateDirectoryMetaCache};