{"version":3,"file":"core.mjs","sources":["../../../../../src/mods/react/contexts/core.tsx"],"sourcesContent":["import { Option } from \"@hazae41/option\";\nimport { Core } from \"mods/core/core.js\";\nimport * as React from \"react\";\nimport { createContext, useContext, useEffect, useRef } from \"react\";\nexport const CoreContext = createContext(undefined);\nexport function useCore() {\n    return Option.wrap(useContext(CoreContext));\n}\nexport function useCoreProvider(settings) {\n    const coreRef = useRef();\n    if (coreRef.current == null)\n        coreRef.current = new Core(settings);\n    useEffect(() => () => {\n        coreRef.current?.clean();\n    }, []);\n    return coreRef.current;\n}\nexport function CoreProvider(props) {\n    const { children, ...settings } = props;\n    const core = useCoreProvider(settings);\n    return React.createElement(CoreContext.Provider, { value: core }, children);\n}\n//# sourceMappingURL=core.js.map"],"names":[],"mappings":";;;;;AAIY,MAAC,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE;AAC7C,SAAS,OAAO,GAAG;AAC1B,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AAChD,CAAC;AACM,SAAS,eAAe,CAAC,QAAQ,EAAE;AAC1C,IAAI,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAC7B,IAAI,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI;AAC/B,QAAQ,OAAO,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,IAAI,SAAS,CAAC,MAAM,MAAM;AAC1B,QAAQ,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;AACjC,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,CAAC;AACM,SAAS,YAAY,CAAC,KAAK,EAAE;AACpC,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;AAC5C,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC3C,IAAI,OAAO,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;AAChF;;;;"}