{"version":3,"file":"config.mjs","sources":["../src/config.tsx"],"sourcesContent":["\"use client\";\n\nimport type { PropsWithChildren } from \"react\";\nimport React, { createContext, useContext, useMemo } from \"react\";\n\nimport { type Components, ComponentsProvider } from \"./components\";\nimport type { Overrides } from \"./overrides\";\nimport { OverridesProvider } from \"./overrides\";\n\ntype CommentsConfigProps = PropsWithChildren<{\n  /**\n   * Override the components' strings.\n   */\n  overrides?: Partial<Overrides>;\n\n  /**\n   * Override the components' components.\n   */\n  components?: Partial<Components>;\n\n  /**\n   * The container to render the portal into.\n   */\n  portalContainer?: HTMLElement;\n}>;\n\ninterface CommentsConfigContext {\n  portalContainer?: HTMLElement;\n}\n\nconst CommentsConfigContext = createContext<CommentsConfigContext>({});\n\nexport function useCommentsConfig() {\n  return useContext(CommentsConfigContext);\n}\n\n/**\n * Set configuration options for all Comments components.\n *\n * @example\n * <CommentsConfig overrides={{ locale: \"fr\", USER_UNKNOWN: \"Anonyme\", ... }}>\n *   <App />\n * </CommentsConfig>\n */\nexport function CommentsConfig({\n  overrides,\n  components,\n  portalContainer,\n  children,\n}: CommentsConfigProps) {\n  const commentsConfig = useMemo(\n    () => ({ portalContainer }),\n    [portalContainer]\n  );\n\n  return (\n    <CommentsConfigContext.Provider value={commentsConfig}>\n      <OverridesProvider overrides={overrides}>\n        <ComponentsProvider components={components}>\n          {children}\n        </ComponentsProvider>\n      </OverridesProvider>\n    </CommentsConfigContext.Provider>\n  );\n}\n"],"names":[],"mappings":";;;;;AA8BA;AAEO;AACL;AACF;AAUO;AAAwB;AAC7B;AACA;AACA;AAEF;AACE;AAAuB;AACI;AACT;AAGlB;AACG;AAAsC;AACpC;AAAkB;AAChB;AAAmB;AAM5B;;"}