UNPKG

@shopify/polaris

Version:

Shopify’s product component library

91 lines (84 loc) 3.64 kB
import { objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js'; import React$1, { StrictMode, Fragment } from 'react'; import { ThemeContext } from '../../utilities/theme/context.js'; import { buildCustomProperties, buildThemeContext } from '../../utilities/theme/utils.js'; import { FeaturesContext } from '../../utilities/features/context.js'; import { MediaQueryContext } from '../../utilities/media-query/context.js'; import { UniqueIdFactoryContext } from '../../utilities/unique-id/context.js'; import { UniqueIdFactory, globalIdGeneratorFactory } from '../../utilities/unique-id/unique-id-factory.js'; import { FocusManager as FocusManager$1 } from '../FocusManager/FocusManager.js'; import { I18nContext } from '../../utilities/i18n/context.js'; import { merge as merge$1 } from '../../utilities/merge.js'; import { I18n as I18n$1 } from '../../utilities/i18n/I18n.js'; import { ScrollLockManagerContext } from '../../utilities/scroll-lock-manager/context.js'; import { ScrollLockManager } from '../../utilities/scroll-lock-manager/scroll-lock-manager.js'; import { StickyManagerContext } from '../../utilities/sticky-manager/context.js'; import { StickyManager } from '../../utilities/sticky-manager/sticky-manager.js'; import { LinkContext } from '../../utilities/link/context.js'; import { FrameContext } from '../../utilities/frame/context.js'; var defaultMediaQuery = { isNavigationCollapsed: false }; function PolarisTestProvider({ strict, children, i18n, link, theme = {}, mediaQuery, features: featuresProp = {}, frame }) { var Wrapper = strict ? StrictMode : Fragment; var intl = new I18n$1(i18n || {}); var scrollLockManager = new ScrollLockManager(); var stickyManager = new StickyManager(); var uniqueIdFactory = new UniqueIdFactory(globalIdGeneratorFactory); var features = _objectSpread2({ newDesignLanguage: false }, featuresProp); var customProperties = features.newDesignLanguage ? buildCustomProperties(_objectSpread2(_objectSpread2({}, theme), {}, { colorScheme: 'light' }), features.newDesignLanguage) : undefined; var mergedTheme = buildThemeContext(theme, customProperties); var mergedFrame = createFrameContext(frame); var mergedMediaQuery = merge$1(defaultMediaQuery, mediaQuery); return /*#__PURE__*/React$1.createElement(Wrapper, null, /*#__PURE__*/React$1.createElement(FeaturesContext.Provider, { value: features }, /*#__PURE__*/React$1.createElement(I18nContext.Provider, { value: intl }, /*#__PURE__*/React$1.createElement(ScrollLockManagerContext.Provider, { value: scrollLockManager }, /*#__PURE__*/React$1.createElement(StickyManagerContext.Provider, { value: stickyManager }, /*#__PURE__*/React$1.createElement(UniqueIdFactoryContext.Provider, { value: uniqueIdFactory }, /*#__PURE__*/React$1.createElement(LinkContext.Provider, { value: link }, /*#__PURE__*/React$1.createElement(ThemeContext.Provider, { value: mergedTheme }, /*#__PURE__*/React$1.createElement(MediaQueryContext.Provider, { value: mergedMediaQuery }, /*#__PURE__*/React$1.createElement(FocusManager$1, null, /*#__PURE__*/React$1.createElement(FrameContext.Provider, { value: mergedFrame }, children))))))))))); } function noop() {} function createFrameContext({ showToast = noop, hideToast = noop, setContextualSaveBar = noop, removeContextualSaveBar = noop, startLoading = noop, stopLoading = noop } = {}) { return { showToast, hideToast, setContextualSaveBar, removeContextualSaveBar, startLoading, stopLoading }; } export { PolarisTestProvider };