preact-intlayer 8.4.1 → 8.4.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 (76) hide show
  1. package/dist/cjs/IntlayerNode.cjs +1 -1
  2. package/dist/cjs/IntlayerProvider-sM1gzsx7.cjs +2 -0
  3. package/dist/cjs/IntlayerProvider-sM1gzsx7.cjs.map +1 -0
  4. package/dist/cjs/UI/ContentSelector.cjs +1 -1
  5. package/dist/cjs/client/IntlayerProvider.cjs +1 -1
  6. package/dist/cjs/client/format/useCompact.cjs +1 -1
  7. package/dist/cjs/client/format/useCurrency.cjs +1 -1
  8. package/dist/cjs/client/format/useDate.cjs +1 -1
  9. package/dist/cjs/client/format/useIntl.cjs +1 -1
  10. package/dist/cjs/client/format/useList.cjs +1 -1
  11. package/dist/cjs/client/format/useNumber.cjs +1 -1
  12. package/dist/cjs/client/format/usePercentage.cjs +1 -1
  13. package/dist/cjs/client/format/useRelativeTime.cjs +1 -1
  14. package/dist/cjs/client/format/useUnit.cjs +1 -1
  15. package/dist/cjs/client/index.cjs +1 -1
  16. package/dist/cjs/client/t.cjs +1 -1
  17. package/dist/cjs/client/useDictionary.cjs +1 -1
  18. package/dist/cjs/client/useDictionaryAsync.cjs +1 -1
  19. package/dist/cjs/client/useDictionaryDynamic.cjs +1 -1
  20. package/dist/cjs/client/useIntlayer.cjs +1 -1
  21. package/dist/cjs/client/useLocale.cjs +1 -1
  22. package/dist/cjs/client/useLocaleBase.cjs +1 -1
  23. package/dist/cjs/client/useLocaleStorage.cjs +1 -1
  24. package/dist/cjs/client/useTraduction.cjs +1 -1
  25. package/dist/cjs/editor/ContentSelector.cjs +1 -1
  26. package/dist/cjs/editor/ContentSelector.cjs.map +1 -1
  27. package/dist/cjs/editor/EditorProvider.cjs +1 -1
  28. package/dist/cjs/editor/useEditor.cjs +1 -1
  29. package/dist/cjs/getDictionary.cjs +1 -1
  30. package/dist/cjs/getIntlayer.cjs +1 -1
  31. package/dist/cjs/html/HTMLProvider.cjs +1 -1
  32. package/dist/cjs/html/HTMLRenderer.cjs +1 -1
  33. package/dist/cjs/index.cjs +1 -1
  34. package/dist/cjs/markdown/MarkdownProvider.cjs +1 -1
  35. package/dist/cjs/markdown/MarkdownRenderer.cjs +1 -1
  36. package/dist/cjs/markdown/MarkdownRendererPlugin.cjs +1 -1
  37. package/dist/cjs/markdown/compiler.cjs +1 -1
  38. package/dist/cjs/markdown/index.cjs +1 -1
  39. package/dist/cjs/markdown/runtime.cjs +1 -1
  40. package/dist/cjs/plugins.cjs +1 -1
  41. package/dist/cjs/plugins.cjs.map +1 -1
  42. package/dist/cjs/preactElement/renderPreactElement.cjs +1 -1
  43. package/dist/esm/IntlayerProvider-ClOcEK3A.mjs +2 -0
  44. package/dist/esm/IntlayerProvider-ClOcEK3A.mjs.map +1 -0
  45. package/dist/esm/client/IntlayerProvider.mjs +1 -1
  46. package/dist/esm/client/format/useCompact.mjs +1 -1
  47. package/dist/esm/client/format/useCurrency.mjs +1 -1
  48. package/dist/esm/client/format/useDate.mjs +1 -1
  49. package/dist/esm/client/format/useIntl.mjs +1 -1
  50. package/dist/esm/client/format/useList.mjs +1 -1
  51. package/dist/esm/client/format/useNumber.mjs +1 -1
  52. package/dist/esm/client/format/usePercentage.mjs +1 -1
  53. package/dist/esm/client/format/useRelativeTime.mjs +1 -1
  54. package/dist/esm/client/format/useUnit.mjs +1 -1
  55. package/dist/esm/client/index.mjs +1 -1
  56. package/dist/esm/client/t.mjs +1 -1
  57. package/dist/esm/client/useDictionary.mjs +1 -1
  58. package/dist/esm/client/useDictionaryAsync.mjs +1 -1
  59. package/dist/esm/client/useDictionaryDynamic.mjs +1 -1
  60. package/dist/esm/client/useIntlayer.mjs +1 -1
  61. package/dist/esm/client/useLocale.mjs +1 -1
  62. package/dist/esm/client/useLocaleBase.mjs +1 -1
  63. package/dist/esm/client/useTraduction.mjs +1 -1
  64. package/dist/esm/editor/ContentSelector.mjs +1 -1
  65. package/dist/esm/editor/ContentSelector.mjs.map +1 -1
  66. package/dist/esm/editor/EditorProvider.mjs +1 -1
  67. package/dist/esm/editor/useEditor.mjs +1 -1
  68. package/dist/esm/index.mjs +1 -1
  69. package/dist/esm/plugins.mjs +1 -1
  70. package/dist/esm/plugins.mjs.map +1 -1
  71. package/dist/types/plugins-D6OB94dO.d.ts.map +1 -1
  72. package/package.json +7 -7
  73. package/dist/cjs/IntlayerProvider-D6OWJC7Y.cjs +0 -2
  74. package/dist/cjs/IntlayerProvider-D6OWJC7Y.cjs.map +0 -1
  75. package/dist/esm/IntlayerProvider-y3IBs1Py.mjs +0 -2
  76. package/dist/esm/IntlayerProvider-y3IBs1Py.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./IntlayerProvider-D6OWJC7Y.cjs`);let e=require(`preact`);const t=({children:t,value:n,additionalProps:r})=>{let i=(0,e.isValidElement)(t)?t:(0,e.h)(e.Fragment,{},t);return new Proxy(i,{get(e,t,i){return t===`value`?n:r&&Object.keys(r).includes(t)?r[t]:Reflect.get(e,t,i)}})};exports.renderIntlayerNode=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./IntlayerProvider-sM1gzsx7.cjs`);let e=require(`preact`);const t=({children:t,value:n,additionalProps:r})=>{let i=(0,e.isValidElement)(t)?t:(0,e.h)(e.Fragment,{},t);return new Proxy(i,{get(e,t,i){return t===`value`?n:r&&Object.keys(r).includes(t)?r[t]:Reflect.get(e,t,i)}})};exports.renderIntlayerNode=t;
2
2
  //# sourceMappingURL=IntlayerNode.cjs.map
@@ -0,0 +1,2 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require(`./client/useLocaleStorage.cjs`);let l=require(`@intlayer/config/built`);l=s(l);let u=require(`preact`),d=require(`@intlayer/editor/isEnabled`),f=require(`preact/hooks`),p=require(`preact/jsx-runtime`),m=require(`@intlayer/core/localization`);const h=()=>{let{locale:e}=(0,f.useContext)(_),t=(0,f.useRef)(null);(0,f.useEffect)(()=>{if(!(process.env.INTLAYER_EDITOR_ENABLED===`false`||!d.isEnabled))return import(`@intlayer/editor`).then(({initEditorClient:n})=>{let r=n();t.current=r,e&&r.currentLocale.set(e)}),()=>{t.current=null,import(`@intlayer/editor`).then(({stopEditorClient:e})=>{e()})}},[]),(0,f.useEffect)(()=>{!e||!t.current||t.current.currentLocale.set(e)},[e])},g=({children:e})=>(h(),e),_=(0,u.createContext)({locale:c.localeInStorage??l.default?.internationalization?.defaultLocale,setLocale:()=>null}),v=()=>(0,f.useContext)(_),y=({locale:e,defaultLocale:t,children:n,setLocale:r,isCookieEnabled:i})=>{let{internationalization:a}=l.default??{},{defaultLocale:o,locales:s}=a??{},[u,d]=(0,f.useState)(e??c.localeInStorage??t??o);(0,f.useEffect)(()=>{e&&e!==u&&d(e)},[e,u,d]);let h=r??(e=>{if(u.toString()!==e.toString()){if(!s?.map(String).includes(e)){console.error(`Locale ${e} is not available`);return}d(e),c.setLocaleInStorage(e,i??!0)}}),g=(0,m.localeResolver)(e??u);return(0,p.jsx)(_.Provider,{value:{locale:g,setLocale:h,isCookieEnabled:i},children:n})},b=({children:e,...t})=>(0,p.jsxs)(y,{...t,children:[(0,p.jsx)(g,{}),e]});Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return _}});
2
+ //# sourceMappingURL=IntlayerProvider-sM1gzsx7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntlayerProvider-sM1gzsx7.cjs","names":["isEnabled","localeInStorage","configuration"],"sources":["../../src/editor/useEditor.tsx","../../src/editor/EditorProvider.tsx","../../src/client/IntlayerProvider.tsx"],"sourcesContent":["import type { EditorStateManager } from '@intlayer/editor';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { useContext, useEffect, useRef } from 'preact/hooks';\nimport { IntlayerClientContext } from '../client/IntlayerProvider';\n\n/**\n * Initialises the Intlayer editor client singleton when the editor is enabled.\n * Syncs the current locale from the Intlayer context into the editor manager so\n * the editor always knows which locale the app is displaying.\n */\nexport const useEditor = () => {\n const { locale } = useContext(IntlayerClientContext);\n const managerRef = useRef<EditorStateManager | null>(null);\n\n useEffect(() => {\n if (process.env.INTLAYER_EDITOR_ENABLED === 'false' || !isEnabled) return;\n\n import('@intlayer/editor').then(({ initEditorClient }) => {\n const manager = initEditorClient();\n managerRef.current = manager;\n\n if (locale) manager.currentLocale.set(locale as Locale);\n });\n\n return () => {\n managerRef.current = null;\n import('@intlayer/editor').then(({ stopEditorClient }) => {\n stopEditorClient();\n });\n };\n }, []);\n\n useEffect(() => {\n if (!locale || !managerRef.current) return;\n\n managerRef.current.currentLocale.set(locale as Locale);\n }, [locale]);\n};\n","import type { ComponentChild, FunctionComponent } from 'preact';\nimport { useEditor } from './useEditor';\n\nexport const EditorProvider: FunctionComponent<{\n children?: ComponentChild;\n}> = ({ children }) => {\n useEditor();\n\n return children;\n};\n","import configuration from '@intlayer/config/built';\nimport { localeResolver } from '@intlayer/core/localization';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport {\n type ComponentChild,\n createContext,\n type FunctionComponent,\n} from 'preact';\nimport { useContext, useEffect, useState } from 'preact/hooks';\nimport { EditorProvider } from '../editor/EditorProvider';\nimport { localeInStorage, setLocaleInStorage } from './useLocaleStorage';\n\ntype IntlayerValue = {\n locale: LocalesValues;\n setLocale: (newLocale: LocalesValues) => void;\n isCookieEnabled?: boolean;\n};\n\n/**\n * Context that store the current locale on the client side\n */\nexport const IntlayerClientContext = createContext<IntlayerValue>({\n locale: localeInStorage ?? configuration?.internationalization?.defaultLocale,\n setLocale: () => null,\n});\n\n/**\n * Hook that provides the current locale\n */\nexport const useIntlayerContext = () => useContext(IntlayerClientContext);\n\nexport type IntlayerProviderProps = {\n children?: ComponentChild;\n locale?: LocalesValues;\n defaultLocale?: LocalesValues;\n setLocale?: (locale: LocalesValues) => void;\n isCookieEnabled?: boolean;\n};\n\n/**\n * Provider that store the current locale on the client side\n */\nexport const IntlayerProviderContent: FunctionComponent<\n IntlayerProviderProps\n> = ({\n locale: localeProp,\n defaultLocale: defaultLocaleProp,\n children,\n setLocale: setLocaleProp,\n isCookieEnabled,\n}) => {\n const { internationalization } = configuration ?? {};\n const { defaultLocale: defaultLocaleConfig, locales: availableLocales } =\n internationalization ?? {};\n\n const defaultLocale =\n localeProp ?? localeInStorage ?? defaultLocaleProp ?? defaultLocaleConfig;\n\n const [currentLocale, setCurrentLocale] = useState<LocalesValues>(\n defaultLocale as LocalesValues\n );\n\n useEffect(() => {\n if (localeProp && localeProp !== currentLocale) {\n setCurrentLocale(localeProp);\n }\n }, [localeProp, currentLocale, setCurrentLocale]);\n\n const setLocaleBase = (newLocale: LocalesValues) => {\n if (currentLocale.toString() === newLocale.toString()) return;\n\n if (!availableLocales?.map(String).includes(newLocale)) {\n console.error(`Locale ${newLocale} is not available`);\n return;\n }\n\n setCurrentLocale(newLocale); // Update state\n setLocaleInStorage(newLocale, isCookieEnabled ?? true); // Optionally set cookie for persistence\n };\n\n const setLocale = setLocaleProp ?? setLocaleBase;\n\n const resolvedLocale = localeResolver(localeProp ?? currentLocale);\n\n return (\n <IntlayerClientContext.Provider\n value={{\n locale: resolvedLocale,\n setLocale,\n isCookieEnabled,\n }}\n >\n {children}\n </IntlayerClientContext.Provider>\n );\n};\n\n/**\n * Main provider for Intlayer in Preact applications.\n *\n * It provides the Intlayer context to your application, allowing the use\n * of hooks like `useIntlayer` and `useLocale`.\n *\n * @param props - The provider props.\n * @returns The provider component.\n *\n * @example\n * ```tsx\n * import { IntlayerProvider } from 'preact-intlayer';\n *\n * const App = () => (\n * <IntlayerProvider>\n * <MyComponent />\n * </IntlayerProvider>\n * );\n * ```\n */\nexport const IntlayerProvider: FunctionComponent<IntlayerProviderProps> = ({\n children,\n ...props\n}) => (\n <IntlayerProviderContent {...props}>\n <EditorProvider />\n {children}\n </IntlayerProviderContent>\n);\n"],"mappings":"iuBAWA,MAAa,MAAkB,CAC7B,GAAM,CAAE,WAAA,EAAA,EAAA,YAAsB,EAAsB,CAC9C,GAAA,EAAA,EAAA,QAA+C,KAAK,EAE1D,EAAA,EAAA,eAAgB,CACV,aAAQ,IAAI,0BAA4B,SAAW,CAACA,EAAAA,WASxD,OAPA,OAAO,oBAAoB,MAAM,CAAE,sBAAuB,CACxD,IAAM,EAAU,GAAkB,CAClC,EAAW,QAAU,EAEjB,GAAQ,EAAQ,cAAc,IAAI,EAAiB,EACvD,KAEW,CACX,EAAW,QAAU,KACrB,OAAO,oBAAoB,MAAM,CAAE,sBAAuB,CACxD,GAAkB,EAClB,GAEH,EAAE,CAAC,EAEN,EAAA,EAAA,eAAgB,CACV,CAAC,GAAU,CAAC,EAAW,SAE3B,EAAW,QAAQ,cAAc,IAAI,EAAiB,EACrD,CAAC,EAAO,CAAC,EClCD,GAEP,CAAE,eACN,GAAW,CAEJ,GCaI,GAAA,EAAA,EAAA,eAAqD,CAChE,OAAQC,EAAAA,iBAAmBC,EAAAA,SAAe,sBAAsB,cAChE,cAAiB,KAClB,CAAC,CAKW,OAAA,EAAA,EAAA,YAAsC,EAAsB,CAa5D,GAER,CACH,OAAQ,EACR,cAAe,EACf,WACA,UAAW,EACX,qBACI,CACJ,GAAM,CAAE,wBAAyBA,EAAAA,SAAiB,EAAE,CAC9C,CAAE,cAAe,EAAqB,QAAS,GACnD,GAAwB,EAAE,CAKtB,CAAC,EAAe,IAAA,EAAA,EAAA,UAFpB,GAAcD,EAAAA,iBAAmB,GAAqB,EAIvD,EAED,EAAA,EAAA,eAAgB,CACV,GAAc,IAAe,GAC/B,EAAiB,EAAW,EAE7B,CAAC,EAAY,EAAe,EAAiB,CAAC,CAcjD,IAAM,EAAY,IAZK,GAA6B,CAC9C,KAAc,UAAU,GAAK,EAAU,UAAU,CAErD,IAAI,CAAC,GAAkB,IAAI,OAAO,CAAC,SAAS,EAAU,CAAE,CACtD,QAAQ,MAAM,UAAU,EAAU,mBAAmB,CACrD,OAGF,EAAiB,EAAU,CAC3B,EAAA,mBAAmB,EAAW,GAAmB,GAAK,IAKlD,GAAA,EAAA,EAAA,gBAAgC,GAAc,EAAc,CAElE,OACE,EAAA,EAAA,KAAC,EAAsB,SAAvB,CACE,MAAO,CACL,OAAQ,EACR,YACA,kBACD,CAEA,WAC8B,CAAA,EAwBxB,GAA8D,CACzE,WACA,GAAG,MAEH,EAAA,EAAA,MAAC,EAAD,CAAyB,GAAI,WAA7B,EACE,EAAA,EAAA,KAAC,EAAD,EAAkB,CAAA,CACjB,EACuB"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);let e=require(`preact/hooks`),t=require(`preact/jsx-runtime`);const n=({children:n,onPress:r,onHover:i,onUnhover:a,onClickOutside:o,pressDuration:s=250,isSelecting:c,...l})=>{let u=(0,e.useRef)(null),[d,f]=(0,e.useState)(!1),[p,m]=(0,e.useState)(c),h=(0,e.useRef)(null),g=typeof n==`string`,_=()=>{m(!0),r()},v=()=>{h.current=setTimeout(()=>{_()},s)},y=()=>{h.current&&=(clearTimeout(h.current),null)},b=()=>{y(),v()},x=()=>{f(!0),i?.()},S=()=>{d&&(f(!1),a?.()),y()},C=(0,e.useCallback)(e=>{u.current&&!u.current.contains(e.target)&&(m(!1),o?.())},[o]);return(0,e.useEffect)(()=>(document.addEventListener(`mousedown`,C),()=>{document.removeEventListener(`mousedown`,C)}),[C]),(0,t.jsx)(`span`,{style:{display:g?`inline`:`inline-block`,cursor:`pointer`,userSelect:`none`,borderRadius:`0.375rem`,outlineWidth:`2px`,outlineOffset:`4px`,outlineStyle:`solid`,outlineColor:c||p||d?`inherit`:`transparent`,transition:`all 100ms 50ms ease-in-out`},role:`button`,tabIndex:0,onKeyUp:()=>null,onClick:e=>{p&&(e.preventDefault(),e.stopPropagation())},onMouseDown:b,onMouseUp:S,onMouseLeave:S,onTouchStart:b,onTouchEnd:S,onTouchCancel:S,onBlur:()=>{m(!1)},onMouseEnter:x,ref:u,...l,children:n})};exports.ContentSelector=n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);let e=require(`preact/hooks`),t=require(`preact/jsx-runtime`);const n=({children:n,onPress:r,onHover:i,onUnhover:a,onClickOutside:o,pressDuration:s=250,isSelecting:c,...l})=>{let u=(0,e.useRef)(null),[d,f]=(0,e.useState)(!1),[p,m]=(0,e.useState)(c),h=(0,e.useRef)(null),g=typeof n==`string`,_=()=>{m(!0),r()},v=()=>{h.current=setTimeout(()=>{_()},s)},y=()=>{h.current&&=(clearTimeout(h.current),null)},b=()=>{y(),v()},x=()=>{f(!0),i?.()},S=()=>{d&&(f(!1),a?.()),y()},C=(0,e.useCallback)(e=>{u.current&&!u.current.contains(e.target)&&(m(!1),o?.())},[o]);return(0,e.useEffect)(()=>(document.addEventListener(`mousedown`,C),()=>{document.removeEventListener(`mousedown`,C)}),[C]),(0,t.jsx)(`span`,{style:{display:g?`inline`:`inline-block`,cursor:`pointer`,userSelect:`none`,borderRadius:`0.375rem`,outlineWidth:`2px`,outlineOffset:`4px`,outlineStyle:`solid`,outlineColor:c||p||d?`inherit`:`transparent`,transition:`all 100ms 50ms ease-in-out`},role:`button`,tabIndex:0,onKeyUp:()=>null,onClick:e=>{p&&(e.preventDefault(),e.stopPropagation())},onMouseDown:b,onMouseUp:S,onMouseLeave:S,onTouchStart:b,onTouchEnd:S,onTouchCancel:S,onBlur:()=>{m(!1)},onMouseEnter:x,ref:u,...l,children:n})};exports.ContentSelector=n;
2
2
  //# sourceMappingURL=ContentSelector.cjs.map
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`);exports.IntlayerClientContext=e.t,exports.IntlayerProvider=e.n,exports.IntlayerProviderContent=e.r,exports.useIntlayerContext=e.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`);exports.IntlayerClientContext=e.t,exports.IntlayerProvider=e.n,exports.IntlayerProviderContent=e.r,exports.useIntlayerContext=e.i;
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.compact)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.useCompact=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.compact)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.useCompact=r;
2
2
  //# sourceMappingURL=useCompact.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.currency)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.useCurrency=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.currency)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.useCurrency=r;
2
2
  //# sourceMappingURL=useCurrency.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(...e)=>(0,n.date)(e[0],{...e[1],locale:e[1]?.locale??r})};exports.useDate=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(...e)=>(0,n.date)(e[0],{...e[1],locale:e[1]?.locale??r})};exports.useDate=r;
2
2
  //# sourceMappingURL=useDate.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=r=>{let{locale:i}=(0,t.useContext)(e.t),a=r??i;return(0,t.useMemo)(()=>(0,n.bindIntl)(a),[a])};exports.useIntl=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=r=>{let{locale:i}=(0,t.useContext)(e.t),a=r??i;return(0,t.useMemo)(()=>(0,n.bindIntl)(a),[a])};exports.useIntl=r;
2
2
  //# sourceMappingURL=useIntl.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.list)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.useList=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.list)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.useList=r;
2
2
  //# sourceMappingURL=useList.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.number)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.useNumber=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.number)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.useNumber=r;
2
2
  //# sourceMappingURL=useNumber.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.percentage)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.usePercentage=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.percentage)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.usePercentage=r;
2
2
  //# sourceMappingURL=usePercentage.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.relativeTime)(e[0],e[1],{...e[2],locale:e[2]?.locale??r}),[r])};exports.useRelativeTime=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.relativeTime)(e[0],e[1],{...e[2],locale:e[2]?.locale??r}),[r])};exports.useRelativeTime=r;
2
2
  //# sourceMappingURL=useRelativeTime.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.units)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.useUnit=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`preact/hooks`),n=require(`@intlayer/core/formatters`);const r=()=>{let{locale:r}=(0,t.useContext)(e.t);return(0,t.useCallback)((...e)=>(0,n.units)(e[0],{...e[1],locale:e[1]?.locale??r}),[r])};exports.useUnit=r;
2
2
  //# sourceMappingURL=useUnit.cjs.map
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`),t=require(`./useLocaleStorage.cjs`),n=require(`./useLocale.cjs`),r=require(`./format/useIntl.cjs`),i=require(`./t.cjs`),a=require(`./useDictionary.cjs`),o=require(`./useDictionaryAsync.cjs`),s=require(`./useLoadDynamic.cjs`),c=require(`./useDictionaryDynamic.cjs`),l=require(`./useIntlayer.cjs`),u=require(`./useLocaleBase.cjs`);exports.IntlayerClientContext=e.t,exports.IntlayerProvider=e.n,exports.IntlayerProviderContent=e.r,exports.localeCookie=t.localeCookie,exports.localeInStorage=t.localeInStorage,exports.setLocaleCookie=t.setLocaleCookie,exports.setLocaleInStorage=t.setLocaleInStorage,exports.t=i.t,exports.useDictionary=a.useDictionary,exports.useDictionaryAsync=o.useDictionaryAsync,exports.useDictionaryDynamic=c.useDictionaryDynamic,exports.useIntl=r.useIntl,exports.useIntlayer=l.useIntlayer,exports.useIntlayerContext=e.i,exports.useLoadDynamic=s.useLoadDynamic,exports.useLocale=n.useLocale,exports.useLocaleBase=u.useLocaleBase,exports.useLocaleCookie=t.useLocaleCookie,exports.useLocaleStorage=t.useLocaleStorage;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`),t=require(`./useLocaleStorage.cjs`),n=require(`./useLocale.cjs`),r=require(`./format/useIntl.cjs`),i=require(`./t.cjs`),a=require(`./useDictionary.cjs`),o=require(`./useDictionaryAsync.cjs`),s=require(`./useLoadDynamic.cjs`),c=require(`./useDictionaryDynamic.cjs`),l=require(`./useIntlayer.cjs`),u=require(`./useLocaleBase.cjs`);exports.IntlayerClientContext=e.t,exports.IntlayerProvider=e.n,exports.IntlayerProviderContent=e.r,exports.localeCookie=t.localeCookie,exports.localeInStorage=t.localeInStorage,exports.setLocaleCookie=t.setLocaleCookie,exports.setLocaleInStorage=t.setLocaleInStorage,exports.t=i.t,exports.useDictionary=a.useDictionary,exports.useDictionaryAsync=o.useDictionaryAsync,exports.useDictionaryDynamic=c.useDictionaryDynamic,exports.useIntl=r.useIntl,exports.useIntlayer=l.useIntlayer,exports.useIntlayerContext=e.i,exports.useLoadDynamic=s.useLoadDynamic,exports.useLocale=n.useLocale,exports.useLocaleBase=u.useLocaleBase,exports.useLocaleCookie=t.useLocaleCookie,exports.useLocaleStorage=t.useLocaleStorage;
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`@intlayer/core/interpreter`),n=require(`preact/hooks`);const r=(r,i)=>{let{locale:a}=(0,n.useContext)(e.t);return(0,t.getTranslation)(r,i??a)};exports.t=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`@intlayer/core/interpreter`),n=require(`preact/hooks`);const r=(r,i)=>{let{locale:a}=(0,n.useContext)(e.t);return(0,t.getTranslation)(r,i??a)};exports.t=r;
2
2
  //# sourceMappingURL=t.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`),t=require(`../getDictionary.cjs`);let n=require(`preact/hooks`);const r=(r,i)=>{let{locale:a}=(0,n.useContext)(e.t);return(0,n.useMemo)(()=>t.getDictionary(r,i??a),[r.key,a,i])};exports.useDictionary=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`),t=require(`../getDictionary.cjs`);let n=require(`preact/hooks`);const r=(r,i)=>{let{locale:a}=(0,n.useContext)(e.t);return(0,n.useMemo)(()=>t.getDictionary(r,i??a),[r.key,a,i])};exports.useDictionary=r;
2
2
  //# sourceMappingURL=useDictionary.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`),t=require(`./useDictionary.cjs`);let n=require(`@intlayer/config/built`);n=e.s(n);let r=require(`preact/hooks`);const i=async(i,a)=>{let{locale:o}=(0,r.useContext)(e.t),s=(0,r.useMemo)(()=>a??o??n.default?.internationalization.defaultLocale,[o,a]);return t.useDictionary(await(0,r.useMemo)(async()=>await i[s]?.(),[i,s]),s)};exports.useDictionaryAsync=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`),t=require(`./useDictionary.cjs`);let n=require(`@intlayer/config/built`);n=e.s(n);let r=require(`preact/hooks`);const i=async(i,a)=>{let{locale:o}=(0,r.useContext)(e.t),s=(0,r.useMemo)(()=>a??o??n.default?.internationalization.defaultLocale,[o,a]);return t.useDictionary(await(0,r.useMemo)(async()=>await i[s]?.(),[i,s]),s)};exports.useDictionaryAsync=i;
2
2
  //# sourceMappingURL=useDictionaryAsync.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`),t=require(`./useDictionary.cjs`),n=require(`./useLoadDynamic.cjs`);let r=require(`preact/hooks`);const i=(i,a,o)=>{let{locale:s}=(0,r.useContext)(e.t),c=(0,r.useMemo)(()=>o??s,[s,o]);return t.useDictionary(n.useLoadDynamic(`${String(a)}.${c}`,i[c]?.()),c)};exports.useDictionaryDynamic=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`),t=require(`./useDictionary.cjs`),n=require(`./useLoadDynamic.cjs`);let r=require(`preact/hooks`);const i=(i,a,o)=>{let{locale:s}=(0,r.useContext)(e.t),c=(0,r.useMemo)(()=>o??s,[s,o]);return t.useDictionary(n.useLoadDynamic(`${String(a)}.${c}`,i[c]?.()),c)};exports.useDictionaryDynamic=i;
2
2
  //# sourceMappingURL=useDictionaryDynamic.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`),t=require(`../getIntlayer.cjs`);let n=require(`preact/hooks`);const r=(r,i)=>{let{locale:a}=(0,n.useContext)(e.t);return(0,n.useMemo)(()=>t.getIntlayer(r,i??a),[r,a,i])};exports.useIntlayer=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`),t=require(`../getIntlayer.cjs`);let n=require(`preact/hooks`);const r=(r,i)=>{let{locale:a}=(0,n.useContext)(e.t);return(0,n.useMemo)(()=>t.getIntlayer(r,i??a),[r,a,i])};exports.useIntlayer=r;
2
2
  //# sourceMappingURL=useIntlayer.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`),t=require(`./useLocaleStorage.cjs`);let n=require(`@intlayer/config/built`);n=e.s(n);let r=require(`preact/hooks`);const i=({isCookieEnabled:i,onLocaleChange:a}={})=>{let{defaultLocale:o,locales:s}=n.default?.internationalization??{},{locale:c,setLocale:l,isCookieEnabled:u}=(0,r.useContext)(e.t);return{locale:c,defaultLocale:o,availableLocales:s,setLocale:e=>{if(!s?.map(String).includes(e)){console.error(`Locale ${e} is not available`);return}l(e),t.setLocaleInStorage(e,i??u??!0),a?.(e)}}};exports.useLocale=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`),t=require(`./useLocaleStorage.cjs`);let n=require(`@intlayer/config/built`);n=e.s(n);let r=require(`preact/hooks`);const i=({isCookieEnabled:i,onLocaleChange:a}={})=>{let{defaultLocale:o,locales:s}=n.default?.internationalization??{},{locale:c,setLocale:l,isCookieEnabled:u}=(0,r.useContext)(e.t);return{locale:c,defaultLocale:o,availableLocales:s,setLocale:e=>{if(!s?.map(String).includes(e)){console.error(`Locale ${e} is not available`);return}l(e),t.setLocaleInStorage(e,i??u??!0),a?.(e)}}};exports.useLocale=i;
2
2
  //# sourceMappingURL=useLocale.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`@intlayer/config/built`);t=e.s(t);let n=require(`preact/hooks`);const{defaultLocale:r,locales:i}=t.default.internationalization,a=()=>{let{locale:t,setLocale:a}=(0,n.useContext)(e.t);return{locale:t,defaultLocale:r,availableLocales:i,setLocale:a}};exports.useLocaleBase=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`@intlayer/config/built`);t=e.s(t);let n=require(`preact/hooks`);const{defaultLocale:r,locales:i}=t.default.internationalization,a=()=>{let{locale:t,setLocale:a}=(0,n.useContext)(e.t);return{locale:t,defaultLocale:r,availableLocales:i,setLocale:a}};exports.useLocaleBase=a;
2
2
  //# sourceMappingURL=useLocaleBase.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);let e=require(`preact/hooks`),t=require(`@intlayer/core/localization`),n=require(`@intlayer/core/utils`);const r=(0,n.getLocaleFromStorage)(t.localeStorageOptions),i=r,a=(e,r)=>(0,n.setLocaleInStorage)(e,{...t.localeStorageOptions,isCookieEnabled:r}),o=a,s=r=>(0,e.useMemo)(()=>(0,n.LocaleStorage)({...t.localeStorageOptions,isCookieEnabled:r}),[r]),c=e=>{let t=s(e);return{localeCookie:t.getLocale(),setLocaleCookie:t.setLocale}};exports.localeCookie=i,exports.localeInStorage=r,exports.setLocaleCookie=o,exports.setLocaleInStorage=a,exports.useLocaleCookie=c,exports.useLocaleStorage=s;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);let e=require(`preact/hooks`),t=require(`@intlayer/core/localization`),n=require(`@intlayer/core/utils`);const r=(0,n.getLocaleFromStorage)(t.localeStorageOptions),i=r,a=(e,r)=>(0,n.setLocaleInStorage)(e,{...t.localeStorageOptions,isCookieEnabled:r}),o=a,s=r=>(0,e.useMemo)(()=>(0,n.LocaleStorage)({...t.localeStorageOptions,isCookieEnabled:r}),[r]),c=e=>{let t=s(e);return{localeCookie:t.getLocale(),setLocaleCookie:t.setLocale}};exports.localeCookie=i,exports.localeInStorage=r,exports.setLocaleCookie=o,exports.setLocaleInStorage=a,exports.useLocaleCookie=c,exports.useLocaleStorage=s;
2
2
  //# sourceMappingURL=useLocaleStorage.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`);let t=require(`@intlayer/core/interpreter`),n=require(`preact/hooks`);const r=r=>{let{locale:i}=(0,n.useContext)(e.t);return(0,n.useMemo)(()=>(0,t.getTranslation)(r,i),[r,i])};exports.useTranslation=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`);let t=require(`@intlayer/core/interpreter`),n=require(`preact/hooks`);const r=r=>{let{locale:i}=(0,n.useContext)(e.t);return(0,n.useMemo)(()=>(0,t.getTranslation)(r,i),[r,i])};exports.useTranslation=r;
2
2
  //# sourceMappingURL=useTraduction.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);let e=require(`@intlayer/editor/isEnabled`),t=require(`preact/hooks`),n=require(`preact/jsx-runtime`);const r=({children:r,dictionaryKey:i,keyPath:a})=>((0,t.useEffect)(()=>{!e.isEnabled||typeof window>`u`||import(`@intlayer/editor`).then(({defineIntlayerElements:e})=>{e()})},[e.isEnabled]),e.isEnabled?(0,n.jsx)(`intlayer-content-selector-wrapper`,{"key-path":JSON.stringify(a),"dictionary-key":i,children:r}):r);exports.ContentSelector=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);let e=require(`@intlayer/editor/isEnabled`),t=require(`preact/hooks`),n=require(`preact/jsx-runtime`);const r=({children:r,dictionaryKey:i,keyPath:a})=>((0,t.useEffect)(()=>{process.env.INTLAYER_EDITOR_ENABLED===`false`||!e.isEnabled||typeof window>`u`||import(`@intlayer/editor`).then(({defineIntlayerElements:e})=>{e()})},[e.isEnabled]),e.isEnabled?(0,n.jsx)(`intlayer-content-selector-wrapper`,{"key-path":JSON.stringify(a),"dictionary-key":i,children:r}):r);exports.ContentSelector=r;
2
2
  //# sourceMappingURL=ContentSelector.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentSelector.cjs","names":["isEnabled"],"sources":["../../../src/editor/ContentSelector.tsx"],"sourcesContent":["import type { NodeProps } from '@intlayer/core/interpreter';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { FunctionalComponent, HTMLAttributes } from 'preact';\nimport { useEffect } from 'preact/hooks';\n\n// JSX declaration for the Lit web component in Preact\ndeclare module 'preact' {\n namespace JSX {\n interface IntrinsicElements {\n 'intlayer-content-selector-wrapper': HTMLAttributes<HTMLElement> & {\n 'key-path'?: string;\n 'dictionary-key'?: string;\n };\n }\n }\n}\n\nexport type ContentSelectorWrapperProps = NodeProps &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const ContentSelector: FunctionalComponent<\n ContentSelectorWrapperProps\n> = ({ children, dictionaryKey, keyPath }) => {\n useEffect(() => {\n if (!isEnabled || typeof window === 'undefined') return;\n import('@intlayer/editor').then(({ defineIntlayerElements }) => {\n defineIntlayerElements();\n });\n }, [isEnabled]);\n\n if (!isEnabled) {\n return children;\n }\n\n return (\n <intlayer-content-selector-wrapper\n key-path={JSON.stringify(keyPath)}\n dictionary-key={dictionaryKey}\n >\n {children}\n </intlayer-content-selector-wrapper>\n );\n};\n"],"mappings":"qNAoBA,MAAa,GAER,CAAE,WAAU,gBAAe,eAC9B,EAAA,EAAA,eAAgB,CACV,CAACA,EAAAA,WAAa,OAAO,OAAW,KACpC,OAAO,oBAAoB,MAAM,CAAE,4BAA6B,CAC9D,GAAwB,EACxB,EACD,CAACA,EAAAA,UAAU,CAAC,CAEVA,EAAAA,WAKH,EAAA,EAAA,KAAC,oCAAD,CACE,WAAU,KAAK,UAAU,EAAQ,CACjC,iBAAgB,EAEf,WACiC,CAAA,CAT7B"}
1
+ {"version":3,"file":"ContentSelector.cjs","names":["isEnabled"],"sources":["../../../src/editor/ContentSelector.tsx"],"sourcesContent":["import type { NodeProps } from '@intlayer/core/interpreter';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { FunctionalComponent, HTMLAttributes } from 'preact';\nimport { useEffect } from 'preact/hooks';\n\n// JSX declaration for the Lit web component in Preact\ndeclare module 'preact' {\n namespace JSX {\n interface IntrinsicElements {\n 'intlayer-content-selector-wrapper': HTMLAttributes<HTMLElement> & {\n 'key-path'?: string;\n 'dictionary-key'?: string;\n };\n }\n }\n}\n\nexport type ContentSelectorWrapperProps = NodeProps &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const ContentSelector: FunctionalComponent<\n ContentSelectorWrapperProps\n> = ({ children, dictionaryKey, keyPath }) => {\n useEffect(() => {\n if (\n process.env.INTLAYER_EDITOR_ENABLED === 'false' ||\n !isEnabled ||\n typeof window === 'undefined'\n )\n return;\n import('@intlayer/editor').then(({ defineIntlayerElements }) => {\n defineIntlayerElements();\n });\n }, [isEnabled]);\n\n if (!isEnabled) {\n return children;\n }\n\n return (\n <intlayer-content-selector-wrapper\n key-path={JSON.stringify(keyPath)}\n dictionary-key={dictionaryKey}\n >\n {children}\n </intlayer-content-selector-wrapper>\n );\n};\n"],"mappings":"qNAoBA,MAAa,GAER,CAAE,WAAU,gBAAe,eAC9B,EAAA,EAAA,eAAgB,CAEZ,QAAQ,IAAI,0BAA4B,SACxC,CAACA,EAAAA,WACD,OAAO,OAAW,KAGpB,OAAO,oBAAoB,MAAM,CAAE,4BAA6B,CAC9D,GAAwB,EACxB,EACD,CAACA,EAAAA,UAAU,CAAC,CAEVA,EAAAA,WAKH,EAAA,EAAA,KAAC,oCAAD,CACE,WAAU,KAAK,UAAU,EAAQ,CACjC,iBAAgB,EAEf,WACiC,CAAA,CAT7B"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`);exports.EditorProvider=e.a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`);exports.EditorProvider=e.a;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-D6OWJC7Y.cjs`);exports.useEditor=e.o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../IntlayerProvider-sM1gzsx7.cjs`);exports.useEditor=e.o;
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./IntlayerProvider-D6OWJC7Y.cjs`);const e=require(`./plugins.cjs`);let t=require(`@intlayer/core/interpreter`);const n=(n,r)=>(0,t.getDictionary)(n,r,e.getPlugins(r));exports.getDictionary=n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./IntlayerProvider-sM1gzsx7.cjs`);const e=require(`./plugins.cjs`);let t=require(`@intlayer/core/interpreter`);const n=(n,r)=>(0,t.getDictionary)(n,r,e.getPlugins(r));exports.getDictionary=n;
2
2
  //# sourceMappingURL=getDictionary.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./IntlayerProvider-D6OWJC7Y.cjs`);const e=require(`./plugins.cjs`);let t=require(`@intlayer/core/interpreter`);const n=(n,r)=>(0,t.getIntlayer)(n,r,e.getPlugins(r));exports.getIntlayer=n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./IntlayerProvider-sM1gzsx7.cjs`);const e=require(`./plugins.cjs`);let t=require(`@intlayer/core/interpreter`);const n=(n,r)=>(0,t.getIntlayer)(n,r,e.getPlugins(r));exports.getIntlayer=n;
2
2
  //# sourceMappingURL=getIntlayer.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);let e=require(`preact`),t=require(`preact/hooks`),n=require(`preact/jsx-runtime`);const r=(0,e.createContext)(void 0),i=()=>(0,t.useContext)(r),a=({children:e,components:t})=>(0,n.jsx)(r.Provider,{value:{components:t},children:e});exports.HTMLProvider=a,exports.useHTMLContext=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);let e=require(`preact`),t=require(`preact/hooks`),n=require(`preact/jsx-runtime`);const r=(0,e.createContext)(void 0),i=()=>(0,t.useContext)(r),a=({children:e,components:t})=>(0,n.jsx)(r.Provider,{value:{components:t},children:e});exports.HTMLProvider=a,exports.useHTMLContext=i;
2
2
  //# sourceMappingURL=HTMLProvider.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);const e=require(`./HTMLProvider.cjs`);let t=require(`@intlayer/core/interpreter`),n=require(`preact`),r=require(`@intlayer/core/transpiler`);const i=(()=>{let e={};for(let t of r.HTML_TAGS)e[t]=({children:e,...r})=>(0,n.h)(t,r,e);return e})(),a=(e,{components:r}={})=>{let a={...i,...r};return(0,n.h)(n.Fragment,null,(0,t.getHTML)(e,Object.fromEntries(Object.entries(a).filter(([,e])=>e).map(([e,t])=>[e,e=>(0,n.h)(t,e)]))))},o=({components:t}={})=>{let n=e.useHTMLContext();return e=>a(e,{components:{...n?.components,...t}})},s=({children:e=``,html:t,components:n})=>o({components:n})(e||t||``);exports.HTMLRenderer=s,exports.defaultHTMLComponents=i,exports.renderHTML=a,exports.useHTMLRenderer=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);const e=require(`./HTMLProvider.cjs`);let t=require(`@intlayer/core/interpreter`),n=require(`preact`),r=require(`@intlayer/core/transpiler`);const i=(()=>{let e={};for(let t of r.HTML_TAGS)e[t]=({children:e,...r})=>(0,n.h)(t,r,e);return e})(),a=(e,{components:r}={})=>{let a={...i,...r};return(0,n.h)(n.Fragment,null,(0,t.getHTML)(e,Object.fromEntries(Object.entries(a).filter(([,e])=>e).map(([e,t])=>[e,e=>(0,n.h)(t,e)]))))},o=({components:t}={})=>{let n=e.useHTMLContext();return e=>a(e,{components:{...n?.components,...t}})},s=({children:e=``,html:t,components:n})=>o({components:n})(e||t||``);exports.HTMLRenderer=s,exports.defaultHTMLComponents=i,exports.renderHTML=a,exports.useHTMLRenderer=o;
2
2
  //# sourceMappingURL=HTMLRenderer.cjs.map
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./IntlayerProvider-D6OWJC7Y.cjs`),t=require(`./html/HTMLProvider.cjs`),n=require(`./html/HTMLRenderer.cjs`),r=require(`./markdown/runtime.cjs`),i=require(`./markdown/compiler.cjs`),a=require(`./markdown/MarkdownProvider.cjs`),o=require(`./markdown/MarkdownRenderer.cjs`),s=require(`./client/useLocaleStorage.cjs`),c=require(`./client/useLocale.cjs`),l=require(`./plugins.cjs`),u=require(`./getIntlayer.cjs`),d=require(`./getDictionary.cjs`),f=require(`./client/format/useIntl.cjs`),p=require(`./client/t.cjs`),m=require(`./client/useDictionary.cjs`),h=require(`./client/useDictionaryAsync.cjs`),g=require(`./client/useLoadDynamic.cjs`),_=require(`./client/useDictionaryDynamic.cjs`),v=require(`./client/useIntlayer.cjs`),y=require(`./client/useLocaleBase.cjs`);require(`./client/index.cjs`),require(`./html/index.cjs`),exports.HTMLProvider=t.HTMLProvider,exports.HTMLRenderer=n.HTMLRenderer,exports.IntlayerClientContext=e.t,exports.IntlayerProvider=e.n,exports.IntlayerProviderContent=e.r,exports.MarkdownProvider=a.MarkdownProvider,exports.MarkdownRenderer=o.MarkdownRenderer,exports.compileMarkdown=i.compileMarkdown,exports.getDictionary=d.getDictionary,exports.getIntlayer=u.getIntlayer,exports.htmlPlugin=l.htmlPlugin,exports.intlayerNodePlugins=l.intlayerNodePlugins,exports.localeCookie=s.localeCookie,exports.markdownPlugin=l.markdownPlugin,exports.markdownStringPlugin=l.markdownStringPlugin,exports.preactNodePlugins=l.preactNodePlugins,exports.preactRuntime=r,exports.renderHTML=n.renderHTML,exports.renderMarkdown=o.renderMarkdown,exports.setLocaleCookie=s.setLocaleCookie,exports.setLocaleInStorage=s.setLocaleInStorage,exports.t=p.t,exports.useDictionary=m.useDictionary,exports.useDictionaryAsync=h.useDictionaryAsync,exports.useDictionaryDynamic=_.useDictionaryDynamic,exports.useHTMLRenderer=n.useHTMLRenderer,exports.useIntl=f.useIntl,exports.useIntlayer=v.useIntlayer,exports.useIntlayerContext=e.i,exports.useLoadDynamic=g.useLoadDynamic,exports.useLocale=c.useLocale,exports.useLocaleBase=y.useLocaleBase,exports.useLocaleCookie=s.useLocaleCookie,exports.useLocaleStorage=s.useLocaleStorage,exports.useMarkdownRenderer=o.useMarkdownRenderer;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./IntlayerProvider-sM1gzsx7.cjs`),t=require(`./html/HTMLProvider.cjs`),n=require(`./html/HTMLRenderer.cjs`),r=require(`./markdown/runtime.cjs`),i=require(`./markdown/compiler.cjs`),a=require(`./markdown/MarkdownProvider.cjs`),o=require(`./markdown/MarkdownRenderer.cjs`),s=require(`./client/useLocaleStorage.cjs`),c=require(`./client/useLocale.cjs`),l=require(`./plugins.cjs`),u=require(`./getIntlayer.cjs`),d=require(`./getDictionary.cjs`),f=require(`./client/format/useIntl.cjs`),p=require(`./client/t.cjs`),m=require(`./client/useDictionary.cjs`),h=require(`./client/useDictionaryAsync.cjs`),g=require(`./client/useLoadDynamic.cjs`),_=require(`./client/useDictionaryDynamic.cjs`),v=require(`./client/useIntlayer.cjs`),y=require(`./client/useLocaleBase.cjs`);require(`./client/index.cjs`),require(`./html/index.cjs`),exports.HTMLProvider=t.HTMLProvider,exports.HTMLRenderer=n.HTMLRenderer,exports.IntlayerClientContext=e.t,exports.IntlayerProvider=e.n,exports.IntlayerProviderContent=e.r,exports.MarkdownProvider=a.MarkdownProvider,exports.MarkdownRenderer=o.MarkdownRenderer,exports.compileMarkdown=i.compileMarkdown,exports.getDictionary=d.getDictionary,exports.getIntlayer=u.getIntlayer,exports.htmlPlugin=l.htmlPlugin,exports.intlayerNodePlugins=l.intlayerNodePlugins,exports.localeCookie=s.localeCookie,exports.markdownPlugin=l.markdownPlugin,exports.markdownStringPlugin=l.markdownStringPlugin,exports.preactNodePlugins=l.preactNodePlugins,exports.preactRuntime=r,exports.renderHTML=n.renderHTML,exports.renderMarkdown=o.renderMarkdown,exports.setLocaleCookie=s.setLocaleCookie,exports.setLocaleInStorage=s.setLocaleInStorage,exports.t=p.t,exports.useDictionary=m.useDictionary,exports.useDictionaryAsync=h.useDictionaryAsync,exports.useDictionaryDynamic=_.useDictionaryDynamic,exports.useHTMLRenderer=n.useHTMLRenderer,exports.useIntl=f.useIntl,exports.useIntlayer=v.useIntlayer,exports.useIntlayerContext=e.i,exports.useLoadDynamic=g.useLoadDynamic,exports.useLocale=c.useLocale,exports.useLocaleBase=y.useLocaleBase,exports.useLocaleCookie=s.useLocaleCookie,exports.useLocaleStorage=s.useLocaleStorage,exports.useMarkdownRenderer=o.useMarkdownRenderer;
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);const e=require(`./compiler.cjs`);let t=require(`preact`),n=require(`preact/hooks`),r=require(`preact/jsx-runtime`);const i=(0,t.createContext)(void 0),a=()=>(0,n.useContext)(i),o=(e,t,n={},r={},i)=>({...t,...n,forceBlock:n.forceBlock??t.forceBlock,forceInline:n.forceInline??t.forceInline,preserveFrontmatter:n.preserveFrontmatter??t.preserveFrontmatter,tagfilter:n.tagfilter??t.tagfilter,wrapper:i||t.wrapper,forceWrapper:!!(i||t.wrapper),components:{...e,...r}}),s=({children:t,components:n,wrapper:a,forceBlock:s,forceInline:c,preserveFrontmatter:l,tagfilter:u,renderMarkdown:d})=>{let f={forceBlock:s,forceInline:c,wrapper:a,forceWrapper:!!a,preserveFrontmatter:l,tagfilter:u};return(0,r.jsx)(i.Provider,{value:{components:n,renderMarkdown:d?(e,t,n,a)=>(0,r.jsx)(i.Provider,{value:void 0,children:d?.(e,t,n,a)}):(t,r,i,a)=>e.compileMarkdown(t,o(n,f,r,i??{},a))},children:t})};exports.MarkdownProvider=s,exports.useMarkdownContext=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);const e=require(`./compiler.cjs`);let t=require(`preact`),n=require(`preact/hooks`),r=require(`preact/jsx-runtime`);const i=(0,t.createContext)(void 0),a=()=>(0,n.useContext)(i),o=(e,t,n={},r={},i)=>({...t,...n,forceBlock:n.forceBlock??t.forceBlock,forceInline:n.forceInline??t.forceInline,preserveFrontmatter:n.preserveFrontmatter??t.preserveFrontmatter,tagfilter:n.tagfilter??t.tagfilter,wrapper:i||t.wrapper,forceWrapper:!!(i||t.wrapper),components:{...e,...r}}),s=({children:t,components:n,wrapper:a,forceBlock:s,forceInline:c,preserveFrontmatter:l,tagfilter:u,renderMarkdown:d})=>{let f={forceBlock:s,forceInline:c,wrapper:a,forceWrapper:!!a,preserveFrontmatter:l,tagfilter:u};return(0,r.jsx)(i.Provider,{value:{components:n,renderMarkdown:d?(e,t,n,a)=>(0,r.jsx)(i.Provider,{value:void 0,children:d?.(e,t,n,a)}):(t,r,i,a)=>e.compileMarkdown(t,o(n,f,r,i??{},a))},children:t})};exports.MarkdownProvider=s,exports.useMarkdownContext=a;
2
2
  //# sourceMappingURL=MarkdownProvider.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);const e=require(`./compiler.cjs`),t=require(`./MarkdownProvider.cjs`);let n=require(`preact/jsx-runtime`);const r=(t,{components:n,wrapper:r,forceBlock:i,forceInline:a,preserveFrontmatter:o,tagfilter:s}={})=>e.compileMarkdown(t,{components:n,forceBlock:i,forceInline:a,wrapper:r,forceWrapper:!!r,preserveFrontmatter:o,tagfilter:s}),i=({components:e,wrapper:n,forceBlock:i,forceInline:a,preserveFrontmatter:o,tagfilter:s}={})=>{let c=t.useMarkdownContext();return t=>c?c.renderMarkdown(t,{components:e,wrapper:n,forceBlock:i,forceInline:a,preserveFrontmatter:o,tagfilter:s}):r(t,{components:e,wrapper:n,forceBlock:i,forceInline:a,preserveFrontmatter:o,tagfilter:s})},a=({children:e=``,components:i,wrapper:a,forceBlock:o,forceInline:s,preserveFrontmatter:c,tagfilter:l,renderMarkdown:u})=>{let d=t.useMarkdownContext();return u?(0,n.jsx)(n.Fragment,{children:u(e,{components:i,wrapper:a,forceBlock:o,forceInline:s,preserveFrontmatter:c,tagfilter:l})}):d?(0,n.jsx)(n.Fragment,{children:d.renderMarkdown(e,{components:i,wrapper:a,forceBlock:o,forceInline:s,preserveFrontmatter:c,tagfilter:l})}):r(e,{components:i,wrapper:a,forceBlock:o,forceInline:s,preserveFrontmatter:c,tagfilter:l})};exports.MarkdownRenderer=a,exports.renderMarkdown=r,exports.useMarkdownRenderer=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);const e=require(`./compiler.cjs`),t=require(`./MarkdownProvider.cjs`);let n=require(`preact/jsx-runtime`);const r=(t,{components:n,wrapper:r,forceBlock:i,forceInline:a,preserveFrontmatter:o,tagfilter:s}={})=>e.compileMarkdown(t,{components:n,forceBlock:i,forceInline:a,wrapper:r,forceWrapper:!!r,preserveFrontmatter:o,tagfilter:s}),i=({components:e,wrapper:n,forceBlock:i,forceInline:a,preserveFrontmatter:o,tagfilter:s}={})=>{let c=t.useMarkdownContext();return t=>c?c.renderMarkdown(t,{components:e,wrapper:n,forceBlock:i,forceInline:a,preserveFrontmatter:o,tagfilter:s}):r(t,{components:e,wrapper:n,forceBlock:i,forceInline:a,preserveFrontmatter:o,tagfilter:s})},a=({children:e=``,components:i,wrapper:a,forceBlock:o,forceInline:s,preserveFrontmatter:c,tagfilter:l,renderMarkdown:u})=>{let d=t.useMarkdownContext();return u?(0,n.jsx)(n.Fragment,{children:u(e,{components:i,wrapper:a,forceBlock:o,forceInline:s,preserveFrontmatter:c,tagfilter:l})}):d?(0,n.jsx)(n.Fragment,{children:d.renderMarkdown(e,{components:i,wrapper:a,forceBlock:o,forceInline:s,preserveFrontmatter:c,tagfilter:l})}):r(e,{components:i,wrapper:a,forceBlock:o,forceInline:s,preserveFrontmatter:c,tagfilter:l})};exports.MarkdownRenderer=a,exports.renderMarkdown=r,exports.useMarkdownRenderer=i;
2
2
  //# sourceMappingURL=MarkdownRenderer.cjs.map
@@ -1,2 +1,2 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);const e=require(`./MarkdownProvider.cjs`),t=require(`../client/useLocale.cjs`);let n=require(`@intlayer/core/markdown`),r=require(`@intlayer/core/dictionaryManipulator`);const i=t=>{let{children:n,options:r,components:i}=t,a=e.useMarkdownContext();return(a?.renderMarkdown??(e=>e))(n,r,{...a?.components??{},...i??{}})},a=({children:e,metadataKeyPath:i})=>{let{locale:a}=t.useLocale();return(0,r.getContentNodeByKeyPath)((0,n.getMarkdownMetadata)(e),i,a)};exports.MarkdownMetadataRenderer=a,exports.MarkdownRendererPlugin=i;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);const e=require(`./MarkdownProvider.cjs`),t=require(`../client/useLocale.cjs`);let n=require(`@intlayer/core/markdown`),r=require(`@intlayer/core/dictionaryManipulator`);const i=t=>{let{children:n,options:r,components:i}=t,a=e.useMarkdownContext();return(a?.renderMarkdown??(e=>e))(n,r,{...a?.components??{},...i??{}})},a=({children:e,metadataKeyPath:i})=>{let{locale:a}=t.useLocale();return(0,r.getContentNodeByKeyPath)((0,n.getMarkdownMetadata)(e),i,a)};exports.MarkdownMetadataRenderer=a,exports.MarkdownRendererPlugin=i;
2
2
  //# sourceMappingURL=MarkdownRendererPlugin.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);const e=require(`./runtime.cjs`);let t=require(`@intlayer/core/markdown`);const n=(n=``,r={})=>(0,t.compileWithOptions)(n,e.default,r),r=n,i=n;exports.RuleType=t.RuleType,exports.compile=i,exports.compileMarkdown=n,exports.compiler=r,exports.sanitizer=t.sanitizer,exports.slugify=t.slugify;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);const e=require(`./runtime.cjs`);let t=require(`@intlayer/core/markdown`);const n=(n=``,r={})=>(0,t.compileWithOptions)(n,e.default,r),r=n,i=n;exports.RuleType=t.RuleType,exports.compile=i,exports.compileMarkdown=n,exports.compiler=r,exports.sanitizer=t.sanitizer,exports.slugify=t.slugify;
2
2
  //# sourceMappingURL=compiler.cjs.map
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);const e=require(`./runtime.cjs`),t=require(`./compiler.cjs`),n=require(`./MarkdownProvider.cjs`),r=require(`./MarkdownRenderer.cjs`),i=require(`./MarkdownRendererPlugin.cjs`);let a=require(`@intlayer/core/markdown`);exports.MarkdownMetadataRenderer=i.MarkdownMetadataRenderer,exports.MarkdownProvider=n.MarkdownProvider,exports.MarkdownRenderer=r.MarkdownRenderer,exports.MarkdownRendererPlugin=i.MarkdownRendererPlugin,exports.RuleType=a.RuleType,exports.compile=t.compile,exports.compileMarkdown=t.compileMarkdown,exports.compiler=t.compiler,exports.preactRuntime=e,exports.renderMarkdown=r.renderMarkdown,exports.sanitizer=a.sanitizer,exports.slugify=a.slugify,exports.useMarkdownContext=n.useMarkdownContext,exports.useMarkdownRenderer=r.useMarkdownRenderer;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);const e=require(`./runtime.cjs`),t=require(`./compiler.cjs`),n=require(`./MarkdownProvider.cjs`),r=require(`./MarkdownRenderer.cjs`),i=require(`./MarkdownRendererPlugin.cjs`);let a=require(`@intlayer/core/markdown`);exports.MarkdownMetadataRenderer=i.MarkdownMetadataRenderer,exports.MarkdownProvider=n.MarkdownProvider,exports.MarkdownRenderer=r.MarkdownRenderer,exports.MarkdownRendererPlugin=i.MarkdownRendererPlugin,exports.RuleType=a.RuleType,exports.compile=t.compile,exports.compileMarkdown=t.compileMarkdown,exports.compiler=t.compiler,exports.preactRuntime=e,exports.renderMarkdown=r.renderMarkdown,exports.sanitizer=a.sanitizer,exports.slugify=a.slugify,exports.useMarkdownContext=n.useMarkdownContext,exports.useMarkdownRenderer=r.useMarkdownRenderer;
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);let e=require(`preact`);const t={createElement:(t,n,...r)=>(0,e.createElement)(t,n,...r),cloneElement:(t,n,...r)=>(0,e.cloneElement)(t,n,...r),Fragment:e.Fragment,normalizeProps:(e,t)=>t};exports.default=t,exports.preactRuntime=t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../IntlayerProvider-sM1gzsx7.cjs`);let e=require(`preact`);const t={createElement:(t,n,...r)=>(0,e.createElement)(t,n,...r),cloneElement:(t,n,...r)=>(0,e.cloneElement)(t,n,...r),Fragment:e.Fragment,normalizeProps:(e,t)=>t};exports.default=t,exports.preactRuntime=t;
2
2
  //# sourceMappingURL=runtime.cjs.map
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./IntlayerProvider-D6OWJC7Y.cjs`),t=require(`./editor/ContentSelector.cjs`),n=require(`./html/HTMLRenderer.cjs`),r=require(`./IntlayerNode.cjs`),i=require(`./markdown/MarkdownRendererPlugin.cjs`),a=require(`./preactElement/renderPreactElement.cjs`);let o=require(`@intlayer/config/built`);o=e.s(o);let s=require(`@intlayer/core/interpreter`),c=require(`@intlayer/core/markdown`),l=require(`@intlayer/types/nodeType`),u=require(`preact`),d=require(`preact/jsx-runtime`);const f={id:`intlayer-node-plugin`,canHandle:e=>typeof e==`bigint`||typeof e==`string`||typeof e==`number`,transform:(e,{plugins:n,...i})=>r.renderIntlayerNode({...i,value:i.children,children:o.default?.editor.enabled?(0,u.createElement)(t.ContentSelector,{...i,key:i.children},i.children):i.children})},p={id:`preact-node-plugin`,canHandle:e=>typeof e==`object`&&e.props!==void 0&&e.key!==void 0,transform:(e,{plugins:n,...i})=>r.renderIntlayerNode({...i,value:`[[preact-element]]`,children:o.default?.editor.enabled?(0,d.jsx)(t.ContentSelector,{...i,children:a.renderPreactElement(e)}):a.renderPreactElement(e)})},m=e=>e!=null&&typeof e!=`string`&&typeof e!=`number`&&typeof e!=`boolean`,h=(e,t)=>{if(!Object.values(t).some(m))return e.replace(/\{\{\s*(.*?)\s*\}\}/g,(e,n)=>(t[n.trim()]??``).toString());let n=[],r=0,i=/\{\{\s*(.*?)\s*\}\}/g,a=i.exec(e);for(;a!==null;){a.index>r&&n.push(e.substring(r,a.index));let o=t[a[1].trim()];o!=null&&n.push(typeof o==`number`?String(o):o),r=a.index+a[0].length,a=i.exec(e)}return r<e.length&&n.push(e.substring(r)),(0,u.h)(u.Fragment,null,...n.map((e,t)=>(0,u.h)(u.Fragment,{key:t},e)))},g={id:`insertion-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===l.NodeType.Insertion,transform:(e,t,n)=>{let r=[...t.keyPath,{type:l.NodeType.Insertion}],i=e[l.NodeType.Insertion],a={id:`insertion-string-plugin`,canHandle:e=>typeof e==`string`,transform:(e,n,r)=>{let i=r(e,{...n,children:e,plugins:[...(t.plugins??[]).filter(e=>e.id!==`intlayer-node-plugin`)]});return e=>{let a=h(i,e);return r(a,{...n,plugins:t.plugins,children:a})}}};return n(i,{...t,children:i,keyPath:r,plugins:[a,...t.plugins??[]]})}},_={id:`markdown-string-plugin`,canHandle:e=>typeof e==`string`,transform:(e,n,a)=>{let{plugins:o,...s}=n,l=a((0,c.getMarkdownMetadata)(e),{plugins:[{id:`markdown-metadata-plugin`,canHandle:e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`||!e,transform:(n,a)=>r.renderIntlayerNode({...a,value:n,children:(0,d.jsx)(t.ContentSelector,{...s,children:(0,d.jsx)(i.MarkdownMetadataRenderer,{...s,metadataKeyPath:a.keyPath,children:e})})})}],dictionaryKey:s.dictionaryKey,keyPath:[]}),u=a=>r.renderIntlayerNode({...n,value:e,children:(0,d.jsx)(t.ContentSelector,{...s,children:(0,d.jsx)(i.MarkdownRendererPlugin,{...s,components:a,children:e})}),additionalProps:{metadata:l}}),f=u();return new Proxy(f,{get(t,n){return n===`value`?e:n===`metadata`?l:n===`use`?e=>u(e):Reflect.get(t,n)}})}},v={id:`markdown-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===l.NodeType.Markdown,transform:(e,t,n)=>{let r=[...t.keyPath,{type:l.NodeType.Markdown}],i=e[l.NodeType.Markdown];return n(i,{...t,children:i,keyPath:r,plugins:[_,...t.plugins??[]]})}},y={id:`html-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===l.NodeType.HTML,transform:(e,t)=>{let r=e[l.NodeType.HTML];e.tags;let{plugins:i,...a}=t,o=e=>(0,u.h)(n.HTMLRenderer,{...a,html:r,userComponents:e}),s=o();return new Proxy(s,{get(e,t){return t===`value`?r:t===`use`?e=>o(e):Reflect.get(e,t)}})}},b=(e,t=!0)=>[(0,s.translationPlugin)(e??o.default.internationalization.defaultLocale,t?o.default.internationalization.defaultLocale:void 0),s.enumerationPlugin,s.conditionPlugin,(0,s.nestedPlugin)(e??o.default.internationalization.defaultLocale),s.filePlugin,s.genderPlugin,f,p,g,v,y];exports.getPlugins=b,exports.htmlPlugin=y,exports.insertionPlugin=g,exports.intlayerNodePlugins=f,exports.markdownPlugin=v,exports.markdownStringPlugin=_,exports.preactNodePlugins=p;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./IntlayerProvider-sM1gzsx7.cjs`),t=require(`./editor/ContentSelector.cjs`),n=require(`./html/HTMLRenderer.cjs`),r=require(`./IntlayerNode.cjs`),i=require(`./markdown/MarkdownRendererPlugin.cjs`),a=require(`./preactElement/renderPreactElement.cjs`);let o=require(`@intlayer/config/built`);o=e.s(o);let s=require(`@intlayer/core/interpreter`),c=require(`@intlayer/core/markdown`),l=require(`@intlayer/types/nodeType`),u=require(`preact`),d=require(`preact/jsx-runtime`);const f={id:`intlayer-node-plugin`,canHandle:e=>typeof e==`bigint`||typeof e==`string`||typeof e==`number`,transform:(e,{plugins:n,...i})=>r.renderIntlayerNode({...i,value:i.children,children:o.default?.editor.enabled?(0,u.createElement)(t.ContentSelector,{...i,key:i.children},i.children):i.children})},p={id:`preact-node-plugin`,canHandle:e=>typeof e==`object`&&e.props!==void 0&&e.key!==void 0,transform:(e,{plugins:n,...i})=>r.renderIntlayerNode({...i,value:`[[preact-element]]`,children:o.default?.editor.enabled?(0,d.jsx)(t.ContentSelector,{...i,children:a.renderPreactElement(e)}):a.renderPreactElement(e)})},m=e=>e!=null&&typeof e!=`string`&&typeof e!=`number`&&typeof e!=`boolean`,h=(e,t)=>{if(!Object.values(t).some(m))return e.replace(/\{\{\s*(.*?)\s*\}\}/g,(e,n)=>(t[n.trim()]??``).toString());let n=[],r=0,i=/\{\{\s*(.*?)\s*\}\}/g,a=i.exec(e);for(;a!==null;){a.index>r&&n.push(e.substring(r,a.index));let o=t[a[1].trim()];o!=null&&n.push(typeof o==`number`?String(o):o),r=a.index+a[0].length,a=i.exec(e)}return r<e.length&&n.push(e.substring(r)),(0,u.h)(u.Fragment,null,...n.map((e,t)=>(0,u.h)(u.Fragment,{key:t},e)))},g={id:`insertion-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===l.NodeType.Insertion,transform:(e,t,n)=>{let r=[...t.keyPath,{type:l.NodeType.Insertion}],i=e[l.NodeType.Insertion],a={id:`insertion-string-plugin`,canHandle:e=>typeof e==`string`,transform:(e,n,r)=>{let i=r(e,{...n,children:e,plugins:[...(t.plugins??[]).filter(e=>e.id!==`intlayer-node-plugin`)]});return e=>{let a=h(i,e);return r(a,{...n,plugins:t.plugins,children:a})}}};return n(i,{...t,children:i,keyPath:r,plugins:[a,...t.plugins??[]]})}},_={id:`markdown-string-plugin`,canHandle:e=>typeof e==`string`,transform:(e,n,a)=>{let{plugins:s,...l}=n,u=a((0,c.getMarkdownMetadata)(e),{plugins:[{id:`markdown-metadata-plugin`,canHandle:e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`||!e,transform:(n,a)=>r.renderIntlayerNode({...a,value:n,children:o.default?.editor.enabled?(0,d.jsx)(t.ContentSelector,{...l,children:(0,d.jsx)(i.MarkdownMetadataRenderer,{...l,metadataKeyPath:a.keyPath,children:e})}):(0,d.jsx)(i.MarkdownMetadataRenderer,{...l,metadataKeyPath:a.keyPath,children:e})})}],dictionaryKey:l.dictionaryKey,keyPath:[]}),f=a=>r.renderIntlayerNode({...n,value:e,children:o.default?.editor.enabled?(0,d.jsx)(t.ContentSelector,{...l,children:(0,d.jsx)(i.MarkdownRendererPlugin,{...l,components:a,children:e})}):(0,d.jsx)(i.MarkdownRendererPlugin,{...l,components:a,children:e}),additionalProps:{metadata:u}}),p=f();return new Proxy(p,{get(t,n){return n===`value`?e:n===`metadata`?u:n===`use`?e=>f(e):Reflect.get(t,n)}})}},v={id:`markdown-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===l.NodeType.Markdown,transform:(e,t,n)=>{let r=[...t.keyPath,{type:l.NodeType.Markdown}],i=e[l.NodeType.Markdown];return n(i,{...t,children:i,keyPath:r,plugins:[_,...t.plugins??[]]})}},y={id:`html-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===l.NodeType.HTML,transform:(e,t)=>{let r=e[l.NodeType.HTML];e.tags;let{plugins:i,...a}=t,o=e=>(0,u.h)(n.HTMLRenderer,{...a,html:r,userComponents:e}),s=o();return new Proxy(s,{get(e,t){return t===`value`?r:t===`use`?e=>o(e):Reflect.get(e,t)}})}},b=(e,t=!0)=>[(0,s.translationPlugin)(e??o.default.internationalization.defaultLocale,t?o.default.internationalization.defaultLocale:void 0),s.enumerationPlugin,s.conditionPlugin,(0,s.nestedPlugin)(e??o.default.internationalization.defaultLocale),s.filePlugin,s.genderPlugin,f,p,g,v,y];exports.getPlugins=b,exports.htmlPlugin=y,exports.insertionPlugin=g,exports.intlayerNodePlugins=f,exports.markdownPlugin=v,exports.markdownStringPlugin=_,exports.preactNodePlugins=p;
2
2
  //# sourceMappingURL=plugins.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.cjs","names":["renderIntlayerNode","configuration","ContentSelector","renderPreactElement","Fragment","NodeType","MarkdownMetadataRenderer","MarkdownRendererPlugin","HTMLRenderer","enumerationPlugin","conditionPlugin","filePlugin","genderPlugin"],"sources":["../../src/plugins.tsx"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport {\n conditionPlugin,\n type DeepTransformContent as DeepTransformContentCore,\n enumerationPlugin,\n filePlugin,\n genderPlugin,\n type IInterpreterPluginState as IInterpreterPluginStateCore,\n nestedPlugin,\n type Plugins,\n translationPlugin,\n} from '@intlayer/core/interpreter';\nimport { getMarkdownMetadata } from '@intlayer/core/markdown';\nimport type {\n HTMLContent,\n InsertionContent,\n MarkdownContent,\n} from '@intlayer/core/transpiler';\nimport type { KeyPath } from '@intlayer/types/keyPath';\nimport type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { NodeType } from '@intlayer/types/nodeType';\nimport { Fragment, h, type VNode } from 'preact';\nimport { ContentSelector } from './editor/ContentSelector';\nimport { HTMLRenderer } from './html/HTMLRenderer';\nimport type { HTMLComponents } from './html/types';\nimport { type IntlayerNode, renderIntlayerNode } from './IntlayerNode';\nimport { MarkdownMetadataRenderer, MarkdownRendererPlugin } from './markdown';\nimport { renderPreactElement } from './preactElement/renderPreactElement';\n\n/** ---------------------------------------------\n * INTLAYER NODE PLUGIN\n * --------------------------------------------- */\n\nexport type IntlayerNodeCond<T> = T extends number | string\n ? IntlayerNode<T>\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const intlayerNodePlugins: Plugins = {\n id: 'intlayer-node-plugin',\n canHandle: (node) =>\n typeof node === 'bigint' ||\n typeof node === 'string' ||\n typeof node === 'number',\n transform: (\n _node,\n {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n }\n ) =>\n renderIntlayerNode({\n ...rest,\n value: rest.children,\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest} key={rest.children}>\n {rest.children}\n </ContentSelector>\n ) : (\n rest.children\n ),\n }),\n};\n\n/** ---------------------------------------------\n * PREACT NODE PLUGIN\n * --------------------------------------------- */\n\nexport type PreactNodeCond<T> = T extends {\n props: any;\n key: any;\n}\n ? VNode\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const preactNodePlugins: Plugins = {\n id: 'preact-node-plugin',\n canHandle: (node) =>\n typeof node === 'object' &&\n typeof node.props !== 'undefined' &&\n typeof node.key !== 'undefined',\n\n transform: (\n node,\n {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n }\n ) =>\n renderIntlayerNode({\n ...rest,\n value: '[[preact-element]]',\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest}>{renderPreactElement(node)}</ContentSelector>\n ) : (\n renderPreactElement(node)\n ),\n }),\n};\n\n/** ---------------------------------------------\n * INSERTION PLUGIN\n * --------------------------------------------- */\n\nexport type InsertionCond<T, _S, L extends LocalesValues> = T extends {\n nodeType: NodeType | string;\n [NodeType.Insertion]: infer I; // Accept strings OR nested nodes like enumerations\n fields: readonly (infer F)[]; // Infer the exact string literals in the array\n}\n ? <V extends { [K in Extract<F, string>]: string | number | VNode }>(\n values: V\n ) => I extends string\n ? V[keyof V] extends string | number\n ? IntlayerNode<string>\n : IntlayerNode<VNode>\n : DeepTransformContent<I, L> // Delegate nested nodes (like enumerations) back to the core\n : never;\n\n/**\n * Check if a value is a Preact VNode\n */\nconst isVNode = (value: any): value is VNode => {\n return (\n value !== null &&\n value !== undefined &&\n typeof value !== 'string' &&\n typeof value !== 'number' &&\n typeof value !== 'boolean'\n );\n};\n\n/**\n * Split insertion string and join with Preact VNodes\n */\nconst splitAndJoinInsertion = (\n template: string,\n values: Record<string, string | number | VNode>\n): VNode => {\n // Check if any value is a VNode\n const hasVNode = Object.values(values).some(isVNode);\n\n if (!hasVNode) {\n // Simple string replacement\n return template.replace(/\\{\\{\\s*(.*?)\\s*\\}\\}/g, (_, key) => {\n const trimmedKey = key.trim();\n return (values[trimmedKey] ?? '').toString();\n }) as any;\n }\n\n // Split the template by placeholders while keeping the structure\n const parts: (string | VNode)[] = [];\n let lastIndex = 0;\n const regex = /\\{\\{\\s*(.*?)\\s*\\}\\}/g;\n let match: RegExpExecArray | null = regex.exec(template);\n\n while (match !== null) {\n // Add text before the placeholder\n if (match.index > lastIndex) {\n parts.push(template.substring(lastIndex, match.index));\n }\n\n // Add the replaced value\n const key = match[1].trim();\n const value = values[key];\n if (value !== undefined && value !== null) {\n parts.push(typeof value === 'number' ? String(value) : value);\n }\n\n lastIndex = match.index + match[0].length;\n match = regex.exec(template);\n }\n\n // Add remaining text\n if (lastIndex < template.length) {\n parts.push(template.substring(lastIndex));\n }\n\n // Return as Fragment\n return h(\n Fragment,\n null,\n ...parts.map((part, index) => h(Fragment, { key: index }, part))\n );\n};\n\n/** Insertion plugin for Preact. Handles component/node insertion. */\nexport const insertionPlugin: Plugins = {\n id: 'insertion-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Insertion,\n transform: (node: InsertionContent, props, deepTransformNode) => {\n const newKeyPath: KeyPath[] = [\n ...props.keyPath,\n {\n type: NodeType.Insertion,\n },\n ];\n\n const children = node[NodeType.Insertion];\n\n /** Insertion string plugin. Replaces string node with a component that render the insertion. */\n const insertionStringPlugin: Plugins = {\n id: 'insertion-string-plugin',\n canHandle: (node) => typeof node === 'string',\n transform: (node: string, subProps, deepTransformNode) => {\n const transformedResult = deepTransformNode(node, {\n ...subProps,\n children: node,\n plugins: [\n ...(props.plugins ?? ([] as Plugins[])).filter(\n (plugin) => plugin.id !== 'intlayer-node-plugin'\n ),\n ],\n });\n\n return (\n values: {\n [K in InsertionContent['fields'][number]]: string | number | VNode;\n }\n ) => {\n const result = splitAndJoinInsertion(transformedResult, values);\n\n return deepTransformNode(result, {\n ...subProps,\n plugins: props.plugins,\n children: result as any,\n });\n };\n },\n };\n\n return deepTransformNode(children, {\n ...props,\n children,\n keyPath: newKeyPath,\n plugins: [insertionStringPlugin, ...(props.plugins ?? [])],\n });\n },\n};\n\n/**\n * MARKDOWN PLUGIN\n */\n\nexport type MarkdownStringCond<T> = T extends string\n ? IntlayerNode<\n string,\n {\n metadata: DeepTransformContent<string>;\n use: (components?: HTMLComponents<'permissive', {}>) => VNode;\n }\n >\n : never;\n\n/** Markdown string plugin. Replaces string node with a component that render the markdown. */\nexport const markdownStringPlugin: Plugins = {\n id: 'markdown-string-plugin',\n canHandle: (node) => typeof node === 'string',\n transform: (node: string, props, deepTransformNode) => {\n const {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n } = props;\n\n const metadata = getMarkdownMetadata(node);\n\n const metadataPlugins: Plugins = {\n id: 'markdown-metadata-plugin',\n canHandle: (metadataNode) =>\n typeof metadataNode === 'string' ||\n typeof metadataNode === 'number' ||\n typeof metadataNode === 'boolean' ||\n !metadataNode,\n transform: (metadataNode, props) =>\n renderIntlayerNode({\n ...props,\n value: metadataNode,\n children: (\n <ContentSelector {...rest}>\n <MarkdownMetadataRenderer\n {...rest}\n metadataKeyPath={props.keyPath}\n >\n {node}\n </MarkdownMetadataRenderer>\n </ContentSelector>\n ),\n }),\n };\n\n // Transform metadata while keeping the same structure\n const metadataNodes = deepTransformNode(metadata, {\n plugins: [metadataPlugins],\n dictionaryKey: rest.dictionaryKey,\n keyPath: [],\n });\n\n const render = (components?: any) =>\n renderIntlayerNode({\n ...props,\n value: node,\n children: (\n <ContentSelector {...rest}>\n <MarkdownRendererPlugin {...rest} components={components}>\n {node}\n </MarkdownRendererPlugin>\n </ContentSelector>\n ),\n additionalProps: {\n metadata: metadataNodes,\n },\n });\n\n const element = render() as any;\n\n return new Proxy(element, {\n get(target, prop) {\n if (prop === 'value') {\n return node;\n }\n if (prop === 'metadata') {\n return metadataNodes;\n }\n\n if (prop === 'use') {\n return (components?: any) => render(components);\n }\n\n return Reflect.get(target, prop);\n },\n }) as any;\n },\n};\n\nexport type MarkdownCond<T> = T extends {\n nodeType: NodeType | string;\n [NodeType.Markdown]: infer _M;\n metadata?: infer U;\n tags?: infer U;\n}\n ? {\n use: (components?: HTMLComponents<'permissive', U>) => VNode;\n metadata: DeepTransformContent<U>;\n }\n : never;\n\nexport const markdownPlugin: Plugins = {\n id: 'markdown-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Markdown,\n transform: (node: MarkdownContent, props, deepTransformNode) => {\n const newKeyPath: KeyPath[] = [\n ...props.keyPath,\n {\n type: NodeType.Markdown,\n },\n ];\n\n const children = node[NodeType.Markdown];\n\n return deepTransformNode(children, {\n ...props,\n children,\n keyPath: newKeyPath,\n plugins: [markdownStringPlugin, ...(props.plugins ?? [])],\n });\n },\n};\n\n/** ---------------------------------------------\n * HTML PLUGIN\n * --------------------------------------------- */\n\nexport type HTMLPluginCond<T> = T extends {\n nodeType: NodeType | string;\n [NodeType.HTML]: infer I;\n tags?: infer U;\n}\n ? {\n use: (components?: HTMLComponents<'permissive', U>) => IntlayerNode<I>;\n }\n : never;\n\n/** HTML plugin. Replaces node with a function that takes components => VNode. */\nexport const htmlPlugin: Plugins = {\n id: 'html-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.HTML,\n transform: (node: HTMLContent<string>, props) => {\n const html = node[NodeType.HTML];\n const _tags = node.tags ?? [];\n const { plugins, ...rest } = props;\n\n // Type-safe render function that accepts properly typed components\n const render = (userComponents?: HTMLComponents): VNode =>\n h(HTMLRenderer as any, { ...rest, html, userComponents } as any);\n\n const element = render() as any;\n\n const proxy = new Proxy(element, {\n get(target, prop) {\n if (prop === 'value') {\n return html;\n }\n\n if (prop === 'use') {\n return (userComponents?: HTMLComponents) => render(userComponents);\n }\n\n return Reflect.get(target, prop);\n },\n });\n\n return proxy;\n },\n};\n\n/** ---------------------------------------------\n * PLUGINS RESULT\n * --------------------------------------------- */\n\nexport interface IInterpreterPluginPreact<T, S, L extends LocalesValues> {\n preactNode: PreactNodeCond<T>;\n preactIntlayerNode: IntlayerNodeCond<T>;\n preactInsertion: InsertionCond<T, S, L>;\n preactMarkdown: MarkdownCond<T>;\n preactHtml: HTMLPluginCond<T>;\n}\n\n/**\n * Insert this type as param of `DeepTransformContent` to avoid `intlayer` package pollution.\n *\n * Otherwise the the `preact-intlayer` plugins will override the types of `intlayer` functions.\n */\nexport type IInterpreterPluginState = Omit<\n IInterpreterPluginStateCore,\n 'insertion' // Remove insertion type from core package\n> & {\n preactNode: true;\n preactIntlayerNode: true;\n preactInsertion: true;\n preactMarkdown: true;\n preactHtml: true;\n};\n\nexport type DeepTransformContent<\n T,\n L extends LocalesValues = DeclaredLocales,\n> = DeepTransformContentCore<T, IInterpreterPluginState, L>;\n\n/**\n * Get the plugins array for Preact content transformation.\n * This function is used by both getIntlayer and getDictionary to ensure consistent plugin configuration.\n */\nexport const getPlugins = (\n locale?: LocalesValues,\n fallback: boolean = true\n): Plugins[] => [\n translationPlugin(\n locale ?? configuration.internationalization.defaultLocale,\n fallback ? configuration.internationalization.defaultLocale : undefined\n ),\n enumerationPlugin,\n conditionPlugin,\n nestedPlugin(locale ?? configuration.internationalization.defaultLocale),\n filePlugin,\n genderPlugin,\n intlayerNodePlugins,\n preactNodePlugins,\n insertionPlugin,\n markdownPlugin,\n htmlPlugin,\n];\n"],"mappings":"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"}
1
+ {"version":3,"file":"plugins.cjs","names":["renderIntlayerNode","configuration","ContentSelector","renderPreactElement","Fragment","NodeType","MarkdownMetadataRenderer","MarkdownRendererPlugin","HTMLRenderer","enumerationPlugin","conditionPlugin","filePlugin","genderPlugin"],"sources":["../../src/plugins.tsx"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport {\n conditionPlugin,\n type DeepTransformContent as DeepTransformContentCore,\n enumerationPlugin,\n filePlugin,\n genderPlugin,\n type IInterpreterPluginState as IInterpreterPluginStateCore,\n nestedPlugin,\n type Plugins,\n translationPlugin,\n} from '@intlayer/core/interpreter';\nimport { getMarkdownMetadata } from '@intlayer/core/markdown';\nimport type {\n HTMLContent,\n InsertionContent,\n MarkdownContent,\n} from '@intlayer/core/transpiler';\nimport type { KeyPath } from '@intlayer/types/keyPath';\nimport type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { NodeType } from '@intlayer/types/nodeType';\nimport { Fragment, h, type VNode } from 'preact';\nimport { ContentSelector } from './editor/ContentSelector';\nimport { HTMLRenderer } from './html/HTMLRenderer';\nimport type { HTMLComponents } from './html/types';\nimport { type IntlayerNode, renderIntlayerNode } from './IntlayerNode';\nimport { MarkdownMetadataRenderer, MarkdownRendererPlugin } from './markdown';\nimport { renderPreactElement } from './preactElement/renderPreactElement';\n\n/** ---------------------------------------------\n * INTLAYER NODE PLUGIN\n * --------------------------------------------- */\n\nexport type IntlayerNodeCond<T> = T extends number | string\n ? IntlayerNode<T>\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const intlayerNodePlugins: Plugins = {\n id: 'intlayer-node-plugin',\n canHandle: (node) =>\n typeof node === 'bigint' ||\n typeof node === 'string' ||\n typeof node === 'number',\n transform: (\n _node,\n {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n }\n ) =>\n renderIntlayerNode({\n ...rest,\n value: rest.children,\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest} key={rest.children}>\n {rest.children}\n </ContentSelector>\n ) : (\n rest.children\n ),\n }),\n};\n\n/** ---------------------------------------------\n * PREACT NODE PLUGIN\n * --------------------------------------------- */\n\nexport type PreactNodeCond<T> = T extends {\n props: any;\n key: any;\n}\n ? VNode\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const preactNodePlugins: Plugins = {\n id: 'preact-node-plugin',\n canHandle: (node) =>\n typeof node === 'object' &&\n typeof node.props !== 'undefined' &&\n typeof node.key !== 'undefined',\n\n transform: (\n node,\n {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n }\n ) =>\n renderIntlayerNode({\n ...rest,\n value: '[[preact-element]]',\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest}>{renderPreactElement(node)}</ContentSelector>\n ) : (\n renderPreactElement(node)\n ),\n }),\n};\n\n/** ---------------------------------------------\n * INSERTION PLUGIN\n * --------------------------------------------- */\n\nexport type InsertionCond<T, _S, L extends LocalesValues> = T extends {\n nodeType: NodeType | string;\n [NodeType.Insertion]: infer I; // Accept strings OR nested nodes like enumerations\n fields: readonly (infer F)[]; // Infer the exact string literals in the array\n}\n ? <V extends { [K in Extract<F, string>]: string | number | VNode }>(\n values: V\n ) => I extends string\n ? V[keyof V] extends string | number\n ? IntlayerNode<string>\n : IntlayerNode<VNode>\n : DeepTransformContent<I, L> // Delegate nested nodes (like enumerations) back to the core\n : never;\n\n/**\n * Check if a value is a Preact VNode\n */\nconst isVNode = (value: any): value is VNode => {\n return (\n value !== null &&\n value !== undefined &&\n typeof value !== 'string' &&\n typeof value !== 'number' &&\n typeof value !== 'boolean'\n );\n};\n\n/**\n * Split insertion string and join with Preact VNodes\n */\nconst splitAndJoinInsertion = (\n template: string,\n values: Record<string, string | number | VNode>\n): VNode => {\n // Check if any value is a VNode\n const hasVNode = Object.values(values).some(isVNode);\n\n if (!hasVNode) {\n // Simple string replacement\n return template.replace(/\\{\\{\\s*(.*?)\\s*\\}\\}/g, (_, key) => {\n const trimmedKey = key.trim();\n return (values[trimmedKey] ?? '').toString();\n }) as any;\n }\n\n // Split the template by placeholders while keeping the structure\n const parts: (string | VNode)[] = [];\n let lastIndex = 0;\n const regex = /\\{\\{\\s*(.*?)\\s*\\}\\}/g;\n let match: RegExpExecArray | null = regex.exec(template);\n\n while (match !== null) {\n // Add text before the placeholder\n if (match.index > lastIndex) {\n parts.push(template.substring(lastIndex, match.index));\n }\n\n // Add the replaced value\n const key = match[1].trim();\n const value = values[key];\n if (value !== undefined && value !== null) {\n parts.push(typeof value === 'number' ? String(value) : value);\n }\n\n lastIndex = match.index + match[0].length;\n match = regex.exec(template);\n }\n\n // Add remaining text\n if (lastIndex < template.length) {\n parts.push(template.substring(lastIndex));\n }\n\n // Return as Fragment\n return h(\n Fragment,\n null,\n ...parts.map((part, index) => h(Fragment, { key: index }, part))\n );\n};\n\n/** Insertion plugin for Preact. Handles component/node insertion. */\nexport const insertionPlugin: Plugins = {\n id: 'insertion-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Insertion,\n transform: (node: InsertionContent, props, deepTransformNode) => {\n const newKeyPath: KeyPath[] = [\n ...props.keyPath,\n {\n type: NodeType.Insertion,\n },\n ];\n\n const children = node[NodeType.Insertion];\n\n /** Insertion string plugin. Replaces string node with a component that render the insertion. */\n const insertionStringPlugin: Plugins = {\n id: 'insertion-string-plugin',\n canHandle: (node) => typeof node === 'string',\n transform: (node: string, subProps, deepTransformNode) => {\n const transformedResult = deepTransformNode(node, {\n ...subProps,\n children: node,\n plugins: [\n ...(props.plugins ?? ([] as Plugins[])).filter(\n (plugin) => plugin.id !== 'intlayer-node-plugin'\n ),\n ],\n });\n\n return (\n values: {\n [K in InsertionContent['fields'][number]]: string | number | VNode;\n }\n ) => {\n const result = splitAndJoinInsertion(transformedResult, values);\n\n return deepTransformNode(result, {\n ...subProps,\n plugins: props.plugins,\n children: result as any,\n });\n };\n },\n };\n\n return deepTransformNode(children, {\n ...props,\n children,\n keyPath: newKeyPath,\n plugins: [insertionStringPlugin, ...(props.plugins ?? [])],\n });\n },\n};\n\n/**\n * MARKDOWN PLUGIN\n */\n\nexport type MarkdownStringCond<T> = T extends string\n ? IntlayerNode<\n string,\n {\n metadata: DeepTransformContent<string>;\n use: (components?: HTMLComponents<'permissive', {}>) => VNode;\n }\n >\n : never;\n\n/** Markdown string plugin. Replaces string node with a component that render the markdown. */\nexport const markdownStringPlugin: Plugins = {\n id: 'markdown-string-plugin',\n canHandle: (node) => typeof node === 'string',\n transform: (node: string, props, deepTransformNode) => {\n const {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n } = props;\n\n const metadata = getMarkdownMetadata(node);\n\n const metadataPlugins: Plugins = {\n id: 'markdown-metadata-plugin',\n canHandle: (metadataNode) =>\n typeof metadataNode === 'string' ||\n typeof metadataNode === 'number' ||\n typeof metadataNode === 'boolean' ||\n !metadataNode,\n transform: (metadataNode, props) =>\n renderIntlayerNode({\n ...props,\n value: metadataNode,\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest}>\n <MarkdownMetadataRenderer\n {...rest}\n metadataKeyPath={props.keyPath}\n >\n {node}\n </MarkdownMetadataRenderer>\n </ContentSelector>\n ) : (\n <MarkdownMetadataRenderer {...rest} metadataKeyPath={props.keyPath}>\n {node}\n </MarkdownMetadataRenderer>\n ),\n }),\n };\n\n // Transform metadata while keeping the same structure\n const metadataNodes = deepTransformNode(metadata, {\n plugins: [metadataPlugins],\n dictionaryKey: rest.dictionaryKey,\n keyPath: [],\n });\n\n const render = (components?: any) =>\n renderIntlayerNode({\n ...props,\n value: node,\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest}>\n <MarkdownRendererPlugin {...rest} components={components}>\n {node}\n </MarkdownRendererPlugin>\n </ContentSelector>\n ) : (\n <MarkdownRendererPlugin {...rest} components={components}>\n {node}\n </MarkdownRendererPlugin>\n ),\n additionalProps: {\n metadata: metadataNodes,\n },\n });\n\n const element = render() as any;\n\n return new Proxy(element, {\n get(target, prop) {\n if (prop === 'value') {\n return node;\n }\n if (prop === 'metadata') {\n return metadataNodes;\n }\n\n if (prop === 'use') {\n return (components?: any) => render(components);\n }\n\n return Reflect.get(target, prop);\n },\n }) as any;\n },\n};\n\nexport type MarkdownCond<T> = T extends {\n nodeType: NodeType | string;\n [NodeType.Markdown]: infer _M;\n metadata?: infer U;\n tags?: infer U;\n}\n ? {\n use: (components?: HTMLComponents<'permissive', U>) => VNode;\n metadata: DeepTransformContent<U>;\n }\n : never;\n\nexport const markdownPlugin: Plugins = {\n id: 'markdown-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Markdown,\n transform: (node: MarkdownContent, props, deepTransformNode) => {\n const newKeyPath: KeyPath[] = [\n ...props.keyPath,\n {\n type: NodeType.Markdown,\n },\n ];\n\n const children = node[NodeType.Markdown];\n\n return deepTransformNode(children, {\n ...props,\n children,\n keyPath: newKeyPath,\n plugins: [markdownStringPlugin, ...(props.plugins ?? [])],\n });\n },\n};\n\n/** ---------------------------------------------\n * HTML PLUGIN\n * --------------------------------------------- */\n\nexport type HTMLPluginCond<T> = T extends {\n nodeType: NodeType | string;\n [NodeType.HTML]: infer I;\n tags?: infer U;\n}\n ? {\n use: (components?: HTMLComponents<'permissive', U>) => IntlayerNode<I>;\n }\n : never;\n\n/** HTML plugin. Replaces node with a function that takes components => VNode. */\nexport const htmlPlugin: Plugins = {\n id: 'html-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.HTML,\n transform: (node: HTMLContent<string>, props) => {\n const html = node[NodeType.HTML];\n const _tags = node.tags ?? [];\n const { plugins, ...rest } = props;\n\n // Type-safe render function that accepts properly typed components\n const render = (userComponents?: HTMLComponents): VNode =>\n h(HTMLRenderer as any, { ...rest, html, userComponents } as any);\n\n const element = render() as any;\n\n const proxy = new Proxy(element, {\n get(target, prop) {\n if (prop === 'value') {\n return html;\n }\n\n if (prop === 'use') {\n return (userComponents?: HTMLComponents) => render(userComponents);\n }\n\n return Reflect.get(target, prop);\n },\n });\n\n return proxy;\n },\n};\n\n/** ---------------------------------------------\n * PLUGINS RESULT\n * --------------------------------------------- */\n\nexport interface IInterpreterPluginPreact<T, S, L extends LocalesValues> {\n preactNode: PreactNodeCond<T>;\n preactIntlayerNode: IntlayerNodeCond<T>;\n preactInsertion: InsertionCond<T, S, L>;\n preactMarkdown: MarkdownCond<T>;\n preactHtml: HTMLPluginCond<T>;\n}\n\n/**\n * Insert this type as param of `DeepTransformContent` to avoid `intlayer` package pollution.\n *\n * Otherwise the the `preact-intlayer` plugins will override the types of `intlayer` functions.\n */\nexport type IInterpreterPluginState = Omit<\n IInterpreterPluginStateCore,\n 'insertion' // Remove insertion type from core package\n> & {\n preactNode: true;\n preactIntlayerNode: true;\n preactInsertion: true;\n preactMarkdown: true;\n preactHtml: true;\n};\n\nexport type DeepTransformContent<\n T,\n L extends LocalesValues = DeclaredLocales,\n> = DeepTransformContentCore<T, IInterpreterPluginState, L>;\n\n/**\n * Get the plugins array for Preact content transformation.\n * This function is used by both getIntlayer and getDictionary to ensure consistent plugin configuration.\n */\nexport const getPlugins = (\n locale?: LocalesValues,\n fallback: boolean = true\n): Plugins[] => [\n translationPlugin(\n locale ?? configuration.internationalization.defaultLocale,\n fallback ? configuration.internationalization.defaultLocale : undefined\n ),\n enumerationPlugin,\n conditionPlugin,\n nestedPlugin(locale ?? configuration.internationalization.defaultLocale),\n filePlugin,\n genderPlugin,\n intlayerNodePlugins,\n preactNodePlugins,\n insertionPlugin,\n markdownPlugin,\n htmlPlugin,\n];\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-D6OWJC7Y.cjs`);let e=require(`preact`);const t=n=>{if(typeof n!=`object`||!n)return n;let{type:r,props:i}=(e=>{let n=e.props?.children;if(Array.isArray(n)){let r=n.map(e=>t(e));return{...e,props:{...e.props,children:r}}}else if(n!=null){let r=t(n);return{...e,props:{...e.props,children:[r]}}}return{...e,props:{...e.props,children:[]}}})(n);return(0,e.createElement)(r??`span`,i,...i.children)};exports.renderPreactElement=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../IntlayerProvider-sM1gzsx7.cjs`);let e=require(`preact`);const t=n=>{if(typeof n!=`object`||!n)return n;let{type:r,props:i}=(e=>{let n=e.props?.children;if(Array.isArray(n)){let r=n.map(e=>t(e));return{...e,props:{...e.props,children:r}}}else if(n!=null){let r=t(n);return{...e,props:{...e.props,children:[r]}}}return{...e,props:{...e.props,children:[]}}})(n);return(0,e.createElement)(r??`span`,i,...i.children)};exports.renderPreactElement=t;
2
2
  //# sourceMappingURL=renderPreactElement.cjs.map
@@ -0,0 +1,2 @@
1
+ import{localeInStorage as e,setLocaleInStorage as t}from"./client/useLocaleStorage.mjs";import n from"@intlayer/config/built";import{createContext as r}from"preact";import{isEnabled as i}from"@intlayer/editor/isEnabled";import{useContext as a,useEffect as o,useRef as s,useState as c}from"preact/hooks";import{jsx as l,jsxs as u}from"preact/jsx-runtime";import{localeResolver as d}from"@intlayer/core/localization";const f=()=>{let{locale:e}=a(m),t=s(null);o(()=>{if(!(process.env.INTLAYER_EDITOR_ENABLED===`false`||!i))return import(`@intlayer/editor`).then(({initEditorClient:n})=>{let r=n();t.current=r,e&&r.currentLocale.set(e)}),()=>{t.current=null,import(`@intlayer/editor`).then(({stopEditorClient:e})=>{e()})}},[]),o(()=>{!e||!t.current||t.current.currentLocale.set(e)},[e])},p=({children:e})=>(f(),e),m=r({locale:e??n?.internationalization?.defaultLocale,setLocale:()=>null}),h=()=>a(m),g=({locale:r,defaultLocale:i,children:a,setLocale:s,isCookieEnabled:u})=>{let{internationalization:f}=n??{},{defaultLocale:p,locales:h}=f??{},[g,_]=c(r??e??i??p);o(()=>{r&&r!==g&&_(r)},[r,g,_]);let v=s??(e=>{if(g.toString()!==e.toString()){if(!h?.map(String).includes(e)){console.error(`Locale ${e} is not available`);return}_(e),t(e,u??!0)}}),y=d(r??g);return l(m.Provider,{value:{locale:y,setLocale:v,isCookieEnabled:u},children:a})},_=({children:e,...t})=>u(g,{...t,children:[l(p,{}),e]});export{p as a,h as i,_ as n,f as o,g as r,m as t};
2
+ //# sourceMappingURL=IntlayerProvider-ClOcEK3A.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntlayerProvider-ClOcEK3A.mjs","names":[],"sources":["../../src/editor/useEditor.tsx","../../src/editor/EditorProvider.tsx","../../src/client/IntlayerProvider.tsx"],"sourcesContent":["import type { EditorStateManager } from '@intlayer/editor';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { useContext, useEffect, useRef } from 'preact/hooks';\nimport { IntlayerClientContext } from '../client/IntlayerProvider';\n\n/**\n * Initialises the Intlayer editor client singleton when the editor is enabled.\n * Syncs the current locale from the Intlayer context into the editor manager so\n * the editor always knows which locale the app is displaying.\n */\nexport const useEditor = () => {\n const { locale } = useContext(IntlayerClientContext);\n const managerRef = useRef<EditorStateManager | null>(null);\n\n useEffect(() => {\n if (process.env.INTLAYER_EDITOR_ENABLED === 'false' || !isEnabled) return;\n\n import('@intlayer/editor').then(({ initEditorClient }) => {\n const manager = initEditorClient();\n managerRef.current = manager;\n\n if (locale) manager.currentLocale.set(locale as Locale);\n });\n\n return () => {\n managerRef.current = null;\n import('@intlayer/editor').then(({ stopEditorClient }) => {\n stopEditorClient();\n });\n };\n }, []);\n\n useEffect(() => {\n if (!locale || !managerRef.current) return;\n\n managerRef.current.currentLocale.set(locale as Locale);\n }, [locale]);\n};\n","import type { ComponentChild, FunctionComponent } from 'preact';\nimport { useEditor } from './useEditor';\n\nexport const EditorProvider: FunctionComponent<{\n children?: ComponentChild;\n}> = ({ children }) => {\n useEditor();\n\n return children;\n};\n","import configuration from '@intlayer/config/built';\nimport { localeResolver } from '@intlayer/core/localization';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport {\n type ComponentChild,\n createContext,\n type FunctionComponent,\n} from 'preact';\nimport { useContext, useEffect, useState } from 'preact/hooks';\nimport { EditorProvider } from '../editor/EditorProvider';\nimport { localeInStorage, setLocaleInStorage } from './useLocaleStorage';\n\ntype IntlayerValue = {\n locale: LocalesValues;\n setLocale: (newLocale: LocalesValues) => void;\n isCookieEnabled?: boolean;\n};\n\n/**\n * Context that store the current locale on the client side\n */\nexport const IntlayerClientContext = createContext<IntlayerValue>({\n locale: localeInStorage ?? configuration?.internationalization?.defaultLocale,\n setLocale: () => null,\n});\n\n/**\n * Hook that provides the current locale\n */\nexport const useIntlayerContext = () => useContext(IntlayerClientContext);\n\nexport type IntlayerProviderProps = {\n children?: ComponentChild;\n locale?: LocalesValues;\n defaultLocale?: LocalesValues;\n setLocale?: (locale: LocalesValues) => void;\n isCookieEnabled?: boolean;\n};\n\n/**\n * Provider that store the current locale on the client side\n */\nexport const IntlayerProviderContent: FunctionComponent<\n IntlayerProviderProps\n> = ({\n locale: localeProp,\n defaultLocale: defaultLocaleProp,\n children,\n setLocale: setLocaleProp,\n isCookieEnabled,\n}) => {\n const { internationalization } = configuration ?? {};\n const { defaultLocale: defaultLocaleConfig, locales: availableLocales } =\n internationalization ?? {};\n\n const defaultLocale =\n localeProp ?? localeInStorage ?? defaultLocaleProp ?? defaultLocaleConfig;\n\n const [currentLocale, setCurrentLocale] = useState<LocalesValues>(\n defaultLocale as LocalesValues\n );\n\n useEffect(() => {\n if (localeProp && localeProp !== currentLocale) {\n setCurrentLocale(localeProp);\n }\n }, [localeProp, currentLocale, setCurrentLocale]);\n\n const setLocaleBase = (newLocale: LocalesValues) => {\n if (currentLocale.toString() === newLocale.toString()) return;\n\n if (!availableLocales?.map(String).includes(newLocale)) {\n console.error(`Locale ${newLocale} is not available`);\n return;\n }\n\n setCurrentLocale(newLocale); // Update state\n setLocaleInStorage(newLocale, isCookieEnabled ?? true); // Optionally set cookie for persistence\n };\n\n const setLocale = setLocaleProp ?? setLocaleBase;\n\n const resolvedLocale = localeResolver(localeProp ?? currentLocale);\n\n return (\n <IntlayerClientContext.Provider\n value={{\n locale: resolvedLocale,\n setLocale,\n isCookieEnabled,\n }}\n >\n {children}\n </IntlayerClientContext.Provider>\n );\n};\n\n/**\n * Main provider for Intlayer in Preact applications.\n *\n * It provides the Intlayer context to your application, allowing the use\n * of hooks like `useIntlayer` and `useLocale`.\n *\n * @param props - The provider props.\n * @returns The provider component.\n *\n * @example\n * ```tsx\n * import { IntlayerProvider } from 'preact-intlayer';\n *\n * const App = () => (\n * <IntlayerProvider>\n * <MyComponent />\n * </IntlayerProvider>\n * );\n * ```\n */\nexport const IntlayerProvider: FunctionComponent<IntlayerProviderProps> = ({\n children,\n ...props\n}) => (\n <IntlayerProviderContent {...props}>\n <EditorProvider />\n {children}\n </IntlayerProviderContent>\n);\n"],"mappings":"+ZAWA,MAAa,MAAkB,CAC7B,GAAM,CAAE,UAAW,EAAW,EAAsB,CAC9C,EAAa,EAAkC,KAAK,CAE1D,MAAgB,CACV,aAAQ,IAAI,0BAA4B,SAAW,CAAC,GASxD,OAPA,OAAO,oBAAoB,MAAM,CAAE,sBAAuB,CACxD,IAAM,EAAU,GAAkB,CAClC,EAAW,QAAU,EAEjB,GAAQ,EAAQ,cAAc,IAAI,EAAiB,EACvD,KAEW,CACX,EAAW,QAAU,KACrB,OAAO,oBAAoB,MAAM,CAAE,sBAAuB,CACxD,GAAkB,EAClB,GAEH,EAAE,CAAC,CAEN,MAAgB,CACV,CAAC,GAAU,CAAC,EAAW,SAE3B,EAAW,QAAQ,cAAc,IAAI,EAAiB,EACrD,CAAC,EAAO,CAAC,EClCD,GAEP,CAAE,eACN,GAAW,CAEJ,GCaI,EAAwB,EAA6B,CAChE,OAAQ,GAAmB,GAAe,sBAAsB,cAChE,cAAiB,KAClB,CAAC,CAKW,MAA2B,EAAW,EAAsB,CAa5D,GAER,CACH,OAAQ,EACR,cAAe,EACf,WACA,UAAW,EACX,qBACI,CACJ,GAAM,CAAE,wBAAyB,GAAiB,EAAE,CAC9C,CAAE,cAAe,EAAqB,QAAS,GACnD,GAAwB,EAAE,CAKtB,CAAC,EAAe,GAAoB,EAFxC,GAAc,GAAmB,GAAqB,EAIvD,CAED,MAAgB,CACV,GAAc,IAAe,GAC/B,EAAiB,EAAW,EAE7B,CAAC,EAAY,EAAe,EAAiB,CAAC,CAcjD,IAAM,EAAY,IAZK,GAA6B,CAC9C,KAAc,UAAU,GAAK,EAAU,UAAU,CAErD,IAAI,CAAC,GAAkB,IAAI,OAAO,CAAC,SAAS,EAAU,CAAE,CACtD,QAAQ,MAAM,UAAU,EAAU,mBAAmB,CACrD,OAGF,EAAiB,EAAU,CAC3B,EAAmB,EAAW,GAAmB,GAAK,IAKlD,EAAiB,EAAe,GAAc,EAAc,CAElE,OACE,EAAC,EAAsB,SAAvB,CACE,MAAO,CACL,OAAQ,EACR,YACA,kBACD,CAEA,WAC8B,CAAA,EAwBxB,GAA8D,CACzE,WACA,GAAG,KAEH,EAAC,EAAD,CAAyB,GAAI,WAA7B,CACE,EAAC,EAAD,EAAkB,CAAA,CACjB,EACuB"}
@@ -1 +1 @@
1
- import{i as e,n as t,r as n,t as r}from"../IntlayerProvider-y3IBs1Py.mjs";export{r as IntlayerClientContext,t as IntlayerProvider,n as IntlayerProviderContent,e as useIntlayerContext};
1
+ import{i as e,n as t,r as n,t as r}from"../IntlayerProvider-ClOcEK3A.mjs";export{r as IntlayerClientContext,t as IntlayerProvider,n as IntlayerProviderContent,e as useIntlayerContext};
@@ -1,2 +1,2 @@
1
- import{t as e}from"../../IntlayerProvider-y3IBs1Py.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{compact as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as useCompact};
1
+ import{t as e}from"../../IntlayerProvider-ClOcEK3A.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{compact as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as useCompact};
2
2
  //# sourceMappingURL=useCompact.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../../IntlayerProvider-y3IBs1Py.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{currency as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as useCurrency};
1
+ import{t as e}from"../../IntlayerProvider-ClOcEK3A.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{currency as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as useCurrency};
2
2
  //# sourceMappingURL=useCurrency.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../../IntlayerProvider-y3IBs1Py.mjs";import{useContext as t}from"preact/hooks";import{date as n}from"@intlayer/core/formatters";const r=()=>{let{locale:r}=t(e);return(...e)=>n(e[0],{...e[1],locale:e[1]?.locale??r})};export{r as useDate};
1
+ import{t as e}from"../../IntlayerProvider-ClOcEK3A.mjs";import{useContext as t}from"preact/hooks";import{date as n}from"@intlayer/core/formatters";const r=()=>{let{locale:r}=t(e);return(...e)=>n(e[0],{...e[1],locale:e[1]?.locale??r})};export{r as useDate};
2
2
  //# sourceMappingURL=useDate.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../../IntlayerProvider-y3IBs1Py.mjs";import{useContext as t,useMemo as n}from"preact/hooks";import{bindIntl as r}from"@intlayer/core/formatters";const i=i=>{let{locale:a}=t(e),o=i??a;return n(()=>r(o),[o])};export{i as useIntl};
1
+ import{t as e}from"../../IntlayerProvider-ClOcEK3A.mjs";import{useContext as t,useMemo as n}from"preact/hooks";import{bindIntl as r}from"@intlayer/core/formatters";const i=i=>{let{locale:a}=t(e),o=i??a;return n(()=>r(o),[o])};export{i as useIntl};
2
2
  //# sourceMappingURL=useIntl.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../../IntlayerProvider-y3IBs1Py.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{list as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as useList};
1
+ import{t as e}from"../../IntlayerProvider-ClOcEK3A.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{list as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as useList};
2
2
  //# sourceMappingURL=useList.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../../IntlayerProvider-y3IBs1Py.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{number as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as useNumber};
1
+ import{t as e}from"../../IntlayerProvider-ClOcEK3A.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{number as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as useNumber};
2
2
  //# sourceMappingURL=useNumber.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../../IntlayerProvider-y3IBs1Py.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{percentage as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as usePercentage};
1
+ import{t as e}from"../../IntlayerProvider-ClOcEK3A.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{percentage as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as usePercentage};
2
2
  //# sourceMappingURL=usePercentage.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../../IntlayerProvider-y3IBs1Py.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{relativeTime as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],e[1],{...e[2],locale:e[2]?.locale??i}),[i])};export{i as useRelativeTime};
1
+ import{t as e}from"../../IntlayerProvider-ClOcEK3A.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{relativeTime as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],e[1],{...e[2],locale:e[2]?.locale??i}),[i])};export{i as useRelativeTime};
2
2
  //# sourceMappingURL=useRelativeTime.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../../IntlayerProvider-y3IBs1Py.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{units as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as useUnit};
1
+ import{t as e}from"../../IntlayerProvider-ClOcEK3A.mjs";import{useCallback as t,useContext as n}from"preact/hooks";import{units as r}from"@intlayer/core/formatters";const i=()=>{let{locale:i}=n(e);return t((...e)=>r(e[0],{...e[1],locale:e[1]?.locale??i}),[i])};export{i as useUnit};
2
2
  //# sourceMappingURL=useUnit.mjs.map
@@ -1 +1 @@
1
- import{i as e,n as t,r as n,t as r}from"../IntlayerProvider-y3IBs1Py.mjs";import{localeCookie as i,localeInStorage as a,setLocaleCookie as o,setLocaleInStorage as s,useLocaleCookie as c,useLocaleStorage as l}from"./useLocaleStorage.mjs";import{useLocale as u}from"./useLocale.mjs";import{useIntl as d}from"./format/useIntl.mjs";import{t as f}from"./t.mjs";import{useDictionary as p}from"./useDictionary.mjs";import{useDictionaryAsync as m}from"./useDictionaryAsync.mjs";import{useLoadDynamic as h}from"./useLoadDynamic.mjs";import{useDictionaryDynamic as g}from"./useDictionaryDynamic.mjs";import{useIntlayer as _}from"./useIntlayer.mjs";import{useLocaleBase as v}from"./useLocaleBase.mjs";export{r as IntlayerClientContext,t as IntlayerProvider,n as IntlayerProviderContent,i as localeCookie,a as localeInStorage,o as setLocaleCookie,s as setLocaleInStorage,f as t,p as useDictionary,m as useDictionaryAsync,g as useDictionaryDynamic,d as useIntl,_ as useIntlayer,e as useIntlayerContext,h as useLoadDynamic,u as useLocale,v as useLocaleBase,c as useLocaleCookie,l as useLocaleStorage};
1
+ import{i as e,n as t,r as n,t as r}from"../IntlayerProvider-ClOcEK3A.mjs";import{localeCookie as i,localeInStorage as a,setLocaleCookie as o,setLocaleInStorage as s,useLocaleCookie as c,useLocaleStorage as l}from"./useLocaleStorage.mjs";import{useLocale as u}from"./useLocale.mjs";import{useIntl as d}from"./format/useIntl.mjs";import{t as f}from"./t.mjs";import{useDictionary as p}from"./useDictionary.mjs";import{useDictionaryAsync as m}from"./useDictionaryAsync.mjs";import{useLoadDynamic as h}from"./useLoadDynamic.mjs";import{useDictionaryDynamic as g}from"./useDictionaryDynamic.mjs";import{useIntlayer as _}from"./useIntlayer.mjs";import{useLocaleBase as v}from"./useLocaleBase.mjs";export{r as IntlayerClientContext,t as IntlayerProvider,n as IntlayerProviderContent,i as localeCookie,a as localeInStorage,o as setLocaleCookie,s as setLocaleInStorage,f as t,p as useDictionary,m as useDictionaryAsync,g as useDictionaryDynamic,d as useIntl,_ as useIntlayer,e as useIntlayerContext,h as useLoadDynamic,u as useLocale,v as useLocaleBase,c as useLocaleCookie,l as useLocaleStorage};
@@ -1,2 +1,2 @@
1
- import{t as e}from"../IntlayerProvider-y3IBs1Py.mjs";import{getTranslation as t}from"@intlayer/core/interpreter";import{useContext as n}from"preact/hooks";const r=(r,i)=>{let{locale:a}=n(e);return t(r,i??a)};export{r as t};
1
+ import{t as e}from"../IntlayerProvider-ClOcEK3A.mjs";import{getTranslation as t}from"@intlayer/core/interpreter";import{useContext as n}from"preact/hooks";const r=(r,i)=>{let{locale:a}=n(e);return t(r,i??a)};export{r as t};
2
2
  //# sourceMappingURL=t.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../IntlayerProvider-y3IBs1Py.mjs";import{getDictionary as t}from"../getDictionary.mjs";import{useContext as n,useMemo as r}from"preact/hooks";const i=(i,a)=>{let{locale:o}=n(e);return r(()=>t(i,a??o),[i.key,o,a])};export{i as useDictionary};
1
+ import{t as e}from"../IntlayerProvider-ClOcEK3A.mjs";import{getDictionary as t}from"../getDictionary.mjs";import{useContext as n,useMemo as r}from"preact/hooks";const i=(i,a)=>{let{locale:o}=n(e);return r(()=>t(i,a??o),[i.key,o,a])};export{i as useDictionary};
2
2
  //# sourceMappingURL=useDictionary.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../IntlayerProvider-y3IBs1Py.mjs";import{useDictionary as t}from"./useDictionary.mjs";import n from"@intlayer/config/built";import{useContext as r,useMemo as i}from"preact/hooks";const a=async(a,o)=>{let{locale:s}=r(e),c=i(()=>o??s??n?.internationalization.defaultLocale,[s,o]);return t(await i(async()=>await a[c]?.(),[a,c]),c)};export{a as useDictionaryAsync};
1
+ import{t as e}from"../IntlayerProvider-ClOcEK3A.mjs";import{useDictionary as t}from"./useDictionary.mjs";import n from"@intlayer/config/built";import{useContext as r,useMemo as i}from"preact/hooks";const a=async(a,o)=>{let{locale:s}=r(e),c=i(()=>o??s??n?.internationalization.defaultLocale,[s,o]);return t(await i(async()=>await a[c]?.(),[a,c]),c)};export{a as useDictionaryAsync};
2
2
  //# sourceMappingURL=useDictionaryAsync.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../IntlayerProvider-y3IBs1Py.mjs";import{useDictionary as t}from"./useDictionary.mjs";import{useLoadDynamic as n}from"./useLoadDynamic.mjs";import{useContext as r,useMemo as i}from"preact/hooks";const a=(a,o,s)=>{let{locale:c}=r(e),l=i(()=>s??c,[c,s]);return t(n(`${String(o)}.${l}`,a[l]?.()),l)};export{a as useDictionaryDynamic};
1
+ import{t as e}from"../IntlayerProvider-ClOcEK3A.mjs";import{useDictionary as t}from"./useDictionary.mjs";import{useLoadDynamic as n}from"./useLoadDynamic.mjs";import{useContext as r,useMemo as i}from"preact/hooks";const a=(a,o,s)=>{let{locale:c}=r(e),l=i(()=>s??c,[c,s]);return t(n(`${String(o)}.${l}`,a[l]?.()),l)};export{a as useDictionaryDynamic};
2
2
  //# sourceMappingURL=useDictionaryDynamic.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../IntlayerProvider-y3IBs1Py.mjs";import{getIntlayer as t}from"../getIntlayer.mjs";import{useContext as n,useMemo as r}from"preact/hooks";const i=(i,a)=>{let{locale:o}=n(e);return r(()=>t(i,a??o),[i,o,a])};export{i as useIntlayer};
1
+ import{t as e}from"../IntlayerProvider-ClOcEK3A.mjs";import{getIntlayer as t}from"../getIntlayer.mjs";import{useContext as n,useMemo as r}from"preact/hooks";const i=(i,a)=>{let{locale:o}=n(e);return r(()=>t(i,a??o),[i,o,a])};export{i as useIntlayer};
2
2
  //# sourceMappingURL=useIntlayer.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../IntlayerProvider-y3IBs1Py.mjs";import{setLocaleInStorage as t}from"./useLocaleStorage.mjs";import n from"@intlayer/config/built";import{useContext as r}from"preact/hooks";const i=({isCookieEnabled:i,onLocaleChange:a}={})=>{let{defaultLocale:o,locales:s}=n?.internationalization??{},{locale:c,setLocale:l,isCookieEnabled:u}=r(e);return{locale:c,defaultLocale:o,availableLocales:s,setLocale:e=>{if(!s?.map(String).includes(e)){console.error(`Locale ${e} is not available`);return}l(e),t(e,i??u??!0),a?.(e)}}};export{i as useLocale};
1
+ import{t as e}from"../IntlayerProvider-ClOcEK3A.mjs";import{setLocaleInStorage as t}from"./useLocaleStorage.mjs";import n from"@intlayer/config/built";import{useContext as r}from"preact/hooks";const i=({isCookieEnabled:i,onLocaleChange:a}={})=>{let{defaultLocale:o,locales:s}=n?.internationalization??{},{locale:c,setLocale:l,isCookieEnabled:u}=r(e);return{locale:c,defaultLocale:o,availableLocales:s,setLocale:e=>{if(!s?.map(String).includes(e)){console.error(`Locale ${e} is not available`);return}l(e),t(e,i??u??!0),a?.(e)}}};export{i as useLocale};
2
2
  //# sourceMappingURL=useLocale.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../IntlayerProvider-y3IBs1Py.mjs";import t from"@intlayer/config/built";import{useContext as n}from"preact/hooks";const{defaultLocale:r,locales:i}=t.internationalization,a=()=>{let{locale:t,setLocale:a}=n(e);return{locale:t,defaultLocale:r,availableLocales:i,setLocale:a}};export{a as useLocaleBase};
1
+ import{t as e}from"../IntlayerProvider-ClOcEK3A.mjs";import t from"@intlayer/config/built";import{useContext as n}from"preact/hooks";const{defaultLocale:r,locales:i}=t.internationalization,a=()=>{let{locale:t,setLocale:a}=n(e);return{locale:t,defaultLocale:r,availableLocales:i,setLocale:a}};export{a as useLocaleBase};
2
2
  //# sourceMappingURL=useLocaleBase.mjs.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../IntlayerProvider-y3IBs1Py.mjs";import{getTranslation as t}from"@intlayer/core/interpreter";import{useContext as n,useMemo as r}from"preact/hooks";const i=i=>{let{locale:a}=n(e);return r(()=>t(i,a),[i,a])};export{i as useTranslation};
1
+ import{t as e}from"../IntlayerProvider-ClOcEK3A.mjs";import{getTranslation as t}from"@intlayer/core/interpreter";import{useContext as n,useMemo as r}from"preact/hooks";const i=i=>{let{locale:a}=n(e);return r(()=>t(i,a),[i,a])};export{i as useTranslation};
2
2
  //# sourceMappingURL=useTraduction.mjs.map
@@ -1,2 +1,2 @@
1
- import{isEnabled as e}from"@intlayer/editor/isEnabled";import{useEffect as t}from"preact/hooks";import{jsx as n}from"preact/jsx-runtime";const r=({children:r,dictionaryKey:i,keyPath:a})=>(t(()=>{!e||typeof window>`u`||import(`@intlayer/editor`).then(({defineIntlayerElements:e})=>{e()})},[e]),e?n(`intlayer-content-selector-wrapper`,{"key-path":JSON.stringify(a),"dictionary-key":i,children:r}):r);export{r as ContentSelector};
1
+ import{isEnabled as e}from"@intlayer/editor/isEnabled";import{useEffect as t}from"preact/hooks";import{jsx as n}from"preact/jsx-runtime";const r=({children:r,dictionaryKey:i,keyPath:a})=>(t(()=>{process.env.INTLAYER_EDITOR_ENABLED===`false`||!e||typeof window>`u`||import(`@intlayer/editor`).then(({defineIntlayerElements:e})=>{e()})},[e]),e?n(`intlayer-content-selector-wrapper`,{"key-path":JSON.stringify(a),"dictionary-key":i,children:r}):r);export{r as ContentSelector};
2
2
  //# sourceMappingURL=ContentSelector.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentSelector.mjs","names":[],"sources":["../../../src/editor/ContentSelector.tsx"],"sourcesContent":["import type { NodeProps } from '@intlayer/core/interpreter';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { FunctionalComponent, HTMLAttributes } from 'preact';\nimport { useEffect } from 'preact/hooks';\n\n// JSX declaration for the Lit web component in Preact\ndeclare module 'preact' {\n namespace JSX {\n interface IntrinsicElements {\n 'intlayer-content-selector-wrapper': HTMLAttributes<HTMLElement> & {\n 'key-path'?: string;\n 'dictionary-key'?: string;\n };\n }\n }\n}\n\nexport type ContentSelectorWrapperProps = NodeProps &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const ContentSelector: FunctionalComponent<\n ContentSelectorWrapperProps\n> = ({ children, dictionaryKey, keyPath }) => {\n useEffect(() => {\n if (!isEnabled || typeof window === 'undefined') return;\n import('@intlayer/editor').then(({ defineIntlayerElements }) => {\n defineIntlayerElements();\n });\n }, [isEnabled]);\n\n if (!isEnabled) {\n return children;\n }\n\n return (\n <intlayer-content-selector-wrapper\n key-path={JSON.stringify(keyPath)}\n dictionary-key={dictionaryKey}\n >\n {children}\n </intlayer-content-selector-wrapper>\n );\n};\n"],"mappings":"yIAoBA,MAAa,GAER,CAAE,WAAU,gBAAe,cAC9B,MAAgB,CACV,CAAC,GAAa,OAAO,OAAW,KACpC,OAAO,oBAAoB,MAAM,CAAE,4BAA6B,CAC9D,GAAwB,EACxB,EACD,CAAC,EAAU,CAAC,CAEV,EAKH,EAAC,oCAAD,CACE,WAAU,KAAK,UAAU,EAAQ,CACjC,iBAAgB,EAEf,WACiC,CAAA,CAT7B"}
1
+ {"version":3,"file":"ContentSelector.mjs","names":[],"sources":["../../../src/editor/ContentSelector.tsx"],"sourcesContent":["import type { NodeProps } from '@intlayer/core/interpreter';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { FunctionalComponent, HTMLAttributes } from 'preact';\nimport { useEffect } from 'preact/hooks';\n\n// JSX declaration for the Lit web component in Preact\ndeclare module 'preact' {\n namespace JSX {\n interface IntrinsicElements {\n 'intlayer-content-selector-wrapper': HTMLAttributes<HTMLElement> & {\n 'key-path'?: string;\n 'dictionary-key'?: string;\n };\n }\n }\n}\n\nexport type ContentSelectorWrapperProps = NodeProps &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const ContentSelector: FunctionalComponent<\n ContentSelectorWrapperProps\n> = ({ children, dictionaryKey, keyPath }) => {\n useEffect(() => {\n if (\n process.env.INTLAYER_EDITOR_ENABLED === 'false' ||\n !isEnabled ||\n typeof window === 'undefined'\n )\n return;\n import('@intlayer/editor').then(({ defineIntlayerElements }) => {\n defineIntlayerElements();\n });\n }, [isEnabled]);\n\n if (!isEnabled) {\n return children;\n }\n\n return (\n <intlayer-content-selector-wrapper\n key-path={JSON.stringify(keyPath)}\n dictionary-key={dictionaryKey}\n >\n {children}\n </intlayer-content-selector-wrapper>\n );\n};\n"],"mappings":"yIAoBA,MAAa,GAER,CAAE,WAAU,gBAAe,cAC9B,MAAgB,CAEZ,QAAQ,IAAI,0BAA4B,SACxC,CAAC,GACD,OAAO,OAAW,KAGpB,OAAO,oBAAoB,MAAM,CAAE,4BAA6B,CAC9D,GAAwB,EACxB,EACD,CAAC,EAAU,CAAC,CAEV,EAKH,EAAC,oCAAD,CACE,WAAU,KAAK,UAAU,EAAQ,CACjC,iBAAgB,EAEf,WACiC,CAAA,CAT7B"}
@@ -1 +1 @@
1
- import{a as e}from"../IntlayerProvider-y3IBs1Py.mjs";export{e as EditorProvider};
1
+ import{a as e}from"../IntlayerProvider-ClOcEK3A.mjs";export{e as EditorProvider};
@@ -1 +1 @@
1
- import{o as e}from"../IntlayerProvider-y3IBs1Py.mjs";export{e as useEditor};
1
+ import{o as e}from"../IntlayerProvider-ClOcEK3A.mjs";export{e as useEditor};
@@ -1 +1 @@
1
- import{HTMLProvider as e}from"./html/HTMLProvider.mjs";import{HTMLRenderer as t,renderHTML as n,useHTMLRenderer as r}from"./html/HTMLRenderer.mjs";import i from"./markdown/runtime.mjs";import{compileMarkdown as a}from"./markdown/compiler.mjs";import{MarkdownProvider as o}from"./markdown/MarkdownProvider.mjs";import{MarkdownRenderer as s,renderMarkdown as c,useMarkdownRenderer as l}from"./markdown/MarkdownRenderer.mjs";import{i as u,n as d,r as f,t as p}from"./IntlayerProvider-y3IBs1Py.mjs";import{localeCookie as m,setLocaleCookie as h,setLocaleInStorage as g,useLocaleCookie as _,useLocaleStorage as v}from"./client/useLocaleStorage.mjs";import{useLocale as y}from"./client/useLocale.mjs";import{htmlPlugin as b,intlayerNodePlugins as x,markdownPlugin as S,markdownStringPlugin as C,preactNodePlugins as w}from"./plugins.mjs";import{getIntlayer as T}from"./getIntlayer.mjs";import{getDictionary as E}from"./getDictionary.mjs";import{useIntl as D}from"./client/format/useIntl.mjs";import{t as O}from"./client/t.mjs";import{useDictionary as k}from"./client/useDictionary.mjs";import{useDictionaryAsync as A}from"./client/useDictionaryAsync.mjs";import{useLoadDynamic as j}from"./client/useLoadDynamic.mjs";import{useDictionaryDynamic as M}from"./client/useDictionaryDynamic.mjs";import{useIntlayer as N}from"./client/useIntlayer.mjs";import{useLocaleBase as P}from"./client/useLocaleBase.mjs";import"./client/index.mjs";import"./html/index.mjs";export{e as HTMLProvider,t as HTMLRenderer,p as IntlayerClientContext,d as IntlayerProvider,f as IntlayerProviderContent,o as MarkdownProvider,s as MarkdownRenderer,a as compileMarkdown,E as getDictionary,T as getIntlayer,b as htmlPlugin,x as intlayerNodePlugins,m as localeCookie,S as markdownPlugin,C as markdownStringPlugin,w as preactNodePlugins,i as preactRuntime,n as renderHTML,c as renderMarkdown,h as setLocaleCookie,g as setLocaleInStorage,O as t,k as useDictionary,A as useDictionaryAsync,M as useDictionaryDynamic,r as useHTMLRenderer,D as useIntl,N as useIntlayer,u as useIntlayerContext,j as useLoadDynamic,y as useLocale,P as useLocaleBase,_ as useLocaleCookie,v as useLocaleStorage,l as useMarkdownRenderer};
1
+ import{HTMLProvider as e}from"./html/HTMLProvider.mjs";import{HTMLRenderer as t,renderHTML as n,useHTMLRenderer as r}from"./html/HTMLRenderer.mjs";import i from"./markdown/runtime.mjs";import{compileMarkdown as a}from"./markdown/compiler.mjs";import{MarkdownProvider as o}from"./markdown/MarkdownProvider.mjs";import{MarkdownRenderer as s,renderMarkdown as c,useMarkdownRenderer as l}from"./markdown/MarkdownRenderer.mjs";import{i as u,n as d,r as f,t as p}from"./IntlayerProvider-ClOcEK3A.mjs";import{localeCookie as m,setLocaleCookie as h,setLocaleInStorage as g,useLocaleCookie as _,useLocaleStorage as v}from"./client/useLocaleStorage.mjs";import{useLocale as y}from"./client/useLocale.mjs";import{htmlPlugin as b,intlayerNodePlugins as x,markdownPlugin as S,markdownStringPlugin as C,preactNodePlugins as w}from"./plugins.mjs";import{getIntlayer as T}from"./getIntlayer.mjs";import{getDictionary as E}from"./getDictionary.mjs";import{useIntl as D}from"./client/format/useIntl.mjs";import{t as O}from"./client/t.mjs";import{useDictionary as k}from"./client/useDictionary.mjs";import{useDictionaryAsync as A}from"./client/useDictionaryAsync.mjs";import{useLoadDynamic as j}from"./client/useLoadDynamic.mjs";import{useDictionaryDynamic as M}from"./client/useDictionaryDynamic.mjs";import{useIntlayer as N}from"./client/useIntlayer.mjs";import{useLocaleBase as P}from"./client/useLocaleBase.mjs";import"./client/index.mjs";import"./html/index.mjs";export{e as HTMLProvider,t as HTMLRenderer,p as IntlayerClientContext,d as IntlayerProvider,f as IntlayerProviderContent,o as MarkdownProvider,s as MarkdownRenderer,a as compileMarkdown,E as getDictionary,T as getIntlayer,b as htmlPlugin,x as intlayerNodePlugins,m as localeCookie,S as markdownPlugin,C as markdownStringPlugin,w as preactNodePlugins,i as preactRuntime,n as renderHTML,c as renderMarkdown,h as setLocaleCookie,g as setLocaleInStorage,O as t,k as useDictionary,A as useDictionaryAsync,M as useDictionaryDynamic,r as useHTMLRenderer,D as useIntl,N as useIntlayer,u as useIntlayerContext,j as useLoadDynamic,y as useLocale,P as useLocaleBase,_ as useLocaleCookie,v as useLocaleStorage,l as useMarkdownRenderer};
@@ -1,2 +1,2 @@
1
- import{ContentSelector as e}from"./editor/ContentSelector.mjs";import{HTMLRenderer as t}from"./html/HTMLRenderer.mjs";import{renderIntlayerNode as n}from"./IntlayerNode.mjs";import{MarkdownMetadataRenderer as r,MarkdownRendererPlugin as i}from"./markdown/MarkdownRendererPlugin.mjs";import{renderPreactElement as a}from"./preactElement/renderPreactElement.mjs";import o from"@intlayer/config/built";import{conditionPlugin as s,enumerationPlugin as c,filePlugin as l,genderPlugin as u,nestedPlugin as d,translationPlugin as f}from"@intlayer/core/interpreter";import{getMarkdownMetadata as p}from"@intlayer/core/markdown";import{NodeType as m}from"@intlayer/types/nodeType";import{Fragment as h,createElement as g,h as _}from"preact";import{jsx as v}from"preact/jsx-runtime";const y={id:`intlayer-node-plugin`,canHandle:e=>typeof e==`bigint`||typeof e==`string`||typeof e==`number`,transform:(t,{plugins:r,...i})=>n({...i,value:i.children,children:o?.editor.enabled?g(e,{...i,key:i.children},i.children):i.children})},b={id:`preact-node-plugin`,canHandle:e=>typeof e==`object`&&e.props!==void 0&&e.key!==void 0,transform:(t,{plugins:r,...i})=>n({...i,value:`[[preact-element]]`,children:o?.editor.enabled?v(e,{...i,children:a(t)}):a(t)})},x=e=>e!=null&&typeof e!=`string`&&typeof e!=`number`&&typeof e!=`boolean`,S=(e,t)=>{if(!Object.values(t).some(x))return e.replace(/\{\{\s*(.*?)\s*\}\}/g,(e,n)=>(t[n.trim()]??``).toString());let n=[],r=0,i=/\{\{\s*(.*?)\s*\}\}/g,a=i.exec(e);for(;a!==null;){a.index>r&&n.push(e.substring(r,a.index));let o=t[a[1].trim()];o!=null&&n.push(typeof o==`number`?String(o):o),r=a.index+a[0].length,a=i.exec(e)}return r<e.length&&n.push(e.substring(r)),_(h,null,...n.map((e,t)=>_(h,{key:t},e)))},C={id:`insertion-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===m.Insertion,transform:(e,t,n)=>{let r=[...t.keyPath,{type:m.Insertion}],i=e[m.Insertion],a={id:`insertion-string-plugin`,canHandle:e=>typeof e==`string`,transform:(e,n,r)=>{let i=r(e,{...n,children:e,plugins:[...(t.plugins??[]).filter(e=>e.id!==`intlayer-node-plugin`)]});return e=>{let a=S(i,e);return r(a,{...n,plugins:t.plugins,children:a})}}};return n(i,{...t,children:i,keyPath:r,plugins:[a,...t.plugins??[]]})}},w={id:`markdown-string-plugin`,canHandle:e=>typeof e==`string`,transform:(t,a,o)=>{let{plugins:s,...c}=a,l=o(p(t),{plugins:[{id:`markdown-metadata-plugin`,canHandle:e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`||!e,transform:(i,a)=>n({...a,value:i,children:v(e,{...c,children:v(r,{...c,metadataKeyPath:a.keyPath,children:t})})})}],dictionaryKey:c.dictionaryKey,keyPath:[]}),u=r=>n({...a,value:t,children:v(e,{...c,children:v(i,{...c,components:r,children:t})}),additionalProps:{metadata:l}}),d=u();return new Proxy(d,{get(e,n){return n===`value`?t:n===`metadata`?l:n===`use`?e=>u(e):Reflect.get(e,n)}})}},T={id:`markdown-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===m.Markdown,transform:(e,t,n)=>{let r=[...t.keyPath,{type:m.Markdown}],i=e[m.Markdown];return n(i,{...t,children:i,keyPath:r,plugins:[w,...t.plugins??[]]})}},E={id:`html-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===m.HTML,transform:(e,n)=>{let r=e[m.HTML];e.tags;let{plugins:i,...a}=n,o=e=>_(t,{...a,html:r,userComponents:e}),s=o();return new Proxy(s,{get(e,t){return t===`value`?r:t===`use`?e=>o(e):Reflect.get(e,t)}})}},D=(e,t=!0)=>[f(e??o.internationalization.defaultLocale,t?o.internationalization.defaultLocale:void 0),c,s,d(e??o.internationalization.defaultLocale),l,u,y,b,C,T,E];export{D as getPlugins,E as htmlPlugin,C as insertionPlugin,y as intlayerNodePlugins,T as markdownPlugin,w as markdownStringPlugin,b as preactNodePlugins};
1
+ import{ContentSelector as e}from"./editor/ContentSelector.mjs";import{HTMLRenderer as t}from"./html/HTMLRenderer.mjs";import{renderIntlayerNode as n}from"./IntlayerNode.mjs";import{MarkdownMetadataRenderer as r,MarkdownRendererPlugin as i}from"./markdown/MarkdownRendererPlugin.mjs";import{renderPreactElement as a}from"./preactElement/renderPreactElement.mjs";import o from"@intlayer/config/built";import{conditionPlugin as s,enumerationPlugin as c,filePlugin as l,genderPlugin as u,nestedPlugin as d,translationPlugin as f}from"@intlayer/core/interpreter";import{getMarkdownMetadata as p}from"@intlayer/core/markdown";import{NodeType as m}from"@intlayer/types/nodeType";import{Fragment as h,createElement as g,h as _}from"preact";import{jsx as v}from"preact/jsx-runtime";const y={id:`intlayer-node-plugin`,canHandle:e=>typeof e==`bigint`||typeof e==`string`||typeof e==`number`,transform:(t,{plugins:r,...i})=>n({...i,value:i.children,children:o?.editor.enabled?g(e,{...i,key:i.children},i.children):i.children})},b={id:`preact-node-plugin`,canHandle:e=>typeof e==`object`&&e.props!==void 0&&e.key!==void 0,transform:(t,{plugins:r,...i})=>n({...i,value:`[[preact-element]]`,children:o?.editor.enabled?v(e,{...i,children:a(t)}):a(t)})},x=e=>e!=null&&typeof e!=`string`&&typeof e!=`number`&&typeof e!=`boolean`,S=(e,t)=>{if(!Object.values(t).some(x))return e.replace(/\{\{\s*(.*?)\s*\}\}/g,(e,n)=>(t[n.trim()]??``).toString());let n=[],r=0,i=/\{\{\s*(.*?)\s*\}\}/g,a=i.exec(e);for(;a!==null;){a.index>r&&n.push(e.substring(r,a.index));let o=t[a[1].trim()];o!=null&&n.push(typeof o==`number`?String(o):o),r=a.index+a[0].length,a=i.exec(e)}return r<e.length&&n.push(e.substring(r)),_(h,null,...n.map((e,t)=>_(h,{key:t},e)))},C={id:`insertion-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===m.Insertion,transform:(e,t,n)=>{let r=[...t.keyPath,{type:m.Insertion}],i=e[m.Insertion],a={id:`insertion-string-plugin`,canHandle:e=>typeof e==`string`,transform:(e,n,r)=>{let i=r(e,{...n,children:e,plugins:[...(t.plugins??[]).filter(e=>e.id!==`intlayer-node-plugin`)]});return e=>{let a=S(i,e);return r(a,{...n,plugins:t.plugins,children:a})}}};return n(i,{...t,children:i,keyPath:r,plugins:[a,...t.plugins??[]]})}},w={id:`markdown-string-plugin`,canHandle:e=>typeof e==`string`,transform:(t,a,s)=>{let{plugins:c,...l}=a,u=s(p(t),{plugins:[{id:`markdown-metadata-plugin`,canHandle:e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`||!e,transform:(i,a)=>n({...a,value:i,children:o?.editor.enabled?v(e,{...l,children:v(r,{...l,metadataKeyPath:a.keyPath,children:t})}):v(r,{...l,metadataKeyPath:a.keyPath,children:t})})}],dictionaryKey:l.dictionaryKey,keyPath:[]}),d=r=>n({...a,value:t,children:o?.editor.enabled?v(e,{...l,children:v(i,{...l,components:r,children:t})}):v(i,{...l,components:r,children:t}),additionalProps:{metadata:u}}),f=d();return new Proxy(f,{get(e,n){return n===`value`?t:n===`metadata`?u:n===`use`?e=>d(e):Reflect.get(e,n)}})}},T={id:`markdown-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===m.Markdown,transform:(e,t,n)=>{let r=[...t.keyPath,{type:m.Markdown}],i=e[m.Markdown];return n(i,{...t,children:i,keyPath:r,plugins:[w,...t.plugins??[]]})}},E={id:`html-plugin`,canHandle:e=>typeof e==`object`&&e?.nodeType===m.HTML,transform:(e,n)=>{let r=e[m.HTML];e.tags;let{plugins:i,...a}=n,o=e=>_(t,{...a,html:r,userComponents:e}),s=o();return new Proxy(s,{get(e,t){return t===`value`?r:t===`use`?e=>o(e):Reflect.get(e,t)}})}},D=(e,t=!0)=>[f(e??o.internationalization.defaultLocale,t?o.internationalization.defaultLocale:void 0),c,s,d(e??o.internationalization.defaultLocale),l,u,y,b,C,T,E];export{D as getPlugins,E as htmlPlugin,C as insertionPlugin,y as intlayerNodePlugins,T as markdownPlugin,w as markdownStringPlugin,b as preactNodePlugins};
2
2
  //# sourceMappingURL=plugins.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.mjs","names":[],"sources":["../../src/plugins.tsx"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport {\n conditionPlugin,\n type DeepTransformContent as DeepTransformContentCore,\n enumerationPlugin,\n filePlugin,\n genderPlugin,\n type IInterpreterPluginState as IInterpreterPluginStateCore,\n nestedPlugin,\n type Plugins,\n translationPlugin,\n} from '@intlayer/core/interpreter';\nimport { getMarkdownMetadata } from '@intlayer/core/markdown';\nimport type {\n HTMLContent,\n InsertionContent,\n MarkdownContent,\n} from '@intlayer/core/transpiler';\nimport type { KeyPath } from '@intlayer/types/keyPath';\nimport type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { NodeType } from '@intlayer/types/nodeType';\nimport { Fragment, h, type VNode } from 'preact';\nimport { ContentSelector } from './editor/ContentSelector';\nimport { HTMLRenderer } from './html/HTMLRenderer';\nimport type { HTMLComponents } from './html/types';\nimport { type IntlayerNode, renderIntlayerNode } from './IntlayerNode';\nimport { MarkdownMetadataRenderer, MarkdownRendererPlugin } from './markdown';\nimport { renderPreactElement } from './preactElement/renderPreactElement';\n\n/** ---------------------------------------------\n * INTLAYER NODE PLUGIN\n * --------------------------------------------- */\n\nexport type IntlayerNodeCond<T> = T extends number | string\n ? IntlayerNode<T>\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const intlayerNodePlugins: Plugins = {\n id: 'intlayer-node-plugin',\n canHandle: (node) =>\n typeof node === 'bigint' ||\n typeof node === 'string' ||\n typeof node === 'number',\n transform: (\n _node,\n {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n }\n ) =>\n renderIntlayerNode({\n ...rest,\n value: rest.children,\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest} key={rest.children}>\n {rest.children}\n </ContentSelector>\n ) : (\n rest.children\n ),\n }),\n};\n\n/** ---------------------------------------------\n * PREACT NODE PLUGIN\n * --------------------------------------------- */\n\nexport type PreactNodeCond<T> = T extends {\n props: any;\n key: any;\n}\n ? VNode\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const preactNodePlugins: Plugins = {\n id: 'preact-node-plugin',\n canHandle: (node) =>\n typeof node === 'object' &&\n typeof node.props !== 'undefined' &&\n typeof node.key !== 'undefined',\n\n transform: (\n node,\n {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n }\n ) =>\n renderIntlayerNode({\n ...rest,\n value: '[[preact-element]]',\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest}>{renderPreactElement(node)}</ContentSelector>\n ) : (\n renderPreactElement(node)\n ),\n }),\n};\n\n/** ---------------------------------------------\n * INSERTION PLUGIN\n * --------------------------------------------- */\n\nexport type InsertionCond<T, _S, L extends LocalesValues> = T extends {\n nodeType: NodeType | string;\n [NodeType.Insertion]: infer I; // Accept strings OR nested nodes like enumerations\n fields: readonly (infer F)[]; // Infer the exact string literals in the array\n}\n ? <V extends { [K in Extract<F, string>]: string | number | VNode }>(\n values: V\n ) => I extends string\n ? V[keyof V] extends string | number\n ? IntlayerNode<string>\n : IntlayerNode<VNode>\n : DeepTransformContent<I, L> // Delegate nested nodes (like enumerations) back to the core\n : never;\n\n/**\n * Check if a value is a Preact VNode\n */\nconst isVNode = (value: any): value is VNode => {\n return (\n value !== null &&\n value !== undefined &&\n typeof value !== 'string' &&\n typeof value !== 'number' &&\n typeof value !== 'boolean'\n );\n};\n\n/**\n * Split insertion string and join with Preact VNodes\n */\nconst splitAndJoinInsertion = (\n template: string,\n values: Record<string, string | number | VNode>\n): VNode => {\n // Check if any value is a VNode\n const hasVNode = Object.values(values).some(isVNode);\n\n if (!hasVNode) {\n // Simple string replacement\n return template.replace(/\\{\\{\\s*(.*?)\\s*\\}\\}/g, (_, key) => {\n const trimmedKey = key.trim();\n return (values[trimmedKey] ?? '').toString();\n }) as any;\n }\n\n // Split the template by placeholders while keeping the structure\n const parts: (string | VNode)[] = [];\n let lastIndex = 0;\n const regex = /\\{\\{\\s*(.*?)\\s*\\}\\}/g;\n let match: RegExpExecArray | null = regex.exec(template);\n\n while (match !== null) {\n // Add text before the placeholder\n if (match.index > lastIndex) {\n parts.push(template.substring(lastIndex, match.index));\n }\n\n // Add the replaced value\n const key = match[1].trim();\n const value = values[key];\n if (value !== undefined && value !== null) {\n parts.push(typeof value === 'number' ? String(value) : value);\n }\n\n lastIndex = match.index + match[0].length;\n match = regex.exec(template);\n }\n\n // Add remaining text\n if (lastIndex < template.length) {\n parts.push(template.substring(lastIndex));\n }\n\n // Return as Fragment\n return h(\n Fragment,\n null,\n ...parts.map((part, index) => h(Fragment, { key: index }, part))\n );\n};\n\n/** Insertion plugin for Preact. Handles component/node insertion. */\nexport const insertionPlugin: Plugins = {\n id: 'insertion-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Insertion,\n transform: (node: InsertionContent, props, deepTransformNode) => {\n const newKeyPath: KeyPath[] = [\n ...props.keyPath,\n {\n type: NodeType.Insertion,\n },\n ];\n\n const children = node[NodeType.Insertion];\n\n /** Insertion string plugin. Replaces string node with a component that render the insertion. */\n const insertionStringPlugin: Plugins = {\n id: 'insertion-string-plugin',\n canHandle: (node) => typeof node === 'string',\n transform: (node: string, subProps, deepTransformNode) => {\n const transformedResult = deepTransformNode(node, {\n ...subProps,\n children: node,\n plugins: [\n ...(props.plugins ?? ([] as Plugins[])).filter(\n (plugin) => plugin.id !== 'intlayer-node-plugin'\n ),\n ],\n });\n\n return (\n values: {\n [K in InsertionContent['fields'][number]]: string | number | VNode;\n }\n ) => {\n const result = splitAndJoinInsertion(transformedResult, values);\n\n return deepTransformNode(result, {\n ...subProps,\n plugins: props.plugins,\n children: result as any,\n });\n };\n },\n };\n\n return deepTransformNode(children, {\n ...props,\n children,\n keyPath: newKeyPath,\n plugins: [insertionStringPlugin, ...(props.plugins ?? [])],\n });\n },\n};\n\n/**\n * MARKDOWN PLUGIN\n */\n\nexport type MarkdownStringCond<T> = T extends string\n ? IntlayerNode<\n string,\n {\n metadata: DeepTransformContent<string>;\n use: (components?: HTMLComponents<'permissive', {}>) => VNode;\n }\n >\n : never;\n\n/** Markdown string plugin. Replaces string node with a component that render the markdown. */\nexport const markdownStringPlugin: Plugins = {\n id: 'markdown-string-plugin',\n canHandle: (node) => typeof node === 'string',\n transform: (node: string, props, deepTransformNode) => {\n const {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n } = props;\n\n const metadata = getMarkdownMetadata(node);\n\n const metadataPlugins: Plugins = {\n id: 'markdown-metadata-plugin',\n canHandle: (metadataNode) =>\n typeof metadataNode === 'string' ||\n typeof metadataNode === 'number' ||\n typeof metadataNode === 'boolean' ||\n !metadataNode,\n transform: (metadataNode, props) =>\n renderIntlayerNode({\n ...props,\n value: metadataNode,\n children: (\n <ContentSelector {...rest}>\n <MarkdownMetadataRenderer\n {...rest}\n metadataKeyPath={props.keyPath}\n >\n {node}\n </MarkdownMetadataRenderer>\n </ContentSelector>\n ),\n }),\n };\n\n // Transform metadata while keeping the same structure\n const metadataNodes = deepTransformNode(metadata, {\n plugins: [metadataPlugins],\n dictionaryKey: rest.dictionaryKey,\n keyPath: [],\n });\n\n const render = (components?: any) =>\n renderIntlayerNode({\n ...props,\n value: node,\n children: (\n <ContentSelector {...rest}>\n <MarkdownRendererPlugin {...rest} components={components}>\n {node}\n </MarkdownRendererPlugin>\n </ContentSelector>\n ),\n additionalProps: {\n metadata: metadataNodes,\n },\n });\n\n const element = render() as any;\n\n return new Proxy(element, {\n get(target, prop) {\n if (prop === 'value') {\n return node;\n }\n if (prop === 'metadata') {\n return metadataNodes;\n }\n\n if (prop === 'use') {\n return (components?: any) => render(components);\n }\n\n return Reflect.get(target, prop);\n },\n }) as any;\n },\n};\n\nexport type MarkdownCond<T> = T extends {\n nodeType: NodeType | string;\n [NodeType.Markdown]: infer _M;\n metadata?: infer U;\n tags?: infer U;\n}\n ? {\n use: (components?: HTMLComponents<'permissive', U>) => VNode;\n metadata: DeepTransformContent<U>;\n }\n : never;\n\nexport const markdownPlugin: Plugins = {\n id: 'markdown-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Markdown,\n transform: (node: MarkdownContent, props, deepTransformNode) => {\n const newKeyPath: KeyPath[] = [\n ...props.keyPath,\n {\n type: NodeType.Markdown,\n },\n ];\n\n const children = node[NodeType.Markdown];\n\n return deepTransformNode(children, {\n ...props,\n children,\n keyPath: newKeyPath,\n plugins: [markdownStringPlugin, ...(props.plugins ?? [])],\n });\n },\n};\n\n/** ---------------------------------------------\n * HTML PLUGIN\n * --------------------------------------------- */\n\nexport type HTMLPluginCond<T> = T extends {\n nodeType: NodeType | string;\n [NodeType.HTML]: infer I;\n tags?: infer U;\n}\n ? {\n use: (components?: HTMLComponents<'permissive', U>) => IntlayerNode<I>;\n }\n : never;\n\n/** HTML plugin. Replaces node with a function that takes components => VNode. */\nexport const htmlPlugin: Plugins = {\n id: 'html-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.HTML,\n transform: (node: HTMLContent<string>, props) => {\n const html = node[NodeType.HTML];\n const _tags = node.tags ?? [];\n const { plugins, ...rest } = props;\n\n // Type-safe render function that accepts properly typed components\n const render = (userComponents?: HTMLComponents): VNode =>\n h(HTMLRenderer as any, { ...rest, html, userComponents } as any);\n\n const element = render() as any;\n\n const proxy = new Proxy(element, {\n get(target, prop) {\n if (prop === 'value') {\n return html;\n }\n\n if (prop === 'use') {\n return (userComponents?: HTMLComponents) => render(userComponents);\n }\n\n return Reflect.get(target, prop);\n },\n });\n\n return proxy;\n },\n};\n\n/** ---------------------------------------------\n * PLUGINS RESULT\n * --------------------------------------------- */\n\nexport interface IInterpreterPluginPreact<T, S, L extends LocalesValues> {\n preactNode: PreactNodeCond<T>;\n preactIntlayerNode: IntlayerNodeCond<T>;\n preactInsertion: InsertionCond<T, S, L>;\n preactMarkdown: MarkdownCond<T>;\n preactHtml: HTMLPluginCond<T>;\n}\n\n/**\n * Insert this type as param of `DeepTransformContent` to avoid `intlayer` package pollution.\n *\n * Otherwise the the `preact-intlayer` plugins will override the types of `intlayer` functions.\n */\nexport type IInterpreterPluginState = Omit<\n IInterpreterPluginStateCore,\n 'insertion' // Remove insertion type from core package\n> & {\n preactNode: true;\n preactIntlayerNode: true;\n preactInsertion: true;\n preactMarkdown: true;\n preactHtml: true;\n};\n\nexport type DeepTransformContent<\n T,\n L extends LocalesValues = DeclaredLocales,\n> = DeepTransformContentCore<T, IInterpreterPluginState, L>;\n\n/**\n * Get the plugins array for Preact content transformation.\n * This function is used by both getIntlayer and getDictionary to ensure consistent plugin configuration.\n */\nexport const getPlugins = (\n locale?: LocalesValues,\n fallback: boolean = true\n): Plugins[] => [\n translationPlugin(\n locale ?? configuration.internationalization.defaultLocale,\n fallback ? configuration.internationalization.defaultLocale : undefined\n ),\n enumerationPlugin,\n conditionPlugin,\n nestedPlugin(locale ?? configuration.internationalization.defaultLocale),\n filePlugin,\n genderPlugin,\n intlayerNodePlugins,\n preactNodePlugins,\n insertionPlugin,\n markdownPlugin,\n htmlPlugin,\n];\n"],"mappings":"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"}
1
+ {"version":3,"file":"plugins.mjs","names":[],"sources":["../../src/plugins.tsx"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport {\n conditionPlugin,\n type DeepTransformContent as DeepTransformContentCore,\n enumerationPlugin,\n filePlugin,\n genderPlugin,\n type IInterpreterPluginState as IInterpreterPluginStateCore,\n nestedPlugin,\n type Plugins,\n translationPlugin,\n} from '@intlayer/core/interpreter';\nimport { getMarkdownMetadata } from '@intlayer/core/markdown';\nimport type {\n HTMLContent,\n InsertionContent,\n MarkdownContent,\n} from '@intlayer/core/transpiler';\nimport type { KeyPath } from '@intlayer/types/keyPath';\nimport type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { NodeType } from '@intlayer/types/nodeType';\nimport { Fragment, h, type VNode } from 'preact';\nimport { ContentSelector } from './editor/ContentSelector';\nimport { HTMLRenderer } from './html/HTMLRenderer';\nimport type { HTMLComponents } from './html/types';\nimport { type IntlayerNode, renderIntlayerNode } from './IntlayerNode';\nimport { MarkdownMetadataRenderer, MarkdownRendererPlugin } from './markdown';\nimport { renderPreactElement } from './preactElement/renderPreactElement';\n\n/** ---------------------------------------------\n * INTLAYER NODE PLUGIN\n * --------------------------------------------- */\n\nexport type IntlayerNodeCond<T> = T extends number | string\n ? IntlayerNode<T>\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const intlayerNodePlugins: Plugins = {\n id: 'intlayer-node-plugin',\n canHandle: (node) =>\n typeof node === 'bigint' ||\n typeof node === 'string' ||\n typeof node === 'number',\n transform: (\n _node,\n {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n }\n ) =>\n renderIntlayerNode({\n ...rest,\n value: rest.children,\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest} key={rest.children}>\n {rest.children}\n </ContentSelector>\n ) : (\n rest.children\n ),\n }),\n};\n\n/** ---------------------------------------------\n * PREACT NODE PLUGIN\n * --------------------------------------------- */\n\nexport type PreactNodeCond<T> = T extends {\n props: any;\n key: any;\n}\n ? VNode\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const preactNodePlugins: Plugins = {\n id: 'preact-node-plugin',\n canHandle: (node) =>\n typeof node === 'object' &&\n typeof node.props !== 'undefined' &&\n typeof node.key !== 'undefined',\n\n transform: (\n node,\n {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n }\n ) =>\n renderIntlayerNode({\n ...rest,\n value: '[[preact-element]]',\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest}>{renderPreactElement(node)}</ContentSelector>\n ) : (\n renderPreactElement(node)\n ),\n }),\n};\n\n/** ---------------------------------------------\n * INSERTION PLUGIN\n * --------------------------------------------- */\n\nexport type InsertionCond<T, _S, L extends LocalesValues> = T extends {\n nodeType: NodeType | string;\n [NodeType.Insertion]: infer I; // Accept strings OR nested nodes like enumerations\n fields: readonly (infer F)[]; // Infer the exact string literals in the array\n}\n ? <V extends { [K in Extract<F, string>]: string | number | VNode }>(\n values: V\n ) => I extends string\n ? V[keyof V] extends string | number\n ? IntlayerNode<string>\n : IntlayerNode<VNode>\n : DeepTransformContent<I, L> // Delegate nested nodes (like enumerations) back to the core\n : never;\n\n/**\n * Check if a value is a Preact VNode\n */\nconst isVNode = (value: any): value is VNode => {\n return (\n value !== null &&\n value !== undefined &&\n typeof value !== 'string' &&\n typeof value !== 'number' &&\n typeof value !== 'boolean'\n );\n};\n\n/**\n * Split insertion string and join with Preact VNodes\n */\nconst splitAndJoinInsertion = (\n template: string,\n values: Record<string, string | number | VNode>\n): VNode => {\n // Check if any value is a VNode\n const hasVNode = Object.values(values).some(isVNode);\n\n if (!hasVNode) {\n // Simple string replacement\n return template.replace(/\\{\\{\\s*(.*?)\\s*\\}\\}/g, (_, key) => {\n const trimmedKey = key.trim();\n return (values[trimmedKey] ?? '').toString();\n }) as any;\n }\n\n // Split the template by placeholders while keeping the structure\n const parts: (string | VNode)[] = [];\n let lastIndex = 0;\n const regex = /\\{\\{\\s*(.*?)\\s*\\}\\}/g;\n let match: RegExpExecArray | null = regex.exec(template);\n\n while (match !== null) {\n // Add text before the placeholder\n if (match.index > lastIndex) {\n parts.push(template.substring(lastIndex, match.index));\n }\n\n // Add the replaced value\n const key = match[1].trim();\n const value = values[key];\n if (value !== undefined && value !== null) {\n parts.push(typeof value === 'number' ? String(value) : value);\n }\n\n lastIndex = match.index + match[0].length;\n match = regex.exec(template);\n }\n\n // Add remaining text\n if (lastIndex < template.length) {\n parts.push(template.substring(lastIndex));\n }\n\n // Return as Fragment\n return h(\n Fragment,\n null,\n ...parts.map((part, index) => h(Fragment, { key: index }, part))\n );\n};\n\n/** Insertion plugin for Preact. Handles component/node insertion. */\nexport const insertionPlugin: Plugins = {\n id: 'insertion-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Insertion,\n transform: (node: InsertionContent, props, deepTransformNode) => {\n const newKeyPath: KeyPath[] = [\n ...props.keyPath,\n {\n type: NodeType.Insertion,\n },\n ];\n\n const children = node[NodeType.Insertion];\n\n /** Insertion string plugin. Replaces string node with a component that render the insertion. */\n const insertionStringPlugin: Plugins = {\n id: 'insertion-string-plugin',\n canHandle: (node) => typeof node === 'string',\n transform: (node: string, subProps, deepTransformNode) => {\n const transformedResult = deepTransformNode(node, {\n ...subProps,\n children: node,\n plugins: [\n ...(props.plugins ?? ([] as Plugins[])).filter(\n (plugin) => plugin.id !== 'intlayer-node-plugin'\n ),\n ],\n });\n\n return (\n values: {\n [K in InsertionContent['fields'][number]]: string | number | VNode;\n }\n ) => {\n const result = splitAndJoinInsertion(transformedResult, values);\n\n return deepTransformNode(result, {\n ...subProps,\n plugins: props.plugins,\n children: result as any,\n });\n };\n },\n };\n\n return deepTransformNode(children, {\n ...props,\n children,\n keyPath: newKeyPath,\n plugins: [insertionStringPlugin, ...(props.plugins ?? [])],\n });\n },\n};\n\n/**\n * MARKDOWN PLUGIN\n */\n\nexport type MarkdownStringCond<T> = T extends string\n ? IntlayerNode<\n string,\n {\n metadata: DeepTransformContent<string>;\n use: (components?: HTMLComponents<'permissive', {}>) => VNode;\n }\n >\n : never;\n\n/** Markdown string plugin. Replaces string node with a component that render the markdown. */\nexport const markdownStringPlugin: Plugins = {\n id: 'markdown-string-plugin',\n canHandle: (node) => typeof node === 'string',\n transform: (node: string, props, deepTransformNode) => {\n const {\n plugins, // Removed to avoid next error - Functions cannot be passed directly to Client Components\n ...rest\n } = props;\n\n const metadata = getMarkdownMetadata(node);\n\n const metadataPlugins: Plugins = {\n id: 'markdown-metadata-plugin',\n canHandle: (metadataNode) =>\n typeof metadataNode === 'string' ||\n typeof metadataNode === 'number' ||\n typeof metadataNode === 'boolean' ||\n !metadataNode,\n transform: (metadataNode, props) =>\n renderIntlayerNode({\n ...props,\n value: metadataNode,\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest}>\n <MarkdownMetadataRenderer\n {...rest}\n metadataKeyPath={props.keyPath}\n >\n {node}\n </MarkdownMetadataRenderer>\n </ContentSelector>\n ) : (\n <MarkdownMetadataRenderer {...rest} metadataKeyPath={props.keyPath}>\n {node}\n </MarkdownMetadataRenderer>\n ),\n }),\n };\n\n // Transform metadata while keeping the same structure\n const metadataNodes = deepTransformNode(metadata, {\n plugins: [metadataPlugins],\n dictionaryKey: rest.dictionaryKey,\n keyPath: [],\n });\n\n const render = (components?: any) =>\n renderIntlayerNode({\n ...props,\n value: node,\n children: configuration?.editor.enabled ? (\n <ContentSelector {...rest}>\n <MarkdownRendererPlugin {...rest} components={components}>\n {node}\n </MarkdownRendererPlugin>\n </ContentSelector>\n ) : (\n <MarkdownRendererPlugin {...rest} components={components}>\n {node}\n </MarkdownRendererPlugin>\n ),\n additionalProps: {\n metadata: metadataNodes,\n },\n });\n\n const element = render() as any;\n\n return new Proxy(element, {\n get(target, prop) {\n if (prop === 'value') {\n return node;\n }\n if (prop === 'metadata') {\n return metadataNodes;\n }\n\n if (prop === 'use') {\n return (components?: any) => render(components);\n }\n\n return Reflect.get(target, prop);\n },\n }) as any;\n },\n};\n\nexport type MarkdownCond<T> = T extends {\n nodeType: NodeType | string;\n [NodeType.Markdown]: infer _M;\n metadata?: infer U;\n tags?: infer U;\n}\n ? {\n use: (components?: HTMLComponents<'permissive', U>) => VNode;\n metadata: DeepTransformContent<U>;\n }\n : never;\n\nexport const markdownPlugin: Plugins = {\n id: 'markdown-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.Markdown,\n transform: (node: MarkdownContent, props, deepTransformNode) => {\n const newKeyPath: KeyPath[] = [\n ...props.keyPath,\n {\n type: NodeType.Markdown,\n },\n ];\n\n const children = node[NodeType.Markdown];\n\n return deepTransformNode(children, {\n ...props,\n children,\n keyPath: newKeyPath,\n plugins: [markdownStringPlugin, ...(props.plugins ?? [])],\n });\n },\n};\n\n/** ---------------------------------------------\n * HTML PLUGIN\n * --------------------------------------------- */\n\nexport type HTMLPluginCond<T> = T extends {\n nodeType: NodeType | string;\n [NodeType.HTML]: infer I;\n tags?: infer U;\n}\n ? {\n use: (components?: HTMLComponents<'permissive', U>) => IntlayerNode<I>;\n }\n : never;\n\n/** HTML plugin. Replaces node with a function that takes components => VNode. */\nexport const htmlPlugin: Plugins = {\n id: 'html-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeType.HTML,\n transform: (node: HTMLContent<string>, props) => {\n const html = node[NodeType.HTML];\n const _tags = node.tags ?? [];\n const { plugins, ...rest } = props;\n\n // Type-safe render function that accepts properly typed components\n const render = (userComponents?: HTMLComponents): VNode =>\n h(HTMLRenderer as any, { ...rest, html, userComponents } as any);\n\n const element = render() as any;\n\n const proxy = new Proxy(element, {\n get(target, prop) {\n if (prop === 'value') {\n return html;\n }\n\n if (prop === 'use') {\n return (userComponents?: HTMLComponents) => render(userComponents);\n }\n\n return Reflect.get(target, prop);\n },\n });\n\n return proxy;\n },\n};\n\n/** ---------------------------------------------\n * PLUGINS RESULT\n * --------------------------------------------- */\n\nexport interface IInterpreterPluginPreact<T, S, L extends LocalesValues> {\n preactNode: PreactNodeCond<T>;\n preactIntlayerNode: IntlayerNodeCond<T>;\n preactInsertion: InsertionCond<T, S, L>;\n preactMarkdown: MarkdownCond<T>;\n preactHtml: HTMLPluginCond<T>;\n}\n\n/**\n * Insert this type as param of `DeepTransformContent` to avoid `intlayer` package pollution.\n *\n * Otherwise the the `preact-intlayer` plugins will override the types of `intlayer` functions.\n */\nexport type IInterpreterPluginState = Omit<\n IInterpreterPluginStateCore,\n 'insertion' // Remove insertion type from core package\n> & {\n preactNode: true;\n preactIntlayerNode: true;\n preactInsertion: true;\n preactMarkdown: true;\n preactHtml: true;\n};\n\nexport type DeepTransformContent<\n T,\n L extends LocalesValues = DeclaredLocales,\n> = DeepTransformContentCore<T, IInterpreterPluginState, L>;\n\n/**\n * Get the plugins array for Preact content transformation.\n * This function is used by both getIntlayer and getDictionary to ensure consistent plugin configuration.\n */\nexport const getPlugins = (\n locale?: LocalesValues,\n fallback: boolean = true\n): Plugins[] => [\n translationPlugin(\n locale ?? configuration.internationalization.defaultLocale,\n fallback ? configuration.internationalization.defaultLocale : undefined\n ),\n enumerationPlugin,\n conditionPlugin,\n nestedPlugin(locale ?? configuration.internationalization.defaultLocale),\n filePlugin,\n genderPlugin,\n intlayerNodePlugins,\n preactNodePlugins,\n insertionPlugin,\n markdownPlugin,\n htmlPlugin,\n];\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugins-D6OB94dO.d.ts","names":[],"sources":["../../src/plugins.tsx"],"mappings":";;;;;;;;;;AAoCA;KAAY,gBAAA,MAAsB,CAAA,2BAC9B,YAAA,CAAa,CAAA;;cAIJ,mBAAA,EAAqB,OAAA;;;;KA8BtB,cAAA,MAAoB,CAAA;EAC9B,KAAA;EACA,GAAA;AAAA,IAEE,KAAA;;cAIS,iBAAA,EAAmB,OAAA;;AAtChC;;KAmEY,aAAA,kBAA+B,aAAA,IAAiB,CAAA;EAC1D,QAAA,EAAU,QAAA;EAAA,CACT,QAAA,CAAS,SAAA;EACV,MAAA;AAAA,uBAEqB,OAAA,CAAQ,CAAA,8BAA+B,KAAA,IACxD,MAAA,EAAQ,CAAA,KACL,CAAA,kBACD,CAAA,OAAQ,CAAA,4BACN,YAAA,WACA,YAAA,CAAa,KAAA,IACf,sBAAA,CAAqB,CAAA,EAAG,CAAA;;cAuEnB,eAAA,EAAiB,OAAA;;;;KA0DlB,kBAAA,MAAwB,CAAA,kBAChC,YAAA;EAGI,QAAA,EAAU,sBAAA;EACV,GAAA,GAAM,UAAA,GAAa,cAAA,uBAAqC,KAAA;AAAA;;cAMnD,oBAAA,EAAsB,OAAA;AAAA,KA+EvB,YAAA,MAAkB,CAAA;EAC5B,QAAA,EAAU,QAAA;EAAA,CACT,QAAA,CAAS,QAAA;EACV,QAAA;EACA,IAAA;AAAA;EAGI,GAAA,GAAM,UAAA,GAAa,cAAA,eAA6B,CAAA,MAAO,KAAA;EACvD,QAAA,EAAU,sBAAA,CAAqB,CAAA;AAAA;AAAA,cAIxB,cAAA,EAAgB,OAAA;;;;KA2BjB,cAAA,MAAoB,CAAA;EAC9B,QAAA,EAAU,QAAA;EAAA,CACT,QAAA,CAAS,IAAA;EACV,IAAA;AAAA;EAGI,GAAA,GAAM,UAAA,GAAa,cAAA,eAA6B,CAAA,MAAO,YAAA,CAAa,CAAA;AAAA;;cAK7D,UAAA,EAAY,OAAA;;;;UAqCR,wBAAA,iBAAyC,aAAA;EACxD,UAAA,EAAY,cAAA,CAAe,CAAA;EAC3B,kBAAA,EAAoB,gBAAA,CAAiB,CAAA;EACrC,eAAA,EAAiB,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,CAAA;EACrC,cAAA,EAAgB,YAAA,CAAa,CAAA;EAC7B,UAAA,EAAY,cAAA,CAAe,CAAA;AAAA;;;;;;KAQjB,yBAAA,GAA0B,IAAA,CACpC,uBAAA;EAGA,UAAA;EACA,kBAAA;EACA,eAAA;EACA,cAAA;EACA,UAAA;AAAA;AAAA,KAGU,sBAAA,cAEA,aAAA,GAAgB,eAAA,IACxB,oBAAA,CAAyB,CAAA,EAAG,yBAAA,EAAyB,CAAA;;;;;cAM5C,UAAA,GACX,MAAA,GAAS,aAAA,EACT,QAAA,eACC,OAAA"}
1
+ {"version":3,"file":"plugins-D6OB94dO.d.ts","names":[],"sources":["../../src/plugins.tsx"],"mappings":";;;;;;;;;;AAoCA;KAAY,gBAAA,MAAsB,CAAA,2BAC9B,YAAA,CAAa,CAAA;;cAIJ,mBAAA,EAAqB,OAAA;;;;KA8BtB,cAAA,MAAoB,CAAA;EAC9B,KAAA;EACA,GAAA;AAAA,IAEE,KAAA;;cAIS,iBAAA,EAAmB,OAAA;;AAtChC;;KAmEY,aAAA,kBAA+B,aAAA,IAAiB,CAAA;EAC1D,QAAA,EAAU,QAAA;EAAA,CACT,QAAA,CAAS,SAAA;EACV,MAAA;AAAA,uBAEqB,OAAA,CAAQ,CAAA,8BAA+B,KAAA,IACxD,MAAA,EAAQ,CAAA,KACL,CAAA,kBACD,CAAA,OAAQ,CAAA,4BACN,YAAA,WACA,YAAA,CAAa,KAAA,IACf,sBAAA,CAAqB,CAAA,EAAG,CAAA;;cAuEnB,eAAA,EAAiB,OAAA;;;;KA0DlB,kBAAA,MAAwB,CAAA,kBAChC,YAAA;EAGI,QAAA,EAAU,sBAAA;EACV,GAAA,GAAM,UAAA,GAAa,cAAA,uBAAqC,KAAA;AAAA;;cAMnD,oBAAA,EAAsB,OAAA;AAAA,KAuFvB,YAAA,MAAkB,CAAA;EAC5B,QAAA,EAAU,QAAA;EAAA,CACT,QAAA,CAAS,QAAA;EACV,QAAA;EACA,IAAA;AAAA;EAGI,GAAA,GAAM,UAAA,GAAa,cAAA,eAA6B,CAAA,MAAO,KAAA;EACvD,QAAA,EAAU,sBAAA,CAAqB,CAAA;AAAA;AAAA,cAIxB,cAAA,EAAgB,OAAA;;;;KA2BjB,cAAA,MAAoB,CAAA;EAC9B,QAAA,EAAU,QAAA;EAAA,CACT,QAAA,CAAS,IAAA;EACV,IAAA;AAAA;EAGI,GAAA,GAAM,UAAA,GAAa,cAAA,eAA6B,CAAA,MAAO,YAAA,CAAa,CAAA;AAAA;;cAK7D,UAAA,EAAY,OAAA;;;;UAqCR,wBAAA,iBAAyC,aAAA;EACxD,UAAA,EAAY,cAAA,CAAe,CAAA;EAC3B,kBAAA,EAAoB,gBAAA,CAAiB,CAAA;EACrC,eAAA,EAAiB,aAAA,CAAc,CAAA,EAAG,CAAA,EAAG,CAAA;EACrC,cAAA,EAAgB,YAAA,CAAa,CAAA;EAC7B,UAAA,EAAY,cAAA,CAAe,CAAA;AAAA;;;;;;KAQjB,yBAAA,GAA0B,IAAA,CACpC,uBAAA;EAGA,UAAA;EACA,kBAAA;EACA,eAAA;EACA,cAAA;EACA,UAAA;AAAA;AAAA,KAGU,sBAAA,cAEA,aAAA,GAAgB,eAAA,IACxB,oBAAA,CAAyB,CAAA,EAAG,yBAAA,EAAyB,CAAA;;;;;cAM5C,UAAA,GACX,MAAA,GAAS,aAAA,EACT,QAAA,eACC,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "preact-intlayer",
3
- "version": "8.4.1",
3
+ "version": "8.4.2",
4
4
  "private": false,
5
5
  "description": "Easily internationalize i18n your Preact applications with type-safe multilingual content management.",
6
6
  "keywords": [
@@ -92,12 +92,12 @@
92
92
  "typecheck": "tsc --noEmit --project tsconfig.types.json"
93
93
  },
94
94
  "dependencies": {
95
- "@intlayer/api": "8.4.1",
96
- "@intlayer/chokidar": "8.4.1",
97
- "@intlayer/config": "8.4.1",
98
- "@intlayer/core": "8.4.1",
99
- "@intlayer/editor": "8.4.1",
100
- "@intlayer/types": "8.4.1"
95
+ "@intlayer/api": "8.4.2",
96
+ "@intlayer/chokidar": "8.4.2",
97
+ "@intlayer/config": "8.4.2",
98
+ "@intlayer/core": "8.4.2",
99
+ "@intlayer/editor": "8.4.2",
100
+ "@intlayer/types": "8.4.2"
101
101
  },
102
102
  "devDependencies": {
103
103
  "@types/node": "25.5.0",
@@ -1,2 +0,0 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require(`./client/useLocaleStorage.cjs`);let l=require(`@intlayer/config/built`);l=s(l);let u=require(`preact`),d=require(`@intlayer/editor/isEnabled`),f=require(`preact/hooks`),p=require(`preact/jsx-runtime`),m=require(`@intlayer/core/localization`);const h=()=>{let{locale:e}=(0,f.useContext)(_),t=(0,f.useRef)(null);(0,f.useEffect)(()=>{if(d.isEnabled)return import(`@intlayer/editor`).then(({initEditorClient:n})=>{let r=n();t.current=r,e&&r.currentLocale.set(e)}),()=>{t.current=null,import(`@intlayer/editor`).then(({stopEditorClient:e})=>{e()})}},[]),(0,f.useEffect)(()=>{!e||!t.current||t.current.currentLocale.set(e)},[e])},g=({children:e})=>(h(),e),_=(0,u.createContext)({locale:c.localeInStorage??l.default?.internationalization?.defaultLocale,setLocale:()=>null}),v=()=>(0,f.useContext)(_),y=({locale:e,defaultLocale:t,children:n,setLocale:r,isCookieEnabled:i})=>{let{internationalization:a}=l.default??{},{defaultLocale:o,locales:s}=a??{},[u,d]=(0,f.useState)(e??c.localeInStorage??t??o);(0,f.useEffect)(()=>{e&&e!==u&&d(e)},[e,u,d]);let h=r??(e=>{if(u.toString()!==e.toString()){if(!s?.map(String).includes(e)){console.error(`Locale ${e} is not available`);return}d(e),c.setLocaleInStorage(e,i??!0)}}),g=(0,m.localeResolver)(e??u);return(0,p.jsx)(_.Provider,{value:{locale:g,setLocale:h,isCookieEnabled:i},children:n})},b=({children:e,...t})=>(0,p.jsxs)(y,{...t,children:[(0,p.jsx)(g,{}),e]});Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return _}});
2
- //# sourceMappingURL=IntlayerProvider-D6OWJC7Y.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntlayerProvider-D6OWJC7Y.cjs","names":["isEnabled","localeInStorage","configuration"],"sources":["../../src/editor/useEditor.tsx","../../src/editor/EditorProvider.tsx","../../src/client/IntlayerProvider.tsx"],"sourcesContent":["import type { EditorStateManager } from '@intlayer/editor';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { useContext, useEffect, useRef } from 'preact/hooks';\nimport { IntlayerClientContext } from '../client/IntlayerProvider';\n\n/**\n * Initialises the Intlayer editor client singleton when the editor is enabled.\n * Syncs the current locale from the Intlayer context into the editor manager so\n * the editor always knows which locale the app is displaying.\n */\nexport const useEditor = () => {\n const { locale } = useContext(IntlayerClientContext);\n const managerRef = useRef<EditorStateManager | null>(null);\n\n useEffect(() => {\n if (!isEnabled) return;\n\n import('@intlayer/editor').then(({ initEditorClient }) => {\n const manager = initEditorClient();\n managerRef.current = manager;\n\n if (locale) manager.currentLocale.set(locale as Locale);\n });\n\n return () => {\n managerRef.current = null;\n import('@intlayer/editor').then(({ stopEditorClient }) => {\n stopEditorClient();\n });\n };\n }, []);\n\n useEffect(() => {\n if (!locale || !managerRef.current) return;\n\n managerRef.current.currentLocale.set(locale as Locale);\n }, [locale]);\n};\n","import type { ComponentChild, FunctionComponent } from 'preact';\nimport { useEditor } from './useEditor';\n\nexport const EditorProvider: FunctionComponent<{\n children?: ComponentChild;\n}> = ({ children }) => {\n useEditor();\n\n return children;\n};\n","import configuration from '@intlayer/config/built';\nimport { localeResolver } from '@intlayer/core/localization';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport {\n type ComponentChild,\n createContext,\n type FunctionComponent,\n} from 'preact';\nimport { useContext, useEffect, useState } from 'preact/hooks';\nimport { EditorProvider } from '../editor/EditorProvider';\nimport { localeInStorage, setLocaleInStorage } from './useLocaleStorage';\n\ntype IntlayerValue = {\n locale: LocalesValues;\n setLocale: (newLocale: LocalesValues) => void;\n isCookieEnabled?: boolean;\n};\n\n/**\n * Context that store the current locale on the client side\n */\nexport const IntlayerClientContext = createContext<IntlayerValue>({\n locale: localeInStorage ?? configuration?.internationalization?.defaultLocale,\n setLocale: () => null,\n});\n\n/**\n * Hook that provides the current locale\n */\nexport const useIntlayerContext = () => useContext(IntlayerClientContext);\n\nexport type IntlayerProviderProps = {\n children?: ComponentChild;\n locale?: LocalesValues;\n defaultLocale?: LocalesValues;\n setLocale?: (locale: LocalesValues) => void;\n isCookieEnabled?: boolean;\n};\n\n/**\n * Provider that store the current locale on the client side\n */\nexport const IntlayerProviderContent: FunctionComponent<\n IntlayerProviderProps\n> = ({\n locale: localeProp,\n defaultLocale: defaultLocaleProp,\n children,\n setLocale: setLocaleProp,\n isCookieEnabled,\n}) => {\n const { internationalization } = configuration ?? {};\n const { defaultLocale: defaultLocaleConfig, locales: availableLocales } =\n internationalization ?? {};\n\n const defaultLocale =\n localeProp ?? localeInStorage ?? defaultLocaleProp ?? defaultLocaleConfig;\n\n const [currentLocale, setCurrentLocale] = useState<LocalesValues>(\n defaultLocale as LocalesValues\n );\n\n useEffect(() => {\n if (localeProp && localeProp !== currentLocale) {\n setCurrentLocale(localeProp);\n }\n }, [localeProp, currentLocale, setCurrentLocale]);\n\n const setLocaleBase = (newLocale: LocalesValues) => {\n if (currentLocale.toString() === newLocale.toString()) return;\n\n if (!availableLocales?.map(String).includes(newLocale)) {\n console.error(`Locale ${newLocale} is not available`);\n return;\n }\n\n setCurrentLocale(newLocale); // Update state\n setLocaleInStorage(newLocale, isCookieEnabled ?? true); // Optionally set cookie for persistence\n };\n\n const setLocale = setLocaleProp ?? setLocaleBase;\n\n const resolvedLocale = localeResolver(localeProp ?? currentLocale);\n\n return (\n <IntlayerClientContext.Provider\n value={{\n locale: resolvedLocale,\n setLocale,\n isCookieEnabled,\n }}\n >\n {children}\n </IntlayerClientContext.Provider>\n );\n};\n\n/**\n * Main provider for Intlayer in Preact applications.\n *\n * It provides the Intlayer context to your application, allowing the use\n * of hooks like `useIntlayer` and `useLocale`.\n *\n * @param props - The provider props.\n * @returns The provider component.\n *\n * @example\n * ```tsx\n * import { IntlayerProvider } from 'preact-intlayer';\n *\n * const App = () => (\n * <IntlayerProvider>\n * <MyComponent />\n * </IntlayerProvider>\n * );\n * ```\n */\nexport const IntlayerProvider: FunctionComponent<IntlayerProviderProps> = ({\n children,\n ...props\n}) => (\n <IntlayerProviderContent {...props}>\n <EditorProvider />\n {children}\n </IntlayerProviderContent>\n);\n"],"mappings":"iuBAWA,MAAa,MAAkB,CAC7B,GAAM,CAAE,WAAA,EAAA,EAAA,YAAsB,EAAsB,CAC9C,GAAA,EAAA,EAAA,QAA+C,KAAK,EAE1D,EAAA,EAAA,eAAgB,CACTA,KAAAA,UASL,OAPA,OAAO,oBAAoB,MAAM,CAAE,sBAAuB,CACxD,IAAM,EAAU,GAAkB,CAClC,EAAW,QAAU,EAEjB,GAAQ,EAAQ,cAAc,IAAI,EAAiB,EACvD,KAEW,CACX,EAAW,QAAU,KACrB,OAAO,oBAAoB,MAAM,CAAE,sBAAuB,CACxD,GAAkB,EAClB,GAEH,EAAE,CAAC,EAEN,EAAA,EAAA,eAAgB,CACV,CAAC,GAAU,CAAC,EAAW,SAE3B,EAAW,QAAQ,cAAc,IAAI,EAAiB,EACrD,CAAC,EAAO,CAAC,EClCD,GAEP,CAAE,eACN,GAAW,CAEJ,GCaI,GAAA,EAAA,EAAA,eAAqD,CAChE,OAAQC,EAAAA,iBAAmBC,EAAAA,SAAe,sBAAsB,cAChE,cAAiB,KAClB,CAAC,CAKW,OAAA,EAAA,EAAA,YAAsC,EAAsB,CAa5D,GAER,CACH,OAAQ,EACR,cAAe,EACf,WACA,UAAW,EACX,qBACI,CACJ,GAAM,CAAE,wBAAyBA,EAAAA,SAAiB,EAAE,CAC9C,CAAE,cAAe,EAAqB,QAAS,GACnD,GAAwB,EAAE,CAKtB,CAAC,EAAe,IAAA,EAAA,EAAA,UAFpB,GAAcD,EAAAA,iBAAmB,GAAqB,EAIvD,EAED,EAAA,EAAA,eAAgB,CACV,GAAc,IAAe,GAC/B,EAAiB,EAAW,EAE7B,CAAC,EAAY,EAAe,EAAiB,CAAC,CAcjD,IAAM,EAAY,IAZK,GAA6B,CAC9C,KAAc,UAAU,GAAK,EAAU,UAAU,CAErD,IAAI,CAAC,GAAkB,IAAI,OAAO,CAAC,SAAS,EAAU,CAAE,CACtD,QAAQ,MAAM,UAAU,EAAU,mBAAmB,CACrD,OAGF,EAAiB,EAAU,CAC3B,EAAA,mBAAmB,EAAW,GAAmB,GAAK,IAKlD,GAAA,EAAA,EAAA,gBAAgC,GAAc,EAAc,CAElE,OACE,EAAA,EAAA,KAAC,EAAsB,SAAvB,CACE,MAAO,CACL,OAAQ,EACR,YACA,kBACD,CAEA,WAC8B,CAAA,EAwBxB,GAA8D,CACzE,WACA,GAAG,MAEH,EAAA,EAAA,MAAC,EAAD,CAAyB,GAAI,WAA7B,EACE,EAAA,EAAA,KAAC,EAAD,EAAkB,CAAA,CACjB,EACuB"}
@@ -1,2 +0,0 @@
1
- import{localeInStorage as e,setLocaleInStorage as t}from"./client/useLocaleStorage.mjs";import n from"@intlayer/config/built";import{createContext as r}from"preact";import{isEnabled as i}from"@intlayer/editor/isEnabled";import{useContext as a,useEffect as o,useRef as s,useState as c}from"preact/hooks";import{jsx as l,jsxs as u}from"preact/jsx-runtime";import{localeResolver as d}from"@intlayer/core/localization";const f=()=>{let{locale:e}=a(m),t=s(null);o(()=>{if(i)return import(`@intlayer/editor`).then(({initEditorClient:n})=>{let r=n();t.current=r,e&&r.currentLocale.set(e)}),()=>{t.current=null,import(`@intlayer/editor`).then(({stopEditorClient:e})=>{e()})}},[]),o(()=>{!e||!t.current||t.current.currentLocale.set(e)},[e])},p=({children:e})=>(f(),e),m=r({locale:e??n?.internationalization?.defaultLocale,setLocale:()=>null}),h=()=>a(m),g=({locale:r,defaultLocale:i,children:a,setLocale:s,isCookieEnabled:u})=>{let{internationalization:f}=n??{},{defaultLocale:p,locales:h}=f??{},[g,_]=c(r??e??i??p);o(()=>{r&&r!==g&&_(r)},[r,g,_]);let v=s??(e=>{if(g.toString()!==e.toString()){if(!h?.map(String).includes(e)){console.error(`Locale ${e} is not available`);return}_(e),t(e,u??!0)}}),y=d(r??g);return l(m.Provider,{value:{locale:y,setLocale:v,isCookieEnabled:u},children:a})},_=({children:e,...t})=>u(g,{...t,children:[l(p,{}),e]});export{p as a,h as i,_ as n,f as o,g as r,m as t};
2
- //# sourceMappingURL=IntlayerProvider-y3IBs1Py.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntlayerProvider-y3IBs1Py.mjs","names":[],"sources":["../../src/editor/useEditor.tsx","../../src/editor/EditorProvider.tsx","../../src/client/IntlayerProvider.tsx"],"sourcesContent":["import type { EditorStateManager } from '@intlayer/editor';\nimport { isEnabled } from '@intlayer/editor/isEnabled';\nimport type { Locale } from '@intlayer/types/allLocales';\nimport { useContext, useEffect, useRef } from 'preact/hooks';\nimport { IntlayerClientContext } from '../client/IntlayerProvider';\n\n/**\n * Initialises the Intlayer editor client singleton when the editor is enabled.\n * Syncs the current locale from the Intlayer context into the editor manager so\n * the editor always knows which locale the app is displaying.\n */\nexport const useEditor = () => {\n const { locale } = useContext(IntlayerClientContext);\n const managerRef = useRef<EditorStateManager | null>(null);\n\n useEffect(() => {\n if (!isEnabled) return;\n\n import('@intlayer/editor').then(({ initEditorClient }) => {\n const manager = initEditorClient();\n managerRef.current = manager;\n\n if (locale) manager.currentLocale.set(locale as Locale);\n });\n\n return () => {\n managerRef.current = null;\n import('@intlayer/editor').then(({ stopEditorClient }) => {\n stopEditorClient();\n });\n };\n }, []);\n\n useEffect(() => {\n if (!locale || !managerRef.current) return;\n\n managerRef.current.currentLocale.set(locale as Locale);\n }, [locale]);\n};\n","import type { ComponentChild, FunctionComponent } from 'preact';\nimport { useEditor } from './useEditor';\n\nexport const EditorProvider: FunctionComponent<{\n children?: ComponentChild;\n}> = ({ children }) => {\n useEditor();\n\n return children;\n};\n","import configuration from '@intlayer/config/built';\nimport { localeResolver } from '@intlayer/core/localization';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport {\n type ComponentChild,\n createContext,\n type FunctionComponent,\n} from 'preact';\nimport { useContext, useEffect, useState } from 'preact/hooks';\nimport { EditorProvider } from '../editor/EditorProvider';\nimport { localeInStorage, setLocaleInStorage } from './useLocaleStorage';\n\ntype IntlayerValue = {\n locale: LocalesValues;\n setLocale: (newLocale: LocalesValues) => void;\n isCookieEnabled?: boolean;\n};\n\n/**\n * Context that store the current locale on the client side\n */\nexport const IntlayerClientContext = createContext<IntlayerValue>({\n locale: localeInStorage ?? configuration?.internationalization?.defaultLocale,\n setLocale: () => null,\n});\n\n/**\n * Hook that provides the current locale\n */\nexport const useIntlayerContext = () => useContext(IntlayerClientContext);\n\nexport type IntlayerProviderProps = {\n children?: ComponentChild;\n locale?: LocalesValues;\n defaultLocale?: LocalesValues;\n setLocale?: (locale: LocalesValues) => void;\n isCookieEnabled?: boolean;\n};\n\n/**\n * Provider that store the current locale on the client side\n */\nexport const IntlayerProviderContent: FunctionComponent<\n IntlayerProviderProps\n> = ({\n locale: localeProp,\n defaultLocale: defaultLocaleProp,\n children,\n setLocale: setLocaleProp,\n isCookieEnabled,\n}) => {\n const { internationalization } = configuration ?? {};\n const { defaultLocale: defaultLocaleConfig, locales: availableLocales } =\n internationalization ?? {};\n\n const defaultLocale =\n localeProp ?? localeInStorage ?? defaultLocaleProp ?? defaultLocaleConfig;\n\n const [currentLocale, setCurrentLocale] = useState<LocalesValues>(\n defaultLocale as LocalesValues\n );\n\n useEffect(() => {\n if (localeProp && localeProp !== currentLocale) {\n setCurrentLocale(localeProp);\n }\n }, [localeProp, currentLocale, setCurrentLocale]);\n\n const setLocaleBase = (newLocale: LocalesValues) => {\n if (currentLocale.toString() === newLocale.toString()) return;\n\n if (!availableLocales?.map(String).includes(newLocale)) {\n console.error(`Locale ${newLocale} is not available`);\n return;\n }\n\n setCurrentLocale(newLocale); // Update state\n setLocaleInStorage(newLocale, isCookieEnabled ?? true); // Optionally set cookie for persistence\n };\n\n const setLocale = setLocaleProp ?? setLocaleBase;\n\n const resolvedLocale = localeResolver(localeProp ?? currentLocale);\n\n return (\n <IntlayerClientContext.Provider\n value={{\n locale: resolvedLocale,\n setLocale,\n isCookieEnabled,\n }}\n >\n {children}\n </IntlayerClientContext.Provider>\n );\n};\n\n/**\n * Main provider for Intlayer in Preact applications.\n *\n * It provides the Intlayer context to your application, allowing the use\n * of hooks like `useIntlayer` and `useLocale`.\n *\n * @param props - The provider props.\n * @returns The provider component.\n *\n * @example\n * ```tsx\n * import { IntlayerProvider } from 'preact-intlayer';\n *\n * const App = () => (\n * <IntlayerProvider>\n * <MyComponent />\n * </IntlayerProvider>\n * );\n * ```\n */\nexport const IntlayerProvider: FunctionComponent<IntlayerProviderProps> = ({\n children,\n ...props\n}) => (\n <IntlayerProviderContent {...props}>\n <EditorProvider />\n {children}\n </IntlayerProviderContent>\n);\n"],"mappings":"+ZAWA,MAAa,MAAkB,CAC7B,GAAM,CAAE,UAAW,EAAW,EAAsB,CAC9C,EAAa,EAAkC,KAAK,CAE1D,MAAgB,CACT,KASL,OAPA,OAAO,oBAAoB,MAAM,CAAE,sBAAuB,CACxD,IAAM,EAAU,GAAkB,CAClC,EAAW,QAAU,EAEjB,GAAQ,EAAQ,cAAc,IAAI,EAAiB,EACvD,KAEW,CACX,EAAW,QAAU,KACrB,OAAO,oBAAoB,MAAM,CAAE,sBAAuB,CACxD,GAAkB,EAClB,GAEH,EAAE,CAAC,CAEN,MAAgB,CACV,CAAC,GAAU,CAAC,EAAW,SAE3B,EAAW,QAAQ,cAAc,IAAI,EAAiB,EACrD,CAAC,EAAO,CAAC,EClCD,GAEP,CAAE,eACN,GAAW,CAEJ,GCaI,EAAwB,EAA6B,CAChE,OAAQ,GAAmB,GAAe,sBAAsB,cAChE,cAAiB,KAClB,CAAC,CAKW,MAA2B,EAAW,EAAsB,CAa5D,GAER,CACH,OAAQ,EACR,cAAe,EACf,WACA,UAAW,EACX,qBACI,CACJ,GAAM,CAAE,wBAAyB,GAAiB,EAAE,CAC9C,CAAE,cAAe,EAAqB,QAAS,GACnD,GAAwB,EAAE,CAKtB,CAAC,EAAe,GAAoB,EAFxC,GAAc,GAAmB,GAAqB,EAIvD,CAED,MAAgB,CACV,GAAc,IAAe,GAC/B,EAAiB,EAAW,EAE7B,CAAC,EAAY,EAAe,EAAiB,CAAC,CAcjD,IAAM,EAAY,IAZK,GAA6B,CAC9C,KAAc,UAAU,GAAK,EAAU,UAAU,CAErD,IAAI,CAAC,GAAkB,IAAI,OAAO,CAAC,SAAS,EAAU,CAAE,CACtD,QAAQ,MAAM,UAAU,EAAU,mBAAmB,CACrD,OAGF,EAAiB,EAAU,CAC3B,EAAmB,EAAW,GAAmB,GAAK,IAKlD,EAAiB,EAAe,GAAc,EAAc,CAElE,OACE,EAAC,EAAsB,SAAvB,CACE,MAAO,CACL,OAAQ,EACR,YACA,kBACD,CAEA,WAC8B,CAAA,EAwBxB,GAA8D,CACzE,WACA,GAAG,KAEH,EAAC,EAAD,CAAyB,GAAI,WAA7B,CACE,EAAC,EAAD,EAAkB,CAAA,CACjB,EACuB"}