@spark-web/core
Version:
--- title: Core isExperimentalPackage: true ---
42 lines (39 loc) • 1.74 kB
JavaScript
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 };