boltdocs 3.1.0 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/{adapters-DEXNIv3x.mjs → adapters-ByYY44Zy.mjs} +1 -1
  2. package/dist/{adapters-uGz-UKQa.cjs → adapters-DvmtpdSF.cjs} +1 -1
  3. package/dist/{banner-DjujkctF.d.ts → banner-BMop1KLF.d.ts} +2 -2
  4. package/dist/{banner-DdSgCs4G.d.cts → banner-CVD0GugR.d.cts} +2 -2
  5. package/dist/{cache-CfRTUzWC.cjs → cache-CO4Dy2uQ.cjs} +1 -1
  6. package/dist/{cache-B0C2i0yP.mjs → cache-Dk53iOo6.mjs} +1 -1
  7. package/dist/chunk-BFSpntXv.mjs +6 -0
  8. package/dist/{chunk-Ds5LZdWN.cjs → chunk-D1Md3oWO.cjs} +1 -1
  9. package/dist/client/index.cjs +219 -172
  10. package/dist/client/index.d.cts +75 -9
  11. package/dist/client/index.d.ts +75 -9
  12. package/dist/client/index.js +119 -73
  13. package/dist/client/mdx.cjs +1 -1
  14. package/dist/client/mdx.d.cts +1 -1
  15. package/dist/client/mdx.d.ts +1 -1
  16. package/dist/client/mdx.js +1 -1
  17. package/dist/client/primitives.cjs +7 -7
  18. package/dist/client/primitives.d.cts +5 -22
  19. package/dist/client/primitives.d.ts +5 -22
  20. package/dist/client/primitives.js +4 -4
  21. package/dist/client/theme/reset.css +31 -4
  22. package/dist/{shiki-adapter-fS94vy-z.d.mts → config-BpzaPsJj.d.cts} +325 -78
  23. package/dist/config-CCXp3aXO.mjs +7 -0
  24. package/dist/{config-BxsogK5A.cjs → config-CMd4XoFq.cjs} +1 -1
  25. package/dist/config-DlGoEM9D.cjs +7 -0
  26. package/dist/{shiki-adapter-l2kEP5rn.d.cts → config-xtS0ZkMm.d.mts} +325 -78
  27. package/dist/{csp-BX06rvdg.cjs → csp-CRp_3U7a.cjs} +1 -1
  28. package/dist/csp-oTC2ygvF.mjs +6 -0
  29. package/dist/{docs-layout-DyLDBwS6.js → docs-layout-BdtZ9z6s.js} +9 -28
  30. package/dist/{docs-layout-D1buSdua.cjs → docs-layout-CFWI15Id.cjs} +69 -88
  31. package/dist/{doctor-DPDcRKM1.cjs → doctor-BBtmNJE0.cjs} +1 -1
  32. package/dist/doctor-Bv16QSrI.cjs +7 -0
  33. package/dist/doctor-DOAbSaiL.mjs +7 -0
  34. package/dist/{generator-BN75lJOv.cjs → generator-COepVWGi.cjs} +1 -1
  35. package/dist/{handler-Btd4t_67.mjs → handler-DzQae4eA.mjs} +1 -1
  36. package/dist/{handler-1LRMYeI4.cjs → handler-XX7cLTqe.cjs} +1 -1
  37. package/dist/headers-Ddwek8K7.mjs +6 -0
  38. package/dist/{headers-YpD10rDb.cjs → headers-dg4SDrjY.cjs} +1 -1
  39. package/dist/{image-5WsgWYTh.js → image-Bz87fCla.js} +1 -1
  40. package/dist/{image-Hb105Gu6.cjs → image-C4TlpMHn.cjs} +18 -18
  41. package/dist/link-2PzgTnaP.js +673 -0
  42. package/dist/{icons-dev-YtDoLUsb.cjs → link-D1Gjkb-2.cjs} +0 -350
  43. package/dist/{mdx-Bv-pS6-O.js → mdx-BuO6a1f7.js} +195 -40
  44. package/dist/{mdx-CDUcJmye.cjs → mdx-CD-tSjRG.cjs} +234 -73
  45. package/dist/{meta-loader-CTB62-Mo.cjs → meta-loader-Dq1zcFnh.cjs} +1 -1
  46. package/dist/node/cache.cjs +1 -1
  47. package/dist/node/cache.d.cts +2 -1
  48. package/dist/node/cache.d.mts +2 -1
  49. package/dist/node/cache.mjs +1 -1
  50. package/dist/node/cli-entry.cjs +6 -6
  51. package/dist/node/cli-entry.mjs +9 -9
  52. package/dist/node/index.cjs +1 -1
  53. package/dist/node/index.d.cts +20 -174
  54. package/dist/node/index.d.mts +18 -175
  55. package/dist/node/index.mjs +1 -1
  56. package/dist/node/mdx/shiki-adapter.cjs +1 -1
  57. package/dist/node/mdx/shiki-adapter.d.cts +49 -1
  58. package/dist/node/mdx/shiki-adapter.d.mts +49 -1
  59. package/dist/node/mdx/shiki-adapter.mjs +1 -1
  60. package/dist/node-B5hu_6qj.cjs +104 -0
  61. package/dist/node-BXtqM1uH.mjs +6 -0
  62. package/dist/node-C8725aw7.mjs +104 -0
  63. package/dist/node-aD1eisrR.cjs +6 -0
  64. package/dist/{package-_-Oa8-qN.cjs → package-CH2ChQqw.cjs} +1 -1
  65. package/dist/{package-CoHWTf0N.mjs → package-DSSB8B5L.mjs} +1 -1
  66. package/dist/{pages-external-CX2uyW95.cjs → pages-external-XkYIs-d5.cjs} +1 -1
  67. package/dist/parser-DCiEWkSk.cjs +8 -0
  68. package/dist/parser-qk9FIHJ7.mjs +8 -0
  69. package/dist/plugin-CX1OZ6jB.cjs +73 -0
  70. package/dist/plugin-CgfiWaFZ.mjs +73 -0
  71. package/dist/routes-BW6zsk7Z.mjs +6 -0
  72. package/dist/routes-BgoIB5wb.cjs +6 -0
  73. package/dist/{routes-D_S9kjkS.cjs → routes-CORVxc02.cjs} +1 -1
  74. package/dist/{search-dialog-BpNULmrl.cjs → search-dialog-B1NERUNx.cjs} +101 -55
  75. package/dist/{search-dialog-BbtxA1uT.cjs → search-dialog-BRFno7HD.cjs} +8 -8
  76. package/dist/{search-dialog-DC7oXU-5.js → search-dialog-BmxHiKwt.js} +2 -2
  77. package/dist/{search-dialog-gp9lrJXm.js → search-dialog-D6TvjcuV.js} +1 -1
  78. package/dist/{search-dialog-PJrFRU5G.js → search-dialog-DFnlx8LO.js} +44 -4
  79. package/dist/{search-dialog-BIuxGQsg.cjs → search-dialog-DHqwjJuG.cjs} +1 -1
  80. package/dist/server/index.cjs +1 -1
  81. package/dist/server/index.d.mts +1 -1
  82. package/dist/server/index.mjs +1 -1
  83. package/dist/shiki-adapter-CoQ6jyJ4.cjs +6 -0
  84. package/dist/shiki-adapter-D-aKw7PP.mjs +6 -0
  85. package/dist/{sidebar-DknLUI1R.d.ts → sidebar-COTaMHR-.d.ts} +349 -41
  86. package/dist/{sidebar-DH2iPKXM.d.cts → sidebar-CrEdJuHX.d.cts} +349 -41
  87. package/dist/{types-generator-CYcHkDzZ.cjs → types-generator-BXhv7Ill.cjs} +1 -1
  88. package/dist/types-generator-bDPvUztF.mjs +26 -0
  89. package/dist/utils-Crm9oPcV.mjs +7 -0
  90. package/dist/utils-D6Xtj0FZ.cjs +7 -0
  91. package/package.json +13 -10
  92. package/src/shared/types.ts +361 -19
  93. package/dist/chunk-hT5z_Zn9-DsJawvsz.mjs +0 -6
  94. package/dist/chunk-hT5z_Zn9-SKz6VFXu.cjs +0 -6
  95. package/dist/config-DAgpZyh6.mjs +0 -7
  96. package/dist/config-DrRQYDCI.cjs +0 -7
  97. package/dist/csp-z2D0FuRW.mjs +0 -6
  98. package/dist/doctor-BadGEhXv.cjs +0 -7
  99. package/dist/doctor-vDsUDgqp.mjs +0 -7
  100. package/dist/escape-string-regexp-AG8q1e25-9Un9V90q.mjs +0 -6
  101. package/dist/escape-string-regexp-AG8q1e25-bJ9Ixe7c.cjs +0 -6
  102. package/dist/esm-shims-DSep1HcR.mjs +0 -6
  103. package/dist/headers-CL0pMcwm.mjs +0 -6
  104. package/dist/icons-dev-CHZOwhQA.js +0 -921
  105. package/dist/lib-BR0SoanK-CLswltLI.cjs +0 -6
  106. package/dist/lib-BR0SoanK-DcYeDrE6.mjs +0 -6
  107. package/dist/lib-DPoCz1YB-CLYXwKST.cjs +0 -6
  108. package/dist/lib-DPoCz1YB-CyGOqgSO.mjs +0 -6
  109. package/dist/micromark-util-character-5KqJafVT-C6gnc770.cjs +0 -6
  110. package/dist/micromark-util-character-5KqJafVT-DkPKsbgn.mjs +0 -6
  111. package/dist/node-BDBv8CT6.mjs +0 -104
  112. package/dist/node-DFV_FV0y.mjs +0 -6
  113. package/dist/node-DqsP7kXz.cjs +0 -6
  114. package/dist/node-yFmAavND.cjs +0 -104
  115. package/dist/parser-BZJgAa9E.mjs +0 -8
  116. package/dist/parser-DlanzESE.cjs +0 -8
  117. package/dist/plugin-BVuwx5D9.cjs +0 -73
  118. package/dist/plugin-BoxD91Yh.mjs +0 -73
  119. package/dist/rehype-slug--ZOxZ-_K-BNeYC4aT.cjs +0 -6
  120. package/dist/rehype-slug--ZOxZ-_K-CjIQEJCs.mjs +0 -6
  121. package/dist/remark-frontmatter-wFYRLcCt-CutW0gA3.mjs +0 -8
  122. package/dist/remark-frontmatter-wFYRLcCt-ENB5qG3y.cjs +0 -8
  123. package/dist/remark-gfm-B8TMkQbX-CjUJo8Rd.cjs +0 -21
  124. package/dist/remark-gfm-B8TMkQbX-Ctu0VV1_.mjs +0 -21
  125. package/dist/rolldown-runtime-fkIsjY3S.mjs +0 -6
  126. package/dist/rollup-DMqoG11U-CKcJ37u_.mjs +0 -59
  127. package/dist/rollup-DMqoG11U-DKdxvZIj.cjs +0 -59
  128. package/dist/routes-BN2XbGcT.mjs +0 -6
  129. package/dist/routes-Cnq8xTCv.cjs +0 -6
  130. package/dist/shiki-adapter-CGTmrR6S.cjs +0 -6
  131. package/dist/shiki-adapter-CK3llqw2.mjs +0 -6
  132. package/dist/types-generator-DVOnRVKU.mjs +0 -26
  133. package/dist/utils-B3xYMrpK.mjs +0 -7
  134. package/dist/utils-Bz1tG9Dg.cjs +0 -7
  135. /package/dist/{errors-C0Hx15Ag.mjs → errors-0zGHRLue.mjs} +0 -0
  136. /package/dist/{errors-Dx6JHoKE.cjs → errors-vKw8CkiX.cjs} +0 -0
  137. /package/dist/{index-DJYJzs-Z.d.mts → index-1KsTDq4o.d.mts} +0 -0
  138. /package/dist/{meta-loader-Bq-MjTXB.mjs → meta-loader-C4Hu9RN9.mjs} +0 -0
@@ -3,8 +3,8 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const require_icons_dev = require('./icons-dev-YtDoLUsb.cjs');
7
- const require_image = require('./image-Hb105Gu6.cjs');
6
+ const require_link = require('./link-D1Gjkb-2.cjs');
7
+ const require_image = require('./image-C4TlpMHn.cjs');
8
8
  let react = require("react");
9
9
  let react_jsx_runtime = require("react/jsx-runtime");
10
10
  let react_aria_components = require("react-aria-components");
@@ -44,9 +44,9 @@ const Field = ({ children, name, type, description, required }) => /* @__PURE__
44
44
  //#endregion
45
45
  //#region src/client/components/mdx/typographics.tsx
46
46
  const Anchor = ({ href, children, className, ...props }) => {
47
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons_dev.Link, {
47
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Link, {
48
48
  href: href || "",
49
- className: require_icons_dev.cn("text-primary-500 hover:text-primary-400 dark:text-primary-500 hover:underline font-medium transition-colors duration-200", className),
49
+ className: require_link.cn("text-primary-500 hover:text-primary-400 dark:text-primary-500 hover:underline font-medium transition-colors duration-200", className),
50
50
  ...props,
51
51
  children
52
52
  });
@@ -62,7 +62,7 @@ const HEADING_CLASSES = {
62
62
  const Heading = ({ level, className, ...props }) => {
63
63
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_image.Heading, {
64
64
  level,
65
- className: require_icons_dev.cn(HEADING_CLASSES[level] || "", className),
65
+ className: require_link.cn(HEADING_CLASSES[level] || "", className),
66
66
  ...props
67
67
  });
68
68
  };
@@ -93,39 +93,39 @@ const Typographics = {
93
93
  ...props
94
94
  }),
95
95
  p: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
96
- className: require_icons_dev.cn("text-paragraph leading-relaxed my-5", className),
96
+ className: require_link.cn("text-paragraph leading-relaxed my-5", className),
97
97
  ...props
98
98
  }),
99
99
  strong: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", {
100
- className: require_icons_dev.cn("font-semibold text-body", className),
100
+ className: require_link.cn("font-semibold text-body", className),
101
101
  ...props
102
102
  }),
103
103
  mark: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("mark", {
104
- className: require_icons_dev.cn("bg-primary-500/10 text-primary-500 font-semibold px-1.5 py-0.5 rounded-md", className),
104
+ className: require_link.cn("bg-primary-500/10 text-primary-500 font-semibold px-1.5 py-0.5 rounded-md", className),
105
105
  ...props
106
106
  }),
107
107
  code: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
108
- className: require_icons_dev.cn("bg-code-bg text-code-text rounded-md px-1.5 py-0.5 text-[0.875em] font-mono font-medium", className),
108
+ className: require_link.cn("bg-code-bg text-code-text rounded-md px-1.5 py-0.5 text-[0.875em] font-mono font-medium", className),
109
109
  ...props
110
110
  }),
111
111
  blockquote: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("blockquote", {
112
- className: require_icons_dev.cn("border-l-4 border-primary-500 bg-soft/30 pl-4 py-2 my-6 italic text-muted rounded-r-lg", className),
112
+ className: require_link.cn("border-l-4 border-primary-500 bg-soft/30 pl-4 py-2 my-6 italic text-muted rounded-r-lg", className),
113
113
  ...props
114
114
  }),
115
115
  hr: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", {
116
- className: require_icons_dev.cn("my-8 border-t border-subtle", className),
116
+ className: require_link.cn("my-8 border-t border-subtle", className),
117
117
  ...props
118
118
  }),
119
119
  ul: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
120
- className: require_icons_dev.cn("list-disc pl-6 my-5 space-y-2 text-paragraph", className),
120
+ className: require_link.cn("list-disc pl-6 my-5 space-y-2 text-paragraph", className),
121
121
  ...props
122
122
  }),
123
123
  ol: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ol", {
124
- className: require_icons_dev.cn("list-decimal pl-6 my-5 space-y-2 text-paragraph", className),
124
+ className: require_link.cn("list-decimal pl-6 my-5 space-y-2 text-paragraph", className),
125
125
  ...props
126
126
  }),
127
127
  li: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
128
- className: require_icons_dev.cn("pl-1", className),
128
+ className: require_link.cn("pl-1", className),
129
129
  ...props
130
130
  })
131
131
  };
@@ -140,20 +140,20 @@ const Table = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
140
140
  })
141
141
  });
142
142
  const TableHead = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("thead", {
143
- className: require_icons_dev.cn("border-b border-subtle bg-soft/50", props.className),
143
+ className: require_link.cn("border-b border-subtle bg-soft/50", props.className),
144
144
  ...props
145
145
  });
146
146
  const TableBody = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tbody", { ...props });
147
147
  const TableRow = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tr", {
148
- className: require_icons_dev.cn("border-b border-subtle last:border-0 even:bg-soft/10 hover:bg-soft/20 transition-colors", props.className),
148
+ className: require_link.cn("border-b border-subtle last:border-0 even:bg-soft/10 hover:bg-soft/20 transition-colors", props.className),
149
149
  ...props
150
150
  });
151
151
  const TableHeader = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", {
152
- className: require_icons_dev.cn("px-4 py-3 font-semibold text-body text-xs font-mono", props.className),
152
+ className: require_link.cn("px-4 py-3 font-semibold text-body text-xs font-mono", props.className),
153
153
  ...props
154
154
  });
155
155
  const TableCell = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", {
156
- className: require_icons_dev.cn("px-4 py-3 text-paragraph leading-relaxed", props.className),
156
+ className: require_link.cn("px-4 py-3 text-paragraph leading-relaxed", props.className),
157
157
  ...props
158
158
  });
159
159
  const TableComponents = {
@@ -172,35 +172,35 @@ const variantStyles = {
172
172
  container: "bg-slate-500/5 dark:bg-slate-500/10 border-slate-500/40 text-slate-800 dark:text-slate-200",
173
173
  titleText: "text-slate-900 dark:text-slate-100",
174
174
  iconColor: "text-slate-500",
175
- icon: require_icons_dev.Info,
175
+ icon: require_link.Info,
176
176
  defaultTitle: "Note"
177
177
  },
178
178
  info: {
179
179
  container: "bg-indigo-500/5 dark:bg-indigo-500/10 border-indigo-500/40 text-indigo-800 dark:text-indigo-200",
180
180
  titleText: "text-indigo-900 dark:text-indigo-100",
181
181
  iconColor: "text-indigo-500",
182
- icon: require_icons_dev.Info,
182
+ icon: require_link.Info,
183
183
  defaultTitle: "Info"
184
184
  },
185
185
  tip: {
186
186
  container: "bg-green-500/5 dark:bg-green-500/10 border-green-500/40 text-green-800 dark:text-green-200",
187
187
  titleText: "text-green-900 dark:text-green-100",
188
188
  iconColor: "text-green-500",
189
- icon: require_icons_dev.Lightbulb,
189
+ icon: require_link.Lightbulb,
190
190
  defaultTitle: "Tip"
191
191
  },
192
192
  warning: {
193
193
  container: "bg-amber-500/5 dark:bg-amber-500/10 border-amber-500/40 text-amber-800 dark:text-amber-200",
194
194
  titleText: "text-amber-900 dark:text-amber-100",
195
195
  iconColor: "text-amber-500",
196
- icon: require_icons_dev.AlertTriangle,
196
+ icon: require_link.AlertTriangle,
197
197
  defaultTitle: "Warning"
198
198
  },
199
199
  danger: {
200
200
  container: "bg-rose-500/5 dark:bg-rose-500/10 border-rose-500/40 text-rose-800 dark:text-rose-200",
201
201
  titleText: "text-rose-900 dark:text-rose-100",
202
202
  iconColor: "text-rose-500",
203
- icon: require_icons_dev.AlertCircle,
203
+ icon: require_link.AlertCircle,
204
204
  defaultTitle: "Danger"
205
205
  }
206
206
  };
@@ -208,15 +208,15 @@ function Callout({ children, className = "", variant = "note", title, ...props }
208
208
  const styles = variantStyles[variant] || variantStyles.note;
209
209
  const Icon = styles.icon;
210
210
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
211
- className: require_icons_dev.cn("my-6 flex gap-4 p-4 rounded-xl border-2", styles.container, className),
211
+ className: require_link.cn("my-6 flex gap-4 p-4 rounded-xl border-2", styles.container, className),
212
212
  ...props,
213
213
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
214
- className: require_icons_dev.cn("shrink-0 pt-0.5", styles.iconColor),
215
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, { className: "w-5 h-5 stroke-[2]" })
214
+ className: require_link.cn("shrink-0 pt-0.5", styles.iconColor),
215
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, { className: "w-5 h-5 stroke-2" })
216
216
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
217
217
  className: "flex-1 text-[0.875rem] leading-[1.6]",
218
218
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
219
- className: require_icons_dev.cn("font-bold text-sm mb-1", styles.titleText),
219
+ className: require_link.cn("font-bold text-sm mb-1", styles.titleText),
220
220
  children: title || styles.defaultTitle
221
221
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
222
222
  className: "prose prose-neutral dark:prose-invert max-w-none [&>p]:m-0 [&>p+p]:mt-2",
@@ -252,33 +252,14 @@ const copyToClipboard = async (text) => {
252
252
 
253
253
  //#endregion
254
254
  //#region src/client/components/mdx/use-code-block.ts
255
- const langIconMap = {
256
- ts: require_icons_dev.TypeScript,
257
- tsx: require_icons_dev.React,
258
- js: require_icons_dev.JavaScript,
259
- jsx: require_icons_dev.React,
260
- json: require_icons_dev.Json,
261
- css: require_icons_dev.Css,
262
- html: require_icons_dev.BracketsOrange,
263
- md: require_icons_dev.Markdown,
264
- mdx: require_icons_dev.Markdown,
265
- bash: require_icons_dev.Shell,
266
- sh: require_icons_dev.Shell,
267
- yaml: require_icons_dev.Yaml,
268
- yml: require_icons_dev.Yaml,
269
- rs: require_icons_dev.Rust,
270
- rust: require_icons_dev.Rust,
271
- toml: require_icons_dev.BracketsRed,
272
- csv: require_icons_dev.Csv
273
- };
274
255
  function useCodeBlock(props) {
275
256
  const [copied, setCopied] = (0, react.useState)(false);
276
257
  const [isExpanded, setIsExpanded] = (0, react.useState)(false);
277
258
  const [isExpandable, setIsExpandable] = (0, react.useState)(false);
259
+ const [rated, setRated] = (0, react.useState)(null);
278
260
  const preRef = (0, react.useRef)(null);
279
261
  const timerRef = (0, react.useRef)(null);
280
- const [rated, setRated] = (0, react.useState)(null);
281
- const customConfig = require_icons_dev.useConfig().integrations?.feedback?.custom;
262
+ const customConfig = require_link.useConfig().integrations?.feedback?.custom;
282
263
  const showCodeBlockFeedback = !!(customConfig?.enabled && !props.plain);
283
264
  const lang = props.lang || props["data-lang"] || "";
284
265
  const isHighlighted = props["data-highlighted"] === "true" || typeof props.className === "string" && props.className.includes("shiki");
@@ -330,7 +311,6 @@ function useCodeBlock(props) {
330
311
  const lines = (preRef.current?.textContent ?? "").trim().split("\n").length;
331
312
  setIsExpandable(lines > 6);
332
313
  }, [props.children, props.highlightedHtml]);
333
- const LangIcon = langIconMap[lang] || require_icons_dev.File;
334
314
  return {
335
315
  copied,
336
316
  isExpanded,
@@ -345,8 +325,7 @@ function useCodeBlock(props) {
345
325
  lang,
346
326
  showCodeBlockFeedback,
347
327
  rated,
348
- handleRate,
349
- LangIcon
328
+ handleRate
350
329
  };
351
330
  }
352
331
 
@@ -357,9 +336,9 @@ const CopyButton = ({ copied, handleCopy }) => {
357
336
  content: copied ? "Copied!" : "Copy code",
358
337
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Button, {
359
338
  onPress: handleCopy,
360
- className: require_icons_dev.cn("grid place-items-center size-8 bg-transparent outline-none cursor-pointer transition-all duration-200 hover:scale-110 active:scale-95 [&>svg]:size-4 [&>svg]:stroke-2 z-10", copied ? "text-emerald-400" : "text-muted hover:text-body"),
339
+ className: require_link.cn("grid place-items-center size-8 bg-transparent outline-none cursor-pointer transition-all duration-200 hover:scale-110 active:scale-95 [&>svg]:size-4 [&>svg]:stroke-2 z-10", copied ? "text-emerald-400" : "text-muted hover:text-body"),
361
340
  "aria-label": "Copy code",
362
- children: copied ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons_dev.Check, { size: 20 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons_dev.Copy, { size: 20 })
341
+ children: copied ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Check, { size: 20 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Copy, { size: 20 })
363
342
  })
364
343
  });
365
344
  };
@@ -369,9 +348,9 @@ const CodeBlockFeedback = ({ rated, onRate }) => {
369
348
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_image.Tooltip, {
370
349
  content: rated === "up" ? "Helpful!" : "This code is helpful",
371
350
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Button, {
372
- onPress: () => onRate("up"),
373
- disabled: rated !== null,
374
- className: require_icons_dev.cn("grid place-items-center size-8 bg-transparent outline-none cursor-pointer transition-all duration-200 hover:scale-110 active:scale-95 [&>svg]:size-4 [&>svg]:stroke-2 z-10", rated === "up" ? "text-emerald-500 dark:text-emerald-400" : rated === "down" ? "opacity-30 cursor-not-allowed text-muted" : "text-muted hover:text-body"),
351
+ onPress: (() => onRate("up")),
352
+ isDisabled: rated !== null,
353
+ className: require_link.cn("grid place-items-center size-8 bg-transparent outline-none cursor-pointer transition-all duration-200 hover:scale-110 active:scale-95 [&>svg]:size-4 [&>svg]:stroke-2 z-10", rated === "up" ? "text-emerald-500 dark:text-emerald-400" : rated === "down" ? "opacity-30 cursor-not-allowed text-muted" : "text-muted hover:text-body"),
375
354
  "aria-label": "Mark as helpful",
376
355
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
377
356
  xmlns: "http://www.w3.org/2000/svg",
@@ -387,9 +366,9 @@ const CodeBlockFeedback = ({ rated, onRate }) => {
387
366
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_image.Tooltip, {
388
367
  content: rated === "down" ? "Unhelpful" : "This code is unhelpful",
389
368
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Button, {
390
- onPress: () => onRate("down"),
391
- disabled: rated !== null,
392
- className: require_icons_dev.cn("grid place-items-center size-8 bg-transparent outline-none cursor-pointer transition-all duration-200 hover:scale-110 active:scale-95 [&>svg]:size-4 [&>svg]:stroke-2 z-10", rated === "down" ? "text-rose-500 dark:text-rose-400" : rated === "up" ? "opacity-30 cursor-not-allowed text-muted" : "text-muted hover:text-body"),
369
+ onPress: (() => onRate("down")),
370
+ isDisabled: rated !== null,
371
+ className: require_link.cn("grid place-items-center size-8 bg-transparent outline-none cursor-pointer transition-all duration-200 hover:scale-110 active:scale-95 [&>svg]:size-4 [&>svg]:stroke-2 z-10", rated === "down" ? "text-rose-500 dark:text-rose-400" : rated === "up" ? "opacity-30 cursor-not-allowed text-muted" : "text-muted hover:text-body"),
393
372
  "aria-label": "Mark as unhelpful",
394
373
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
395
374
  xmlns: "http://www.w3.org/2000/svg",
@@ -408,17 +387,14 @@ const CodeBlockFeedback = ({ rated, onRate }) => {
408
387
  function CodeBlock(props) {
409
388
  const { children, hideCopy = false, highlightedHtml, "data-highlighted-html": dataHighlightedHtml, title, "data-title": dataTitle, "data-lang": dataLang, plain = false, lineNumbers, showLineNumbers, wordWrap, "word-wrap": wordWrapHyphen, metastring, ...rest } = props;
410
389
  const { className: shikiClassName, ...cleanRest } = rest;
411
- const { copied, isExpanded, setIsExpanded, isExpandable, preRef, handleCopy, shouldTruncate, isHighlighted, effectiveHighlightedHtml, effectiveTitle, showCodeBlockFeedback, rated, handleRate, LangIcon } = useCodeBlock(props);
390
+ const { copied, isExpanded, setIsExpanded, isExpandable, preRef, handleCopy, shouldTruncate, isHighlighted, effectiveHighlightedHtml, effectiveTitle, showCodeBlockFeedback, rated, handleRate } = useCodeBlock(props);
412
391
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_image.CodeBlock, {
413
392
  plain,
414
393
  className: props.className,
415
394
  children: [(effectiveTitle || !hideCopy) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_image.CodeBlockHeader, {
416
- className: require_icons_dev.cn({ "absolute top-2 left-0 w-full": !effectiveTitle }),
417
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_image.CodeBlockGroup, { children: effectiveTitle && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [LangIcon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LangIcon, { size: 14 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons_dev.File, {
418
- size: 14,
419
- className: "opacity-60"
420
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: effectiveTitle })] }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
421
- className: "flex items-center gap-1",
395
+ className: require_link.cn({ "absolute top-2 left-0 w-full": !effectiveTitle }),
396
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_image.CodeBlockGroup, { children: effectiveTitle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: effectiveTitle }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
397
+ className: "flex items-center gap-1 bg-(--color-code-bg) pl-2 z-10",
422
398
  children: [showCodeBlockFeedback && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeBlockFeedback, {
423
399
  rated,
424
400
  onRate: handleRate
@@ -435,14 +411,14 @@ function CodeBlock(props) {
435
411
  dangerouslySetInnerHTML: { __html: effectiveHighlightedHtml }
436
412
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
437
413
  ref: preRef,
438
- className: require_icons_dev.cn("m-0! rounded-none! border-none! bg-transparent!", "text-[0.875rem] leading-[1.6] overflow-x-auto", shikiClassName, {
414
+ className: require_link.cn("m-0! rounded-none! border-none! bg-transparent!", "text-[0.875rem] leading-[1.6] overflow-x-auto", shikiClassName, {
439
415
  "p-0! [&>code]:grid! [&>code]:p-5! [&>code]:bg-transparent!": isHighlighted,
440
416
  "p-5!": !isHighlighted
441
417
  }),
442
418
  ...cleanRest,
443
419
  children
444
420
  }), isExpandable && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
445
- className: require_icons_dev.cn({
421
+ className: require_link.cn({
446
422
  "absolute bottom-0 inset-x-0 h-32 flex items-end justify-center pb-4 z-10": shouldTruncate,
447
423
  "relative flex justify-center pb-4 pt-1 -mt-4": !shouldTruncate
448
424
  }),
@@ -474,7 +450,7 @@ const Image = ({ src, alt, title, theme, className, ...props }) => {
474
450
  theme,
475
451
  loading: "lazy",
476
452
  decoding: "async",
477
- className: require_icons_dev.cn("w-full h-auto object-contain transition-transform duration-500 group-hover:scale-[1.01] my-0 rounded-md sm:rounded-xl block", className),
453
+ className: require_link.cn("w-full h-auto object-contain transition-transform duration-500 group-hover:scale-[1.01] my-0 rounded-md sm:rounded-xl block", className),
478
454
  ...props
479
455
  })
480
456
  }), caption && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("figcaption", {
@@ -506,7 +482,7 @@ function Card({ className, title, icon, href, children, ...props }) {
506
482
  ref: cardRef,
507
483
  href,
508
484
  onMouseMove: handleMouseMove,
509
- className: require_icons_dev.cn("group relative flex flex-col gap-3 rounded-2xl border p-6 overflow-hidden", "transition-[box-shadow,transform] duration-300", "hover:shadow-lg dark:hover:shadow-none hover:-translate-y-0.5", "bg-surface border-subtle text-paragraph", href && "cursor-pointer", className),
485
+ className: require_link.cn("group relative flex flex-col gap-3 rounded-2xl border p-6 overflow-hidden", "transition-[box-shadow,transform] duration-300", "hover:shadow-lg dark:hover:shadow-none hover:-translate-y-0.5", "bg-surface border-subtle text-paragraph", href && "cursor-pointer", className),
510
486
  ...props,
511
487
  children: [
512
488
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
@@ -526,7 +502,7 @@ function Card({ className, title, icon, href, children, ...props }) {
526
502
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
527
503
  className: "relative z-10 flex items-center gap-3",
528
504
  children: [icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
529
- className: require_icons_dev.cn("shrink-0 transition-transform duration-500 group-hover:rotate-[15deg] group-hover:scale-110 flex items-center justify-center text-muted group-hover:text-primary-500", "[&>svg]:w-6 [&>svg]:h-6 [&>svg]:stroke-[1.5]"),
505
+ className: require_link.cn("shrink-0 transition-transform duration-500 group-hover:rotate-15 group-hover:scale-110 flex items-center justify-center text-muted group-hover:text-primary-500", "[&>svg]:w-6 [&>svg]:h-6 [&>svg]:stroke-[1.5]"),
530
506
  children: icon
531
507
  }), title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
532
508
  className: "font-semibold text-base m-0 leading-none text-body",
@@ -545,7 +521,7 @@ function Card({ className, title, icon, href, children, ...props }) {
545
521
  //#region src/client/components/mdx/cards.tsx
546
522
  function Cards({ children, className, cols = 2, ...props }) {
547
523
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
548
- className: require_icons_dev.cn("grid gap-4 my-6", {
524
+ className: require_link.cn("grid gap-4 my-6", {
549
525
  "grid-cols-1": cols === 1,
550
526
  "grid-cols-1 sm:grid-cols-2": cols === 2,
551
527
  "grid-cols-1 sm:grid-cols-2 md:grid-cols-3": cols === 3,
@@ -580,6 +556,184 @@ function LastUpdated({ date }) {
580
556
  });
581
557
  }
582
558
 
559
+ //#endregion
560
+ //#region src/client/components/mdx/timeline.tsx
561
+ const VARIANT_PALETTE = {
562
+ primary: {
563
+ ring: "border-primary-500/70",
564
+ fill: "bg-primary-500",
565
+ badgeBg: "bg-primary-500/10",
566
+ badgeText: "text-primary-600 dark:text-primary-400",
567
+ badgeBorder: "border-primary-500/30"
568
+ },
569
+ success: {
570
+ ring: "border-success-500/70",
571
+ fill: "bg-success-500",
572
+ badgeBg: "bg-success-500/10",
573
+ badgeText: "text-success-500",
574
+ badgeBorder: "border-success-500/30"
575
+ },
576
+ info: {
577
+ ring: "border-info-500/70",
578
+ fill: "bg-info-500",
579
+ badgeBg: "bg-info-500/10",
580
+ badgeText: "text-info-500",
581
+ badgeBorder: "border-info-500/30"
582
+ },
583
+ warning: {
584
+ ring: "border-warning-500/70",
585
+ fill: "bg-warning-500",
586
+ badgeBg: "bg-warning-500/10",
587
+ badgeText: "text-warning-500",
588
+ badgeBorder: "border-warning-500/30"
589
+ },
590
+ danger: {
591
+ ring: "border-danger-500/70",
592
+ fill: "bg-danger-500",
593
+ badgeBg: "bg-danger-500/10",
594
+ badgeText: "text-danger-500",
595
+ badgeBorder: "border-danger-500/30"
596
+ },
597
+ major: {
598
+ ring: "",
599
+ fill: "",
600
+ badgeBg: "",
601
+ badgeText: "",
602
+ badgeBorder: ""
603
+ },
604
+ minor: {
605
+ ring: "",
606
+ fill: "",
607
+ badgeBg: "",
608
+ badgeText: "",
609
+ badgeBorder: ""
610
+ },
611
+ patch: {
612
+ ring: "",
613
+ fill: "",
614
+ badgeBg: "",
615
+ badgeText: "",
616
+ badgeBorder: ""
617
+ },
618
+ new: {
619
+ ring: "",
620
+ fill: "",
621
+ badgeBg: "",
622
+ badgeText: "",
623
+ badgeBorder: ""
624
+ },
625
+ deprecated: {
626
+ ring: "",
627
+ fill: "",
628
+ badgeBg: "",
629
+ badgeText: "",
630
+ badgeBorder: ""
631
+ },
632
+ breaking: {
633
+ ring: "",
634
+ fill: "",
635
+ badgeBg: "",
636
+ badgeText: "",
637
+ badgeBorder: ""
638
+ }
639
+ };
640
+ Object.assign(VARIANT_PALETTE, {
641
+ major: VARIANT_PALETTE.primary,
642
+ minor: VARIANT_PALETTE.success,
643
+ patch: VARIANT_PALETTE.info,
644
+ new: VARIANT_PALETTE.primary,
645
+ deprecated: VARIANT_PALETTE.warning,
646
+ breaking: VARIANT_PALETTE.danger
647
+ });
648
+ function normalizeBadge(badge) {
649
+ if (!badge) return null;
650
+ if (typeof badge === "string") return {
651
+ text: badge,
652
+ variant: "primary"
653
+ };
654
+ return {
655
+ text: badge.text,
656
+ variant: badge.variant ?? "primary"
657
+ };
658
+ }
659
+ function formatDate(date, locale) {
660
+ if (date === void 0 || date === null || date === "") return null;
661
+ const d = date instanceof Date ? date : new Date(date);
662
+ if (Number.isNaN(d.getTime())) return null;
663
+ return d.toLocaleDateString(locale ?? "en-US", {
664
+ year: "numeric",
665
+ month: "short",
666
+ day: "numeric"
667
+ });
668
+ }
669
+ const VARIANT_DEFAULT_ICON = {
670
+ success: require_link.Check,
671
+ info: require_link.Info,
672
+ warning: require_link.AlertTriangle,
673
+ danger: require_link.AlertCircle
674
+ };
675
+ function TimelineRoot({ children, className, compact = false, ...props }) {
676
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("ol", {
677
+ role: "list",
678
+ className: require_link.cn("relative my-8 ms-3", compact ? "space-y-3" : "space-y-7", className),
679
+ ...props,
680
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
681
+ "aria-hidden": "true",
682
+ className: "pointer-events-none absolute top-3 bottom-3 start-[5.5px] w-px bg-subtle"
683
+ }), children]
684
+ });
685
+ }
686
+ function TimelineItem({ date, title, badge, icon, variant = "primary", locale, className, children, ...props }) {
687
+ const palette = VARIANT_PALETTE[variant] ?? VARIANT_PALETTE.primary;
688
+ const formatted = formatDate(date, locale);
689
+ const badgeCfg = normalizeBadge(badge);
690
+ const FallbackIcon = VARIANT_DEFAULT_ICON[variant];
691
+ const dot = icon ?? (FallbackIcon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FallbackIcon, {
692
+ size: 12,
693
+ className: "text-white",
694
+ "aria-hidden": "true"
695
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
696
+ "aria-hidden": "true",
697
+ className: require_link.cn("w-2 h-2 rounded-full", palette.fill)
698
+ }));
699
+ const ariaLabel = [formatted, typeof title === "string" ? title : null].filter(Boolean).join(" - ") || void 0;
700
+ const a11yProps = ariaLabel ? {
701
+ role: "img",
702
+ "aria-label": ariaLabel
703
+ } : { "aria-hidden": "true" };
704
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
705
+ className: require_link.cn("relative ps-8", className),
706
+ ...props,
707
+ children: [
708
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
709
+ ...a11yProps,
710
+ className: require_link.cn("absolute start-0 top-1 flex items-center justify-center w-3 h-3 rounded-full", "bg-surface border-2 shadow-sm", palette.ring),
711
+ children: dot
712
+ }),
713
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
714
+ className: "flex items-center gap-2 flex-wrap mb-1",
715
+ children: [formatted && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("time", {
716
+ dateTime: date instanceof Date ? date.toISOString() : new Date(date).toISOString(),
717
+ className: "text-[11px] uppercase tracking-wider font-mono tabular-nums text-muted select-none",
718
+ children: formatted
719
+ }), badgeCfg && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
720
+ className: require_link.cn("inline-flex items-center px-2 py-0.5 rounded-full text-[10px] font-bold uppercase tracking-wide border", palette.badgeBg, palette.badgeText, palette.badgeBorder),
721
+ children: badgeCfg.text
722
+ })]
723
+ }),
724
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
725
+ className: "text-base font-semibold text-body m-0 leading-snug",
726
+ children: title
727
+ }),
728
+ children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
729
+ className: "mt-2 text-[0.9rem] leading-[1.6] text-paragraph prose prose-neutral dark:prose-invert max-w-none [&>p]:m-0 [&>p+p]:mt-2 [&_a]:text-primary-500 [&_a]:no-underline hover:[&_a]:underline",
730
+ children
731
+ })
732
+ ]
733
+ });
734
+ }
735
+ const Timeline = Object.assign(TimelineRoot, { Item: TimelineItem });
736
+
583
737
  //#endregion
584
738
  //#region src/client/components/mdx/index.ts
585
739
  const mdx_components_default = {
@@ -591,10 +745,17 @@ const mdx_components_default = {
591
745
  Field,
592
746
  Callout,
593
747
  Card,
594
- Cards
748
+ Cards,
749
+ Timeline
595
750
  };
596
751
 
597
752
  //#endregion
753
+ Object.defineProperty(exports, 'Timeline', {
754
+ enumerable: true,
755
+ get: function () {
756
+ return Timeline;
757
+ }
758
+ });
598
759
  Object.defineProperty(exports, 'copyToClipboard', {
599
760
  enumerable: true,
600
761
  get: function () {
@@ -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-Ds5LZdWN.cjs`);let t=require(`node:path`);t=e.n(t);let n=require(`@bdocs/dui`),r=require(`fdir`),i=require(`node:fs/promises`);i=e.n(i);async function a(e){let a={};try{let o=(await new r.fdir().withFullPaths().filter(e=>e.endsWith(`meta.json`)).crawl(e).withPromise()).filter(e=>{let n=t.default.basename(e);return n===`meta.json`||n===`_meta.json`}),s=await Promise.allSettled(o.map(async n=>{let r=await i.default.readFile(n,`utf-8`),a=t.default.relative(e,t.default.dirname(n)).replace(/\\/g,`/`);return{key:a===``?`.`:a,content:JSON.parse(r)}}));for(let e of s)e.status===`fulfilled`?a[e.value.key]=e.value.content:(0,n.warn)(`Failed to read meta.json:`,e.reason)}catch(e){(0,n.error)(`Error loading directory metadata:`,e)}return a}exports.loadDirectoryMeta=a;
6
+ const e=require(`./chunk-D1Md3oWO.cjs`);let t=require(`node:path`);t=e.r(t);let n=require(`@bdocs/dui`),r=require(`fdir`),i=require(`node:fs/promises`);i=e.r(i);async function a(e){let a={};try{let o=(await new r.fdir().withFullPaths().filter(e=>e.endsWith(`meta.json`)).crawl(e).withPromise()).filter(e=>{let n=t.default.basename(e);return n===`meta.json`||n===`_meta.json`}),s=await Promise.allSettled(o.map(async n=>{let r=await i.default.readFile(n,`utf-8`),a=t.default.relative(e,t.default.dirname(n)).replace(/\\/g,`/`);return{key:a===``?`.`:a,content:JSON.parse(r)}}));for(let e of s)e.status===`fulfilled`?a[e.value.key]=e.value.content:(0,n.warn)(`Failed to read meta.json:`,e.reason)}catch(e){(0,n.error)(`Error loading directory metadata:`,e)}return a}exports.loadDirectoryMeta=a;
@@ -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(`../chunk-Ds5LZdWN.cjs`),t=require(`../utils-Bz1tG9Dg.cjs`);let n=require(`node:path`);n=e.n(n);let r=require(`node:fs/promises`);r=e.n(r);let i=require(`node:crypto`);i=e.n(i);let a=require(`node:zlib`);a=e.n(a);let o=require(`node:util`),s=require(`lru-cache`);const c=r.default.writeFile,l=r.default.readFile,u=r.default.mkdir,d=r.default.rename,f=(0,o.promisify)(a.default.gzip),p=(0,o.promisify)(a.default.gunzip),m=new class{activeTasks=new Set;add(e){let t=Promise.resolve().then(e).catch(()=>{}).finally(()=>{this.activeTasks.delete(t)});this.activeTasks.add(t)}async flush(){await Promise.all(Array.from(this.activeTasks))}get pending(){return this.activeTasks.size}};var h=class{entries=new Map;cachePath=null;compress;constructor(e={}){let r=t.o();if(this.compress=e.compress===void 0?r.compress:e.compress,e.name){let t=e.root||process.cwd(),i=this.compress?`json.gz`:`json`;this.cachePath=n.default.resolve(t,r.dir,`${e.name}.${i}`)}}async load(){if(!t.o().noCache&&this.cachePath)try{let e=await l(this.cachePath);this.cachePath.endsWith(`.gz`)&&(e=await p(e));let t=JSON.parse(e.toString(`utf-8`));this.entries=new Map(Object.entries(t))}catch(e){if(e.code===`ENOENT`)return}}save(){if(t.o().noCache||!this.cachePath)return;let e=Object.fromEntries(this.entries),r=JSON.stringify(e),a=this.cachePath,o=this.compress;m.add(async()=>{try{await u(n.default.dirname(a),{recursive:!0});let e=Buffer.from(r);o&&(e=await f(e));let t=`${a}.${i.default.randomBytes(4).toString(`hex`)}.tmp`;await c(t,e),await d(t,a)}catch{}})}get(e){let n=this.entries.get(e);return!n||t.s(e)!==n.mtime?null:n.data}getStale(e){let t=this.entries.get(e);return t?t.data:null}set(e,n){this.entries.set(e,{data:n,mtime:t.s(e)})}isValid(e){let n=this.entries.get(e);return n?t.s(e)===n.mtime:!1}invalidate(e){this.entries.delete(e)}invalidateAll(){this.entries.clear()}pruneStale(e){for(let t of this.entries.keys())e.has(t)||this.entries.delete(t)}get size(){return this.entries.size}async flush(){await m.flush()}},g=class{index=new Map;memoryCache;baseDir;shardsDir;indexPath;saveTimeout=null;constructor(e,r=process.cwd()){let i=t.o();this.baseDir=n.default.resolve(r,i.dir,`transform-${e}`),this.shardsDir=n.default.resolve(this.baseDir,`shards`),this.indexPath=n.default.resolve(this.baseDir,`index.json`),this.memoryCache=new s.LRUCache({max:i.lruLimit,ttl:i.lruTTL,updateAgeOnGet:!0})}async load(){if(!t.o().noCache)try{let e=await l(this.indexPath,`utf-8`);this.index=new Map(Object.entries(JSON.parse(e)))}catch(e){if(e.code===`ENOENT`)return}}save(){if(t.o().noCache)return;let e=JSON.stringify(Object.fromEntries(this.index)),r=this.indexPath;m.add(async()=>{try{await u(n.default.dirname(r),{recursive:!0}),await c(r,e)}catch{}})}async getMany(e){let t=new Map,r=[];for(let n of e){let e=this.memoryCache.get(n);e?t.set(n,e):this.index.has(n)&&r.push(n)}if(r.length>0){let e=await Promise.all(r.map(async e=>{let t=this.index.get(e),r=n.default.resolve(this.shardsDir,`${t}.gz`);try{let t=(await p(await l(r))).toString(`utf-8`);return this.memoryCache.set(e,t),{key:e,val:t}}catch{return null}}));for(let n of e)n&&t.set(n.key,n.val)}return t}async getAsync(e){let t=this.memoryCache.get(e);if(t)return t;let r=this.index.get(e);if(!r)return null;let i=n.default.resolve(this.shardsDir,`${r}.gz`);try{let t=(await p(await l(i))).toString(`utf-8`);return this.memoryCache.set(e,t),t}catch(e){return e.code,null}}set(e,t){let a=i.default.createHash(`md5`).update(t).digest(`hex`);this.index.set(e,a),this.memoryCache.set(e,t);let o=n.default.resolve(this.shardsDir,`${a}.gz`);m.add(async()=>{try{try{await r.default.access(o);return}catch{}await u(this.shardsDir,{recursive:!0});let e=await f(Buffer.from(t)),n=`${o}.${i.default.randomBytes(4).toString(`hex`)}.tmp`;await c(n,e),await d(n,o)}catch{}}),this.saveTimeout&&clearTimeout(this.saveTimeout),this.saveTimeout=setTimeout(()=>{this.save()},500),typeof this.saveTimeout.unref==`function`&&this.saveTimeout.unref()}get size(){return this.index.size}async flush(){await m.flush()}};async function _(){await m.flush()}exports.FileCache=h,exports.TransformCache=g,exports.flushCache=_,exports.globalBackgroundQueue=m;
6
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../chunk-D1Md3oWO.cjs`),t=require(`../utils-D6Xtj0FZ.cjs`);let n=require(`node:path`);n=e.r(n);let r=require(`node:fs/promises`);r=e.r(r);let i=require(`node:crypto`);i=e.r(i);let a=require(`node:zlib`);a=e.r(a);let o=require(`node:util`),s=require(`lru-cache`);const c=r.default.writeFile,l=r.default.readFile,u=r.default.mkdir,d=r.default.rename,f=(0,o.promisify)(a.default.gzip),p=(0,o.promisify)(a.default.gunzip),m=new class{activeTasks=new Set;add(e){let t=Promise.resolve().then(e).catch(()=>{}).finally(()=>{this.activeTasks.delete(t)});this.activeTasks.add(t)}async flush(){await Promise.all(Array.from(this.activeTasks))}get pending(){return this.activeTasks.size}};var h=class{entries=new Map;cachePath=null;compress;loaded=!1;constructor(e={}){let r=t.o();if(this.compress=e.compress===void 0?r.compress:e.compress,e.name){let t=e.root||process.cwd(),i=this.compress?`json.gz`:`json`;this.cachePath=n.default.resolve(t,r.dir,`${e.name}.${i}`)}}async load(){if(!this.loaded&&!t.o().noCache&&this.cachePath)try{let e=await l(this.cachePath);this.cachePath.endsWith(`.gz`)&&(e=await p(new Uint8Array(e)));let t=JSON.parse(e.toString(`utf-8`));this.entries=new Map(Object.entries(t)),this.loaded=!0}catch(e){if(e instanceof Error&&e.code===`ENOENT`)return}}save(){if(t.o().noCache||!this.cachePath)return;let e=Object.fromEntries(this.entries),r=JSON.stringify(e),a=this.cachePath,o=this.compress;m.add(async()=>{try{await u(n.default.dirname(a),{recursive:!0});let e=Buffer.from(r);o&&(e=await f(e));let t=`${a}.${i.default.randomBytes(4).toString(`hex`)}.tmp`;await c(t,e),await d(t,a)}catch{}})}get(e){let n=this.entries.get(e);return!n||t.s(e)!==n.mtime?null:n.data}getStale(e){let t=this.entries.get(e);return t?t.data:null}set(e,n){this.entries.set(e,{data:n,mtime:t.s(e)})}isValid(e){let n=this.entries.get(e);return n?t.s(e)===n.mtime:!1}invalidate(e){this.entries.delete(e)}invalidateAll(){this.entries.clear(),this.loaded=!1}pruneStale(e){for(let t of this.entries.keys())e.has(t)||this.entries.delete(t)}get size(){return this.entries.size}async flush(){await m.flush()}},g=class{index=new Map;memoryCache;baseDir;shardsDir;indexPath;saveTimeout=null;constructor(e,r=process.cwd()){let i=t.o();this.baseDir=n.default.resolve(r,i.dir,`transform-${e}`),this.shardsDir=n.default.resolve(this.baseDir,`shards`),this.indexPath=n.default.resolve(this.baseDir,`index.json`),this.memoryCache=new s.LRUCache({max:i.lruLimit,ttl:i.lruTTL,updateAgeOnGet:!0})}async load(){if(!t.o().noCache)try{let e=await l(this.indexPath,`utf-8`);this.index=new Map(Object.entries(JSON.parse(e)))}catch(e){if(e instanceof Error&&e.code===`ENOENT`)return}}save(){if(t.o().noCache)return;let e=JSON.stringify(Object.fromEntries(this.index)),r=this.indexPath;m.add(async()=>{try{await u(n.default.dirname(r),{recursive:!0}),await c(r,e)}catch{}})}async getMany(e){let t=new Map,r=[];for(let n of e){let e=this.memoryCache.get(n);e?t.set(n,e):this.index.has(n)&&r.push(n)}if(r.length>0){let e=await Promise.all(r.map(async e=>{let t=this.index.get(e),r=n.default.resolve(this.shardsDir,`${t}.gz`);try{let t=await l(r),n=(await p(new Uint8Array(t))).toString(`utf-8`);return this.memoryCache.set(e,n),{key:e,val:n}}catch{return null}}));for(let n of e)n&&t.set(n.key,n.val)}return t}async getAsync(e){let t=this.memoryCache.get(e);if(t)return t;let r=this.index.get(e);if(!r)return null;let i=n.default.resolve(this.shardsDir,`${r}.gz`);try{let t=(await p(await l(i))).toString(`utf-8`);return this.memoryCache.set(e,t),t}catch(e){return e instanceof Error&&e.code,null}}set(e,t){let a=i.default.createHash(`md5`).update(t).digest(`hex`);this.index.set(e,a),this.memoryCache.set(e,t);let o=n.default.resolve(this.shardsDir,`${a}.gz`);m.add(async()=>{try{try{await r.default.access(o);return}catch{}await u(this.shardsDir,{recursive:!0});let e=await f(new Uint8Array(Buffer.from(t))),n=`${o}.${i.default.randomBytes(4).toString(`hex`)}.tmp`;await c(n,new Uint8Array(e)),await d(n,o)}catch{}}),this.saveTimeout&&clearTimeout(this.saveTimeout),this.saveTimeout=setTimeout(()=>{this.save()},500),typeof this.saveTimeout.unref==`function`&&this.saveTimeout.unref()}get size(){return this.index.size}async flush(){await m.flush()}};async function _(){await m.flush()}exports.FileCache=h,exports.TransformCache=g,exports.flushCache=_,exports.globalBackgroundQueue=m;
@@ -5,7 +5,7 @@
5
5
  */
6
6
  declare class BackgroundQueue {
7
7
  private activeTasks;
8
- add(task: () => Promise<any>): void;
8
+ add(task: () => Promise<void>): void;
9
9
  flush(): Promise<void>;
10
10
  get pending(): number;
11
11
  }
@@ -17,6 +17,7 @@ declare class FileCache<T> {
17
17
  private entries;
18
18
  private readonly cachePath;
19
19
  private readonly compress;
20
+ private loaded;
20
21
  constructor(options?: {
21
22
  name?: string;
22
23
  root?: string;
@@ -5,7 +5,7 @@
5
5
  */
6
6
  declare class BackgroundQueue {
7
7
  private activeTasks;
8
- add(task: () => Promise<any>): void;
8
+ add(task: () => Promise<void>): void;
9
9
  flush(): Promise<void>;
10
10
  get pending(): number;
11
11
  }
@@ -17,6 +17,7 @@ declare class FileCache<T> {
17
17
  private entries;
18
18
  private readonly cachePath;
19
19
  private readonly compress;
20
+ private loaded;
20
21
  constructor(options?: {
21
22
  name?: string;
22
23
  root?: string;
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{o as e,s as t}from"../utils-B3xYMrpK.mjs";import n from"node:path";import r from"node:fs/promises";import i from"node:crypto";import a from"node:zlib";import{promisify as o}from"node:util";import{LRUCache as s}from"lru-cache";const c=r.writeFile,l=r.readFile,u=r.mkdir,d=r.rename,f=o(a.gzip),p=o(a.gunzip),m=new class{activeTasks=new Set;add(e){let t=Promise.resolve().then(e).catch(()=>{}).finally(()=>{this.activeTasks.delete(t)});this.activeTasks.add(t)}async flush(){await Promise.all(Array.from(this.activeTasks))}get pending(){return this.activeTasks.size}};var h=class{entries=new Map;cachePath=null;compress;constructor(t={}){let r=e();if(this.compress=t.compress===void 0?r.compress:t.compress,t.name){let e=t.root||process.cwd(),i=this.compress?`json.gz`:`json`;this.cachePath=n.resolve(e,r.dir,`${t.name}.${i}`)}}async load(){if(!e().noCache&&this.cachePath)try{let e=await l(this.cachePath);this.cachePath.endsWith(`.gz`)&&(e=await p(e));let t=JSON.parse(e.toString(`utf-8`));this.entries=new Map(Object.entries(t))}catch(e){if(e.code===`ENOENT`)return}}save(){if(e().noCache||!this.cachePath)return;let t=Object.fromEntries(this.entries),r=JSON.stringify(t),a=this.cachePath,o=this.compress;m.add(async()=>{try{await u(n.dirname(a),{recursive:!0});let e=Buffer.from(r);o&&(e=await f(e));let t=`${a}.${i.randomBytes(4).toString(`hex`)}.tmp`;await c(t,e),await d(t,a)}catch{}})}get(e){let n=this.entries.get(e);return!n||t(e)!==n.mtime?null:n.data}getStale(e){let t=this.entries.get(e);return t?t.data:null}set(e,n){this.entries.set(e,{data:n,mtime:t(e)})}isValid(e){let n=this.entries.get(e);return n?t(e)===n.mtime:!1}invalidate(e){this.entries.delete(e)}invalidateAll(){this.entries.clear()}pruneStale(e){for(let t of this.entries.keys())e.has(t)||this.entries.delete(t)}get size(){return this.entries.size}async flush(){await m.flush()}},g=class{index=new Map;memoryCache;baseDir;shardsDir;indexPath;saveTimeout=null;constructor(t,r=process.cwd()){let i=e();this.baseDir=n.resolve(r,i.dir,`transform-${t}`),this.shardsDir=n.resolve(this.baseDir,`shards`),this.indexPath=n.resolve(this.baseDir,`index.json`),this.memoryCache=new s({max:i.lruLimit,ttl:i.lruTTL,updateAgeOnGet:!0})}async load(){if(!e().noCache)try{let e=await l(this.indexPath,`utf-8`);this.index=new Map(Object.entries(JSON.parse(e)))}catch(e){if(e.code===`ENOENT`)return}}save(){if(e().noCache)return;let t=JSON.stringify(Object.fromEntries(this.index)),r=this.indexPath;m.add(async()=>{try{await u(n.dirname(r),{recursive:!0}),await c(r,t)}catch{}})}async getMany(e){let t=new Map,r=[];for(let n of e){let e=this.memoryCache.get(n);e?t.set(n,e):this.index.has(n)&&r.push(n)}if(r.length>0){let e=await Promise.all(r.map(async e=>{let t=this.index.get(e),r=n.resolve(this.shardsDir,`${t}.gz`);try{let t=(await p(await l(r))).toString(`utf-8`);return this.memoryCache.set(e,t),{key:e,val:t}}catch{return null}}));for(let n of e)n&&t.set(n.key,n.val)}return t}async getAsync(e){let t=this.memoryCache.get(e);if(t)return t;let r=this.index.get(e);if(!r)return null;let i=n.resolve(this.shardsDir,`${r}.gz`);try{let t=(await p(await l(i))).toString(`utf-8`);return this.memoryCache.set(e,t),t}catch(e){return e.code,null}}set(e,t){let a=i.createHash(`md5`).update(t).digest(`hex`);this.index.set(e,a),this.memoryCache.set(e,t);let o=n.resolve(this.shardsDir,`${a}.gz`);m.add(async()=>{try{try{await r.access(o);return}catch{}await u(this.shardsDir,{recursive:!0});let e=await f(Buffer.from(t)),n=`${o}.${i.randomBytes(4).toString(`hex`)}.tmp`;await c(n,e),await d(n,o)}catch{}}),this.saveTimeout&&clearTimeout(this.saveTimeout),this.saveTimeout=setTimeout(()=>{this.save()},500),typeof this.saveTimeout.unref==`function`&&this.saveTimeout.unref()}get size(){return this.index.size}async flush(){await m.flush()}};async function _(){await m.flush()}export{h as FileCache,g as TransformCache,_ as flushCache,m as globalBackgroundQueue};
6
+ import{o as e,s as t}from"../utils-Crm9oPcV.mjs";import n from"node:path";import r from"node:fs/promises";import i from"node:crypto";import a from"node:zlib";import{promisify as o}from"node:util";import{LRUCache as s}from"lru-cache";const c=r.writeFile,l=r.readFile,u=r.mkdir,d=r.rename,f=o(a.gzip),p=o(a.gunzip),m=new class{activeTasks=new Set;add(e){let t=Promise.resolve().then(e).catch(()=>{}).finally(()=>{this.activeTasks.delete(t)});this.activeTasks.add(t)}async flush(){await Promise.all(Array.from(this.activeTasks))}get pending(){return this.activeTasks.size}};var h=class{entries=new Map;cachePath=null;compress;loaded=!1;constructor(t={}){let r=e();if(this.compress=t.compress===void 0?r.compress:t.compress,t.name){let e=t.root||process.cwd(),i=this.compress?`json.gz`:`json`;this.cachePath=n.resolve(e,r.dir,`${t.name}.${i}`)}}async load(){if(!this.loaded&&!e().noCache&&this.cachePath)try{let e=await l(this.cachePath);this.cachePath.endsWith(`.gz`)&&(e=await p(new Uint8Array(e)));let t=JSON.parse(e.toString(`utf-8`));this.entries=new Map(Object.entries(t)),this.loaded=!0}catch(e){if(e instanceof Error&&e.code===`ENOENT`)return}}save(){if(e().noCache||!this.cachePath)return;let t=Object.fromEntries(this.entries),r=JSON.stringify(t),a=this.cachePath,o=this.compress;m.add(async()=>{try{await u(n.dirname(a),{recursive:!0});let e=Buffer.from(r);o&&(e=await f(e));let t=`${a}.${i.randomBytes(4).toString(`hex`)}.tmp`;await c(t,e),await d(t,a)}catch{}})}get(e){let n=this.entries.get(e);return!n||t(e)!==n.mtime?null:n.data}getStale(e){let t=this.entries.get(e);return t?t.data:null}set(e,n){this.entries.set(e,{data:n,mtime:t(e)})}isValid(e){let n=this.entries.get(e);return n?t(e)===n.mtime:!1}invalidate(e){this.entries.delete(e)}invalidateAll(){this.entries.clear(),this.loaded=!1}pruneStale(e){for(let t of this.entries.keys())e.has(t)||this.entries.delete(t)}get size(){return this.entries.size}async flush(){await m.flush()}},g=class{index=new Map;memoryCache;baseDir;shardsDir;indexPath;saveTimeout=null;constructor(t,r=process.cwd()){let i=e();this.baseDir=n.resolve(r,i.dir,`transform-${t}`),this.shardsDir=n.resolve(this.baseDir,`shards`),this.indexPath=n.resolve(this.baseDir,`index.json`),this.memoryCache=new s({max:i.lruLimit,ttl:i.lruTTL,updateAgeOnGet:!0})}async load(){if(!e().noCache)try{let e=await l(this.indexPath,`utf-8`);this.index=new Map(Object.entries(JSON.parse(e)))}catch(e){if(e instanceof Error&&e.code===`ENOENT`)return}}save(){if(e().noCache)return;let t=JSON.stringify(Object.fromEntries(this.index)),r=this.indexPath;m.add(async()=>{try{await u(n.dirname(r),{recursive:!0}),await c(r,t)}catch{}})}async getMany(e){let t=new Map,r=[];for(let n of e){let e=this.memoryCache.get(n);e?t.set(n,e):this.index.has(n)&&r.push(n)}if(r.length>0){let e=await Promise.all(r.map(async e=>{let t=this.index.get(e),r=n.resolve(this.shardsDir,`${t}.gz`);try{let t=await l(r),n=(await p(new Uint8Array(t))).toString(`utf-8`);return this.memoryCache.set(e,n),{key:e,val:n}}catch{return null}}));for(let n of e)n&&t.set(n.key,n.val)}return t}async getAsync(e){let t=this.memoryCache.get(e);if(t)return t;let r=this.index.get(e);if(!r)return null;let i=n.resolve(this.shardsDir,`${r}.gz`);try{let t=(await p(await l(i))).toString(`utf-8`);return this.memoryCache.set(e,t),t}catch(e){return e instanceof Error&&e.code,null}}set(e,t){let a=i.createHash(`md5`).update(t).digest(`hex`);this.index.set(e,a),this.memoryCache.set(e,t);let o=n.resolve(this.shardsDir,`${a}.gz`);m.add(async()=>{try{try{await r.access(o);return}catch{}await u(this.shardsDir,{recursive:!0});let e=await f(new Uint8Array(Buffer.from(t))),n=`${o}.${i.randomBytes(4).toString(`hex`)}.tmp`;await c(n,new Uint8Array(e)),await d(n,o)}catch{}}),this.saveTimeout&&clearTimeout(this.saveTimeout),this.saveTimeout=setTimeout(()=>{this.save()},500),typeof this.saveTimeout.unref==`function`&&this.saveTimeout.unref()}get size(){return this.index.size}async flush(){await m.flush()}};async function _(){await m.flush()}export{h as FileCache,g as TransformCache,_ as flushCache,m as globalBackgroundQueue};