react-intlayer 8.0.0-canary.1 → 8.0.0-canary.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 (161) hide show
  1. package/dist/cjs/client/useLocale.cjs +6 -6
  2. package/dist/cjs/client/useLocale.cjs.map +1 -1
  3. package/dist/cjs/getDictionary.cjs +1 -0
  4. package/dist/cjs/getDictionary.cjs.map +1 -1
  5. package/dist/cjs/getIntlayer.cjs +1 -0
  6. package/dist/cjs/getIntlayer.cjs.map +1 -1
  7. package/dist/cjs/html/HTMLRenderer.cjs +59 -0
  8. package/dist/cjs/html/HTMLRenderer.cjs.map +1 -0
  9. package/dist/cjs/html/HTMLRendererPlugin.cjs +3 -9
  10. package/dist/cjs/html/HTMLRendererPlugin.cjs.map +1 -1
  11. package/dist/cjs/html/index.cjs +6 -2
  12. package/dist/cjs/html/types.cjs +0 -0
  13. package/dist/cjs/index.cjs +7 -1
  14. package/dist/cjs/markdown/MarkdownProvider.cjs +62 -23
  15. package/dist/cjs/markdown/MarkdownProvider.cjs.map +1 -1
  16. package/dist/cjs/markdown/MarkdownRenderer.cjs +176 -6
  17. package/dist/cjs/markdown/MarkdownRenderer.cjs.map +1 -1
  18. package/dist/cjs/markdown/MarkdownRendererPlugin.cjs.map +1 -1
  19. package/dist/cjs/markdown/index.cjs +3 -1
  20. package/dist/cjs/markdown/processor.cjs +0 -5
  21. package/dist/cjs/markdown/processor.cjs.map +1 -1
  22. package/dist/cjs/plugins.cjs +50 -5
  23. package/dist/cjs/plugins.cjs.map +1 -1
  24. package/dist/cjs/reactElement/renderReactElement.cjs +8 -8
  25. package/dist/cjs/reactElement/renderReactElement.cjs.map +1 -1
  26. package/dist/cjs/server/IntlayerServerProvider.cjs +2 -2
  27. package/dist/cjs/server/IntlayerServerProvider.cjs.map +1 -1
  28. package/dist/esm/client/useLocale.mjs +6 -6
  29. package/dist/esm/client/useLocale.mjs.map +1 -1
  30. package/dist/esm/getDictionary.mjs +2 -1
  31. package/dist/esm/getDictionary.mjs.map +1 -1
  32. package/dist/esm/getIntlayer.mjs +2 -1
  33. package/dist/esm/getIntlayer.mjs.map +1 -1
  34. package/dist/esm/html/HTMLRenderer.mjs +55 -0
  35. package/dist/esm/html/HTMLRenderer.mjs.map +1 -0
  36. package/dist/esm/html/HTMLRendererPlugin.mjs +4 -9
  37. package/dist/esm/html/HTMLRendererPlugin.mjs.map +1 -1
  38. package/dist/esm/html/index.mjs +3 -2
  39. package/dist/esm/html/types.mjs +0 -0
  40. package/dist/esm/index.mjs +3 -2
  41. package/dist/esm/markdown/MarkdownProvider.mjs +62 -23
  42. package/dist/esm/markdown/MarkdownProvider.mjs.map +1 -1
  43. package/dist/esm/markdown/MarkdownRenderer.mjs +175 -7
  44. package/dist/esm/markdown/MarkdownRenderer.mjs.map +1 -1
  45. package/dist/esm/markdown/MarkdownRendererPlugin.mjs.map +1 -1
  46. package/dist/esm/markdown/index.mjs +2 -2
  47. package/dist/esm/markdown/processor.mjs +0 -5
  48. package/dist/esm/markdown/processor.mjs.map +1 -1
  49. package/dist/esm/plugins.mjs +52 -8
  50. package/dist/esm/plugins.mjs.map +1 -1
  51. package/dist/esm/reactElement/renderReactElement.mjs +8 -8
  52. package/dist/esm/reactElement/renderReactElement.mjs.map +1 -1
  53. package/dist/esm/server/IntlayerServerProvider.mjs +2 -2
  54. package/dist/esm/server/IntlayerServerProvider.mjs.map +1 -1
  55. package/dist/types/IntlayerNode.d.ts.map +1 -1
  56. package/dist/types/UI/ContentSelector.d.ts.map +1 -1
  57. package/dist/types/client/IntlayerProvider.d.ts.map +1 -1
  58. package/dist/types/client/format/useCompact.d.ts +2 -3
  59. package/dist/types/client/format/useCompact.d.ts.map +1 -1
  60. package/dist/types/client/format/useCurrency.d.ts +2 -3
  61. package/dist/types/client/format/useCurrency.d.ts.map +1 -1
  62. package/dist/types/client/format/useDate.d.ts +0 -1
  63. package/dist/types/client/format/useDate.d.ts.map +1 -1
  64. package/dist/types/client/format/useIntl.d.ts +0 -1
  65. package/dist/types/client/format/useIntl.d.ts.map +1 -1
  66. package/dist/types/client/format/useList.d.ts +2 -3
  67. package/dist/types/client/format/useList.d.ts.map +1 -1
  68. package/dist/types/client/format/useNumber.d.ts +2 -3
  69. package/dist/types/client/format/useNumber.d.ts.map +1 -1
  70. package/dist/types/client/format/usePercentage.d.ts +2 -3
  71. package/dist/types/client/format/usePercentage.d.ts.map +1 -1
  72. package/dist/types/client/format/useRelativeTime.d.ts +2 -3
  73. package/dist/types/client/format/useRelativeTime.d.ts.map +1 -1
  74. package/dist/types/client/format/useUnit.d.ts +2 -3
  75. package/dist/types/client/format/useUnit.d.ts.map +1 -1
  76. package/dist/types/client/t.d.ts +0 -1
  77. package/dist/types/client/t.d.ts.map +1 -1
  78. package/dist/types/client/useDictionary.d.ts +2 -3
  79. package/dist/types/client/useDictionary.d.ts.map +1 -1
  80. package/dist/types/client/useDictionaryAsync.d.ts +0 -1
  81. package/dist/types/client/useDictionaryAsync.d.ts.map +1 -1
  82. package/dist/types/client/useDictionaryDynamic.d.ts +2 -3
  83. package/dist/types/client/useDictionaryDynamic.d.ts.map +1 -1
  84. package/dist/types/client/useI18n.d.ts +0 -1
  85. package/dist/types/client/useI18n.d.ts.map +1 -1
  86. package/dist/types/client/useIntlayer.d.ts +3 -4
  87. package/dist/types/client/useIntlayer.d.ts.map +1 -1
  88. package/dist/types/client/useLoadDynamic.d.ts.map +1 -1
  89. package/dist/types/client/useLocale.d.ts.map +1 -1
  90. package/dist/types/client/useLocaleBase.d.ts +5 -5
  91. package/dist/types/client/useLocaleBase.d.ts.map +1 -1
  92. package/dist/types/client/useLocaleStorage.d.ts +5 -6
  93. package/dist/types/client/useLocaleStorage.d.ts.map +1 -1
  94. package/dist/types/client/useTraduction.d.ts +0 -1
  95. package/dist/types/client/useTraduction.d.ts.map +1 -1
  96. package/dist/types/editor/ContentSelectorWrapper.d.ts.map +1 -1
  97. package/dist/types/editor/IntlayerEditorProvider.d.ts.map +1 -1
  98. package/dist/types/editor/useEditedContentRenderer.d.ts.map +1 -1
  99. package/dist/types/getDictionary.d.ts.map +1 -1
  100. package/dist/types/getIntlayer.d.ts.map +1 -1
  101. package/dist/types/html/HTMLProvider.d.ts.map +1 -1
  102. package/dist/types/html/HTMLRenderer.d.ts +46 -0
  103. package/dist/types/html/HTMLRenderer.d.ts.map +1 -0
  104. package/dist/types/html/HTMLRendererPlugin.d.ts +2 -7
  105. package/dist/types/html/HTMLRendererPlugin.d.ts.map +1 -1
  106. package/dist/types/html/index.d.ts +4 -2
  107. package/dist/types/html/types.d.ts +26 -0
  108. package/dist/types/html/types.d.ts.map +1 -0
  109. package/dist/types/index.d.ts +4 -2
  110. package/dist/types/index.d.ts.map +1 -1
  111. package/dist/types/markdown/MarkdownProvider.d.ts +34 -36
  112. package/dist/types/markdown/MarkdownProvider.d.ts.map +1 -1
  113. package/dist/types/markdown/MarkdownRenderer.d.ts +235 -13
  114. package/dist/types/markdown/MarkdownRenderer.d.ts.map +1 -1
  115. package/dist/types/markdown/MarkdownRendererPlugin.d.ts.map +1 -1
  116. package/dist/types/markdown/index.d.ts +2 -2
  117. package/dist/types/markdown/processor.d.ts +0 -1
  118. package/dist/types/markdown/processor.d.ts.map +1 -1
  119. package/dist/types/markdown/runtime.d.ts +0 -1
  120. package/dist/types/markdown/runtime.d.ts.map +1 -1
  121. package/dist/types/plugins.d.ts +17 -4
  122. package/dist/types/plugins.d.ts.map +1 -1
  123. package/dist/types/reactElement/renderReactElement.d.ts +2 -2
  124. package/dist/types/reactElement/renderReactElement.d.ts.map +1 -1
  125. package/dist/types/server/IntlayerServerProvider.d.ts +2 -2
  126. package/dist/types/server/IntlayerServerProvider.d.ts.map +1 -1
  127. package/dist/types/server/format/useCompact.d.ts +0 -1
  128. package/dist/types/server/format/useCompact.d.ts.map +1 -1
  129. package/dist/types/server/format/useCurrency.d.ts +0 -1
  130. package/dist/types/server/format/useCurrency.d.ts.map +1 -1
  131. package/dist/types/server/format/useDate.d.ts +0 -1
  132. package/dist/types/server/format/useDate.d.ts.map +1 -1
  133. package/dist/types/server/format/useIntl.d.ts +0 -1
  134. package/dist/types/server/format/useIntl.d.ts.map +1 -1
  135. package/dist/types/server/format/useList.d.ts +0 -1
  136. package/dist/types/server/format/useList.d.ts.map +1 -1
  137. package/dist/types/server/format/useNumber.d.ts +0 -1
  138. package/dist/types/server/format/useNumber.d.ts.map +1 -1
  139. package/dist/types/server/format/usePercentage.d.ts +0 -1
  140. package/dist/types/server/format/usePercentage.d.ts.map +1 -1
  141. package/dist/types/server/format/useRelativeTime.d.ts +0 -1
  142. package/dist/types/server/format/useRelativeTime.d.ts.map +1 -1
  143. package/dist/types/server/format/useUnit.d.ts +0 -1
  144. package/dist/types/server/format/useUnit.d.ts.map +1 -1
  145. package/dist/types/server/serverContext.d.ts +0 -1
  146. package/dist/types/server/serverContext.d.ts.map +1 -1
  147. package/dist/types/server/t.d.ts +0 -1
  148. package/dist/types/server/t.d.ts.map +1 -1
  149. package/dist/types/server/useDictionary.d.ts +2 -3
  150. package/dist/types/server/useDictionary.d.ts.map +1 -1
  151. package/dist/types/server/useDictionaryAsync.d.ts +2 -3
  152. package/dist/types/server/useDictionaryAsync.d.ts.map +1 -1
  153. package/dist/types/server/useDictionaryDynamic.d.ts +2 -3
  154. package/dist/types/server/useDictionaryDynamic.d.ts.map +1 -1
  155. package/dist/types/server/useI18n.d.ts +0 -1
  156. package/dist/types/server/useI18n.d.ts.map +1 -1
  157. package/dist/types/server/useIntlayer.d.ts +3 -3
  158. package/dist/types/server/useIntlayer.d.ts.map +1 -1
  159. package/dist/types/server/useLoadDynamic.d.ts.map +1 -1
  160. package/dist/types/server/useLocale.d.ts.map +1 -1
  161. package/package.json +11 -11
@@ -0,0 +1,46 @@
1
+ import { ReactHTMLComponent } from "./types.js";
2
+ import { FC, JSX } from "react";
3
+
4
+ //#region src/html/HTMLRenderer.d.ts
5
+ declare const defaultHTMLComponents: Record<string, ReactHTMLComponent>;
6
+ type RenderHTMLProps = {
7
+ /**
8
+ * Component overrides for HTML tags.
9
+ * Allows you to customize how specific HTML elements are rendered.
10
+ */
11
+ components?: Record<string, any>;
12
+ };
13
+ /**
14
+ * Renders HTML-like content to JSX with the provided components.
15
+ *
16
+ * This function does not use context from HTMLProvider. Use `useHTMLRenderer`
17
+ * hook if you want to leverage provider context.
18
+ */
19
+ declare const renderHTML: (content: string, {
20
+ components
21
+ }?: RenderHTMLProps) => JSX.Element;
22
+ /**
23
+ * Hook that returns a function to render HTML content.
24
+ *
25
+ * This hook considers the configuration from the `HTMLProvider` context if available,
26
+ * falling back to the provided components.
27
+ */
28
+ declare const useHTMLRenderer: ({
29
+ components
30
+ }?: RenderHTMLProps) => (content: string) => JSX.Element;
31
+ type HTMLRendererProps = RenderHTMLProps & {
32
+ /**
33
+ * The HTML content to render as a string.
34
+ */
35
+ children: string;
36
+ };
37
+ /**
38
+ * React component that renders HTML-like content to JSX.
39
+ *
40
+ * This component uses the components from the `HTMLProvider` context
41
+ * if available.
42
+ */
43
+ declare const HTMLRenderer: FC<HTMLRendererProps>;
44
+ //#endregion
45
+ export { HTMLRenderer, HTMLRendererProps, RenderHTMLProps, defaultHTMLComponents, renderHTML, useHTMLRenderer };
46
+ //# sourceMappingURL=HTMLRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLRenderer.d.ts","names":[],"sources":["../../../src/html/HTMLRenderer.tsx"],"mappings":";;;;cAuBa,qBAAA,EAAqB,MAAA,SAAA,kBAAA;AAAA,KAEtB,eAAA;EAFC;;;;EAOX,UAAA,GAAa,MAAA;AAAA;;;;;AASf;;cAAa,UAAA,GACX,OAAA;EACA;AAAA,IAAgB,eAAA,KACf,GAAA,CAAI,OAAA;;;;;;;cAyBM,eAAA;EAAmB;AAAA,IAAgB,eAAA,MAGtC,OAAA,aAAe,GAAA,CAAA,OAAA;AAAA,KAUb,iBAAA,GAAoB,eAAA;EAvCd;;;EA2ChB,QAAA;AAAA;AAjBF;;;;;;AAAA,cA0Ba,YAAA,EAAc,EAAA,CAAG,iBAAA"}
@@ -1,12 +1,7 @@
1
- import { FC, ReactNode } from "react";
1
+ import { FC } from "react";
2
2
  import { KeyPath, Locale } from "@intlayer/types";
3
3
 
4
4
  //#region src/html/HTMLRendererPlugin.d.ts
5
- type HTMLTagComponent = (props: {
6
- children?: ReactNode;
7
- [key: string]: any;
8
- }) => ReactNode;
9
- declare const defaultHTMLComponents: Record<string, HTMLTagComponent>;
10
5
  type HTMLRendererPluginProps = {
11
6
  dictionaryKey: string;
12
7
  keyPath: KeyPath[];
@@ -16,5 +11,5 @@ type HTMLRendererPluginProps = {
16
11
  };
17
12
  declare const HTMLRendererPlugin: FC<HTMLRendererPluginProps>;
18
13
  //#endregion
19
- export { HTMLRendererPlugin, defaultHTMLComponents };
14
+ export { HTMLRendererPlugin };
20
15
  //# sourceMappingURL=HTMLRendererPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HTMLRendererPlugin.d.ts","names":[],"sources":["../../../src/html/HTMLRendererPlugin.tsx"],"sourcesContent":[],"mappings":";;;;KASK,gBAAA;aACQ;EADR,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,GAAA;AAgBL,CAAA,EAAA,GAbM,SAaO;AAER,cAFQ,qBAEe,EAFM,MAEN,CAAA,MAAA,EAFM,gBAEN,CAAA;KAAvB,uBAAA,GAEM;EAEA,aAAA,EAAA,MAAA;EACQ,OAAA,EAHR,OAGQ,EAAA;EAAM,IAAA,EAAA,MAAA;EAGZ,MAAA,CAAA,EAJF,MAIE;mBAHM;;cAGN,oBAAoB,GAAG"}
1
+ {"version":3,"file":"HTMLRendererPlugin.d.ts","names":[],"sources":["../../../src/html/HTMLRendererPlugin.tsx"],"mappings":";;;;KAWK,uBAAA;EACH,aAAA;EACA,OAAA,EAAS,OAAA;EACT,IAAA;EACA,MAAA,GAAS,MAAA;EACT,cAAA,GAAiB,MAAA;AAAA;AAAA,cAGN,kBAAA,EAAoB,EAAA,CAAG,uBAAA"}
@@ -1,3 +1,5 @@
1
1
  import { HTMLProvider, useHTMLContext } from "./HTMLProvider.js";
2
- import { HTMLRendererPlugin, defaultHTMLComponents } from "./HTMLRendererPlugin.js";
3
- export { HTMLProvider, HTMLRendererPlugin, defaultHTMLComponents, useHTMLContext };
2
+ import { ExtractTags, ReactComponentProps, ReactHTMLComponent, ReactHTMLComponentMap } from "./types.js";
3
+ import { HTMLRenderer, HTMLRendererProps, RenderHTMLProps, defaultHTMLComponents, renderHTML, useHTMLRenderer } from "./HTMLRenderer.js";
4
+ import { HTMLRendererPlugin } from "./HTMLRendererPlugin.js";
5
+ export { ExtractTags, HTMLProvider, HTMLRenderer, HTMLRendererPlugin, HTMLRendererProps, ReactComponentProps, ReactHTMLComponent, ReactHTMLComponentMap, RenderHTMLProps, defaultHTMLComponents, renderHTML, useHTMLContext, useHTMLRenderer };
@@ -0,0 +1,26 @@
1
+ import { BaseHTMLProps, ExtractTags } from "@intlayer/core";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/html/types.d.ts
5
+ /**
6
+ * Props for React HTML components
7
+ * Extends base HTML props with ReactNode children
8
+ */
9
+ interface ReactComponentProps extends BaseHTMLProps {
10
+ children?: ReactNode;
11
+ }
12
+ /**
13
+ * React HTML component function type
14
+ */
15
+ type ReactHTMLComponent = (props: ReactComponentProps) => ReactNode;
16
+ /**
17
+ * Component map type for React
18
+ * - Standard HTML tags are optional (Partial)
19
+ * - Custom components are required
20
+ */
21
+ type ReactHTMLComponentMap<T = never> = (T extends Record<string, any> ? { [K in keyof T]: (props: T[K] & {
22
+ children?: ReactNode;
23
+ }) => ReactNode } : T extends string ? { [K in T]: ReactHTMLComponent } : {}) & Partial<Record<string, ReactHTMLComponent>>;
24
+ //#endregion
25
+ export { type ExtractTags, ReactComponentProps, ReactHTMLComponent, ReactHTMLComponentMap };
26
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/html/types.ts"],"mappings":";;;;;;AAOA;;UAAiB,mBAAA,SAA4B,aAAA;EAC3C,QAAA,GAAW,SAAA;AAAA;;;;KAMD,kBAAA,IAAsB,KAAA,EAAO,mBAAA,KAAwB,SAAA;AAAjE;;;;;AAAA,KAOY,qBAAA,eAAoC,CAAA,SAAU,MAAA,8BACxC,CAAA,IAAK,KAAA,EAAO,CAAA,CAAE,CAAA;EAAO,QAAA,GAAW,SAAA;AAAA,MAAgB,SAAA,KAC9D,CAAA,0BACU,CAAA,GAAI,kBAAA,WAEhB,OAAA,CAAQ,MAAA,SAAe,kBAAA"}
@@ -15,8 +15,10 @@ import { localeCookie, localeInStorage, setLocaleCookie, setLocaleInStorage, use
15
15
  import { getDictionary } from "./getDictionary.js";
16
16
  import { getIntlayer } from "./getIntlayer.js";
17
17
  import { HTMLProvider } from "./html/HTMLProvider.js";
18
+ import { HTMLRenderer, HTMLRendererProps, RenderHTMLProps, renderHTML, useHTMLRenderer } from "./html/HTMLRenderer.js";
19
+ import "./html/index.js";
18
20
  import { MarkdownProvider } from "./markdown/MarkdownProvider.js";
19
- import { MarkdownRenderer } from "./markdown/MarkdownRenderer.js";
21
+ import { MarkdownRenderer, MarkdownRendererProps, RenderMarkdownProps, renderMarkdown, useMarkdownRenderer } from "./markdown/MarkdownRenderer.js";
20
22
  import "./markdown/index.js";
21
23
  import { LocalesValues } from "@intlayer/types";
22
24
 
@@ -25,5 +27,5 @@ declare module '@intlayer/core' {
25
27
  interface IInterpreterPlugin<T, S, L extends LocalesValues> extends IInterpreterPluginReact<T, S, L> {}
26
28
  }
27
29
  //#endregion
28
- export { HTMLProvider, IntlayerClientContext, type IntlayerNode, IntlayerProvider, IntlayerProviderContent, type IntlayerProviderProps, MarkdownProvider, MarkdownRenderer, getDictionary, getIntlayer, localeCookie, localeInStorage, setLocaleCookie, setLocaleInStorage, t, useDictionary, useDictionaryAsync, useDictionaryDynamic, useI18n, useIntl, useIntlayer, useIntlayerContext, useLoadDynamic, useLocale, useLocaleBase, useLocaleCookie, useLocaleStorage };
30
+ export { HTMLProvider, HTMLRenderer, type HTMLRendererProps, IntlayerClientContext, type IntlayerNode, IntlayerProvider, IntlayerProviderContent, type IntlayerProviderProps, MarkdownProvider, MarkdownRenderer, type MarkdownRendererProps, type RenderHTMLProps, type RenderMarkdownProps, getDictionary, getIntlayer, localeCookie, localeInStorage, renderHTML, renderMarkdown, setLocaleCookie, setLocaleInStorage, t, useDictionary, useDictionaryAsync, useDictionaryDynamic, useHTMLRenderer, useI18n, useIntl, useIntlayer, useIntlayerContext, useLoadDynamic, useLocale, useLocaleBase, useLocaleCookie, useLocaleStorage, useMarkdownRenderer };
29
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;+CAI+C,uBACnC,wBAAwB,GAAG,GAAG"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;YAIY,kBAAA,iBAAmC,aAAA,UACnC,uBAAA,CAAwB,CAAA,EAAG,CAAA,EAAG,CAAA;AAAA"}
@@ -2,51 +2,49 @@ import { Overrides } from "@intlayer/core";
2
2
  import { FC, PropsWithChildren, ReactNode } from "react";
3
3
 
4
4
  //#region src/markdown/MarkdownProvider.d.ts
5
- type RenderMarkdownOptions = {
5
+ type MarkdownProviderOptions = {
6
+ /** Forces the compiler to always output content with a block-level wrapper. */forceBlock?: boolean; /** Forces the compiler to always output content with an inline wrapper. */
7
+ forceInline?: boolean; /** Whether to preserve frontmatter in the markdown content. */
8
+ preserveFrontmatter?: boolean; /** Whether to use the GitHub Tag Filter for security. */
9
+ tagfilter?: boolean;
10
+ };
11
+ type RenderMarkdownOptions = MarkdownProviderOptions & {
6
12
  components?: Overrides;
7
- wrapper?: FC;
8
- options?: MarkdownProviderOptions;
13
+ wrapper?: FC<any>;
9
14
  };
10
15
  type MarkdownContextValue = {
11
16
  renderMarkdown: (markdown: string, components?: Overrides | RenderMarkdownOptions) => ReactNode;
12
17
  };
13
- /**
14
- * Refined options for the MarkdownProvider.
15
- */
16
- type MarkdownProviderOptions = {
17
- /**
18
- * Forces the compiler to always output content with a block-level wrapper.
19
- */
20
- forceBlock?: boolean;
21
- /**
22
- * Whether to preserve frontmatter in the markdown content.
23
- */
24
- preserveFrontmatter?: boolean;
25
- /**
26
- * Whether to use the GitHub Tag Filter.
27
- */
28
- tagfilter?: boolean;
29
- };
30
- type MarkdownProviderProps = PropsWithChildren<{
31
- /**
32
- * Component overrides for HTML tags.
33
- */
18
+ type MarkdownProviderProps = PropsWithChildren<MarkdownProviderOptions & {
34
19
  components?: Overrides;
35
- /**
36
- * Wrapper element or component to be used when there are multiple children.
37
- */
38
20
  wrapper?: any;
39
- /**
40
- * Markdown processor options.
41
- */
42
- options?: MarkdownProviderOptions;
43
- /**
44
- * Custom render function for markdown.
45
- * If provided, it will overwrite all rules and default rendering.
46
- */
47
- renderMarkdown?: (markdown: string, overrides?: Overrides) => ReactNode;
21
+ renderMarkdown?: (markdown: string, overrides?: Overrides | RenderMarkdownOptions) => ReactNode;
48
22
  }>;
49
23
  declare const useMarkdownContext: () => MarkdownContextValue;
24
+ /**
25
+ * Provider for the MarkdownRenderer component.
26
+ *
27
+ * It will provide the `renderMarkdown` function to the context, which can be used to render markdown.
28
+ *
29
+ * ```tsx
30
+ * const content = useIntlayer('app');
31
+ *
32
+ * return (
33
+ * <div>
34
+ * {content.markdown} // Will be rendered with the components and options provided to the MarkdownProvider
35
+ * </div>
36
+ * );
37
+ * ```
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * <MarkdownProvider components={{ h1: CustomHeading }}>
42
+ * <MarkdownRenderer>
43
+ * {markdownContent}
44
+ * </MarkdownRenderer>
45
+ * </MarkdownProvider>
46
+ * ```
47
+ */
50
48
  declare const MarkdownProvider: FC<MarkdownProviderProps>;
51
49
  //#endregion
52
50
  export { MarkdownProvider, MarkdownProviderOptions, useMarkdownContext };
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownProvider.d.ts","names":[],"sources":["../../../src/markdown/MarkdownProvider.tsx"],"sourcesContent":[],"mappings":";;;;KAYK,qBAAA;eACU;EADV,OAAA,CAAA,EAEO,EAFP;EACU,OAAA,CAAA,EAEH,uBAFG;CACH;KAIP,oBAAA,GAHO;EAAuB,cAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAMlB,SANkB,GAMN,qBANM,EAAA,GAO5B,SAP4B;AAAA,CAAA;;;;AAOnB,KAMJ,uBAAA,GANI;EAMJ;AAaV;;EAcU,UAAA,CAAA,EAAA,OAAA;EAKsC;;;EAjBJ,mBAAA,CAAA,EAAA,OAAA;EAwBjC;AAEb;;;;KA1BK,qBAAA,GAAwB;;;;eAId;;;;;;;;YAQH;;;;;kDAKsC,cAAc;;cAOnD,0BAAkB;cAElB,kBAAkB,GAAG"}
1
+ {"version":3,"file":"MarkdownProvider.d.ts","names":[],"sources":["../../../src/markdown/MarkdownProvider.tsx"],"mappings":";;;;KAYY,uBAAA;iFAEV,UAAA,YAFiC;EAIjC,WAAA,YAJiC;EAMjC,mBAAA,YAFA;EAIA,SAAA;AAAA;AAAA,KAGG,qBAAA,GAAwB,uBAAA;EAC3B,UAAA,GAAa,SAAA;EACb,OAAA,GAAU,EAAA;AAAA;AAAA,KAGP,oBAAA;EACH,cAAA,GACE,QAAA,UACA,UAAA,GAAa,SAAA,GAAY,qBAAA,KACtB,SAAA;AAAA;AAAA,KAGF,qBAAA,GAAwB,iBAAA,CAC3B,uBAAA;EACE,UAAA,GAAa,SAAA;EACb,OAAA;EACA,cAAA,IACE,QAAA,UACA,SAAA,GAAY,SAAA,GAAY,qBAAA,KACrB,SAAA;AAAA;AAAA,cAQI,kBAAA,QAAkB,oBAAA;;;;;AAzBjB;;;;;;;;;;;;;;;;AAOE;;;;cAsGH,gBAAA,EAAkB,EAAA,CAAG,qBAAA"}
@@ -1,36 +1,258 @@
1
1
  import { MarkdownProviderOptions } from "./MarkdownProvider.js";
2
2
  import { Overrides } from "@intlayer/core";
3
- import { FC } from "react";
3
+ import * as react0 from "react";
4
+ import { FC, JSX, ReactNode } from "react";
4
5
 
5
6
  //#region src/markdown/MarkdownRenderer.d.ts
6
- type MarkdownRendererProps = {
7
- /**
8
- * The markdown content to render.
9
- */
10
- children: string;
7
+ /**
8
+ * Props for rendering markdown content.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * const props: RenderMarkdownProps = {
13
+ * components: {
14
+ * h1: ({ children }) => <h1 className="text-3xl">{children}</h1>,
15
+ * p: ({ children }) => <p className="text-gray-700">{children}</p>,
16
+ * },
17
+ * wrapper: ({ children }) => <article>{children}</article>,
18
+ * options: {
19
+ * forceBlock: true,
20
+ * preserveFrontmatter: false,
21
+ * tagfilter: true,
22
+ * },
23
+ * };
24
+ * ```
25
+ */
26
+ type RenderMarkdownProps = MarkdownProviderOptions & {
11
27
  /**
12
28
  * Component overrides for HTML tags.
29
+ * Allows you to customize how specific HTML elements are rendered.
13
30
  * Only used if not wrapped in a MarkdownProvider.
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * components={{
35
+ * h1: ({ children }) => <h1 className="title">{children}</h1>,
36
+ * a: ({ href, children }) => <Link to={href}>{children}</Link>,
37
+ * }}
38
+ * ```
14
39
  */
15
40
  components?: Overrides;
16
41
  /**
17
42
  * Wrapper element or component to be used when there are multiple children.
18
43
  * Only used if not wrapped in a MarkdownProvider.
44
+ *
45
+ * @example
46
+ * ```tsx
47
+ * wrapper={({ children }) => <div className="markdown-content">{children}</div>}
48
+ * ```
19
49
  */
20
50
  wrapper?: FC;
51
+ };
52
+ /**
53
+ * Renders markdown content to JSX with the provided components and options.
54
+ *
55
+ * This function does not use context from MarkdownProvider. Use `useMarkdownRenderer`
56
+ * hook if you want to leverage provider context.
57
+ *
58
+ * @param content - The markdown string to render
59
+ * @param props - Configuration options for rendering
60
+ * @param props.components - Component overrides for HTML tags
61
+ * @param props.wrapper - Wrapper component for multiple children
62
+ * @returns JSX element representing the rendered markdown
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * import { renderMarkdown } from '@intlayer/react-intlayer/markdown';
67
+ *
68
+ * const markdown = '# Hello World\n\nThis is **bold** text.';
69
+ * const jsx = renderMarkdown(markdown, {
70
+ * components: {
71
+ * h1: ({ children }) => <h1 className="title">{children}</h1>,
72
+ * },
73
+ * forceBlock: true,
74
+ * });
75
+ * ```
76
+ */
77
+ declare const renderMarkdown: (content: string, {
78
+ components,
79
+ wrapper,
80
+ forceBlock,
81
+ forceInline,
82
+ preserveFrontmatter,
83
+ tagfilter
84
+ }?: RenderMarkdownProps) => JSX.Element;
85
+ /**
86
+ * Hook that returns a function to render markdown content.
87
+ *
88
+ * This hook considers the configuration from the `MarkdownProvider` context if available,
89
+ * falling back to the provided props or default behavior.
90
+ *
91
+ * @param props - Optional configuration that will override context values
92
+ * @param props.components - Component overrides for HTML tags (overrides context)
93
+ * @param props.wrapper - Wrapper component (overrides context)
94
+ * @returns A function that takes markdown content and returns JSX
95
+ *
96
+ * @example
97
+ * ```tsx
98
+ * import { useMarkdownRenderer } from '@intlayer/react-intlayer/markdown';
99
+ *
100
+ * function MyComponent() {
101
+ * const renderMarkdown = useMarkdownRenderer({
102
+ * components: {
103
+ * h1: ({ children }) => <h1 className="custom">{children}</h1>,
104
+ * },
105
+ * });
106
+ *
107
+ * return (
108
+ * <div>
109
+ * {renderMarkdown('# Hello\n\nThis is **markdown**')}
110
+ * </div>
111
+ * );
112
+ * }
113
+ * ```
114
+ *
115
+ * @example
116
+ * ```tsx
117
+ * // With MarkdownProvider context
118
+ * function App() {
119
+ * return (
120
+ * <MarkdownProvider
121
+ * components={{ h1: CustomHeading }}
122
+ * forceBlock={true}
123
+ * >
124
+ * <MyComponent />
125
+ * </MarkdownProvider>
126
+ * );
127
+ * }
128
+ * ```
129
+ */
130
+ declare const useMarkdownRenderer: ({
131
+ components,
132
+ wrapper,
133
+ forceBlock,
134
+ forceInline,
135
+ preserveFrontmatter,
136
+ tagfilter
137
+ }?: RenderMarkdownProps) => (content: string) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react0.ReactPortal | react0.ReactElement<unknown, string | react0.JSXElementConstructor<any>> | Iterable<ReactNode>> | JSX.Element;
138
+ /**
139
+ * Props for the MarkdownRenderer component.
140
+ *
141
+ * @example
142
+ * ```tsx
143
+ * const props: MarkdownRendererProps = {
144
+ * children: '# Hello World\n\nThis is **bold** text.',
145
+ * components: {
146
+ * h1: ({ children }) => <h1 className="title">{children}</h1>,
147
+ * },
148
+ * wrapper: ({ children }) => <article>{children}</article>,
149
+ * forceBlock: true,
150
+ * };
151
+ * ```
152
+ */
153
+ type MarkdownRendererProps = RenderMarkdownProps & {
21
154
  /**
22
- * Markdown processor options.
23
- * Only used if not wrapped in a MarkdownProvider.
155
+ * The markdown content to render as a string.
156
+ *
157
+ * @example
158
+ * ```tsx
159
+ * <MarkdownRenderer>
160
+ * {`# Title\n\nParagraph with **bold** text.`}
161
+ * </MarkdownRenderer>
162
+ * ```
24
163
  */
25
- options?: MarkdownProviderOptions;
164
+ children: string;
165
+ /**
166
+ * Custom render function for markdown.
167
+ * If provided, it will overwrite context and default rendering.
168
+ *
169
+ * @param markdown - The markdown string to render
170
+ * @param options - Optional rendering options
171
+ * @returns React node representing the rendered markdown
172
+ *
173
+ * @example
174
+ * ```tsx
175
+ * <MarkdownRenderer
176
+ * renderMarkdown={(md, opts) => {
177
+ * // Custom rendering logic
178
+ * return <div dangerouslySetInnerHTML={{ __html: customParser(md) }} />;
179
+ * }}
180
+ * >
181
+ * {markdownContent}
182
+ * </MarkdownRenderer>
183
+ * ```
184
+ */
185
+ renderMarkdown?: (markdown: string, options?: {
186
+ components?: Overrides;
187
+ wrapper?: FC;
188
+ forceBlock?: boolean;
189
+ forceInline?: boolean;
190
+ preserveFrontmatter?: boolean;
191
+ tagfilter?: boolean;
192
+ }) => ReactNode;
26
193
  };
27
194
  /**
28
- * React component that renders markdown to JSX.
195
+ * React component that renders markdown content to JSX.
196
+ *
197
+ * This component uses the `renderMarkdown` function from the `MarkdownProvider` context
198
+ * if available. Otherwise, it falls back to the default compiler with provided components
199
+ * and options. You can also provide a custom `renderMarkdown` function prop to override
200
+ * all rendering behavior.
201
+ *
202
+ * @example
203
+ * ```tsx
204
+ * import { MarkdownRenderer } from '@intlayer/react-intlayer/markdown';
205
+ *
206
+ * function MyComponent() {
207
+ * return (
208
+ * <MarkdownRenderer>
209
+ * {`# Hello World
210
+ *
211
+ * This is a paragraph with **bold** and *italic* text.
212
+ *
213
+ * - List item 1
214
+ * - List item 2`}
215
+ * </MarkdownRenderer>
216
+ * );
217
+ * }
218
+ * ```
219
+ *
220
+ * @example
221
+ * ```tsx
222
+ * // With custom components
223
+ * <MarkdownRenderer
224
+ * components={{
225
+ * h1: ({ children }) => <h1 className="text-4xl font-bold">{children}</h1>,
226
+ * a: ({ href, children }) => (
227
+ * <a href={href} className="text-blue-500 hover:underline">
228
+ * {children}
229
+ * </a>
230
+ * ),
231
+ * }}
232
+ * forceBlock={true}
233
+ * >
234
+ * {markdownContent}
235
+ * </MarkdownRenderer>
236
+ * ```
29
237
  *
30
- * It uses the renderMarkdown function from the MarkdownProvider context if available.
31
- * Otherwise, it falls back to the default compiler with provided components and options.
238
+ * @example
239
+ * ```tsx
240
+ * // With MarkdownProvider context
241
+ * function App() {
242
+ * return (
243
+ * <MarkdownProvider
244
+ * components={{ h1: CustomHeading }}
245
+ * forceBlock={true}
246
+ * >
247
+ * <MarkdownRenderer>
248
+ * {markdownContent}
249
+ * </MarkdownRenderer>
250
+ * </MarkdownProvider>
251
+ * );
252
+ * }
253
+ * ```
32
254
  */
33
255
  declare const MarkdownRenderer: FC<MarkdownRendererProps>;
34
256
  //#endregion
35
- export { MarkdownRenderer };
257
+ export { MarkdownRenderer, MarkdownRendererProps, RenderMarkdownProps, renderMarkdown, useMarkdownRenderer };
36
258
  //# sourceMappingURL=MarkdownRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownRenderer.d.ts","names":[],"sources":["../../../src/markdown/MarkdownRenderer.tsx"],"sourcesContent":[],"mappings":";;;;;KAQK,qBAAA;;AAHuB;;EAiBhB,QAAA,EAAA,MAAA;EAKA;;AASZ;;eAnBe;;;;;YAKH;;;;;YAKA;;;;;;;;cASC,kBAAkB,GAAG"}
1
+ {"version":3,"file":"MarkdownRenderer.d.ts","names":[],"sources":["../../../src/markdown/MarkdownRenderer.tsx"],"mappings":";;;;;;;;;AA2BA;;;;;;;;;;;;;;;AAoDA;KApDY,mBAAA,GAAsB,uBAAA;;;;;;;;;;;;;;EAchC,UAAA,GAAa,SAAA;EAwCb;;;;;;;;;EA9BA,OAAA,GAAU,EAAA;AAAA;;;;;AAkGZ;;;;;;;;;;;;;;;;;;;;;cAtEa,cAAA,GACX,OAAA;EACA,UAAA;EAAA,OAAA;EAAA,UAAA;EAAA,WAAA;EAAA,mBAAA;EAAA;AAAA,IAOG,mBAAA,KACF,GAAA,CAAI,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA4GP;;;;;;;;;;;;;;;;;;;;cAhDa,mBAAA;EAAuB,UAAA;EAAA,OAAA;EAAA,UAAA;EAAA,WAAA;EAAA,mBAAA;EAAA;AAAA,IAOjC,mBAAA,MAGO,OAAA,kDAAe,QAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,MAAA,CAAA,WAAA,GAAA,MAAA,CAAA,YAAA,mBAAA,MAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,SAAA,KAAA,GAAA,CAAA,OAAA;;;;;AAgJzB;;;;;;;;;;;KA1GY,qBAAA,GAAwB,mBAAA;;;;;;;;;;;EAWlC,QAAA;;;;;;;;;;;;;;;;;;;;;EAqBA,cAAA,IACE,QAAA,UACA,OAAA;IACE,UAAA,GAAa,SAAA;IACb,OAAA,GAAU,EAAA;IACV,UAAA;IACA,WAAA;IACA,mBAAA;IACA,SAAA;EAAA,MAEC,SAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgEM,gBAAA,EAAkB,EAAA,CAAG,qBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownRendererPlugin.d.ts","names":[],"sources":["../../../src/markdown/MarkdownRendererPlugin.tsx"],"sourcesContent":[],"mappings":";;;;KAaK,2BAAA;;EAAA,OAAA,EAEM,OAFN,EAAA;EAQQ,MAAA,CAAA,EALF,aAKE;EAkBR,QAAA,EAAA,MAAA;EAIQ,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,GAAA;;cAtBA,wBAAwB,GAAG;KAkBnC,6BAAA,GAAgC;mBAClB;;cAGN,0BAA0B,GAAG"}
1
+ {"version":3,"file":"MarkdownRendererPlugin.d.ts","names":[],"sources":["../../../src/markdown/MarkdownRendererPlugin.tsx"],"mappings":";;;;KASK,2BAAA;EACH,aAAA;EACA,OAAA,EAAS,OAAA;EACT,MAAA,GAAS,aAAA;EACT,QAAA;EAAA,CACC,GAAA;AAAA;AAAA,cAGU,sBAAA,EAAwB,EAAA,CAAG,2BAAA;AAAA,KAkBnC,6BAAA,GAAgC,2BAAA;EACnC,eAAA,EAAiB,OAAA;AAAA;AAAA,cAGN,wBAAA,EAA0B,EAAA,CAAG,6BAAA"}
@@ -1,6 +1,6 @@
1
1
  import { MarkdownProvider, MarkdownProviderOptions, useMarkdownContext } from "./MarkdownProvider.js";
2
- import { MarkdownRenderer } from "./MarkdownRenderer.js";
2
+ import { MarkdownRenderer, MarkdownRendererProps, RenderMarkdownProps, renderMarkdown, useMarkdownRenderer } from "./MarkdownRenderer.js";
3
3
  import { MarkdownMetadataRenderer, MarkdownRendererPlugin } from "./MarkdownRendererPlugin.js";
4
4
  import { LegacyMarkdownRenderer, MarkdownRendererOptions, Overrides as CoreOverrides, ParseState, ParserResult, RuleOutput, RuleType, State, compile, compileMarkdown, compiler, sanitizer as defaultSanitizer, slugify as defaultSlugify } from "./processor.js";
5
5
  import reactRuntime, { createReactRuntime } from "./runtime.js";
6
- export { LegacyMarkdownRenderer, MarkdownMetadataRenderer, MarkdownProvider, MarkdownProviderOptions, MarkdownRenderer, MarkdownRendererOptions, MarkdownRendererPlugin, CoreOverrides as Overrides, ParseState, ParserResult, RuleOutput, RuleType, State, compile, compileMarkdown, compiler, createReactRuntime, reactRuntime, defaultSanitizer as sanitizer, defaultSlugify as slugify, useMarkdownContext };
6
+ export { LegacyMarkdownRenderer, MarkdownMetadataRenderer, MarkdownProvider, MarkdownProviderOptions, MarkdownRenderer, MarkdownRendererOptions, MarkdownRendererPlugin, MarkdownRendererProps, CoreOverrides as Overrides, ParseState, ParserResult, RenderMarkdownProps, RuleOutput, RuleType, State, compile, compileMarkdown, compiler, createReactRuntime, reactRuntime, renderMarkdown, defaultSanitizer as sanitizer, defaultSlugify as slugify, useMarkdownContext, useMarkdownRenderer };
@@ -2,7 +2,6 @@ import { Overrides as CoreOverrides, ParseState, ParserResult, RenderRuleHook, R
2
2
  import { FC, HTMLAttributes, JSX, ReactNode, createElement } from "react";
3
3
 
4
4
  //#region src/markdown/processor.d.ts
5
-
6
5
  type HTMLTags = keyof JSX.IntrinsicElements;
7
6
  type State = ParseState;
8
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"processor.d.ts","names":[],"sources":["../../../src/markdown/processor.tsx"],"sourcesContent":[],"mappings":";;;;;KAoCK,QAAA,GAaU,MAbO,GAAA,CAAI,iBAaX;KAXV,KAAA,GAAQ,UAYI;;;;AAuDiB,KA9DtB,uBAAA,GAA0B,OA8DJ,CAAA;EA9DI;;AAmGtC;EAmDa,aAA0B,EAAA,CAAA,GAAA,EAjJ9B,UAgGE,CAAA,OAhGgB,aAiGpB,CAAA,CAAA,CAAA,CAAA,EAAA,KAgDgC,EAhJ5B,GAAA,CAAI,mBAgJwB,EAAA,GAAA,QAAA,EA/ItB,SA+IsB,EAAA,EAAA,GA9IhC,SA8IgC;EAC1B;AAKb;;;EACE,eAAA,EAAA,OAAA;EAEY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA3GA;;;;cAKA;;;;kCAKoB;;;;;;;;;;;;;;;;;;;;;;cAqCrB,+CAEF,4BACR,GAAA,CAAI;cAgDM,wCAjDF,4BACR,GAAA,CAAI;cAiDM,uCAlDF,4BACR,GAAA,CAAI;;;;cAsDM,wBAAwB,GACnC,KAAK,eAAe;;YAER"}
1
+ {"version":3,"file":"processor.d.ts","names":[],"sources":["../../../src/markdown/processor.tsx"],"mappings":";;;;KA8BK,QAAA,SAAiB,GAAA,CAAI,iBAAA;AAAA,KAErB,KAAA,GAAQ,UAAA;;;;KAKD,uBAAA,GAA0B,OAAA;EAL5B;;;EASR,aAAA,GACE,GAAA,EAAK,UAAA,QAAkB,aAAA,MACvB,KAAA,EAAO,GAAA,CAAI,mBAAA,KACR,QAAA,EAAU,SAAA,OACV,SAAA;EARK;;;;EAcV,eAAA;EARS;;;;EAcT,qBAAA;EA0CgC;;;EArChC,kBAAA;EAzBoC;;;EA8BpC,UAAA;EAzBE;;;EA8BF,WAAA;EA5BK;;;EAiCL,YAAA;EApBA;;;EAyBA,mBAAA;IAAA,CACG,GAAA;EAAA;EAAA;;;EAMH,UAAA,EAAY,aAAA;EAKA;;;EAAZ,UAAA,EAAY,cAAA;EAKe;;;EAA3B,SAAA,GAAY,KAAA,UAAe,GAAA,EAAK,QAAA,EAAU,SAAA;EAU1C;;;EALA,OAAA,GAAU,KAAA;EAeD;AAiBX;;EA3BE,OAAA;EA2ED;;;EAtEC,mBAAA;EAyBC;;;EApBD,SAAA;AAAA;;;;;cAiBW,eAAA,GACX,QAAA,WACA,OAAA,GAAS,uBAAA,KACR,GAAA,CAAI,OAAA;AAAA,cAgDM,QAAA,GAAQ,QAAA,WAlDH,OAAA,GACP,uBAAA,KACR,GAAA,CAAI,OAAA;AAAA,cAiDM,OAAA,GAAO,QAAA,WAnDF,OAAA,GACP,uBAAA,KACR,GAAA,CAAI,OAAA;;;;cAsDM,sBAAA,EAAwB,EAAA,CACnC,IAAA,CAAK,cAAA,CAAe,OAAA;EAClB,QAAA;EACA,OAAA,GAAU,uBAAA;AAAA"}
@@ -2,7 +2,6 @@ import { MarkdownRuntime } from "@intlayer/core";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region src/markdown/runtime.d.ts
5
-
6
5
  /**
7
6
  * React-specific runtime for the markdown processor.
8
7
  * Implements the MarkdownRuntime interface using React's primitives.
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","names":[],"sources":["../../../src/markdown/runtime.ts"],"sourcesContent":[],"mappings":";;;;;;;;;cAuBa,cAAc;;;;;cA6Dd;gDAIA,gDAEJ;MAEN"}
1
+ {"version":3,"file":"runtime.d.ts","names":[],"sources":["../../../src/markdown/runtime.ts"],"mappings":";;;;;;;;cAuBa,YAAA,EAAc,eAAA;;;;;cA6Dd,kBAAA,GACX,OAAA;EACE,eAAA,IACE,IAAA,gBACA,KAAA,EAAO,MAAA,sBACP,QAAA,YACG,SAAA;AAAA,MAEN,eAAA"}
@@ -1,10 +1,9 @@
1
1
  import { IntlayerNode } from "./IntlayerNode.js";
2
2
  import { DeepTransformContent as DeepTransformContent$1, HTMLCond, IInterpreterPluginState as IInterpreterPluginState$1, Plugins } from "@intlayer/core";
3
- import { ReactNode } from "react";
3
+ import { ComponentType, ElementType, ReactNode } from "react";
4
4
  import { DeclaredLocales, LocalesValues, NodeType } from "@intlayer/types";
5
5
 
6
6
  //#region src/plugins.d.ts
7
-
8
7
  /** ---------------------------------------------
9
8
  * INTLAYER NODE PLUGIN
10
9
  * --------------------------------------------- */
@@ -20,20 +19,32 @@ type ReactNodeCond<T> = T extends {
20
19
  } ? ReactNode : never;
21
20
  /** Translation plugin. Replaces node with a locale string if nodeType = Translation. */
22
21
  declare const reactNodePlugins: Plugins;
22
+ /** ---------------------------------------------
23
+ * INSERTION PLUGIN
24
+ * --------------------------------------------- */
25
+ type InsertionCond<T, S, L> = T extends {
26
+ nodeType: NodeType | string;
27
+ [NodeType.Insertion]: string;
28
+ fields: readonly string[];
29
+ } ? (values: { [K in T['fields'][number]]: ReactNode }) => ReactNode : never;
30
+ /** Insertion plugin for React. Handles component/node insertion. */
31
+ declare const insertionPlugin: Plugins;
23
32
  /**
24
33
  * MARKDOWN PLUGIN
25
34
  */
26
35
  type MarkdownStringCond<T> = T extends string ? IntlayerNode<string, {
27
36
  metadata: DeepTransformContent<string>;
37
+ use: (components: any) => any;
28
38
  }> : never;
29
39
  /** Markdown string plugin. Replaces string node with a component that render the markdown. */
30
40
  declare const markdownStringPlugin: Plugins;
41
+ type MarkdownComponentMap = Record<string, ComponentType<any> | ElementType>;
31
42
  type MarkdownCond<T, S, L extends LocalesValues> = T extends {
32
43
  nodeType: NodeType | string;
33
44
  [NodeType.Markdown]: infer M;
34
45
  metadata?: infer U;
35
46
  } ? {
36
- use: (components: any) => any;
47
+ use: (components?: MarkdownComponentMap) => ReactNode;
37
48
  metadata: DeepTransformContent<U, L>;
38
49
  } & any : never;
39
50
  declare const markdownPlugin: Plugins;
@@ -49,6 +60,7 @@ declare const htmlPlugin: Plugins;
49
60
  interface IInterpreterPluginReact<T, S, L extends LocalesValues> {
50
61
  reactNode: ReactNodeCond<T>;
51
62
  reactIntlayerNode: IntlayerNodeCond<T>;
63
+ reactInsertion: InsertionCond<T, S, L>;
52
64
  reactMarkdown: MarkdownCond<T, S, L>;
53
65
  reactHtml: HTMLPluginCond<T, S, L>;
54
66
  }
@@ -60,10 +72,11 @@ interface IInterpreterPluginReact<T, S, L extends LocalesValues> {
60
72
  type IInterpreterPluginState = IInterpreterPluginState$1 & {
61
73
  reactNode: true;
62
74
  reactIntlayerNode: true;
75
+ reactInsertion: true;
63
76
  reactMarkdown: true;
64
77
  reactHtml: true;
65
78
  };
66
79
  type DeepTransformContent<T, L extends LocalesValues = DeclaredLocales> = DeepTransformContent$1<T, IInterpreterPluginState, L>;
67
80
  //#endregion
68
- export { DeepTransformContent, HTMLPluginCond, IInterpreterPluginReact, IInterpreterPluginState, IntlayerNodeCond, MarkdownCond, MarkdownStringCond, ReactNodeCond, htmlPlugin, intlayerNodePlugins, markdownPlugin, markdownStringPlugin, reactNodePlugins };
81
+ export { DeepTransformContent, HTMLPluginCond, IInterpreterPluginReact, IInterpreterPluginState, InsertionCond, IntlayerNodeCond, MarkdownCond, MarkdownStringCond, ReactNodeCond, htmlPlugin, insertionPlugin, intlayerNodePlugins, markdownPlugin, markdownStringPlugin, reactNodePlugins };
69
82
  //# sourceMappingURL=plugins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.ts","names":[],"sources":["../../src/plugins.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;AA2BA;AAAkC,KAAtB,gBAAsB,CAAA,CAAA,CAAA,GAAA,CAAA,SAAA,MAAA,GAAA,MAAA,GAC9B,YAD8B,CACjB,CADiB,CAAA,GAAA,KAAA;;AAC9B,cAIS,mBAJT,EAI8B,OAJ9B;;AAIJ;AA0BA;AAQa,KARD,aA+BX,CAAA,CAAA,CAAA,GA/B8B,CA+B9B,SAvB8B;EA6BnB,KAAA,EAAA,GAAA;EAAwB,GAAA,EAAA,GAAA;CACC,GAlCjC,SAkCiC,GAAA,KAAA;;AAArB,cA9BH,gBA8BG,EA9Be,OA8Bf;AAIhB;AA+EA;;AAA0D,KApF9C,kBAoF8C,CAAA,CAAA,CAAA,GApFtB,CAoFsB,SAAA,MAAA,GAnFtD,YAmFsD,CAAA,MAAA,EAAA;EAC9C,QAAA,EApFyB,oBAoFzB,CAAA,MAAA,CAAA;CACT,CAAA,GAAA,KAAS;;AAK4B,cAtF3B,oBAsF2B,EAtFL,OAsFK;AAAxB,KAPJ,YAOI,CAAA,CAAA,EAAA,CAAA,EAAA,UAPyB,aAOzB,CAAA,GAP0C,CAO1C,SAAA;EAAoB,QAAA,EANxB,QAMwB,GAAA,MAAA;EAIvB,CATV,QAAA,CAAS,QAAA,CA+BX,EAAA,KAAA,EAAA;EAMW,QAAA,CAAA,EAAA,KAAc,EAAA;CAAqB,GAAA;EAAG,GAAA,EAAA,CAAA,UAAA,EAAA,GAAA,EAAA,GAAA,GAAA;EAAG,QAAA,EAhCrC,oBAgCqC,CAhChB,CAgCgB,EAhCb,CAgCa,CAAA;CAAf,GAAA,GAAA,GAAA,KAAA;AAAQ,cA5BjC,cA4BiC,EA5BjB,OA4BiB;AAG9C;AAoCA;;AAC2B,KAxCf,cAwCe,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,GAxCW,QAwCX,CAxCoB,CAwCpB,EAxCuB,CAwCvB,EAxC0B,CAwC1B,CAAA;;AACW,cAtCzB,UAsCyB,EAtCb,OAsCa;;;;AACF,UAHnB,uBAGmB,CAAA,CAAA,EAAA,CAAA,EAAA,UAHqB,aAGrB,CAAA,CAAA;EAAnB,SAAA,EAFJ,aAEI,CAFU,CAEV,CAAA;EACW,iBAAA,EAFP,gBAEO,CAFU,CAEV,CAAA;EAAG,aAAA,EADd,YACc,CADD,CACC,EADE,CACF,EADK,CACL,CAAA;EAAG,SAAA,EAArB,cAAqB,CAAN,CAAM,EAAH,CAAG,EAAA,CAAA,CAAA;;;AAQlC;AAOA;;;AAG6B,KAVjB,uBAAA,GAA0B,yBAUT,GAAA;EAAG,SAAA,EAAA,IAAA;EAAyB,iBAAA,EAAA,IAAA;EAArD,aAAA,EAAA,IAAA;EAAwB,SAAA,EAAA,IAAA;;KAHhB,kCAEA,gBAAgB,mBACxB,uBAAyB,GAAG,yBAAyB"}
1
+ {"version":3,"file":"plugins.d.ts","names":[],"sources":["../../src/plugins.tsx"],"mappings":";;;;;;;;AAqCA;KAAY,gBAAA,MAAsB,CAAA,2BAC9B,YAAA,CAAa,CAAA;;cAIJ,mBAAA,EAAqB,OAAA;;;;KA0BtB,aAAA,MAAmB,CAAA;EAC7B,KAAA;EACA,GAAA;AAAA,IAEE,SAAA;;cAIS,gBAAA,EAAkB,OAAA;;AAlC/B;;KA+DY,aAAA,YAAyB,CAAA;EACnC,QAAA,EAAU,QAAA;EAAA,CACT,QAAA,CAAS,SAAA;EACV,MAAA;AAAA,KAGI,MAAA,UACQ,CAAA,qBAAsB,SAAA,OAE3B,SAAA;;cA4BI,eAAA,EAAiB,OAAA;;;;KA6DlB,kBAAA,MAAwB,CAAA,kBAChC,YAAA;EAEI,QAAA,EAAU,oBAAA;EAA8B,GAAA,GAAM,UAAA;AAAA;;cAKzC,oBAAA,EAAsB,OAAA;AAAA,KA+E9B,oBAAA,GAAuB,MAAA,SAAe,aAAA,QAAqB,WAAA;AAAA,KAEpD,YAAA,iBAA6B,aAAA,IAAiB,CAAA;EACxD,QAAA,EAAU,QAAA;EAAA,CACT,QAAA,CAAS,QAAA;EACV,QAAA;AAAA;EAGI,GAAA,GAAM,UAAA,GAAa,oBAAA,KAAyB,SAAA;EAC5C,QAAA,EAAU,oBAAA,CAAqB,CAAA,EAAG,CAAA;AAAA;AAAA,cAI3B,cAAA,EAAgB,OAAA;;;;KA2BjB,cAAA,YAA0B,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,CAAA;;cAGxC,UAAA,EAAY,OAAA;;;;UAiDR,uBAAA,iBAAwC,aAAA;EACvD,SAAA,EAAW,aAAA,CAAc,CAAA;EACzB,iBAAA,EAAmB,gBAAA,CAAiB,CAAA;EACpC,cAAA,EAAgB,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,CAAA;EACpC,aAAA,EAAe,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,CAAA;EAClC,SAAA,EAAW,cAAA,CAAe,CAAA,EAAG,CAAA,EAAG,CAAA;AAAA;;;;AArPlC;;KA6PY,uBAAA,GAA0B,yBAAA;EACpC,SAAA;EACA,iBAAA;EACA,cAAA;EACA,aAAA;EACA,SAAA;AAAA;AAAA,KAGU,oBAAA,cAEA,aAAA,GAAgB,eAAA,IACxB,sBAAA,CAAyB,CAAA,EAAG,uBAAA,EAAyB,CAAA"}