UNPKG

@hackplan/polaris

Version:

Shopify’s product component library

1,393 lines (1,203 loc) 752 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var React = require('react'); var React__default = _interopDefault(React); var hoistStatics = _interopDefault(require('hoist-non-react-statics')); var debounce = _interopDefault(require('lodash/debounce')); var geometry = require('@shopify/javascript-utilities/geometry'); var events = require('@shopify/javascript-utilities/events'); var tokens = require('@shopify/polaris-tokens'); var tokens__default = _interopDefault(tokens); var createApp = require('@shopify/app-bridge'); var createApp__default = _interopDefault(createApp); var tslib_1 = require('tslib'); var polarisIcons = require('@shopify/polaris-icons'); var dom = require('@shopify/javascript-utilities/dom'); var other = require('@shopify/javascript-utilities/other'); var focus = require('@shopify/javascript-utilities/focus'); var reactDom = require('react-dom'); var fastdom = require('@shopify/javascript-utilities/fastdom'); var isEqual = _interopDefault(require('lodash/isEqual')); var math = require('@shopify/javascript-utilities/math'); var dates = require('@shopify/javascript-utilities/dates'); var reactTransitionGroup = require('@material-ui/react-transition-group'); var actions = require('@shopify/app-bridge/actions'); var range = _interopDefault(require('lodash/range')); var reactBeautifulDnd = require('react-beautiful-dnd'); if (typeof window !== 'undefined') { window.Polaris = window.Polaris || {}; window.Polaris.VERSION = '4.1.9'; } var polarisVersion = '4.1.9'; (function (Key) { Key[Key["Backspace"] = 8] = "Backspace"; Key[Key["Tab"] = 9] = "Tab"; Key[Key["Enter"] = 13] = "Enter"; Key[Key["Shift"] = 16] = "Shift"; Key[Key["Ctrl"] = 17] = "Ctrl"; Key[Key["Alt"] = 18] = "Alt"; Key[Key["Pause"] = 19] = "Pause"; Key[Key["CapsLock"] = 20] = "CapsLock"; Key[Key["Escape"] = 27] = "Escape"; Key[Key["Space"] = 32] = "Space"; Key[Key["PageUp"] = 33] = "PageUp"; Key[Key["PageDown"] = 34] = "PageDown"; Key[Key["End"] = 35] = "End"; Key[Key["Home"] = 36] = "Home"; Key[Key["LeftArrow"] = 37] = "LeftArrow"; Key[Key["UpArrow"] = 38] = "UpArrow"; Key[Key["RightArrow"] = 39] = "RightArrow"; Key[Key["DownArrow"] = 40] = "DownArrow"; Key[Key["Insert"] = 45] = "Insert"; Key[Key["Delete"] = 46] = "Delete"; Key[Key["Key0"] = 48] = "Key0"; Key[Key["Key1"] = 49] = "Key1"; Key[Key["Key2"] = 50] = "Key2"; Key[Key["Key3"] = 51] = "Key3"; Key[Key["Key4"] = 52] = "Key4"; Key[Key["Key5"] = 53] = "Key5"; Key[Key["Key6"] = 54] = "Key6"; Key[Key["Key7"] = 55] = "Key7"; Key[Key["Key8"] = 56] = "Key8"; Key[Key["Key9"] = 57] = "Key9"; Key[Key["KeyA"] = 65] = "KeyA"; Key[Key["KeyB"] = 66] = "KeyB"; Key[Key["KeyC"] = 67] = "KeyC"; Key[Key["KeyD"] = 68] = "KeyD"; Key[Key["KeyE"] = 69] = "KeyE"; Key[Key["KeyF"] = 70] = "KeyF"; Key[Key["KeyG"] = 71] = "KeyG"; Key[Key["KeyH"] = 72] = "KeyH"; Key[Key["KeyI"] = 73] = "KeyI"; Key[Key["KeyJ"] = 74] = "KeyJ"; Key[Key["KeyK"] = 75] = "KeyK"; Key[Key["KeyL"] = 76] = "KeyL"; Key[Key["KeyM"] = 77] = "KeyM"; Key[Key["KeyN"] = 78] = "KeyN"; Key[Key["KeyO"] = 79] = "KeyO"; Key[Key["KeyP"] = 80] = "KeyP"; Key[Key["KeyQ"] = 81] = "KeyQ"; Key[Key["KeyR"] = 82] = "KeyR"; Key[Key["KeyS"] = 83] = "KeyS"; Key[Key["KeyT"] = 84] = "KeyT"; Key[Key["KeyU"] = 85] = "KeyU"; Key[Key["KeyV"] = 86] = "KeyV"; Key[Key["KeyW"] = 87] = "KeyW"; Key[Key["KeyX"] = 88] = "KeyX"; Key[Key["KeyY"] = 89] = "KeyY"; Key[Key["KeyZ"] = 90] = "KeyZ"; Key[Key["LeftMeta"] = 91] = "LeftMeta"; Key[Key["RightMeta"] = 92] = "RightMeta"; Key[Key["Select"] = 93] = "Select"; Key[Key["Numpad0"] = 96] = "Numpad0"; Key[Key["Numpad1"] = 97] = "Numpad1"; Key[Key["Numpad2"] = 98] = "Numpad2"; Key[Key["Numpad3"] = 99] = "Numpad3"; Key[Key["Numpad4"] = 100] = "Numpad4"; Key[Key["Numpad5"] = 101] = "Numpad5"; Key[Key["Numpad6"] = 102] = "Numpad6"; Key[Key["Numpad7"] = 103] = "Numpad7"; Key[Key["Numpad8"] = 104] = "Numpad8"; Key[Key["Numpad9"] = 105] = "Numpad9"; Key[Key["Multiply"] = 106] = "Multiply"; Key[Key["Add"] = 107] = "Add"; Key[Key["Subtract"] = 109] = "Subtract"; Key[Key["Decimal"] = 110] = "Decimal"; Key[Key["Divide"] = 111] = "Divide"; Key[Key["F1"] = 112] = "F1"; Key[Key["F2"] = 113] = "F2"; Key[Key["F3"] = 114] = "F3"; Key[Key["F4"] = 115] = "F4"; Key[Key["F5"] = 116] = "F5"; Key[Key["F6"] = 117] = "F6"; Key[Key["F7"] = 118] = "F7"; Key[Key["F8"] = 119] = "F8"; Key[Key["F9"] = 120] = "F9"; Key[Key["F10"] = 121] = "F10"; Key[Key["F11"] = 122] = "F11"; Key[Key["F12"] = 123] = "F12"; Key[Key["NumLock"] = 144] = "NumLock"; Key[Key["ScrollLock"] = 145] = "ScrollLock"; Key[Key["Semicolon"] = 186] = "Semicolon"; Key[Key["Equals"] = 187] = "Equals"; Key[Key["Comma"] = 188] = "Comma"; Key[Key["Dash"] = 189] = "Dash"; Key[Key["Period"] = 190] = "Period"; Key[Key["ForwardSlash"] = 191] = "ForwardSlash"; Key[Key["GraveAccent"] = 192] = "GraveAccent"; Key[Key["OpenBracket"] = 219] = "OpenBracket"; Key[Key["BackSlash"] = 220] = "BackSlash"; Key[Key["CloseBracket"] = 221] = "CloseBracket"; Key[Key["SingleQuote"] = 222] = "SingleQuote"; })(exports.Key || (exports.Key = {})); (function (TypeOf) { TypeOf["Undefined"] = "undefined"; TypeOf["Object"] = "object"; TypeOf["Boolean"] = "boolean"; TypeOf["Number"] = "number"; TypeOf["String"] = "string"; TypeOf["Symbol"] = "symbol"; TypeOf["Function"] = "function"; })(exports.TypeOf || (exports.TypeOf = {})); function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function (obj) { return typeof obj; }; } else { _typeof = function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } function classNames() { for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) { classes[_key] = arguments[_key]; } return classes.filter(Boolean).join(' '); } function variationName(name, value) { return "".concat(name).concat(value.charAt(0).toUpperCase()).concat(value.slice(1)); } var isServer = typeof window === 'undefined' || typeof document === 'undefined'; var I18nContext = React__default.createContext(undefined); function useI18n() { var i18n = React.useContext(I18nContext); if (!i18n) { throw new Error('No i18n was provided. Your application must be wrapped in an <AppProvider> component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.'); } return i18n; } var OBJECT_NOTATION_MATCHER = /\[(.*?)\]|(\w+)/g; function get(obj, keypath, defaultValue) { if (obj == null) return undefined; var keys = Array.isArray(keypath) ? keypath : getKeypath(keypath); var acc = obj; for (var i = 0; i < keys.length; i++) { var val = acc[keys[i]]; if (val === undefined) return defaultValue; acc = val; } return acc; } function getKeypath(str) { var path = []; var result; while (result = OBJECT_NOTATION_MATCHER.exec(str)) { var _result = result, _result2 = _slicedToArray(_result, 3), first = _result2[1], second = _result2[2]; path.push(first || second); } return path; } function merge() { var _final = {}; for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) { objs[_key] = arguments[_key]; } for (var _i = 0, _objs = objs; _i < _objs.length; _i++) { var obj = _objs[_i]; mergeRecursively(_final, obj); } return _final; } function mergeRecursively(objA, objB) { for (var key in objB) { if (!objB.hasOwnProperty(key)) { continue; } else if (isMergeableValue(objB[key]) && isMergeableValue(objA[key])) { objA[key] = mergeRecursively(objA[key], objB[key]); } else { objA[key] = objB[key]; } } return objA; } function isMergeableValue(value) { return value !== null && _typeof(value) === 'object'; } var REPLACE_REGEX = /{([^}]*)}/g; var I18n = /*#__PURE__*/ function () { function I18n(translation) { var _this = this; _classCallCheck(this, I18n); this.translation = translation; this.translate = function (id, replacements) { return translate(id, _this.translation, replacements); }; this.setTranslation(translation); } _createClass(I18n, [{ key: "setTranslation", value: function setTranslation(translation) { this.translation = Array.isArray(translation) ? merge.apply(void 0, _toConsumableArray(translation)) : translation; } }, { key: "translationKeyExists", value: function translationKeyExists(path) { return Boolean(get(this.translation, path)); } }]); return I18n; }(); function translate(id, translations, replacements) { var text = get(translations, id); if (!text) { return ''; } if (replacements) { return text.replace(REPLACE_REGEX, function (match) { var replacement = match.substring(1, match.length - 1); if (!replacements.hasOwnProperty(replacement)) { throw new Error("No replacement found for key '".concat(replacement, "'. The following replacements were passed: ").concat(Object.keys(replacements).map(function (key) { return "'".concat(key, "'"); }).join(', '))); } return replacements[replacement]; }); } return text; } var LinkContext = React__default.createContext(undefined); function useLink() { return React__default.useContext(LinkContext); } var ScrollLockManagerContext = React__default.createContext(undefined); function useScrollLockManager() { var scrollLockManager = React.useContext(ScrollLockManagerContext); if (!scrollLockManager) { throw new Error('No ScrollLockManager was provided. Your application must be wrapped in an <AppProvider> component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.'); } return scrollLockManager; } var SCROLL_LOCKING_ATTRIBUTE = 'data-lock-scrolling'; var SCROLL_LOCKING_WRAPPER_ATTRIBUTE = 'data-lock-scrolling-wrapper'; var scrollPosition = 0; var ScrollLockManager = /*#__PURE__*/ function () { function ScrollLockManager() { _classCallCheck(this, ScrollLockManager); this.scrollLocks = 0; this.locked = false; } _createClass(ScrollLockManager, [{ key: "registerScrollLock", value: function registerScrollLock() { this.scrollLocks += 1; this.handleScrollLocking(); } }, { key: "unregisterScrollLock", value: function unregisterScrollLock() { this.scrollLocks -= 1; this.handleScrollLocking(); } }, { key: "handleScrollLocking", value: function handleScrollLocking() { if (isServer) return; var scrollLocks = this.scrollLocks; var _document = document, body = _document.body; var wrapper = body.firstElementChild; if (scrollLocks === 0) { body.removeAttribute(SCROLL_LOCKING_ATTRIBUTE); if (wrapper) { wrapper.removeAttribute(SCROLL_LOCKING_WRAPPER_ATTRIBUTE); } window.scroll(0, scrollPosition); this.locked = false; } else if (scrollLocks > 0 && !this.locked) { scrollPosition = window.pageYOffset; body.setAttribute(SCROLL_LOCKING_ATTRIBUTE, ''); if (wrapper) { wrapper.setAttribute(SCROLL_LOCKING_WRAPPER_ATTRIBUTE, ''); wrapper.scrollTop = scrollPosition; } this.locked = true; } } }, { key: "resetScrollPosition", value: function resetScrollPosition() { scrollPosition = 0; } }]); return ScrollLockManager; }(); var ThemeContext = React__default.createContext(undefined); function useTheme() { var theme = React.useContext(ThemeContext); if (!theme) { throw new Error('No Theme was provided. Your application must be wrapped in an <AppProvider> component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.'); } return theme; } var StickyManagerContext = React__default.createContext(undefined); function useStickyManager() { var stickyManager = React.useContext(StickyManagerContext); if (!stickyManager) { throw new Error('No StickyManager was provided. Your application must be wrapped in an <AppProvider> component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.'); } return stickyManager; } var scrollable = { props: { 'data-polaris-scrollable': true }, selector: '[data-polaris-scrollable]' }; var overlay = { props: { 'data-polaris-overlay': true }, selector: '[data-polaris-overlay]' }; var layer = { props: { 'data-polaris-layer': true }, selector: '[data-polaris-layer]' }; var unstyled = { props: { 'data-polaris-unstyled': true }, selector: '[data-polaris-unstyled]' }; var dataPolarisTopBar = { props: { 'data-polaris-top-bar': true }, selector: '[data-polaris-top-bar]' }; var headerCell = { props: { 'data-polaris-header-cell': true }, selector: '[data-polaris-header-cell]' }; var DATA_ATTRIBUTE = { overlay: overlay, layer: layer }; // these match our values in duration.scss var Duration; (function (Duration) { Duration[Duration["Instant"] = 0] = "Instant"; Duration[Duration["Fast"] = 100] = "Fast"; Duration[Duration["Base"] = 200] = "Base"; Duration[Duration["Slow"] = 300] = "Slow"; Duration[Duration["Slower"] = 400] = "Slower"; Duration[Duration["Slowest"] = 500] = "Slowest"; })(Duration || (Duration = {})); var Breakpoints = { navigationBarCollapsed: '768px', stackedContent: '1043px' }; var noWindowMatches = { media: '', addListener: noop, removeListener: noop, matches: false, onchange: noop, addEventListener: noop, removeEventListener: noop, dispatchEvent: function dispatchEvent(_) { return true; } }; function noop() {} function navigationBarCollapsed() { return typeof window === 'undefined' ? noWindowMatches : window.matchMedia("(max-width: ".concat(Breakpoints.navigationBarCollapsed, ")")); } function stackedContent() { return typeof window === 'undefined' ? noWindowMatches : window.matchMedia("(max-width: ".concat(Breakpoints.stackedContent, ")")); } var StickyManager = /*#__PURE__*/ function () { function StickyManager(container) { var _this = this; _classCallCheck(this, StickyManager); this.stickyItems = []; this.stuckItems = []; this.topBarOffset = 0; this.handleResize = debounce(function () { _this.manageStickyItems(); }, 40, { leading: true, trailing: true, maxWait: 40 }); this.handleScroll = debounce(function () { _this.manageStickyItems(); }, 40, { leading: true, trailing: true, maxWait: 40 }); if (container) { this.setContainer(container); } } _createClass(StickyManager, [{ key: "registerStickyItem", value: function registerStickyItem(stickyItem) { this.stickyItems.push(stickyItem); } }, { key: "unregisterStickyItem", value: function unregisterStickyItem(nodeToRemove) { var nodeIndex = this.stickyItems.findIndex(function (_ref) { var stickyNode = _ref.stickyNode; return nodeToRemove === stickyNode; }); this.stickyItems.splice(nodeIndex, 1); } }, { key: "setContainer", value: function setContainer(el) { this.container = el; if (isDocument(el)) { this.setTopBarOffset(); } events.addEventListener(this.container, 'scroll', this.handleScroll); events.addEventListener(window, 'resize', this.handleResize); this.manageStickyItems(); } }, { key: "removeScrollListener", value: function removeScrollListener() { if (this.container) { events.removeEventListener(this.container, 'scroll', this.handleScroll); events.removeEventListener(window, 'resize', this.handleResize); } } }, { key: "manageStickyItems", value: function manageStickyItems() { var _this2 = this; if (this.stickyItems.length <= 0) { return; } var scrollTop = scrollTopFor(this.container); var containerTop = geometry.getRectForNode(this.container).top + this.topBarOffset; this.stickyItems.forEach(function (stickyItem) { var handlePositioning = stickyItem.handlePositioning; var _this2$evaluateSticky = _this2.evaluateStickyItem(stickyItem, scrollTop, containerTop), sticky = _this2$evaluateSticky.sticky, top = _this2$evaluateSticky.top, left = _this2$evaluateSticky.left, width = _this2$evaluateSticky.width; _this2.updateStuckItems(stickyItem, sticky); handlePositioning(sticky, top, left, width); }); } }, { key: "evaluateStickyItem", value: function evaluateStickyItem(stickyItem, scrollTop, containerTop) { var stickyNode = stickyItem.stickyNode, placeHolderNode = stickyItem.placeHolderNode, boundingElement = stickyItem.boundingElement, offset = stickyItem.offset, disableWhenStacked = stickyItem.disableWhenStacked; if (disableWhenStacked && stackedContent().matches) { return { sticky: false, top: 0, left: 0, width: 'auto' }; } var stickyOffset = offset ? this.getOffset(stickyNode) + parseInt(tokens__default.spacingLoose, 10) : this.getOffset(stickyNode); var scrollPosition = scrollTop + stickyOffset; var placeHolderNodeCurrentTop = placeHolderNode.getBoundingClientRect().top - containerTop + scrollTop; var top = containerTop + stickyOffset; var width = placeHolderNode.getBoundingClientRect().width; var left = placeHolderNode.getBoundingClientRect().left; var sticky; if (boundingElement == null) { sticky = scrollPosition >= placeHolderNodeCurrentTop; } else { var stickyItemHeight = stickyNode.getBoundingClientRect().height; var stickyItemBottomPosition = boundingElement.getBoundingClientRect().bottom - stickyItemHeight + scrollTop - containerTop; sticky = scrollPosition >= placeHolderNodeCurrentTop && scrollPosition < stickyItemBottomPosition; } return { sticky: sticky, top: top, left: left, width: width }; } }, { key: "updateStuckItems", value: function updateStuckItems(item, sticky) { var stickyNode = item.stickyNode; if (sticky && !this.isNodeStuck(stickyNode)) { this.addStuckItem(item); } else if (!sticky && this.isNodeStuck(stickyNode)) { this.removeStuckItem(item); } } }, { key: "addStuckItem", value: function addStuckItem(stickyItem) { this.stuckItems.push(stickyItem); } }, { key: "removeStuckItem", value: function removeStuckItem(stickyItem) { var nodeToRemove = stickyItem.stickyNode; var nodeIndex = this.stuckItems.findIndex(function (_ref2) { var stickyNode = _ref2.stickyNode; return nodeToRemove === stickyNode; }); this.stuckItems.splice(nodeIndex, 1); } }, { key: "getOffset", value: function getOffset(node) { if (this.stuckItems.length === 0) { return 0; } var offset = 0; var count = 0; var stuckNodesLength = this.stuckItems.length; var nodeRect = geometry.getRectForNode(node); while (count < stuckNodesLength) { var stuckNode = this.stuckItems[count].stickyNode; if (stuckNode !== node) { var stuckNodeRect = geometry.getRectForNode(stuckNode); if (!horizontallyOverlaps(nodeRect, stuckNodeRect)) { offset += geometry.getRectForNode(stuckNode).height; } } else { break; } count++; } return offset; } }, { key: "isNodeStuck", value: function isNodeStuck(node) { var nodeFound = this.stuckItems.findIndex(function (_ref3) { var stickyNode = _ref3.stickyNode; return node === stickyNode; }); return nodeFound >= 0; } }, { key: "setTopBarOffset", value: function setTopBarOffset() { var topbarElement = this.container.querySelector(":not(".concat(scrollable.selector, ") ").concat(dataPolarisTopBar.selector)); this.topBarOffset = topbarElement ? topbarElement.clientHeight : 0; } }]); return StickyManager; }(); function isDocument(node) { return node === document; } function scrollTopFor(container) { return isDocument(container) ? document.body.scrollTop || document.documentElement.scrollTop : container.scrollTop; } function horizontallyOverlaps(rect1, rect2) { var rect1Left = rect1.left; var rect1Right = rect1.left + rect1.width; var rect2Left = rect2.left; var rect2Right = rect2.left + rect2.width; return rect2Right < rect1Left || rect1Right < rect2Left; } var AppBridgeContext = React__default.createContext(undefined); function useAppBridge() { return React.useContext(AppBridgeContext); } function createAppBridge(_ref) { var apiKey = _ref.apiKey, shopOrigin = _ref.shopOrigin, forceRedirect = _ref.forceRedirect; var appBridge = apiKey ? createApp__default({ apiKey: apiKey, shopOrigin: shopOrigin || createApp.getShopOrigin(), forceRedirect: forceRedirect }) : undefined; if (appBridge !== undefined) { // eslint-disable-next-line no-console console.warn('Deprecation: Using `apiKey` and `shopOrigin` on `AppProvider` to initialize the Shopify App Bridge is deprecated. Support for this will be removed in v5.0. Use `Provider` from `@shopify/app-bridge-react` instead: https://help.shopify.com/en/api/embedded-apps/app-bridge/react-components/provider'); } if (appBridge && appBridge.hooks) { appBridge.hooks.set(createApp.LifecycleHook.DispatchAction, setClientInterfaceHook); } return appBridge; } var setClientInterfaceHook = function setClientInterfaceHook(next) { return function (action) { action.clientInterface = { name: '@shopify/polaris', version: polarisVersion }; return next(action); }; }; function withAppProvider() { return function addProvider(WrappedComponent) { var WithProvider = function WithProvider(props) { var polaris = { link: useLink(), theme: useTheme(), intl: useI18n(), scrollLockManager: useScrollLockManager(), stickyManager: useStickyManager(), appBridge: useAppBridge() }; return React__default.createElement(WrappedComponent, Object.assign({}, props, { polaris: polaris })); }; var FinalComponent = hoistStatics(WithProvider, WrappedComponent); return FinalComponent; }; } function Image(_a) { var sourceSet = _a.sourceSet, source = _a.source, crossOrigin = _a.crossOrigin, rest = tslib_1.__rest(_a, ["sourceSet", "source", "crossOrigin"]); var finalSourceSet = sourceSet ? sourceSet.map(function (_ref) { var subSource = _ref.source, descriptor = _ref.descriptor; return "".concat(subSource, " ").concat(descriptor); }).join(',') : null; return finalSourceSet ? // eslint-disable-next-line jsx-a11y/alt-text React__default.createElement("img", Object.assign({ src: source, srcSet: finalSourceSet, crossOrigin: crossOrigin }, rest)) : // eslint-disable-next-line jsx-a11y/alt-text React__default.createElement("img", Object.assign({ src: source }, rest, { crossOrigin: crossOrigin })); } var styles = { "Avatar": "Polaris-Avatar", "hidden": "Polaris-Avatar--hidden", "sizeSmall": "Polaris-Avatar--sizeSmall", "sizeMedium": "Polaris-Avatar--sizeMedium", "sizeLarge": "Polaris-Avatar--sizeLarge", "styleOne": "Polaris-Avatar--styleOne", "styleTwo": "Polaris-Avatar--styleTwo", "styleThree": "Polaris-Avatar--styleThree", "styleFour": "Polaris-Avatar--styleFour", "styleFive": "Polaris-Avatar--styleFive", "styleSix": "Polaris-Avatar--styleSix", "hasImage": "Polaris-Avatar--hasImage", "Image": "Polaris-Avatar__Image", "Initials": "Polaris-Avatar__Initials", "Svg": "Polaris-Avatar__Svg" }; var avatar1 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjMjQ1YjQ4IiBkPSJNMCAwaDEwMHYxMDBIMHoiLz48cGF0aCBmaWxsPSIjMmRiMTY3IiBkPSJNNjkgMHY2NS42NWwtMi0uMDF2MTkuODVsMiAuMDJWMTAwSDBWMGg2OXoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNNjcgNjUuNjR2MTkuODVsLTI1LjU3LS4xOUMzMiA4NS4yMiAyNS42IDgxLjQ2IDI1LjY4IDcyLjA2cy4yNS02Ljc0LjI1LTYuNzR6Ii8+PHBhdGggZmlsbD0iIzhkYzk1OCIgZD0iTTg2Ljk5IDU4SDY5VjBoMTAuOTNsNy4wNiA1OHoiLz48cGF0aCBmaWxsPSIjZWJlZGYxIiBkPSJNMjQuNTMgNDAuMjlhMTIuMjMgMTIuMjMgMCAwIDEgMjQuNDYgMCIgb3BhY2l0eT0iLjIiLz48cGF0aCBmaWxsPSIjOGRjOTU4IiBkPSJNNTkuNjIgNThBMTAuNjkgMTAuNjkgMCAwIDEgODEgNTh6Ii8+PC9zdmc+Cg=='; var avatar2 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjMWUyNjVjIiBkPSJNLS4wMSAwaDEwMHYxMDBoLTEwMHoiLz48cGF0aCBmaWxsPSIjNWQ2Y2MxIiBkPSJNLS4wMSAwaDY5LjAydjEwMEgtLjAxeiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik02OC45MyA2NS44OGwtMjQuNDQtLjE5LS4wNSA2LjA5YzAgNS4yMiAzLjQ4IDkuNDcgOC42OSA5LjUybDE1LjguMTJ6Ii8+PHBhdGggZmlsbD0iI2ZmYzA0ZCIgZD0iTTY4LjkxIDExLjNsMTkuMTcgNDYuMjktMTkuMTctLjE2VjExLjN6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0yMy4yNSAzNi40M2EzLjIyIDMuMjIgMCAxIDAgMCA2LjQ0bTIxLjAxLTYuNDRhMy4yMiAzLjIyIDAgMCAwIDAgNi40NG0tMTMuNTUgMy43NGEzLjIyIDMuMjIgMCAxIDAgMCA2LjQ0bTMuMjItMjUuNTFhMy4yMiAzLjIyIDAgMCAwIDAgNi40NCIvPjwvc3ZnPgo='; var avatar3 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjNWQ2Y2MxIiBkPSJNLS4wMiAwaDEwMHYxMDBoLTEwMHoiLz48cGF0aCBmaWxsPSIjNmRjYWNlIiBkPSJNLjM5IDBoNjkuMDJ2MTAwSC4zOXoiLz48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9IjUiIGQ9Ik0yNC4xOCAzMS4yMXYzLjQ3QTEwLjQzIDEwLjQzIDAgMCAwIDM0LjQgNDUuMjFhMTAuNDMgMTAuNDMgMCAwIDAgMTAuMjItMTAuNTN2LTMuNDciLz48cGF0aCBmaWxsPSIjZWJlZGYxIiBkPSJNMjAuMTEgNDkuMDdhMTYuMjIgMTYuMjIgMCAxIDEgMCAzMi40NCIgb3BhY2l0eT0iLjIiLz48cGF0aCBkPSJNNjkuNDQgMTguODNMOTAgNzFINjkuNDRWMTguODN6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTU3LjU5IDcxYTYgNiAwIDAgMSAxMiAweiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPgo='; var avatar4 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjZmZlMGMzIiBkPSJNMC0uMDFoMTAwdjEwMEgweiIvPjxwYXRoIGZpbGw9IiM1ZDZjYzEiIGQ9Ik0wIDBoNjkuMDJ2MTAwSDB6Ii8+PHBhdGggZD0iTTY5LjAyIDBsMjQuMDMgNjEuNjlINjkuMDJWMHoiIGZpbGw9IiNmZjk2N2QiLz48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9IjUiIGQ9Ik0zMC42OSAzMS45MXYtM2MwLTQuNzggMy40Ni04LjY1IDgtOC42NXM4IDMuODcgOCA4LjY1djMiLz48cGF0aCBmaWxsPSIjZWJlZGYxIiBkPSJNMTIuNzYgNTYuMDZhMTMuMzYgMTMuMzYgMCAxIDEgMjYuNzIgMCIgb3BhY2l0eT0iLjIiLz48cGF0aCBkPSJNODAgNjEuNDZsLTI5LjM0LjIzdi03LjMzYzAtNi4yOCA0LjA3LTExLjM2IDEwLjM0LTExLjQ0bDE5LS4xNHoiIGZpbGw9IiNmZjk2N2QiLz48L3N2Zz4K'; var avatar5 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjOGRjOTU4IiBkPSJNMCAwaDcwLjAydjEwMEgweiIvPjxwYXRoIGQ9Ik02OS45MiAwdjU2LjMyTDQ5IDY3bC0uMyAyNS4wN1YxMDBIMTAwVjB6IiBmaWxsPSIjMmRiMTY3Ii8+PHBhdGggZmlsbD0iIzI0NWI0OCIgZD0iTTU5LjI3IDU4LjI5YTUuMjIgNS4yMiAwIDAgMC05LjQzIDQuNDgiLz48cGF0aCBkPSJNMjcuMTIgOS4zM2g0NC41M3YyLjE5SDI3LjEyem0tMTIuNDEgOS40OWg1Ni45NHYyLjE5SDE0LjcxeiIgZmlsbD0iIzJkYjE2NyIvPjxjaXJjbGUgY3g9IjE5LjY2IiBjeT0iNDQuOCIgcj0iMTEuMjIiIGZpbGw9IiNlYmVkZjEiIG9wYWNpdHk9Ii4yIi8+PC9zdmc+Cg=='; var avatar6 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBkPSJNLS4wMi0uMDFoMTAwdjEwMGgtMTAweiIgZmlsbD0iI2ZmZTBjMyIvPjxwYXRoIGZpbGw9IiNmZjk2N2QiIGQ9Ik0wIDBoNjkuNDF2MTAwSDB6Ii8+PHBhdGggZD0iTTY5LjkyIDB2NDQuMzJMNTEuMzQgNTV2NDVIMTAwVjB6IiBmaWxsPSIjZmZlMGMzIi8+PHBhdGggZmlsbD0iIzMyY2FjNiIgZD0iTTM5LjMyIDc2YTExLjg1IDExLjg1IDAgMCAwIDEyIDExLjYyVjc2Ii8+PHBhdGggZmlsbD0iIzAwOTc5NiIgZD0iTTM5LjMyIDc2YTEyIDEyIDAgMCAxIDEyLTExLjgyVjc2Ii8+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNDMuNzQgMTkuODNhMTIuODIgMTIuODIgMCAxIDEtMjUuNjQgMCIvPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iNCIgZD0iTTI3LjM5IDMxLjZsLTEuNTggNS45Nm05LjM3LTUuNzJsMi41NSA1LjQ3bTQuMjYtOS44NWwzLjUzIDQuNW0tMjUuNDMtNC41bC0zLjUzIDQuNSIvPjwvc3ZnPgo='; var avatar7 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBkPSJNMCAwaDEwMHYxMDAuNDhIMHoiIGZpbGw9IiM4ZGM5NTgiLz48cGF0aCBmaWxsPSIjMmRiMTY3IiBkPSJNODMgNjh2MzJsLTE0LS4xNnYuMTZIMFYwaDY5djY4aDE0eiIvPjxwYXRoIGQ9Ik02OS4yOSA0MS42OUgyMC42NnMtLjA5LTMtLjE3IDcuMTUgNyAxOC41MSAxNy4zNSAxOC41OWwzMS40NS41N3oiIGZpbGw9IiM4ZGM5NTgiLz48cGF0aCBkPSJNNjguNyAxMi40bDExLjU0IDI5LjI5SDY4LjdWMTIuNHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNNjIuMjIgNDEuNjlhMy4zNCAzLjM0IDAgMSAxIDYuNjkgMHoiIGZpbGw9IiNmZmYiLz48cGF0aCBmaWxsPSIjMjQ1YjQ4IiBkPSJNNDEuNDUgMTguMDZhMi41NyAyLjU3IDAgMCAwLTUuMTQgME0zMy4zMyAyNGEyLjU3IDIuNTcgMCAxIDAtNS4xNCAwbTIwLjM2IDIuNThhMi41NyAyLjU3IDAgMSAwLTUuMTQgMCIvPjwvc3ZnPgo='; var avatar8 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjZmZlZGI5IiBkPSJNMCAwaDEwMHYxMDBIMHoiLz48cGF0aCBkPSJNNjQuNjMgMTcuMzNhMTcgMTcgMCAwIDEgNSAyOS43MiAxNi43NSAxNi43NSAwIDAgMS01IDIuNjIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9IjUiLz48cGF0aCBmaWxsPSIjZmZjMDRkIiBkPSJNMCAwaDY5LjAydjEwMEgweiIvPjxjaXJjbGUgY3g9IjQ1LjExIiBjeT0iMzMuNDkiIHI9IjE2Ljk4IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtMzcuMDIgNDUuMTI0IDMzLjQ5MykiLz48cGF0aCBmaWxsPSIjNWQ2Y2MxIiBkPSJNNjkuMDIgMzQuNDhsMTkuNDcgMzguNzQtMTkuNDcgMS41M1YzNC40OHoiLz48cGF0aCBkPSJNNjEuNiAzMy42N2ExMC4xNyAxMC4xNyAwIDAgMSAxNS40LjA4IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSI1Ii8+PC9zdmc+Cg=='; var avatar9 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBkPSJNMCAwaDEwMHYxMDBIMHoiIGZpbGw9IiNmZmMwNGQiLz48cGF0aCBkPSJNMCAwaDY5LjQxdjEwMEgweiIgZmlsbD0iIzVkNmNjMSIvPjxwYXRoIGQ9Ik03MC4yMSA4MC44OGgtMTUuMWMtNC44MSAwLTUuNjgtNS44NC01LjY4LTUuODRoMjAuNzgiIGZpbGw9IiNmZmMwNGQiLz48cGF0aCBkPSJNODIgNjAuNDhsLTE0IC4yNVYwaDEwLjE3QzgwLjU5IDIwLjE0IDgyIDYwLjQ4IDgyIDYwLjQ4eiIgZmlsbD0iIzVkNmNjMSIvPjxwYXRoIGZpbGw9IiM0MTIzNmUiIGQ9Ik01Ny43MSA2MC40OGE1LjQ0IDUuNDQgMCAxIDEgMTAuODcgMCIvPjxjaXJjbGUgY3g9IjI0Ljc3IiBjeT0iNDAuMTkiIHI9IjExLjIyIiBmaWxsPSIjZWJlZGYxIiBvcGFjaXR5PSIuMiIvPjwvc3ZnPgo='; var avatars = /*#__PURE__*/Object.freeze({ avatarOne: avatar1, avatarTwo: avatar2, avatarThree: avatar3, avatarFour: avatar4, avatarFive: avatar5, avatarSix: avatar6, avatarSeven: avatar7, avatarEight: avatar8, avatarNine: avatar9 }); var STYLE_CLASSES = ['one', 'two', 'three', 'four', 'five', 'six']; var AVATAR_IMAGES = Object.keys(avatars).map( // import/namespace does not allow computed values by default // eslint-disable-next-line import/namespace function (key) { return avatars[key]; }); var Avatar = /*#__PURE__*/ function (_React$PureComponent) { _inherits(Avatar, _React$PureComponent); function Avatar() { var _this; _classCallCheck(this, Avatar); _this = _possibleConstructorReturn(this, _getPrototypeOf(Avatar).apply(this, arguments)); _this.state = { hasError: false, hasLoaded: false }; _this.handleError = function () { _this.setState({ hasError: true, hasLoaded: false }); }; _this.handleLoad = function () { _this.setState({ hasLoaded: true, hasError: false }); }; return _this; } _createClass(Avatar, [{ key: "render", value: function render() { var _this$props = this.props, name = _this$props.name, source = _this$props.source, initials = _this$props.initials, customer = _this$props.customer, _this$props$size = _this$props.size, size = _this$props$size === void 0 ? 'medium' : _this$props$size, accessibilityLabel = _this$props.accessibilityLabel, intl = _this$props.polaris.intl; var _this$state = this.state, hasError = _this$state.hasError, hasLoaded = _this$state.hasLoaded; var hasImage = (source || customer) && !hasError; var nameString = name || initials; var finalSource; var label; if (accessibilityLabel) { label = accessibilityLabel; } else if (name) { label = name; } else if (initials) { var splitInitials = initials.split('').join(' '); label = intl.translate('Polaris.Avatar.labelWithInitials', { initials: splitInitials }); } else { label = intl.translate('Polaris.Avatar.label'); } if (source) { finalSource = source; } else if (customer) { finalSource = customerPlaceholder(nameString); } var className = classNames(styles.Avatar, styles[variationName('style', styleClass(nameString))], size && styles[variationName('size', size)], hasImage && !hasLoaded && styles.hidden, hasImage && styles.hasImage); var imageMarkUp = finalSource && !isServer && !hasError ? React__default.createElement(Image, { className: styles.Image, source: finalSource, alt: "", role: "presentation", onLoad: this.handleLoad, onError: this.handleError }) : null; // Use `dominant-baseline: central` instead of `dy` when Edge supports it. var verticalOffset = '0.35em'; var initialsMarkup = initials && !hasImage ? React__default.createElement("span", { className: styles.Initials }, React__default.createElement("svg", { className: styles.Svg, viewBox: "0 0 48 48" }, React__default.createElement("text", { x: "50%", y: "50%", dy: verticalOffset, fill: "currentColor", fontSize: "26", textAnchor: "middle" }, initials))) : null; return React__default.createElement("span", { "aria-label": label, role: "img", className: className }, initialsMarkup, imageMarkUp); } }], [{ key: "getDerivedStateFromProps", value: function getDerivedStateFromProps(props, state) { if (props.source !== state.prevSource) { return { prevSource: props.source, hasError: false, hasLoaded: false }; } return null; } }]); return Avatar; }(React__default.PureComponent); function styleClass(name) { return name ? STYLE_CLASSES[name.charCodeAt(0) % STYLE_CLASSES.length] : STYLE_CLASSES[0]; } function customerPlaceholder(name) { return name ? AVATAR_IMAGES[name.charCodeAt(0) % AVATAR_IMAGES.length] : AVATAR_IMAGES[0]; } var Avatar$1 = withAppProvider()(Avatar); function handleMouseUpByBlurring(_ref) { var currentTarget = _ref.currentTarget; currentTarget.blur(); } function UnstyledLink(props, _ref) { var LinkComponent = useLink(); if (LinkComponent) { return React__default.createElement(LinkComponent, Object.assign({}, unstyled.props, props)); } var external = props.external, url = props.url, rest = tslib_1.__rest(props, ["external", "url"]); var target = external ? '_blank' : undefined; var rel = external ? 'noopener noreferrer' : undefined; return React__default.createElement("a", Object.assign({ target: target }, rest, { href: url, rel: rel }, unstyled.props)); } var UnstyledLink$1 = React__default.memo(React__default.forwardRef(UnstyledLink)); var styles$1 = { "Icon": "Polaris-Icon", "hasBackdrop": "Polaris-Icon--hasBackdrop", "isColored": "Polaris-Icon--isColored", "colorWhite": "Polaris-Icon--colorWhite", "colorBlack": "Polaris-Icon--colorBlack", "colorSkyLighter": "Polaris-Icon--colorSkyLighter", "colorSkyLight": "Polaris-Icon--colorSkyLight", "colorSky": "Polaris-Icon--colorSky", "colorSkyDark": "Polaris-Icon--colorSkyDark", "colorInkLightest": "Polaris-Icon--colorInkLightest", "colorInkLighter": "Polaris-Icon--colorInkLighter", "colorInkLight": "Polaris-Icon--colorInkLight", "colorInk": "Polaris-Icon--colorInk", "colorBlueLighter": "Polaris-Icon--colorBlueLighter", "colorBlueLight": "Polaris-Icon--colorBlueLight", "colorBlue": "Polaris-Icon--colorBlue", "colorBlueDark": "Polaris-Icon--colorBlueDark", "colorBlueDarker": "Polaris-Icon--colorBlueDarker", "colorIndigoLighter": "Polaris-Icon--colorIndigoLighter", "colorIndigoLight": "Polaris-Icon--colorIndigoLight", "colorIndigo": "Polaris-Icon--colorIndigo", "colorIndigoDark": "Polaris-Icon--colorIndigoDark", "colorIndigoDarker": "Polaris-Icon--colorIndigoDarker", "colorTealLighter": "Polaris-Icon--colorTealLighter", "colorTealLight": "Polaris-Icon--colorTealLight", "colorTeal": "Polaris-Icon--colorTeal", "colorTealDark": "Polaris-Icon--colorTealDark", "colorTealDarker": "Polaris-Icon--colorTealDarker", "colorGreenLighter": "Polaris-Icon--colorGreenLighter", "colorGreen": "Polaris-Icon--colorGreen", "colorGreenDark": "Polaris-Icon--colorGreenDark", "colorYellowLighter": "Polaris-Icon--colorYellowLighter", "colorYellow": "Polaris-Icon--colorYellow", "colorYellowDark": "Polaris-Icon--colorYellowDark", "colorOrange": "Polaris-Icon--colorOrange", "colorOrangeDark": "Polaris-Icon--colorOrangeDark", "colorRedLighter": "Polaris-Icon--colorRedLighter", "colorRed": "Polaris-Icon--colorRed", "colorRedDark": "Polaris-Icon--colorRedDark", "colorPurple": "Polaris-Icon--colorPurple", "Svg": "Polaris-Icon__Svg", "Img": "Polaris-Icon__Img", "Placeholder": "Polaris-Icon__Placeholder" }; var COLORS_WITH_BACKDROPS = ['teal', 'tealDark', 'greenDark', 'redDark', 'yellowDark', 'ink', 'inkLighter']; function Icon(_ref) { var source = _ref.source, color = _ref.color, backdrop = _ref.backdrop, accessibilityLabel = _ref.accessibilityLabel; var intl = useI18n(); if (color && backdrop && COLORS_WITH_BACKDROPS.indexOf(color) < 0) { // eslint-disable-next-line no-console console.warn(intl.translate('Polaris.Icon.backdropWarning', { color: color, colorsWithBackDrops: COLORS_WITH_BACKDROPS.join(', ') })); } var className = classNames(styles$1.Icon, color && styles$1[variationName('color', color)], color && color !== 'white' && styles$1.isColored, backdrop && styles$1.hasBackdrop); var contentMarkup; if (typeof source === 'function') { var SourceComponent = source; contentMarkup = React__default.createElement(SourceComponent, { className: styles$1.Svg, focusable: "false", "aria-hidden": "true" }); } else if (source === 'placeholder') { contentMarkup = React__default.createElement("div", { className: styles$1.Placeholder }); } else { contentMarkup = React__default.createElement("img", { className: styles$1.Img, src: "data:image/svg+xml;utf8,".concat(source), alt: "", "aria-hidden": "true" }); } return React__default.createElement("span", { className: className, "aria-label": accessibilityLabel }, contentMarkup); } var styles$2 = { "Spinner": "Polaris-Spinner", "loading": "Polaris-Spinner--loading", "sizeSmall": "Polaris-Spinner--sizeSmall", "sizeLarge": "Polaris-Spinner--sizeLarge", "colorWhite": "Polaris-Spinner--colorWhite", "colorTeal": "Polaris-Spinner--colorTeal", "colorInkLightest": "Polaris-Spinner--colorInkLightest" }; var spinnerLarge = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDQgNDQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjU0MiAxLjQ4N0EyMS41MDcgMjEuNTA3IDAgMCAwIC41IDIyYzAgMTEuODc0IDkuNjI2IDIxLjUgMjEuNSAyMS41IDkuODQ3IDAgMTguMzY0LTYuNjc1IDIwLjgwOS0xNi4wNzJhMS41IDEuNSAwIDAgMC0yLjkwNC0uNzU2QzM3LjgwMyAzNC43NTUgMzAuNDczIDQwLjUgMjIgNDAuNSAxMS43ODMgNDAuNSAzLjUgMzIuMjE3IDMuNSAyMmMwLTguMTM3IDUuMy0xNS4yNDcgMTIuOTQyLTE3LjY1YTEuNSAxLjUgMCAxIDAtLjktMi44NjN6IiBmaWxsPSIjOTE5RUFCIi8+PC9zdmc+Cg=='; var spinnerSmall = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcuMjI5IDEuMTczYTkuMjUgOS4yNSAwIDEgMCAxMS42NTUgMTEuNDEyIDEuMjUgMS4yNSAwIDEgMC0yLjQtLjY5OCA2Ljc1IDYuNzUgMCAxIDEtOC41MDYtOC4zMjkgMS4yNSAxLjI1IDAgMSAwLS43NS0yLjM4NXoiIGZpbGw9IiM5MTlFQUIiLz48L3N2Zz4K'; var COLORS_FOR_LARGE_SPINNER = ['teal', 'inkLightest']; function Spinner(_ref) { var _ref$size = _ref.size, size = _ref$size === void 0 ? 'large' : _ref$size, _ref$color = _ref.color, color = _ref$color === void 0 ? 'teal' : _ref$color, accessibilityLabel = _ref.accessibilityLabel; var intl = useI18n(); if (size === 'large' && COLORS_FOR_LARGE_SPINNER.indexOf(color) < 0) { if (process.env.NODE_ENV === 'development') { // eslint-disable-next-line no-console console.warn(intl.translate('Polaris.Spinner.warningMessage', { color: color, size: size, colors: COLORS_FOR_LARGE_SPINNER.join(', ') })); } // eslint-disable-next-line no-param-reassign size = 'small'; } var className = classNames(styles$2.Spinner, color && styles$2[variationName('color', color)], size && styles$2[variationName('size', size)]); var spinnerSVG = size === 'large' ? spinnerLarge : spinnerSmall; return React__default.createElement(Image, { alt: "", source: spinnerSVG, className: className, draggable: false, role: "status", "aria-label": accessibilityLabel }); } var styles$3 = { "Button": "Polaris-Button", "disabled": "Polaris-Button--disabled", "Content": "Polaris-Button__Content", "textAlignLeft": "Polaris-Button--textAlignLeft", "textAlignCenter": "Polaris-Button--textAlignCenter", "textAlignRight": "Polaris-Button--textAlignRight", "Icon": "Polaris-Button__Icon", "Spinner": "Polaris-Button__Spinner", "primary": "Polaris-Button--primary", "destructive": "Polaris-Button--destructive", "outline": "Polaris-Button--outline", "loading": "Polaris-Button--loading", "plain": "Polaris-Button--plain", "iconOnly": "Polaris-Button--iconOnly", "fullWidth": "Polaris-Button--fullWidth", "sizeSlim": "Polaris-Button--sizeSlim", "sizeLarge": "Polaris-Button--sizeLarge", "monochrome": "Polaris-Button--monochrome", "Text": "Polaris-Button__Text" }; var DEFAULT_SIZE = 'medium'; function Button(_ref) { var id = _ref.id, url = _ref.url, disabled = _ref.disabled, loading = _ref.loading, children = _ref.children, accessibilityLabel = _ref.accessibilityLabel, ariaControls = _ref.ariaControls, ariaExpanded = _ref.ariaExpanded, ariaPressed = _ref.ariaPressed, onClick = _ref.onClick, onFocus = _ref.onFocus, onBlur = _ref.onBlur, onKeyDown = _ref.onKeyDown, onKeyPress = _ref.onKeyPress, onKeyUp = _ref.onKeyUp, external = _ref.external, download = _ref.download, icon = _ref.icon, primary = _ref.primary, outline = _ref.outline, destructive = _ref.destructive, disclosure = _ref.disclosure, plain = _ref.plain, monochrome = _ref.monochrome, submit = _ref.submit, _ref$size = _ref.size, size = _ref$size === void 0 ? DEFAULT_SIZE : _ref$size, textAlign = _ref.textAlign, fullWidth = _ref.fullWidth, circle = _ref.circle, width = _ref.width, height = _ref.height; var intl = useI18n(); var isDisabled = disabled || loading; var className = classNames(styles$3.Button, primary && styles$3.primary, outline && styles$3.outline, destructive && styles$3.destructive, isDisabled && styles$3.disabled, loading && styles$3.loading, plain && styles$3.plain, monochrome && styles$3.monochrome, size && size !== DEFAULT_SIZE && styles$3[variationName('size', size)], textAlign && styles$3[variationName('textAlign', textAlign)], fullWidth && styles$3.fullWidth, icon && children == null && styles$3.iconOnly); var disclosureIconMarkup = disclosure ? React__default.createElement(IconWrapper, null, React__default.createElement(Icon, { source: loading ? 'placeholder' : polarisIcons.CaretDownMinor })) : null; var iconMarkup; if (icon) { var iconInner = isIconSource(icon) ? React__default.createElement(Icon, { source: loading ? 'placeholder' : icon }) : icon; iconMarkup = React__default.createElement(IconWrapper, null, iconInner); } var childMarkup = children ? React__default.createElement("span", { className: styles$3.Text }, children) : null; var spinnerColor = primary || destructive ? 'white' : 'inkLightest'; var spinnerSVGMarkup = loading ? React__default.createElement("span", { className: styles$3.Spinner }, React__default.createElement(Spinner, { size: "small", color: spinnerColor, accessibilityLabel: intl.translate('Polaris.Button.spinnerAccessibilityLabel') })) : null; var content = iconMarkup || disclosureIconMarkup ? React__default.createElement("span", { className: styles$3.Content }, spinnerSVGMarkup, iconMarkup, childMarkup, disclosureIconMarkup) : React__default.createElement("span", { className: styles$3.Content }, spinnerSVGMarkup, childMarkup); var type = submit ? 'submit' : 'button'; if (url) { return isDisabled ? // Render an `<a>` so toggling disabled/enabled state changes only the // `href` attribute instead of replacing the whole element. // eslint-disable-next-line jsx-a11y/anchor-is-valid React__default.createElement("a", { id: id, c