react-intlayer 8.1.2 → 8.1.3
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.
- package/dist/cjs/IntlayerNode.cjs +1 -17
- package/dist/cjs/IntlayerNode.cjs.map +1 -1
- package/dist/cjs/UI/ContentSelector.cjs +1 -96
- package/dist/cjs/UI/ContentSelector.cjs.map +1 -1
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -29
- package/dist/cjs/client/IntlayerProvider.cjs +1 -92
- package/dist/cjs/client/IntlayerProvider.cjs.map +1 -1
- package/dist/cjs/client/format/index.cjs +1 -20
- package/dist/cjs/client/format/useCompact.cjs +1 -29
- package/dist/cjs/client/format/useCompact.cjs.map +1 -1
- package/dist/cjs/client/format/useCurrency.cjs +1 -43
- package/dist/cjs/client/format/useCurrency.cjs.map +1 -1
- package/dist/cjs/client/format/useDate.cjs +1 -45
- package/dist/cjs/client/format/useDate.cjs.map +1 -1
- package/dist/cjs/client/format/useIntl.cjs +1 -45
- package/dist/cjs/client/format/useIntl.cjs.map +1 -1
- package/dist/cjs/client/format/useList.cjs +1 -40
- package/dist/cjs/client/format/useList.cjs.map +1 -1
- package/dist/cjs/client/format/useNumber.cjs +1 -41
- package/dist/cjs/client/format/useNumber.cjs.map +1 -1
- package/dist/cjs/client/format/usePercentage.cjs +1 -37
- package/dist/cjs/client/format/usePercentage.cjs.map +1 -1
- package/dist/cjs/client/format/useRelativeTime.cjs +1 -37
- package/dist/cjs/client/format/useRelativeTime.cjs.map +1 -1
- package/dist/cjs/client/format/useUnit.cjs +1 -36
- package/dist/cjs/client/format/useUnit.cjs.map +1 -1
- package/dist/cjs/client/index.cjs +1 -34
- package/dist/cjs/client/t.cjs +1 -40
- package/dist/cjs/client/t.cjs.map +1 -1
- package/dist/cjs/client/useDictionary.cjs +1 -27
- package/dist/cjs/client/useDictionary.cjs.map +1 -1
- package/dist/cjs/client/useDictionaryAsync.cjs +1 -24
- package/dist/cjs/client/useDictionaryAsync.cjs.map +1 -1
- package/dist/cjs/client/useDictionaryDynamic.cjs +1 -25
- package/dist/cjs/client/useDictionaryDynamic.cjs.map +1 -1
- package/dist/cjs/client/useI18n.cjs +1 -45
- package/dist/cjs/client/useI18n.cjs.map +1 -1
- package/dist/cjs/client/useIntlayer.cjs +1 -42
- package/dist/cjs/client/useIntlayer.cjs.map +1 -1
- package/dist/cjs/client/useLoadDynamic.cjs +1 -27
- package/dist/cjs/client/useLoadDynamic.cjs.map +1 -1
- package/dist/cjs/client/useLocale.cjs +1 -60
- package/dist/cjs/client/useLocale.cjs.map +1 -1
- package/dist/cjs/client/useLocaleBase.cjs +1 -26
- package/dist/cjs/client/useLocaleBase.cjs.map +1 -1
- package/dist/cjs/client/useLocaleStorage.cjs +1 -61
- package/dist/cjs/client/useLocaleStorage.cjs.map +1 -1
- package/dist/cjs/client/useRewriteURL.cjs +1 -42
- package/dist/cjs/client/useRewriteURL.cjs.map +1 -1
- package/dist/cjs/client/useTraduction.cjs +1 -35
- package/dist/cjs/client/useTraduction.cjs.map +1 -1
- package/dist/cjs/editor/ContentSelectorWrapper.cjs +1 -55
- package/dist/cjs/editor/ContentSelectorWrapper.cjs.map +1 -1
- package/dist/cjs/editor/IntlayerEditorProvider.cjs +1 -61
- package/dist/cjs/editor/IntlayerEditorProvider.cjs.map +1 -1
- package/dist/cjs/editor/index.cjs +1 -4
- package/dist/cjs/editor/useEditedContentRenderer.cjs +1 -40
- package/dist/cjs/editor/useEditedContentRenderer.cjs.map +1 -1
- package/dist/cjs/getDictionary.cjs +1 -19
- package/dist/cjs/getDictionary.cjs.map +1 -1
- package/dist/cjs/getIntlayer.cjs +1 -19
- package/dist/cjs/getIntlayer.cjs.map +1 -1
- package/dist/cjs/html/HTMLProvider.cjs +1 -18
- package/dist/cjs/html/HTMLProvider.cjs.map +1 -1
- package/dist/cjs/html/HTMLRenderer.cjs +1 -59
- package/dist/cjs/html/HTMLRenderer.cjs.map +1 -1
- package/dist/cjs/html/HTMLRendererPlugin.cjs +1 -36
- package/dist/cjs/html/HTMLRendererPlugin.cjs.map +1 -1
- package/dist/cjs/html/index.cjs +1 -12
- package/dist/cjs/index.cjs +1 -52
- package/dist/cjs/markdown/MarkdownProvider.cjs +1 -77
- package/dist/cjs/markdown/MarkdownProvider.cjs.map +1 -1
- package/dist/cjs/markdown/MarkdownRenderer.cjs +1 -199
- package/dist/cjs/markdown/MarkdownRenderer.cjs.map +1 -1
- package/dist/cjs/markdown/MarkdownRendererPlugin.cjs +1 -33
- package/dist/cjs/markdown/MarkdownRendererPlugin.cjs.map +1 -1
- package/dist/cjs/markdown/index.cjs +1 -25
- package/dist/cjs/markdown/processor.cjs +1 -66
- package/dist/cjs/markdown/processor.cjs.map +1 -1
- package/dist/cjs/markdown/runtime.cjs +1 -43
- package/dist/cjs/markdown/runtime.cjs.map +1 -1
- package/dist/cjs/plugins.cjs +1 -179
- package/dist/cjs/plugins.cjs.map +1 -1
- package/dist/cjs/reactElement/renderReactElement.cjs +1 -52
- package/dist/cjs/reactElement/renderReactElement.cjs.map +1 -1
- package/dist/cjs/server/IntlayerServerProvider.cjs +1 -34
- package/dist/cjs/server/IntlayerServerProvider.cjs.map +1 -1
- package/dist/cjs/server/format/index.cjs +1 -18
- package/dist/cjs/server/format/useCompact.cjs +1 -27
- package/dist/cjs/server/format/useCompact.cjs.map +1 -1
- package/dist/cjs/server/format/useCurrency.cjs +1 -38
- package/dist/cjs/server/format/useCurrency.cjs.map +1 -1
- package/dist/cjs/server/format/useDate.cjs +1 -43
- package/dist/cjs/server/format/useDate.cjs.map +1 -1
- package/dist/cjs/server/format/useIntl.cjs +1 -44
- package/dist/cjs/server/format/useIntl.cjs.map +1 -1
- package/dist/cjs/server/format/useList.cjs +1 -35
- package/dist/cjs/server/format/useList.cjs.map +1 -1
- package/dist/cjs/server/format/useNumber.cjs +1 -39
- package/dist/cjs/server/format/useNumber.cjs.map +1 -1
- package/dist/cjs/server/format/usePercentage.cjs +1 -35
- package/dist/cjs/server/format/usePercentage.cjs.map +1 -1
- package/dist/cjs/server/format/useRelativeTime.cjs +1 -35
- package/dist/cjs/server/format/useRelativeTime.cjs.map +1 -1
- package/dist/cjs/server/format/useUnit.cjs +1 -34
- package/dist/cjs/server/format/useUnit.cjs.map +1 -1
- package/dist/cjs/server/index.cjs +1 -24
- package/dist/cjs/server/serverContext.cjs +1 -58
- package/dist/cjs/server/serverContext.cjs.map +1 -1
- package/dist/cjs/server/t.cjs +1 -35
- package/dist/cjs/server/t.cjs.map +1 -1
- package/dist/cjs/server/useDictionary.cjs +1 -17
- package/dist/cjs/server/useDictionary.cjs.map +1 -1
- package/dist/cjs/server/useDictionaryAsync.cjs +1 -21
- package/dist/cjs/server/useDictionaryAsync.cjs.map +1 -1
- package/dist/cjs/server/useDictionaryDynamic.cjs +1 -22
- package/dist/cjs/server/useDictionaryDynamic.cjs.map +1 -1
- package/dist/cjs/server/useI18n.cjs +1 -38
- package/dist/cjs/server/useI18n.cjs.map +1 -1
- package/dist/cjs/server/useIntlayer.cjs +1 -17
- package/dist/cjs/server/useIntlayer.cjs.map +1 -1
- package/dist/cjs/server/useLoadDynamic.cjs +1 -14
- package/dist/cjs/server/useLoadDynamic.cjs.map +1 -1
- package/dist/cjs/server/useLocale.cjs +1 -24
- package/dist/cjs/server/useLocale.cjs.map +1 -1
- package/dist/esm/IntlayerNode.mjs +1 -15
- package/dist/esm/IntlayerNode.mjs.map +1 -1
- package/dist/esm/UI/ContentSelector.mjs +1 -94
- package/dist/esm/UI/ContentSelector.mjs.map +1 -1
- package/dist/esm/client/IntlayerProvider.mjs +1 -86
- package/dist/esm/client/IntlayerProvider.mjs.map +1 -1
- package/dist/esm/client/format/index.mjs +1 -11
- package/dist/esm/client/format/useCompact.mjs +1 -27
- package/dist/esm/client/format/useCompact.mjs.map +1 -1
- package/dist/esm/client/format/useCurrency.mjs +1 -41
- package/dist/esm/client/format/useCurrency.mjs.map +1 -1
- package/dist/esm/client/format/useDate.mjs +1 -43
- package/dist/esm/client/format/useDate.mjs.map +1 -1
- package/dist/esm/client/format/useIntl.mjs +1 -43
- package/dist/esm/client/format/useIntl.mjs.map +1 -1
- package/dist/esm/client/format/useList.mjs +1 -38
- package/dist/esm/client/format/useList.mjs.map +1 -1
- package/dist/esm/client/format/useNumber.mjs +1 -39
- package/dist/esm/client/format/useNumber.mjs.map +1 -1
- package/dist/esm/client/format/usePercentage.mjs +1 -35
- package/dist/esm/client/format/usePercentage.mjs.map +1 -1
- package/dist/esm/client/format/useRelativeTime.mjs +1 -35
- package/dist/esm/client/format/useRelativeTime.mjs.map +1 -1
- package/dist/esm/client/format/useUnit.mjs +1 -34
- package/dist/esm/client/format/useUnit.mjs.map +1 -1
- package/dist/esm/client/index.mjs +1 -14
- package/dist/esm/client/t.mjs +1 -38
- package/dist/esm/client/t.mjs.map +1 -1
- package/dist/esm/client/useDictionary.mjs +1 -25
- package/dist/esm/client/useDictionary.mjs.map +1 -1
- package/dist/esm/client/useDictionaryAsync.mjs +1 -21
- package/dist/esm/client/useDictionaryAsync.mjs.map +1 -1
- package/dist/esm/client/useDictionaryDynamic.mjs +1 -22
- package/dist/esm/client/useDictionaryDynamic.mjs.map +1 -1
- package/dist/esm/client/useI18n.mjs +1 -43
- package/dist/esm/client/useI18n.mjs.map +1 -1
- package/dist/esm/client/useIntlayer.mjs +1 -40
- package/dist/esm/client/useIntlayer.mjs.map +1 -1
- package/dist/esm/client/useLoadDynamic.mjs +1 -25
- package/dist/esm/client/useLoadDynamic.mjs.map +1 -1
- package/dist/esm/client/useLocale.mjs +1 -57
- package/dist/esm/client/useLocale.mjs.map +1 -1
- package/dist/esm/client/useLocaleBase.mjs +1 -23
- package/dist/esm/client/useLocaleBase.mjs.map +1 -1
- package/dist/esm/client/useLocaleStorage.mjs +1 -54
- package/dist/esm/client/useLocaleStorage.mjs.map +1 -1
- package/dist/esm/client/useRewriteURL.mjs +1 -39
- package/dist/esm/client/useRewriteURL.mjs.map +1 -1
- package/dist/esm/client/useTraduction.mjs +1 -33
- package/dist/esm/client/useTraduction.mjs.map +1 -1
- package/dist/esm/editor/ContentSelectorWrapper.mjs +1 -53
- package/dist/esm/editor/ContentSelectorWrapper.mjs.map +1 -1
- package/dist/esm/editor/IntlayerEditorProvider.mjs +1 -58
- package/dist/esm/editor/IntlayerEditorProvider.mjs.map +1 -1
- package/dist/esm/editor/index.mjs +1 -3
- package/dist/esm/editor/useEditedContentRenderer.mjs +1 -37
- package/dist/esm/editor/useEditedContentRenderer.mjs.map +1 -1
- package/dist/esm/getDictionary.mjs +1 -17
- package/dist/esm/getDictionary.mjs.map +1 -1
- package/dist/esm/getIntlayer.mjs +1 -17
- package/dist/esm/getIntlayer.mjs.map +1 -1
- package/dist/esm/html/HTMLProvider.mjs +1 -15
- package/dist/esm/html/HTMLProvider.mjs.map +1 -1
- package/dist/esm/html/HTMLRenderer.mjs +1 -54
- package/dist/esm/html/HTMLRenderer.mjs.map +1 -1
- package/dist/esm/html/HTMLRendererPlugin.mjs +1 -34
- package/dist/esm/html/HTMLRendererPlugin.mjs.map +1 -1
- package/dist/esm/html/index.mjs +1 -5
- package/dist/esm/index.mjs +1 -21
- package/dist/esm/markdown/MarkdownProvider.mjs +1 -74
- package/dist/esm/markdown/MarkdownProvider.mjs.map +1 -1
- package/dist/esm/markdown/MarkdownRenderer.mjs +1 -195
- package/dist/esm/markdown/MarkdownRenderer.mjs.map +1 -1
- package/dist/esm/markdown/MarkdownRendererPlugin.mjs +1 -30
- package/dist/esm/markdown/MarkdownRendererPlugin.mjs.map +1 -1
- package/dist/esm/markdown/index.mjs +1 -7
- package/dist/esm/markdown/processor.mjs +1 -58
- package/dist/esm/markdown/processor.mjs.map +1 -1
- package/dist/esm/markdown/runtime.mjs +1 -39
- package/dist/esm/markdown/runtime.mjs.map +1 -1
- package/dist/esm/plugins.mjs +1 -172
- package/dist/esm/plugins.mjs.map +1 -1
- package/dist/esm/reactElement/renderReactElement.mjs +1 -50
- package/dist/esm/reactElement/renderReactElement.mjs.map +1 -1
- package/dist/esm/server/IntlayerServerProvider.mjs +1 -28
- package/dist/esm/server/IntlayerServerProvider.mjs.map +1 -1
- package/dist/esm/server/format/index.mjs +1 -10
- package/dist/esm/server/format/useCompact.mjs +1 -25
- package/dist/esm/server/format/useCompact.mjs.map +1 -1
- package/dist/esm/server/format/useCurrency.mjs +1 -36
- package/dist/esm/server/format/useCurrency.mjs.map +1 -1
- package/dist/esm/server/format/useDate.mjs +1 -41
- package/dist/esm/server/format/useDate.mjs.map +1 -1
- package/dist/esm/server/format/useIntl.mjs +1 -41
- package/dist/esm/server/format/useIntl.mjs.map +1 -1
- package/dist/esm/server/format/useList.mjs +1 -33
- package/dist/esm/server/format/useList.mjs.map +1 -1
- package/dist/esm/server/format/useNumber.mjs +1 -37
- package/dist/esm/server/format/useNumber.mjs.map +1 -1
- package/dist/esm/server/format/usePercentage.mjs +1 -33
- package/dist/esm/server/format/usePercentage.mjs.map +1 -1
- package/dist/esm/server/format/useRelativeTime.mjs +1 -33
- package/dist/esm/server/format/useRelativeTime.mjs.map +1 -1
- package/dist/esm/server/format/useUnit.mjs +1 -32
- package/dist/esm/server/format/useUnit.mjs.map +1 -1
- package/dist/esm/server/index.mjs +1 -12
- package/dist/esm/server/serverContext.mjs +1 -54
- package/dist/esm/server/serverContext.mjs.map +1 -1
- package/dist/esm/server/t.mjs +1 -33
- package/dist/esm/server/t.mjs.map +1 -1
- package/dist/esm/server/useDictionary.mjs +1 -16
- package/dist/esm/server/useDictionary.mjs.map +1 -1
- package/dist/esm/server/useDictionaryAsync.mjs +1 -18
- package/dist/esm/server/useDictionaryAsync.mjs.map +1 -1
- package/dist/esm/server/useDictionaryDynamic.mjs +1 -19
- package/dist/esm/server/useDictionaryDynamic.mjs.map +1 -1
- package/dist/esm/server/useI18n.mjs +1 -37
- package/dist/esm/server/useI18n.mjs.map +1 -1
- package/dist/esm/server/useIntlayer.mjs +1 -16
- package/dist/esm/server/useIntlayer.mjs.map +1 -1
- package/dist/esm/server/useLoadDynamic.mjs +1 -11
- package/dist/esm/server/useLoadDynamic.mjs.map +1 -1
- package/dist/esm/server/useLocale.mjs +1 -21
- package/dist/esm/server/useLocale.mjs.map +1 -1
- package/dist/types/IntlayerNode.d.ts +1 -1
- package/dist/types/client/format/useDate.d.ts +1 -1
- package/dist/types/client/useDictionary.d.ts +2 -2
- package/dist/types/client/useDictionary.d.ts.map +1 -1
- package/dist/types/client/useDictionaryDynamic.d.ts +2 -2
- package/dist/types/client/useDictionaryDynamic.d.ts.map +1 -1
- package/dist/types/client/useI18n.d.ts +3 -3
- package/dist/types/client/useI18n.d.ts.map +1 -1
- package/dist/types/client/useIntlayer.d.ts +2 -2
- package/dist/types/client/useIntlayer.d.ts.map +1 -1
- package/dist/types/editor/ContentSelectorWrapper.d.ts +1 -1
- package/dist/types/editor/ContentSelectorWrapper.d.ts.map +1 -1
- package/dist/types/getDictionary.d.ts +1 -1
- package/dist/types/getIntlayer.d.ts +1 -1
- package/dist/types/getIntlayer.d.ts.map +1 -1
- package/dist/types/html/HTMLComponentTypes.d.ts +1 -1
- package/dist/types/html/HTMLRenderer.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/markdown/MarkdownRendererPlugin.d.ts.map +1 -1
- package/dist/types/markdown/processor.d.ts +1 -1
- package/dist/types/markdown/runtime.d.ts +1 -1
- package/dist/types/plugins.d.ts +1 -1
- package/dist/types/plugins.d.ts.map +1 -1
- package/dist/types/server/format/useCompact.d.ts +1 -1
- package/dist/types/server/format/useCurrency.d.ts +1 -1
- package/dist/types/server/format/useDate.d.ts +1 -1
- package/dist/types/server/format/useList.d.ts +1 -1
- package/dist/types/server/format/useNumber.d.ts +1 -1
- package/dist/types/server/format/usePercentage.d.ts +1 -1
- package/dist/types/server/format/useRelativeTime.d.ts +1 -1
- package/dist/types/server/format/useUnit.d.ts +1 -1
- package/dist/types/server/useDictionary.d.ts +2 -2
- package/dist/types/server/useDictionary.d.ts.map +1 -1
- package/dist/types/server/useDictionaryAsync.d.ts +2 -2
- package/dist/types/server/useDictionaryAsync.d.ts.map +1 -1
- package/dist/types/server/useDictionaryDynamic.d.ts +2 -2
- package/dist/types/server/useDictionaryDynamic.d.ts.map +1 -1
- package/dist/types/server/useI18n.d.ts +3 -3
- package/dist/types/server/useI18n.d.ts.map +1 -1
- package/dist/types/server/useIntlayer.d.ts +2 -2
- package/dist/types/server/useIntlayer.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -1,59 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { useEffect } from "react";
|
|
4
|
-
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
import { EditorProvider, useCrossURLPathSetter, useDictionariesRecordActions, useEditorEnabled, useIframeClickInterceptor } from "@intlayer/editor-react";
|
|
6
|
-
import configuration from "@intlayer/config/built";
|
|
7
|
-
|
|
8
|
-
//#region src/editor/IntlayerEditorProvider.tsx
|
|
9
|
-
const IntlayerEditorHooksEnabled = () => {
|
|
10
|
-
/**
|
|
11
|
-
* URL Messages
|
|
12
|
-
*/
|
|
13
|
-
useCrossURLPathSetter();
|
|
14
|
-
/**
|
|
15
|
-
* Click Messages
|
|
16
|
-
*/
|
|
17
|
-
useIframeClickInterceptor();
|
|
18
|
-
/**
|
|
19
|
-
* Sent local dictionaries to editor
|
|
20
|
-
*/
|
|
21
|
-
const { setLocaleDictionaries } = useDictionariesRecordActions();
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
import("@intlayer/unmerged-dictionaries-entry").then((mod) => {
|
|
24
|
-
const unmergedDictionaries = mod.getUnmergedDictionaries();
|
|
25
|
-
const dictionariesList = Object.fromEntries(Object.values(unmergedDictionaries).flat().map((dictionary) => [dictionary.localId, dictionary]));
|
|
26
|
-
setLocaleDictionaries?.(dictionariesList);
|
|
27
|
-
});
|
|
28
|
-
}, []);
|
|
29
|
-
return /* @__PURE__ */ jsx(Fragment$1, {});
|
|
30
|
-
};
|
|
31
|
-
const { editor } = configuration ?? {};
|
|
32
|
-
const IntlayerEditorHook = () => {
|
|
33
|
-
const { enabled } = useEditorEnabled();
|
|
34
|
-
return enabled ? /* @__PURE__ */ jsx(IntlayerEditorHooksEnabled, {}) : /* @__PURE__ */ jsx(Fragment$1, {});
|
|
35
|
-
};
|
|
36
|
-
const IntlayerEditorProvider = ({ children }) => {
|
|
37
|
-
return /* @__PURE__ */ jsxs(EditorProvider, {
|
|
38
|
-
postMessage: (data) => {
|
|
39
|
-
if (typeof window === "undefined") return;
|
|
40
|
-
if (!editor) return;
|
|
41
|
-
if (!(window.self !== window.top)) return;
|
|
42
|
-
if (editor.applicationURL.length > 0) window?.postMessage(data, editor.applicationURL);
|
|
43
|
-
if (editor.editorURL.length > 0) window.parent?.postMessage(data, editor.editorURL);
|
|
44
|
-
if (editor.cmsURL.length > 0) window.parent?.postMessage(data, editor.cmsURL);
|
|
45
|
-
},
|
|
46
|
-
allowedOrigins: [
|
|
47
|
-
editor?.editorURL,
|
|
48
|
-
editor?.cmsURL,
|
|
49
|
-
editor?.applicationURL
|
|
50
|
-
].filter(Boolean),
|
|
51
|
-
mode: "client",
|
|
52
|
-
configuration,
|
|
53
|
-
children: [/* @__PURE__ */ jsx(IntlayerEditorHook, {}), children]
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
//#endregion
|
|
58
|
-
export { IntlayerEditorProvider };
|
|
1
|
+
"use client";import{useEffect as e}from"react";import{Fragment as t,jsx as n,jsxs as r}from"react/jsx-runtime";import{EditorProvider as i,useCrossURLPathSetter as a,useDictionariesRecordActions as o,useEditorEnabled as s,useIframeClickInterceptor as c}from"@intlayer/editor-react";import l from"@intlayer/config/built";const u=()=>{a(),c();let{setLocaleDictionaries:r}=o();return e(()=>{import(`@intlayer/unmerged-dictionaries-entry`).then(e=>{let t=e.getUnmergedDictionaries(),n=Object.fromEntries(Object.values(t).flat().map(e=>[e.localId,e]));r?.(n)})},[]),n(t,{})},{editor:d}=l??{},f=()=>{let{enabled:e}=s();return n(e?u:t,{})},p=({children:e})=>r(i,{postMessage:e=>{typeof window>`u`||d&&window.self!==window.top&&(d.applicationURL.length>0&&window?.postMessage(e,d.applicationURL),d.editorURL.length>0&&window.parent?.postMessage(e,d.editorURL),d.cmsURL.length>0&&window.parent?.postMessage(e,d.cmsURL))},allowedOrigins:[d?.editorURL,d?.cmsURL,d?.applicationURL].filter(Boolean),mode:`client`,configuration:l,children:[n(f,{}),e]});export{p as IntlayerEditorProvider};
|
|
59
2
|
//# sourceMappingURL=IntlayerEditorProvider.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntlayerEditorProvider.mjs","names":[],"sources":["../../../src/editor/IntlayerEditorProvider.tsx"],"sourcesContent":["'use client';\n\nimport configuration from '@intlayer/config/built';\nimport {\n EditorProvider,\n useCrossURLPathSetter,\n useDictionariesRecordActions,\n useEditorEnabled,\n useIframeClickInterceptor,\n} from '@intlayer/editor-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { useEffect } from 'react';\n\nconst IntlayerEditorHooksEnabled: FC = () => {\n /**\n * URL Messages\n */\n useCrossURLPathSetter();\n\n /**\n * Click Messages\n */\n useIframeClickInterceptor();\n\n /**\n * Sent local dictionaries to editor\n */\n const { setLocaleDictionaries } = useDictionariesRecordActions();\n useEffect(() => {\n // Load dictionaries dynamically to do not impact the bundle, and send them to the editor\n import('@intlayer/unmerged-dictionaries-entry').then((mod) => {\n const unmergedDictionaries = mod.getUnmergedDictionaries();\n const dictionariesList = Object.fromEntries(\n Object.values(unmergedDictionaries)\n .flat()\n .map((dictionary) => [dictionary.localId, dictionary])\n );\n\n setLocaleDictionaries?.(dictionariesList);\n });\n }, []);\n\n return <></>;\n};\n\nconst { editor } = configuration ?? {};\n\nconst IntlayerEditorHook: FC = () => {\n const { enabled } = useEditorEnabled();\n\n return enabled ? <IntlayerEditorHooksEnabled /> : <></>;\n};\n\nexport const IntlayerEditorProvider: FC<PropsWithChildren> = ({ children }) => {\n return (\n <EditorProvider\n postMessage={(data: any) => {\n if (typeof window === 'undefined') return;\n if (!editor) return;\n\n const isInIframe = window.self !== window.top;\n if (!isInIframe) return;\n\n if (editor.applicationURL.length > 0) {\n window?.postMessage(\n data,\n // Use to restrict the origin of the editor for security reasons.\n // Correspond to the current application URL to synchronize the locales states.\n editor.applicationURL\n );\n }\n\n if (editor.editorURL.length > 0) {\n window.parent?.postMessage(\n data,\n // Use to restrict the origin of the editor for security reasons.\n // Correspond to the editor URL to synchronize the locales states.\n editor.editorURL\n );\n }\n\n if (editor.cmsURL.length > 0) {\n window.parent?.postMessage(\n data,\n // Use to restrict the origin of the CMS for security reasons.\n // Correspond to the CMS URL.\n editor.cmsURL\n );\n }\n }}\n allowedOrigins={\n [editor?.editorURL, editor?.cmsURL, editor?.applicationURL].filter(\n Boolean\n ) as string[]\n }\n mode=\"client\"\n configuration={configuration}\n >\n <IntlayerEditorHook />\n {children}\n </EditorProvider>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IntlayerEditorProvider.mjs","names":[],"sources":["../../../src/editor/IntlayerEditorProvider.tsx"],"sourcesContent":["'use client';\n\nimport configuration from '@intlayer/config/built';\nimport {\n EditorProvider,\n useCrossURLPathSetter,\n useDictionariesRecordActions,\n useEditorEnabled,\n useIframeClickInterceptor,\n} from '@intlayer/editor-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { useEffect } from 'react';\n\nconst IntlayerEditorHooksEnabled: FC = () => {\n /**\n * URL Messages\n */\n useCrossURLPathSetter();\n\n /**\n * Click Messages\n */\n useIframeClickInterceptor();\n\n /**\n * Sent local dictionaries to editor\n */\n const { setLocaleDictionaries } = useDictionariesRecordActions();\n useEffect(() => {\n // Load dictionaries dynamically to do not impact the bundle, and send them to the editor\n import('@intlayer/unmerged-dictionaries-entry').then((mod) => {\n const unmergedDictionaries = mod.getUnmergedDictionaries();\n const dictionariesList = Object.fromEntries(\n Object.values(unmergedDictionaries)\n .flat()\n .map((dictionary) => [dictionary.localId, dictionary])\n );\n\n setLocaleDictionaries?.(dictionariesList);\n });\n }, []);\n\n return <></>;\n};\n\nconst { editor } = configuration ?? {};\n\nconst IntlayerEditorHook: FC = () => {\n const { enabled } = useEditorEnabled();\n\n return enabled ? <IntlayerEditorHooksEnabled /> : <></>;\n};\n\nexport const IntlayerEditorProvider: FC<PropsWithChildren> = ({ children }) => {\n return (\n <EditorProvider\n postMessage={(data: any) => {\n if (typeof window === 'undefined') return;\n if (!editor) return;\n\n const isInIframe = window.self !== window.top;\n if (!isInIframe) return;\n\n if (editor.applicationURL.length > 0) {\n window?.postMessage(\n data,\n // Use to restrict the origin of the editor for security reasons.\n // Correspond to the current application URL to synchronize the locales states.\n editor.applicationURL\n );\n }\n\n if (editor.editorURL.length > 0) {\n window.parent?.postMessage(\n data,\n // Use to restrict the origin of the editor for security reasons.\n // Correspond to the editor URL to synchronize the locales states.\n editor.editorURL\n );\n }\n\n if (editor.cmsURL.length > 0) {\n window.parent?.postMessage(\n data,\n // Use to restrict the origin of the CMS for security reasons.\n // Correspond to the CMS URL.\n editor.cmsURL\n );\n }\n }}\n allowedOrigins={\n [editor?.editorURL, editor?.cmsURL, editor?.applicationURL].filter(\n Boolean\n ) as string[]\n }\n mode=\"client\"\n configuration={configuration}\n >\n <IntlayerEditorHook />\n {children}\n </EditorProvider>\n );\n};\n"],"mappings":"+TAaA,MAAM,MAAuC,CAI3C,GAAuB,CAKvB,GAA2B,CAK3B,GAAM,CAAE,yBAA0B,GAA8B,CAehE,OAdA,MAAgB,CAEd,OAAO,yCAAyC,KAAM,GAAQ,CAC5D,IAAM,EAAuB,EAAI,yBAAyB,CACpD,EAAmB,OAAO,YAC9B,OAAO,OAAO,EAAqB,CAChC,MAAM,CACN,IAAK,GAAe,CAAC,EAAW,QAAS,EAAW,CAAC,CACzD,CAED,IAAwB,EAAiB,EACzC,EACD,EAAE,CAAC,CAEC,EAAA,EAAA,EAAA,CAAK,EAGR,CAAE,UAAW,GAAiB,EAAE,CAEhC,MAA+B,CACnC,GAAM,CAAE,WAAY,GAAkB,CAEtC,OAAiB,EAAV,EAAW,EAAgC,EAAhC,EAAA,CAAqC,EAG5C,GAAiD,CAAE,cAE5D,EAAC,EAAA,CACC,YAAc,GAAc,CACtB,OAAO,OAAW,KACjB,GAEc,OAAO,OAAS,OAAO,MAGtC,EAAO,eAAe,OAAS,GACjC,QAAQ,YACN,EAGA,EAAO,eACR,CAGC,EAAO,UAAU,OAAS,GAC5B,OAAO,QAAQ,YACb,EAGA,EAAO,UACR,CAGC,EAAO,OAAO,OAAS,GACzB,OAAO,QAAQ,YACb,EAGA,EAAO,OACR,GAGL,eACE,CAAC,GAAQ,UAAW,GAAQ,OAAQ,GAAQ,eAAe,CAAC,OAC1D,QACD,CAEH,KAAK,SACU,0BAEf,EAAC,EAAA,EAAA,CAAqB,CACrB,EAAA,EACc"}
|
|
@@ -1,38 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { ContentSelectorRenderer } from "./ContentSelectorWrapper.mjs";
|
|
4
|
-
import { createElement } from "react";
|
|
5
|
-
import { getContent } from "@intlayer/core";
|
|
6
|
-
import { useEditedContentActions } from "@intlayer/editor-react";
|
|
7
|
-
|
|
8
|
-
//#region src/editor/useEditedContentRenderer.tsx
|
|
9
|
-
const useEditedContentRenderer = ({ dictionaryKey, keyPath, children }) => {
|
|
10
|
-
const editedContentContext = useEditedContentActions();
|
|
11
|
-
if (editedContentContext) return editedContentContext.getEditedContentValue(dictionaryKey, keyPath) ?? children;
|
|
12
|
-
return children;
|
|
13
|
-
};
|
|
14
|
-
const EditedContentRenderer = (props) => {
|
|
15
|
-
const content = useEditedContentRenderer(props);
|
|
16
|
-
if (typeof content === "object") {
|
|
17
|
-
const transformedEditedContent = getContent(content, props, props.locale);
|
|
18
|
-
if (typeof transformedEditedContent !== "string") {
|
|
19
|
-
console.error(`Incorrect edited content format. Content type: ${typeof transformedEditedContent}. Expected string. Value ${JSON.stringify(transformedEditedContent)}`);
|
|
20
|
-
return /* @__PURE__ */ createElement(ContentSelectorRenderer, {
|
|
21
|
-
...props,
|
|
22
|
-
key: props.children
|
|
23
|
-
}, props.children);
|
|
24
|
-
}
|
|
25
|
-
return /* @__PURE__ */ createElement(ContentSelectorRenderer, {
|
|
26
|
-
...props,
|
|
27
|
-
key: props.children
|
|
28
|
-
}, transformedEditedContent);
|
|
29
|
-
}
|
|
30
|
-
return /* @__PURE__ */ createElement(ContentSelectorRenderer, {
|
|
31
|
-
...props,
|
|
32
|
-
key: props.children
|
|
33
|
-
}, content);
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
//#endregion
|
|
37
|
-
export { EditedContentRenderer, useEditedContentRenderer };
|
|
1
|
+
"use client";import{ContentSelectorRenderer as e}from"./ContentSelectorWrapper.mjs";import{createElement as t}from"react";import{getContent as n}from"@intlayer/core/interpreter";import{useEditedContentActions as r}from"@intlayer/editor-react";const i=({dictionaryKey:e,keyPath:t,children:n})=>{let i=r();return i?i.getEditedContentValue(e,t)??n:n},a=r=>{let a=i(r);if(typeof a==`object`){let i=n(a,r,r.locale);return typeof i==`string`?t(e,{...r,key:r.children},i):(console.error(`Incorrect edited content format. Content type: ${typeof i}. Expected string. Value ${JSON.stringify(i)}`),t(e,{...r,key:r.children},r.children))}return t(e,{...r,key:r.children},a)};export{a as EditedContentRenderer,i as useEditedContentRenderer};
|
|
38
2
|
//# sourceMappingURL=useEditedContentRenderer.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditedContentRenderer.mjs","names":[],"sources":["../../../src/editor/useEditedContentRenderer.tsx"],"sourcesContent":["'use client';\n\nimport { getContent } from '@intlayer/core';\nimport { useEditedContentActions } from '@intlayer/editor-react';\nimport type { KeyPath, Locale } from '@intlayer/types';\nimport type { FC } from 'react';\nimport { ContentSelectorRenderer } from './ContentSelectorWrapper';\n\ntype EditedContentRendererProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n children: string;\n locale?: Locale;\n};\n\nexport const useEditedContentRenderer = ({\n dictionaryKey,\n keyPath,\n children,\n}: EditedContentRendererProps) => {\n const editedContentContext = useEditedContentActions();\n\n if (editedContentContext) {\n const editedValue = editedContentContext.getEditedContentValue(\n dictionaryKey,\n keyPath\n ) as string;\n\n const value = editedValue ?? children;\n\n return value;\n }\n\n return children;\n};\n\nexport const EditedContentRenderer: FC<EditedContentRendererProps> = (\n props\n) => {\n const content = useEditedContentRenderer(props);\n\n if (typeof content === 'object') {\n const transformedEditedContent = getContent(content, props, props.locale);\n\n if (typeof transformedEditedContent !== 'string') {\n console.error(\n `Incorrect edited content format. Content type: ${typeof transformedEditedContent}. Expected string. Value ${JSON.stringify(transformedEditedContent)}`\n );\n\n return (\n <ContentSelectorRenderer {...props} key={props.children}>\n {props.children}\n </ContentSelectorRenderer>\n );\n }\n\n return (\n <ContentSelectorRenderer {...props} key={props.children}>\n {transformedEditedContent}\n </ContentSelectorRenderer>\n );\n }\n\n return (\n <ContentSelectorRenderer {...props} key={props.children}>\n {content}\n </ContentSelectorRenderer>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useEditedContentRenderer.mjs","names":[],"sources":["../../../src/editor/useEditedContentRenderer.tsx"],"sourcesContent":["'use client';\n\nimport { getContent } from '@intlayer/core/interpreter';\nimport { useEditedContentActions } from '@intlayer/editor-react';\nimport type { KeyPath, Locale } from '@intlayer/types';\nimport type { FC } from 'react';\nimport { ContentSelectorRenderer } from './ContentSelectorWrapper';\n\ntype EditedContentRendererProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n children: string;\n locale?: Locale;\n};\n\nexport const useEditedContentRenderer = ({\n dictionaryKey,\n keyPath,\n children,\n}: EditedContentRendererProps) => {\n const editedContentContext = useEditedContentActions();\n\n if (editedContentContext) {\n const editedValue = editedContentContext.getEditedContentValue(\n dictionaryKey,\n keyPath\n ) as string;\n\n const value = editedValue ?? children;\n\n return value;\n }\n\n return children;\n};\n\nexport const EditedContentRenderer: FC<EditedContentRendererProps> = (\n props\n) => {\n const content = useEditedContentRenderer(props);\n\n if (typeof content === 'object') {\n const transformedEditedContent = getContent(content, props, props.locale);\n\n if (typeof transformedEditedContent !== 'string') {\n console.error(\n `Incorrect edited content format. Content type: ${typeof transformedEditedContent}. Expected string. Value ${JSON.stringify(transformedEditedContent)}`\n );\n\n return (\n <ContentSelectorRenderer {...props} key={props.children}>\n {props.children}\n </ContentSelectorRenderer>\n );\n }\n\n return (\n <ContentSelectorRenderer {...props} key={props.children}>\n {transformedEditedContent}\n </ContentSelectorRenderer>\n );\n }\n\n return (\n <ContentSelectorRenderer {...props} key={props.children}>\n {content}\n </ContentSelectorRenderer>\n );\n};\n"],"mappings":"mPAeA,MAAa,GAA4B,CACvC,gBACA,UACA,cACgC,CAChC,IAAM,EAAuB,GAAyB,CAatD,OAXI,EACkB,EAAqB,sBACvC,EACA,EACD,EAE4B,EAKxB,GAGI,EACX,GACG,CACH,IAAM,EAAU,EAAyB,EAAM,CAE/C,GAAI,OAAO,GAAY,SAAU,CAC/B,IAAM,EAA2B,EAAW,EAAS,EAAO,EAAM,OAAO,CAczE,OAZI,OAAO,GAA6B,SAatC,EAAC,EAAA,CAAwB,GAAI,EAAO,IAAK,EAAM,UAC5C,EACuB,EAd1B,QAAQ,MACN,kDAAkD,OAAO,EAAyB,2BAA2B,KAAK,UAAU,EAAyB,GACtJ,CAGC,EAAC,EAAA,CAAwB,GAAI,EAAO,IAAK,EAAM,UAC5C,EAAM,SACiB,EAWhC,OACE,EAAC,EAAA,CAAwB,GAAI,EAAO,IAAK,EAAM,UAC5C,EACuB"}
|
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { getDictionary as getDictionary$1 } from "@intlayer/core";
|
|
3
|
-
|
|
4
|
-
//#region src/getDictionary.ts
|
|
5
|
-
const getDictionary = (dictionary, locale, additionalPlugins) => {
|
|
6
|
-
return getDictionary$1(dictionary, locale, [
|
|
7
|
-
intlayerNodePlugins,
|
|
8
|
-
reactNodePlugins,
|
|
9
|
-
insertionPlugin,
|
|
10
|
-
markdownPlugin,
|
|
11
|
-
htmlPlugin,
|
|
12
|
-
...additionalPlugins ?? []
|
|
13
|
-
]);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
//#endregion
|
|
17
|
-
export { getDictionary };
|
|
1
|
+
import{htmlPlugin as e,insertionPlugin as t,intlayerNodePlugins as n,markdownPlugin as r,reactNodePlugins as i}from"./plugins.mjs";import{getDictionary as a}from"@intlayer/core/interpreter";const o=(o,s,c)=>a(o,s,[n,i,t,r,e,...c??[]]);export{o as getDictionary};
|
|
18
2
|
//# sourceMappingURL=getDictionary.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDictionary.mjs","names":["getDictionaryCore"],"sources":["../../src/getDictionary.ts"],"sourcesContent":["import {\n getDictionary as getDictionaryCore,\n type Plugins,\n} from '@intlayer/core';\nimport type {\n DeclaredLocales,\n Dictionary,\n LocalesValues,\n} from '@intlayer/types';\nimport {\n type DeepTransformContent,\n htmlPlugin,\n insertionPlugin,\n intlayerNodePlugins,\n markdownPlugin,\n reactNodePlugins,\n} from './plugins';\n\nexport const getDictionary = <\n T extends Dictionary,\n L extends LocalesValues = DeclaredLocales,\n>(\n dictionary: T,\n locale?: L,\n additionalPlugins?: Plugins[]\n): DeepTransformContent<T['content'], L> => {\n const plugins: Plugins[] = [\n intlayerNodePlugins,\n reactNodePlugins,\n insertionPlugin,\n markdownPlugin,\n htmlPlugin,\n ...(additionalPlugins ?? []),\n ];\n\n return getDictionaryCore(dictionary, locale, plugins) as any;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDictionary.mjs","names":["getDictionaryCore"],"sources":["../../src/getDictionary.ts"],"sourcesContent":["import {\n getDictionary as getDictionaryCore,\n type Plugins,\n} from '@intlayer/core/interpreter';\nimport type {\n DeclaredLocales,\n Dictionary,\n LocalesValues,\n} from '@intlayer/types';\nimport {\n type DeepTransformContent,\n htmlPlugin,\n insertionPlugin,\n intlayerNodePlugins,\n markdownPlugin,\n reactNodePlugins,\n} from './plugins';\n\nexport const getDictionary = <\n T extends Dictionary,\n L extends LocalesValues = DeclaredLocales,\n>(\n dictionary: T,\n locale?: L,\n additionalPlugins?: Plugins[]\n): DeepTransformContent<T['content'], L> => {\n const plugins: Plugins[] = [\n intlayerNodePlugins,\n reactNodePlugins,\n insertionPlugin,\n markdownPlugin,\n htmlPlugin,\n ...(additionalPlugins ?? []),\n ];\n\n return getDictionaryCore(dictionary, locale, plugins) as any;\n};\n"],"mappings":"8LAkBA,MAAa,GAIX,EACA,EACA,IAWOA,EAAkB,EAAY,EATV,CACzB,EACA,EACA,EACA,EACA,EACA,GAAI,GAAqB,EAAE,CAC5B,CAEoD"}
|
package/dist/esm/getIntlayer.mjs
CHANGED
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { getIntlayer as getIntlayer$1 } from "@intlayer/core";
|
|
3
|
-
|
|
4
|
-
//#region src/getIntlayer.ts
|
|
5
|
-
const getIntlayer = (key, locale, additionalPlugins) => {
|
|
6
|
-
return getIntlayer$1(key, locale, [
|
|
7
|
-
intlayerNodePlugins,
|
|
8
|
-
reactNodePlugins,
|
|
9
|
-
insertionPlugin,
|
|
10
|
-
markdownPlugin,
|
|
11
|
-
htmlPlugin,
|
|
12
|
-
...additionalPlugins ?? []
|
|
13
|
-
]);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
//#endregion
|
|
17
|
-
export { getIntlayer };
|
|
1
|
+
import{htmlPlugin as e,insertionPlugin as t,intlayerNodePlugins as n,markdownPlugin as r,reactNodePlugins as i}from"./plugins.mjs";import{getIntlayer as a}from"@intlayer/core/interpreter";const o=(o,s,c)=>a(o,s,[n,i,t,r,e,...c??[]]);export{o as getIntlayer};
|
|
18
2
|
//# sourceMappingURL=getIntlayer.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getIntlayer.mjs","names":["getIntlayerCore"],"sources":["../../src/getIntlayer.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"getIntlayer.mjs","names":["getIntlayerCore"],"sources":["../../src/getIntlayer.ts"],"sourcesContent":["import {\n getIntlayer as getIntlayerCore,\n type Plugins,\n} from '@intlayer/core/interpreter';\nimport type {\n DeclaredLocales,\n DictionaryKeys,\n DictionaryRegistryContent,\n LocalesValues,\n} from '@intlayer/types';\nimport {\n type DeepTransformContent,\n htmlPlugin,\n insertionPlugin,\n intlayerNodePlugins,\n markdownPlugin,\n reactNodePlugins,\n} from './plugins';\n\nexport const getIntlayer = <\n T extends DictionaryKeys,\n L extends LocalesValues = DeclaredLocales,\n>(\n key: T,\n locale?: L,\n additionalPlugins?: Plugins[]\n): DeepTransformContent<DictionaryRegistryContent<T>, L> => {\n const plugins: Plugins[] = [\n intlayerNodePlugins,\n reactNodePlugins,\n insertionPlugin,\n markdownPlugin,\n htmlPlugin,\n ...(additionalPlugins ?? []),\n ];\n\n return getIntlayerCore(key, locale, plugins) as any;\n};\n"],"mappings":"4LAmBA,MAAa,GAIX,EACA,EACA,IAWOA,EAAgB,EAAK,EATD,CACzB,EACA,EACA,EACA,EACA,EACA,GAAI,GAAqB,EAAE,CAC5B,CAE2C"}
|
|
@@ -1,16 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { createContext, useContext } from "react";
|
|
4
|
-
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
|
|
6
|
-
//#region src/html/HTMLProvider.tsx
|
|
7
|
-
const HTMLContext = createContext(void 0);
|
|
8
|
-
const useHTMLContext = () => useContext(HTMLContext);
|
|
9
|
-
const HTMLProvider = ({ children, components }) => /* @__PURE__ */ jsx(HTMLContext.Provider, {
|
|
10
|
-
value: { components },
|
|
11
|
-
children
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
export { HTMLProvider, useHTMLContext };
|
|
1
|
+
"use client";import{createContext as e,useContext as t}from"react";import{jsx as n}from"react/jsx-runtime";const r=e(void 0),i=()=>t(r),a=({children:e,components:t})=>n(r.Provider,{value:{components:t},children:e});export{a as HTMLProvider,i as useHTMLContext};
|
|
16
2
|
//# sourceMappingURL=HTMLProvider.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HTMLProvider.mjs","names":[],"sources":["../../../src/html/HTMLProvider.tsx"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n type FC,\n type PropsWithChildren,\n useContext,\n} from 'react';\nimport type { HTMLComponents } from './HTMLComponentTypes';\n\ntype HTMLContextValue = {\n components?: HTMLComponents<'permissive', {}>;\n};\n\ntype HTMLProviderProps = PropsWithChildren<{\n /**\n * Component overrides for HTML tags.\n */\n components?: HTMLComponents<'permissive', {}>;\n}>;\n\nconst HTMLContext = createContext<HTMLContextValue | undefined>(undefined);\n\nexport const useHTMLContext = () => useContext(HTMLContext);\n\nexport const HTMLProvider: FC<HTMLProviderProps> = ({\n children,\n components,\n}) => (\n <HTMLContext.Provider value={{ components }}>{children}</HTMLContext.Provider>\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"HTMLProvider.mjs","names":[],"sources":["../../../src/html/HTMLProvider.tsx"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n type FC,\n type PropsWithChildren,\n useContext,\n} from 'react';\nimport type { HTMLComponents } from './HTMLComponentTypes';\n\ntype HTMLContextValue = {\n components?: HTMLComponents<'permissive', {}>;\n};\n\ntype HTMLProviderProps = PropsWithChildren<{\n /**\n * Component overrides for HTML tags.\n */\n components?: HTMLComponents<'permissive', {}>;\n}>;\n\nconst HTMLContext = createContext<HTMLContextValue | undefined>(undefined);\n\nexport const useHTMLContext = () => useContext(HTMLContext);\n\nexport const HTMLProvider: FC<HTMLProviderProps> = ({\n children,\n components,\n}) => (\n <HTMLContext.Provider value={{ components }}>{children}</HTMLContext.Provider>\n);\n"],"mappings":"2GAqBA,MAAM,EAAc,EAA4C,IAAA,GAAU,CAE7D,MAAuB,EAAW,EAAY,CAE9C,GAAuC,CAClD,WACA,gBAEA,EAAC,EAAY,SAAA,CAAS,MAAO,CAAE,aAAY,CAAG,YAAgC"}
|
|
@@ -1,55 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { useHTMLContext } from "./HTMLProvider.mjs";
|
|
4
|
-
import { Fragment, createElement } from "react";
|
|
5
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
import { HTML_TAGS, getHTML } from "@intlayer/core";
|
|
7
|
-
|
|
8
|
-
//#region src/html/HTMLRenderer.tsx
|
|
9
|
-
const createDefaultHTMLComponents = () => {
|
|
10
|
-
const components = {};
|
|
11
|
-
for (const tag of HTML_TAGS) components[tag] = ({ children, ...props }) => createElement(tag, props, children);
|
|
12
|
-
return components;
|
|
13
|
-
};
|
|
14
|
-
const defaultHTMLComponents = createDefaultHTMLComponents();
|
|
15
|
-
/**
|
|
16
|
-
* Renders HTML-like content to JSX with the provided components.
|
|
17
|
-
*
|
|
18
|
-
* This function does not use context from HTMLProvider. Use `useHTMLRenderer`
|
|
19
|
-
* hook if you want to leverage provider context.
|
|
20
|
-
*/
|
|
21
|
-
const renderHTML = (content, { components } = {}) => {
|
|
22
|
-
const mergedComponents = {
|
|
23
|
-
...defaultHTMLComponents,
|
|
24
|
-
...components
|
|
25
|
-
};
|
|
26
|
-
return /* @__PURE__ */ jsx(Fragment, { children: getHTML(content, Object.fromEntries(Object.entries(mergedComponents).filter(([, Component]) => Component).map(([key, Component]) => [key, (props) => createElement(Component, props)]))) });
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Hook that returns a function to render HTML content.
|
|
30
|
-
*
|
|
31
|
-
* This hook considers the configuration from the `HTMLProvider` context if available,
|
|
32
|
-
* falling back to the provided components.
|
|
33
|
-
*/
|
|
34
|
-
const useHTMLRenderer = ({ components } = {}) => {
|
|
35
|
-
const context = useHTMLContext();
|
|
36
|
-
return (content) => {
|
|
37
|
-
return renderHTML(content, { components: {
|
|
38
|
-
...context?.components,
|
|
39
|
-
...components
|
|
40
|
-
} });
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* React component that renders HTML-like content to JSX.
|
|
45
|
-
*
|
|
46
|
-
* This component uses the components from the `HTMLProvider` context
|
|
47
|
-
* if available.
|
|
48
|
-
*/
|
|
49
|
-
const HTMLRenderer = ({ children = "", components }) => {
|
|
50
|
-
return useHTMLRenderer({ components })(children);
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
//#endregion
|
|
54
|
-
export { HTMLRenderer, defaultHTMLComponents, renderHTML, useHTMLRenderer };
|
|
1
|
+
"use client";import{useHTMLContext as e}from"./HTMLProvider.mjs";import{Fragment as t,createElement as n}from"react";import{jsx as r}from"react/jsx-runtime";import{getHTML as i}from"@intlayer/core/interpreter";import{HTML_TAGS as a}from"@intlayer/core/transpiler";const o=(()=>{let e={};for(let t of a)e[t]=({children:e,...r})=>n(t,r,e);return e})(),s=(e,{components:a}={})=>{let s={...o,...a};return r(t,{children:i(e,Object.fromEntries(Object.entries(s).filter(([,e])=>e).map(([e,t])=>[e,e=>n(t,e)])))})},c=({components:t}={})=>{let n=e();return e=>s(e,{components:{...n?.components,...t}})},l=({children:e=``,components:t})=>c({components:t})(e);export{l as HTMLRenderer,o as defaultHTMLComponents,s as renderHTML,c as useHTMLRenderer};
|
|
55
2
|
//# sourceMappingURL=HTMLRenderer.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HTMLRenderer.mjs","names":[],"sources":["../../../src/html/HTMLRenderer.tsx"],"sourcesContent":["'use client';\n\nimport { getHTML
|
|
1
|
+
{"version":3,"file":"HTMLRenderer.mjs","names":[],"sources":["../../../src/html/HTMLRenderer.tsx"],"sourcesContent":["'use client';\n\nimport { getHTML } from '@intlayer/core/interpreter';\nimport { HTML_TAGS } from '@intlayer/core/transpiler';\nimport { createElement, type FC, Fragment, type JSX } from 'react';\nimport type { HTMLComponents } from './HTMLComponentTypes';\nimport { useHTMLContext } from './HTMLProvider';\n\nconst createDefaultHTMLComponents = (): HTMLComponents<'permissive', {}> => {\n const components: HTMLComponents = {};\n\n for (const tag of HTML_TAGS) {\n components[tag] = ({ children, ...props }) =>\n createElement(tag, props as any, children);\n }\n\n return components as HTMLComponents<'permissive', {}>;\n};\n\nexport const defaultHTMLComponents = createDefaultHTMLComponents();\n\nexport type RenderHTMLProps = {\n /**\n * Component overrides for HTML tags.\n * Allows you to customize how specific HTML elements are rendered.\n */\n components?: HTMLComponents<'permissive', {}>;\n};\n\n/**\n * Renders HTML-like content to JSX with the provided components.\n *\n * This function does not use context from HTMLProvider. Use `useHTMLRenderer`\n * hook if you want to leverage provider context.\n */\nexport const renderHTML = (\n content: string,\n { components }: RenderHTMLProps = {}\n): JSX.Element => {\n const mergedComponents = {\n ...defaultHTMLComponents,\n ...components,\n };\n\n // Wrap all components to ensure they are rendered via React.createElement\n const wrappedComponents = Object.fromEntries(\n Object.entries(mergedComponents)\n .filter(([, Component]) => Component)\n .map(([key, Component]) => [\n key,\n (props: any) => createElement(Component as any, props),\n ])\n );\n\n return <Fragment>{getHTML(content, wrappedComponents)}</Fragment>;\n};\n\n/**\n * Hook that returns a function to render HTML content.\n *\n * This hook considers the configuration from the `HTMLProvider` context if available,\n * falling back to the provided components.\n */\nexport const useHTMLRenderer = ({ components }: RenderHTMLProps = {}) => {\n const context = useHTMLContext();\n\n return (content: string) => {\n return renderHTML(content, {\n components: {\n ...context?.components,\n ...components,\n },\n });\n };\n};\n\nexport type HTMLRendererProps = RenderHTMLProps & {\n /**\n * The HTML content to render as a string.\n */\n children: string;\n};\n\n/**\n * React component that renders HTML-like content to JSX.\n *\n * This component uses the components from the `HTMLProvider` context\n * if available.\n */\nexport const HTMLRenderer: FC<HTMLRendererProps> = ({\n children = '',\n components,\n}) => {\n const render = useHTMLRenderer({ components });\n\n return render(children);\n};\n"],"mappings":"wQAmBA,MAAa,OAX+D,CAC1E,IAAM,EAA6B,EAAE,CAErC,IAAK,IAAM,KAAO,EAChB,EAAW,IAAQ,CAAE,WAAU,GAAG,KAChC,EAAc,EAAK,EAAc,EAAS,CAG9C,OAAO,KAGyD,CAgBrD,GACX,EACA,CAAE,cAAgC,EAAE,GACpB,CAChB,IAAM,EAAmB,CACvB,GAAG,EACH,GAAG,EACJ,CAYD,OAAO,EAAC,EAAA,CAAA,SAAU,EAAQ,EATA,OAAO,YAC/B,OAAO,QAAQ,EAAiB,CAC7B,QAAQ,EAAG,KAAe,EAAU,CACpC,KAAK,CAAC,EAAK,KAAe,CACzB,EACC,GAAe,EAAc,EAAkB,EAAM,CACvD,CAAC,CACL,CAEoD,CAAA,CAAY,EAStD,GAAmB,CAAE,cAAgC,EAAE,GAAK,CACvE,IAAM,EAAU,GAAgB,CAEhC,MAAQ,IACC,EAAW,EAAS,CACzB,WAAY,CACV,GAAG,GAAS,WACZ,GAAG,EACJ,CACF,CAAC,EAiBO,GAAuC,CAClD,WAAW,GACX,gBAEe,EAAgB,CAAE,aAAY,CAAC,CAEhC,EAAS"}
|
|
@@ -1,35 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { ContentSelectorRenderer } from "../editor/ContentSelectorWrapper.mjs";
|
|
4
|
-
import { useEditedContentRenderer } from "../editor/useEditedContentRenderer.mjs";
|
|
5
|
-
import { useHTMLContext } from "./HTMLProvider.mjs";
|
|
6
|
-
import { defaultHTMLComponents } from "./HTMLRenderer.mjs";
|
|
7
|
-
import { createElement } from "react";
|
|
8
|
-
import { jsx } from "react/jsx-runtime";
|
|
9
|
-
import { getHTML } from "@intlayer/core";
|
|
10
|
-
|
|
11
|
-
//#region src/html/HTMLRendererPlugin.tsx
|
|
12
|
-
const HTMLRendererPlugin = (props) => {
|
|
13
|
-
const { dictionaryKey, keyPath, html, userComponents } = props;
|
|
14
|
-
const globalComponents = useHTMLContext()?.components || {};
|
|
15
|
-
const editedContentContext = useEditedContentRenderer({
|
|
16
|
-
dictionaryKey: dictionaryKey ?? "",
|
|
17
|
-
keyPath: keyPath ?? [],
|
|
18
|
-
children: html
|
|
19
|
-
});
|
|
20
|
-
const contentToRender = typeof editedContentContext === "string" ? editedContentContext : html;
|
|
21
|
-
const mergedComponents = {
|
|
22
|
-
...defaultHTMLComponents,
|
|
23
|
-
...globalComponents,
|
|
24
|
-
...userComponents
|
|
25
|
-
};
|
|
26
|
-
const wrappedComponents = Object.fromEntries(Object.entries(mergedComponents).filter(([, Component]) => Component).map(([key, Component]) => [key, (props) => createElement(Component, props)]));
|
|
27
|
-
return /* @__PURE__ */ jsx(ContentSelectorRenderer, {
|
|
28
|
-
...props,
|
|
29
|
-
children: getHTML(contentToRender, wrappedComponents)
|
|
30
|
-
});
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
//#endregion
|
|
34
|
-
export { HTMLRendererPlugin };
|
|
1
|
+
"use client";import{ContentSelectorRenderer as e}from"../editor/ContentSelectorWrapper.mjs";import{useEditedContentRenderer as t}from"../editor/useEditedContentRenderer.mjs";import{useHTMLContext as n}from"./HTMLProvider.mjs";import{defaultHTMLComponents as r}from"./HTMLRenderer.mjs";import{createElement as i}from"react";import{jsx as a}from"react/jsx-runtime";import{getHTML as o}from"@intlayer/core/interpreter";const s=s=>{let{dictionaryKey:c,keyPath:l,html:u,userComponents:d}=s,f=n()?.components||{},p=t({dictionaryKey:c??``,keyPath:l??[],children:u}),m=typeof p==`string`?p:u,h={...r,...f,...d},g=Object.fromEntries(Object.entries(h).filter(([,e])=>e).map(([e,t])=>[e,e=>i(t,e)]));return a(e,{...s,children:o(m,g)})};export{s as HTMLRendererPlugin};
|
|
35
2
|
//# sourceMappingURL=HTMLRendererPlugin.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HTMLRendererPlugin.mjs","names":[],"sources":["../../../src/html/HTMLRendererPlugin.tsx"],"sourcesContent":["'use client';\n\nimport { getHTML } from '@intlayer/core';\nimport type { KeyPath, Locale } from '@intlayer/types';\nimport { createElement, type FC, type ReactNode } from 'react';\nimport { ContentSelectorRenderer } from '../editor';\nimport { useEditedContentRenderer } from '../editor/useEditedContentRenderer';\nimport { useHTMLContext } from './HTMLProvider';\nimport { defaultHTMLComponents } from './HTMLRenderer';\nimport type { ReactComponentProps } from './types';\n\ntype HTMLRendererPluginProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n html: string;\n locale?: Locale;\n userComponents?: Record<string, any>;\n};\n\nexport const HTMLRendererPlugin: FC<HTMLRendererPluginProps> = (\n props\n): ReactNode => {\n const { dictionaryKey, keyPath, html, userComponents } = props;\n const context = useHTMLContext();\n const globalComponents = context?.components || {};\n\n const editedContentContext = useEditedContentRenderer({\n dictionaryKey: dictionaryKey ?? '',\n keyPath: keyPath ?? [],\n children: html,\n });\n\n const contentToRender =\n typeof editedContentContext === 'string' ? editedContentContext : html;\n\n const mergedComponents = {\n ...defaultHTMLComponents,\n ...globalComponents,\n ...userComponents,\n };\n\n // Wrap all components to ensure they are rendered via React.createElement\n // This is important because it allows React to handle the component's lifecycle,\n // hooks, and Babel-injected variables correctly.\n const wrappedComponents = Object.fromEntries(\n Object.entries(mergedComponents)\n .filter(([, Component]) => Component)\n .map(([key, Component]) => [\n key,\n (props: ReactComponentProps) => createElement(Component, props),\n ])\n );\n\n return (\n <ContentSelectorRenderer {...props}>\n {getHTML(contentToRender, wrappedComponents)}\n </ContentSelectorRenderer>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"HTMLRendererPlugin.mjs","names":[],"sources":["../../../src/html/HTMLRendererPlugin.tsx"],"sourcesContent":["'use client';\n\nimport { getHTML } from '@intlayer/core/interpreter';\nimport type { KeyPath, Locale } from '@intlayer/types';\nimport { createElement, type FC, type ReactNode } from 'react';\nimport { ContentSelectorRenderer } from '../editor';\nimport { useEditedContentRenderer } from '../editor/useEditedContentRenderer';\nimport { useHTMLContext } from './HTMLProvider';\nimport { defaultHTMLComponents } from './HTMLRenderer';\nimport type { ReactComponentProps } from './types';\n\ntype HTMLRendererPluginProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n html: string;\n locale?: Locale;\n userComponents?: Record<string, any>;\n};\n\nexport const HTMLRendererPlugin: FC<HTMLRendererPluginProps> = (\n props\n): ReactNode => {\n const { dictionaryKey, keyPath, html, userComponents } = props;\n const context = useHTMLContext();\n const globalComponents = context?.components || {};\n\n const editedContentContext = useEditedContentRenderer({\n dictionaryKey: dictionaryKey ?? '',\n keyPath: keyPath ?? [],\n children: html,\n });\n\n const contentToRender =\n typeof editedContentContext === 'string' ? editedContentContext : html;\n\n const mergedComponents = {\n ...defaultHTMLComponents,\n ...globalComponents,\n ...userComponents,\n };\n\n // Wrap all components to ensure they are rendered via React.createElement\n // This is important because it allows React to handle the component's lifecycle,\n // hooks, and Babel-injected variables correctly.\n const wrappedComponents = Object.fromEntries(\n Object.entries(mergedComponents)\n .filter(([, Component]) => Component)\n .map(([key, Component]) => [\n key,\n (props: ReactComponentProps) => createElement(Component, props),\n ])\n );\n\n return (\n <ContentSelectorRenderer {...props}>\n {getHTML(contentToRender, wrappedComponents)}\n </ContentSelectorRenderer>\n );\n};\n"],"mappings":"gaAmBA,MAAa,EACX,GACc,CACd,GAAM,CAAE,gBAAe,UAAS,OAAM,kBAAmB,EAEnD,EADU,GAAgB,EACE,YAAc,EAAE,CAE5C,EAAuB,EAAyB,CACpD,cAAe,GAAiB,GAChC,QAAS,GAAW,EAAE,CACtB,SAAU,EACX,CAAC,CAEI,EACJ,OAAO,GAAyB,SAAW,EAAuB,EAE9D,EAAmB,CACvB,GAAG,EACH,GAAG,EACH,GAAG,EACJ,CAKK,EAAoB,OAAO,YAC/B,OAAO,QAAQ,EAAiB,CAC7B,QAAQ,EAAG,KAAe,EAAU,CACpC,KAAK,CAAC,EAAK,KAAe,CACzB,EACC,GAA+B,EAAc,EAAW,EAAM,CAChE,CAAC,CACL,CAED,OACE,EAAC,EAAA,CAAwB,GAAI,WAC1B,EAAQ,EAAiB,EAAkB,EACpB"}
|
package/dist/esm/html/index.mjs
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { HTMLRenderer, defaultHTMLComponents, renderHTML, useHTMLRenderer } from "./HTMLRenderer.mjs";
|
|
3
|
-
import { HTMLRendererPlugin } from "./HTMLRendererPlugin.mjs";
|
|
4
|
-
|
|
5
|
-
export { HTMLProvider, HTMLRenderer, HTMLRendererPlugin, defaultHTMLComponents, renderHTML, useHTMLContext, useHTMLRenderer };
|
|
1
|
+
import{HTMLProvider as e,useHTMLContext as t}from"./HTMLProvider.mjs";import{HTMLRenderer as n,defaultHTMLComponents as r,renderHTML as i,useHTMLRenderer as a}from"./HTMLRenderer.mjs";import{HTMLRendererPlugin as o}from"./HTMLRendererPlugin.mjs";export{e as HTMLProvider,n as HTMLRenderer,o as HTMLRendererPlugin,r as defaultHTMLComponents,i as renderHTML,t as useHTMLContext,a as useHTMLRenderer};
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,21 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { IntlayerClientContext, IntlayerProvider, IntlayerProviderContent, useIntlayerContext } from "./client/IntlayerProvider.mjs";
|
|
3
|
-
import { t } from "./client/t.mjs";
|
|
4
|
-
import { useDictionary } from "./client/useDictionary.mjs";
|
|
5
|
-
import { useDictionaryAsync } from "./client/useDictionaryAsync.mjs";
|
|
6
|
-
import { useLoadDynamic } from "./client/useLoadDynamic.mjs";
|
|
7
|
-
import { useDictionaryDynamic } from "./client/useDictionaryDynamic.mjs";
|
|
8
|
-
import { useI18n } from "./client/useI18n.mjs";
|
|
9
|
-
import { getIntlayer } from "./getIntlayer.mjs";
|
|
10
|
-
import { useIntlayer } from "./client/useIntlayer.mjs";
|
|
11
|
-
import { useLocale } from "./client/useLocale.mjs";
|
|
12
|
-
import { useLocaleBase } from "./client/useLocaleBase.mjs";
|
|
13
|
-
import { useRewriteURL } from "./client/useRewriteURL.mjs";
|
|
14
|
-
import { HTMLProvider } from "./html/HTMLProvider.mjs";
|
|
15
|
-
import { HTMLRenderer, renderHTML, useHTMLRenderer } from "./html/HTMLRenderer.mjs";
|
|
16
|
-
import { MarkdownProvider } from "./markdown/MarkdownProvider.mjs";
|
|
17
|
-
import { MarkdownRenderer, renderMarkdown, useMarkdownRenderer } from "./markdown/MarkdownRenderer.mjs";
|
|
18
|
-
import { getDictionary } from "./getDictionary.mjs";
|
|
19
|
-
import { useIntl } from "./client/format/useIntl.mjs";
|
|
20
|
-
|
|
21
|
-
export { HTMLProvider, HTMLRenderer, IntlayerClientContext, IntlayerProvider, IntlayerProviderContent, MarkdownProvider, MarkdownRenderer, getDictionary, getIntlayer, localeCookie, localeInStorage, renderHTML, renderMarkdown, setLocaleCookie, setLocaleInStorage, t, useDictionary, useDictionaryAsync, useDictionaryDynamic, useHTMLRenderer, useI18n, useIntl, useIntlayer, useIntlayerContext, useLoadDynamic, useLocale, useLocaleBase, useLocaleCookie, useLocaleStorage, useMarkdownRenderer, useRewriteURL };
|
|
1
|
+
import{localeCookie as e,localeInStorage as t,setLocaleCookie as n,setLocaleInStorage as r,useLocaleCookie as i,useLocaleStorage as a}from"./client/useLocaleStorage.mjs";import{IntlayerClientContext as o,IntlayerProvider as s,IntlayerProviderContent as c,useIntlayerContext as l}from"./client/IntlayerProvider.mjs";import{t as u}from"./client/t.mjs";import{useDictionary as d}from"./client/useDictionary.mjs";import{useDictionaryAsync as f}from"./client/useDictionaryAsync.mjs";import{useLoadDynamic as p}from"./client/useLoadDynamic.mjs";import{useDictionaryDynamic as m}from"./client/useDictionaryDynamic.mjs";import{useI18n as h}from"./client/useI18n.mjs";import{getIntlayer as g}from"./getIntlayer.mjs";import{useIntlayer as _}from"./client/useIntlayer.mjs";import{useLocale as v}from"./client/useLocale.mjs";import{useLocaleBase as y}from"./client/useLocaleBase.mjs";import{useRewriteURL as b}from"./client/useRewriteURL.mjs";import{HTMLProvider as x}from"./html/HTMLProvider.mjs";import{HTMLRenderer as S,renderHTML as C,useHTMLRenderer as w}from"./html/HTMLRenderer.mjs";import{MarkdownProvider as T}from"./markdown/MarkdownProvider.mjs";import{MarkdownRenderer as E,renderMarkdown as D,useMarkdownRenderer as O}from"./markdown/MarkdownRenderer.mjs";import{getDictionary as k}from"./getDictionary.mjs";import{useIntl as A}from"./client/format/useIntl.mjs";export{x as HTMLProvider,S as HTMLRenderer,o as IntlayerClientContext,s as IntlayerProvider,c as IntlayerProviderContent,T as MarkdownProvider,E as MarkdownRenderer,k as getDictionary,g as getIntlayer,e as localeCookie,t as localeInStorage,C as renderHTML,D as renderMarkdown,n as setLocaleCookie,r as setLocaleInStorage,u as t,d as useDictionary,f as useDictionaryAsync,m as useDictionaryDynamic,w as useHTMLRenderer,h as useI18n,A as useIntl,_ as useIntlayer,l as useIntlayerContext,p as useLoadDynamic,v as useLocale,y as useLocaleBase,i as useLocaleCookie,a as useLocaleStorage,O as useMarkdownRenderer,b as useRewriteURL};
|
|
@@ -1,75 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { compiler } from "./processor.mjs";
|
|
4
|
-
import { createContext, useContext } from "react";
|
|
5
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
//#region src/markdown/MarkdownProvider.tsx
|
|
8
|
-
const MarkdownContext = createContext(void 0);
|
|
9
|
-
const useMarkdownContext = () => useContext(MarkdownContext);
|
|
10
|
-
const mergeOptions = (baseOptions, options = {}, components = {}, wrapper) => {
|
|
11
|
-
return {
|
|
12
|
-
...baseOptions,
|
|
13
|
-
...options,
|
|
14
|
-
forceBlock: options.forceBlock ?? baseOptions.forceBlock,
|
|
15
|
-
forceInline: options.forceInline ?? baseOptions.forceInline,
|
|
16
|
-
preserveFrontmatter: options.preserveFrontmatter ?? baseOptions.preserveFrontmatter,
|
|
17
|
-
tagfilter: options.tagfilter ?? baseOptions.tagfilter,
|
|
18
|
-
wrapper: wrapper || baseOptions.wrapper,
|
|
19
|
-
forceWrapper: !!(wrapper || baseOptions.wrapper),
|
|
20
|
-
components: {
|
|
21
|
-
...baseOptions.components,
|
|
22
|
-
...components
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Provider for the MarkdownRenderer component.
|
|
28
|
-
*
|
|
29
|
-
* It will provide the `renderMarkdown` function to the context, which can be used to render markdown.
|
|
30
|
-
*
|
|
31
|
-
* ```tsx
|
|
32
|
-
* const content = useIntlayer('app');
|
|
33
|
-
*
|
|
34
|
-
* return (
|
|
35
|
-
* <div>
|
|
36
|
-
* {content.markdown} // Will be rendered with the components and options provided to the MarkdownProvider
|
|
37
|
-
* </div>
|
|
38
|
-
* );
|
|
39
|
-
* ```
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* ```tsx
|
|
43
|
-
* <MarkdownProvider components={{ h1: CustomHeading }}>
|
|
44
|
-
* <MarkdownRenderer>
|
|
45
|
-
* {markdownContent}
|
|
46
|
-
* </MarkdownRenderer>
|
|
47
|
-
* </MarkdownProvider>
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
const MarkdownProvider = ({ children, components, wrapper, forceBlock, forceInline, preserveFrontmatter, tagfilter, renderMarkdown: customRenderFn }) => {
|
|
51
|
-
const baseOptions = {
|
|
52
|
-
components,
|
|
53
|
-
forceBlock,
|
|
54
|
-
forceInline,
|
|
55
|
-
wrapper,
|
|
56
|
-
forceWrapper: !!wrapper,
|
|
57
|
-
preserveFrontmatter,
|
|
58
|
-
tagfilter
|
|
59
|
-
};
|
|
60
|
-
const defaultRenderMarkdown = (markdown, options, components, wrapper) => {
|
|
61
|
-
return compiler(markdown, mergeOptions(baseOptions, options, components, wrapper));
|
|
62
|
-
};
|
|
63
|
-
const customRenderMarkdownWrapper = (markdown, options, components, wrapper) => /* @__PURE__ */ jsx(MarkdownContext.Provider, {
|
|
64
|
-
value: void 0,
|
|
65
|
-
children: customRenderFn?.(markdown, options, components, wrapper)
|
|
66
|
-
});
|
|
67
|
-
return /* @__PURE__ */ jsx(MarkdownContext.Provider, {
|
|
68
|
-
value: { renderMarkdown: customRenderFn ? customRenderMarkdownWrapper : defaultRenderMarkdown },
|
|
69
|
-
children
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
//#endregion
|
|
74
|
-
export { MarkdownProvider, useMarkdownContext };
|
|
1
|
+
"use client";import{compiler as e}from"./processor.mjs";import{createContext as t,useContext as n}from"react";import{jsx as r}from"react/jsx-runtime";const i=t(void 0),a=()=>n(i),o=(e,t={},n={},r)=>({...e,...t,forceBlock:t.forceBlock??e.forceBlock,forceInline:t.forceInline??e.forceInline,preserveFrontmatter:t.preserveFrontmatter??e.preserveFrontmatter,tagfilter:t.tagfilter??e.tagfilter,wrapper:r||e.wrapper,forceWrapper:!!(r||e.wrapper),components:{...e.components,...n}}),s=({children:t,components:n,wrapper:a,forceBlock:s,forceInline:c,preserveFrontmatter:l,tagfilter:u,renderMarkdown:d})=>{let f={components:n,forceBlock:s,forceInline:c,wrapper:a,forceWrapper:!!a,preserveFrontmatter:l,tagfilter:u};return r(i.Provider,{value:{renderMarkdown:d?(e,t,n,a)=>r(i.Provider,{value:void 0,children:d?.(e,t,n,a)}):(t,n,r,i)=>e(t,o(f,n,r,i))},children:t})};export{s as MarkdownProvider,a as useMarkdownContext};
|
|
75
2
|
//# sourceMappingURL=MarkdownProvider.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownProvider.mjs","names":[],"sources":["../../../src/markdown/MarkdownProvider.tsx"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n type FC,\n type HTMLAttributes,\n type PropsWithChildren,\n type ReactNode,\n useContext,\n} from 'react';\nimport type { HTMLComponents } from '../html/HTMLComponentTypes';\nimport { compiler, type MarkdownRendererOptions } from './processor';\n\nexport type MarkdownProviderOptions = {\n /** Forces the compiler to always output content with a block-level wrapper. */\n forceBlock?: boolean;\n /** Forces the compiler to always output content with an inline wrapper. */\n forceInline?: boolean;\n /** Whether to preserve frontmatter in the markdown content. */\n preserveFrontmatter?: boolean;\n /** Whether to use the GitHub Tag Filter for security. */\n tagfilter?: boolean;\n};\n\ntype MarkdownContextValue = {\n renderMarkdown: (\n markdown: string,\n options?: MarkdownProviderOptions,\n components?: HTMLComponents<'permissive', {}>,\n wrapper?: FC<HTMLAttributes<HTMLElement>>\n ) => ReactNode;\n};\n\ntype MarkdownProviderProps = PropsWithChildren<\n MarkdownProviderOptions & {\n components?: HTMLComponents<'permissive', {}>;\n wrapper?: FC<HTMLAttributes<HTMLElement>>;\n renderMarkdown?: (\n markdown: string,\n options?: MarkdownProviderOptions,\n components?: HTMLComponents<'permissive', {}>,\n wrapper?: FC<HTMLAttributes<HTMLElement>>\n ) => ReactNode;\n }\n>;\n\nconst MarkdownContext = createContext<MarkdownContextValue | undefined>(\n undefined\n);\n\nexport const useMarkdownContext = () => useContext(MarkdownContext);\n\nconst mergeOptions = (\n baseOptions: MarkdownRendererOptions,\n options: MarkdownProviderOptions = {},\n components: HTMLComponents<'permissive', {}> = {},\n wrapper?: FC<HTMLAttributes<HTMLElement>>\n): MarkdownRendererOptions => {\n return {\n ...baseOptions,\n ...options,\n forceBlock: options.forceBlock ?? baseOptions.forceBlock,\n forceInline: options.forceInline ?? baseOptions.forceInline,\n preserveFrontmatter:\n options.preserveFrontmatter ?? baseOptions.preserveFrontmatter,\n tagfilter: options.tagfilter ?? baseOptions.tagfilter,\n wrapper: wrapper || baseOptions.wrapper,\n\n forceWrapper: !!(wrapper || baseOptions.wrapper),\n components: { ...baseOptions.components, ...components },\n };\n};\n\n/**\n * Provider for the MarkdownRenderer component.\n *\n * It will provide the `renderMarkdown` function to the context, which can be used to render markdown.\n *\n * ```tsx\n * const content = useIntlayer('app');\n *\n * return (\n * <div>\n * {content.markdown} // Will be rendered with the components and options provided to the MarkdownProvider\n * </div>\n * );\n * ```\n *\n * @example\n * ```tsx\n * <MarkdownProvider components={{ h1: CustomHeading }}>\n * <MarkdownRenderer>\n * {markdownContent}\n * </MarkdownRenderer>\n * </MarkdownProvider>\n * ```\n */\nexport const MarkdownProvider: FC<MarkdownProviderProps> = ({\n children,\n components,\n wrapper,\n forceBlock,\n forceInline,\n preserveFrontmatter,\n tagfilter,\n renderMarkdown: customRenderFn,\n}) => {\n const baseOptions: MarkdownRendererOptions = {\n components,\n forceBlock,\n forceInline,\n wrapper,\n forceWrapper: !!wrapper,\n preserveFrontmatter,\n tagfilter,\n };\n\n // Standard internal renderer\n const defaultRenderMarkdown = (\n markdown: string,\n options?: MarkdownProviderOptions,\n components?: HTMLComponents<'permissive', {}>,\n wrapper?: FC<HTMLAttributes<HTMLElement>>\n ) => {\n const mergedOptions = mergeOptions(\n baseOptions,\n options,\n components,\n wrapper\n );\n\n return compiler(markdown, mergedOptions);\n };\n\n // Wrapper for user-provided custom renderer\n // Note: We wrap in a clean Provider to prevent infinite recursion\n const customRenderMarkdownWrapper = (\n markdown: string,\n options?: MarkdownProviderOptions,\n components?: HTMLComponents<'permissive', {}>,\n wrapper?: FC<HTMLAttributes<HTMLElement>>\n ) => (\n <MarkdownContext.Provider value={undefined}>\n {customRenderFn?.(markdown, options, components, wrapper)}\n </MarkdownContext.Provider>\n );\n\n return (\n <MarkdownContext.Provider\n value={{\n renderMarkdown: customRenderFn\n ? customRenderMarkdownWrapper\n : defaultRenderMarkdown,\n }}\n >\n {children}\n </MarkdownContext.Provider>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MarkdownProvider.mjs","names":[],"sources":["../../../src/markdown/MarkdownProvider.tsx"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n type FC,\n type HTMLAttributes,\n type PropsWithChildren,\n type ReactNode,\n useContext,\n} from 'react';\nimport type { HTMLComponents } from '../html/HTMLComponentTypes';\nimport { compiler, type MarkdownRendererOptions } from './processor';\n\nexport type MarkdownProviderOptions = {\n /** Forces the compiler to always output content with a block-level wrapper. */\n forceBlock?: boolean;\n /** Forces the compiler to always output content with an inline wrapper. */\n forceInline?: boolean;\n /** Whether to preserve frontmatter in the markdown content. */\n preserveFrontmatter?: boolean;\n /** Whether to use the GitHub Tag Filter for security. */\n tagfilter?: boolean;\n};\n\ntype MarkdownContextValue = {\n renderMarkdown: (\n markdown: string,\n options?: MarkdownProviderOptions,\n components?: HTMLComponents<'permissive', {}>,\n wrapper?: FC<HTMLAttributes<HTMLElement>>\n ) => ReactNode;\n};\n\ntype MarkdownProviderProps = PropsWithChildren<\n MarkdownProviderOptions & {\n components?: HTMLComponents<'permissive', {}>;\n wrapper?: FC<HTMLAttributes<HTMLElement>>;\n renderMarkdown?: (\n markdown: string,\n options?: MarkdownProviderOptions,\n components?: HTMLComponents<'permissive', {}>,\n wrapper?: FC<HTMLAttributes<HTMLElement>>\n ) => ReactNode;\n }\n>;\n\nconst MarkdownContext = createContext<MarkdownContextValue | undefined>(\n undefined\n);\n\nexport const useMarkdownContext = () => useContext(MarkdownContext);\n\nconst mergeOptions = (\n baseOptions: MarkdownRendererOptions,\n options: MarkdownProviderOptions = {},\n components: HTMLComponents<'permissive', {}> = {},\n wrapper?: FC<HTMLAttributes<HTMLElement>>\n): MarkdownRendererOptions => {\n return {\n ...baseOptions,\n ...options,\n forceBlock: options.forceBlock ?? baseOptions.forceBlock,\n forceInline: options.forceInline ?? baseOptions.forceInline,\n preserveFrontmatter:\n options.preserveFrontmatter ?? baseOptions.preserveFrontmatter,\n tagfilter: options.tagfilter ?? baseOptions.tagfilter,\n wrapper: wrapper || baseOptions.wrapper,\n\n forceWrapper: !!(wrapper || baseOptions.wrapper),\n components: { ...baseOptions.components, ...components },\n };\n};\n\n/**\n * Provider for the MarkdownRenderer component.\n *\n * It will provide the `renderMarkdown` function to the context, which can be used to render markdown.\n *\n * ```tsx\n * const content = useIntlayer('app');\n *\n * return (\n * <div>\n * {content.markdown} // Will be rendered with the components and options provided to the MarkdownProvider\n * </div>\n * );\n * ```\n *\n * @example\n * ```tsx\n * <MarkdownProvider components={{ h1: CustomHeading }}>\n * <MarkdownRenderer>\n * {markdownContent}\n * </MarkdownRenderer>\n * </MarkdownProvider>\n * ```\n */\nexport const MarkdownProvider: FC<MarkdownProviderProps> = ({\n children,\n components,\n wrapper,\n forceBlock,\n forceInline,\n preserveFrontmatter,\n tagfilter,\n renderMarkdown: customRenderFn,\n}) => {\n const baseOptions: MarkdownRendererOptions = {\n components,\n forceBlock,\n forceInline,\n wrapper,\n forceWrapper: !!wrapper,\n preserveFrontmatter,\n tagfilter,\n };\n\n // Standard internal renderer\n const defaultRenderMarkdown = (\n markdown: string,\n options?: MarkdownProviderOptions,\n components?: HTMLComponents<'permissive', {}>,\n wrapper?: FC<HTMLAttributes<HTMLElement>>\n ) => {\n const mergedOptions = mergeOptions(\n baseOptions,\n options,\n components,\n wrapper\n );\n\n return compiler(markdown, mergedOptions);\n };\n\n // Wrapper for user-provided custom renderer\n // Note: We wrap in a clean Provider to prevent infinite recursion\n const customRenderMarkdownWrapper = (\n markdown: string,\n options?: MarkdownProviderOptions,\n components?: HTMLComponents<'permissive', {}>,\n wrapper?: FC<HTMLAttributes<HTMLElement>>\n ) => (\n <MarkdownContext.Provider value={undefined}>\n {customRenderFn?.(markdown, options, components, wrapper)}\n </MarkdownContext.Provider>\n );\n\n return (\n <MarkdownContext.Provider\n value={{\n renderMarkdown: customRenderFn\n ? customRenderMarkdownWrapper\n : defaultRenderMarkdown,\n }}\n >\n {children}\n </MarkdownContext.Provider>\n );\n};\n"],"mappings":"sJA8CA,MAAM,EAAkB,EACtB,IAAA,GACD,CAEY,MAA2B,EAAW,EAAgB,CAE7D,GACJ,EACA,EAAmC,EAAE,CACrC,EAA+C,EAAE,CACjD,KAEO,CACL,GAAG,EACH,GAAG,EACH,WAAY,EAAQ,YAAc,EAAY,WAC9C,YAAa,EAAQ,aAAe,EAAY,YAChD,oBACE,EAAQ,qBAAuB,EAAY,oBAC7C,UAAW,EAAQ,WAAa,EAAY,UAC5C,QAAS,GAAW,EAAY,QAEhC,aAAc,CAAC,EAAE,GAAW,EAAY,SACxC,WAAY,CAAE,GAAG,EAAY,WAAY,GAAG,EAAY,CACzD,EA2BU,GAA+C,CAC1D,WACA,aACA,UACA,aACA,cACA,sBACA,YACA,eAAgB,KACZ,CACJ,IAAM,EAAuC,CAC3C,aACA,aACA,cACA,UACA,aAAc,CAAC,CAAC,EAChB,sBACA,YACD,CAgCD,OACE,EAAC,EAAgB,SAAA,CACf,MAAO,CACL,eAAgB,GAbpB,EACA,EACA,EACA,IAEA,EAAC,EAAgB,SAAA,CAAS,MAAO,IAAA,YAC9B,IAAiB,EAAU,EAAS,EAAY,EAAQ,EAChC,EAzB3B,EACA,EACA,EACA,IASO,EAAS,EAPM,EACpB,EACA,EACA,EACA,EACD,CAEuC,CAsBrC,CAEA,YACwB"}
|