fumadocs-core 16.16.2 → 16.17.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 (96) hide show
  1. package/dist/{advanced-Ct13khZr.js → advanced-cJMxLDd5.js} +7 -10
  2. package/dist/{algolia-C5o8qrQ1.d.ts → algolia-6p3_Zitq.d.ts} +3 -2
  3. package/dist/{build-doc-Cjg7QvFR.js → build-doc-C7HYXyRK.js} +2 -1
  4. package/dist/{client-BcR4jyFl.d.ts → client-4RUaXHFg.d.ts} +117 -61
  5. package/dist/{codeblock-utils-CyP8qsYv.d.ts → codeblock-utils-D4AMPi6B.d.ts} +1 -1
  6. package/dist/content/mdx/preset-bundler.d.ts +2 -2
  7. package/dist/content/mdx/preset-runtime.d.ts +2 -2
  8. package/dist/heading-id-CUA_RA6B.js +16 -0
  9. package/dist/highlight-SXtD3BKk.js +7 -0
  10. package/dist/i18n/middleware.js +2 -1
  11. package/dist/{index-Cyv18VFj.d.ts → index-B-xgXq2T.d.ts} +5 -5
  12. package/dist/index-BbTxYEFm.d.ts +53 -0
  13. package/dist/{index-CBtz3H2e.d.ts → index-CzLpE50a.d.ts} +13 -9
  14. package/dist/mcp.d.ts +2 -2
  15. package/dist/mdx-plugins/codeblock-utils.d.ts +1 -1
  16. package/dist/mdx-plugins/index.d.ts +6 -6
  17. package/dist/mdx-plugins/index.js +3 -3
  18. package/dist/mdx-plugins/rehype-code.core.js +1 -1
  19. package/dist/mdx-plugins/rehype-code.js +1 -1
  20. package/dist/mdx-plugins/rehype-toc.js +3 -3
  21. package/dist/mdx-plugins/remark-admonition.js +2 -3
  22. package/dist/mdx-plugins/remark-block-id.js +2 -3
  23. package/dist/mdx-plugins/remark-code-tab.js +5 -2
  24. package/dist/mdx-plugins/remark-directive-admonition.js +3 -3
  25. package/dist/mdx-plugins/remark-feedback-block.js +2 -4
  26. package/dist/mdx-plugins/remark-heading.js +5 -5
  27. package/dist/mdx-plugins/remark-image.js +8 -5
  28. package/dist/mdx-plugins/remark-llms.d.ts +2 -2
  29. package/dist/mdx-plugins/remark-llms.js +41 -62
  30. package/dist/mdx-plugins/remark-mdx-files.d.ts +1 -1
  31. package/dist/mdx-plugins/remark-mdx-files.js +16 -14
  32. package/dist/mdx-plugins/remark-mdx-mermaid.js +6 -3
  33. package/dist/mdx-plugins/remark-npm.js +6 -4
  34. package/dist/mdx-plugins/remark-steps.js +11 -6
  35. package/dist/mdx-plugins/remark-structure.d.ts +2 -2
  36. package/dist/mdx-plugins/remark-structure.js +111 -71
  37. package/dist/mdx-plugins/stringifier.d.ts +50 -2
  38. package/dist/mdx-plugins/stringifier.js +209 -84
  39. package/dist/meilisearch-DiRS8T7h.d.ts +52 -0
  40. package/dist/mixedbread-Df-Sw_4f.d.ts +76 -0
  41. package/dist/parse-BU3fTLtO.js +59 -0
  42. package/dist/{rehype-code.core-BFENmmvo.js → rehype-code.core-BwH0Kyry.js} +3 -4
  43. package/dist/remark-llms-cgVaxL_5.d.ts +56 -0
  44. package/dist/{remark-mdx-files-Buvxc-sa.d.ts → remark-mdx-files-NfjIpY1d.d.ts} +1 -1
  45. package/dist/{remark-structure-CnHwvNZr.d.ts → remark-structure-C4hp7I5L.d.ts} +21 -23
  46. package/dist/search/algolia.d.ts +1 -1
  47. package/dist/search/algolia.js +5 -3
  48. package/dist/search/client/algolia.d.ts +2 -2
  49. package/dist/search/client/algolia.js +39 -23
  50. package/dist/search/client/docs-search.d.ts +2 -0
  51. package/dist/search/client/docs-search.js +54 -0
  52. package/dist/search/client/fetch.d.ts +2 -2
  53. package/dist/search/client/fetch.js +41 -19
  54. package/dist/search/client/flexsearch-static.d.ts +2 -2
  55. package/dist/search/client/flexsearch-static.js +28 -16
  56. package/dist/search/client/meilisearch.d.ts +2 -20
  57. package/dist/search/client/meilisearch.js +59 -42
  58. package/dist/search/client/mixedbread.d.ts +3 -2
  59. package/dist/search/client/mixedbread.js +7 -43
  60. package/dist/search/client/orama-cloud-legacy.d.ts +2 -2
  61. package/dist/search/client/orama-cloud-legacy.js +96 -74
  62. package/dist/search/client/orama-cloud.d.ts +2 -2
  63. package/dist/search/client/orama-cloud.js +97 -75
  64. package/dist/search/client/orama-static.d.ts +2 -2
  65. package/dist/search/client/orama-static.js +47 -25
  66. package/dist/search/client.d.ts +2 -2
  67. package/dist/search/client.js +8 -97
  68. package/dist/search/flexsearch.d.ts +4 -3
  69. package/dist/search/flexsearch.js +2 -2
  70. package/dist/search/index.d.ts +2 -2
  71. package/dist/search/index.js +24 -14
  72. package/dist/search/meilisearch.d.ts +2 -50
  73. package/dist/search/meilisearch.js +6 -1
  74. package/dist/search/mixedbread.d.ts +3 -48
  75. package/dist/search/mixedbread.js +117 -42
  76. package/dist/search/orama-cloud-legacy.d.ts +3 -2
  77. package/dist/search/orama-cloud-legacy.js +3 -2
  78. package/dist/search/orama-cloud.d.ts +4 -3
  79. package/dist/search/orama-cloud.js +3 -2
  80. package/dist/search/server.d.ts +1 -1
  81. package/dist/search/server.js +3 -3
  82. package/dist/{server-B7eP2V3p.d.ts → server-BaG-Kb8Y.d.ts} +3 -3
  83. package/dist/source/dynamic.d.ts +1 -1
  84. package/dist/source/index.d.ts +1 -1
  85. package/dist/source/llms.d.ts +1 -1
  86. package/dist/source/llms.js +10 -11
  87. package/dist/source/plugins/lucide-icons.d.ts +1 -1
  88. package/dist/source/plugins/slugs.d.ts +1 -1
  89. package/dist/source/plugins/status-badges.d.ts +1 -1
  90. package/dist/use-search-Dy8lBrbN.js +93 -0
  91. package/dist/{utils-Yx0IL9eW.js → utils-2pZeFRk8.js} +12 -1
  92. package/dist/{utils-Bvy3V-fv.js → utils-CbSdov6X.js} +4 -5
  93. package/package.json +4 -3
  94. package/dist/index-BM36H-xw.d.ts +0 -36
  95. package/dist/remark-llms-DxglVo94.d.ts +0 -73
  96. package/dist/stringifier-B_QUcUyo.d.ts +0 -63
@@ -1,9 +1,7 @@
1
- import { createContentHighlighter } from "./search/index.js";
2
1
  import { t as removeUndefined } from "./remove-undefined-CzMSKybq.js";
3
2
  import { getByID, search } from "zbsearch";
4
3
  //#region src/search/zbsearch/search/simple.ts
5
4
  async function searchSimple(db, query, params = {}, locale) {
6
- const highlighter = createContentHighlighter(query);
7
5
  return (await search(db, {
8
6
  term: query,
9
7
  tolerance: 1,
@@ -18,7 +16,7 @@ async function searchSimple(db, query, params = {}, locale) {
18
16
  })
19
17
  })).hits.map((hit) => ({
20
18
  type: "page",
21
- content: highlighter.highlightMarkdown(hit.document.title),
19
+ content: hit.document.title,
22
20
  breadcrumbs: hit.document.breadcrumbs,
23
21
  id: hit.document.url,
24
22
  url: hit.document.url
@@ -26,10 +24,10 @@ async function searchSimple(db, query, params = {}, locale) {
26
24
  }
27
25
  //#endregion
28
26
  //#region src/search/zbsearch/search/advanced.ts
29
- async function searchAdvanced(db, query, tag = [], { mode = "fulltext", ...override } = {}, locale) {
27
+ async function searchAdvanced(db, query, tag = [], { mode = "fulltext", limit = 60, ...override } = {}, locale) {
30
28
  if (typeof tag === "string") tag = [tag];
31
29
  const params = {
32
- limit: 60,
30
+ limit,
33
31
  mode,
34
32
  ...override,
35
33
  where: removeUndefined({
@@ -45,9 +43,7 @@ async function searchAdvanced(db, query, tag = [], { mode = "fulltext", ...overr
45
43
  properties: mode === "fulltext" ? ["content"] : ["content", "embeddings"]
46
44
  };
47
45
  if (query.length > 0) params.term = query;
48
- const highlighter = createContentHighlighter(query);
49
46
  const result = await search(db, params);
50
- const limit = typeof params.limit === "number" ? params.limit : Infinity;
51
47
  const list = [];
52
48
  for (const item of result.groups ?? []) {
53
49
  if (list.length >= limit) break;
@@ -57,7 +53,7 @@ async function searchAdvanced(db, query, tag = [], { mode = "fulltext", ...overr
57
53
  list.push({
58
54
  id: pageId,
59
55
  type: "page",
60
- content: highlighter.highlightMarkdown(page.content),
56
+ content: page.content,
61
57
  breadcrumbs: page.breadcrumbs,
62
58
  url: page.url
63
59
  });
@@ -66,10 +62,11 @@ async function searchAdvanced(db, query, tag = [], { mode = "fulltext", ...overr
66
62
  if (hit.document.type === "page") continue;
67
63
  list.push({
68
64
  id: hit.document.id.toString(),
69
- content: highlighter.highlightMarkdown(hit.document.content),
65
+ content: hit.document.content,
70
66
  breadcrumbs: hit.document.breadcrumbs,
71
67
  type: hit.document.type,
72
- url: hit.document.url
68
+ url: hit.document.url,
69
+ table: hit.document.table
73
70
  });
74
71
  }
75
72
  }
@@ -1,6 +1,6 @@
1
1
  import { t as Awaitable } from "./types-D89QoQR-.js";
2
- import { i as StructuredData } from "./remark-structure-CnHwvNZr.js";
3
- import { S as LoaderOutput, b as LoaderConfig } from "./index-CBtz3H2e.js";
2
+ import { n as StructuredData } from "./remark-structure-C4hp7I5L.js";
3
+ import { S as LoaderOutput, b as LoaderConfig } from "./index-CzLpE50a.js";
4
4
  import { Algoliasearch } from "algoliasearch";
5
5
  //#region src/search/algolia.d.ts
6
6
  interface DocumentRecord {
@@ -70,6 +70,7 @@ interface BaseIndex {
70
70
  section_id?: string;
71
71
  breadcrumbs?: string[];
72
72
  content: string;
73
+ table?: string;
73
74
  }
74
75
  //#endregion
75
76
  export { sync as a, setIndexSettings as i, DocumentRecord as n, toDocuments as o, SyncOptions as r, updateDocuments as s, BaseIndex as t };
@@ -42,7 +42,8 @@ function buildDocuments(indexes) {
42
42
  type: "text",
43
43
  url: content.heading ? `${page.url}#${content.heading}` : page.url,
44
44
  content: content.content,
45
- locale: page.locale
45
+ locale: page.locale,
46
+ table: content.table
46
47
  });
47
48
  }
48
49
  return docs;
@@ -1,12 +1,74 @@
1
1
  import { t as Awaitable } from "./types-D89QoQR-.js";
2
- import { r as SortedResult } from "./index-BM36H-xw.js";
3
- import { t as BaseIndex } from "./algolia-C5o8qrQ1.js";
2
+ import { r as SortedResult } from "./index-BbTxYEFm.js";
3
+ import { t as BaseIndex } from "./algolia-6p3_Zitq.js";
4
+ import "./mixedbread-Df-Sw_4f.js";
4
5
  import { DependencyList } from "react";
5
6
  import { AnyZBSearch, SearchParams } from "zbsearch";
7
+ import { Root } from "hast";
6
8
  import { LiteClient, SearchResponse } from "algoliasearch/lite";
7
9
  import { OramaCloud, OramaCloudSearchParams } from "@orama/core";
10
+ import { Meilisearch } from "meilisearch";
8
11
  import { ClientSearchParams, OramaClient } from "@oramacloud/client";
9
12
  import Mixedbread from "@mixedbread/sdk";
13
+ //#region src/search/use-search.d.ts
14
+ interface UseSearchOptions {
15
+ /**
16
+ * The debounced delay for performing a search (in ms).
17
+ *
18
+ * @defaultValue 100
19
+ */
20
+ delayMs?: number;
21
+ /**
22
+ * still perform search even if query is empty.
23
+ *
24
+ * @defaultValue false
25
+ */
26
+ allowEmpty?: boolean;
27
+ }
28
+ interface SearchResultRecord extends SortedResult {
29
+ /** `content` parsed */
30
+ hastContent: Root;
31
+ }
32
+ interface SearchResultTable {
33
+ type: 'table';
34
+ /** the id of its first row */
35
+ id: string;
36
+ columns: number;
37
+ /** tables like the props of type tables have no header */
38
+ header?: Root;
39
+ rows: SearchResultRecord[];
40
+ }
41
+ type SearchResultItem = SearchResultRecord | SearchResultTable;
42
+ interface SearchResult {
43
+ /** the query searched for */
44
+ query: string;
45
+ items: SearchResultItem[];
46
+ }
47
+ interface UseSearchReturn {
48
+ search: string;
49
+ onSearchChange: (search: string) => void;
50
+ /** a search for `search` is pending */
51
+ isLoading: boolean;
52
+ /** the last successful search, `undefined` when nothing is searched */
53
+ data?: SearchResult;
54
+ /** the last search failed, `data` stays from the search before */
55
+ error?: Error;
56
+ }
57
+ /**
58
+ * The base of search hooks, for search engines without one.
59
+ *
60
+ * @param run - memoized search function, search again when changed
61
+ */
62
+ declare function useSearch(run: (query: string) => Awaitable<SortedResult[]>, { delayMs, allowEmpty }?: UseSearchOptions): UseSearchReturn;
63
+ /**
64
+ * Highlight matches of `query` in the text of an element with the CSS Custom Highlight API, style them with `::highlight(fd-search)`.
65
+ *
66
+ * Text in elements with `data-highlight-ignore` is skipped. The highlights stay when the element is moved, but not when its text changes, give it a new `key` in that case.
67
+ *
68
+ * @returns a ref callback for the element
69
+ */
70
+ declare function useHighlightQuery(query: string): (element: Element | null) => () => void;
71
+ //#endregion
10
72
  //#region src/search/client/fetch.d.ts
11
73
  interface FetchOptions {
12
74
  /**
@@ -25,7 +87,11 @@ interface FetchOptions {
25
87
  locale?: string;
26
88
  cache?: Map<string, SortedResult[]>;
27
89
  }
28
- declare function fetchClient({ api, locale, tag, cache }?: FetchOptions): SearchClient;
90
+ declare function fetchClient(options?: FetchOptions): SearchClient;
91
+ /**
92
+ * Search with the search server, or an API of the same format.
93
+ */
94
+ declare function useFetchSearch({ api, locale, tag, ...rest }?: FetchOptions & UseSearchOptions): UseSearchReturn;
29
95
  //#endregion
30
96
  //#region src/search/client/orama-static.d.ts
31
97
  interface StaticOptions {
@@ -59,6 +125,10 @@ interface StaticOptions {
59
125
  search?: Partial<SearchParams<AnyZBSearch>>;
60
126
  }
61
127
  declare function staticClient(options?: StaticOptions): SearchClient;
128
+ /**
129
+ * Search the indexes exported by the search server, in the browser.
130
+ */
131
+ declare function useStaticSearch({ from, locale, tag, ...rest }?: StaticOptions & UseSearchOptions): UseSearchReturn;
62
132
  /**
63
133
  * @deprecated Renamed to `staticClient`, note that the search engine is now ZBSearch.
64
134
  */
@@ -78,6 +148,7 @@ interface AlgoliaOptions {
78
148
  }>;
79
149
  }
80
150
  declare function algoliaClient(options: AlgoliaOptions): SearchClient;
151
+ declare function useAlgoliaSearch({ indexName, client, locale, tag, ...rest }: AlgoliaOptions & UseSearchOptions): UseSearchReturn;
81
152
  //#endregion
82
153
  //#region src/search/client/orama-cloud.d.ts
83
154
  interface OramaCloudOptions {
@@ -102,6 +173,26 @@ interface OramaCloudOptions {
102
173
  locale?: string;
103
174
  }
104
175
  declare function oramaCloudClient(options: OramaCloudOptions): SearchClient;
176
+ declare function useOramaCloudSearch({ client, index, tag, ...rest }: OramaCloudOptions & UseSearchOptions): UseSearchReturn;
177
+ //#endregion
178
+ //#region src/search/client/meilisearch.d.ts
179
+ interface MeilisearchOptions {
180
+ /**
181
+ * Meilisearch client with a search API key
182
+ */
183
+ client: Meilisearch;
184
+ indexName: string;
185
+ /**
186
+ * Filter results with specific tag(s).
187
+ */
188
+ tag?: string | string[];
189
+ /**
190
+ * Filter results by locale.
191
+ */
192
+ locale?: string;
193
+ }
194
+ declare function meilisearchClient(options: MeilisearchOptions): SearchClient;
195
+ declare function useMeilisearch({ client, indexName, locale, tag, ...rest }: MeilisearchOptions & UseSearchOptions): UseSearchReturn;
105
196
  //#endregion
106
197
  //#region src/search/client/orama-cloud-legacy.d.ts
107
198
  interface OramaCloudLegacyOptions {
@@ -126,6 +217,7 @@ interface OramaCloudLegacyOptions {
126
217
  locale?: string;
127
218
  }
128
219
  declare function oramaCloudLegacyClient(options: OramaCloudLegacyOptions): SearchClient;
220
+ declare function useOramaCloudLegacySearch({ client, index, tag, ...rest }: OramaCloudLegacyOptions & UseSearchOptions): UseSearchReturn;
129
221
  //#endregion
130
222
  //#region src/search/client/mixedbread.d.ts
131
223
  interface MixedbreadOptions {
@@ -146,16 +238,10 @@ interface MixedbreadOptions {
146
238
  */
147
239
  locale?: string;
148
240
  }
149
- interface SearchMetadata {
150
- title?: string;
151
- description?: string;
152
- url?: string;
153
- tag?: string;
154
- }
155
241
  /**
156
242
  * @deprecated Use `createMixedbreadSearchAPI` from `fumadocs-core/search/mixedbread` instead.
157
243
  * This client-side approach exposes your API key in the browser.
158
- * The server-side approach keeps the key secure and uses `client: fetchClient(...)` on the client.
244
+ * The server-side approach keeps the key secure and uses `useFetchSearch()` on the client.
159
245
  */
160
246
  declare function mixedbreadClient(options: MixedbreadOptions): SearchClient;
161
247
  //#endregion
@@ -169,79 +255,49 @@ interface FlexsearchStaticOptions {
169
255
  tag?: string | string[];
170
256
  }
171
257
  declare function flexsearchStaticClient(options?: FlexsearchStaticOptions): SearchClient;
258
+ declare function useFlexsearchStatic({ from, locale, tag, ...rest }?: FlexsearchStaticOptions & UseSearchOptions): UseSearchReturn;
172
259
  //#endregion
173
- //#region src/search/client.d.ts
174
- interface UseDocsSearch {
175
- search: string;
176
- setSearch: (v: string) => void;
177
- query: {
178
- isLoading: boolean;
179
- data?: SortedResult[] | 'empty';
180
- error?: Error;
181
- };
260
+ //#region src/search/client/docs-search.d.ts
261
+ interface SearchClient {
262
+ search: (query: string) => Awaitable<SortedResult[]>;
263
+ deps?: DependencyList;
182
264
  }
183
265
  type ClientPreset = ({
184
- /**
185
- * @deprecated Pass `client: fetchClient(...)` instead.
186
- */
187
266
  type: 'fetch';
188
267
  } & FetchOptions) | ({
189
- /**
190
- * @deprecated Pass `client: staticClient(...)` instead.
191
- */
192
268
  type: 'static';
193
269
  } & StaticOptions) | ({
194
- /**
195
- * @deprecated Pass `client: algoliaClient(...)` instead.
196
- */
197
270
  type: 'algolia';
198
271
  } & AlgoliaOptions) | ({
199
- /**
200
- * @deprecated Pass `client: oramaCloudClient(...)` instead.
201
- */
202
272
  type: 'orama-cloud';
203
273
  } & OramaCloudOptions) | ({
204
- /**
205
- * @deprecated Pass `client: oramaCloudLegacyClient(...)` instead.
206
- */
207
274
  type: 'orama-cloud-legacy';
208
275
  } & OramaCloudLegacyOptions) | ({
209
- /**
210
- * @deprecated Pass `client: flexsearchStaticClient(...)` instead.
211
- */
212
276
  type: 'flexsearch-static';
213
277
  } & FlexsearchStaticOptions) | ({
214
- /**
215
- * @deprecated Use `createMixedbreadSearchAPI` from `fumadocs-core/search/mixedbread` instead.
216
- * This client-side approach exposes your API key in the browser.
217
- * The server-side approach keeps the key secure and uses `client: fetchClient(...)` on the client.
218
- */
219
278
  type: 'mixedbread';
220
279
  } & MixedbreadOptions) | {
221
280
  client: SearchClient;
222
281
  };
223
- interface SearchClient {
224
- search: (query: string) => Awaitable<SortedResult[]>;
225
- deps?: DependencyList;
226
- }
227
282
  /**
228
283
  * Provide a hook to query different official search clients.
229
284
  *
230
285
  * Note: it will re-query when its parameters changed, make sure to define `deps` array if you encounter rendering issues.
286
+ *
287
+ * @deprecated Use the search hook of your provider instead, like `useFetchSearch()`, or `experimental_useSearch()` for other clients.
231
288
  */
232
- declare function useDocsSearch(clientOptions: ClientPreset & {
233
- /**
234
- * The debounced delay for performing a search (in ms).
235
- * .
236
- * @defaultValue 100
237
- */
238
- delayMs?: number;
239
- /**
240
- * still perform search even if query is empty.
241
- *
242
- * @defaultValue false
243
- */
244
- allowEmpty?: boolean;
245
- }, customDeps?: DependencyList): UseDocsSearch;
289
+ declare function useDocsSearch({ delayMs, allowEmpty, ...options }: ClientPreset & UseSearchOptions, customDeps?: DependencyList): {
290
+ search: string;
291
+ onSearchChange: (search: string) => void;
292
+ isLoading: boolean;
293
+ data?: SearchResult;
294
+ error?: Error;
295
+ setSearch: (search: string) => void;
296
+ query: {
297
+ isLoading: boolean;
298
+ data: "empty" | SearchResultRecord[];
299
+ error: Error | undefined;
300
+ };
301
+ };
246
302
  //#endregion
247
- export { staticClient as _, flexsearchStaticClient as a, mixedbreadClient as c, OramaCloudOptions as d, oramaCloudClient as f, oramaStaticClient as g, StaticOptions as h, FlexsearchStaticOptions as i, OramaCloudLegacyOptions as l, algoliaClient as m, SearchClient as n, MixedbreadOptions as o, AlgoliaOptions as p, useDocsSearch as r, SearchMetadata as s, ClientPreset as t, oramaCloudLegacyClient as u, FetchOptions as v, fetchClient as y };
303
+ export { SearchResultRecord as A, staticClient as C, useFetchSearch as D, fetchClient as E, useSearch as F, UseSearchOptions as M, UseSearchReturn as N, SearchResult as O, useHighlightQuery as P, oramaStaticClient as S, FetchOptions as T, useOramaCloudSearch as _, flexsearchStaticClient as a, useAlgoliaSearch as b, mixedbreadClient as c, useOramaCloudLegacySearch as d, MeilisearchOptions as f, oramaCloudClient as g, OramaCloudOptions as h, FlexsearchStaticOptions as i, SearchResultTable as j, SearchResultItem as k, OramaCloudLegacyOptions as l, useMeilisearch as m, SearchClient as n, useFlexsearchStatic as o, meilisearchClient as p, useDocsSearch as r, MixedbreadOptions as s, ClientPreset as t, oramaCloudLegacyClient as u, AlgoliaOptions as v, useStaticSearch as w, StaticOptions as x, algoliaClient as y };
@@ -1,5 +1,5 @@
1
- import { MdxJsxAttribute, MdxJsxFlowElement } from "mdast-util-mdx";
2
1
  import { BlockContent, Text } from "mdast";
2
+ import { MdxJsxAttribute, MdxJsxFlowElement } from "mdast-util-mdx";
3
3
  //#region src/mdx-plugins/codeblock-utils.d.ts
4
4
  interface CodeBlockTabsOptions {
5
5
  attributes?: MdxJsxAttribute[];
@@ -1,10 +1,10 @@
1
1
  import { t as RehypeCodeOptions } from "../../rehype-code-CGahijs1.js";
2
2
  import { t as RemarkImageOptions } from "../../remark-image-BI2S9LOb.js";
3
- import { r as StructureOptions } from "../../remark-structure-CnHwvNZr.js";
3
+ import { t as StructureOptions } from "../../remark-structure-C4hp7I5L.js";
4
4
  import { t as RemarkHeadingOptions } from "../../remark-heading-DEIzTkU5.js";
5
5
  import { t as RemarkCodeTabOptions } from "../../remark-code-tab-DE_4bdnu.js";
6
6
  import { t as RemarkNpmOptions } from "../../remark-npm-BbpvkJaT.js";
7
- import { t as index_d_exports } from "../../index-Cyv18VFj.js";
7
+ import { t as index_d_exports } from "../../index-B-xgXq2T.js";
8
8
  import { t as ResolvePlugins } from "../../util-BDsqOxh3.js";
9
9
  import { Pluggable } from "unified";
10
10
  import { ProcessorOptions } from "@mdx-js/mdx";
@@ -1,10 +1,10 @@
1
1
  import { t as RehypeCodeOptions } from "../../rehype-code-CGahijs1.js";
2
2
  import { t as RemarkImageOptions } from "../../remark-image-BI2S9LOb.js";
3
- import { r as StructureOptions } from "../../remark-structure-CnHwvNZr.js";
3
+ import { t as StructureOptions } from "../../remark-structure-C4hp7I5L.js";
4
4
  import { t as RemarkHeadingOptions } from "../../remark-heading-DEIzTkU5.js";
5
5
  import { t as RemarkCodeTabOptions } from "../../remark-code-tab-DE_4bdnu.js";
6
6
  import { t as RemarkNpmOptions } from "../../remark-npm-BbpvkJaT.js";
7
- import { t as index_d_exports } from "../../index-Cyv18VFj.js";
7
+ import { t as index_d_exports } from "../../index-B-xgXq2T.js";
8
8
  import { t as ResolvePlugins } from "../../util-BDsqOxh3.js";
9
9
  import { ProcessorOptions } from "@mdx-js/mdx";
10
10
  //#region src/content/mdx/preset-runtime.d.ts
@@ -0,0 +1,16 @@
1
+ //#region src/mdx-plugins/heading-id.ts
2
+ /** a custom ID at the end of heading text, like `[#id]` */
3
+ const headingIdRegex = /\s*\[#(?<slug>[^]+?)]\s*$/;
4
+ /** write the ID of a heading in stringified Markdown, or remove its custom ID */
5
+ function stringifyHeadingId(s, node, enabled) {
6
+ const start = s.range(node)?.start;
7
+ const last = node.children.at(-1);
8
+ const end = last && s.range(last)?.end;
9
+ if (start === void 0 || end === void 0) return;
10
+ const marker = headingIdRegex.exec(s.source.slice(start, end));
11
+ const id = node.data?.hProperties?.id;
12
+ if (!enabled && marker) s.edit(start + marker.index, end, "", node);
13
+ else if (enabled && !marker && id) s.edit(end, end, ` [#${id}]`, node);
14
+ }
15
+ //#endregion
16
+ export { stringifyHeadingId as n, headingIdRegex as t };
@@ -0,0 +1,7 @@
1
+ //#region src/search/highlight.ts
2
+ function buildRegexFromQuery(query) {
3
+ const source = query.trim().replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/\s+/g, "|");
4
+ return source ? new RegExp(source, "gi") : null;
5
+ }
6
+ //#endregion
7
+ export { buildRegexFromQuery as t };
@@ -4085,7 +4085,8 @@ function createI18nMiddleware({ languages, defaultLanguage, format = DefaultForm
4085
4085
  if (hideLocale === "default-locale") return NextResponse.rewrite(formatter.add(url, defaultLanguage));
4086
4086
  const preferred = match(negotiateLanguages(request.headers.get("accept-language"), languages), languages, defaultLanguage);
4087
4087
  if (hideLocale === "always") {
4088
- const locale = request.cookies.get(cookieName)?.value ?? preferred;
4088
+ let locale = request.cookies.get(cookieName)?.value;
4089
+ if (!locale || !languages.includes(locale)) locale = preferred;
4089
4090
  return NextResponse.rewrite(formatter.add(url, locale));
4090
4091
  }
4091
4092
  return NextResponse.redirect(formatter.add(url, preferred));
@@ -3,7 +3,7 @@ import { a as transformerTab } from "./rehype-code.core-COgx9A69.js";
3
3
  import { r as transformerIcon, t as CodeBlockIcon } from "./transformer-icon-DlrneIS3.js";
4
4
  import { n as rehypeCode, r as rehypeCodeDefaultOptions, t as RehypeCodeOptions } from "./rehype-code-CGahijs1.js";
5
5
  import { n as remarkImage, t as RemarkImageOptions } from "./remark-image-BI2S9LOb.js";
6
- import { a as defaultStringifier, c as structure, i as StructuredData, n as StringifyOptions, o as remarkStructure, r as StructureOptions, s as remarkStructureDefaultOptions, t as Stringifier } from "./remark-structure-CnHwvNZr.js";
6
+ import { a as remarkStructureDefaultOptions, i as remarkStructure, n as StructuredData, o as structure, r as StructuredDataContent, t as StructureOptions } from "./remark-structure-C4hp7I5L.js";
7
7
  import { n as remarkHeading, t as RemarkHeadingOptions } from "./remark-heading-DEIzTkU5.js";
8
8
  import { n as remarkAdmonition, t as RemarkAdmonitionOptions } from "./remark-admonition-BwTcmI_S.js";
9
9
  import { n as remarkDirectiveAdmonition, t as RemarkDirectiveAdmonitionOptions } from "./remark-directive-admonition-BLiJ5l43.js";
@@ -11,13 +11,13 @@ import { n as RehypeTocOptions, r as rehypeToc, t as RehypeTOCItemType } from ".
11
11
  import { n as remarkCodeTab, t as RemarkCodeTabOptions } from "./remark-code-tab-DE_4bdnu.js";
12
12
  import { n as remarkSteps, t as RemarkStepsOptions } from "./remark-steps-DqVEo0iq.js";
13
13
  import { n as remarkNpm, t as RemarkNpmOptions } from "./remark-npm-BbpvkJaT.js";
14
- import { i as parseCodeBlockAttributes, n as CodeBlockTabsOptions, r as generateCodeBlockTabs, t as CodeBlockAttributes } from "./codeblock-utils-CyP8qsYv.js";
15
- import { a as remarkMdxFiles, r as RemarkMdxFilesOptions } from "./remark-mdx-files-Buvxc-sa.js";
14
+ import { i as parseCodeBlockAttributes, n as CodeBlockTabsOptions, r as generateCodeBlockTabs, t as CodeBlockAttributes } from "./codeblock-utils-D4AMPi6B.js";
15
+ import { a as remarkMdxFiles, r as RemarkMdxFilesOptions } from "./remark-mdx-files-NfjIpY1d.js";
16
16
  import { n as remarkMdxMermaid, t as RemarkMdxMermaidOptions } from "./remark-mdx-mermaid-C1bCHHc6.js";
17
17
  import { n as RemarkFeedbackBlockOptions, r as remarkFeedbackBlock, t as FeedbackBlockProps } from "./remark-feedback-block-BxtINXN-.js";
18
- import { t as LLMsOptions } from "./remark-llms-DxglVo94.js";
18
+ import { t as LLMsOptions } from "./remark-llms-cgVaxL_5.js";
19
19
  declare namespace index_d_exports {
20
- export { CodeBlockAttributes, CodeBlockIcon, CodeBlockTabsOptions, FeedbackBlockProps, LLMsOptions, RehypeCodeOptions, RehypeTOCItemType, RehypeTocOptions, RemarkAdmonitionOptions, RemarkCodeTabOptions, RemarkDirectiveAdmonitionOptions, RemarkFeedbackBlockOptions, RemarkGfmOptions, RemarkHeadingOptions, RemarkImageOptions, RemarkMdxFilesOptions, RemarkMdxMermaidOptions, RemarkNpmOptions, RemarkStepsOptions, Stringifier, StringifyOptions, StructureOptions, StructuredData, defaultStringifier, generateCodeBlockTabs, parseCodeBlockAttributes, rehypeCode, rehypeCodeDefaultOptions, rehypeToc, remarkAdmonition, remarkCodeTab, remarkDirectiveAdmonition, remarkFeedbackBlock, remarkGfm, remarkHeading, remarkImage, remarkMdxFiles, remarkMdxMermaid, remarkNpm, remarkSteps, remarkStructure, remarkStructureDefaultOptions, structure, transformerIcon, transformerTab };
20
+ export { CodeBlockAttributes, CodeBlockIcon, CodeBlockTabsOptions, FeedbackBlockProps, LLMsOptions, RehypeCodeOptions, RehypeTOCItemType, RehypeTocOptions, RemarkAdmonitionOptions, RemarkCodeTabOptions, RemarkDirectiveAdmonitionOptions, RemarkFeedbackBlockOptions, RemarkGfmOptions, RemarkHeadingOptions, RemarkImageOptions, RemarkMdxFilesOptions, RemarkMdxMermaidOptions, RemarkNpmOptions, RemarkStepsOptions, StructureOptions, StructuredData, StructuredDataContent, generateCodeBlockTabs, parseCodeBlockAttributes, rehypeCode, rehypeCodeDefaultOptions, rehypeToc, remarkAdmonition, remarkCodeTab, remarkDirectiveAdmonition, remarkFeedbackBlock, remarkGfm, remarkHeading, remarkImage, remarkMdxFiles, remarkMdxMermaid, remarkNpm, remarkSteps, remarkStructure, remarkStructureDefaultOptions, structure, transformerIcon, transformerTab };
21
21
  }
22
22
  //#endregion
23
23
  export { index_d_exports as t };
@@ -0,0 +1,53 @@
1
+ import { r as StructuredDataContent } from "./remark-structure-C4hp7I5L.js";
2
+ import { ReactNode } from "react";
3
+ //#region src/search/index.d.ts
4
+ interface SortedResult<Content = string> {
5
+ id: string;
6
+ url: string;
7
+ type: 'page' | 'heading' | 'text';
8
+ content: Content;
9
+ /**
10
+ * breadcrumbs to be displayed on UI
11
+ */
12
+ breadcrumbs?: Content[];
13
+ /** the table of a table row, unique in its page */
14
+ table?: string;
15
+ }
16
+ type ReactSortedResult = SortedResult<ReactNode>;
17
+ /**
18
+ * A table row as structured data: a Markdown table of the row, after the header row of its table.
19
+ */
20
+ declare function tableRowToStructuredData({ table, heading, row, header }: {
21
+ /** the id of its table, unique in its page */
22
+ table: string;
23
+ heading?: string;
24
+ /** the cells, as inline Markdown */
25
+ row: string[];
26
+ /** the cells of the header row, tables like the props of type tables have none */
27
+ header?: string[];
28
+ }): StructuredDataContent;
29
+ /**
30
+ * @deprecated
31
+ */
32
+ interface HighlightedText<Content = string> {
33
+ type: 'text';
34
+ content: Content;
35
+ styles?: {
36
+ highlight?: boolean;
37
+ };
38
+ }
39
+ /**
40
+ * @deprecated search results are no longer highlighted, highlight the rendered results with `useHighlightQuery()` instead.
41
+ */
42
+ declare function createContentHighlighter(query: string | RegExp): {
43
+ /**
44
+ * @deprecated use `highlightMarkdown()` instead.
45
+ */
46
+ highlight(content: string): HighlightedText[];
47
+ /**
48
+ * @param content - Markdown, it assumes the content is already sanitized & safe, no escape is performed.
49
+ */
50
+ highlightMarkdown(content: string): string;
51
+ };
52
+ //#endregion
53
+ export { tableRowToStructuredData as a, createContentHighlighter as i, ReactSortedResult as n, SortedResult as r, HighlightedText as t };
@@ -1,7 +1,7 @@
1
1
  import { a as Separator, i as Root, n as Item, o as definitions_d_exports, r as Node, t as Folder } from "./definitions-BZlqdyOx.js";
2
2
  import { t as Awaitable } from "./types-D89QoQR-.js";
3
- import { i as StructuredData } from "./remark-structure-CnHwvNZr.js";
4
- import "./index-Cyv18VFj.js";
3
+ import { n as StructuredData } from "./remark-structure-C4hp7I5L.js";
4
+ import "./index-B-xgXq2T.js";
5
5
  import { n as I18nConfig } from "./index-DydiXvgS.js";
6
6
  import { t as index_d_exports } from "./index-DUWMH-uy.js";
7
7
  import { n as SerializedPageTree } from "./index-DNn03jFO.js";
@@ -507,19 +507,19 @@ interface LLMsConfig<Page = unknown> {
507
507
  */
508
508
  renderPage?: (page: Page) => Awaitable<string>;
509
509
  }
510
- interface LLMs {
510
+ interface LLMs<IndexOutput extends Awaitable<string> = Awaitable<string>> {
511
511
  /**
512
512
  * generate `llms.txt` content in Markdown format.
513
513
  *
514
514
  * use `indexNode(node)` instead for more control (e.g. add extra sections to output).
515
515
  */
516
- index: (lang?: string) => Promise<string>;
516
+ index: (lang?: string) => IndexOutput;
517
517
  /**
518
518
  * generate `llms.txt` content for a single page tree node.
519
519
  */
520
- indexNode: (node: Node, lang?: string) => Promise<string>;
520
+ indexNode: (node: Node, lang?: string) => IndexOutput;
521
521
  }
522
- interface LLMsWithPages<Page> extends LLMs {
522
+ interface LLMsWithPages<Page, IndexOutput extends Awaitable<string> = Awaitable<string>> extends LLMs<IndexOutput> {
523
523
  /**
524
524
  * render a page with `renderPage`.
525
525
  */
@@ -529,9 +529,13 @@ interface LLMsWithPages<Page> extends LLMs {
529
529
  */
530
530
  full: (lang?: string) => Promise<string>;
531
531
  }
532
- declare function llms<C extends LoaderConfig = LoaderConfig>(input: LoaderOutput<C> | (() => Awaitable<LoaderOutput<C>>), config: LLMsConfig<C['page']> & {
532
+ declare function llms<C extends LoaderConfig = LoaderConfig>(input: LoaderOutput<C>, config: LLMsConfig<C['page']> & {
533
533
  renderPage: (page: C['page']) => Awaitable<string>;
534
- }): LLMsWithPages<C['page']>;
535
- declare function llms<C extends LoaderConfig = LoaderConfig>(input: LoaderOutput<C> | (() => Awaitable<LoaderOutput<C>>), config?: LLMsConfig<C['page']>): LLMs;
534
+ }): LLMsWithPages<C['page'], string>;
535
+ declare function llms<C extends LoaderConfig = LoaderConfig>(input: LoaderOutput<C>, config?: LLMsConfig<C['page']>): LLMs<string>;
536
+ declare function llms<C extends LoaderConfig = LoaderConfig>(input: () => Awaitable<LoaderOutput<C>>, config: LLMsConfig<C['page']> & {
537
+ renderPage: (page: C['page']) => Awaitable<string>;
538
+ }): LLMsWithPages<C['page'], Promise<string>>;
539
+ declare function llms<C extends LoaderConfig = LoaderConfig>(input: () => Awaitable<LoaderOutput<C>>, config?: LLMsConfig<C['page']>): LLMs<Promise<string>>;
536
540
  //#endregion
537
541
  export { types_d_exports as A, ContentStorage as B, LoaderPlugin as C, ResolvedLoaderConfig as D, Page as E, slugsPlugin as F, ContentStoragePageFile as H, PageTreeBuilder as I, PageTreeBuilderContext as L, SlugsPluginOptions as M, getSlugs as N, createGetUrl as O, slugsFromData as P, PageTreeOptions as R, LoaderOutput as S, Meta as T, FileSystem as U, ContentStorageMetaFile as V, dynamicLoader as _, path_d_exports as a, LoaderConfig as b, PageData as c, StaticSource as d, VirtualFile as f, DynamicLoaderConfig as g, DynamicLoader as h, llms as i, SlugFn as j, loader as k, Source as l, update as m, LLMsConfig as n, DynamicSource as o, multiple as p, LLMsWithPages as r, MetaData as s, LLMs as t, SourceUnion as u, InferMetaType as v, LoaderPluginOption as w, LoaderOptions as x, InferPageType as y, PageTreeTransformer as z };
package/dist/mcp.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { t as Awaitable } from "./types-D89QoQR-.js";
2
- import { r as SearchServer } from "./server-B7eP2V3p.js";
3
- import { S as LoaderOutput, b as LoaderConfig, r as LLMsWithPages } from "./index-CBtz3H2e.js";
2
+ import { r as SearchServer } from "./server-BaG-Kb8Y.js";
3
+ import { S as LoaderOutput, b as LoaderConfig, r as LLMsWithPages } from "./index-CzLpE50a.js";
4
4
  import { McpServer } from "@modelcontextprotocol/server";
5
5
  //#region src/mcp.d.ts
6
6
  /**
@@ -1,2 +1,2 @@
1
- import { i as parseCodeBlockAttributes, n as CodeBlockTabsOptions, r as generateCodeBlockTabs, t as CodeBlockAttributes } from "../codeblock-utils-CyP8qsYv.js";
1
+ import { i as parseCodeBlockAttributes, n as CodeBlockTabsOptions, r as generateCodeBlockTabs, t as CodeBlockAttributes } from "../codeblock-utils-D4AMPi6B.js";
2
2
  export { CodeBlockAttributes, CodeBlockTabsOptions, generateCodeBlockTabs, parseCodeBlockAttributes };
@@ -3,7 +3,7 @@ import { a as transformerTab } from "../rehype-code.core-COgx9A69.js";
3
3
  import { r as transformerIcon, t as CodeBlockIcon } from "../transformer-icon-DlrneIS3.js";
4
4
  import { n as rehypeCode, r as rehypeCodeDefaultOptions, t as RehypeCodeOptions } from "../rehype-code-CGahijs1.js";
5
5
  import { n as remarkImage, t as RemarkImageOptions } from "../remark-image-BI2S9LOb.js";
6
- import { a as defaultStringifier, c as structure, i as StructuredData, n as StringifyOptions, o as remarkStructure, r as StructureOptions, s as remarkStructureDefaultOptions, t as Stringifier } from "../remark-structure-CnHwvNZr.js";
6
+ import { a as remarkStructureDefaultOptions, i as remarkStructure, n as StructuredData, o as structure, r as StructuredDataContent, t as StructureOptions } from "../remark-structure-C4hp7I5L.js";
7
7
  import { n as remarkHeading, t as RemarkHeadingOptions } from "../remark-heading-DEIzTkU5.js";
8
8
  import { n as remarkAdmonition, t as RemarkAdmonitionOptions } from "../remark-admonition-BwTcmI_S.js";
9
9
  import { n as remarkDirectiveAdmonition, t as RemarkDirectiveAdmonitionOptions } from "../remark-directive-admonition-BLiJ5l43.js";
@@ -11,10 +11,10 @@ import { n as RehypeTocOptions, r as rehypeToc, t as RehypeTOCItemType } from ".
11
11
  import { n as remarkCodeTab, t as RemarkCodeTabOptions } from "../remark-code-tab-DE_4bdnu.js";
12
12
  import { n as remarkSteps, t as RemarkStepsOptions } from "../remark-steps-DqVEo0iq.js";
13
13
  import { n as remarkNpm, t as RemarkNpmOptions } from "../remark-npm-BbpvkJaT.js";
14
- import { i as parseCodeBlockAttributes, n as CodeBlockTabsOptions, r as generateCodeBlockTabs, t as CodeBlockAttributes } from "../codeblock-utils-CyP8qsYv.js";
15
- import { a as remarkMdxFiles, r as RemarkMdxFilesOptions } from "../remark-mdx-files-Buvxc-sa.js";
14
+ import { i as parseCodeBlockAttributes, n as CodeBlockTabsOptions, r as generateCodeBlockTabs, t as CodeBlockAttributes } from "../codeblock-utils-D4AMPi6B.js";
15
+ import { a as remarkMdxFiles, r as RemarkMdxFilesOptions } from "../remark-mdx-files-NfjIpY1d.js";
16
16
  import { n as remarkMdxMermaid, t as RemarkMdxMermaidOptions } from "../remark-mdx-mermaid-C1bCHHc6.js";
17
17
  import { n as RemarkFeedbackBlockOptions, r as remarkFeedbackBlock, t as FeedbackBlockProps } from "../remark-feedback-block-BxtINXN-.js";
18
- import { t as LLMsOptions } from "../remark-llms-DxglVo94.js";
19
- import "../index-Cyv18VFj.js";
20
- export { CodeBlockAttributes, type CodeBlockIcon, CodeBlockTabsOptions, FeedbackBlockProps, type LLMsOptions, RehypeCodeOptions, RehypeTOCItemType, RehypeTocOptions, RemarkAdmonitionOptions, RemarkCodeTabOptions, RemarkDirectiveAdmonitionOptions, RemarkFeedbackBlockOptions, type RemarkGfmOptions, RemarkHeadingOptions, RemarkImageOptions, type RemarkMdxFilesOptions, RemarkMdxMermaidOptions, RemarkNpmOptions, RemarkStepsOptions, Stringifier, StringifyOptions, StructureOptions, StructuredData, defaultStringifier, generateCodeBlockTabs, parseCodeBlockAttributes, rehypeCode, rehypeCodeDefaultOptions, rehypeToc, remarkAdmonition, remarkCodeTab, remarkDirectiveAdmonition, remarkFeedbackBlock, remarkGfm, remarkHeading, remarkImage, remarkMdxFiles, remarkMdxMermaid, remarkNpm, remarkSteps, remarkStructure, remarkStructureDefaultOptions, structure, transformerIcon, transformerTab };
18
+ import { t as LLMsOptions } from "../remark-llms-cgVaxL_5.js";
19
+ import "../index-B-xgXq2T.js";
20
+ export { CodeBlockAttributes, type CodeBlockIcon, CodeBlockTabsOptions, FeedbackBlockProps, type LLMsOptions, RehypeCodeOptions, RehypeTOCItemType, RehypeTocOptions, RemarkAdmonitionOptions, RemarkCodeTabOptions, RemarkDirectiveAdmonitionOptions, RemarkFeedbackBlockOptions, type RemarkGfmOptions, RemarkHeadingOptions, RemarkImageOptions, type RemarkMdxFilesOptions, RemarkMdxMermaidOptions, RemarkNpmOptions, RemarkStepsOptions, StructureOptions, StructuredData, StructuredDataContent, generateCodeBlockTabs, parseCodeBlockAttributes, rehypeCode, rehypeCodeDefaultOptions, rehypeToc, remarkAdmonition, remarkCodeTab, remarkDirectiveAdmonition, remarkFeedbackBlock, remarkGfm, remarkHeading, remarkImage, remarkMdxFiles, remarkMdxMermaid, remarkNpm, remarkSteps, remarkStructure, remarkStructureDefaultOptions, structure, transformerIcon, transformerTab };
@@ -1,11 +1,11 @@
1
1
  import { remarkHeading } from "./remark-heading.js";
2
2
  import { generateCodeBlockTabs, parseCodeBlockAttributes } from "./codeblock-utils.js";
3
3
  import { remarkGfm } from "./remark-gfm.js";
4
- import { r as transformerTab } from "../rehype-code.core-BFENmmvo.js";
4
+ import { r as transformerTab } from "../rehype-code.core-BwH0Kyry.js";
5
5
  import { transformerIcon } from "./transformer-icon.js";
6
6
  import { rehypeCode, rehypeCodeDefaultOptions } from "./rehype-code.js";
7
7
  import { remarkImage } from "./remark-image.js";
8
- import { defaultStringifier, remarkStructure, remarkStructureDefaultOptions, structure } from "./remark-structure.js";
8
+ import { remarkStructure, remarkStructureDefaultOptions, structure } from "./remark-structure.js";
9
9
  import { remarkAdmonition } from "./remark-admonition.js";
10
10
  import { remarkDirectiveAdmonition } from "./remark-directive-admonition.js";
11
11
  import { rehypeToc } from "./rehype-toc.js";
@@ -15,4 +15,4 @@ import { remarkNpm } from "./remark-npm.js";
15
15
  import { remarkMdxFiles } from "./remark-mdx-files.js";
16
16
  import { remarkMdxMermaid } from "./remark-mdx-mermaid.js";
17
17
  import { remarkFeedbackBlock } from "./remark-feedback-block.js";
18
- export { defaultStringifier, generateCodeBlockTabs, parseCodeBlockAttributes, rehypeCode, rehypeCodeDefaultOptions, rehypeToc, remarkAdmonition, remarkCodeTab, remarkDirectiveAdmonition, remarkFeedbackBlock, remarkGfm, remarkHeading, remarkImage, remarkMdxFiles, remarkMdxMermaid, remarkNpm, remarkSteps, remarkStructure, remarkStructureDefaultOptions, structure, transformerIcon, transformerTab };
18
+ export { generateCodeBlockTabs, parseCodeBlockAttributes, rehypeCode, rehypeCodeDefaultOptions, rehypeToc, remarkAdmonition, remarkCodeTab, remarkDirectiveAdmonition, remarkFeedbackBlock, remarkGfm, remarkHeading, remarkImage, remarkMdxFiles, remarkMdxMermaid, remarkNpm, remarkSteps, remarkStructure, remarkStructureDefaultOptions, structure, transformerIcon, transformerTab };
@@ -1,3 +1,3 @@
1
- import { n as rehypeCodeDefaultOptions, r as transformerTab, t as createRehypeCode } from "../rehype-code.core-BFENmmvo.js";
1
+ import { n as rehypeCodeDefaultOptions, r as transformerTab, t as createRehypeCode } from "../rehype-code.core-BwH0Kyry.js";
2
2
  import { transformerIcon } from "./transformer-icon.js";
3
3
  export { createRehypeCode, rehypeCodeDefaultOptions, transformerIcon, transformerTab };