{"version":3,"file":"ConfigurationContext.cjs","names":["useEditorStateManager"],"sources":["../../src/ConfigurationContext.tsx"],"sourcesContent":["'use client';\n\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport {\n  createContext,\n  type FC,\n  type PropsWithChildren,\n  useContext,\n  useEffect,\n  useState,\n} from 'react';\nimport { useEditorStateManager } from './EditorStateContext';\n\n// 1. Create a native React context\nconst ConfigurationReactContext = createContext<IntlayerConfig | undefined>(\n  undefined\n);\n\nexport type ConfigurationProviderProps = PropsWithChildren<{\n  configuration?: IntlayerConfig;\n}>;\n\nexport const ConfigurationProvider: FC<ConfigurationProviderProps> = ({\n  configuration,\n  children,\n}) => {\n  const manager = useEditorStateManager();\n\n  useEffect(() => {\n    if (!manager || !configuration) return;\n\n    manager.configuration.set(configuration);\n  }, [manager, configuration]);\n\n  // 2. Wrap children in the native provider\n  return (\n    <ConfigurationReactContext.Provider value={configuration}>\n      {children}\n    </ConfigurationReactContext.Provider>\n  );\n};\n\nexport const useConfiguration = (): IntlayerConfig | undefined => {\n  const manager = useEditorStateManager();\n  const reactConfig = useContext(ConfigurationReactContext); // 3. Consume native context\n\n  const [config, setConfig] = useState<IntlayerConfig | undefined>(\n    manager?.configuration.value ?? reactConfig\n  );\n\n  useEffect(() => {\n    if (!manager) {\n      setConfig(reactConfig);\n      return;\n    }\n\n    const handler = (e: Event) => {\n      const detail = (e as CustomEvent<IntlayerConfig>).detail;\n      setConfig(detail ?? reactConfig);\n    };\n\n    manager.configuration.addEventListener('change', handler);\n    return () => manager.configuration.removeEventListener('change', handler);\n  }, [manager, reactConfig]);\n\n  // Prefer event-driven config, fallback to React context config\n  return config ?? reactConfig;\n};\n\nexport const useConfigurationState = () => {\n  const manager = useEditorStateManager();\n  const reactConfig = useContext(ConfigurationReactContext);\n\n  const [config, setConfig] = useState<IntlayerConfig | undefined>(\n    manager?.configuration.value ?? reactConfig\n  );\n\n  return [\n    config ?? reactConfig,\n    setConfig,\n    () => manager?.configuration.postCurrentValue(),\n  ] as const;\n};\n"],"mappings":";;;;;;;;;AAcA,MAAM,qDACJ,OACD;AAMD,MAAa,yBAAyD,EACpE,eACA,eACI;CACJ,MAAM,UAAUA,kDAAuB;AAEvC,4BAAgB;AACd,MAAI,CAAC,WAAW,CAAC,cAAe;AAEhC,UAAQ,cAAc,IAAI,cAAc;IACvC,CAAC,SAAS,cAAc,CAAC;AAG5B,QACE,2CAAC,0BAA0B,UAA3B;EAAoC,OAAO;EACxC;EACkC;;AAIzC,MAAa,yBAAqD;CAChE,MAAM,UAAUA,kDAAuB;CACvC,MAAM,oCAAyB,0BAA0B;CAEzD,MAAM,CAAC,QAAQ,iCACb,SAAS,cAAc,SAAS,YACjC;AAED,4BAAgB;AACd,MAAI,CAAC,SAAS;AACZ,aAAU,YAAY;AACtB;;EAGF,MAAM,WAAW,MAAa;GAC5B,MAAM,SAAU,EAAkC;AAClD,aAAU,UAAU,YAAY;;AAGlC,UAAQ,cAAc,iBAAiB,UAAU,QAAQ;AACzD,eAAa,QAAQ,cAAc,oBAAoB,UAAU,QAAQ;IACxE,CAAC,SAAS,YAAY,CAAC;AAG1B,QAAO,UAAU;;AAGnB,MAAa,8BAA8B;CACzC,MAAM,UAAUA,kDAAuB;CACvC,MAAM,oCAAyB,0BAA0B;CAEzD,MAAM,CAAC,QAAQ,iCACb,SAAS,cAAc,SAAS,YACjC;AAED,QAAO;EACL,UAAU;EACV;QACM,SAAS,cAAc,kBAAkB;EAChD"}