{"version":3,"file":"IsographEnvironmentProvider.mjs","names":[],"sources":["../../src/react/IsographEnvironmentProvider.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { createContext, useContext } from 'react';\nimport { type IsographEnvironment } from '../core/IsographEnvironment';\n\nexport const IsographEnvironmentContext =\n  createContext<IsographEnvironment | null>(null);\n\nexport type IsographEnvironmentProviderProps = {\n  readonly environment: IsographEnvironment;\n  readonly children: ReactNode;\n};\n\nexport function IsographEnvironmentProvider({\n  environment,\n  children,\n}: IsographEnvironmentProviderProps): React.ReactElement {\n  return (\n    <IsographEnvironmentContext.Provider value={environment}>\n      {children}\n    </IsographEnvironmentContext.Provider>\n  );\n}\n\nexport function useIsographEnvironment(): IsographEnvironment {\n  const context = useContext(IsographEnvironmentContext);\n  if (context == null) {\n    throw new Error(\n      'Unexpected null environment context. Make sure to render ' +\n        'this component within an IsographEnvironmentProvider component',\n    );\n  }\n  return context;\n}\n"],"mappings":";;;;AAKA,MAAa,6BACX,cAA0C,KAAK;AAOjD,SAAgB,4BAA4B,EAC1C,aACA,YACuD;AACvD,QACE,sCAAC,2BAA2B,YAAS,OAAO,eACzC,SACmC;;AAI1C,SAAgB,yBAA8C;CAC5D,MAAM,UAAU,WAAW,2BAA2B;AACtD,KAAI,WAAW,KACb,OAAM,IAAI,MACR,0HAED;AAEH,QAAO"}