UNPKG

@spark-web/core

Version:

--- title: Core isExperimentalPackage: true ---

42 lines (39 loc) 1.74 kB
import { Global } from '@emotion/react'; import { useFocusVisible, IdProvider } from '@spark-web/a11y'; import { LinkComponentContext, DefaultLinkComponent } from '@spark-web/link'; import { GlobalThemeProvider, ThemeProvider, AesteticoStylesheet, BeaconSansStylesheet } from '@spark-web/theme'; import { jsx, jsxs } from '@emotion/react/jsx-runtime'; /** Consolidates core functionality and dependencies of Spark Web. */ var SparkProvider = function SparkProvider(_ref) { var children = _ref.children, _ref$linkComponent = _ref.linkComponent, linkComponent = _ref$linkComponent === void 0 ? DefaultLinkComponent : _ref$linkComponent, _ref$loadCustomFonts = _ref.loadCustomFonts, loadCustomFonts = _ref$loadCustomFonts === void 0 ? true : _ref$loadCustomFonts, _ref$supportedThemes = _ref.supportedThemes, supportedThemes = _ref$supportedThemes === void 0 ? ['brighte'] : _ref$supportedThemes, _ref$theme = _ref.theme, themeName = _ref$theme === void 0 ? 'brighte' : _ref$theme; useFocusVisible(); var fontStylesheetMap = { brighte: AesteticoStylesheet, pantheon: BeaconSansStylesheet }; return jsx(GlobalThemeProvider, { value: themeName, children: jsxs(ThemeProvider, { children: [jsx(LinkComponentContext.Provider, { value: linkComponent, children: jsx(IdProvider, { children: children }) }), loadCustomFonts && supportedThemes.map(function (theme) { var Component = fontStylesheetMap[theme]; return jsx(Component, {}, theme); }), jsx(Global, { styles: "body{margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}" })] }) }); }; export { SparkProvider };