@makeswift/runtime 0.0.0-e7e30fa → 0.0.0-f94dde1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.js +1 -0
- package/box-model.js +1 -0
- package/builder.js +1 -0
- package/components.js +1 -0
- package/dist/actions.cjs.js +101 -17
- package/dist/actions.cjs.js.map +1 -1
- package/dist/actions.es.js +90 -16
- package/dist/actions.es.js.map +1 -1
- package/dist/api.cjs.js +5 -0
- package/dist/api.cjs.js.map +1 -0
- package/dist/api.es.js +2 -0
- package/dist/api.es.js.map +1 -0
- package/dist/box-model.cjs.js +2 -2
- package/dist/box-model.es.js +1 -0
- package/dist/box-model.es.js.map +1 -1
- package/dist/box-models.cjs.js +27 -157
- package/dist/box-models.cjs.js.map +1 -1
- package/dist/box-models.es.js +30 -160
- package/dist/box-models.es.js.map +1 -1
- package/dist/builder.cjs.js +9 -0
- package/dist/builder.cjs.js.map +1 -0
- package/dist/builder.es.js +3 -0
- package/dist/builder.es.js.map +1 -0
- package/dist/components.cjs.js +55 -6900
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +26 -6866
- package/dist/components.es.js.map +1 -1
- package/dist/constants.cjs.js +146 -0
- package/dist/constants.cjs.js.map +1 -0
- package/dist/constants.es.js +145 -0
- package/dist/constants.es.js.map +1 -0
- package/dist/control-serialization.cjs.js +91 -0
- package/dist/control-serialization.cjs.js.map +1 -0
- package/dist/control-serialization.es.js +87 -0
- package/dist/control-serialization.es.js.map +1 -0
- package/dist/descriptors.cjs.js +215 -0
- package/dist/descriptors.cjs.js.map +1 -0
- package/dist/descriptors.es.js +183 -0
- package/dist/descriptors.es.js.map +1 -0
- package/dist/instances.cjs.js +89 -0
- package/dist/instances.cjs.js.map +1 -0
- package/dist/instances.es.js +87 -0
- package/dist/instances.es.js.map +1 -0
- package/dist/main.cjs.js +5 -2
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +1 -1
- package/dist/next.cjs.js +169 -0
- package/dist/next.cjs.js.map +1 -0
- package/dist/next.es.js +159 -0
- package/dist/next.es.js.map +1 -0
- package/dist/prop-controllers.cjs.js +5 -175
- package/dist/prop-controllers.cjs.js.map +1 -1
- package/dist/prop-controllers.es.js +2 -173
- package/dist/prop-controllers.es.js.map +1 -1
- package/dist/react-builder-preview.cjs.js +274 -4118
- package/dist/react-builder-preview.cjs.js.map +1 -1
- package/dist/react-builder-preview.es.js +273 -4121
- package/dist/react-builder-preview.es.js.map +1 -1
- package/dist/react.cjs.js +26 -2
- package/dist/react.cjs.js.map +1 -1
- package/dist/react.cjs2.js +5848 -624
- package/dist/react.cjs2.js.map +1 -1
- package/dist/react.es.js +25 -1
- package/dist/react.es.js.map +1 -1
- package/dist/react.es2.js +5795 -625
- package/dist/react.es2.js.map +1 -1
- package/dist/types/api/constants.d.ts +4 -0
- package/dist/types/api/constants.d.ts.map +1 -0
- package/dist/types/api/generated/graphql.d.ts +61 -0
- package/dist/types/api/generated/graphql.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +3 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/react.d.ts +6 -0
- package/dist/types/api/react.d.ts.map +1 -0
- package/dist/types/api/types.d.ts +4 -0
- package/dist/types/api/types.d.ts.map +1 -0
- package/dist/types/builder/index.d.ts +2 -0
- package/dist/types/builder/index.d.ts.map +1 -0
- package/dist/types/builder/serialization/control-serialization.d.ts +30 -0
- package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -0
- package/dist/types/builder/serialization/function-serialization.d.ts +11 -0
- package/dist/types/builder/serialization/function-serialization.d.ts.map +1 -0
- package/dist/types/builder/serialization/index.d.ts +3 -0
- package/dist/types/builder/serialization/index.d.ts.map +1 -0
- package/dist/types/components/{Box → builtin/Box}/Box.d.ts +10 -4
- package/dist/types/components/builtin/Box/Box.d.ts.map +1 -0
- package/dist/types/components/{Box → builtin/Box}/animations.d.ts +2 -2
- package/dist/types/components/builtin/Box/animations.d.ts.map +1 -0
- package/dist/types/components/{Box → builtin/Box}/components/Placeholder/index.d.ts +0 -0
- package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -0
- package/dist/types/components/{Box → builtin/Box}/index.d.ts +1 -1
- package/dist/types/components/builtin/Box/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/Button.d.ts +118 -0
- package/dist/types/components/builtin/Button/Button.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/index.d.ts +2 -0
- package/dist/types/components/builtin/Button/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Carousel/Carousel.d.ts +28 -0
- package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -0
- package/dist/types/components/builtin/Carousel/index.d.ts +2 -0
- package/dist/types/components/builtin/Carousel/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Countdown/Countdown.d.ts +27 -0
- package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -0
- package/dist/types/components/builtin/Countdown/index.d.ts +2 -0
- package/dist/types/components/builtin/Countdown/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Divider/Divider.d.ts +17 -0
- package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -0
- package/dist/types/components/builtin/Divider/index.d.ts +2 -0
- package/dist/types/components/builtin/Divider/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Embed/Embed.d.ts +14 -0
- package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -0
- package/dist/types/components/builtin/Embed/index.d.ts +2 -0
- package/dist/types/components/builtin/Embed/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Image/Image.d.ts +29 -0
- package/dist/types/components/builtin/Image/Image.d.ts.map +1 -0
- package/dist/types/components/builtin/Image/index.d.ts +2 -0
- package/dist/types/components/builtin/Image/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/Navigation.d.ts +26 -0
- package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts +100 -0
- package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +8 -0
- package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +101 -0
- package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +13 -0
- package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/index.d.ts +2 -0
- package/dist/types/components/builtin/Navigation/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Root/Root.d.ts +14 -0
- package/dist/types/components/builtin/Root/Root.d.ts.map +1 -0
- package/dist/types/components/{Root → builtin/Root}/components/Placeholder/index.d.ts +0 -0
- package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Root/index.d.ts +2 -0
- package/dist/types/components/builtin/Root/index.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +21 -0
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +8 -0
- package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/index.d.ts +2 -0
- package/dist/types/components/builtin/SocialLinks/index.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/options.d.ts +113 -0
- package/dist/types/components/builtin/SocialLinks/options.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/Text.d.ts +19 -0
- package/dist/types/components/builtin/Text/Text.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +24 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +25 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +13 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts +5 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +3 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +3 -0
- package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/index.d.ts +2 -0
- package/dist/types/components/builtin/Text/index.d.ts.map +1 -0
- package/dist/types/components/builtin/index.d.ts +15 -0
- package/dist/types/components/builtin/index.d.ts.map +1 -0
- package/dist/types/components/hooks/index.d.ts +6 -0
- package/dist/types/components/hooks/index.d.ts.map +1 -1
- package/dist/types/components/hooks/useBackgrounds.d.ts +59 -0
- package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -0
- package/dist/types/components/hooks/useBorder.d.ts +19 -0
- package/dist/types/components/hooks/useBorder.d.ts.map +1 -0
- package/dist/types/components/hooks/useBoxShadow.d.ts +19 -0
- package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -0
- package/dist/types/components/hooks/useColor.d.ts +7 -0
- package/dist/types/components/hooks/useColor.d.ts.map +1 -0
- package/dist/types/components/hooks/useFile.d.ts +13 -0
- package/dist/types/components/hooks/useFile.d.ts.map +1 -0
- package/dist/types/components/hooks/usePage.d.ts +7 -0
- package/dist/types/components/hooks/usePage.d.ts.map +1 -0
- package/dist/types/components/hooks/useTypography.d.ts +24 -0
- package/dist/types/components/hooks/useTypography.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +2 -3
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +11 -0
- package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +8 -0
- package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts +11 -0
- package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/index.d.ts +11 -0
- package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -0
- package/dist/types/components/shared/GutterContainer/index.d.ts +8 -0
- package/dist/types/components/shared/GutterContainer/index.d.ts.map +1 -0
- package/dist/types/components/shared/Link/index.d.ts +9 -0
- package/dist/types/components/shared/Link/index.d.ts.map +1 -0
- package/dist/types/components/utils/colorToString.d.ts +3 -0
- package/dist/types/components/utils/colorToString.d.ts.map +1 -0
- package/dist/types/components/utils/cssMediaRules.d.ts +23 -1
- package/dist/types/components/utils/cssMediaRules.d.ts.map +1 -1
- package/dist/types/components/utils/devices.d.ts +1 -0
- package/dist/types/components/utils/devices.d.ts.map +1 -1
- package/dist/types/components/utils/isNonNullable.d.ts +2 -0
- package/dist/types/components/utils/isNonNullable.d.ts.map +1 -0
- package/dist/types/components/utils/placeholders.d.ts +10 -0
- package/dist/types/components/utils/placeholders.d.ts.map +1 -0
- package/dist/types/components/utils/queries.d.ts +7 -0
- package/dist/types/components/utils/queries.d.ts.map +1 -0
- package/dist/types/components/utils/types.d.ts +11 -0
- package/dist/types/components/utils/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/next.d.ts +21 -0
- package/dist/types/next.d.ts.map +1 -0
- package/dist/types/prop-controllers/descriptors.d.ts +40 -3
- package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
- package/dist/types/prop-controllers/index.d.ts +3 -1
- package/dist/types/prop-controllers/index.d.ts.map +1 -1
- package/dist/types/prop-controllers/instances.d.ts +69 -0
- package/dist/types/prop-controllers/instances.d.ts.map +1 -0
- package/dist/types/prop-controllers/introspection.d.ts +5 -0
- package/dist/types/prop-controllers/introspection.d.ts.map +1 -0
- package/dist/types/react.d.ts +1 -1
- package/dist/types/react.d.ts.map +1 -1
- package/dist/types/runtimes/react.d.ts +15 -7
- package/dist/types/runtimes/react.d.ts.map +1 -1
- package/dist/types/state/actions.d.ts +126 -13
- package/dist/types/state/actions.d.ts.map +1 -1
- package/dist/types/state/modules/box-models.d.ts +5 -5
- package/dist/types/state/modules/box-models.d.ts.map +1 -1
- package/dist/types/state/modules/prop-controller-handles.d.ts +16 -0
- package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -0
- package/dist/types/state/modules/prop-controllers.d.ts +1 -0
- package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
- package/dist/types/state/react-builder-preview.d.ts +16 -11
- package/dist/types/state/react-builder-preview.d.ts.map +1 -1
- package/dist/types/state/react-page.d.ts +5 -0
- package/dist/types/state/react-page.d.ts.map +1 -1
- package/dist/types/utils/clamp.d.ts +3 -0
- package/dist/types/utils/clamp.d.ts.map +1 -0
- package/dist/types/utils/coalesce.d.ts +3 -0
- package/dist/types/utils/coalesce.d.ts.map +1 -0
- package/dist/types/utils/constants.d.ts +6 -0
- package/dist/types/utils/constants.d.ts.map +1 -0
- package/dist/types/utils/deepEqual.d.ts.map +1 -1
- package/dist/types/utils/intersection.d.ts +4 -0
- package/dist/types/utils/intersection.d.ts.map +1 -0
- package/dist/types/utils/keys.d.ts +5 -0
- package/dist/types/utils/keys.d.ts.map +1 -0
- package/dist/types/utils/shallowEqual.d.ts.map +1 -1
- package/dist/types/utils/shallowMerge.d.ts +2 -0
- package/dist/types/utils/shallowMerge.d.ts.map +1 -0
- package/next.js +1 -0
- package/package.json +71 -15
- package/prop-controllers.js +1 -0
- package/react.js +1 -0
- package/dist/types/components/Box/Box.d.ts.map +0 -1
- package/dist/types/components/Box/animations.d.ts.map +0 -1
- package/dist/types/components/Box/components/Placeholder/index.d.ts.map +0 -1
- package/dist/types/components/Box/index.d.ts.map +0 -1
- package/dist/types/components/Root/Root.d.ts +0 -11
- package/dist/types/components/Root/Root.d.ts.map +0 -1
- package/dist/types/components/Root/components/Placeholder/index.d.ts.map +0 -1
- package/dist/types/components/Root/index.d.ts +0 -2
- package/dist/types/components/Root/index.d.ts.map +0 -1
package/dist/react.cjs2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.cjs2.js","sources":["../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/use-sync-external-store/shim/index.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../../node_modules/redux/es/redux.js","../../../node_modules/redux-thunk/es/index.js","../src/state/modules/read-only-documents.ts","../src/state/modules/react-components.tsx","../src/state/modules/components-meta.ts","../src/state/modules/prop-controllers.ts","../src/state/react-page.ts","../../../node_modules/object-assign/index.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/jsx-runtime.js","../react/jsx-runtime","../src/runtimes/react.tsx"],"sourcesContent":["/** @license React vundefined\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/** @license React vundefined\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import type { Action } from '../actions'\n\nexport type Data = undefined | null | boolean | number | string | Data[] | { [key: string]: Data }\n\nexport type ElementData = { type: string; key: string; props: Record<string, Data> }\n\nexport type ElementReference = { type: 'reference'; key: string; value: string }\n\nexport type Element = ElementData | ElementReference\n\nexport function isElementReference(element: Element): element is ElementReference {\n return !('props' in element)\n}\n\nexport type Document = {\n rootElement: Element\n}\n\nexport function createDocument(rootElement: Element): Document {\n return { rootElement }\n}\n\nexport type State = Map<string, Document>\n\nexport function getInitialState({\n rootElements = new Map(),\n}: { rootElements?: Map<string, Element> } = {}): State {\n const initialState = new Map()\n\n rootElements.forEach((rootElement, elementKey) => {\n initialState.set(elementKey, createDocument(rootElement))\n })\n\n return initialState\n}\n\nfunction getDocuments(state: State): Map<string, Document> {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): Document | null {\n return getDocuments(state).get(documentKey) ?? null\n}\n\nexport function getDocumentRootElement(state: State, documentKey: string): Element | null {\n return getDocument(state, documentKey)?.rootElement ?? null\n}\n\nexport function reducer(state: State = getInitialState(), _action: Action): State {\n return state\n}\n","import type {\n ClassAttributes,\n ComponentClass,\n PropsWithoutRef,\n RefAttributes,\n VoidFunctionComponent,\n} from 'react'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type ComponentType<P = Record<string, any>, T = any> =\n | ComponentClass<PropsWithoutRef<P> & ClassAttributes<T>>\n | VoidFunctionComponent<PropsWithoutRef<P> & RefAttributes<T>>\n\nexport type State = Map<string, ComponentType>\n\nexport function getInitialState({\n reactComponents = new Map(),\n}: { reactComponents?: Map<string, ComponentType> } = {}): State {\n return reactComponents\n}\n\nfunction getReactComponents(state: State): Map<string, ComponentType> {\n return state\n}\n\nexport function getReactComponent(state: State, type: string): ComponentType | null {\n return getReactComponents(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_REACT_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.component)\n\n case ActionTypes.UNREGISTER_REACT_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type ComponentIcon =\n | 'Carousel40'\n | 'Code40'\n | 'Countdown40'\n | 'Cube40'\n | 'Divider40'\n | 'Form40'\n | 'Navigation40'\n | 'SocialLinks40'\n | 'Video40'\n\nexport type ComponentMeta = { label: string; icon: ComponentIcon; hidden: boolean }\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\nimport { PropControllerDescriptor } from '../../prop-controllers'\n\nexport type { PropControllerDescriptor }\n\nexport type State = Map<string, Record<string, PropControllerDescriptor>>\n\nexport function getInitialState({\n propControllerDescriptors = new Map(),\n}: {\n propControllerDescriptors?: Map<string, Record<string, PropControllerDescriptor>>\n} = {}): State {\n return propControllerDescriptors\n}\n\nfunction getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllerDescriptor>> {\n return state\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllerDescriptor> | null {\n return getPropControllerDescriptors(state).get(componentType) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import {\n applyMiddleware,\n combineReducers,\n createStore,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkDispatch } from 'redux-thunk'\n\nimport * as Documents from './modules/read-only-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport { Action } from './actions'\n\nexport type {\n Data,\n Document,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\nexport { isElementReference } from './modules/read-only-documents'\nexport type { ComponentType } from './modules/react-components'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocumentRootElement(\n state: State,\n documentKey: string,\n): Documents.Element | null {\n return Documents.getDocumentRootElement(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n} = {}): Store {\n return createStore(\n reducer,\n { ...preloadedState, documents: Documents.getInitialState({ rootElements }) },\n applyMiddleware(thunk),\n )\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import * as jsxRuntime from \"/Users/alexwoods/makeswift/public/node_modules/react/jsx-runtime.js\"\nexport const jsx = jsxRuntime.jsx\nexport const jsxs = jsxRuntime.jsxs\nexport const Fragment = jsxRuntime.Fragment","import {\n createContext,\n forwardRef,\n memo,\n ReactNode,\n Ref,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\n\nimport * as ReactPage from '../state/react-page'\nimport type * as ReactBuilderPreview from '../state/react-builder-preview'\nimport {\n changeComponentHandle,\n mountComponentEffect,\n registerComponentEffect,\n registerReactComponentEffect,\n} from '../state/actions'\nimport type {\n PropControllerDescriptor,\n PropControllerDescriptorValueType,\n} from '../prop-controllers'\nimport { ComponentIcon } from '../state/modules/components-meta'\n\nconst contextDefaultValue = ReactPage.configureStore()\n\nexport const ReactRuntime = {\n registerComponent<\n P extends Record<string, PropControllerDescriptor>,\n C extends ReactPage.ComponentType<{ [K in keyof P]?: PropControllerDescriptorValueType<P[K]> }>\n >(\n component: C,\n {\n type,\n label,\n icon = 'Cube40',\n hidden = false,\n props,\n }: { type: string; label: string; icon?: ComponentIcon; hidden?: boolean; props?: P },\n ): () => void {\n const unregisterComponent = contextDefaultValue.dispatch(\n registerComponentEffect(type, { label, icon, hidden }, props ?? {}),\n )\n\n const unregisterReactComponent = contextDefaultValue.dispatch(\n registerReactComponentEffect(type, (component as unknown) as ReactPage.ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n },\n}\n\nconst Context = createContext(contextDefaultValue)\n\ntype RuntimeProviderProps = {\n defaultRootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n}\n\nexport function RuntimeProvider({\n children,\n defaultRootElements,\n}: RuntimeProviderProps): JSX.Element {\n const [store, setStore] = useState(() =>\n ReactPage.configureStore({\n preloadedState: contextDefaultValue.getState(),\n rootElements: defaultRootElements,\n }),\n )\n\n useEffect(() => {\n // TODO(miguel): perform a more robust validation.\n const isInBuilder = window.parent !== window\n\n if (!isInBuilder) return\n\n const initializePromise = initializeReactBuilderPreview()\n\n return () => {\n initializePromise.then(cleanUp => {\n cleanUp()\n })\n }\n\n async function initializeReactBuilderPreview(): Promise<() => void> {\n const ReactBuilderPreview = await import('../state/react-builder-preview')\n\n const store = await new Promise<ReactBuilderPreview.Store>(resolve => {\n setStore(store => {\n const nextStore = ReactBuilderPreview.configureStore({ preloadedState: store.getState() })\n\n resolve(nextStore)\n\n return nextStore\n })\n })\n\n return store.dispatch(ReactBuilderPreview.initialize())\n }\n }, [])\n\n return <Context.Provider value={store}>{children}</Context.Provider>\n}\n\ntype State = ReactPage.State | ReactBuilderPreview.State\n\nfunction useSelector<R>(selector: (state: State) => R): R {\n const store = useContext(Context)\n\n return useSyncExternalStoreWithSelector(store.subscribe, store.getState, store.getState, selector)\n}\n\nfunction useComponent(type: string): ReactPage.ComponentType | null {\n return useSelector(state => ReactPage.getReactComponent(state, type))\n}\n\nfunction useDocumentRootElement(documentKey: string): ReactPage.Element | null {\n return useSelector(state => ReactPage.getDocumentRootElement(state, documentKey))\n}\n\ntype Dispatch = ReactPage.Dispatch & ReactBuilderPreview.Dispatch\n\nfunction useDispatch(): Dispatch {\n const store = useContext(Context)\n\n return store.dispatch\n}\n\ntype ElementDataProps = {\n elementData: ReactPage.ElementData\n}\n\nconst ElementData = memo(\n forwardRef(function ElementData(\n { elementData }: ElementDataProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n const Component = useComponent(elementData.type)\n\n if (Component == null) {\n return (\n <div ref={ref as Ref<HTMLDivElement>}>\n <p>Component Not Found</p>\n <pre>\n <code>{JSON.stringify(elementData, null, 2)}</code>\n </pre>\n </div>\n )\n }\n\n return <Component {...elementData.props} key={elementData.key} ref={ref} />\n }),\n)\n\ntype ElementRefereceProps = {\n elementReference: ReactPage.ElementReference\n}\n\nconst ElementReference = memo(\n forwardRef(function ElementReference(\n { elementReference }: ElementRefereceProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n return (\n <div ref={ref as Ref<HTMLDivElement>}>\n <p>Not Implemented</p>\n <pre>\n <code>{JSON.stringify(elementReference, null, 2)}</code>\n </pre>\n </div>\n )\n }),\n)\n\ntype ElementProps = {\n element: ReactPage.Element\n}\n\nexport const Element = memo(function Element({ element }: ElementProps): JSX.Element {\n const elementKey = element.key\n const dispatch = useDispatch()\n const ref = useCallback(\n (handle: unknown): void => {\n dispatch(changeComponentHandle(elementKey, handle))\n },\n [dispatch, elementKey],\n )\n\n useEffect(() => dispatch(mountComponentEffect(elementKey)), [dispatch, elementKey])\n\n return ReactPage.isElementReference(element) ? (\n <ElementReference key={elementKey} ref={ref} elementReference={element} />\n ) : (\n <ElementData key={elementKey} ref={ref} elementData={element} />\n )\n})\n\ntype DocumentProps = {\n documentKey: string\n}\n\nexport const Document = memo(function Document({ documentKey }: DocumentProps): JSX.Element {\n const documentRootElement = useDocumentRootElement(documentKey)\n\n if (documentRootElement == null) {\n return (\n <div>\n <p>Document Not Found</p>\n <pre>\n <code>{JSON.stringify({ documentKey }, null, 2)}</code>\n </pre>\n </div>\n )\n }\n\n return <Element element={documentRootElement} />\n})\n"],"names":["require$$0","h","m","n","p","r","u","t","q","shimModule","require$$1","withSelectorModule","defineProperty","_objectSpread","getInitialState","reactComponents","Map","state","type","getReactComponents","get","action","ActionTypes","REGISTER_REACT_COMPONENT","set","payload","component","UNREGISTER_REACT_COMPONENT","nextState","deleted","delete","Documents.reducer","ReactComponents.reducer","ComponentsMeta.reducer","PropControllers.reducer","Documents.getDocumentRootElement","ReactComponents.getReactComponent","Documents.getInitialState","thunk","jsxRuntimeModule","jsxRuntime.jsx","jsxRuntime.jsxs","jsxRuntime.Fragment","contextDefaultValue","ReactPage","ReactRuntime","registerComponent","label","icon","hidden","props","unregisterComponent","dispatch","registerComponentEffect","unregisterReactComponent","registerReactComponentEffect","Context","createContext","children","defaultRootElements","store","setStore","useState","preloadedState","getState","rootElements","isInBuilder","window","parent","initializePromise","initializeReactBuilderPreview","then","cleanUp","ReactBuilderPreview","Promise","resolve","nextStore","configureStore","initialize","selector","useContext","useSyncExternalStoreWithSelector","subscribe","useSelector","documentKey","ElementData","memo","forwardRef","elementData","ref","Component","useComponent","JSON","stringify","key","ElementReference","elementReference","Element","element","elementKey","useDispatch","useCallback","handle","changeComponentHandle","mountComponentEffect","Document","documentRootElement","useDocumentRootElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react.cjs2.js","sources":["../src/state/modules/read-only-documents.ts","../src/state/modules/react-components.tsx","../src/state/modules/components-meta.ts","../src/state/modules/prop-controllers.ts","../src/prop-controllers/introspection.ts","../src/state/react-page.ts","../src/components/builtin/Box/components/Placeholder/index.tsx","../src/components/utils/queries.ts","../src/components/utils/isNonNullable.ts","../src/api/react.tsx","../src/components/hooks/useBackgrounds.ts","../src/components/hooks/useBorder.ts","../src/components/hooks/useBoxShadow.ts","../src/components/hooks/useColor.ts","../src/components/hooks/useFile.ts","../src/utils/keys.ts","../src/utils/coalesce.ts","../src/utils/shallowMerge.ts","../src/components/utils/devices.ts","../src/components/hooks/useMediaQuery.ts","../src/components/hooks/usePage.ts","../src/components/builtin/Box/animations.tsx","../src/components/utils/columns.ts","../src/components/utils/colorToString.ts","../src/components/utils/cssMediaRules.ts","../src/utils/clamp.ts","../src/components/shared/BackgroundsContainer/components/Parallax/index.tsx","../src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.tsx","../src/components/shared/BackgroundsContainer/components/Backgrounds/index.tsx","../src/components/shared/BackgroundsContainer/index.tsx","../src/components/builtin/Box/Box.tsx","../src/components/shared/Link/index.tsx","../src/components/builtin/Button/Button.tsx","../src/components/utils/placeholders.ts","../src/components/builtin/Image/Image.tsx","../src/components/builtin/Carousel/Carousel.tsx","../src/components/builtin/Countdown/Countdown.tsx","../src/components/builtin/Divider/Divider.tsx","../src/components/builtin/Embed/Embed.tsx","../src/components/icons/mobile-menu-28.svg","../src/components/shared/GutterContainer/index.tsx","../src/components/builtin/Navigation/components/LinksPlaceholder/index.tsx","../src/components/icons/caret-down-8.svg","../src/components/icons/plus-8.svg","../src/components/icons/arrow-down-8.svg","../src/components/icons/chevron-down-8.svg","../src/components/builtin/Navigation/components/DropDownButton/index.tsx","../src/components/icons/times-16.svg","../src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.tsx","../src/components/builtin/Navigation/components/MobileMenu/index.tsx","../src/components/builtin/Navigation/Navigation.tsx","../src/components/builtin/Root/components/Placeholder/index.tsx","../src/components/builtin/Root/Root.tsx","../src/components/icons/logo-angellist-20.svg","../src/components/icons/logo-codepen-20.svg","../src/components/icons/logo-dribbble-20.svg","../src/components/icons/logo-facebook-20.svg","../src/components/icons/logo-github-20.svg","../src/components/icons/logo-instagram-20.svg","../src/components/icons/logo-linkedin-20.svg","../src/components/icons/logo-medium-20.svg","../src/components/icons/logo-pinterest-20.svg","../src/components/icons/logo-reddit-20.svg","../src/components/icons/logo-rss-20.svg","../src/components/icons/logo-snapchat-20.svg","../src/components/icons/logo-soundcloud-20.svg","../src/components/icons/logo-spotify-20.svg","../src/components/icons/logo-telegram-20.svg","../src/components/icons/logo-tumblr-20.svg","../src/components/icons/logo-twitch-20.svg","../src/components/icons/logo-twitter-20.svg","../src/components/icons/logo-whatsapp-20.svg","../src/components/icons/logo-vimeo-20.svg","../src/components/icons/logo-yelp-20.svg","../src/components/icons/logo-youtube-20.svg","../src/components/builtin/SocialLinks/options.tsx","../src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.tsx","../src/components/builtin/SocialLinks/SocialLinks.tsx","../src/components/hooks/useTypography.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.tsx","../src/components/builtin/Text/components/RichTextEditor/components/Block/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Link.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Inlines.tsx","../src/components/builtin/Text/components/RichTextEditor/index.tsx","../src/components/builtin/Text/Text.tsx","../src/components/builtin/index.ts","../src/runtimes/react.tsx"],"sourcesContent":["import type { Action } from '../actions'\n\nexport type Data = undefined | null | boolean | number | string | Data[] | { [key: string]: Data }\n\nexport type ElementData = { type: string; key: string; props: Record<string, Data> }\n\nexport type ElementReference = { type: 'reference'; key: string; value: string }\n\nexport type Element = ElementData | ElementReference\n\nexport function isElementReference(element: Element): element is ElementReference {\n return !('props' in element)\n}\n\nexport type Document = {\n rootElement: Element\n}\n\nexport function createDocument(rootElement: Element): Document {\n return { rootElement }\n}\n\nexport type State = Map<string, Document>\n\nexport function getInitialState({\n rootElements = new Map(),\n}: { rootElements?: Map<string, Element> } = {}): State {\n const initialState = new Map()\n\n rootElements.forEach((rootElement, elementKey) => {\n initialState.set(elementKey, createDocument(rootElement))\n })\n\n return initialState\n}\n\nfunction getDocuments(state: State): Map<string, Document> {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): Document | null {\n return getDocuments(state).get(documentKey) ?? null\n}\n\nexport function getDocumentRootElement(state: State, documentKey: string): Element | null {\n return getDocument(state, documentKey)?.rootElement ?? null\n}\n\nexport function reducer(state: State = getInitialState(), _action: Action): State {\n return state\n}\n","import type {\n ClassAttributes,\n ComponentClass,\n PropsWithoutRef,\n RefAttributes,\n VoidFunctionComponent,\n} from 'react'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type ComponentType<P = Record<string, any>, T = any> =\n | ComponentClass<PropsWithoutRef<P> & ClassAttributes<T>>\n | VoidFunctionComponent<PropsWithoutRef<P> & RefAttributes<T>>\n\nexport type State = Map<string, ComponentType>\n\nexport function getInitialState({\n reactComponents = new Map(),\n}: { reactComponents?: Map<string, ComponentType> } = {}): State {\n return reactComponents\n}\n\nfunction getReactComponents(state: State): Map<string, ComponentType> {\n return state\n}\n\nexport function getReactComponent(state: State, type: string): ComponentType | null {\n return getReactComponents(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_REACT_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.component)\n\n case ActionTypes.UNREGISTER_REACT_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type ComponentIcon =\n | 'Carousel40'\n | 'Code40'\n | 'Countdown40'\n | 'Cube40'\n | 'Divider40'\n | 'Form40'\n | 'Navigation40'\n | 'SocialLinks40'\n | 'Video40'\n\nexport type ComponentMeta = { label: string; icon: ComponentIcon; hidden: boolean }\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\nimport { PropControllerDescriptor } from '../../prop-controllers'\n\nexport type { PropControllerDescriptor }\n\nexport type State = Map<string, Record<string, PropControllerDescriptor>>\n\nexport function getInitialState({\n propControllerDescriptors = new Map(),\n}: {\n propControllerDescriptors?: Map<string, Record<string, PropControllerDescriptor>>\n} = {}): State {\n return propControllerDescriptors\n}\n\nexport function getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllerDescriptor>> {\n return state\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllerDescriptor> | null {\n return getPropControllerDescriptors(state).get(componentType) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Descriptor, ElementIDValue, GridValue, Types } from './descriptors'\nimport { Data, Element } from '../state/react-page'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Grid:\n return (prop as GridValue).elements\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case Types.ElementID:\n return prop as ElementIDValue\n\n default:\n return null\n }\n}\n","import {\n applyMiddleware,\n combineReducers,\n createStore,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkDispatch } from 'redux-thunk'\n\nimport * as Documents from './modules/read-only-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as Introspection from '../prop-controllers/introspection'\nimport { Action } from './actions'\n\nexport type {\n Data,\n Document,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\nexport { isElementReference } from './modules/read-only-documents'\nexport type { ComponentType } from './modules/react-components'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n isInBuilder: (_state: boolean = false, _action: Action): boolean => false,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocumentRootElement(\n state: State,\n documentKey: string,\n): Documents.Element | null {\n return Documents.getDocumentRootElement(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nfunction getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllers.PropControllerDescriptor>> {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nfunction getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction normalizeElement(\n element: Documents.Element,\n descriptors: Map<string, Record<string, PropControllers.PropControllerDescriptor>>,\n): Map<string, Documents.Element> {\n const elements = new Map<string, Documents.Element>()\n const remaining = [element]\n let current: Documents.Element | undefined\n\n while ((current = remaining.pop())) {\n elements.set(current.key, current)\n\n if (Documents.isElementReference(current)) continue\n\n const elementDescriptors = descriptors.get(element.type)\n\n if (elementDescriptors == null) continue\n\n const parent = current\n const children = Object.entries(elementDescriptors).reduce((acc, [propName, descriptor]) => {\n return [...acc, ...Introspection.getElementChildren(descriptor, parent.props[propName])]\n }, [] as Documents.Element[])\n\n remaining.push(...children)\n }\n\n return elements\n}\n\nfunction getDocumentElements(state: State, documentKey: string): Map<string, Documents.Element> {\n const rootElement = getDocumentRootElement(state, documentKey)\n const descriptors = getPropControllerDescriptors(state)\n\n if (rootElement == null) return new Map()\n\n return normalizeElement(rootElement, descriptors)\n}\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return getDocumentElements(state, documentKey).get(elementKey) ?? null\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n const descriptors = getComponentPropControllerDescriptors(state, element.type)\n\n if (descriptors == null) return null\n\n const elementId = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n if (acc != null) return acc\n\n return Introspection.getElementId(descriptor, element.props[propName])\n }, null as string | null)\n\n return elementId\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n} = {}): Store {\n return createStore(\n reducer,\n { ...preloadedState, documents: Documents.getInitialState({ rootElements }) },\n applyMiddleware(thunk),\n )\n}\n","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\n\nconst PlaceholderBase = styled.div<{ hide: boolean }>`\n width: 100%;\n background: rgba(161, 168, 194, 0.18);\n height: 80px;\n padding: 8px;\n visibility: ${({ hide }) => (hide === true ? 'hidden' : 'initial')};\n`\n\ntype Props = { hide?: boolean }\n\nexport default forwardRef(function Placeholder(\n { hide = false, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <PlaceholderBase {...restOfProps} hide={hide} ref={ref}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n style={{ overflow: 'visible' }}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </PlaceholderBase>\n )\n})\n","import { gql } from '@apollo/client'\n\nexport const SWATCHES_BY_ID = gql`\n query SwatchesById($ids: [ID!]!) {\n swatches(ids: $ids) {\n id\n hue\n saturation\n lightness\n }\n }\n`\n\nexport const FILE_BY_ID = gql`\n query FileById($id: ID!) {\n file(id: $id) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n }\n`\n\nexport const FILES_BY_ID = gql`\n query FilesById($ids: [ID!]!) {\n files(ids: $ids) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n }\n`\n\nexport const PAGE_PATHNAMES_BY_ID = gql`\n query PagePathnamesById($ids: [ID!]!) {\n pagePathnamesById(ids: $ids) {\n id\n pathname\n }\n }\n`\n\nexport const TYPOGRAPHY_FRAGMENT = gql`\n fragment Typography on Typography {\n id\n name\n style {\n deviceId\n value {\n fontFamily\n fontSize {\n value\n unit\n }\n color {\n swatchId\n alpha\n }\n lineHeight\n letterSpacing\n fontWeight\n textAlign\n uppercase\n underline\n strikethrough\n italic\n }\n }\n }\n`\n\nexport const TYPOGRAPHIES_BY_ID = gql`\n query TypographiesById($ids: [ID!]!) {\n typographies(ids: $ids) {\n ...Typography\n }\n }\n\n ${TYPOGRAPHY_FRAGMENT}\n`\n","export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value != null\n}\n","import {\n ApolloClient,\n DocumentNode,\n NormalizedCacheObject,\n OperationVariables,\n QueryHookOptions,\n QueryResult,\n TypedDocumentNode,\n useQuery as useApolloQuery,\n} from '@apollo/client'\nimport { ApolloProviderProps } from '@apollo/client/react/context'\nimport { createContext, useContext } from 'react'\n\nconst Context = createContext<ApolloClient<NormalizedCacheObject> | undefined>(undefined)\n\nexport function useQuery<TData = any, TVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: QueryHookOptions<TData, TVariables>,\n): QueryResult<TData, TVariables> {\n const client = useContext(Context)\n\n return useApolloQuery(query, { client, ...options })\n}\n\nexport function ApolloProvider({ client, children }: ApolloProviderProps<NormalizedCacheObject>) {\n return <Context.Provider value={client}>{children}</Context.Provider>\n}\n","import { useMemo } from 'react'\n\nimport { ColorValue as Color } from '../utils/types'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport { FILES_BY_ID, SWATCHES_BY_ID } from '../utils/queries'\nimport { isNonNullable } from '../utils/isNonNullable'\nimport { BackgroundsValue as ResponsiveBackgroundsValue } from '../../prop-controllers/descriptors'\nimport { useQuery } from '../../api/react'\n\ntype BackgroundColorData = Color\n\ntype BackgroundGradientStopData = {\n id: string\n location: number\n color: Color | null | undefined\n}\n\ntype BackgroundGradientData = {\n angle: number\n isRadial: boolean\n stops: Array<BackgroundGradientStopData>\n}\n\ntype BackgroundImageData = {\n publicUrl?: string\n dimensions: { width: number; height: number } | null\n position: {\n x: number\n y: number\n }\n size: 'cover' | 'contain' | 'auto'\n repeat: 'no-repeat' | 'repeat-x' | 'repeat-y' | 'repeat'\n opacity?: number\n parallax?: number\n}\n\ntype BackgroundVideoData = {\n url: string\n maskColor: Color | null | undefined\n aspectRatio: 'wide' | 'standard'\n opacity: number\n zoom: number\n parallax: number\n}\n\ntype BackgroundData =\n | { id: string; type: 'color'; payload: BackgroundColorData | null | undefined }\n | { id: string; type: 'image'; payload: BackgroundImageData | null | undefined }\n | { id: string; type: 'gradient'; payload: BackgroundGradientData | null | undefined }\n | { id: string; type: 'video'; payload: BackgroundVideoData | null | undefined }\n\ntype BackgroundsData = Array<BackgroundData>\n\nexport type BackgroundsPropControllerData = ResponsiveValue<BackgroundsData>\n\nexport function useBackgrounds(\n value: ResponsiveBackgroundsValue | null | undefined,\n): BackgroundsPropControllerData | null | undefined {\n const fileIds =\n value == null\n ? []\n : value\n .map(({ value: backgrounds }) =>\n backgrounds\n .map(background =>\n background.type === 'image' && background.payload != null\n ? background.payload.imageId\n : null,\n )\n .filter(isNonNullable)\n .reduce((a, b) => a.concat(b), [] as string[]),\n )\n .reduce((a, b) => a.concat(b), [])\n const swatchIds =\n value == null\n ? []\n : value\n .map(({ value: backgrounds }) =>\n backgrounds\n .map(background => {\n if (background.type === 'color' && background.payload != null) {\n return [background.payload.swatchId]\n }\n\n if (background.type === 'gradient' && background.payload != null) {\n return background.payload.stops\n .map(stop => stop.color && stop.color.swatchId)\n .filter(isNonNullable)\n }\n\n if (background.type === 'video' && background.payload != null) {\n return [background.payload.maskColor && background.payload.maskColor.swatchId]\n }\n\n return null\n })\n .filter(isNonNullable)\n .reduce((a, b) => a.concat(b), []),\n )\n .reduce((a, b) => a.concat(b), [])\n .filter(isNonNullable)\n const skip = value == null\n const filesResult = useQuery(FILES_BY_ID, {\n skip: skip || fileIds.length === 0,\n variables: { ids: fileIds },\n })\n const swatchesResult = useQuery(SWATCHES_BY_ID, {\n skip: skip || swatchIds.length === 0,\n variables: { ids: swatchIds },\n })\n\n return useMemo(() => {\n const { data: filesData = {} } = filesResult\n const { data: swatchesData = {} } = swatchesResult\n\n if (value == null || filesResult.error != null || swatchesResult.error != null) {\n return null\n }\n\n const { files = [] } = filesData\n const { swatches = [] } = swatchesData\n\n return value.map(({ value: backgrounds, ...restOfValue }) => ({\n ...restOfValue,\n value: backgrounds\n .map(bg => {\n if (bg.type === 'image' && bg.payload != null && bg.payload.imageId != null) {\n const { imageId, ...restOfPayload } = bg.payload\n const file = files.find((f: any) => f && f.id === imageId)\n\n return (\n file && {\n id: bg.id,\n type: 'image',\n payload: {\n ...restOfPayload,\n publicUrl: file.publicUrl,\n dimensions: file.dimensions,\n },\n }\n )\n }\n\n if (bg.type === 'color' && bg.payload != null) {\n const { swatchId, alpha } = bg.payload\n const swatch = swatches.find((s: any) => s && s.id === swatchId)\n\n return { id: bg.id, type: 'color', payload: { swatch, alpha } }\n }\n\n if (bg.type === 'gradient' && bg.payload != null && bg.payload.stops.length > 0) {\n return {\n id: bg.id,\n type: 'gradient',\n payload: {\n angle: bg.payload.angle,\n isRadial: bg.payload.isRadial,\n stops: bg.payload.stops.map(({ color, ...restOfStop }) => ({\n ...restOfStop,\n color: color && {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n },\n })),\n },\n }\n }\n\n if (bg.type === 'video' && bg.payload != null) {\n const { maskColor, ...restOfPayload } = bg.payload\n const swatch = maskColor && swatches.find((s: any) => s && s.id === maskColor.swatchId)\n\n return {\n id: bg.id,\n type: 'video',\n payload: {\n ...restOfPayload,\n maskColor: swatch && maskColor && { swatch, alpha: maskColor.alpha },\n },\n }\n }\n\n return null\n })\n .filter(Boolean),\n }))\n }, [filesResult, swatchesResult, value])\n}\n","import { BorderStyleProperty } from 'csstype'\n\nimport { isNonNullable } from '../utils/isNonNullable'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport type { ColorValue as Color } from '../utils/types'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport { BorderValue as ResponsiveBorderValue } from '../../prop-controllers/descriptors'\nimport { useQuery } from '../../api/react'\n\nfunction mapSideColor(swatches: any, { color, ...restOfSide }: any) {\n return {\n ...restOfSide,\n color: color && {\n alpha: color.alpha,\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n },\n }\n}\n\nexport type BorderSide = {\n width: number | null | undefined\n style: BorderStyleProperty\n color: Color | null | undefined\n}\n\ntype BorderData = {\n borderTop: BorderSide | null | undefined\n borderRight: BorderSide | null | undefined\n borderBottom: BorderSide | null | undefined\n borderLeft: BorderSide | null | undefined\n}\n\nexport type BorderPropControllerData = ResponsiveValue<BorderData>\n\nexport function useBorder(\n value: ResponsiveBorderValue | null | undefined,\n): BorderPropControllerData | null | undefined {\n const swatchIds =\n value == null\n ? []\n : [\n ...Array.from(\n new Set(\n value\n .map(({ value: { borderTop, borderLeft, borderBottom, borderRight } }) => [\n borderTop && borderTop.color && borderTop.color.swatchId,\n borderBottom && borderBottom.color && borderBottom.color.swatchId,\n borderLeft && borderLeft.color && borderLeft.color.swatchId,\n borderRight && borderRight.color && borderRight.color.swatchId,\n ])\n .reduce((a, b) => a.concat(b))\n .filter(isNonNullable),\n ),\n ),\n ]\n const skip = value == null || swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (value == null || error != null) return null\n\n const { swatches = [] } = data\n\n return value.map(({ value: { borderTop, borderBottom, borderLeft, borderRight }, ...rest }) => ({\n ...rest,\n value: {\n borderTop: borderTop && mapSideColor(swatches, borderTop),\n borderBottom: borderBottom && mapSideColor(swatches, borderBottom),\n borderLeft: borderLeft && mapSideColor(swatches, borderLeft),\n borderRight: borderRight && mapSideColor(swatches, borderRight),\n },\n }))\n}\n","import { isNonNullable } from '../utils/isNonNullable'\nimport type { ColorValue as Color } from '../utils/types'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport type { ResponsiveValue } from '../../prop-controllers'\nimport type { ShadowsValue as ResponsiveShadowsValue } from '../../prop-controllers/descriptors'\nimport { useQuery } from '../../api/react'\n\ntype ShadowData = {\n id: string\n payload: {\n inset: boolean\n offsetX: number\n offsetY: number\n blurRadius: number\n spreadRadius: number\n color: Color | null | undefined\n }\n}\n\nconst ShadowDefaultValue = {\n inset: false,\n offsetX: 0,\n offsetY: 2,\n blurRadius: 4,\n spreadRadius: 0,\n color: null,\n} as const\n\nexport type BoxShadowData = Array<ShadowData>\n\nexport type BoxShadowPropControllerData = ResponsiveValue<BoxShadowData>\n\nexport function useBoxShadow(\n value: ResponsiveShadowsValue | null | undefined,\n): BoxShadowPropControllerData | null | undefined {\n const swatchIds =\n value == null\n ? []\n : [\n ...Array.from(\n new Set(\n value\n .map(({ value: shadows }) =>\n shadows.map(({ payload: { color } }) => color && color.swatchId),\n )\n .reduce((a, b) => a.concat(b), [])\n .filter(isNonNullable),\n ),\n ),\n ]\n\n const skip = value == null || swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (value == null || error != null) return null\n\n const { swatches = [] } = data\n\n return value.map(({ value: shadows, ...restOfValue }) => ({\n ...restOfValue,\n value: shadows.map(\n ({\n payload: { color, inset, offsetX, offsetY, blurRadius, spreadRadius },\n ...restOfShadow\n }) => ({\n ...restOfShadow,\n payload: {\n color:\n color != null\n ? {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n }\n : null,\n inset: inset ?? ShadowDefaultValue.inset,\n offsetX: offsetX ?? ShadowDefaultValue.offsetX,\n offsetY: offsetY ?? ShadowDefaultValue.offsetY,\n blurRadius: blurRadius ?? ShadowDefaultValue.blurRadius,\n spreadRadius: spreadRadius ?? ShadowDefaultValue.spreadRadius,\n },\n }),\n ),\n }))\n}\n","import type { ResponsiveValue } from '../../prop-controllers'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport { isNonNullable } from '../utils/isNonNullable'\nimport type { ColorValue as Color } from '../utils/types'\nimport { useQuery } from '../../api/react'\n\nexport function useColor(\n color:\n | ResponsiveValue<{\n swatchId: string\n alpha: number\n }>\n | null\n | undefined,\n): ResponsiveValue<Color> | null | undefined {\n const swatchIds =\n color == null\n ? []\n : [...Array.from(new Set(color.map(({ value: v }) => v && v.swatchId).filter(isNonNullable)))]\n const skip = swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (color == null || error != null) return null\n\n const { swatches = [] } = data\n\n return color\n .map(({ value: v, ...rest }) => {\n const { swatchId, alpha } = v\n const swatch = swatches.find((s: any) => s && s.id === swatchId)\n\n return swatch == null ? null : { ...rest, value: { swatch, alpha } }\n })\n .filter(isNonNullable)\n}\n","import { useQuery } from '../../api/react'\nimport { FILE_BY_ID } from '../utils/queries'\n\ntype File = {\n id: string\n name: string\n publicUrl: string\n extension: string\n dimensions: { width: number; height: number } | null\n}\n\nexport function useFile(fileId: string | null | undefined): File | null | undefined {\n const { error, data = {} } = useQuery(FILE_BY_ID, {\n skip: fileId == null,\n variables: { id: fileId },\n })\n\n if (fileId == null || error != null) return null\n\n return data.file\n}\n","const keys = <O extends { [key: string]: unknown }>(o: O): (keyof O)[] => Object.keys(o)\n\nexport default keys\n","const coalesce = <T>(...args: Array<T>): T => {\n let i: number\n\n for (i = 0; i < args.length - 1; i += 1) {\n if (args[i] != null) return args[i]\n }\n\n return args[i]\n}\n\nexport default coalesce\n","import keys from './keys'\nimport coalesce from './coalesce'\n\nexport default function shallowMerge<\n A extends Record<string, unknown>,\n B extends Record<string, unknown>,\n>(a: A, b: B): A & B {\n const bKeys = keys(b)\n const merged = { ...a } as A & B\n\n bKeys.forEach(key => {\n // @ts-expect-error: `coalesce` returns `null | undefined` regardless of input guarantees.\n merged[key] = coalesce(merged[key], b[key])\n })\n\n return merged\n}\n","import type { Device as DeviceID, DeviceOverride, ResponsiveValue } from '../../prop-controllers'\nimport shallowMerge from '../../utils/shallowMerge'\n\nexport type Device = {\n id: DeviceID\n minWidth?: number\n maxWidth?: number\n}\n\nexport const DEVICES: Array<Device> = [\n { id: 'desktop', minWidth: 769 },\n { id: 'tablet', minWidth: 576, maxWidth: 768 },\n { id: 'mobile', maxWidth: 575 },\n]\n\nexport const getDevice = (deviceId: DeviceID): Device => {\n const device = DEVICES.find(({ id }) => id === deviceId)\n\n if (device == null) throw new Error(`Unrecognized device ID: \"${deviceId}\".`)\n\n return device\n}\n\nexport type FallbackStrategy<V> = (\n arg0: DeviceOverride<V> | undefined,\n arg1: ResponsiveValue<V>,\n) => DeviceOverride<V> | undefined\n\nfunction defaultStrategy<V>(\n value: DeviceOverride<V> | undefined,\n fallbacks: ResponsiveValue<V>,\n): DeviceOverride<V> | undefined {\n return value || fallbacks[0]\n}\n\nexport function shallowMergeFallbacks<V extends Record<string, unknown>>(\n value: DeviceOverride<V> | undefined,\n fallbacks: ResponsiveValue<V>,\n): DeviceOverride<V> | undefined {\n return [value, ...fallbacks]\n .filter((override): override is DeviceOverride<V> => Boolean(override))\n .reduce((a, b) => ({\n deviceId: a.deviceId || b.deviceId,\n value: shallowMerge(a.value, b.value),\n }))\n}\n\nexport function findDeviceOverride<S>(\n values: ResponsiveValue<S> = [],\n deviceId: string,\n strategy: FallbackStrategy<S> = defaultStrategy,\n): DeviceOverride<S> | undefined {\n const value = values.find(({ deviceId: d }) => d === deviceId)\n const fallbacks = DEVICES.slice(0, DEVICES.findIndex(d => d.id === deviceId) + 1)\n .reverse()\n .map(d => values.find(v => v.deviceId === d.id))\n .filter((override): override is DeviceOverride<S> => Boolean(override))\n\n return value != null || fallbacks.length > 0 ? strategy(value, fallbacks) : undefined\n}\n\nexport type ExtractResponsiveValue<T> = T extends ResponsiveValue<infer V> ? V : never\n\nexport function join<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, R>(\n responsiveValues: A,\n joinFn: (values: { [I in keyof A]: ExtractResponsiveValue<A[I]> | undefined }) => R,\n strategy?: FallbackStrategy<V>,\n): ResponsiveValue<R> {\n return DEVICES.map(({ id }) => id)\n .map(deviceId => {\n const value = joinFn(\n responsiveValues.map(responsiveValue => {\n const deviceValue =\n responsiveValue && findDeviceOverride(responsiveValue, deviceId, strategy)\n\n return deviceValue == null ? undefined : deviceValue.value\n }) as unknown as { [I in keyof A]: ExtractResponsiveValue<A[I] | undefined> },\n )\n\n if (value == null) return null\n\n return { deviceId, value }\n })\n .filter((override): override is DeviceOverride<R> => Boolean(override))\n}\n\nexport const getDeviceMediaQuery = (device: Device): string => {\n const parts = ['@media only screen']\n\n if (device.minWidth != null) {\n parts.push(`(min-width: ${device.minWidth}px)`)\n }\n\n if (device.maxWidth != null) {\n parts.push(`(max-width: ${device.maxWidth}px)`)\n }\n\n return parts.join(' and ')\n}\n","/* eslint-env browser */\n\nimport { useState, useLayoutEffect } from 'react'\n\nimport { DeviceOverride } from '../../prop-controllers'\nimport { DEVICES, findDeviceOverride, getDeviceMediaQuery } from '../utils/devices'\n\nexport function useMediaQuery<S>(responsiveValue?: Array<DeviceOverride<S>>): S | void {\n const [deviceId, setDeviceId] = useState(DEVICES[0].id)\n const { value } = findDeviceOverride(responsiveValue, deviceId) || {}\n\n useLayoutEffect(() => {\n if (responsiveValue == null || window == null) return () => {}\n\n const cleanUpFns = DEVICES.map(device => {\n const mediaQueryList = window.matchMedia(getDeviceMediaQuery(device).replace('@media', ''))\n\n const listener = () => {\n if (mediaQueryList.matches) setDeviceId(device.id)\n }\n\n listener()\n mediaQueryList.addListener(listener)\n\n return () => mediaQueryList.removeListener(listener)\n })\n\n return () => cleanUpFns.forEach(fn => fn())\n })\n\n return value\n}\n","import { useQuery } from '../../api/react'\nimport { PAGE_PATHNAMES_BY_ID } from '../utils/queries'\n\ntype Page = {\n id: string\n pathname: string\n}\n\nexport function usePage(pageId: string | null | undefined): Page | null | undefined {\n const { error, data = {} } = useQuery(PAGE_PATHNAMES_BY_ID, {\n skip: pageId == null,\n variables: { ids: [pageId] },\n })\n\n if (pageId == null || error != null) return null\n\n const { pagePathnamesById: [page] = [] } = data\n\n return page\n}\n","import {\n TargetAndTransition,\n Transition,\n useAnimation,\n useReducedMotion,\n Variants,\n MotionProps,\n} from 'framer-motion'\nimport { TransitionMap } from 'framer-motion/types/types'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport { ResponsiveValue } from '../../../prop-controllers'\nimport { useMediaQuery } from '../../hooks'\nimport { Element } from '../../../state/react-page'\n\nexport type BoxAnimateIn =\n | 'none'\n | 'fadeIn'\n | 'fadeUp'\n | 'fadeDown'\n | 'fadeLeft'\n | 'fadeRight'\n | 'blurIn'\n | 'scaleUp'\n | 'scaleDown'\n\nconst defaultExitedProps = {\n opacity: 0,\n x: 0,\n y: 0,\n scale: 1,\n}\n\ntype BoxAnimationVariants = {\n entered: TargetAndTransition\n exited: TargetAndTransition\n}\n\nexport const boxAnimations: {\n [key in BoxAnimateIn]: {\n transition: TransitionMap\n } & BoxAnimationVariants\n} = {\n none: {\n entered: {\n opacity: 1,\n },\n exited: {\n ...defaultExitedProps,\n opacity: 1,\n },\n transition: {},\n },\n fadeIn: {\n exited: defaultExitedProps,\n entered: {\n opacity: 1,\n },\n transition: {},\n },\n fadeLeft: {\n exited: {\n ...defaultExitedProps,\n x: 60,\n },\n entered: {\n opacity: 1,\n x: 0,\n },\n transition: {\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeRight: {\n exited: {\n ...defaultExitedProps,\n x: -60,\n },\n entered: {\n opacity: 1,\n x: 0,\n },\n transition: {\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeUp: {\n exited: {\n ...defaultExitedProps,\n y: 80,\n },\n entered: {\n opacity: 1,\n y: 0,\n },\n transition: {\n y: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeDown: {\n exited: {\n ...defaultExitedProps,\n y: -80,\n },\n entered: {\n opacity: 1,\n y: 0,\n },\n transition: {\n y: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n blurIn: {\n exited: {\n ...defaultExitedProps,\n filter: 'blur(20px)',\n },\n entered: {\n opacity: 1,\n filter: 'blur(0px)',\n },\n transition: {},\n },\n scaleDown: {\n exited: {\n ...defaultExitedProps,\n scale: 1.2,\n },\n entered: {\n opacity: 1,\n scale: 1,\n },\n transition: {\n scale: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n scaleUp: {\n exited: {\n ...defaultExitedProps,\n scale: 0.75,\n },\n entered: {\n opacity: 1,\n scale: 1,\n },\n transition: {\n scale: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n}\n\nconst mergeCustomTransitionWithDefault = (\n transitions: TransitionMap,\n props: Transition,\n): TransitionMap | Transition =>\n transitions\n ? Object.keys(transitions).reduce(\n (a, c) => ({\n ...a,\n [c]: {\n ...transitions[c as string],\n ...props,\n },\n }),\n props,\n )\n : props\n\nexport type BoxAnimationType = {\n containerAnimationProps: {\n transition: Transition\n variants: Variants\n }\n parentAnimationProps: {\n transition: Transition\n }\n childAnimationProps: {\n transition: Transition\n variants: Variants\n }\n}\n\nconst useElementOnScreen = (element: HTMLElement | null, options: IntersectionObserverInit) => {\n const [isVisible, setIsVisible] = useState(false)\n\n useEffect(() => {\n const observer = new IntersectionObserver(intersectionCallback, options)\n\n if (element) observer.observe(element)\n\n return () => {\n if (element) observer.unobserve(element)\n }\n\n function intersectionCallback([entry]: IntersectionObserverEntry[]) {\n if (entry?.isIntersecting) {\n setIsVisible(true)\n }\n }\n }, [element, options])\n\n return isVisible\n}\n\nexport const DEFAULT_BOX_ANIMATE_TYPE = 'none'\nexport const DEFAULT_BOX_ANIMATE_DELAY = 0.0\nexport const DEFAULT_BOX_ANIMATE_DURATION = 0.75\nexport const DEFAULT_ITEM_ANIMATE_TYPE = 'none'\nexport const DEFAULT_ITEM_ANIMATE_DELAY = 0.0\nexport const DEFAULT_ITEM_ANIMATE_DURATION = 0.75\nexport const DEFAULT_ITEM_STAGGER_DURATION = 0.0\n\ntype UseBoxAnimationsPayload = {\n initial?: { container: MotionProps['initial']; parent: MotionProps['initial'] }\n animate?: { container: MotionProps['animate']; parent: MotionProps['animate'] }\n variants?: { container: MotionProps['variants']; child: MotionProps['variants'] }\n transition?: {\n container: MotionProps['transition']\n parent: MotionProps['transition']\n child: MotionProps['transition']\n }\n key?: { container: string }\n}\n\nexport const useBoxAnimations = ({\n boxElement,\n elements,\n ...props\n}: {\n boxAnimateType: ResponsiveValue<BoxAnimateIn> | undefined\n boxAnimateDuration: ResponsiveValue<number> | undefined\n boxAnimateDelay: ResponsiveValue<number> | undefined\n itemAnimateType: ResponsiveValue<BoxAnimateIn> | undefined\n itemAnimateDuration: ResponsiveValue<number> | undefined\n itemAnimateDelay: ResponsiveValue<number> | undefined\n itemStaggerDuration: ResponsiveValue<number> | undefined\n boxElement: HTMLElement | null\n elements: Element[] | undefined\n}): UseBoxAnimationsPayload => {\n const reducedMotion = useReducedMotion()\n const boxAnimateType = useMediaQuery(props.boxAnimateType) || DEFAULT_BOX_ANIMATE_TYPE\n const boxAnimateDuration = useMediaQuery(props.boxAnimateDuration) || DEFAULT_BOX_ANIMATE_DURATION\n const boxAnimateDelay = useMediaQuery(props.boxAnimateDelay) || DEFAULT_BOX_ANIMATE_DELAY\n const itemAnimateType = useMediaQuery(props.itemAnimateType) || DEFAULT_ITEM_ANIMATE_TYPE\n const itemAnimateDuration =\n useMediaQuery(props.itemAnimateDuration) || DEFAULT_ITEM_ANIMATE_DURATION\n const itemAnimateDelay = useMediaQuery(props.itemAnimateDelay) || DEFAULT_ITEM_ANIMATE_DELAY\n const itemStaggerDuration =\n useMediaQuery(props.itemStaggerDuration) || DEFAULT_ITEM_STAGGER_DURATION\n\n const isBoxVisible = useElementOnScreen(boxElement, {\n root: null,\n rootMargin: `0px 0px -10% 0px`,\n threshold: 0.2,\n })\n\n const itemControls = useAnimation()\n const boxControls = useAnimation()\n\n const setSequence = useCallback(\n (variant: keyof BoxAnimationVariants) => {\n boxControls.stop()\n itemControls.stop()\n boxControls.set(variant)\n itemControls.set(variant)\n },\n [boxControls, itemControls],\n )\n\n const playSequence = useCallback(() => {\n boxControls.stop()\n itemControls.stop()\n boxControls.set('exited')\n itemControls.set('exited')\n boxControls.start('entered')\n itemControls.start('entered')\n }, [boxControls, itemControls])\n\n useEffect(() => {\n if (isBoxVisible) {\n setSequence('entered')\n }\n }, [\n elements\n ?.map(e => e.key)\n .sort()\n .join(),\n setSequence,\n ])\n\n useEffect(() => {\n if (isBoxVisible) {\n playSequence()\n }\n }, [\n isBoxVisible,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemAnimateDelay,\n itemStaggerDuration,\n reducedMotion,\n playSequence,\n ])\n\n const boxVariant = boxAnimations[boxAnimateType]\n const itemVariant = boxAnimations[itemAnimateType]\n\n return {\n initial: {\n container: reducedMotion ? 'entered' : 'exited',\n parent: reducedMotion ? 'entered' : 'exited',\n },\n animate: {\n container: reducedMotion ? undefined : boxControls,\n parent: reducedMotion ? undefined : itemControls,\n },\n variants: {\n container: {\n exited: boxVariant.exited,\n entered: boxVariant.entered,\n },\n child: {\n exited: itemVariant.exited,\n entered: itemVariant.entered,\n },\n },\n transition: {\n container: mergeCustomTransitionWithDefault(boxVariant.transition, {\n delay: boxAnimateDelay,\n duration: boxAnimateDuration,\n }),\n parent: {\n delayChildren: itemAnimateDelay,\n staggerChildren: itemStaggerDuration,\n duration: itemAnimateDuration,\n },\n child: mergeCustomTransitionWithDefault(itemVariant.transition, {\n duration: itemAnimateDuration,\n }),\n },\n key: {\n container:\n boxAnimateType +\n boxAnimateDuration +\n boxAnimateDelay +\n itemAnimateType +\n itemAnimateDuration +\n itemAnimateDelay +\n itemStaggerDuration +\n reducedMotion,\n },\n }\n}\n","export const getIndexes = (spans: Array<Array<number>>, index: number): [number, number] => {\n const flattened = spans.reduce((a, s) => a.concat(s), [])\n\n if (index < 0 || index > flattened.length) throw new RangeError()\n\n let remainder = index\n let rowIndex = 0\n\n while (rowIndex < spans.length - 1 && remainder >= spans[rowIndex].length) {\n remainder -= spans[rowIndex].length\n rowIndex += 1\n }\n\n return [rowIndex, remainder]\n}\n","import type { ColorValue as Color } from './types'\n\nexport function colorToString(color?: Color): string {\n return color && color.swatch\n ? `hsla(${color.swatch.hue},${color.swatch.saturation}%,${color.swatch.lightness}%,${color.alpha})`\n : ''\n}\n","import { css, CSSObject } from 'styled-components'\nimport {\n WidthProperty,\n MarginProperty,\n MarginTopProperty,\n MarginRightProperty,\n MarginBottomProperty,\n MarginLeftProperty,\n PaddingProperty,\n PaddingTopProperty,\n PaddingRightProperty,\n PaddingBottomProperty,\n PaddingLeftProperty,\n BorderRadiusProperty,\n BorderTopLeftRadiusProperty,\n BorderTopRightRadiusProperty,\n BorderBottomLeftRadiusProperty,\n BorderBottomRightRadiusProperty,\n} from 'csstype'\n\nimport {\n ResponsiveValue,\n ResponsiveValueType as ExtractResponsiveValue,\n Length as LengthValue,\n} from '../../prop-controllers'\nimport {\n FallbackStrategy,\n getDevice,\n getDeviceMediaQuery,\n join as joinResponsiveValues,\n} from './devices'\nimport { getIndexes } from './columns'\nimport {\n BorderRadiusValue,\n MarginValue,\n PaddingValue,\n TextStyleValue,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport { colorToString } from './colorToString'\nimport {\n BorderSide,\n BorderPropControllerData,\n BoxShadowData,\n BoxShadowPropControllerData,\n} from '../hooks'\n\ntype CSSRules = ReturnType<typeof css>\n\nexport function cssMediaRules<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, P>(\n responsiveValues: A | ((props: P) => A),\n join: (values: { [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined }) =>\n | CSSRules\n | CSSObject,\n strategy?: FallbackStrategy<V>,\n): (props: P) => CSSRules {\n return props =>\n joinResponsiveValues(\n typeof responsiveValues === 'function' ? responsiveValues(props) : responsiveValues,\n join,\n strategy,\n ).reduce((acc, { deviceId, value }) => {\n const device = getDevice(deviceId)\n const mediaQuery = getDeviceMediaQuery(device)\n\n return css`\n ${acc}${mediaQuery} {\n ${value}\n }\n `\n }, css`` as CSSRules)\n}\n\nexport function cssWidth(\n defaultValue: LengthValue | WidthProperty<string | number> = '100%',\n): (props: { width?: WidthValue }) => CSSRules {\n return props => css`\n max-width: 100%;\n ${cssMediaRules(\n [props.width] as const,\n ([width = defaultValue]) => css`\n width: ${typeof width === 'object' ? `${width.value}${width.unit}` : width};\n `,\n )}\n `\n}\n\nfunction getMarginSide(marginSide: LengthValue | MarginProperty<string | number>) {\n return typeof marginSide === 'object' ? `${marginSide.value}${marginSide.unit}` : marginSide\n}\n\nexport function cssMargin(\n defaultValue: {\n marginTop?: LengthValue | MarginTopProperty<string | number>\n marginRight?: LengthValue | MarginRightProperty<string | number>\n marginBottom?: LengthValue | MarginBottomProperty<string | number>\n marginLeft?: LengthValue | MarginLeftProperty<string | number>\n } = {},\n): (props: { margin?: MarginValue }) => CSSRules {\n const defaultMarginTop = defaultValue.marginTop === undefined ? 0 : defaultValue.marginTop\n const defaultMarginRight =\n defaultValue.marginRight === undefined ? 'auto' : defaultValue.marginRight\n const defaultMarginBottom =\n defaultValue.marginBottom === undefined ? 0 : defaultValue.marginBottom\n const defaultMarginLeft = defaultValue.marginLeft === undefined ? 'auto' : defaultValue.marginLeft\n\n return props => css`\n ${cssMediaRules(\n [props.margin] as const,\n ([\n {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = {} as ExtractResponsiveValue<MarginValue>,\n ]) => css`\n margin-top: ${getMarginSide(marginTop || defaultMarginTop)};\n margin-right: ${getMarginSide(marginRight || defaultMarginRight)};\n margin-bottom: ${getMarginSide(marginBottom || defaultMarginBottom)};\n margin-left: ${getMarginSide(marginLeft || defaultMarginLeft)};\n `,\n )}\n `\n}\n\nfunction getPaddingSide(paddingSide: LengthValue | PaddingProperty<string | number>) {\n return typeof paddingSide === 'object' ? `${paddingSide.value}${paddingSide.unit}` : paddingSide\n}\n\nexport function cssPadding(\n defaultValue: {\n paddingTop?: LengthValue | PaddingTopProperty<string | number>\n paddingRight?: LengthValue | PaddingRightProperty<string | number>\n paddingBottom?: LengthValue | PaddingBottomProperty<string | number>\n paddingLeft?: LengthValue | PaddingLeftProperty<string | number>\n } = {},\n): (props: { padding?: PaddingValue }) => CSSRules {\n const defaultPaddingTop = defaultValue.paddingTop === undefined ? 0 : defaultValue.paddingTop\n const defaultPaddingRight =\n defaultValue.paddingRight === undefined ? 0 : defaultValue.paddingRight\n const defaultPaddingBottom =\n defaultValue.paddingBottom === undefined ? 0 : defaultValue.paddingBottom\n const defaultPaddingLeft = defaultValue.paddingLeft === undefined ? 0 : defaultValue.paddingLeft\n\n return props => css`\n ${cssMediaRules(\n [props.padding] as const,\n ([\n {\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n } = {} as ExtractResponsiveValue<PaddingValue>,\n ]) => css`\n padding-top: ${getPaddingSide(paddingTop || defaultPaddingTop)};\n padding-right: ${getPaddingSide(paddingRight || defaultPaddingRight)};\n padding-bottom: ${getPaddingSide(paddingBottom || defaultPaddingBottom)};\n padding-left: ${getPaddingSide(paddingLeft || defaultPaddingLeft)};\n `,\n )}\n `\n}\n\nconst defaultBorderSide = { width: 0, style: 'solid', color: null }\n\nconst getBorderSide = ({ width, style, color }: BorderSide) =>\n `${width != null ? width : 0}px ${style} ${color != null ? colorToString(color) : 'black'}`\n\nexport function cssBorder(\n defaultValue: {\n borderTop?: BorderSide\n borderRight?: BorderSide\n borderBottom?: BorderSide\n borderLeft?: BorderSide\n } = {},\n): (props: { border?: BorderPropControllerData | null | undefined }) => CSSRules {\n const defaultBorderTop =\n defaultValue.borderTop === undefined ? defaultBorderSide : defaultValue.borderTop\n const defaultBorderRight =\n defaultValue.borderRight === undefined ? defaultBorderSide : defaultValue.borderRight\n const defaultBorderBottom =\n defaultValue.borderBottom === undefined ? defaultBorderSide : defaultValue.borderBottom\n const defaultBorderLeft =\n defaultValue.borderLeft === undefined ? defaultBorderSide : defaultValue.borderLeft\n\n return props => css`\n ${cssMediaRules(\n [props.border] as const,\n ([\n {\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n } = {} as ExtractResponsiveValue<BorderPropControllerData>,\n ]) => css`\n border-top: ${getBorderSide(borderTop || defaultBorderTop)};\n border-right: ${getBorderSide(borderRight || defaultBorderRight)};\n border-bottom: ${getBorderSide(borderBottom || defaultBorderBottom)};\n border-left: ${getBorderSide(borderLeft || defaultBorderLeft)};\n `,\n )}\n `\n}\n\nfunction getBorderRadiusCorner(\n borderRadiusCorner: LengthValue | BorderRadiusProperty<string | number>,\n) {\n return typeof borderRadiusCorner === 'object'\n ? `${borderRadiusCorner.value}${borderRadiusCorner.unit}`\n : borderRadiusCorner\n}\n\nexport function cssBorderRadius(\n defaultValue: {\n borderTopLeftRadius?: LengthValue | BorderTopLeftRadiusProperty<string | number>\n borderTopRightRadius?: LengthValue | BorderTopRightRadiusProperty<string | number>\n borderBottomLeftRadius?: LengthValue | BorderBottomLeftRadiusProperty<string | number>\n borderBottomRightRadius?: LengthValue | BorderBottomRightRadiusProperty<string | number>\n } = {},\n): (props: { borderRadius?: BorderRadiusValue }) => CSSRules {\n const defaultBorderTopLeftRadius =\n defaultValue.borderTopLeftRadius === undefined ? 0 : defaultValue.borderTopLeftRadius\n const defaultBorderTopRightRadius =\n defaultValue.borderTopRightRadius === undefined ? 0 : defaultValue.borderTopRightRadius\n const defaultPaddingBottom =\n defaultValue.borderBottomLeftRadius === undefined ? 0 : defaultValue.borderBottomLeftRadius\n const defaultPaddingLeft =\n defaultValue.borderBottomRightRadius === undefined ? 0 : defaultValue.borderBottomRightRadius\n\n return props => css`\n ${cssMediaRules(\n [props.borderRadius] as const,\n ([\n {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n } = {} as ExtractResponsiveValue<BorderRadiusValue>,\n ]) => css`\n border-top-left-radius: ${getBorderRadiusCorner(\n borderTopLeftRadius || defaultBorderTopLeftRadius,\n )};\n border-top-right-radius: ${getBorderRadiusCorner(\n borderTopRightRadius || defaultBorderTopRightRadius,\n )};\n border-bottom-left-radius: ${getBorderRadiusCorner(\n borderBottomLeftRadius || defaultPaddingBottom,\n )};\n border-bottom-right-radius: ${getBorderRadiusCorner(\n borderBottomRightRadius || defaultPaddingLeft,\n )};\n `,\n )}\n `\n}\n\nconst getBoxShadow = (shadows: BoxShadowData) =>\n shadows\n .map(\n ({ payload: { inset, offsetX, offsetY, blurRadius, spreadRadius, color } }) =>\n `${inset ? 'inset ' : ''}${offsetX.toFixed(1)}px ${offsetY.toFixed(\n 1,\n )}px ${blurRadius}px ${spreadRadius}px ${\n color != null ? colorToString(color) : 'rgba(0,0,0,0.2)'\n }`,\n )\n .filter(Boolean)\n .join()\n\nexport function cssBoxShadow(\n defaultValue: BoxShadowData = [],\n): (props: { boxShadow?: BoxShadowPropControllerData | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules(\n [props.boxShadow] as const,\n ([boxShadow = defaultValue]) => css`\n box-shadow: ${getBoxShadow(boxShadow)};\n `,\n )}\n `\n}\n\nconst floor =\n (d: number) =>\n (v: number): number =>\n Math.floor(10 ** d * v) / 10 ** d\n\nexport function cssGridItem(): (props: {\n grid: ResponsiveValue<{ spans: Array<Array<number>>; count: number }>\n index: number\n columnGap?: ResponsiveValue<LengthValue>\n rowGap?: ResponsiveValue<LengthValue>\n}) => CSSRules {\n return props => css`\n display: flex;\n\n /* TODO: A default span of 12 won't work once the column count is modifiable. */\n ${cssMediaRules(\n [props.grid, props.columnGap, props.rowGap] as const,\n ([\n { spans, count } = { spans: [[12]], count: 12 },\n columnGap = { value: 0, unit: 'px' },\n rowGap = { value: 0, unit: 'px' },\n ]) => {\n const [rowIndex, columnIndex] = getIndexes(spans, props.index)\n const firstCol = columnIndex === 0\n const lastCol = columnIndex === spans[rowIndex].length - 1\n const span = spans[rowIndex][columnIndex]\n const fraction = floor(5)(span / count)\n const width = `${fraction} * (100% + ${columnGap.value}${columnGap.unit})`\n const excessWidth = `${Number(firstCol) + Number(lastCol)} * ${columnGap.value}${\n columnGap.unit\n } / 2`\n const iePrecisionError = '0.01px'\n const flexBasis = `calc(${width} - ${excessWidth} - ${iePrecisionError})`\n const firstRow = rowIndex === 0\n const lastRow = rowIndex === spans.length - 1\n\n return span === 0\n ? { display: 'none' }\n : {\n flexBasis,\n minWidth: flexBasis,\n // NOTE: IE11 width breaks without max width\n // https://github.com/philipwalton/flexbugs/issues/3\n maxWidth: flexBasis,\n paddingLeft: firstCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingRight: lastCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingTop: firstRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n paddingBottom: lastRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n }\n },\n )}\n `\n}\n\nexport function cssTextStyle(\n defaultValue: {\n fontFamily?: string | null | undefined\n letterSpacing: number | null | undefined\n fontSize: LengthValue | null | undefined\n fontWeight: number | null | undefined\n textTransform: Array<'uppercase'>\n fontStyle: Array<'italic'>\n } = {\n fontFamily: null,\n letterSpacing: null,\n fontSize: null,\n fontWeight: null,\n textTransform: [],\n fontStyle: [],\n },\n): (arg0: { textStyle?: TextStyleValue | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules([props.textStyle], ([textStyle = defaultValue]) => {\n const {\n fontSize,\n fontWeight,\n fontStyle = [],\n textTransform = [],\n letterSpacing,\n fontFamily,\n } = textStyle\n\n return css`\n ${fontFamily != null\n ? css`\n font-family: '${fontFamily}';\n `\n : ''};\n ${fontWeight != null\n ? css`\n font-weight: ${fontWeight};\n `\n : ''};\n ${letterSpacing != null\n ? css`\n letter-spacing: ${letterSpacing}px;\n `\n : ''};\n ${fontSize != null\n ? css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `\n : ''};\n ${textTransform.includes('uppercase')\n ? css`\n text-transform: uppercase;\n `\n : ''};\n ${fontStyle.includes('italic')\n ? css`\n font-style: italic;\n `\n : ''};\n `\n })}\n `\n}\n","const clamp = (min: number, val: number, max: number): number => Math.min(Math.max(min, val), max)\n\nexport default clamp\n","import { useState, useRef, useLayoutEffect, useCallback, ReactNode, CSSProperties } from 'react'\nimport clamp from '../../../../../utils/clamp'\n\nfunction isScrollable(element: HTMLElement) {\n const { overflow, overflowY, overflowX } =\n element.ownerDocument.defaultView!.getComputedStyle(element)\n\n return /(auto|scroll)/.test(overflow + overflowX + overflowY)\n}\n\nfunction getScrollParent(element: HTMLElement): HTMLElement {\n const { parentElement } = element\n\n if (!element || !parentElement) return element\n\n if (isScrollable(element)) return element\n\n return getScrollParent(parentElement)\n}\n\ntype Props = {\n strength: number | null | undefined\n children: (\n getParallaxProps: <P extends { style?: CSSProperties; [key: string]: unknown }>(props: P) => P,\n ) => ReactNode\n}\n\nexport default function Parallax({ strength, children, ...rest }: Props): JSX.Element {\n const container = useRef<HTMLDivElement>(null)\n const [containerScrollTop, setContainerScrollTop] = useState(strength == null ? 0 : strength)\n const lastScrollParentScrollTop = useRef(0)\n\n useLayoutEffect(() => {\n if (!container.current || strength == null || strength === 0) return undefined\n\n const containerDocument = container.current.ownerDocument\n const scrollParent = getScrollParent(container.current)\n const eventTarget =\n containerDocument.documentElement === scrollParent\n ? containerDocument.defaultView!\n : scrollParent\n\n lastScrollParentScrollTop.current = scrollParent.scrollTop\n setContainerScrollTop(strength)\n\n function handleScroll() {\n containerDocument.defaultView!.requestAnimationFrame(() => {\n if (!container.current) return\n\n const { top: containerTop, bottom: containerBottom } =\n container.current.getBoundingClientRect()\n const { top: scrollParentTop, bottom: scrollParentBottom } =\n scrollParent === containerDocument.documentElement\n ? { top: 0, bottom: containerDocument.defaultView!.innerHeight }\n : scrollParent.getBoundingClientRect()\n const { scrollTop: scrollParentScrollTop } =\n scrollParent === containerDocument.documentElement\n ? { scrollTop: containerDocument.defaultView!.pageYOffset }\n : scrollParent\n const scrollParentHeight = scrollParentBottom - scrollParentTop\n const scrollParentScrollDelta = scrollParentScrollTop - lastScrollParentScrollTop.current\n\n lastScrollParentScrollTop.current = scrollParentScrollTop\n\n setContainerScrollTop(scrollTop => {\n const isContainerVisible =\n containerTop < scrollParentTop + scrollParentHeight && containerBottom > scrollParentTop\n const containerScrollRemaining =\n scrollParentScrollDelta > 0 ? 2 * strength! - scrollTop : scrollTop\n const scrollParentScrollRemaining =\n scrollParentScrollDelta > 0\n ? scrollParentTop + containerBottom\n : scrollParentHeight - containerTop\n const parallaxRatio = containerScrollRemaining / scrollParentScrollRemaining\n const containerScrollDelta = isContainerVisible\n ? parallaxRatio * scrollParentScrollDelta\n : 0\n\n return clamp(0, scrollTop + containerScrollDelta, strength! * 2)\n })\n })\n }\n\n eventTarget.addEventListener('scroll', handleScroll)\n\n return () => eventTarget.removeEventListener('scroll', handleScroll)\n }, [strength])\n\n const getProps = useCallback(\n ({ style, ...restOfChildrenProps }) => ({\n ...restOfChildrenProps,\n style: {\n ...style,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n ...(strength == null || strength === 0\n ? {}\n : {\n top: -strength,\n bottom: -strength,\n transform: `translate3d(0, ${containerScrollTop - strength}px, 0)`,\n }),\n },\n }),\n [strength, containerScrollTop],\n )\n\n return (\n <div\n {...rest}\n ref={container}\n style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}\n >\n {children(getProps)}\n </div>\n )\n}\n","import { useState, useLayoutEffect, useRef } from 'react'\nimport ReactPlayer from 'react-player'\nimport styled from 'styled-components'\n\nconst Container = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n overflow: hidden;\n`\n\nconst Mask = styled.div<{ backgroundColor: string | undefined; visible: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${props => props.backgroundColor};\n opacity: ${props => (props.visible ? 1 : 0)};\n transition: opacity 1s;\n`\n\nconst getScale = (element: HTMLElement, aspectRatio: number, zoom: number) => {\n const { offsetWidth: width, offsetHeight: height } = element\n const computedAspectRatio = width / height\n\n return Math.max(aspectRatio / computedAspectRatio, computedAspectRatio / aspectRatio) * zoom\n}\n\ntype Props = {\n url?: string\n aspectRatio?: number\n zoom?: number\n opacity?: number\n maskColor?: string\n}\n\nexport default function BackgroundVideo({\n url = '',\n aspectRatio = 16 / 9,\n zoom = 1,\n maskColor,\n opacity,\n}: Props): JSX.Element {\n const [ready, setReady] = useState(false)\n const [scale, setScale] = useState(1)\n const container = useRef<HTMLDivElement>(null)\n\n useLayoutEffect(() => {\n const { current: containerEl } = container\n\n if (!containerEl) return undefined\n\n const { defaultView } = containerEl.ownerDocument\n const handleResize = () => setScale(getScale(containerEl, aspectRatio, zoom))\n\n handleResize()\n\n defaultView!.addEventListener('resize', handleResize)\n\n return () => defaultView!.removeEventListener('resize', handleResize)\n }, [aspectRatio, zoom])\n\n if (!ReactPlayer.canPlay(url)) return <></>\n\n return (\n <Container ref={container}>\n {container.current && (\n <ReactPlayer\n url={url}\n config={{\n vimeo: { playerOptions: { background: true } },\n youtube: {\n playerVars: {\n origin: container.current.ownerDocument.defaultView?.location.origin,\n },\n },\n wistia: {\n options: {\n endVideoBehavior: 'loop',\n playbackRateControl: false,\n playbar: false,\n playButton: false,\n volumeControl: false,\n fullscreenButton: false,\n muted: true,\n },\n },\n }}\n playing\n loop\n muted\n controls={false}\n onReady={() => setReady(true)}\n style={{\n transform: `scale3d(${scale}, ${scale}, 1)`,\n opacity,\n }}\n width=\"100%\"\n height=\"100%\"\n />\n )}\n <Mask backgroundColor={maskColor} visible={!ready} />\n </Container>\n )\n}\n","import styled, { css } from 'styled-components'\nimport NextImage from 'next/image'\n\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport { BackgroundsPropControllerData } from '../../../../hooks'\nimport { ResponsiveValue } from '../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport Parallax from '../Parallax'\nimport BackgroundVideo from '../BackgroundVideo'\n\nfunction getColor(color: Color | null | undefined) {\n if (color == null) return 'black'\n\n if (color.swatch == null) {\n return colorToString({ ...color, swatch: { hue: 0, saturation: 0, lightness: 0 } })\n }\n\n return colorToString(color)\n}\n\ntype GradientStop = { color: Color | null | undefined; location: number }\n\nconst getStopsStyle = (stops: GradientStop[]) =>\n stops.map(({ color, location }) => `${getColor(color)} ${location}%`).join(',')\n\ntype AspectRatio = 'wide' | 'standard'\n\nconst getAspectRatio = (aspectRatio: AspectRatio) => {\n switch (aspectRatio) {\n case 'wide':\n return 16 / 9\n case 'standard':\n return 4 / 3\n default:\n return 16 / 9\n }\n}\n\nconst AbsoluteFill = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n`\n\nconst Container = styled(AbsoluteFill)`\n border-radius: inherit;\n`\n\nconst BackgroundsContainer = styled(Container)<{ visibility: ResponsiveValue<boolean> }>`\n overflow: hidden;\n ${p =>\n cssMediaRules(\n [p.visibility],\n ([visibility]) => css`\n display: ${visibility === true ? 'block' : 'none'};\n `,\n )}\n`\n\ntype Props = { backgrounds: BackgroundsPropControllerData | null | undefined }\n\nexport default function Backgrounds({ backgrounds }: Props): JSX.Element {\n if (backgrounds == null) return <></>\n\n return (\n <>\n {backgrounds.map(({ value, deviceId }) => {\n const visibility = backgrounds.map(v => ({\n deviceId: v.deviceId,\n value: v.deviceId === deviceId,\n }))\n\n return (\n <BackgroundsContainer key={deviceId} visibility={visibility}>\n {[...value].reverse().map(bg => {\n if (bg.type === 'color') {\n return (\n <Container\n key={bg.id}\n style={{\n backgroundColor: getColor(bg.payload),\n }}\n />\n )\n }\n\n if (bg.type === 'image' && bg.payload) {\n const {\n publicUrl,\n position,\n repeat = 'no-repeat',\n size = 'cover',\n opacity,\n parallax,\n } = bg.payload\n const backgroundPosition = `${position.x}% ${position.y}%`\n\n if (repeat === 'no-repeat' && size !== 'auto' && publicUrl != null) {\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <div {...getParallaxProps({ style: { opacity, overflow: 'hidden' } })}>\n <NextImage\n src={publicUrl}\n layout=\"fill\"\n objectPosition={backgroundPosition}\n objectFit={size}\n />\n </div>\n )}\n </Parallax>\n )\n }\n\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <Container\n {...getParallaxProps({\n style: {\n backgroundImage: publicUrl != null ? `url('${publicUrl}')` : undefined,\n backgroundPosition,\n backgroundRepeat: repeat,\n backgroundSize: size,\n opacity,\n },\n })}\n />\n )}\n </Parallax>\n )\n }\n\n if (bg.type === 'gradient' && bg.payload) {\n const { angle, stops, isRadial } = bg.payload\n const gradient = `${getStopsStyle(stops)}`\n\n return (\n <Container\n key={bg.id}\n style={{\n background: isRadial\n ? `radial-gradient(${gradient})`\n : `linear-gradient(${angle}rad, ${gradient})`,\n }}\n />\n )\n }\n\n if (bg.type === 'video' && bg.payload) {\n const { url, aspectRatio, maskColor, zoom, opacity, parallax } = bg.payload\n\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <Container {...getParallaxProps({})}>\n <BackgroundVideo\n url={url}\n zoom={zoom}\n opacity={opacity}\n aspectRatio={getAspectRatio(aspectRatio)}\n maskColor={getColor(maskColor)}\n />\n </Container>\n )}\n </Parallax>\n )\n }\n\n return null\n })}\n </BackgroundsContainer>\n )\n })}\n </>\n )\n}\n","import {\n ReactElement,\n ElementType,\n forwardRef,\n Children,\n ComponentPropsWithoutRef,\n useImperativeHandle,\n useState,\n} from 'react'\nimport styled from 'styled-components'\nimport { motion } from 'framer-motion'\n\nimport Backgrounds from './components/Backgrounds'\nimport { BackgroundsValue as BackgroundsPropControllerValue } from '../../../prop-controllers/descriptors'\nimport { useBackgrounds } from '../../hooks'\nimport { Ref } from 'react'\n\nconst OuterContainer = styled(motion.div)`\n position: relative;\n width: 100%;\n margin: 0 auto;\n\n > * {\n border-radius: inherit;\n height: inherit;\n }\n\n > :last-child {\n position: relative;\n }\n`\n\ntype BaseProps = {\n backgrounds: BackgroundsPropControllerValue | null | undefined\n children: ReactElement<ElementType>\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof OuterContainer>, keyof BaseProps>\n\nexport default forwardRef<HTMLDivElement | null, Props>(function BackgroundsContainer(\n { backgrounds, children, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement | null>,\n) {\n const [handle, setHandle] = useState<HTMLDivElement | null>(null)\n\n useImperativeHandle(ref, () => handle, [handle])\n\n return (\n <OuterContainer {...restOfProps} ref={setHandle}>\n <Backgrounds backgrounds={useBackgrounds(backgrounds)} />\n {Children.only(children)}\n </OuterContainer>\n )\n})\n","import { forwardRef, Ref, useImperativeHandle, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport { motion } from 'framer-motion'\n\nimport { Element, ReactRuntime } from '../../../react'\nimport Placeholder from './components/Placeholder'\nimport {\n BoxAnimateIn,\n DEFAULT_BOX_ANIMATE_DELAY,\n DEFAULT_BOX_ANIMATE_DURATION,\n DEFAULT_ITEM_ANIMATE_DELAY,\n DEFAULT_ITEM_STAGGER_DURATION,\n useBoxAnimations,\n} from './animations'\nimport {\n BorderRadiusValue,\n ElementIDValue,\n WidthValue,\n MarginValue,\n PaddingValue,\n ResponsiveIconRadioGroupValue,\n GridValue,\n GapYValue,\n GapXValue,\n CheckboxValue,\n ResponsiveSelectValue,\n ResponsiveNumberValue,\n BackgroundsValue,\n BorderValue,\n ShadowsValue,\n} from '../../../prop-controllers/descriptors'\nimport {\n cssWidth,\n cssMargin,\n cssPadding,\n cssBorderRadius,\n cssGridItem,\n cssMediaRules,\n cssBorder,\n cssBoxShadow,\n} from '../../utils/cssMediaRules'\nimport { BoxModelHandle, parse, createBox } from '../../../box-model'\nimport BackgroundsContainer from '../../shared/BackgroundsContainer'\nimport {\n BorderPropControllerData,\n BoxShadowPropControllerData,\n useBorder,\n useBoxShadow,\n} from '../../hooks'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n backgrounds?: BackgroundsValue\n width?: WidthValue\n height?: ResponsiveIconRadioGroupValue<'auto' | 'stretch'>\n verticalAlign?: ResponsiveIconRadioGroupValue<\n 'flex-start' | 'center' | 'flex-end' | 'space-between'\n >\n margin?: MarginValue\n padding?: PaddingValue\n border?: BorderValue\n borderRadius?: BorderRadiusValue\n boxShadow?: ShadowsValue\n rowGap?: GapYValue\n columnGap?: GapXValue\n boxAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n boxAnimateDuration?: ResponsiveNumberValue\n boxAnimateDelay?: ResponsiveNumberValue\n itemAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n itemAnimateDuration?: ResponsiveNumberValue\n itemAnimateDelay?: ResponsiveNumberValue\n itemStaggerDuration?: ResponsiveNumberValue\n hidePlaceholder?: CheckboxValue\n children?: GridValue\n}\n\nconst StyledBackgroundsContainer = styled(BackgroundsContainer)<{\n width: Props['width']\n margin: Props['margin']\n borderRadius: Props['borderRadius']\n alignSelf: Props['height']\n}>`\n display: flex;\n ${cssWidth()}\n ${cssMargin()}\n ${cssBorderRadius()}\n ${props => cssMediaRules([props.alignSelf] as const, ([alignSelf = 'auto']) => ({ alignSelf }))}\n`\n\nconst Grid = styled(motion.div)<{\n padding: Props['padding']\n border: BorderPropControllerData | null | undefined\n boxShadow: BoxShadowPropControllerData | null | undefined\n alignContent: Props['verticalAlign']\n}>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n ${cssPadding()}\n ${cssBorder()}\n ${cssBoxShadow()}\n ${props =>\n cssMediaRules([props.alignContent] as const, ([alignContent = 'flex-start']) => ({\n alignContent,\n }))}\n`\nconst GridItem = styled(motion.div)<{\n grid: NonNullable<Props['children']>['columns']\n alignItems: Props['verticalAlign']\n index: number\n columnGap: Props['columnGap']\n rowGap: Props['rowGap']\n}>`\n display: flex;\n\n /* IE11 doesn't recognize space-between and treats it as stretch, so we fall back to flex-start */\n align-items: flex-start;\n ${cssGridItem()}\n ${props =>\n cssMediaRules([props.alignItems] as const, ([alignItems = 'flex-start']) => ({ alignItems }))}\n`\n\nconst Box = forwardRef(function Box(\n {\n id,\n backgrounds,\n width,\n height,\n margin,\n padding,\n border,\n children,\n borderRadius,\n boxShadow,\n rowGap,\n columnGap,\n hidePlaceholder,\n verticalAlign,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemStaggerDuration,\n }: Props,\n ref: Ref<BoxModelHandle>,\n) {\n const innerRef = useRef<HTMLDivElement | null>(null)\n const [boxElement, setBoxElement] = useState<HTMLElement | null>(null)\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n const paddingBoxElement = innerRef.current\n const borderBoxElement = innerRef.current\n const marginBoxElement = boxElement\n const borderBox = innerRef.current?.getBoundingClientRect()\n const paddingBoxComputedStyle =\n paddingBoxElement?.ownerDocument.defaultView?.getComputedStyle(paddingBoxElement)\n const borderBoxComputedStyle =\n borderBoxElement?.ownerDocument.defaultView?.getComputedStyle(borderBoxElement)\n const marginBoxComputedStyle =\n marginBoxElement?.ownerDocument.defaultView?.getComputedStyle(marginBoxElement)\n const padding = paddingBoxComputedStyle && {\n top: parse(paddingBoxComputedStyle.paddingTop),\n right: parse(paddingBoxComputedStyle.paddingRight),\n bottom: parse(paddingBoxComputedStyle.paddingBottom),\n left: parse(paddingBoxComputedStyle.paddingLeft),\n }\n const border = borderBoxComputedStyle && {\n top: parse(borderBoxComputedStyle.borderTopWidth),\n right: parse(borderBoxComputedStyle.borderRightWidth),\n bottom: parse(borderBoxComputedStyle.borderBottomWidth),\n left: parse(borderBoxComputedStyle.borderLeftWidth),\n }\n const margin = marginBoxComputedStyle && {\n top: parse(marginBoxComputedStyle.marginTop),\n right: parse(marginBoxComputedStyle.marginRight),\n bottom: parse(marginBoxComputedStyle.marginBottom),\n left: parse(marginBoxComputedStyle.marginLeft),\n }\n\n return borderBox ? createBox({ borderBox, padding, border, margin }) : null\n },\n }),\n [boxElement],\n )\n\n const borderData = useBorder(border)\n const boxShadowData = useBoxShadow(boxShadow)\n\n const { initial, animate, variants, transition, key } = useBoxAnimations({\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemStaggerDuration,\n boxElement,\n elements: children?.elements,\n })\n\n return (\n <StyledBackgroundsContainer\n ref={setBoxElement}\n id={id}\n backgrounds={backgrounds}\n width={width}\n margin={margin}\n borderRadius={borderRadius}\n alignSelf={height}\n animate={animate?.container}\n initial={initial?.container}\n variants={variants?.container}\n transition={transition?.container}\n key={key?.container}\n >\n <Grid\n ref={innerRef}\n padding={padding}\n border={borderData}\n boxShadow={boxShadowData}\n alignContent={verticalAlign}\n animate={animate?.parent}\n initial={initial?.parent}\n transition={transition?.parent}\n >\n {children && children.elements.length > 0 ? (\n children.elements.map((child, index) => (\n <GridItem\n key={child.key}\n grid={children.columns}\n index={index}\n columnGap={columnGap}\n rowGap={rowGap}\n alignItems={verticalAlign}\n variants={variants?.child}\n transition={transition?.child}\n >\n <Element element={child} />\n </GridItem>\n ))\n ) : (\n <Placeholder hide={hidePlaceholder} />\n )}\n </Grid>\n </StyledBackgroundsContainer>\n )\n})\n\nexport default Box\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Box, {\n type: './components/Box/index.js',\n label: 'Box',\n props: {\n id: Props.ElementID(),\n backgrounds: Props.Backgrounds(),\n width: Props.Width(),\n height: Props.ResponsiveIconRadioGroup({\n label: 'Height',\n options: [\n { value: 'auto', label: 'Auto', icon: 'HeightAuto16' },\n { value: 'stretch', label: 'Stretch', icon: 'HeightMatch16' },\n ],\n defaultValue: 'auto',\n }),\n verticalAlign: Props.ResponsiveIconRadioGroup({\n label: 'Align items',\n options: [\n { value: 'flex-start', label: 'Top', icon: 'VerticalAlignStart16' },\n { value: 'center', label: 'Middle', icon: 'VerticalAlignMiddle16' },\n { value: 'flex-end', label: 'Bottom', icon: 'VerticalAlignEnd16' },\n {\n value: 'space-between',\n label: 'Space between',\n icon: 'VerticalAlignSpaceBetween16',\n },\n ],\n defaultValue: 'flex-start',\n }),\n margin: Props.Margin(),\n padding: Props.Padding({\n preset: [\n {\n deviceId: 'desktop',\n value: {\n paddingTop: { value: 10, unit: 'px' },\n paddingRight: { value: 10, unit: 'px' },\n paddingBottom: { value: 10, unit: 'px' },\n paddingLeft: { value: 10, unit: 'px' },\n },\n },\n ],\n }),\n border: Props.Border(),\n borderRadius: Props.BorderRadius(),\n boxShadow: Props.Shadows(),\n rowGap: Props.GapY({\n // hidden: props.children == null,\n }),\n columnGap: Props.GapX({\n // hidden: props.children == null,\n }),\n boxAnimateType: Props.ResponsiveSelect({\n label: 'Animate box in',\n labelOrientation: 'vertical',\n options: [\n { value: 'none', label: 'None' },\n { value: 'fadeIn', label: 'Fade in' },\n { value: 'fadeRight', label: 'Fade right' },\n { value: 'fadeDown', label: 'Fade down' },\n { value: 'fadeLeft', label: 'Fade left' },\n { value: 'fadeUp', label: 'Fade up' },\n { value: 'blurIn', label: 'Blur in' },\n { value: 'scaleUp', label: 'Scale up' },\n { value: 'scaleDown', label: 'Scale down' },\n ],\n defaultValue: 'none',\n }),\n boxAnimateDuration: Props.ResponsiveNumber({\n label: 'Box duration',\n defaultValue: DEFAULT_BOX_ANIMATE_DURATION,\n min: 0.1,\n step: 0.05,\n suffix: 's',\n // hidden: isHiddenBasedOnBoxAnimation(props, device),\n }),\n boxAnimateDelay: Props.ResponsiveNumber({\n label: 'Box delay',\n defaultValue: DEFAULT_BOX_ANIMATE_DELAY,\n min: 0,\n step: 0.05,\n suffix: 's',\n // hidden: isHiddenBasedOnBoxAnimation(props, device),\n }),\n itemAnimateType: Props.ResponsiveSelect({\n label: 'Animate items in',\n labelOrientation: 'vertical',\n options: [\n { value: 'none', label: 'None' },\n { value: 'fadeIn', label: 'Fade in' },\n { value: 'fadeRight', label: 'Fade right' },\n { value: 'fadeDown', label: 'Fade down' },\n { value: 'fadeLeft', label: 'Fade left' },\n { value: 'fadeUp', label: 'Fade up' },\n { value: 'blurIn', label: 'Blur in' },\n { value: 'scaleUp', label: 'Scale up' },\n { value: 'scaleDown', label: 'Scale down' },\n ],\n defaultValue: 'none',\n }),\n itemAnimateDuration: Props.ResponsiveNumber({\n label: 'Items duration',\n defaultValue: DEFAULT_BOX_ANIMATE_DURATION,\n min: 0.1,\n step: 0.05,\n suffix: 's',\n // hidden: isHiddenBasedOnItemAnimation(props, device),\n }),\n itemAnimateDelay: Props.ResponsiveNumber({\n label: 'Items delay',\n defaultValue: DEFAULT_ITEM_ANIMATE_DELAY,\n min: 0,\n step: 0.05,\n suffix: 's',\n // hidden: isHiddenBasedOnItemAnimation(props, device),\n }),\n itemStaggerDuration: Props.ResponsiveNumber({\n label: 'Stagger',\n min: 0,\n step: 0.05,\n suffix: 's',\n defaultValue: DEFAULT_ITEM_STAGGER_DURATION,\n // hidden: isHiddenBasedOnItemAnimation(props, device),\n }),\n hidePlaceholder: Props.Checkbox({\n label: 'Hide placeholder',\n // hidden: props.children != null,\n }),\n children: Props.Grid(),\n },\n })\n}\n","import { ComponentPropsWithoutRef, forwardRef, MouseEvent } from 'react'\nimport scrollIntoView from 'scroll-into-view-if-needed'\nimport NextLink from 'next/link'\n\nimport { LinkValue as LinkPropControllerValue } from '../../../prop-controllers/descriptors'\nimport { usePage } from '../../hooks'\nimport { useElementId } from '../../../runtimes/react'\n\ntype BaseProps = {\n link?: LinkPropControllerValue\n onClick?: (event: MouseEvent<HTMLAnchorElement>) => unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<'a'>, keyof BaseProps>\n\nexport const Link = forwardRef<HTMLAnchorElement, Props>(function Link(\n { link, onClick = () => {}, ...restOfProps }: Props,\n ref,\n) {\n const page = usePage(link && link.type === 'OPEN_PAGE' ? link.payload.pageId : null)\n const elementKey =\n link?.type === 'SCROLL_TO_ELEMENT' ? link.payload.elementIdConfig?.elementKey : null\n const elementId = useElementId(elementKey)\n\n let href = ''\n let target: '_blank' | '_self' | undefined\n let block: 'start' | 'center' | 'end' | undefined\n\n if (link) {\n switch (link.type) {\n case 'OPEN_PAGE': {\n if (page) href = `/${page.pathname}`\n\n target = link.payload.openInNewTab ? '_blank' : '_self'\n\n break\n }\n\n case 'OPEN_URL': {\n href = link.payload.url\n\n target = link.payload.openInNewTab ? '_blank' : '_self'\n\n break\n }\n\n case 'SEND_EMAIL': {\n const { to, subject = '', body = '' } = link.payload\n\n if (to != null) href = `mailto:${to}?subject=${subject}&body=${body}`\n\n break\n }\n\n case 'CALL_PHONE': {\n href = `tel:${link.payload.phoneNumber}`\n\n break\n }\n\n case 'SCROLL_TO_ELEMENT': {\n href = `#${elementId ?? ''}`\n block = link.payload.block\n\n break\n }\n\n default:\n throw new RangeError(`Invalid link type \"${(link as any).type}.\"`)\n }\n }\n\n function handleClick(event: MouseEvent<HTMLAnchorElement>) {\n onClick(event)\n\n if (event.defaultPrevented) return\n\n /**\n * When we introduced `next/link` instead of just `a` element slate no longer prevented link from navigating within\n * content mode. This is a hack to compensate for what would be expected as slate's default behavior.\n * On upgrade of slate this can be reevaluated.\n */\n if (event.currentTarget.isContentEditable) return event.preventDefault()\n\n if (link && link.type === 'SCROLL_TO_ELEMENT') {\n let hash: string | undefined\n\n try {\n hash = new URL(`http://www.example.com/${href}`).hash\n } catch (error) {\n console.error(`Link received invalid href: ${href}`, error)\n }\n\n if (href != null && href === hash) {\n event.preventDefault()\n const view = event.view as unknown as Window\n\n scrollIntoView(view.document.querySelector(hash)!, {\n behavior: 'smooth',\n block,\n })\n\n if (view.location.hash !== hash) view.history.pushState({}, '', hash)\n }\n }\n }\n\n return (\n <NextLink href={href}>\n {/* eslint-disable-next-line */}\n <a {...restOfProps} ref={ref} target={target} onClick={handleClick} />\n </NextLink>\n )\n})\n","import { ReactElement, ComponentPropsWithoutRef, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport ColorHelper from 'color'\n\nimport { cssMediaRules, cssWidth, cssMargin, cssTextStyle } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n MarginValue,\n ResponsiveColorValue,\n TextInputValue,\n ResponsiveSelectValue,\n ResponsiveIconRadioGroupValue,\n TextStyleValue,\n LinkValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../utils/types'\nimport { colorToString } from '../../utils/colorToString'\nimport { Link } from '../../shared/Link'\nimport { useColor } from '../../hooks'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype ControllerProps = {\n id?: ElementIDValue\n children?: TextInputValue\n link?: LinkValue\n variant?: ResponsiveSelectValue<\n 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n >\n shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n color?: ResponsiveColorValue\n textColor?: ResponsiveColorValue\n textStyle?: TextStyleValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst StyledButton = styled(Link)<{\n width: ControllerProps['width']\n margin: ControllerProps['margin']\n variant: ControllerProps['variant']\n shape: ControllerProps['shape']\n size: ControllerProps['size']\n textColor: ResponsiveValue<Color> | null | undefined\n color: ResponsiveValue<Color> | null | undefined\n textStyle: ControllerProps['textStyle']\n}>`\n display: table;\n border: 0;\n outline: 0;\n user-select: none;\n cursor: pointer;\n font-family: inherit;\n text-decoration: none;\n text-align: center;\n ${cssWidth('auto')}\n ${cssMargin()}\n ${p =>\n cssMediaRules(\n [p.variant, p.shape, p.size, p.textColor, p.color] as const,\n ([\n variant = 'flat',\n shape = 'rounded',\n size = 'medium',\n textColor = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 },\n color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => {\n const fontSize = {\n value: { small: 12, medium: 14, large: 18 }[size],\n unit: 'px',\n }\n\n return css`\n color: ${colorToString(textColor)};\n border-radius: ${{ square: 0, rounded: 4, pill: 500 }[shape]}px;\n padding: ${{ small: '8px 12px', medium: '12px 16px', large: '16px 20px' }[size]};\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n\n ${{\n flat: css`\n background: ${colorToString(color)};\n border: none;\n transition: ${['color', 'background', 'border', 'box-shadow']\n .map(property => `${property} 0.15s ease-in-out`)\n .join(', ')};\n\n :hover {\n background: ${ColorHelper(colorToString(color)).darken(0.1).hex()};\n }\n\n :active {\n background: ${ColorHelper(colorToString(color)).darken(0.15).hex()};\n }\n `,\n outline: css`\n background: transparent;\n box-shadow: inset 0 0 0 2px ${colorToString(color)};\n transition: ${['color', 'background', 'box-shadow']\n .map(property => `${property} 0.15s ease-in-out`)\n .join(', ')};\n\n :hover {\n box-shadow: inset 0 0 0 2px ${ColorHelper(colorToString(color)).darken(0.1).hex()};\n color: ${ColorHelper(colorToString(color)).darken(0.1).hex()};\n }\n\n :active {\n box-shadow: inset 0 0 0 2px ${ColorHelper(colorToString(color)).darken(0.15).hex()};\n color: ${ColorHelper(colorToString(color)).darken(0.15).hex()};\n }\n `,\n shadow: css`\n background: ${colorToString(color)};\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.2);\n transition: ${['transform', 'box-shadow']\n .map(property => `${property} 0.18s`)\n .join(', ')};\n\n :hover {\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.3);\n transform: translateY(-1px);\n }\n\n :active {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 4px 6px -3px rgba(0, 0, 0, 0.3);\n transform: translateY(0px);\n }\n `,\n clear: css`\n background: transparent;\n border: none;\n\n :hover {\n color: ${ColorHelper(colorToString(textColor)).alpha(0.5).toString()};\n }\n\n :active {\n color: ${ColorHelper(colorToString(textColor)).alpha(0.6).toString()};\n }\n `,\n blocky: css`\n background: ${colorToString(color)};\n border-width: 1px;\n border-style: solid;\n border-color: ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n box-shadow: 0 4px ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n transition: ${['transform', 'box-shadow']\n .map(property => `${property} 0.1s`)\n .join(', ')};\n\n :hover {\n transform: translateY(2px);\n box-shadow: 0 2px ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n }\n\n :active {\n transform: translateY(4px);\n box-shadow: 0 0 ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n }\n `,\n bubbly: css`\n background: linear-gradient(\n 180deg,\n ${ColorHelper(colorToString(color)).lighten(0.05).hex()},\n ${ColorHelper(colorToString(color)).darken(0.3).saturate(0.05).hex()}\n );\n position: relative;\n z-index: 0;\n\n :before {\n position: absolute;\n content: '';\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: inherit;\n background: linear-gradient(\n 180deg,\n ${ColorHelper(colorToString(color)).lighten(0.2).hex()},\n ${ColorHelper(colorToString(color)).darken(0.2).saturate(0.05).hex()}\n );\n opacity: 0;\n transition: opacity 0.15s;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n :before {\n opacity: 0.25;\n }\n }\n `,\n skewed: css`\n position: relative;\n z-index: 0;\n\n :before {\n position: absolute;\n content: '';\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n background: ${colorToString(color)};\n transform: skewX(-12deg);\n border-radius: inherit;\n transition: transform 0.2s cubic-bezier(0.25, 0, 0.25, 1.75);\n }\n\n :hover:before {\n transform: skew(0deg);\n }\n\n :active:before {\n transform: skew(-8deg);\n }\n `,\n }[variant]}\n `\n },\n )}\n ${cssTextStyle()}\n`\n\ntype BaseProps = {\n id?: ControllerProps['id']\n children?: ReactElement | string\n link?: ControllerProps['link']\n variant?: ControllerProps['variant']\n shape?: ControllerProps['shape']\n size?: ControllerProps['size']\n textColor?: ControllerProps['textColor']\n color?: ControllerProps['color']\n textStyle?: ControllerProps['textStyle']\n width?: ControllerProps['width']\n margin?: ControllerProps['margin']\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof StyledButton>, keyof BaseProps>\n\nconst Button = forwardRef<HTMLAnchorElement, Props>(function Button(\n {\n id,\n children,\n link,\n variant,\n shape,\n size,\n textColor,\n color,\n textStyle,\n width,\n margin,\n ...restOfProps\n },\n ref,\n) {\n return (\n <StyledButton\n {...restOfProps}\n ref={ref}\n id={id}\n // @ts-expect-error: HTMLAnchorElement `color` attribute conflicts with prop\n color={useColor(color)}\n link={link}\n margin={margin}\n shape={shape}\n size={size}\n textColor={useColor(textColor)}\n textStyle={textStyle}\n variant={variant}\n width={width}\n >\n {children == null ? 'Button Text' : children}\n </StyledButton>\n )\n})\n\nexport default Button\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Button, {\n type: './components/Button/index.js',\n label: 'Button',\n props: {\n id: Props.ElementID(),\n children: Props.TextInput({ placeholder: 'Button text' }),\n link: Props.Link({\n defaultValue: {\n type: 'OPEN_PAGE',\n payload: {\n pageId: null,\n openInNewTab: false,\n },\n },\n }),\n variant: Props.ResponsiveSelect({\n label: 'Style',\n labelOrientation: 'horizontal',\n options: [\n { value: 'flat', label: 'Flat' },\n { value: 'outline', label: 'Outline' },\n { value: 'shadow', label: 'Floating' },\n { value: 'clear', label: 'Clear' },\n { value: 'blocky', label: 'Blocky' },\n { value: 'bubbly', label: 'Bubbly' },\n { value: 'skewed', label: 'Skewed' },\n ],\n defaultValue: 'flat',\n }),\n shape: Props.ResponsiveIconRadioGroup({\n label: 'Shape',\n options: [\n { label: 'Pill', value: 'pill', icon: 'ButtonPill16' },\n { label: 'Rounded', value: 'rounded', icon: 'ButtonRounded16' },\n { label: 'Square', value: 'square', icon: 'ButtonSquare16' },\n ],\n defaultValue: 'rounded',\n }),\n size: Props.ResponsiveIconRadioGroup({\n label: 'Size',\n options: [\n { label: 'Small', value: 'small', icon: 'SizeSmall16' },\n { label: 'Medium', value: 'medium', icon: 'SizeMedium16' },\n { label: 'Large', value: 'large', icon: 'SizeLarge16' },\n ],\n defaultValue: 'medium',\n }),\n color: Props.ResponsiveColor({\n placeholder: 'black',\n // hidden: findDeviceOverride<ButtonVariant>(variant, device)?.value === 'clear',\n }),\n textColor: Props.ResponsiveColor({\n label: 'Text color',\n placeholder: 'white',\n }),\n textStyle: Props.TextStyle(),\n width: Props.Width(),\n margin: Props.Margin(),\n },\n })\n}\n","export const placeholders = {\n image: {\n src: \"data:image/svg+xml,%3Csvg width='360' height='240' viewBox='0 0 360 240' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0)'%3E%3Cpath d='M0 0H360V240H0V0Z' fill='%23A1A8C2' fill-opacity='0.18'/%3E%3Cpath d='M260 59C260 78.33 244.33 94 225 94C205.67 94 190 78.33 190 59C190 39.67 205.67 24 225 24C244.33 24 260 39.67 260 59Z' fill='%23A1A8C2' fill-opacity='0.25'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M319 250H417L291.485 124.485C286.799 119.799 279.201 119.799 274.515 124.485L234 165L319 250Z' fill='%23A1A8C2' fill-opacity='0.25'/%3E%3Cpath d='M311 250L-89 250L102.515 58.4853C107.201 53.799 114.799 53.799 119.485 58.4853L311 250Z' fill='%23A1A8C2' fill-opacity='0.25'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0'%3E%3Cpath d='M0 0H360V240H0V0Z' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A\",\n dimensions: { width: 360, height: 240 },\n },\n}\n","import styled, { css } from 'styled-components'\nimport { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\n\nimport {\n BorderRadiusValue,\n BorderValue,\n ElementIDValue,\n ImageValue,\n LinkValue,\n MarginValue,\n PaddingValue,\n ResponsiveOpacityValue,\n ShadowsValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport {\n cssBorder,\n cssBorderRadius,\n cssBoxShadow,\n cssMargin,\n cssMediaRules,\n cssPadding,\n cssWidth,\n} from '../../utils/cssMediaRules'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport {\n BorderPropControllerData,\n BoxShadowPropControllerData,\n useBorder,\n useBoxShadow,\n useFile,\n} from '../../hooks'\nimport { placeholders } from '../../utils/placeholders'\nimport { ReactRuntime, useIsInBuilder } from '../../../react'\nimport { Link } from '../../shared/Link'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: MarginValue\n padding?: PaddingValue\n border?: BorderValue\n borderRadius?: BorderRadiusValue\n boxShadow?: ShadowsValue\n opacity?: ResponsiveOpacityValue\n placeholder?: { src: string; dimensions: { width: number; height: number } }\n className?: string\n}\n\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image()\n\n image.onload = () => resolve(image)\n image.onerror = reject\n image.src = src\n })\n}\n\nfunction imageSizes(width?: Props['width']): string {\n const baseDevice = DEVICES.find(device => device.maxWidth == null)\n const baseWidth = baseDevice && width && findDeviceOverride(width, baseDevice.id)\n const baseWidthSize =\n baseWidth == null || baseWidth.value.unit !== 'px' ? '100vw' : `${baseWidth.value.value}px`\n\n return DEVICES.map(device => {\n const override = findDeviceOverride(width, device.id)\n\n if (override == null || device.maxWidth == null || override.value.unit !== 'px') return null\n\n return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`\n })\n .filter((size): size is NonNullable<typeof size> => size != null)\n .reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize)\n}\n\nconst ImageContainer = styled.div<{\n width?: Props['width']\n margin?: Props['margin']\n padding?: Props['padding']\n border?: BorderPropControllerData | null | undefined\n borderRadius: Props['borderRadius']\n boxShadow?: BoxShadowPropControllerData | null | undefined\n opacity: Props['opacity']\n link?: Props['link']\n dimensions: { width: number; height: number }\n}>`\n line-height: 0;\n overflow: hidden;\n ${props => cssWidth(`${props.dimensions.width}px`)(props)}\n ${cssMargin()}\n ${cssPadding()}\n ${cssBorder()}\n ${cssBorderRadius()}\n ${cssBoxShadow()}\n ${p =>\n cssMediaRules(\n [p.opacity],\n ([opacity = 1]) => css`\n opacity: ${opacity};\n `,\n )}\n`\n\nconst UnoptimizedImage = styled.img`\n width: 100%;\n`\n\ntype Dimensions = {\n width: number\n height: number\n}\n\nconst ImageComponent = forwardRef(function Image(\n {\n id,\n width,\n margin,\n padding,\n file,\n border,\n borderRadius,\n altText,\n link,\n opacity,\n boxShadow,\n placeholder = placeholders.image,\n className,\n }: Props,\n ref: Ref<HTMLImageElement>,\n) {\n const fileData = useFile(file)\n const borderData = useBorder(border)\n const boxShadowData = useBoxShadow(boxShadow)\n const imageSrc = fileData?.publicUrl ? fileData.publicUrl : placeholder.src\n const dataDimensions = fileData?.publicUrl ? fileData?.dimensions : placeholder.dimensions\n const [measuredDimensions, setMeasuredDimensions] = useState<Dimensions | null>(null)\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (dataDimensions) return\n\n let cleanedUp = false\n\n loadImage(imageSrc)\n .then(image => {\n if (!cleanedUp) {\n setMeasuredDimensions({ width: image.naturalWidth, height: image.naturalHeight })\n }\n })\n .catch(console.error)\n\n return () => {\n cleanedUp = true\n }\n }, [dataDimensions, imageSrc])\n\n const dimensions = dataDimensions ?? measuredDimensions\n\n if (!dimensions) return null\n\n return (\n <ImageContainer\n as={link ? Link : 'div'}\n link={link}\n dimensions={dimensions}\n ref={ref}\n id={id}\n className={className}\n width={width}\n margin={margin}\n opacity={opacity}\n padding={padding}\n border={borderData}\n borderRadius={borderRadius}\n boxShadow={boxShadowData}\n >\n {isInBuilder ? (\n <UnoptimizedImage src={imageSrc} alt={altText} />\n ) : (\n <NextImage\n layout=\"responsive\"\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText}\n width={dimensions.width}\n height={dimensions.height}\n />\n )}\n </ImageContainer>\n )\n})\n\nexport default ImageComponent\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(ImageComponent, {\n type: './components/Image/index.js',\n label: 'Image',\n props: {\n id: Props.ElementID(),\n file: Props.Image(),\n altText: Props.TextInput({ label: 'Alt text' }),\n link: Props.Link({ label: 'On click' }),\n width: Props.Width(),\n margin: Props.Margin(),\n padding: Props.Padding(),\n border: Props.Border(),\n borderRadius: Props.BorderRadius(),\n boxShadow: Props.Shadows(),\n opacity: Props.ResponsiveOpacity(),\n },\n })\n}\n","import { useState, useRef, useEffect, useCallback, forwardRef, Ref } from 'react'\nimport styled, { css } from 'styled-components'\nimport { motion, useAnimation } from 'framer-motion'\nimport { useGesture } from 'react-use-gesture'\nimport { wrap } from '@popmotion/popcorn'\nimport uuid from 'uuid/v4'\n\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useColor, useMediaQuery } from '../../hooks'\n\nimport Image from '../Image'\nimport {\n ResponsiveValue,\n ElementIDValue,\n ImagesValue,\n MarginValue,\n ResponsiveNumberValue,\n WidthValue,\n ResponsiveIconRadioGroupValue,\n GapXValue,\n CheckboxValue,\n NumberValue,\n ResponsiveColorValue,\n BorderValue,\n BorderRadiusValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\nconst LeftChevron = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"14\" viewBox=\"0 0 10 14\">\n <path\n d=\"M7,13,1,7,7,1\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n)\n\nconst RightChevron = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"14\" viewBox=\"0 0 10 14\">\n <path\n d=\"M3,1,9,7,3,13\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n)\n\n// NOTE: We set height to 100% here to fix an issue on IE11 where the child height of a flex column extends too far\nconst Container = styled.div`\n position: relative;\n height: 100%;\n`\n\ntype Props = {\n id?: ElementIDValue\n images?: ImagesValue\n width?: WidthValue\n margin?: MarginValue\n pageSize?: ResponsiveNumberValue\n step?: ResponsiveNumberValue\n slideAlignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gap?: GapXValue\n autoplay?: CheckboxValue\n delay?: NumberValue\n showArrows?: CheckboxValue\n arrowPosition?: ResponsiveIconRadioGroupValue<'inside' | 'center' | 'outside'>\n arrowColor?: ResponsiveColorValue\n arrowBackground?: ResponsiveColorValue\n showDots?: CheckboxValue\n dotColor?: ResponsiveColorValue\n slideBorder?: BorderValue\n slideBorderRadius?: BorderRadiusValue\n}\n\nconst Wrapper = styled.div<{ width: Props['width']; margin: Props['margin'] }>`\n position: relative;\n display: flex;\n flex-direction: column;\n ${cssWidth('400px')}\n ${cssMargin()}\n\n &:focus {\n outline: 0;\n }\n`\n\nconst Arrow = styled.div<{ background?: ResponsiveValue<Color> | null }>`\n padding: 10px;\n border-radius: 50%;\n outline: 0;\n border: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n user-select: none;\n ${p =>\n cssMediaRules(\n [p.background] as const,\n ([background = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 }]) => css`\n background: ${colorToString(background)};\n `,\n )}\n\n svg {\n transition: transform 0.15s;\n stroke: currentColor;\n }\n`\n\nconst Slop = styled.div<{\n color?: ResponsiveValue<Color> | null\n}>`\n position: absolute;\n top: 0;\n bottom: 0;\n display: ${props => (props.hidden ? 'none' : 'flex')};\n align-items: center;\n cursor: pointer;\n z-index: 2;\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n color: ${colorToString(color)};\n `,\n )}\n`\n\nconst Slide = styled(motion.div)<{\n pageSize: Props['pageSize']\n alignItems: Props['slideAlignment']\n}>`\n display: flex;\n ${p =>\n cssMediaRules(\n [p.pageSize],\n ([pageSize = 1]) => css`\n flex-basis: ${100 / pageSize}%;\n max-width: ${100 / pageSize}%;\n min-width: ${100 / pageSize}%;\n `,\n )}\n\n ${p => cssMediaRules([p.alignItems], ([alignItems = 'center']) => ({ alignItems }))}\n`\n\nconst Reel = styled(motion.div)<{ gap: Props['gap'] }>`\n display: flex;\n position: relative;\n flex-wrap: nowrap;\n ${p =>\n cssMediaRules(\n [p.gap] as const,\n ([gap = { value: 0, unit: 'px' }]) => css`\n margin: 0 ${`${-gap.value / 2}${gap.unit}`};\n\n & > ${Slide} {\n padding: 0 ${`${gap.value / 2}${gap.unit}`};\n }\n `,\n )}\n`\n\nconst Page = styled(motion.div)`\n position: relative;\n width: 100%;\n`\n\nconst LeftSlop = styled(Slop)<{ position: Props['arrowPosition'] }>`\n ${p =>\n cssMediaRules([p.position] as const, ([position = 'inside']) => {\n switch (position) {\n case 'inside':\n return css`\n transform: translateX(8px);\n `\n case 'outside':\n return css`\n transform: translateX(calc(-100% - 8px));\n `\n default:\n return css`\n transform: translateX(calc(-50%));\n `\n }\n })}\n left: 0;\n\n &:hover > ${Arrow} {\n & > svg {\n transform: translateX(-2px);\n }\n }\n`\n\nconst RightSlop = styled(Slop)<{ position: Props['arrowPosition'] }>`\n ${p =>\n cssMediaRules([p.position] as const, ([position = 'inside']) => {\n switch (position) {\n case 'inside':\n return css`\n transform: translateX(-8px);\n `\n case 'outside':\n return css`\n transform: translateX(calc(100% + 8px));\n `\n default:\n return css`\n transform: translateX(calc(50%));\n `\n }\n })}\n right: 0;\n\n &:hover > ${Arrow} {\n & > svg {\n transform: translateX(2px);\n }\n }\n`\n\nconst ClipMask = styled.div`\n overflow: hidden;\n`\n\nconst Dots = styled.div<{ color?: ResponsiveValue<Color> | null }>`\n display: ${props => (props.hidden ? 'none' : 'flex')};\n justify-content: center;\n margin-top: 20px;\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n color: ${colorToString(color)};\n `,\n )}\n`\n\nconst Dot = styled.div<{ active: boolean }>`\n position: relative;\n margin: 0 6px;\n border-radius: 50%;\n cursor: pointer;\n width: 16px;\n height: 16px;\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n border-radius: 50%;\n transition: all 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n &::before {\n box-shadow: 0 0 0 2px currentColor;\n transform: translate3d(-50%, -50%, 0);\n width: ${props => (props.active ? 16 : 10)}px;\n height: ${props => (props.active ? 16 : 10)}px;\n }\n\n &::after {\n background: currentColor;\n transform: translate3d(-50%, -50%, 0) scale(${props => (props.active ? 1 : 0)});\n width: 10px;\n height: 10px;\n }\n\n &:hover::after {\n transform: translate3d(-50%, -50%, 0) scale(${props => (props.active ? 1 : 0.5)});\n }\n`\n\nconst SWIPE_THRESHOLD = 20\nconst swipePower = (dx: number, velocity: number) => dx * (1 + velocity)\n\nconst Carousel = forwardRef(function Carousel(\n {\n images = [],\n width,\n margin,\n pageSize: responsivePageSize,\n step: responsiveStep,\n gap,\n slideAlignment,\n showDots,\n showArrows,\n arrowPosition,\n arrowColor,\n arrowBackground,\n dotColor,\n autoplay = false,\n delay = 5,\n slideBorder,\n slideBorderRadius,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const [index, setIndex] = useState(0)\n const swipe = useRef(0)\n const startIndex = wrap(0, images.length, index)\n const pageSize = useMediaQuery(responsivePageSize) || 1\n const step = useMediaQuery(responsiveStep) || 1\n const endIndex = startIndex + pageSize\n const pageCount = Math.ceil((images.length - pageSize) / step + 1)\n const pageIndex = Math.ceil(startIndex / step)\n const isFirstPage = pageIndex === 0\n const isLastPage = pageIndex === pageCount - 1\n const paginate = useCallback(\n pageDistance => {\n if (pageDistance === 0) return\n\n const direction = pageDistance / Math.abs(pageDistance)\n const remaining = direction > 0 ? images.slice(endIndex) : images.slice(0, startIndex)\n const distance = direction * Math.min(remaining.length, step * Math.abs(pageDistance))\n\n setIndex(index + distance)\n },\n [images, index, startIndex, endIndex, step],\n )\n // @ts-expect-error: `useAnimation` types expect no arguments.\n const animation = useAnimation({ x: 0, transition: { type: 'spring', stiffness: 100 } })\n const bindPage = useGesture(\n {\n onDrag: ({ movement: [mx], delta: [dx], velocity }) => {\n animation.start({ x: mx })\n swipe.current = swipePower(dx, velocity)\n },\n onDragEnd: () => {\n animation.start({ x: 0 })\n\n if (swipe.current > SWIPE_THRESHOLD) paginate(1)\n else if (swipe.current < -SWIPE_THRESHOLD) paginate(-1)\n },\n },\n {\n drag: {\n axis: 'x',\n bounds: { left: 0, right: 0 },\n rubberband: true,\n },\n },\n )\n\n useEffect(() => {\n if (!autoplay || pageSize !== 0) setIndex(0)\n }, [autoplay, pageSize])\n\n useEffect(() => {\n if (!autoplay) return () => {}\n\n const intervalId = setInterval(() => (isLastPage ? setIndex(0) : paginate(1)), delay * 1000)\n\n return () => clearInterval(intervalId)\n }, [autoplay, delay, paginate, isLastPage])\n\n return (\n <Wrapper\n ref={ref}\n width={width}\n margin={margin}\n tabIndex={-1}\n onKeyDown={e => {\n switch (e.key) {\n case 'ArrowRight':\n paginate(1)\n break\n case 'ArrowLeft':\n paginate(-1)\n break\n default:\n }\n }}\n >\n <Container>\n <ClipMask>\n <Page {...bindPage()} animate={animation}>\n <Reel\n gap={gap}\n animate={{ x: `${-(100 / pageSize) * startIndex}%` }}\n transition={{\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n duration: 0.5,\n },\n }}\n >\n {images.map(({ props: imageProps, key }) => (\n <Slide\n id={key}\n key={key}\n pageSize={responsivePageSize}\n alignItems={slideAlignment}\n onMouseDown={e => e.preventDefault()}\n onClick={e => {\n if (swipe.current !== 0) e.preventDefault()\n }}\n >\n <Image\n width={[{ deviceId: 'desktop', value: { value: 100, unit: '%' } }]}\n file={imageProps.file}\n altText={imageProps.altText}\n link={imageProps.link}\n border={slideBorder}\n borderRadius={slideBorderRadius}\n />\n </Slide>\n ))}\n </Reel>\n </Page>\n </ClipMask>\n <LeftSlop\n onClick={() => paginate(-1)}\n position={arrowPosition}\n // @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop\n color={useColor(arrowColor)}\n hidden={!showArrows || isFirstPage}\n >\n <Arrow background={useColor(arrowBackground)}>\n <LeftChevron />\n </Arrow>\n </LeftSlop>\n <RightSlop\n onClick={() => paginate(1)}\n position={arrowPosition}\n // @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop\n color={useColor(arrowColor)}\n hidden={!showArrows || isLastPage}\n >\n <Arrow background={useColor(arrowBackground)}>\n <RightChevron />\n </Arrow>\n </RightSlop>\n </Container>\n {/* @ts-expect-error: HTMLDivElement attributes conflicts with `color` prop */}\n <Dots color={useColor(dotColor)} hidden={!showDots}>\n {Array.from({ length: pageCount }).map((_, i) => (\n <Dot key={i} active={i === pageIndex} onClick={() => paginate(i - pageIndex)} />\n ))}\n </Dots>\n </Wrapper>\n )\n})\n\nexport default Carousel\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Carousel, {\n type: './components/Carousel/index.js',\n label: 'Carousel',\n icon: 'Carousel40',\n props: {\n id: Props.ElementID(),\n images: Props.Images({\n preset: [\n { key: uuid(), props: {} },\n { key: uuid(), props: {} },\n { key: uuid(), props: {} },\n ],\n }),\n width: Props.Width({ defaultValue: { value: 400, unit: 'px' } }),\n margin: Props.Margin(),\n pageSize: Props.ResponsiveNumber({\n label: 'Images shown',\n defaultValue: 1,\n min: 1,\n // max: images?.length ?? 0,\n step: 1,\n }),\n step: Props.ResponsiveNumber({\n label: 'Step',\n defaultValue: 1,\n min: 1,\n // max: findDeviceOverride(pageSize, device)?.value ?? 1,\n step: 1,\n }),\n slideAlignment: Props.ResponsiveIconRadioGroup({\n label: 'Alignment',\n options: [\n { label: 'Top', value: 'flex-start', icon: 'VerticalAlignStart16' },\n { label: 'Middle', value: 'center', icon: 'VerticalAlignMiddle16' },\n { label: 'Bottom', value: 'flex-end', icon: 'VerticalAlignEnd16' },\n ],\n defaultValue: 'center',\n }),\n gap: Props.GapX({\n label: 'Gap',\n step: 5,\n defaultValue: { value: 0, unit: 'px' },\n }),\n autoplay: Props.Checkbox({ label: 'Autoplay' }),\n delay: Props.Number({\n label: 'Delay',\n preset: 5,\n min: 1,\n step: 0.1,\n suffix: 'seconds',\n // hidden: !props.autoplay,\n }),\n showArrows: Props.Checkbox({ preset: true, label: 'Show arrows' }),\n arrowPosition: Props.ResponsiveIconRadioGroup({\n label: 'Arrow position',\n options: [\n { label: 'Inside', value: 'inside', icon: 'ArrowInside16' },\n { label: 'Center', value: 'center', icon: 'ArrowCenter16' },\n { label: 'Outside', value: 'outside', icon: 'ArrowOutside16' },\n ],\n defaultValue: 'inside',\n // hidden: props.showArrows === false,\n }),\n arrowColor: Props.ResponsiveColor({\n label: 'Arrow color',\n placeholder: 'black',\n // hidden: props.showArrows === false,\n }),\n arrowBackground: Props.ResponsiveColor({\n label: 'Arrow background',\n placeholder: 'white',\n // hidden: props.showArrows === false,\n }),\n showDots: Props.Checkbox({ preset: true, label: 'Show dots' }),\n dotColor: Props.ResponsiveColor({\n label: 'Dot color',\n placeholder: 'black',\n // hidden: props.showDots === false,\n }),\n slideBorder: Props.Border(),\n slideBorderRadius: Props.BorderRadius(),\n },\n })\n}\n","import { useState, useEffect, Ref, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { useColor } from '../../hooks'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n DateValue,\n ElementIDValue,\n FontValue,\n GapXValue,\n MarginValue,\n ResponsiveColorValue,\n ResponsiveIconRadioGroupValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n date?: DateValue\n variant?: ResponsiveIconRadioGroupValue<\n 'filled' | 'filled-split' | 'outline' | 'outline-split' | 'clear'\n >\n shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n gap?: GapXValue\n numberFont?: FontValue\n numberColor?: ResponsiveColorValue\n blockColor?: ResponsiveColorValue\n labelFont?: FontValue\n labelColor?: ResponsiveColorValue\n width?: WidthValue\n margin?: MarginValue\n daysLabel?: TextInputValue\n hoursLabel?: TextInputValue\n minutesLabel?: TextInputValue\n secondsLabel?: TextInputValue\n}\n\nconst Block = styled.div`\n display: block;\n padding: 0.5em;\n font-size: 1em;\n`\n\nconst Label = styled.div`\n margin-top: 0.25em;\n`\n\nconst Segment = styled.div`\n flex: 1;\n text-align: center;\n`\n\nconst Container = styled.div<{\n width: Props['width']\n margin: Props['margin']\n variant: Props['variant']\n size: Props['size']\n shape: Props['shape']\n gap: Props['gap']\n labelColor?: ResponsiveValue<Color> | null\n numberFont?: ResponsiveValue<string>\n numberColor?: ResponsiveValue<Color> | null\n blockColor?: ResponsiveValue<Color> | null\n labelFont?: ResponsiveValue<string>\n}>`\n display: flex;\n ${cssWidth('560px')}\n ${cssMargin()}\n ${p =>\n cssMediaRules([p.size] as const, ([size = 'medium']) => {\n switch (size) {\n case 'small':\n return css`\n font-size: 18px;\n\n ${Label} {\n font-size: 14px;\n }\n `\n case 'large':\n return css`\n font-size: 32px;\n\n ${Label} {\n font-size: 18px;\n }\n `\n default:\n return css`\n font-size: 24px;\n\n ${Label} {\n font-size: 16px;\n }\n `\n }\n })}\n\n ${Segment} {\n ${p =>\n cssMediaRules(\n [p.gap] as const,\n ([gap]) => css`\n margin: 0 ${gap == null ? 0 : `${gap.value / 2}${gap.unit}`};\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n `,\n )}\n }\n\n ${Block} {\n ${p =>\n cssMediaRules([p.shape] as const, ([shape = 'rounded']) => {\n switch (shape) {\n case 'pill':\n return css`\n border-radius: 500px;\n `\n case 'rounded':\n return css`\n border-radius: 6px;\n `\n default:\n return css`\n border-radius: 0;\n `\n }\n })}\n ${p =>\n cssMediaRules(\n [p.variant, p.blockColor, p.numberColor, p.numberFont] as const,\n ([\n variant = 'filled',\n blockColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n numberColor = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 },\n numberFont = 'sans-serif',\n ]) => {\n switch (variant) {\n case 'filled':\n return css`\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n background: ${colorToString(blockColor)};\n `\n case 'filled-split':\n return css`\n position: relative;\n color: ${colorToString(numberColor)};\n font-family: '${numberFont}';\n\n > span {\n position: relative;\n z-index: 1;\n }\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: calc(50% + 1px);\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n background: ${colorToString(blockColor)};\n }\n\n :after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: calc(50% + 1px);\n bottom: 0;\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit;\n background: ${colorToString(blockColor)};\n }\n `\n case 'outline':\n return css`\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n background: transparent;\n border: 2px solid ${colorToString(blockColor)};\n `\n case 'outline-split':\n return css`\n position: relative;\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n border: 2px solid ${colorToString(blockColor)};\n\n > span {\n position: relative;\n z-index: 1;\n }\n\n :before {\n content: '';\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 2px;\n margin-top: -1px;\n background: ${colorToString(blockColor)};\n }\n `\n default:\n return css`\n font-family: '${numberFont}';\n background: transparent;\n color: ${colorToString(numberColor)};\n padding-top: 0;\n padding-bottom: 0;\n `\n }\n },\n )}\n }\n\n ${Label} {\n ${p =>\n cssMediaRules(\n [p.labelColor, p.labelFont] as const,\n ([\n labelColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n labelFont = 'sans-serif',\n ]) => css`\n font-family: '${labelFont}';\n color: ${colorToString(labelColor)};\n `,\n )}\n }\n`\n\nconst getRemaining = (date: Props['date'] | undefined) => {\n if (date == null) return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n\n const timeDiff = new Date(date).getTime() - Date.now()\n\n if (timeDiff <= 0) return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n\n let delta = Math.abs(timeDiff) / 1000\n\n const days = Math.floor(delta / 86400)\n delta -= days * 86400\n\n const hours = Math.floor(delta / 3600) % 24\n delta -= hours * 3600\n\n const minutes = Math.floor(delta / 60) % 60\n delta -= minutes * 60\n\n const seconds = parseInt(String(delta % 60), 10)\n\n return { days, hours, minutes, seconds }\n}\n\nconst Countdown = forwardRef(function Countdown(\n {\n id,\n margin,\n width,\n date,\n variant,\n size,\n shape,\n gap,\n labelColor,\n labelFont,\n numberColor,\n numberFont,\n blockColor,\n daysLabel,\n hoursLabel,\n minutesLabel,\n secondsLabel,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const [{ days, hours, minutes, seconds }, setRemaining] = useState(getRemaining(date))\n\n useEffect(() => {\n setRemaining(getRemaining(date))\n\n const intervalId = setInterval(() => {\n setRemaining(getRemaining(date))\n }, 1000)\n\n return () => clearInterval(intervalId)\n }, [date])\n\n return (\n <Container\n ref={ref}\n id={id}\n width={width}\n margin={margin}\n variant={variant}\n size={size}\n shape={shape}\n labelColor={useColor(labelColor)}\n labelFont={labelFont}\n numberColor={useColor(numberColor)}\n numberFont={numberFont}\n blockColor={useColor(blockColor)}\n gap={gap}\n >\n <Segment>\n <Block>\n <span>{days}</span>\n </Block>\n <Label>{daysLabel == null ? 'Days' : daysLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{hours}</span>\n </Block>\n <Label>{hoursLabel == null ? 'Hours' : hoursLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{minutes}</span>\n </Block>\n <Label>{minutesLabel == null ? 'Minutes' : minutesLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{seconds}</span>\n </Block>\n <Label>{secondsLabel == null ? 'Seconds' : secondsLabel}</Label>\n </Segment>\n </Container>\n )\n})\n\nexport default Countdown\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Countdown, {\n type: './components/Countdown/index.js',\n label: 'Countdown',\n icon: 'Countdown40',\n props: {\n id: Props.ElementID(),\n // TODO: Make this a function\n date: Props.Date({\n preset: new Date(Date.now() + 1000 * 60 * 60 * 24 * 2).toISOString(),\n }),\n variant: Props.ResponsiveIconRadioGroup({\n label: 'Style',\n options: [\n { label: 'Filled', value: 'filled', icon: 'CountdownSolid16' },\n {\n label: 'Filled split',\n value: 'filled-split',\n icon: 'CountdownSolidSplit16',\n },\n { label: 'Outline', value: 'outline', icon: 'CountdownOutline16' },\n {\n label: 'Outline split',\n value: 'outline-split',\n icon: 'CountdownOutlineSplit16',\n },\n { label: 'Clear', value: 'clear', icon: 'CountdownNaked16' },\n ],\n defaultValue: 'filled',\n }),\n shape: Props.ResponsiveIconRadioGroup({\n label: 'Shape',\n options: [\n { label: 'Pill', value: 'pill', icon: 'ButtonPill16' },\n { label: 'Rounded', value: 'rounded', icon: 'ButtonRounded16' },\n { label: 'Square', value: 'square', icon: 'ButtonSquare16' },\n ],\n defaultValue: 'rounded',\n }),\n size: Props.ResponsiveIconRadioGroup({\n label: 'Size',\n options: [\n { label: 'Small', value: 'small', icon: 'SizeSmall16' },\n { label: 'Medium', value: 'medium', icon: 'SizeMedium16' },\n { label: 'Large', value: 'large', icon: 'SizeLarge16' },\n ],\n defaultValue: 'medium',\n }),\n gap: Props.GapX({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Gap',\n step: 1,\n min: 0,\n max: 100,\n defaultValue: { value: 0, unit: 'px' },\n }),\n numberFont: Props.Font({ label: 'Number font' }),\n numberColor: Props.ResponsiveColor({\n label: 'Number color',\n placeholder: 'white',\n }),\n blockColor: Props.ResponsiveColor({\n label: 'Block color',\n placeholder: 'black',\n }),\n labelFont: Props.Font({ label: 'Label font' }),\n labelColor: Props.ResponsiveColor({\n label: 'Label color',\n placeholder: 'black',\n }),\n width: Props.Width({ defaultValue: { value: 560, unit: 'px' } }),\n margin: Props.Margin(),\n daysLabel: Props.TextInput({ label: 'Days label', placeholder: 'Days' }),\n hoursLabel: Props.TextInput({ label: 'Hours label', placeholder: 'Hours' }),\n minutesLabel: Props.TextInput({\n label: 'Minutes label',\n placeholder: 'Minutes',\n }),\n secondsLabel: Props.TextInput({\n label: 'Seconds label',\n placeholder: 'Seconds',\n }),\n },\n })\n}\n","import { forwardRef, Ref } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n MarginValue,\n ResponsiveColorValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useColor } from '../../hooks'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype DividerVariant = 'solid' | 'dashed' | 'dotted' | 'blended'\n\ntype Props = {\n id?: ElementIDValue\n variant?: ResponsiveSelectValue<DividerVariant>\n thickness?: ResponsiveLengthValue\n color?: ResponsiveColorValue\n width?: WidthValue\n margin?: MarginValue\n}\n\n// IE11 has a bug with Flexbox vertical centering with min height if height is not set.\n// Wrapping it in another flex container fixes it for some reason, read more here:\n// https://stackoverflow.com/questions/19371626/flexbox-not-centering-vertically-in-ie\nconst IE11MinHeightContainer = styled.div<{ width: Props['width']; margin: Props['margin'] }>`\n display: flex;\n width: 100%;\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 40px;\n width: 100%;\n`\n\nconst Line = styled.div<{\n variant: Props['variant']\n color?: ResponsiveValue<Color> | null\n thickness: Props['thickness']\n}>`\n ${p =>\n cssMediaRules(\n [p.variant, p.thickness, p.color] as const,\n ([\n variant = 'solid',\n thickness = { value: 1, unit: 'px' },\n color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => {\n switch (variant) {\n case 'solid':\n case 'dashed':\n case 'dotted':\n return css`\n border-bottom-width: ${thickness == null\n ? '1px'\n : `${thickness.value}${thickness.unit}`};\n border-bottom-style: ${variant};\n border-bottom-color: ${colorToString(color)};\n `\n\n case 'blended':\n return css`\n height: ${`${thickness.value}${thickness.unit}`};\n background: linear-gradient(\n ${[\n '90deg',\n colorToString({ swatch: color.swatch, alpha: 0 }),\n colorToString(color),\n colorToString({ swatch: color.swatch, alpha: 0 }),\n ].join(', ')}\n );\n `\n\n default:\n variant as never\n throw new Error(`Invalid variant ${variant}.`)\n }\n },\n )}\n`\n\nconst Divider = forwardRef(function Divider(\n { id, variant, thickness, color, width, margin }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <IE11MinHeightContainer ref={ref} id={id} width={width} margin={margin}>\n <Container>\n {/* @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop */}\n <Line variant={variant} thickness={thickness} color={useColor(color)} />\n </Container>\n </IE11MinHeightContainer>\n )\n})\n\nexport default Divider\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Divider, {\n type: './components/Divider/index.js',\n label: 'Divider',\n icon: 'Divider40',\n props: {\n id: Props.ElementID(),\n variant: Props.ResponsiveSelect({\n label: 'Style',\n labelOrientation: 'horizontal',\n options: [\n { value: 'solid', label: 'Solid' },\n { value: 'dashed', label: 'Dashed' },\n { value: 'dotted', label: 'Dotted' },\n { value: 'blended', label: 'Blended' },\n ],\n defaultValue: 'solid',\n }),\n thickness: Props.ResponsiveLength({\n label: 'Height',\n defaultValue: { value: 1, unit: 'px' },\n options: [{ value: 'px', label: 'Pixels', icon: 'Px16' }],\n }),\n color: Props.ResponsiveColor({ placeholder: 'black' }),\n width: Props.Width({ defaultValue: { value: 100, unit: '%' } }),\n margin: Props.Margin(),\n },\n })\n}\n","/* eslint-env browser */\n\nimport { useState, useEffect, useLayoutEffect, forwardRef, Ref, useImperativeHandle } from 'react'\nimport styled from 'styled-components'\n\nimport { cssMargin, cssWidth } from '../../utils/cssMediaRules'\nimport {\n ElementIDValue,\n MarginValue,\n TextAreaValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../react'\n\ntype Props = {\n id?: ElementIDValue\n html?: TextAreaValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst Container = styled.div<{ width: Props['width']; margin: Props['margin'] }>`\n min-height: 15px;\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst defaultHtml = `<div style=\"padding: 24px; background-color: rgba(161, 168, 194, 0.18); overflow: hidden;\">\n<svg width=\"316\" height=\"168\" viewBox=\"0 0 316 168\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"70\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"78\" width=\"30\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"116\" width=\"78\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect y=\"20\" width=\"120\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"128\" y=\"20\" width=\"30\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"166\" y=\"20\" width=\"78\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect y=\"60\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"20\" y=\"80\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"40\" y=\"100\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"88\" y=\"100\" width=\"110\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"206\" y=\"100\" width=\"24\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"238\" y=\"100\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"40\" y=\"120\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"88\" y=\"120\" width=\"50\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"146\" y=\"120\" width=\"24\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"178\" y=\"120\" width=\"90\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"276\" y=\"120\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"20\" y=\"140\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect y=\"160\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n</svg>\n</div>`\nconst SCRIPT_TAG = 'script'\n\nconst Embed = forwardRef(function Embed(\n { id, width, margin, html = defaultHtml }: Props,\n ref: Ref<HTMLDivElement | null>,\n) {\n const [container, setContainer] = useState<HTMLDivElement | null>(null)\n const [shouldRender, setShouldRender] = useState(false)\n\n useLayoutEffect(() => {\n setShouldRender(true)\n }, [])\n\n useImperativeHandle(ref, () => container, [container])\n\n useEffect(() => {\n // TODO: When we SSR the editor, we can remove the editor check\n // and not run this effect on the first render.\n if (!container) return\n\n const walker = container.ownerDocument.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node: Element) {\n return node.tagName.toLowerCase() === SCRIPT_TAG\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_REJECT\n },\n })\n\n const nodes: Element[] = []\n\n while (walker.nextNode()) nodes.push(walker.currentNode as Element)\n\n // By default scripts appended dynamically will execute asyncrhonously. Here we ensure that\n // scripts are loaded synchronously since that's what a user usually expects with scripts in\n // embedded in HTML which usually comes from the server.\n //\n // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#notes\n async function executeScriptsInOrder() {\n for (let i = 0; i < nodes.length; i++) {\n await new Promise<void>(resolve => {\n const node = nodes[i]\n const script = node.ownerDocument.createElement(SCRIPT_TAG)\n\n script.textContent = node.textContent\n Array.from(node.attributes).forEach(({ name, value }) => {\n script.setAttribute(name, value)\n })\n\n script.onload = () => resolve()\n script.onerror = () => resolve()\n\n node.parentNode?.insertBefore(script, node)\n node.parentNode?.removeChild(node)\n\n if (!script.hasAttribute('src')) resolve()\n })\n }\n }\n\n executeScriptsInOrder().catch(error => {\n // Ignore errors from user-provided code\n console.error(error)\n })\n }, [container, html])\n\n if (shouldRender === false) return null\n\n return (\n <Container\n ref={setContainer}\n id={id}\n margin={margin}\n width={width}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n )\n})\n\nexport default Embed\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Embed, {\n type: './components/Embed/index.js',\n label: 'Embed',\n icon: 'Code40',\n props: {\n id: Props.ElementID(),\n html: Props.TextArea({ label: 'Code', rows: 20 }),\n width: Props.Width(),\n margin: Props.Margin(),\n },\n })\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+CiAgPHBhdGggZD0iTTI3IDE1SDFhMSAxIDAgMCAxLTEtMSAxIDEgMCAwIDEgMS0xaDI2YTEgMSAwIDAgMSAxIDEgMSAxIDAgMCAxLTEgMXptMC0xMEgxYTEgMSAwIDAgMC0xIDEgMSAxIDAgMCAwIDEgMWgyNmExIDEgMCAwIDAgMS0xIDEgMSAwIDAgMC0xLTF6bTAgMTZIMWExIDEgMCAwIDAtMSAxIDEgMSAwIDAgMCAxIDFoMjZhMSAxIDAgMCAwIDEtMSAxIDEgMCAwIDAtMS0xeiIvPgo8L3N2Zz4=\"","import styled, { css } from 'styled-components'\n\nimport { ResponsiveValue, Length } from '../../../prop-controllers/descriptors'\nimport { cssMediaRules } from '../../utils/cssMediaRules'\n\nconst GutterContainer = styled.div<{\n gutter?: ResponsiveValue<Length>\n first: boolean\n last: boolean\n}>`\n ${p =>\n cssMediaRules(\n [p.gutter],\n ([gutter = { value: 0, unit: 'px' }]) => css`\n padding-left: ${p.first ? '0px' : `${gutter.value / 2}${gutter.unit}`};\n padding-right: ${p.last ? '0px' : `${gutter.value / 2}${gutter.unit}`};\n `,\n )}\n`\n\nexport default GutterContainer\n","import styled from 'styled-components'\n\nimport { ResponsiveLengthValue } from '../../../../../prop-controllers/descriptors'\nimport GutterContainer from '../../../../shared/GutterContainer'\n\nconst PlaceholderLink = styled.div<{ width: number; button?: boolean }>`\n width: ${props => props.width}px;\n height: ${props => (props.button === true ? 32 : 8)}px;\n background-color: #a1a8c2;\n border-radius: ${props => (props.button === true ? 6 : 2)}px;\n opacity: 0.4;\n`\n\ntype Props = { gutter?: ResponsiveLengthValue }\n\nconst links = [{ width: 50 }, { width: 70 }, { width: 60 }, { width: 80, button: true }]\n\nexport default function LinksPlaceholder({ gutter }: Props): JSX.Element {\n return (\n <>\n {links.map((link, i) => (\n <GutterContainer key={i} gutter={gutter} first={i === 0} last={i === links.length - 1}>\n <PlaceholderLink {...link} />\n </GutterContainer>\n ))}\n </>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xIDJhMSAxIDAgMCAwLS43MDcgMS43MDdsMyAzYTEgMSAwIDAgMCAxLjQxNCAwbDMtM0ExIDEgMCAwIDAgNyAySDF6Ii8+PC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00IDBhMSAxIDAgMCAwLTEgMXYySDFhMSAxIDAgMSAwIDAgMmgydjJhMSAxIDAgMCAwIDIgMFY1aDJhMSAxIDAgMCAwIDAtMkg1VjFhMSAxIDAgMCAwLTEtMXoiLz48L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik01IDFhMSAxIDAgMCAwLTIgMHYzLjU4NmwtLjI5My0uMjkzYTEgMSAwIDAgMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMCAwIDEuNDE0IDBsMi0yYTEgMSAwIDAgMC0xLjQxNC0xLjQxNEw1IDQuNTg2VjF6Ii8+PC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNLjI5MyAyLjI5M2ExIDEgMCAwIDEgMS40MTQgMEw0IDQuNTg2bDIuMjkzLTIuMjkzYTEgMSAwIDAgMSAxLjQxNCAxLjQxNGwtMyAzYTEgMSAwIDAgMS0xLjQxNCAwbC0zLTNhMSAxIDAgMCAxIDAtMS40MTR6Ii8+PC9zdmc+\"","import { ComponentPropsWithoutRef, useRef, useState, useLayoutEffect } from 'react'\nimport styled, { css, keyframes } from 'styled-components'\n\nimport { ReactComponent as CaretDown8 } from '../../../../icons/caret-down-8.svg'\nimport { ReactComponent as Plus8 } from '../../../../icons/plus-8.svg'\nimport { ReactComponent as ArrowDown8 } from '../../../../icons/arrow-down-8.svg'\nimport { ReactComponent as ChevronDown8 } from '../../../../icons/chevron-down-8.svg'\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ResponsiveColorValue,\n TextStyleValue,\n LinkValue,\n} from '../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport { useColor } from '../../../../hooks'\n\nimport { Link } from '../../../../shared/Link'\nimport Button from '../../../Button'\n\nconst DROP_DOWN_MENU_WIDTH = 200\n\ntype Position = 'left' | 'right'\n\nconst DropDownMenu = styled.div<{ position: Position }>`\n position: absolute;\n top: 100%;\n left: ${props => (props.position === 'left' ? 0 : 'auto')};\n right: ${props => (props.position === 'right' ? 0 : 'auto')};\n background: #fff;\n margin: 0;\n padding: 8px 0;\n border-radius: 4px;\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);\n width: ${DROP_DOWN_MENU_WIDTH}px;\n z-index: 99;\n list-style: none;\n overflow: hidden;\n transform-origin: 50% 0;\n will-change: transform, opacity;\n transform-style: preserve-3d;\n display: none;\n`\n\nconst dropIn = keyframes`\n 0% {\n opacity: 0;\n transform: rotateX(-20deg);\n }\n 100% {\n opacity: 1;\n transform: none;\n }\n`\n\nconst DropDownContainer = styled.div`\n position: relative;\n\n &:hover > ${DropDownMenu} {\n display: block;\n animation: ${dropIn} 0.25s;\n }\n`\n\nconst StyledDropDownItem = styled(Link)<{\n color?: ResponsiveValue<Color> | null\n textStyle?: TextStyleValue\n}>`\n display: block;\n text-decoration: none;\n line-height: 1.4;\n padding: 8px 16px;\n color: black;\n background-color: transparent;\n transition: background-color 0.2s;\n ${p =>\n cssMediaRules([p.color, p.textStyle] as const, ([color, textStyle = {}]) => {\n const fontSize = textStyle.fontSize || { value: 14, unit: 'px' }\n const fontWeight = textStyle.fontWeight == null ? 'normal' : textStyle.fontWeight\n const fontStyle = textStyle.fontStyle || []\n const letterSpacing = textStyle.letterSpacing == null ? null : textStyle.letterSpacing\n const textTransform = textStyle.textTransform || []\n\n return css`\n color: ${color == null ? 'black' : colorToString(color)};\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n font-weight: ${fontWeight};\n font-style: ${fontStyle.includes('italic') ? 'italic' : 'normal'};\n letter-spacing: ${letterSpacing == null ? 'normal' : `${letterSpacing}px`};\n text-transform: ${textTransform.includes('uppercase') ? 'uppercase' : 'none'};\n `\n })}\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.04);\n }\n`\n\ntype BaseDropDownItemProps = {\n color?: ResponsiveColorValue\n textStyle?: TextStyleValue\n}\n\ntype DropDownItemProps = BaseDropDownItemProps &\n Omit<ComponentPropsWithoutRef<typeof StyledDropDownItem>, keyof BaseDropDownItemProps>\n\nfunction DropDownItem({ color, ...restOfProps }: DropDownItemProps) {\n // @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop.\n return <StyledDropDownItem {...restOfProps} color={useColor(color)} />\n}\n\ntype Props = ComponentPropsWithoutRef<typeof Button> & {\n label: string\n caret?: 'caret' | 'plus' | 'arrow-down' | 'chevron-down'\n links?: Array<{\n id: string\n payload: ComponentPropsWithoutRef<typeof DropDownItem> & {\n link?: LinkValue\n label: string\n }\n }>\n}\n\nexport default function DropDownButton({\n label,\n caret = 'caret',\n links = [],\n ...restOfProps\n}: Props): JSX.Element {\n const container = useRef<HTMLDivElement>(null)\n const [position, setPosition] = useState<Position>('left')\n\n useLayoutEffect(() => {\n if (\n container.current &&\n container.current.ownerDocument.defaultView!.innerWidth <\n container.current.offsetLeft + DROP_DOWN_MENU_WIDTH\n ) {\n setPosition('right')\n } else {\n setPosition('left')\n }\n }, [setPosition])\n\n return (\n <DropDownContainer ref={container}>\n <Button {...restOfProps}>\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span style={{ marginRight: 6 }}>{label}</span>\n <span style={{ display: 'inline-flex', fill: 'currentColor' }}>\n {caret === 'caret' && <CaretDown8 />}\n {caret === 'plus' && <Plus8 />}\n {caret === 'arrow-down' && <ArrowDown8 />}\n {caret === 'chevron-down' && <ChevronDown8 />}\n </span>\n </div>\n </Button>\n <DropDownMenu position={position}>\n {links.map(({ id, payload }) => (\n <DropDownItem {...payload} key={id}>\n {payload.label}\n </DropDownItem>\n ))}\n </DropDownMenu>\n </DropDownContainer>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy43MDcgMy43MDdhMSAxIDAgMCAwLTEuNDE0LTEuNDE0TDggNi41ODYgMy43MDcgMi4yOTNhMSAxIDAgMCAwLTEuNDE0IDEuNDE0TDYuNTg2IDhsLTQuMjkzIDQuMjkzYTEgMSAwIDEgMCAxLjQxNCAxLjQxNEw4IDkuNDE0bDQuMjkzIDQuMjkzYTEgMSAwIDAgMCAxLjQxNC0xLjQxNEw5LjQxNCA4bDQuMjkzLTQuMjkzWiIvPgo8L3N2Zz4=\"","import { ComponentPropsWithoutRef, useState } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules, cssTextStyle } from '../../../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ResponsiveColorValue,\n TextStyleValue,\n LinkValue,\n} from '../../../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../../../utils/types'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { useColor } from '../../../../../../hooks'\n\nimport { ReactComponent as CaretDown8 } from '../../../../../../icons/caret-down-8.svg'\nimport { ReactComponent as Plus8 } from '../../../../../../icons/plus-8.svg'\nimport { ReactComponent as ArrowDown8 } from '../../../../../../icons/arrow-down-8.svg'\nimport { ReactComponent as ChevronDown8 } from '../../../../../../icons/chevron-down-8.svg'\n\nimport { Link } from '../../../../../../shared/Link'\nimport Button from '../../../../../Button'\n\nconst DropDownMenu = styled.div<{ open: boolean }>`\n display: ${props => (props.open ? 'flex' : 'none')};\n flex-direction: column;\n padding: 8px;\n`\n\nconst ButtonLink = styled(Button)`\n margin: 8px 0;\n`\n\nconst StyledLink = styled(Link)<{\n textStyle?: TextStyleValue\n color?: ResponsiveValue<Color> | null\n}>`\n text-decoration: none;\n line-height: 1.4;\n padding: 8px 16px;\n color: black;\n ${cssTextStyle()}\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color]) => css`\n color: ${color == null ? 'black' : colorToString(color)};\n `,\n )}\n`\n\ntype BaseDropDownItemProps = {\n color?: ResponsiveColorValue\n textStyle?: TextStyleValue\n}\n\ntype DropDownItemProps = BaseDropDownItemProps &\n Omit<ComponentPropsWithoutRef<typeof StyledLink>, keyof BaseDropDownItemProps>\n\nfunction DropDownItem({ color, ...restOfProps }: DropDownItemProps) {\n // @ts-expect-error: HTMLAnchorElement `color` attribute conflict with props\n return <StyledLink {...restOfProps} color={useColor(color)} />\n}\n\ntype Props = ComponentPropsWithoutRef<typeof Button> & {\n label: string\n links?: Array<{\n id: string\n payload: ComponentPropsWithoutRef<typeof DropDownItem> & {\n link?: LinkValue\n label: string\n }\n }>\n onClose?: () => unknown\n caret?: string\n}\n\nexport default function MobileDropDownButton({\n label,\n caret,\n links = [],\n onClose = () => {},\n ...restOfProps\n}: Props): JSX.Element {\n const [isOpen, setIsOpen] = useState(false)\n return (\n <>\n <ButtonLink {...restOfProps} onPointerDown={() => setIsOpen(prev => !prev)}>\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span style={{ marginRight: 6 }}>{label}</span>\n <span style={{ display: 'inline-flex', fill: 'currentColor' }}>\n <>\n {caret === 'caret' && <CaretDown8 />}\n {caret === 'plus' && <Plus8 />}\n {caret === 'arrow-down' && <ArrowDown8 />}\n {caret === 'chevron-down' && <ChevronDown8 />}\n </>\n </span>\n </div>\n </ButtonLink>\n <DropDownMenu open={isOpen}>\n {links.map(({ id, payload }) => (\n <DropDownItem {...payload} key={id} onClick={onClose}>\n {payload.label}\n </DropDownItem>\n ))}\n </DropDownMenu>\n </>\n )\n}\n","import { Fragment } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n} from '../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport { useColor } from '../../../../hooks'\nimport { ReactComponent as Times16 } from '../../../../icons/times-16.svg'\n\nimport Button from '../../../Button'\nimport DropDownButton from './components/MobileDropDownButton'\n\nconst ButtonLink = styled(Button)`\n margin: 8px 0;\n`\n\nconst Container = styled.div<{\n animation?: ResponsiveValue<'coverRight' | 'coverLeft'>\n backgroundColor?: ResponsiveValue<Color> | null\n open: boolean\n}>`\n position: fixed;\n flex-direction: column;\n width: 100%;\n padding: 40px 15px;\n transition: transform 300ms ease-in-out;\n overflow-y: auto;\n z-index: 9999;\n max-width: 575px;\n ${p =>\n cssMediaRules([p.animation, p.backgroundColor] as const, ([animation, backgroundColor]) =>\n animation == null\n ? css`\n display: none;\n `\n : css`\n display: flex;\n background-color: ${backgroundColor == null ? 'black' : colorToString(backgroundColor)};\n transform: ${p.open\n ? `translate3d(0,0,0)`\n : `translate3d(${{ coverRight: '', coverLeft: '-' }[animation]}100%, 0, 0)`};\n ${{\n coverRight: { top: 0, bottom: 0, right: 0 },\n coverLeft: { top: 0, bottom: 0, left: 0 },\n }[animation]}\n `,\n )}\n`\n\nconst CloseIconContainer = styled.button<{ color?: ResponsiveValue<Color> | null }>`\n position: absolute;\n top: 15px;\n right: 15px;\n padding: 0;\n border: 0;\n outline: 0;\n background: none;\n fill: currentColor;\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color]) => css`\n color: ${color == null ? 'rgba(161, 168, 194, 0.5)' : colorToString(color)};\n `,\n )}\n`\n\ntype Props = {\n animation?: ResponsiveValue<'coverRight' | 'coverLeft'>\n backgroundColor?: ResponsiveColorValue\n closeIconColor?: ResponsiveColorValue\n links?: NavigationLinksValue\n onClose?: () => unknown\n open?: boolean\n}\n\nexport default function MobileMenu({\n animation,\n backgroundColor,\n open = false,\n closeIconColor,\n links = [],\n onClose = () => {},\n}: Props): JSX.Element {\n return (\n <Container animation={animation} backgroundColor={useColor(backgroundColor)} open={open}>\n {/* @ts-expect-error: HTMLButtonElement `color` attribute conflicts with prop */}\n <CloseIconContainer color={useColor(closeIconColor)} onClick={onClose}>\n <Times16 />\n </CloseIconContainer>\n <div\n style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', flexShrink: 0 }}\n >\n {links.map(link => (\n <Fragment key={link.id}>\n {link.type === 'button' && (\n <ButtonLink {...link.payload} onClick={onClose}>\n {link.payload.label}\n </ButtonLink>\n )}\n {link.type === 'dropdown' && <DropDownButton {...link.payload} onClose={onClose} />}\n </Fragment>\n ))}\n </div>\n </Container>\n )\n}\n","import { forwardRef, useState } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { ReactComponent as MobileMenu28 } from '../../icons/mobile-menu-28.svg'\n\nimport GutterContainer from '../../shared/GutterContainer'\nimport Image from '../Image'\nimport Button from '../Button'\nimport LinksPlaceholder from './components/LinksPlaceholder'\nimport DropDownButton from './components/DropDownButton'\nimport MobileMenu from './components/MobileMenu'\nimport {\n ResponsiveValue,\n CheckboxValue,\n ElementIDValue,\n GapXValue,\n ImageValue,\n LinkValue,\n MarginValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n TextInputValue,\n TextStyleValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssMargin, cssMediaRules, cssTextStyle, cssWidth } from '../../utils/cssMediaRules'\nimport { ColorValue as Color } from '../../utils/types'\nimport { colorToString } from '../../utils/colorToString'\nimport { useColor } from '../../hooks'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n links?: NavigationLinksValue\n linkTextStyle?: TextStyleValue\n showLogo?: CheckboxValue\n logoFile?: ImageValue\n logoWidth?: ResponsiveLengthValue\n logoAltText?: TextInputValue\n logoLink?: LinkValue\n alignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gutter?: GapXValue\n mobileMenuAnimation?: ResponsiveSelectValue<'coverRight' | 'coverLeft'>\n mobileMenuOpenIconColor?: ResponsiveColorValue\n mobileMenuCloseIconColor?: ResponsiveColorValue\n mobileMenuBackgroundColor?: ResponsiveColorValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst Container = styled.nav<{\n width: Props['width']\n margin: Props['margin']\n textStyle: Props['linkTextStyle']\n}>`\n display: flex;\n align-items: center;\n ${cssWidth()}\n ${cssMargin()}\n ${cssTextStyle()}\n`\n\nconst LinksContainer = styled.div<{\n alignment: Props['alignment']\n mobileMenuAnimation: Props['mobileMenuAnimation']\n}>`\n display: flex;\n align-items: center;\n flex-grow: 1;\n ${p =>\n cssMediaRules(\n [p.alignment, p.mobileMenuAnimation] as const,\n ([alignment = 'flex-end', mobileMenuAnimation]) => css`\n display: ${mobileMenuAnimation == null ? 'flex' : 'none'};\n justify-content: ${alignment};\n `,\n )}\n`\n\nconst OpenIconContainer = styled.button<{\n mobileMenuAnimation: Props['mobileMenuAnimation']\n alignment: Props['alignment']\n color: ResponsiveValue<Color> | null | undefined\n}>`\n display: none;\n flex-grow: 1;\n align-items: center;\n background: none;\n outline: 0;\n border: 0;\n padding: 0;\n fill: currentColor;\n ${p =>\n cssMediaRules(\n [p.mobileMenuAnimation, p.alignment, p.color] as const,\n ([mobileMenuAnimation, alignment = 'flex-end', color]) => css`\n display: ${mobileMenuAnimation == null ? 'none' : 'flex'};\n justify-content: ${alignment};\n color: ${color == null ? 'rgba(161, 168, 194, 0.5)' : colorToString(color)};\n `,\n )}\n`\n\nconst placeholder = {\n src: \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='93.12' height='36' viewBox='0 0 93.12 36'%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath d='M18,0A18,18,0,1,1,0,18,18,18,0,0,1,18,0ZM49.36,21.94h6.36V24H46.8V10h2.56Zm9.06.72a4.88,4.88,0,0,1-1.64-3.72,5,5,0,0,1,1.64-3.74,5.57,5.57,0,0,1,7.7,0,5.09,5.09,0,0,1,.26,7.18l-.26.26a5.56,5.56,0,0,1-7.7,0Zm1.68-6a3.39,3.39,0,0,0,0,4.52,3,3,0,0,0,4.24.08l.08-.08a3.39,3.39,0,0,0,0-4.52,3,3,0,0,0-4.24-.08Zm10,10.68,1-1.92a5.28,5.28,0,0,0,3.3,1.22,3.6,3.6,0,0,0,2.32-.72,2.73,2.73,0,0,0,.9-2.26V22.5a3.61,3.61,0,0,1-1.45,1.26,4.35,4.35,0,0,1-2,.46,4.57,4.57,0,0,1-3.58-1.54A5.48,5.48,0,0,1,69.2,18.9a5.42,5.42,0,0,1,1.36-3.74,4.64,4.64,0,0,1,3.62-1.5,4,4,0,0,1,3.44,1.72v-1.5h2.46v9a6.13,6.13,0,0,1-1.43,4.46,5.27,5.27,0,0,1-4,1.44,7.09,7.09,0,0,1-4.53-1.42Zm1.54-8.44a3.4,3.4,0,0,0,.82,2.3,2.72,2.72,0,0,0,2.17.94,3.13,3.13,0,0,0,1.21-.22,2.89,2.89,0,0,0,1-.62,3.08,3.08,0,0,0,.63-1,3.62,3.62,0,0,0,.21-1.3,4,4,0,0,0-.23-1.33,3.3,3.3,0,0,0-.63-1.05,2.74,2.74,0,0,0-1-.68,3.35,3.35,0,0,0-1.25-.24,2.92,2.92,0,0,0-1.2.24,2.58,2.58,0,0,0-.93.67,3,3,0,0,0-.59,1,3.89,3.89,0,0,0-.19,1.31ZM83.8,22.66a4.88,4.88,0,0,1-1.64-3.72A5,5,0,0,1,83.8,15.2a5.57,5.57,0,0,1,7.7,0,5.09,5.09,0,0,1,.26,7.18,3.19,3.19,0,0,1-.26.26,5.56,5.56,0,0,1-7.7,0Zm1.68-6a3.39,3.39,0,0,0,0,4.52,3,3,0,0,0,4.24.08l.08-.08a3.39,3.39,0,0,0,0-4.52,3,3,0,0,0-4.24-.08Z' fill='%23a1a8c2' opacity='0.4' style='isolation: isolate'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A\",\n dimensions: { width: 93, height: 36 },\n}\n\nconst Navigation = forwardRef<HTMLDivElement, Props>(function Navigation(\n {\n id,\n links = [],\n linkTextStyle,\n showLogo,\n logoFile,\n logoWidth,\n logoAltText,\n logoLink,\n alignment,\n gutter,\n mobileMenuAnimation,\n mobileMenuOpenIconColor,\n mobileMenuCloseIconColor,\n mobileMenuBackgroundColor,\n width,\n margin,\n },\n ref,\n) {\n const [isOpen, setIsOpen] = useState(false)\n\n return (\n <Container ref={ref} id={id} margin={margin} width={width} textStyle={linkTextStyle}>\n {showLogo === true && (\n <Image\n altText={logoAltText}\n file={logoFile}\n link={logoLink}\n placeholder={placeholder}\n width={logoWidth}\n />\n )}\n <div style={{ display: 'flex', flexGrow: 1, justifyContent: 'flex-end' }}>\n <LinksContainer alignment={alignment} mobileMenuAnimation={mobileMenuAnimation}>\n {links.length > 0 ? (\n links.map((link, i) => (\n <GutterContainer\n key={link.id}\n gutter={gutter}\n first={i === 0}\n last={i === links.length - 1}\n >\n {link.type === 'button' && <Button {...link.payload}>{link.payload.label}</Button>}\n {link.type === 'dropdown' && <DropDownButton {...link.payload} />}\n </GutterContainer>\n ))\n ) : (\n <LinksPlaceholder gutter={gutter} />\n )}\n </LinksContainer>\n <OpenIconContainer\n alignment={alignment}\n // @ts-expect-error: HTMLButtonElement `color` attribute conflicts with prop\n color={useColor(mobileMenuOpenIconColor)}\n mobileMenuAnimation={mobileMenuAnimation}\n onClick={() => setIsOpen(true)}\n >\n <MobileMenu28 />\n </OpenIconContainer>\n <MobileMenu\n animation={mobileMenuAnimation}\n backgroundColor={mobileMenuBackgroundColor}\n closeIconColor={mobileMenuCloseIconColor}\n links={links}\n onClose={() => setIsOpen(false)}\n open={isOpen}\n />\n </div>\n </Container>\n )\n})\n\nexport default Navigation\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Navigation, {\n type: './components/Navigation/index.js',\n label: 'Navigation',\n icon: 'Navigation40',\n props: {\n id: Props.ElementID(),\n links: Props.NavigationLinks(),\n linkTextStyle: Props.TextStyle({\n label: 'Link text style',\n // hidden: links == null || links.length === 0,\n }),\n showLogo: Props.Checkbox({ preset: true, label: 'Show logo' }),\n logoFile: Props.Image({\n label: 'Logo',\n // hidden: props.showLogo === false,\n }),\n logoWidth: Props.ResponsiveLength({\n // preset: [{ deviceId: 'desktop', value: { value: 100, unit: 'px' } }],\n label: 'Logo width',\n // min: 0,\n // max: 1000,\n options: [{ value: 'px', label: 'Pixels', icon: 'Px16' }],\n // hidden: props.showLogo === false,\n }),\n logoAltText: Props.TextInput({\n label: 'Logo alt text',\n // hidden: props.showLogo === false,\n }),\n logoLink: Props.Link({\n label: 'Logo on click',\n // hidden: props.showLogo === false,\n }),\n alignment: Props.ResponsiveIconRadioGroup({\n label: 'Alignment',\n options: [\n { label: 'Left', value: 'flex-start', icon: 'AlignLeft16' },\n { label: 'Center', value: 'center', icon: 'AlignCenter16' },\n { label: 'End', value: 'flex-end', icon: 'AlignRight16' },\n ],\n defaultValue: 'flex-end',\n }),\n gutter: Props.GapX({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Link gap',\n min: 0,\n max: 100,\n step: 1,\n defaultValue: { value: 0, unit: 'px' },\n }),\n mobileMenuAnimation: Props.ResponsiveSelect({\n label: 'Mobile menu',\n options: [\n { value: 'coverRight', label: 'Cover from right' },\n { value: 'coverLeft', label: 'Cover from left' },\n ],\n }),\n mobileMenuOpenIconColor: Props.ResponsiveColor({\n label: 'Open icon color',\n placeholder: 'rgba(161, 168, 194, 0.5)',\n // hidden: !findDeviceOverride(mobileMenuAnimation, device),\n }),\n mobileMenuCloseIconColor: Props.ResponsiveColor({\n label: 'Close icon color',\n placeholder: 'rgba(161, 168, 194, 0.5)',\n // hidden: !findDeviceOverride(mobileMenuAnimation, device),\n }),\n mobileMenuBackgroundColor: Props.ResponsiveColor({\n label: 'Menu BG color',\n placeholder: 'black',\n // hidden: !findDeviceOverride(mobileMenuAnimation, device),\n }),\n width: Props.Width({ defaultValue: { value: 100, unit: '%' } }),\n margin: Props.Margin(),\n },\n })\n}\n","import { forwardRef } from 'react'\nimport styled from 'styled-components'\n\nconst PlaceholderBase = styled.div`\n width: 100%;\n background: rgba(161, 168, 194, 0.18);\n height: 80px;\n padding: 8px;\n`\n\ntype Props = Record<string, never>\n\nexport default forwardRef<HTMLDivElement, Props>(function Placeholder(props: Props, ref) {\n return (\n <PlaceholderBase {...props} ref={ref}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n style={{ overflow: 'visible' }}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </PlaceholderBase>\n )\n})\n","import styled, { createGlobalStyle } from 'styled-components'\nimport { normalize } from 'polished'\nimport { forwardRef, Ref } from 'react'\n\nimport Placeholder from './components/Placeholder'\nimport {\n GridValue,\n BackgroundsValue,\n GapXValue,\n GapYValue,\n} from '../../../prop-controllers/descriptors'\nimport { Element, ReactRuntime } from '../../../react'\nimport { cssGridItem } from '../../utils/cssMediaRules'\nimport BackgroundsContainer from '../../shared/BackgroundsContainer'\nimport { Props } from '../../../prop-controllers'\n\nconst Normalize = createGlobalStyle`\n html {\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n box-sizing: inherit;\n }\n\n ${normalize()}\n`\n\nconst Grid = styled.div`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n`\n\nconst GridItem = styled.div`\n display: flex;\n align-items: flex-start;\n ${cssGridItem()}\n`\n\ntype Props = {\n children?: GridValue\n backgrounds?: BackgroundsValue\n rowGap?: GapYValue\n columnGap?: GapXValue\n}\n\nconst Root = forwardRef(function Page(\n { children, backgrounds, rowGap, columnGap }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <>\n <Normalize />\n <BackgroundsContainer ref={ref} style={{ background: 'white' }} backgrounds={backgrounds}>\n <Grid>\n {children && children.elements.length > 0 ? (\n children.elements.map((child, index) => (\n <GridItem\n key={child.key}\n grid={children.columns}\n index={index}\n columnGap={columnGap}\n rowGap={rowGap}\n >\n <Element element={child} />\n </GridItem>\n ))\n ) : (\n <Placeholder />\n )}\n </Grid>\n </BackgroundsContainer>\n </>\n )\n})\n\nexport default Root\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Root, {\n type: './components/Root/index.js',\n label: 'Page',\n hidden: true,\n props: {\n children: Props.Grid(),\n backgrounds: Props.Backgrounds(),\n rowGap: Props.GapY(),\n columnGap: Props.GapX(),\n },\n })\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTMuNzQxMiw4LjI5NjcgQzE0LjM1ODIsNi42Mjk3IDE0LjgzOTIsNS4yNTQ3IDE1LjE4NDIsNC4xNjg3IEMxNS41MjkyLDMuMDgzNyAxNS43MDIyLDIuNDE3NyAxNS43MDIyLDIuMTcwNyBDMTUuNzAyMiwxLjkwNDcgMTUuNjQ0MiwxLjY5ODcgMTUuNTI5MiwxLjU1MTcgQzE1LjQxNDIsMS40MDU3IDE1LjI1NjIsMS4zMzI3IDE1LjA1MzIsMS4zMzI3IEMxNC43OTYyLDEuMzMyNyAxNC41MzMyLDEuNTQ1NyAxNC4yNjYyLDEuOTcwNyBDMTMuOTk5MiwyLjM5NjcgMTMuNzA1MiwzLjA4MTcgMTMuMzgzMiw0LjAyNDcgTDEyLjAwMjIsNy45OTQ3IEwxMy43NDEyLDguMjk2NyBaIE0xMS45MDUyLDExLjk5MTcgQzExLjUxMDIsMTEuOTczNyAxMS4xMzQyLDExLjkzMjcgMTAuNzgwMiwxMS44Njc3IEMxMC40MjYyLDExLjgwNDcgMTAuMDg3MiwxMS43MTI3IDkuNzY1MiwxMS41OTM3IEM5LjkxMjIsMTEuODg2NyAxMC4wNDMyLDEyLjE3OTcgMTAuMTU4MiwxMi40NzI3IEMxMC4yNzQyLDEyLjc2NTcgMTAuMzY4MiwxMy4wNTQ3IDEwLjQ0MjIsMTMuMzM4NyBDMTAuNjYyMiwxMy4wNjM3IDEwLjg5NTIsMTIuODEzNyAxMS4xMzgyLDEyLjU4ODcgQzExLjM4MzIsMTIuMzY0NyAxMS42MzgyLDEyLjE2NTcgMTEuOTA1MiwxMS45OTE3IEwxMS45MDUyLDExLjk5MTcgWiBNMTAuMzQ1Miw3LjgyOTcgTDguODU0MiwzLjU0MzcgQzguNDY3MiwyLjQ1NDcgOC4xNjgyLDEuNzQyNyA3Ljk1NjIsMS40MDc3IEM3Ljc0NDIsMS4wNzM3IDcuNTE0MiwwLjkwNjcgNy4yNjYyLDAuOTA2NyBDNy4wNzMyLDAuOTA2NyA2LjkxNjIsMC45Nzk3IDYuNzk3MiwxLjEyNjcgQzYuNjc3MiwxLjI3MjcgNi42MTcyLDEuNDY5NyA2LjYxNzIsMS43MTY3IEM2LjYxNzIsMi4xMzg3IDYuNzc4MiwyLjg3MDcgNy4xMDAyLDMuOTE0NyBDNy40MjMyLDQuOTU4NyA3LjkwNjIsNi4zMjc3IDguNTUwMiw4LjAyMTcgQzguNjA1Miw3LjkyMTcgOC42ODMyLDcuODUwNyA4Ljc4NTIsNy44MDg3IEM4Ljg4NjIsNy43Njc3IDkuMDI0Miw3Ljc0NzcgOS4xOTkyLDcuNzQ3NyBDOS4yNTQyLDcuNzQ3NyA5LjM2NTIsNy43NTI3IDkuNTMxMiw3Ljc2MDcgQzkuNjk2Miw3Ljc3MDcgOS45NjgyLDcuNzkzNyAxMC4zNDUyLDcuODI5NyBMMTAuMzQ1Miw3LjgyOTcgWiBNOC45OTIyLDE0LjQ2MzcgQzkuMTQ4MiwxNC40NjM3IDkuMjkxMiwxNC4zOTM3IDkuNDIwMiwxNC4yNTE3IEM5LjU0OTIsMTQuMTA5NyA5LjYxMzIsMTMuOTU2NyA5LjYxMzIsMTMuNzkxNyBDOS42MTMyLDEzLjYxNzcgOS40ODcyLDEzLjIxMjcgOS4yMzQyLDEyLjU3NTcgQzguOTgwMiwxMS45Mzk3IDguNjY1MiwxMS4zMTQ3IDguMjg4MiwxMC43MDA3IEM4LjAxMjIsMTAuMjQyNyA3Ljc0MDIsOS44OTc3IDcuNDczMiw5LjY2MzcgQzcuMjA2Miw5LjQyOTcgNi45NTMyLDkuMzEzNyA2LjcxNDIsOS4zMTM3IEM2LjUyMDIsOS4zMTM3IDYuMzA2Miw5LjQzNDcgNi4wNzIyLDkuNjc2NyBDNS44MzcyLDkuOTE5NyA1LjcyMDIsMTAuMTQ2NyA1LjcyMDIsMTAuMzU3NyBDNS43MjAyLDEwLjU3NjcgNS44MzUyLDEwLjkwNjcgNi4wNjUyLDExLjM0NTcgQzYuMjk1MiwxMS43ODU3IDYuNjAzMiwxMi4yNTI3IDYuOTkwMiwxMi43NDc3IEM3LjM5NTIsMTMuMjg3NyA3Ljc3NzIsMTMuNzA4NyA4LjEzNjIsMTQuMDEwNyBDOC40OTUyLDE0LjMxMzcgOC43ODAyLDE0LjQ2MzcgOC45OTIyLDE0LjQ2MzcgTDguOTkyMiwxNC40NjM3IFogTTQuODUwMiwxNC4xMzQ3IEM0Ljk3OTIsMTQuMjkwNyA1LjE1ODIsMTQuNTE5NyA1LjM4ODIsMTQuODIxNyBDNS45OTYyLDE1LjY1NDcgNi41NTcyLDE2LjA3MTcgNy4wNzMyLDE2LjA3MTcgQzcuMjQ3MiwxNi4wNzE3IDcuNDA0MiwxNi4wMTY3IDcuNTQyMiwxNS45MDY3IEM3LjY4MDIsMTUuNzk2NyA3Ljc0OTIsMTUuNjgyNyA3Ljc0OTIsMTUuNTYzNyBDNy43NDkyLDE1LjQyNTcgNy42NTcyLDE1LjE5NjcgNy40NzMyLDE0Ljg3NjcgQzcuMjg5MiwxNC41NTU3IDcuMDM2MiwxNC4xOTQ3IDYuNzE0MiwxMy43OTE3IEM2LjM0NTIsMTMuMzI0NyA2LjAzOTIsMTIuOTgzNyA1Ljc5NjIsMTIuNzY3NyBDNS41NTIyLDEyLjU1MjcgNS4zNTYyLDEyLjQ0NDcgNS4yMDkyLDEyLjQ0NDcgQzQuODg3MiwxMi40NDQ3IDQuNTkwMiwxMi42MTY3IDQuMzE4MiwxMi45NjA3IEM0LjA0NzIsMTMuMzAzNyAzLjkxMTIsMTMuNzA4NyAzLjkxMTIsMTQuMTc1NyBDMy45MTEyLDE0LjU1MTcgNC4wMDUyLDE0Ljk3MDcgNC4xOTQyLDE1LjQzMjcgQzQuMzgzMiwxNS44OTU3IDQuNjU3MiwxNi4zNTk3IDUuMDE1MiwxNi44MjY3IEM1LjU1ODIsMTcuNTUwNyA2LjIzMzIsMTguMTA2NyA3LjAzODIsMTguNDk1NyBDNy44NDQyLDE4Ljg4NTcgOC43MzQyLDE5LjA3OTcgOS43MTAyLDE5LjA3OTcgQzExLjUwNTIsMTkuMDc5NyAxMy4wMDgyLDE4LjQxMzcgMTQuMjE4MiwxNy4wODE3IEMxNS40MjgyLDE1Ljc0ODcgMTYuMDMzMiwxNC4wNzk3IDE2LjAzMzIsMTIuMDczNyBDMTYuMDMzMiwxMS40NjA3IDE1Ljk4NzIsMTAuOTczNyAxNS44OTUyLDEwLjYxMDcgQzE1LjgwNDIsMTAuMjQ5NyAxNS42NTEyLDkuOTg1NyAxNS40MzkyLDkuODIxNyBDMTUuMDYyMiw5LjUwOTcgMTQuMzI4Miw5LjIzMDcgMTMuMjM3Miw4Ljk4MzcgQzEyLjE0NjIsOC43MzU3IDExLjAwODIsOC42MTI3IDkuODIwMiw4LjYxMjcgQzkuNDg5Miw4LjYxMjcgOS4yNTQyLDguNjY3NyA5LjExNjIsOC43Nzc3IEM4Ljk3ODIsOC44ODc3IDguOTA5Miw5LjA3NDcgOC45MDkyLDkuMzQwNyBDOC45MDkyLDkuOTYzNyA5LjI1OTIsMTAuNDE0NyA5Ljk1ODIsMTAuNjkzNyBDMTAuNjU4MiwxMC45NzM3IDExLjc5MDIsMTEuMTEyNyAxMy4zNTUyLDExLjExMjcgTDEzLjkyMTIsMTEuMTEyNyBDMTQuMDUwMiwxMS4xMTI3IDE0LjE1MzIsMTEuMTYwNyAxNC4yMzEyLDExLjI1NjcgQzE0LjMwOTIsMTEuMzUyNyAxNC4zNjMyLDExLjQ5NzcgMTQuMzkwMiwxMS42ODk3IEMxNC4yMzMyLDExLjgzNjcgMTMuOTEyMiwxMi4wMDM3IDEzLjQyNDIsMTIuMTkxNyBDMTIuOTM2MiwxMi4zNzg3IDEyLjU2MzIsMTIuNTY0NyAxMi4zMDUyLDEyLjc0NzcgQzExLjc1NDIsMTMuMTUwNyAxMS4zMDkyLDEzLjYyODcgMTAuOTczMiwxNC4xODI3IEMxMC42MzcyLDE0LjczNjcgMTAuNDY5MiwxNS4yNjA3IDEwLjQ2OTIsMTUuNzU1NyBDMTAuNDY5MiwxNi4wNTc3IDEwLjU0MDIsMTYuNDIxNyAxMC42ODMyLDE2Ljg0NzcgQzEwLjgyNjIsMTcuMjczNyAxMC44OTcyLDE3LjUzNjcgMTAuODk3MiwxNy42Mzc3IEwxMC44OTcyLDE3LjczMzcgTDEwLjg2OTIsMTcuODU3NyBDMTAuNDY1MiwxNy44Mjk3IDEwLjE0NTIsMTcuNTkzNyA5LjkxMDIsMTcuMTQ5NyBDOS42NzUyLDE2LjcwNTcgOS41NTgyLDE2LjExMjcgOS41NTgyLDE1LjM3MDcgTDkuNTU4MiwxNS4yNDc3IEM5LjQ4NDIsMTUuMzExNyA5LjQxMzIsMTUuMzU3NyA5LjM0NDIsMTUuMzg0NyBDOS4yNzUyLDE1LjQxMjcgOS4xOTkyLDE1LjQyNTcgOS4xMTYyLDE1LjQyNTcgQzkuMDMzMiwxNS40MjU3IDguOTU1MiwxNS40MTk3IDguODgyMiwxNS40MDQ3IEM4LjgwNzIsMTUuMzkxNyA4LjcyNTIsMTUuMzcwNyA4LjYzMzIsMTUuMzQzNyBDOC42NjAyLDE1LjQ0NDcgOC42ODEyLDE1LjU0MjcgOC42OTUyLDE1LjYzODcgQzguNzA5MiwxNS43MzQ3IDguNzE2MiwxNS44MTA3IDguNzE2MiwxNS44NjU3IEM4LjcxNjIsMTYuMjA0NyA4LjU4MjIsMTYuNDk1NyA4LjMxNTIsMTYuNzM3NyBDOC4wNDgyLDE2Ljk4MDcgNy43MzEyLDE3LjEwMTcgNy4zNjMyLDE3LjEwMTcgQzYuNzgzMiwxNy4xMDE3IDYuMTk0MiwxNi44MTk3IDUuNTk1MiwxNi4yNTY3IEM0Ljk5NzIsMTUuNjkzNyA0LjY5ODIsMTUuMTQyNyA0LjY5ODIsMTQuNjAxNyBDNC42OTgyLDE0LjUwMDcgNC43MTAyLDE0LjQxMTcgNC43MzMyLDE0LjMzMzcgQzQuNzU1MiwxNC4yNTU3IDQuNzk1MiwxNC4xODk3IDQuODUwMiwxNC4xMzQ3IEw0Ljg1MDIsMTQuMTM0NyBaIE0xNC43MzUyLDguNTI5NyBDMTUuNTY0Miw4LjY4NjcgMTYuMTQ4Miw5LjAzMzcgMTYuNDg5Miw5LjU3MzcgQzE2LjgyOTIsMTAuMTE0NyAxNy4wMDAyLDEwLjk2NjcgMTcuMDAwMiwxMi4xMjk3IEMxNy4wMDAyLDE0LjQzNjcgMTYuMzAzMiwxNi4zMjU3IDE0LjkwODIsMTcuNzk1NyBDMTMuNTEzMiwxOS4yNjQ3IDExLjczMDIsMTkuOTk5NyA5LjU1ODIsMTkuOTk5NyBDOC43MDIyLDE5Ljk5OTcgNy44NzEyLDE5Ljg0NjcgNy4wNjYyLDE5LjUzOTcgQzYuMjYwMiwxOS4yMzM3IDUuNTY4MiwxOC44MDQ3IDQuOTg4MiwxOC4yNTU3IEM0LjMyNTIsMTcuNjUwNyAzLjgyODIsMTcuMDEyNyAzLjQ5NzIsMTYuMzM5NyBDMy4xNjUyLDE1LjY2NjcgMy4wMDAyLDE0Ljk3NzcgMy4wMDAyLDE0LjI3MjcgQzMuMDAwMiwxMy40ODQ3IDMuMTcwMiwxMi44NzU3IDMuNTExMiwxMi40NDQ3IEMzLjg1MTIsMTIuMDE0NyA0LjM4OTIsMTEuNzIxNyA1LjEyNjIsMTEuNTY2NyBDNC45ODgyLDExLjI0NTcgNC44ODcyLDEwLjk3NTcgNC44MjIyLDEwLjc1NTcgQzQuNzU4MiwxMC41MzU3IDQuNzI1MiwxMC4zNjY3IDQuNzI1MiwxMC4yNDc3IEM0LjcyNTIsOS44MzU3IDQuOTQ0Miw5LjQxNDcgNS4zODIyLDguOTgzNyBDNS44MTkyLDguNTUyNyA2LjIzMTIsOC4zMzc3IDYuNjE3Miw4LjMzNzcgQzYuNzgzMiw4LjMzNzcgNi45NTcyLDguMzY3NyA3LjE0MjIsOC40MjY3IEM3LjMyNjIsOC40ODY3IDcuNTM3Miw4LjU4NTcgNy43NzcyLDguNzIyNyBDNy4wNjgyLDYuNzI2NyA2LjU1MzIsNS4xODU3IDYuMjMxMiw0LjEwMDcgQzUuOTA4MiwzLjAxNDcgNS43NDcyLDIuMjY2NyA1Ljc0NzIsMS44NTQ3IEM1Ljc0NzIsMS4yODY3IDUuODk0MiwwLjgzNTcgNi4xODkyLDAuNTAxNyBDNi40ODQyLDAuMTY3NyA2Ljg4NDIsLTAuMDAwMyA3LjM5MDIsLTAuMDAwMyBDOC4yNTUyLC0wLjAwMDMgOS4zNTEyLDEuOTIyNyAxMC42NzYyLDUuNzY5NyBDMTAuOTA2Miw2LjQyODcgMTEuMDgxMiw2LjkzNjcgMTEuMjAxMiw3LjI5NDcgQzExLjMwMzIsNy4wMDk3IDExLjQ0NTIsNi42MDc3IDExLjYyOTIsNi4wODU3IEMxMi45NTUyLDIuMjc1NyAxNC4wOTUyLDAuMzcwNyAxNS4wNTMyLDAuMzcwNyBDMTUuNTIyMiwwLjM3MDcgMTUuODk3MiwwLjUyODcgMTYuMTc5MiwwLjg0NDcgQzE2LjQ1OTIsMS4xNjA3IDE2LjU5OTIsMS41ODQ3IDE2LjU5OTIsMi4xMTU3IEMxNi41OTkyLDIuNTE4NyAxNi40NDUyLDMuMjU1NyAxNi4xMzcyLDQuMzI2NyBDMTUuODI4Miw1LjM5ODcgMTUuMzYxMiw2Ljc5OTcgMTQuNzM1Miw4LjUyOTcgTDE0LjczNTIsOC41Mjk3IFoiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTguMjgxLDExLjQzODMgTDE2LjEzMiwxMC4wMDAzIEwxOC4yODEsOC41NjIzIEwxOC4yODEsMTEuNDM4MyBaIE0xMC44NTksMTcuNTM0MyBMMTAuODU5LDEzLjUyNjMgTDE0LjU4NiwxMS4wMzQzIEwxNy41OTQsMTMuMDQ1MyBMMTAuODU5LDE3LjUzNDMgWiBNMTAsMTIuMDMzMyBMNi45NjEsMTAuMDAwMyBMMTAsNy45NjYzIEwxMy4wNCwxMC4wMDAzIEwxMCwxMi4wMzMzIFogTTkuMTQxLDE3LjUzNDMgTDIuNDA3LDEzLjA0NTMgTDUuNDE1LDExLjAzNDMgTDkuMTQxLDEzLjUyNjMgTDkuMTQxLDE3LjUzNDMgWiBNMS43MTksOC41NjIzIEwzLjg2OSwxMC4wMDAzIEwxLjcxOSwxMS40MzgzIEwxLjcxOSw4LjU2MjMgWiBNOS4xNDEsMi40NjUzIEw5LjE0MSw2LjQ3NDMgTDUuNDE1LDguOTY2MyBMMi40MDcsNi45NTQzIEw5LjE0MSwyLjQ2NTMgWiBNMTAuODU5LDIuNDY1MyBMMTcuNTk0LDYuOTU0MyBMMTQuNTg2LDguOTY2MyBMMTAuODU5LDYuNDc0MyBMMTAuODU5LDIuNDY1MyBaIE0xOS45ODUsNi44MDMzIEMxOS45NDQsNi41ODAzIDE5LjgxMiw2LjM2MDMgMTkuNjE3LDYuMjM4MyBMMTAuNDc3LDAuMTQ0MyBDMTAuMTg4LC0wLjA0NzcgOS44MTIsLTAuMDQ3NyA5LjUyMywwLjE0NDMgTDAuMzgzLDYuMjM4MyBDMC4xNDgsNi4zOTQzIDAsNi42NzEzIDAsNi45NTMzIEwwLDEzLjA0NjMgQzAsMTMuMzI4MyAwLjE0OCwxMy42MDYzIDAuMzgzLDEzLjc2MTMgTDkuNTIzLDE5Ljg1NTMgQzkuNjY4LDE5Ljk1MjMgOS44MzQsMjAuMDAwMyAxMCwyMC4wMDAzIEMxMC4xNjcsMjAuMDAwMyAxMC4zMzMsMTkuOTUyMyAxMC40NzcsMTkuODU1MyBMMTkuNjE3LDEzLjc2MTMgQzE5Ljg1NCwxMy42MTMzIDIwLDEzLjMyMzMgMjAsMTMuMDQ2MyBMMjAsNi45NTMzIEMyMC4wMDEsNi45MDIzIDE5Ljk5Niw2Ljg1MzMgMTkuOTg1LDYuODAzMyBMMTkuOTg1LDYuODAzMyBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTkuNzk3LDcuOTg4MyBDMTkuNjY0LDcuMzQ0MyAxOS40NjgsNi43MTQzIDE5LjIxMiw2LjEwODMgQzE4Ljk2MSw1LjUxMzMgMTguNjUyLDQuOTQ1MyAxOC4yOSw0LjQxMDMgQzE1LjIwMywtMC4xNjg3IDguOTg4LC0xLjM3NzcgNC40MDksMS43MDkzIEMzLjM0NCwyLjQyNzMgMi40MjcsMy4zNDQzIDEuNzA5LDQuNDEwMyBDMC45NzcsNS40OTIzIDAuNDY1LDYuNzA4MyAwLjIwMiw3Ljk4ODMgQy0wLjA2Nyw5LjMxNzMgLTAuMDY3LDEwLjY4NjMgMC4yMDIsMTIuMDE1MyBDMC40NjYsMTMuMjk1MyAwLjk3OCwxNC41MTAzIDEuNzA5LDE1LjU5MzMgQzIuNDI3LDE2LjY1NzMgMy4zNDMsMTcuNTc0MyA0LjQwNywxOC4yOTIzIEM0Ljk0MywxOC42NTMzIDUuNTEyLDE4Ljk2MjMgNi4xMDcsMTkuMjE0MyBDOC41OTYsMjAuMjYxMyAxMS40MDIsMjAuMjYxMyAxMy44OTMsMTkuMjE0MyBDMTQuNDg2LDE4Ljk2MjMgMTUuMDU2LDE4LjY1MzMgMTUuNTkxLDE4LjI5MjMgQzE2LjY1NSwxNy41NzQzIDE3LjU3MiwxNi42NTgzIDE4LjI5LDE1LjU5MzMgQzE5LjAyMiwxNC41MTAzIDE5LjUzMywxMy4yOTUzIDE5Ljc5NywxMi4wMTUzIEMyMC4wNjcsMTAuNjg2MyAyMC4wNjcsOS4zMTczIDE5Ljc5Nyw3Ljk4ODMgTDE5Ljc5Nyw3Ljk4ODMgWiBNMTguNTM3LDkuOTE1MyBDMTYuNTgsOS41MjIzIDE0LjU3NSw5LjQyNzMgMTIuNTksOS42MzUzIEMxMi41MjgsOS40OTAzIDEyLjQ2OSw5LjM0MjMgMTIuNDA4LDkuMTk2MyBDMTIuMjI2LDguNzc3MyAxMi4wMzksOC4zNjMzIDExLjg0LDcuOTU2MyBDMTMuNzAxLDcuMjgwMyAxNS4zNDYsNi4xMTIzIDE2LjU5OCw0LjU3NzMgQzE3LjgzOCw2LjA4MTMgMTguNTI0LDcuOTY2MyAxOC41NCw5LjkxNTMgTDE4LjUzNyw5LjkxNTMgWiBNMTUuNjQxLDMuNTkzMyBDMTQuNDkzLDUuMDQ0MyAxMi45NDEsNi4xMjAzIDExLjE3OSw2LjY4MzMgQzEwLjIzLDQuOTUyMyA5LjE2MywzLjI4ODMgNy45ODcsMS43MDIzIEMxMC42OTMsMS4wNDMzIDEzLjU1MiwxLjc0OTMgMTUuNjQxLDMuNTkyMyBMMTUuNjQxLDMuNTkzMyBaIE02LjM1NywyLjI3OTMgQzcuNTA2LDMuODU2MyA4LjU2Niw1LjQ5OTMgOS41MjgsNy4xOTgzIEM2Ljk1NCw3Ljg3NzMgNC4zMDUsOC4yMjczIDEuNjQzLDguMjQxMyBDMi4xOTUsNS42MjYzIDMuOTM5LDMuNDE5MyA2LjM1NywyLjI3OTMgTDYuMzU3LDIuMjc5MyBaIE0xLjQ2MSwxMC4wMDAzIEMxLjQ2MSw5LjkwOTMgMS40NjUsOS44MTgzIDEuNDY4LDkuNzI3MyBDNC40MzMsOS43MzkzIDcuMzg1LDkuMzI5MyAxMC4yMzUsOC41MTAzIEMxMC40OCw4Ljk4OTMgMTAuNzE0LDkuNDc3MyAxMC45MjgsOS45NjQzIEMxMC44MTYsOS45OTQzIDEwLjcwMywxMC4wMjkzIDEwLjU5MiwxMC4wNjYzIEM3LjcwNCwxMS4xMDEzIDUuMjU0LDEzLjA5MDMgMy42NDYsMTUuNzAyMyBDMi4yMzgsMTQuMTM2MyAxLjQ2MiwxMi4xMDUzIDEuNDY1LDEwLjAwMDMgTDEuNDYxLDEwLjAwMDMgWiBNMTAuMDA1LDE4LjU0NTMgQzguMDE5LDE4LjU0ODMgNi4wOTQsMTcuODU0MyA0LjU2NSwxNi41ODczIEM0LjY3NywxNi42NzczIDQuNzU2LDE2LjczNzMgNC43NTYsMTYuNzM3MyBDNC43NTYsMTYuNzM3MyA2LjM5MywxMy4xNjczIDExLjQ1OCwxMS40MDEzIEMxMS40NzcsMTEuMzk0MyAxMS40OTcsMTEuMzg5MyAxMS41MTYsMTEuMzg0MyBDMTIuMzI3LDEzLjQ4MzMgMTIuOTM4LDE1LjY1MzMgMTMuMzM5LDE3Ljg2ODMgQzEyLjI4NCwxOC4zMTUzIDExLjE1MSwxOC41NDYzIDEwLjAwNSwxOC41NDUzIEwxMC4wMDUsMTguNTQ1MyBaIE0xNC43NzcsMTcuMDgyMyBDMTQuNCwxNS4wMDYzIDEzLjg0MywxMi45NjUzIDEzLjExNSwxMC45ODMzIEMxNC44OTYsMTAuNzE5MyAxNi43MTIsMTAuODQ2MyAxOC40MzgsMTEuMzU2MyBDMTguMDYyLDEzLjY4OTMgMTYuNzM3LDE1Ljc2MjMgMTQuNzc3LDE3LjA4MzMgTDE0Ljc3NywxNy4wODIzIFoiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTguODk2IDBIMS4xMDRDLjQ5NCAwIDAgLjQ5NCAwIDEuMTA0djE3Ljc5MkMwIDE5LjUwNi40OTQgMjAgMS4xMDQgMjBoOS41OHYtNy43MzRIOC4wODZWOS4yMzhoMi41OThWNy4wMWMwLTIuNTgzIDEuNTc3LTMuOTg5IDMuODgxLTMuOTg5IDEuMTA0IDAgMi4wNTMuMDgyIDIuMzMuMTE5djIuNjk5bC0xLjU5LjAwMWMtMS4yNTQgMC0xLjQ5Ni41OTYtMS40OTYgMS40N3YxLjkyOGgyLjk5N2wtLjM5IDMuMDI4aC0yLjYwN1YyMGg1LjA4N2MuNjEgMCAxLjEwNC0uNDk0IDEuMTA0LTEuMTA0VjEuMTA0QzIwIC40OTQgMTkuNTA2IDAgMTguODk2IDAiLz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNOS45OTU4LDAuMDAyOSBDNC42MDU4LC0wLjEyNTEgMC4xMzE4LDQuMTM4OSAwLjAwMjgsOS41Mjg5IEMtMC4xMDEyLDEzLjg3NzkgMi42ODU4LDE3Ljc3MDkgNi44MzU4LDE5LjA3NDkgQzcuMDkzOCwxOS4xNzU5IDcuMzgzOCwxOS4wNDg5IDcuNDg0OCwxOC43OTE5IEM3LjUwNzgsMTguNzMxOSA3LjUxOTgsMTguNjY4OSA3LjUxODgsMTguNjA0OSBDNy41MTg4LDE4LjM3MDkgNy41MDk4LDE3Ljc1NTkgNy41MDU4LDE2LjkzOTkgQzQuNzIzOCwxNy41Mjk5IDQuMTM2OCwxNS42MjY5IDQuMTM2OCwxNS42MjY5IEMzLjk0OTgsMTUuMDMyOSAzLjU1NTgsMTQuNTI0OSAzLjAyNjgsMTQuMTk1OSBDMi4xMTc4LDEzLjU4ODkgMy4wOTU4LDEzLjYwMTkgMy4wOTU4LDEzLjYwMTkgQzMuNzMzOCwxMy42ODQ5IDQuMjk3OCwxNC4wNTY5IDQuNjI2OCwxNC42MDg5IEM1LjIxMTgsMTUuNjI3OSA2LjUwNTgsMTUuOTg5OSA3LjUzNTgsMTUuNDIyOSBDNy41ODI4LDE0LjkyMzkgNy44MDg4LDE0LjQ1ODkgOC4xNzE4LDE0LjExMzkgQzUuOTUwOCwxMy44NjY5IDMuNjE3OCwxMy4wMjM5IDMuNjE3OCw5LjI3NjkgQzMuNjAzOCw4LjMwMTkgMy45NzM4LDcuMzU4OSA0LjY0NTgsNi42NTE5IEM0LjM0MDgsNS44MDg5IDQuMzc1OCw0Ljg3OTkgNC43NDM4LDQuMDYyOSBDNC43NDM4LDQuMDYyOSA1LjU4MzgsMy43OTg5IDcuNDkzOCw1LjA2MTkgQzkuMTMzOCw0LjYyMzkgMTAuODU5OCw0LjYyMzkgMTIuNTAwOCw1LjA2MTkgQzE0LjQwOTgsMy43OTU5IDE1LjI0NzgsNC4wNjI5IDE1LjI0NzgsNC4wNjI5IEMxNS42MTY4LDQuODc4OSAxNS42NTE4LDUuODA4OSAxNS4zNDY4LDYuNjUxOSBDMTYuMDE5OCw3LjM1ODkgMTYuMzg5OCw4LjMwMTkgMTYuMzc0OCw5LjI3NjkgQzE2LjM3NDgsMTMuMDM2OSAxNC4wMzY4LDEzLjg2NDkgMTEuODA4OCwxNC4xMDY5IEMxMi4yOTA4LDE0LjU4MTkgMTIuNTM4OCwxNS4yNDQ5IDEyLjQ4ODgsMTUuOTE4OSBDMTIuNDg4OCwxNy4yMjg5IDEyLjQ3NTgsMTguMjgxOSAxMi40NzU4LDE4LjYwNDkgQzEyLjQ3MTgsMTguODc4OSAxMi42ODk4LDE5LjEwNjkgMTIuOTY0OCwxOS4xMTA5IEMxMy4wMzI4LDE5LjExMTkgMTMuMDk5OCwxOS4wOTk5IDEzLjE2MzgsMTkuMDczOSBDMTguMzA3OCwxNy40NTY5IDIxLjE2NTgsMTEuOTc2OSAxOS41NDc4LDYuODMyOSBDMTguMjQxOCwyLjY4MjkgMTQuMzQ2OCwtMC4xMDMxIDkuOTk1OCwwLjAwMjkiLz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTUuMzM4IDMuNDYyYTEuMiAxLjIgMCAxIDAgMCAyLjQgMS4yIDEuMiAwIDAgMCAwLTIuNE0xMCAxMy4zMzJhMy4zMzMgMy4zMzMgMCAxIDEgMC02LjY2NCAzLjMzMyAzLjMzMyAwIDAgMSAwIDYuNjY1bTAtOC40NjhhNS4xMzUgNS4xMzUgMCAxIDAgMCAxMC4yNyA1LjEzNSA1LjEzNSAwIDAgMCAwLTEwLjI3TTEwIDBDNy4yODQgMCA2Ljk0My4wMTIgNS44NzcuMDYgNC44MTMuMTA5IDQuMDg2LjI3OCAzLjQ1LjUyNWE0LjkxOSA0LjkxOSAwIDAgMC0xLjc3MiAxLjE1M0E0LjkwNSA0LjkwNSAwIDAgMCAuNTI1IDMuNDVDLjI3OCA0LjA4Ni4xMDkgNC44MTMuMDYgNS44NzcuMDExIDYuOTQ0IDAgNy4yODQgMCAxMHMuMDExIDMuMDU3LjA2IDQuMTIzYy4wNDkgMS4wNjUuMjE4IDEuNzkuNDY1IDIuNDI4YTQuODk4IDQuODk4IDAgMCAwIDEuMTUzIDEuNzcgNC44ODIgNC44ODIgMCAwIDAgMS43NzIgMS4xNTRjLjYzNi4yNDggMS4zNjMuNDE3IDIuNDI3LjQ2NSAxLjA2Ni4wNDggMS40MDcuMDYgNC4xMjMuMDZzMy4wNTYtLjAxMiA0LjEyMy0uMDZjMS4wNjUtLjA0OCAxLjc5MS0uMjE3IDIuNDI3LS40NjVhNC44NyA0Ljg3IDAgMCAwIDEuNzcxLTEuMTU0IDQuODg4IDQuODg4IDAgMCAwIDEuMTU0LTEuNzdjLjI0Ny0uNjM3LjQxNi0xLjM2My40NjUtMi40MjguMDQ4LTEuMDY2LjA2LTEuNDA3LjA2LTQuMTIzcy0uMDEyLTMuMDU2LS4wNi00LjEyM2MtLjA0OS0xLjA2NC0uMjE4LTEuNzkxLS40NjUtMi40MjdhNC44OTUgNC44OTUgMCAwIDAtMS4xNTQtMS43NzJBNC45MDcgNC45MDcgMCAwIDAgMTYuNTUuNTI1QzE1LjkxNC4yNzggMTUuMTg4LjEwOSAxNC4xMjMuMDYgMTMuMDU2LjAxMiAxMi43MTYgMCAxMCAwbTAgMS44MDJjMi42NyAwIDIuOTg2LjAxIDQuMDQxLjA1OC45NzUuMDQ1IDEuNTA1LjIwNyAxLjg1Ny4zNDUuNDY2LjE4Ljc5OS4zOTggMS4xNDkuNzQ4LjM1MS4zNDkuNTY3LjY4My43NDkgMS4xNDkuMTM3LjM1My4yOTkuODgyLjM0NCAxLjg1Ny4wNDggMS4wNTUuMDU4IDEuMzcuMDU4IDQuMDRzLS4wMSAyLjk4Ny0uMDU4IDQuMDQyYy0uMDQ1Ljk3NS0uMjA3IDEuNTA0LS4zNDQgMS44NTdhMy4xMSAzLjExIDAgMCAxLS43NDkgMS4xNWMtLjM1LjM1LS42ODMuNTY2LTEuMTQ5Ljc0OC0uMzUyLjEzNy0uODgyLjMtMS44NTcuMzQ0LTEuMDU1LjA0OS0xLjM3LjA1OC00LjA0MS4wNTgtMi42NyAwLTIuOTg3LS4wMS00LjA0MS0uMDU4LS45NzUtLjA0NC0xLjUwNC0uMjA3LTEuODU3LS4zNDRhMy4xMDQgMy4xMDQgMCAwIDEtMS4xNS0uNzQ4IDMuMTMzIDMuMTMzIDAgMCAxLS43NDgtMS4xNWMtLjEzNy0uMzUzLS4zLS44ODItLjM0NC0xLjg1Ny0uMDQ4LTEuMDU1LS4wNTgtMS4zNzEtLjA1OC00LjA0MSAwLTIuNjcuMDEtMi45ODYuMDU4LTQuMDQxLjA0NC0uOTc1LjIwNy0xLjUwNC4zNDQtMS44NTcuMTgyLS40NjYuMzk5LS44Ljc0OC0xLjE1LjM1LS4zNS42ODMtLjU2NiAxLjE1LS43NDcuMzUzLS4xMzguODgyLS4zIDEuODU3LS4zNDVDNy4wMTQgMS44MTIgNy4zMyAxLjgwMiAxMCAxLjgwMiIvPgo8L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMC41MTYsMTkuNjM4OSBMNC40MTIsMTkuNjM4OSBMNC40MTIsNy4yOTU5IEwwLjUxNiw3LjI5NTkgTDAuNTE2LDE5LjYzODkgWiBNMi4zNjUsNS43NTE5IEwyLjMzNyw1Ljc1MTkgQzEuMTUyLDUuODQ2OSAwLjExNCw0Ljk2MjkgMC4wMTksMy43NzY5IEMwLjAxNCwzLjcyMTkgMC4wMTIsMy42NjY5IDAuMDEyLDMuNjExOSBDLTAuMTE4LDIuMzA2OSAwLjgzNCwxLjE0MjkgMi4xNCwxLjAxMTkgQzMuNDQ2LDAuODgwOSA0LjYxLDEuODMzOSA0Ljc0LDMuMTM5OSBDNC44Nyw0LjQ0NTkgMy45MTgsNS42MDk5IDIuNjEyLDUuNzM5OSBDMi41Myw1Ljc0ODkgMi40NDcsNS43NTE5IDIuMzY1LDUuNzUxOSBMMi4zNjUsNS43NTE5IFogTTIwLDE5LjYzOTkgTDE1LjU4MywxOS42Mzk5IEwxNS41ODMsMTMuMjUxOSBDMTUuNTgzLDExLjU3OTkgMTQuODkxLDEwLjQzNTkgMTMuMzcyLDEwLjQzNTkgQzEyLjQxOCwxMC40MzU5IDExLjU2OSwxMS4wNDM5IDExLjI2MiwxMS45NDc5IEMxMS4xNzIsMTIuMjc1OSAxMS4xNCwxMi42MTc5IDExLjE3MiwxMi45NTY5IEwxMS4xNzIsMTkuNjM5OSBMNi43OTEsMTkuNjM5OSBDNi43OTEsMTkuNjM5OSA2Ljg0Nyw4LjMyNDkgNi43OTEsNy4yOTU5IEwxMS4xNjcsNy4yOTU5IEwxMS4xNjcsOS4yMzI5IEMxMS40MjYsOC4zODY5IDEyLjgyNCw3LjE3NjkgMTUuMDU1LDcuMTc2OSBDMTcuODI0LDcuMTc2OSAyMCw4Ljk1MjkgMjAsMTIuNzc1OSBMMjAsMTkuNjM5OSBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMi4zNzE2LDUuMjY0MiBDMi4zOTY2LDUuMDE2MiAyLjMwMjYsNC43NzIyIDIuMTE5Niw0LjYwNTIgTDAuMjUxNiwyLjMzOTIgTDAuMjUxNiwyLjAwMDIgTDYuMDUwNiwyLjAwMDIgTDEwLjUzMjYsMTEuOTA1MiBMMTQuNDcyNiwyLjAwMDIgTDE5Ljk5OTYsMi4wMDAyIEwxOS45OTk2LDIuMzM5MiBMMTguNDAzNiwzLjg4MTIgQzE4LjI2NTYsMy45ODcyIDE4LjE5NzYsNC4xNjAyIDE4LjIyNTYsNC4zMzIyIEwxOC4yMjU2LDE1LjY2NzIgQzE4LjE5NzYsMTUuODM5MiAxOC4yNjU2LDE2LjAxMzIgMTguNDAzNiwxNi4xMTkyIEwxOS45NjI2LDE3LjY2MTIgTDE5Ljk2MjYsMTguMDAwMiBMMTIuMTE5NiwxOC4wMDAyIEwxMi4xMTk2LDE3LjY2MTIgTDEzLjczNDYsMTYuMDgxMiBDMTMuODkzNiwxNS45MjEyIDEzLjg5MzYsMTUuODc0MiAxMy44OTM2LDE1LjYzMDIgTDEzLjg5MzYsNi40NjgyIEw5LjQwMjYsMTcuOTYyMiBMOC43OTU2LDE3Ljk2MjIgTDMuNTY2Niw2LjQ2ODIgTDMuNTY2NiwxNC4xNzIyIEMzLjUyMjYsMTQuNDk1MiAzLjYyOTYsMTQuODIxMiAzLjg1NjYsMTUuMDU2MiBMNS45NTY2LDE3LjYyNDIgTDUuOTU2NiwxNy45NjIyIEwtMC4wMDA0LDE3Ljk2MjIgTC0wLjAwMDQsMTcuNjI0MiBMMi4xMDA2LDE1LjA1NjIgQzIuMzI1NiwxNC44MjEyIDIuNDI1NiwxNC40OTMyIDIuMzcxNiwxNC4xNzIyIEwyLjM3MTYsNS4yNjQyIFoiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNOS45OTQ5LC0wLjAwMDEgQzQuNDc0OSwtMC4wMDAxIC0wLjAwMDEsNC40NzU5IC0wLjAwMDEsOS45OTU5IEMtMC4wMDAxLDEzLjk2NDkgMi4zNDg5LDE3LjU1NzkgNS45ODM5LDE5LjE1MDkgQzUuOTQwOSwxOC4zODA5IDUuOTk4OSwxNy42MDk5IDYuMTU1OSwxNi44NTQ5IEM2LjM0ODksMTYuMDQzOSA3LjQ0MTksMTEuNDA5OSA3LjQ0MTksMTEuNDA5OSBDNy4yMjQ5LDEwLjkxMDkgNy4xMTY5LDEwLjM3MDkgNy4xMjI5LDkuODI2OSBDNy4xMjI5LDguMzQ1OSA3Ljk4MjksNy4yMzk5IDkuMDQ5OSw3LjIzOTkgQzkuNzg5OSw3LjIyODkgMTAuMzk3OSw3LjgxOTkgMTAuNDA4OSw4LjU1OTkgQzEwLjQwODksOC42MjA5IDEwLjQwNTksOC42ODA5IDEwLjM5ODksOC43NDA5IEMxMC4yMDU5LDkuOTQ0OSA5LjkxMDksMTEuMTI5OSA5LjUxNTksMTIuMjg0OSBDOS4zMDQ5LDEzLjExMDkgOS44MDM5LDEzLjk1MjkgMTAuNjMwOSwxNC4xNjQ5IEMxMC43ODE5LDE0LjIwMjkgMTAuOTM3OSwxNC4yMTc5IDExLjA5MzksMTQuMjA5OSBDMTIuOTg3OSwxNC4yMDk5IDE0LjI2MzksMTEuNzc3OSAxNC4yNjM5LDguODk1OSBDMTQuMjYzOSw2LjcwNTkgMTIuNzg4OSw1LjA2NTkgMTAuMTAzOSw1LjA2NTkgQzcuNDkyOSw0Ljk2MTkgNS4yOTA5LDYuOTk0OSA1LjE4NjksOS42MDU5IEM1LjE4MzksOS42ODc5IDUuMTgyOSw5Ljc2OTkgNS4xODM5LDkuODUwOSBDNS4xNTI5LDEwLjU2MzkgNS4zODc5LDExLjI2MjkgNS44NDI5LDExLjgxMjkgQzYuMDA3OSwxMS45NDc5IDYuMDY1OSwxMi4xNzI5IDUuOTg1OSwxMi4zNzA5IEM1LjkzODksMTIuNTUyOSA1LjgyODksMTIuOTk4OSA1Ljc4MjksMTMuMTcyOSBDNS43NTI5LDEzLjM2MDkgNS41NzY5LDEzLjQ4ODkgNS4zODk5LDEzLjQ1NzkgQzUuMzUxOSwxMy40NTI5IDUuMzE1OSwxMy40NDA5IDUuMjgyOSwxMy40MjI5IEMzLjg4NTksMTIuODUzOSAzLjIzNTksMTEuMzI0OSAzLjIzNTksOS42MDY5IEMzLjIzNTksNi43Njc5IDUuNjI5OSwzLjM2MDkgMTAuMzc4OSwzLjM2MDkgQzE0LjE5NDksMy4zNjA5IDE2LjcwNzksNi4xMjQ5IDE2LjcwNzksOS4wODU5IEMxNi43MDc5LDEzLjAwNjkgMTQuNTI2OSwxNS45MzY5IDExLjMxMzksMTUuOTM2OSBDMTAuMzQxOSwxNS45NjE5IDkuNDIyOSwxNS40OTM5IDguODcxOSwxNC42OTE5IEM4Ljg3MTksMTQuNjkxOSA4LjI5MTksMTYuOTk0OSA4LjE2ODksMTcuNDM4OSBDNy45MzY5LDE4LjE5NjkgNy41OTg5LDE4LjkxNjkgNy4xNjI5LDE5LjU3OTkgQzEyLjQ1NTksMjEuMTQ3OSAxOC4wMTc5LDE4LjEyNjkgMTkuNTg1OSwxMi44MzM5IEMyMS4xNTI5LDcuNTQxOSAxOC4xMzM5LDEuOTc4OSAxMi44NDA5LDAuNDExOSBDMTEuOTE2OSwwLjEzNzkgMTAuOTU4OSwtMC4wMDAxIDkuOTk0OSwtMC4wMDAxIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTMuNDM4NCwxMy4wODI1IEMxMi42MDk0LDEzLjA4MjUgMTEuOTM3NCwxMi40MTA1IDExLjkzNzQsMTEuNTgwNSBDMTEuOTM3NCwxMC43NTE1IDEyLjYwOTQsMTAuMDc5NSAxMy40Mzg0LDEwLjA3OTUgQzE0LjI2NzQsMTAuMDc5NSAxNC45NDA0LDEwLjc1MTUgMTQuOTQwNCwxMS41ODA1IEMxNC45NzM0LDEyLjQwOTUgMTQuMzI4NCwxMy4xMDc1IDEzLjUwMDQsMTMuMTQxNSBDMTMuNDc0NCwxMy4xNDI1IDEzLjQ0OTQsMTMuMTQzNSAxMy40MjM0LDEzLjE0MjUgTDEzLjQzODQsMTMuMDgyNSBaIE0xMy43MDk0LDE1LjY0OTUgQzEyLjY0MzQsMTYuNDUyNSAxMS4zMzM0LDE2Ljg2MDUgMTAuMDAwNCwxNi44MDY1IEM4LjY2NzQsMTYuODYwNSA3LjM1NjQsMTYuNDUyNSA2LjI5MjQsMTUuNjQ5NSBDNi4xNDk0LDE1LjQ3NzUgNi4xNzQ0LDE1LjIyMTUgNi4zNDg0LDE1LjA3OTUgQzYuNDk3NCwxNC45NTY1IDYuNzEyNCwxNC45NTY1IDYuODYyNCwxNS4wNzk1IEM3Ljc2NTQsMTUuNzQxNSA4Ljg2NjQsMTYuMDc1NSA5Ljk4NTQsMTYuMDI0NSBDMTEuMTA1NCwxNi4wODY1IDEyLjIxMTQsMTUuNzYzNSAxMy4xMjM0LDE1LjEwOTUgQzEzLjI4OTQsMTQuOTQ3NSAxMy41NTQ0LDE0Ljk1MDUgMTMuNzE2NCwxNS4xMTY1IEMxMy44Nzc0LDE1LjI4MjUgMTMuODc1NCwxNS41NDg1IDEzLjcwOTQsMTUuNzA5NSBMMTMuNzA5NCwxNS42NDk1IFogTTQuOTg1NCwxMS41MjA1IEM0Ljk4NTQsMTAuNjkxNSA1LjY1NzQsMTAuMDE5NSA2LjQ4NjQsMTAuMDE5NSBDNy4zMTY0LDEwLjAxOTUgNy45ODg0LDEwLjY5MTUgNy45ODg0LDExLjUyMDUgQzcuOTg4NCwxMi4zNTA1IDcuMzE2NCwxMy4wMjE1IDYuNDg2NCwxMy4wMjE1IEM1LjY1NzQsMTMuMDIxNSA0Ljk4NTQsMTIuMzUwNSA0Ljk4NTQsMTEuNTIwNSBMNC45ODU0LDExLjUyMDUgWiBNMjAuMDAwNCwxMC4wMTk1IEMxOS45NTY0LDguODA5NSAxOC45Mzg0LDcuODY0NSAxNy43Mjk0LDcuOTA5NSBDMTcuMTkxNCw3LjkyODUgMTYuNjc5NCw4LjE0NTUgMTYuMjkxNCw4LjUxODUgQzE0LjU4MzQsNy4zNTY1IDEyLjU3NTQsNi43MTU1IDEwLjUxMDQsNi42NzE1IEwxMS40ODY0LDEuOTg2NSBMMTQuNzAwNCwyLjY2MjUgQzE0Ljc4ODQsMy40ODY1IDE1LjUyODQsNC4wODM1IDE2LjM1MzQsMy45OTQ1IEMxNy4xNzc0LDMuOTA2NSAxNy43NzQ0LDMuMTY1NSAxNy42ODU0LDIuMzQxNSBDMTcuNTk2NCwxLjUxNzUgMTYuODU2NCwwLjkyMDUgMTYuMDMyNCwxLjAwOTUgQzE1LjU1NzQsMS4wNjA1IDE1LjEzNDQsMS4zMzM1IDE0Ljg5NDQsMS43NDY1IEwxMS4yMTY0LDEuMDEwNSBDMTAuOTY1NCwwLjk1NjUgMTAuNzE2NCwxLjExNDUgMTAuNjYyNCwxLjM2NTUgQzEwLjY2MjQsMS4zNjc1IDEwLjY2MTQsMS4zNjk1IDEwLjY2MTQsMS4zNzE1IEw5LjU0OTQsNi41ODE1IEM3LjQ1OTQsNi42MTI1IDUuNDI0NCw3LjI1NDUgMy42OTQ0LDguNDI4NSBDMi44MTI0LDcuNTk4NSAxLjQyNTQsNy42NDA1IDAuNTk1NCw4LjUyMjUgQy0wLjIzMzYsOS40MDQ1IC0wLjE5MTYsMTAuNzkxNSAwLjY4OTQsMTEuNjIwNSBDMC44NjI0LDExLjc4MzUgMS4wNjE0LDExLjkxNzUgMS4yNzY0LDEyLjAxNjUgQzEuMjYwNCwxMi4yMzU1IDEuMjYwNCwxMi40NTc1IDEuMjc2NCwxMi42Nzc1IEMxLjI3NjQsMTYuMDQwNSA1LjE5NTQsMTguNzcyNSAxMC4wMzA0LDE4Ljc3MjUgQzE0Ljg2NTQsMTguNzcyNSAxOC43ODM0LDE2LjA0MDUgMTguNzgzNCwxMi42Nzc1IEMxOC44MDA0LDEyLjQ1NzUgMTguODAwNCwxMi4yMzU1IDE4Ljc4MzQsMTIuMDE2NSBDMTkuNTQwNCwxMS42NDA1IDIwLjAxMjQsMTAuODYzNSAyMC4wMDA0LDEwLjAxOTUgTDIwLjAwMDQsMTAuMDE5NSBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTUsMTkgQzE1LDExLjI4IDguNzIsNSAxLDUgQzAuNDQ3LDUgMCw1LjQ0OCAwLDYgQzAsNi41NTIgMC40NDcsNyAxLDcgQzcuNjE3LDcgMTMsMTIuMzgzIDEzLDE5IEMxMywxOS41NTMgMTMuNDQ3LDIwIDE0LDIwIEMxNC41NTMsMjAgMTUsMTkuNTUzIDE1LDE5IE0yMCwxOSBDMjAsOC41MjMgMTEuNDc3LDAgMSwwIEMwLjQ0NywwIDAsMC40NDggMCwxIEMwLDEuNTUyIDAuNDQ3LDIgMSwyIEMxMC4zNzQsMiAxOCw5LjYyNiAxOCwxOSBDMTgsMTkuNTUzIDE4LjQ0NywyMCAxOSwyMCBDMTkuNTUzLDIwIDIwLDE5LjU1MyAyMCwxOSBNMTAsMTkgQzEwLDE0LjAzNyA1Ljk2MywxMCAxLDEwIEMwLjQ0NywxMCAwLDEwLjQ0OCAwLDExIEMwLDExLjU1MiAwLjQ0NywxMiAxLDEyIEM0Ljg1OSwxMiA4LDE1LjE0MSA4LDE5IEM4LDE5LjU1MyA4LjQ0NywyMCA5LDIwIEM5LjU1MywyMCAxMCwxOS41NTMgMTAsMTkgTTUsMTcuNSBDNSwxOC44ODEgMy44ODEsMjAgMi41LDIwIEMxLjExOSwyMCAwLDE4Ljg4MSAwLDE3LjUgQzAsMTYuMTE5IDEuMTE5LDE1IDIuNSwxNSBDMy44ODEsMTUgNSwxNi4xMTkgNSwxNy41Ii8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTAuMTI2MDQzOSwxOSBDMTAuMDc1MDQ1MywxOSAxMC4wMjQwNDY4LDE4Ljk5ODA4MjMgOS45NzMwNDgyLDE4Ljk5NjE2NDUgQzkuOTQxMDQ5MSwxOC45OTgwODIzIDkuOTA3MDUwMDUsMTkgOS44NzQwNTA5OCwxOSBDOC42ODkwODQyMSwxOSA3LjkyODEwNTU1LDE4LjQ4NDEyNTMgNy4xOTMxMjYxNywxNy45ODU1MTAzIEM2LjY4NTE0MDQxLDE3LjY0MTI3NDIgNi4yMDYxNTM4NSwxNy4zMTcxNzQ1IDUuNjQxMTY5NjksMTcuMjI2MDgxNCBDNS4zNjYxNzc0LDE3LjE4MjkzMiA1LjA5MTE4NTExLDE3LjE2MDg3NzkgNC44MjcxOTI1MiwxNy4xNjA4Nzc5IEM0LjM0OTIwNTkyLDE3LjE2MDg3NzkgMy45NzIyMTY1LDE3LjIzMDg3NTggMy42OTcyMjQyMSwxNy4yODI2NTUgQzMuNTMwMjI4ODksMTcuMzE0Mjk3OSAzLjM4NjIzMjkzLDE3LjM0MjEwNTMgMy4yNzcyMzU5OSwxNy4zNDIxMDUzIEMzLjE2MjIzOTIxLDE3LjM0MjEwNTMgMy4wMzgyNDI2OSwxNy4zMTcxNzQ1IDIuOTg0MjQ0MiwxNy4xNDE3MDA0IEMyLjkzODI0NTQ5LDE2Ljk4NzMyMTUgMi45MDQyNDY0NSwxNi44Mzk2NTQ4IDIuODcxMjQ3MzcsMTYuNjk2NzgyNCBDMi43ODcyNDk3MywxNi4zMjc2MTU2IDIuNzI4MjUxMzgsMTYuMTAxMzIxMSAyLjU2NjI1NTkzLDE2LjA3NjM5MDQgQzAuNjg3MzA4NjIyLDE1Ljc5ODMxNjYgMC4xNDkzMjM3MDksMTUuNDE5NTYxIDAuMDI5MzI3MDc0NywxNS4xNDkxNTgzIEMwLjAxMjMyNzU1MTQsMTUuMTEwODAzMyAwLjAwMjMyNzgzMTg4LDE1LjA3MjQ0ODMgMC4wMDAzMjc4ODc5NjksMTUuMDM0MDkzMyBDLTAuMDA1NjcxOTQzNzcsMTQuOTMxNDkzNyAwLjA3MTMyNTg5NjgsMTQuODM5NDQxNyAwLjE3NzMyMjkyNCwxNC44MjMxNDA4IEMzLjA2NjI0MTksMTQuMzY2NzE2NCA0LjM2MTIwNTU5LDExLjUzNjExNzYgNC40MTUyMDQwNywxMS40MTYyNTgzIEM0LjQxNzIwNDAyLDExLjQxMjQyMjggNC40MTgyMDM5OSwxMS40MDk1NDYxIDQuNDIwMjAzOTMsMTEuNDA1NzEwNiBDNC41OTcxOTg5NywxMS4wNjI0MzM0IDQuNjMxMTk4MDIsMTAuNzY0MjIzMyA0LjUyMzIwMTA0LDEwLjUxOTcxMDIgQzQuMzI1MjA2NiwxMC4wNzA5NTY3IDMuNjc4MjI0NzQsOS44NzQzODczOSAzLjI1MTIzNjcyLDkuNzQ0OTM5MjcgQzMuMTQ2MjM5NjYsOS43MTIzMzc1MiAzLjA0NjI0MjQ3LDkuNjgyNjEyNCAyLjk2ODI0NDY1LDkuNjUyODg3MjggQzIuMTE0MjY4Niw5LjMyODc4NzU2IDIuMDQzMjcwNTksOC45OTcwMTY4MyAyLjA3NzI2OTY0LDguODI4MjU0ODUgQzIuMTM0MjY4MDQsOC41Mzk2MzM1IDIuNTM2MjU2NzcsOC4zMzgyNjk3NiAyLjg2MTI0NzY1LDguMzM4MjY5NzYgQzIuOTUwMjQ1MTYsOC4zMzgyNjk3NiAzLjAyOTI0Mjk0LDguMzUyNjUyODkgMy4wOTUyNDEwOSw4LjM4MjM3ODAxIEMzLjQ3OTIzMDMyLDguNTU0OTc1NSAzLjgyNTIyMDYyLDguNjQyMjMzMTEgNC4xMjQyMTIyMyw4LjY0MjIzMzExIEM0LjUzNzIwMDY1LDguNjQyMjMzMTEgNC43MTcxOTU2LDguNDc2MzQ3NzUgNC43MzkxOTQ5OSw4LjQ1NDI5MzYzIEM0LjcyOTE5NTI3LDguMjY3MzEzMDIgNC43MTYxOTU2Myw4LjA3MTcwMjU0IDQuNzAyMTk2MDIsNy44NjkzNzk5MyBDNC42MTYxOTg0NCw2LjU1OTU1Njc5IDQuNTEwMjAxNDEsNC45MzIzNDYwNSA0Ljk0MjE4OTI5LDQuMDAzMTk2MjUgQzYuMjM3MTUyOTgsMS4yMTk1ODIzNiA4Ljk4MzA3NTk3LDEuMDAyODc2NjIgOS43OTQwNTMyMiwxLjAwMjg3NjYyIEM5LjgxNDA1MjY2LDEuMDAyODc2NjIgMTAuMTQ5MDQzMywxIDEwLjE0OTA0MzMsMSBMMTAuMTk3MDQxOSwxIEMxMS4wMTAwMTkxLDEgMTMuNzYxOTQxOSwxLjIxNTc0Njg2IDE1LjA1NzkwNTYsNC4wMDEyNzg1IEMxNS40ODk4OTM1LDQuOTMxMzg3MTcgMTUuMzgyODk2NSw2LjU1OTU1Njc5IDE1LjI5Njg5ODksNy44Njg0MjEwNSBMMTUuMjkyODk5LDcuOTI0OTk0NjcgQzE1LjI4MTg5OTMsOC4xMDgxMzk3OCAxNS4yNjk4OTk3LDguMjg0NTcyNzcgMTUuMjU5ODk5OSw4LjQ1NDI5MzYzIEMxNS4yODA4OTkzLDguNDczNDcxMTMgMTUuNDQ2ODk0Nyw4LjYyNzg0OTk5IDE1LjgyMDg4NDIsOC42NDEyNzQyNCBMMTUuODIwODg0Miw4LjY0MTI3NDI0IEMxNi4xMDU4NzYyLDguNjMwNzI2NjEgMTYuNDMyODY3LDguNTQ0NDI3ODcgMTYuNzkxODU3LDguMzgyMzc4MDEgQzE2Ljg5Njg1NCw4LjMzNTM5MzE0IDE3LjAxMjg1MDgsOC4zMjU4MDQzOSAxNy4wOTI4NDg1LDguMzI1ODA0MzkgQzE3LjIxMzg0NTEsOC4zMjU4MDQzOSAxNy4zMzY4NDE3LDguMzQ4ODE3MzkgMTcuNDM4ODM4OCw4LjM4OTA5MDEzIEwxNy40NDU4Mzg2LDguMzkxOTY2NzYgQzE3LjczNTgzMDUsOC40ODk3NzIgMTcuOTI1ODI1Miw4LjY4NDQyMzYxIDE3LjkyOTgyNTEsOC44ODg2NjM5NyBDMTcuOTMzODI0OSw5LjA4MDQzODk1IDE3Ljc4MDgyOTIsOS4zNjkwNjAzIDE3LjAzMTg1MDIsOS42NTI4ODcyOCBDMTYuOTUzODUyNCw5LjY4MTY1MzUzIDE2Ljg1NDg1NTIsOS43MTIzMzc1MiAxNi43NDk4NTgxLDkuNzQ0OTM5MjcgQzE2LjMyMDg3MDIsOS44NzQzODczOSAxNS42NzQ4ODgzLDEwLjA3MDk1NjcgMTUuNDc2ODkzOCwxMC41MTg3NTEzIEMxNS4zNjc4OTY5LDEwLjc2MzI2NDQgMTUuNDAyODk1OSwxMS4wNjI0MzM0IDE1LjU3OTg5MSwxMS40MDU3MTA2IEMxNS41ODA4OTA5LDExLjQwODU4NzMgMTUuNTgyODkwOSwxMS40MTI0MjI4IDE1LjU4Mzg5MDgsMTEuNDE2MjU4MyBDMTUuNjM3ODg5MywxMS41MzYxMTc2IDE2LjkzMjg1MywxNC4zNjU3NTc1IDE5LjgyMjc3MiwxNC44MjMxNDA4IEMxOS45Mjg3NjksMTQuODM5NDQxNyAyMC4wMDQ3NjY5LDE0LjkzMDUzNDggMTkuOTk5NzY3LDE1LjAzNDA5MzMgQzE5Ljk5Njc2NzEsMTUuMDcyNDQ4MyAxOS45ODY3Njc0LDE1LjExMTc2MjIgMTkuOTY5NzY3OCwxNS4xNTAxMTcyIEMxOS44NTA3NzEyLDE1LjQxNzY0MzMgMTkuMzEzNzg2MiwxNS43OTYzOTg5IDE3LjQzMzgzOSwxNi4wNzU0MzE1IEMxNy4yNzk4NDMzLDE2LjA5ODQ0NDUgMTcuMjE5ODQ1LDE2LjI5MDIxOTUgMTcuMTI4ODQ3NSwxNi42OTE5ODgxIEMxNy4wOTU4NDg0LDE2LjgzODY5NTkgMTcuMDYxODQ5NCwxNi45ODI1MjcyIDE3LjAxNDg1MDcsMTcuMTM0MDI5NCBDMTYuOTc0ODUxOCwxNy4yNjQ0MzY0IDE2Ljg4OTg1NDIsMTcuMzI2NzYzMyAxNi43NDY4NTgyLDE3LjMyNjc2MzMgTDE2LjcyMjg1ODksMTcuMzI2NzYzMyBDMTYuNjIzODYxNywxNy4zMjY3NjMzIDE2LjQ4MTg2NTcsMTcuMzA4NTQ0NiAxNi4zMDE4NzA3LDE3LjI3NDk4NCBDMTUuOTgzODc5NiwxNy4yMTY0OTI2IDE1LjYyNjg4OTYsMTcuMTYwODc3OSAxNS4xNzI5MDI0LDE3LjE2MDg3NzkgQzE0LjkwNzkwOTgsMTcuMTYwODc3OSAxNC42MzM5MTc1LDE3LjE4MjkzMiAxNC4zNTc5MjUyLDE3LjIyNjA4MTQgQzEzLjc5Mzk0MSwxNy4zMTcxNzQ1IDEzLjMxNDk1NDUsMTcuNjQxMjc0MiAxMi44MDg5Njg3LDE3Ljk4NDU1MTUgQzEyLjA3MTk4OTMsMTguNDg0MTI1MyAxMS4zMTIwMTA3LDE5IDEwLjEyNjA0MzksMTkiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMCwxMy4yMyBDMCwxMy40ODIgMC4wOSwxMy42NzIgMC4yNywxMy44MDEgQzAuNDUsMTMuOTMgMC42NDIsMTMuOTc2IDAuODQ3LDEzLjkzOCBDMS4wMzksMTMuOSAxLjE3NCwxMy44MzEgMS4yNTIsMTMuNzMgQzEuMzI5LDEzLjYyOSAxLjM2OCwxMy40NjMgMS4zNjgsMTMuMjMgTDEuMzY4LDEwLjQ5NCBDMS4zNjgsMTAuMjk4IDEuMzAxLDEwLjEzMyAxLjE2OCw5Ljk5OCBDMS4wMzUsOS44NjMgMC44NzIsOS43OTQgMC42NzksOS43OTQgQzAuNDkzLDkuNzk0IDAuMzMzLDkuODYzIDAuMiw5Ljk5OCBDMC4wNjcsMTAuMTMzIDAsMTAuMjk4IDAsMTAuNDk0IEwwLDEzLjIzIFogTTIuMTQxLDE0LjQwMSBDMi4xNDEsMTQuNTg0IDIuMjA0LDE0LjcyIDIuMzMxLDE0LjgxMSBDMi40NTgsMTQuOTAzIDIuNjIxLDE0Ljk0OCAyLjgyLDE0Ljk0OCBDMy4wMjQsMTQuOTQ4IDMuMTksMTQuOTAzIDMuMzE4LDE0LjgxMSBDMy40NDUsMTQuNzIgMy41MDksMTQuNTg0IDMuNTA5LDE0LjQwMSBMMy41MDksOC4wMjEgQzMuNTA5LDcuODMyIDMuNDQyLDcuNjY5IDMuMzA5LDcuNTM0IEMzLjE3NSw3LjM5OSAzLjAxMiw3LjMzMiAyLjgyLDcuMzMyIEMyLjYzNCw3LjMzMiAyLjQ3NCw3LjM5OSAyLjM0MSw3LjUzNCBDMi4yMDcsNy42NjkgMi4xNDEsNy44MzIgMi4xNDEsOC4wMjEgTDIuMTQxLDE0LjQwMSBaIE00LjI3MSwxNC43MDMgQzQuMjcxLDE0Ljg4NSA0LjMzNywxNS4wMjIgNC40NjcsMTUuMTEzIEM0LjU5OCwxNS4yMDUgNC43NjUsMTUuMjUgNC45NywxNS4yNSBDNS4xNjgsMTUuMjUgNS4zMzEsMTUuMjA1IDUuNDU4LDE1LjExMyBDNS41ODUsMTUuMDIyIDUuNjQ5LDE0Ljg4NSA1LjY0OSwxNC43MDMgTDUuNjQ5LDguODc5IEM1LjY0OSw4LjY4NCA1LjU4Myw4LjUxOCA1LjQ0OSw4LjM3OSBDNS4zMTUsOC4yNDEgNS4xNTYsOC4xNzEgNC45Nyw4LjE3MSBDNC43NzcsOC4xNzEgNC42MTMsOC4yNDEgNC40NzcsOC4zNzkgQzQuMzQsOC41MTggNC4yNzEsOC42ODQgNC4yNzEsOC44NzkgTDQuMjcxLDE0LjcwMyBaIE02LjQxMiwxNC43MzEgQzYuNDEyLDE1LjA3NyA2LjY0MiwxNS4yNSA3LjEwMSwxNS4yNSBDNy41NiwxNS4yNSA3Ljc5LDE1LjA3NyA3Ljc5LDE0LjczMSBMNy43OSw1LjI5MyBDNy43OSw0Ljc2NCA3LjYyLDQuNDA0IDcuMzExLDQuMzY1IEM3LjEwMiw0LjMzNyA2LjkwOSw0LjMzOCA2LjcxLDQuNTA4IEM2LjUxMiw0LjY3OCA2LjQxMiw0Ljk4NSA2LjQxMiw1LjI5MyBMNi40MTIsMTQuNzMxIFogTTguNTksMTUuMDA0IEw4LjU5LDQuNzM2IEM4LjU5LDQuNDA5IDguNjg2LDQuMjE0IDguODc4LDQuMTUxIEM5LjI5NCw0LjA1IDkuNzA3LDQgMTAuMTE3LDQgQzExLjA2Niw0IDExLjk1LDQuMjI3IDEyLjc2OSw0LjY4IEMxMy41ODcsNS4xMzIgMTQuMjUsNS43NTEgMTQuNzU1LDYuNTM0IEMxNS4yNjEsNy4zMTcgMTUuNTU0LDguMTgxIDE1LjYzNSw5LjEyNSBDMTYuMDEzLDguOTYxIDE2LjQxNyw4Ljg3OSAxNi44NDUsOC44NzkgQzE3LjcxMyw4Ljg3OSAxOC40NTcsOS4xOTEgMTkuMDc0LDkuODE0IEMxOS42OTEsMTAuNDM3IDIwLDExLjE4NSAyMCwxMi4wNiBDMjAsMTIuOTQxIDE5LjY5MSwxMy42OTMgMTkuMDc0LDE0LjMxNiBDMTguNDU3LDE0LjkzOSAxNy43MTYsMTUuMjUxIDE2Ljg1NCwxNS4yNTEgTDguNzU4LDE1LjI0MSBDOC43MDIsMTUuMjIyIDguNjYsMTUuMTg3IDguNjMyLDE1LjEzNyBDOC42MDQsMTUuMDg2IDguNTksMTUuMDQyIDguNTksMTUuMDA0IEw4LjU5LDE1LjAwNCBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTAsMCBDNC40NzcsMCAwLDQuNDc3IDAsMTAgQzAsMTUuNTIyIDQuNDc3LDIwIDEwLDIwIEMxNS41MjIsMjAgMjAsMTUuNTIyIDIwLDEwIEMxOS45ODQsNC40ODQgMTUuNTE3LDAuMDE2IDEwLDAgTTE0LjYsMTQuNDU0IEMxNC40MzgsMTQuNzQgMTQuMDc1LDE0Ljg0MSAxMy43OSwxNC42NzkgQzEzLjc3NiwxNC42NzIgMTMuNzYzLDE0LjY2MyAxMy43NSwxNC42NTQgQzExLjQsMTMuMiA4LjQ1LDEyLjkwNCA0Ljk1LDEzLjcwNCBDNC42MTksMTMuNzg3IDQuMjgzLDEzLjU4NiA0LjIsMTMuMjU1IEM0LjExNywxMi45MjMgNC4zMTksMTIuNTg3IDQuNjUsMTIuNTA1IEM4LjQ1LDExLjY1NCAxMS43NSwxMi4wMDUgMTQuMzUsMTMuNjA0IEMxNC42NDcsMTMuNzQ5IDE0Ljc3MSwxNC4xMDcgMTQuNjI3LDE0LjQwNSBDMTQuNjE5LDE0LjQyMiAxNC42MDksMTQuNDM4IDE0LjYsMTQuNDU0IE0xNS44MDUsMTEuNyBDMTUuNTkxLDEyLjA1OCAxNS4xMjgsMTIuMTc0IDE0Ljc3MSwxMS45NiBDMTQuNzY2LDExLjk1NyAxNC43NiwxMS45NTMgMTQuNzU1LDExLjk1IEMxMS43MjUsMTAuMjQ3IDguMTM4LDkuODMzIDQuOCwxMC44IEM0LjM5OSwxMC45MjYgMy45NzMsMTAuNzAzIDMuODQ4LDEwLjMwMyBDMy43MjIsOS45MDIgMy45NDUsOS40NzYgNC4zNDUsOS4zNSBDOC4xMjYsOC4yNjkgMTIuMTgzLDguNzU1IDE1LjYsMTAuNyBDMTUuOTI5LDEwLjkwOSAxNi4wMjYsMTEuMzQ2IDE1LjgxNiwxMS42NzUgQzE1LjgxMiwxMS42ODQgMTUuODA2LDExLjY5MSAxNS44LDExLjcgTTE1LjksOC45IEMxMi43LDcgNy4zNSw2LjggNC4zLDcuNzUgQzMuODIzLDcuOTIgMy4yOTgsNy42NzEgMy4xMjgsNy4xOTQgQzIuOTU4LDYuNzE3IDMuMjA2LDYuMTkyIDMuNjgzLDYuMDIyIEMzLjcwNyw2LjAxNCAzLjczLDYuMDA2IDMuNzU0LDYgQzcuMzA1LDQuOTUgMTMuMTU0LDUuMTUgMTYuODU0LDcuMzUgQzE3LjMwNCw3LjYxNyAxNy40NTksOC4xOTMgMTcuMjA0LDguNjUgQzE2Ljg4Niw5LjAzMSAxNi4zNDIsOS4xMzYgMTUuOTA0LDguOSIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTguNTQgMS4yTC43NzggOC40NThzLS44NC4zLS43NzQuODUyYy4wNjYuNTUzLjc1Mi44MDcuNzUyLjgwN2w0LjQ2OCAxLjU2NiAxMC43MjgtNy4wOTZzLjYyLS4zOTIuNTk3IDBjMCAwIC4xMTEuMDctLjIyLjM5MS0uMzMzLjMyNC04LjQyOSA3LjkwNC04LjQyOSA3LjkwNGwtLjU4MyA1LjE4MmMuMjQ3LjExMi40NzMtLjA2Ni40NzMtLjA2NmwyLjg4Ny0yLjc0MiA0LjUwMSAzLjU5M2MxLjIxNi41NTQgMS42Ni0uNTk4IDEuNjYtLjU5OEwyMCAxLjYzOGMwLTEuMTA2LTEuNDYtLjQzOC0xLjQ2LS40MzgiLz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTUuMDgzLDE1Ljk2NSBDMTQuNTk1LDE2LjE3MyAxNC4wNzEsMTYuMjkgMTMuNTQsMTYuMzEgQzEyLjU4NSwxNi4zOCAxMS43NTQsMTUuNjY5IDExLjY4NCwxNC43MjQgQzExLjY3NCwxNC41OTYgMTEuNjc5LDE0LjQ2NyAxMS42OTgsMTQuMzQgTDExLjY5OCw4LjExNSBMMTUuNTQyLDguMTE1IEwxNS41NDIsNS4wODcgTDExLjcwNyw1LjA4NyBMMTEuNzA3LDAgTDguOTA0LDAgQzguODI3LDAuMDA4IDguNzY4LDAuMDcyIDguNzY2LDAuMTUgQzguNjY3LDIuNTE1IDcuMjAxLDQuNjEyIDUsNS41MzMgTDUsOC4xMTUgTDYuOTM3LDguMTE1IEw2LjkzNywxNC42NDggQzYuOTAzLDE3LjU2OSA5LjI2NiwxOS45NjYgMTIuMjE1LDE5Ljk5OSBDMTIuMzcyLDIwLjAwMSAxMi41MjksMTkuOTk2IDEyLjY4NywxOS45ODUgQzE0LjA5NCwxOS45NiAxNS42NTUsMTkuMzQ5IDE2LDE4LjgxNCBMMTUuMDgzLDE1Ljk2MyIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMS40MDYgMEwwIDMuNDMzdjE0LjAzaDUuMDAxVjIwaDIuODEybDIuNjU2LTIuNTM3aDQuMDYzTDIwIDEyLjIzOFYwSDEuNDA2em0xLjcxOSAxLjc5MWgxNXY5LjU1MkwxNSAxNC4zMjhoLTVsLTIuNjU2IDIuNTM3di0yLjUzN0gzLjEyNVYxLjc5MXptMTAgOC42NTFoMS44NzZWNS4yMjRoLTEuODc2djUuMjE4em0tNSAwSDEwVjUuMjI0SDguMTI1djUuMjE4eiIvPgo8L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNNi4yOSAxOC4yNTRjNy41NDcgMCAxMS42NzUtNi4yNTMgMTEuNjc1LTExLjY3NSAwLS4xNzgtLjAwNC0uMzU0LS4wMTItLjUzQTguMzM5IDguMzM5IDAgMCAwIDIwIDMuOTI0YTguMTY1IDguMTY1IDAgMCAxLTIuMzU2LjY0NiA0LjEyIDQuMTIgMCAwIDAgMS44MDQtMi4yNyA4LjE5OCA4LjE5OCAwIDAgMS0yLjYwNi45OTZBNC4xMDQgNC4xMDQgMCAwIDAgOS44NSA3LjAzOWExMS42NTIgMTEuNjUyIDAgMCAxLTguNDU4LTQuMjg3IDQuMTAxIDQuMTAxIDAgMCAwIDEuMjcgNS40NzcgNC4wNTggNC4wNTggMCAwIDEtMS44NTgtLjUxM2wtLjAwMS4wNTJhNC4xMDQgNC4xMDQgMCAwIDAgMy4yOTIgNC4wMjMgNC4xMDcgNC4xMDcgMCAwIDEtMS44NTMuMDcgNC4xMDcgNC4xMDcgMCAwIDAgMy44MzMgMi44NSA4LjIzMyA4LjIzMyAwIDAgMS01LjA5NiAxLjc1N0E4LjMzIDguMzMgMCAwIDEgMCAxNi40MTFhMTEuNjE0IDExLjYxNCAwIDAgMCA2LjI5IDEuODQzIi8+Cjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTQuNzg1IDExLjk1N2MtLjI0Ni0uMTM1LTEuNDU1LS43ODMtMS42ODMtLjg3My0uMjI2LS4wOTEtLjM5LS4xNC0uNTY4LjEwNC0uMTc3LjI0Mi0uNjc5Ljc4NC0uODMuOTQ0LS4xNTIuMTYyLS4zLjE3Ny0uNTQ2LjA0My0uMjQ2LS4xMzUtMS4wNDMtLjQyOC0xLjk2OS0xLjMxLS43MTktLjY4Ny0xLjE5Mi0xLjUyLTEuMzI5LTEuNzc0LS4xMzctLjI1NSAwLS4zODQuMTMtLjUwMy4xMTYtLjEwNy4yNjEtLjI4MS4zOTItLjQyMS4xMy0uMTQyLjE3Ni0uMjQ0LjI2Ni0uNDA2LjA5LS4xNjMuMDU0LS4zMS0uMDA1LS40MzctLjA1OC0uMTI1LS41MTItMS4zNjktLjcwMy0xLjg3NS0uMTktLjUwNS0uNC0uNDMtLjU0OC0uNDM2LS4xNDYtLjAwNS0uMzEyLS4wMzItLjQ3OS0uMDM3YS45MjUuOTI1IDAgMCAwLS42OC4yODVjLS4yNC4yNC0uOTA5LjgxOS0uOTU2IDIuMDQyLS4wNDYgMS4yMjQuODA3IDIuNDQuOTI2IDIuNjEuMTIuMTcgMS42MyAyLjgyMiA0LjE0IDMuOTEzIDIuNTEgMS4wOTEgMi41MjMuNzU4IDIuOTg0LjczNC40NjEtLjAyNCAxLjUwNS0uNTQ2IDEuNzM2LTEuMTIuMjMxLS41NzIuMjUtMS4wNy4xOTEtMS4xNzUtLjA1OS0uMTA3LS4yMjMtLjE3Ni0uNDY5LS4zMDltLTQuNjA0IDUuODk2YTguMTggOC4xOCAwIDAgMS00LjQ5Ny0xLjM0bC0zLjE0Ljk5NyAxLjAyLTMuMDExYTguMDI1IDguMDI1IDAgMCAxLTEuNTU2LTQuNzU1YzAtNC40NzQgMy42NjctOC4xMTIgOC4xNzMtOC4xMTIgNC41MDcgMCA4LjE3MyAzLjYzOCA4LjE3MyA4LjExMSAwIDQuNDcyLTMuNjY2IDguMTEtOC4xNzMgOC4xMW0wLTE3Ljg1MkM0Ljc2IDAgLjM2MyA0LjM2Mi4zNjMgOS43NDJjMCAxLjg0MS41MTUgMy41NjMgMS40MSA1LjAzTDAgMjBsNS40MzUtMS43MjdhOS44MzggOS44MzggMCAwIDAgNC43NDYgMS4yMTJjNS40MjMgMCA5LjgyLTQuMzYyIDkuODItOS43NDIgMC01LjM4MS00LjM5Ny05Ljc0NC05LjgyLTkuNzQ0Ii8+Cjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTkuOTkyNSw1LjE1NjggQzE5LjkwNTUsNy4xODU4IDE4LjU0NjUsOS45NjA4IDE1LjkxNjUsMTMuNDc5OCBDMTMuMTk3NSwxNy4xNTk4IDEwLjg5NDUsMTguOTk5OCA5LjAxMDUsMTguOTk5OCBDNy44NDU1LDE4Ljk5OTggNi44NTk1LDE3Ljg3ODggNi4wNTM1LDE1LjYzNTggQzUuNTEzNSwxMy41NzU4IDQuOTc0NSwxMS41MTY4IDQuNDM4NSw5LjQ2MTggQzMuODM4NSw3LjIxNTggMy4xOTU1LDYuMDkxOCAyLjUwOTUsNi4wOTI4IEMxLjkzODUsNi4zMzk4IDEuNDA5NSw2LjY3MTggMC45NDA1LDcuMDc2OCBMLTAuMDAwNSw1LjgxNTggQzAuOTg1NSw0LjkxNTggMS45NTc1LDQuMDExOCAyLjkxNTUsMy4xMDY4IEM0LjIyODUsMS45MjE4IDUuMjE0NSwxLjI5NzggNS44NzM1LDEuMjM0OCBDNy40MjY1LDEuMDc2OCA4LjM4MzUsMi4xODI4IDguNzQ0NSw0LjU1MzggQzkuMTI5NSw3LjExMTggOS4zOTc1LDguNzAxOCA5LjU0ODUsOS4zMjU4IEM5Ljk5ODUsMTEuNDQ1OCAxMC40OTE1LDEyLjUwNTggMTEuMDI3NSwxMi41MDM4IEMxMS40NDU1LDEyLjUwMzggMTIuMDczNSwxMS44MTg4IDEyLjkxMTUsMTAuNDQ4OCBDMTMuNTcyNSw5LjUwNzggMTQuMDMwNSw4LjQzOTggMTQuMjU1NSw3LjMxNDggQzE0LjM3NTUsNi4xMjg4IDEzLjkyNzUsNS41Mzk4IDEyLjkxMTUsNS41Mzk4IEMxMi40MDA1LDUuNTQ0OCAxMS44OTY1LDUuNjU2OCAxMS40MzE1LDUuODY1OCBDMTIuNDE5NSwyLjUyOTggMTQuMzAzNSwwLjkwODggMTcuMDgyNSwxLjAwMzggQzE5LjE0MTUsMS4wNjM4IDIwLjExMDUsMi40NDk4IDE5Ljk4OTUsNS4xNjI4Ii8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNNi44NjEzLDAuMzg5NiBDNi4wNTYzLDAuNTkwNiA1LjI4OTMsMC44NTY2IDQuNTYzMywxLjE3ODYgQzQuMDU5MywxLjQwMTYgMy44NzAzLDEuOTc5NiA0LjE0ODMsMi40Mjk2IEw4LjUxNzMsOS40NzU2IEM5LjAwNzMsMTAuMjY2NiAxMC4zMDUzLDkuOTQyNiAxMC4zMDUzLDkuMDI5NiBMMTAuMzA1MywwLjg5MzYgQzEwLjMwNTMsMC4zNzM2IDkuODMwMywtMC4wMzg0IDkuMjc0MywwLjAwMjYgQzguNDcyMywwLjA2MTYgNy42NjYzLDAuMTg5NiA2Ljg2MTMsMC4zODk2IE0xNy45MjAzLDkuMjc0NiBDMTcuNDI2Myw4LjIxMzYgMTYuNjk2Myw3LjI5NzYgMTUuODA1Myw2LjU2NTYgQzE1LjM3MjMsNi4yMDk2IDE0LjcwMTMsNi4yOTE2IDE0LjM3ODMsNi43Mzc2IEwxMS43NzczLDEwLjMyNzYgQzExLjI3NzMsMTEuMDE3NiAxMS45NzYzLDExLjkxMjYgMTIuODM2MywxMS42ODM2IEwxNy4zMDUzLDEwLjQ5MDYgQzE3Ljg2MzMsMTAuMzQxNiAxOC4xNTAzLDkuNzY5NiAxNy45MjAzLDkuMjc0NiBNMTEuNzAwMywxNC40Mzg2IEwxNC4xNjUzLDE4LjExMTYgQzE0LjQ3MjMsMTguNTY5NiAxNS4xNDIzLDE4LjY2OTYgMTUuNTkwMywxOC4zMjY2IEMxNi41MjkzLDE3LjYwNDYgMTcuMjgyMywxNi43MDA2IDE3LjgwMDMsMTUuNjg4NiBDMTguMDQ5MywxNS4yMDI2IDE3Ljc4MTMsMTQuNjIxNiAxNy4yMzEzLDE0LjQ1NDYgTDEyLjgwOTMsMTMuMTE3NiBDMTEuOTU4MywxMi44NTk2IDExLjIyNjMsMTMuNzMyNiAxMS43MDAzLDE0LjQzODYgTTUuNjAxMywxOC43MzI2IEM2LjU5NDMsMTkuMzY3NiA3LjczMTMsMTkuNzk5NiA4LjkzMzMsMTkuOTg3NiBDOS41MDUzLDIwLjA3NjYgMTAuMDMxMywxOS42Nzc2IDEwLjA1MTMsMTkuMTM3NiBMMTAuMjE0MywxNC44MDk2IEMxMC4yNDUzLDEzLjk3NjYgOS4xNDIzLDEzLjU2MjYgOC41NDQzLDE0LjE4MTYgTDUuNDMyMywxNy4zOTk2IEM1LjA0NjMsMTcuNzk5NiA1LjEyNTMsMTguNDI2NiA1LjYwMTMsMTguNzMyNiBNMy43NTkzLDkuMzg2NiBMNy45MzkzLDExLjI4NTYgQzguNzQzMywxMS42NTA2IDguNjE5MywxMi43NTA2IDcuNzUxMywxMi45NTI2IEwzLjIzOTMsMTMuOTk5NiBDMi42NzYzLDE0LjEzMDYgMi4xMjEzLDEzLjc2OTYgMi4wNTQzLDEzLjIzMjYgQzEuOTEyMywxMi4wODQ2IDIuMDUyMywxMC45NTE2IDIuNDMxMyw5LjkwMjYgQzIuNjE1Myw5LjM5MjYgMy4yNDAzLDkuMTUxNiAzLjc1OTMsOS4zODY2Ii8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNOCwxMyBMOCw3IEwxMywxMCBMOCwxMyBaIE0xOS41ODIsNS4xODYgQzE5LjM1Myw0LjMyNiAxOC42NzUsMy42NDggMTcuODEzLDMuNDE4IEMxNi4yNTQsMyAxMCwzIDEwLDMgQzEwLDMgMy43NDYsMyAyLjE4NiwzLjQxOCBDMS4zMjYsMy42NDggMC42NDgsNC4zMjYgMC40MTgsNS4xODYgQzAsNi43NDYgMCwxMCAwLDEwIEMwLDEwIDAsMTMuMjU0IDAuNDE4LDE0LjgxMyBDMC42NDgsMTUuNjc1IDEuMzI2LDE2LjM1MyAyLjE4NiwxNi41ODIgQzMuNzQ2LDE3IDEwLDE3IDEwLDE3IEMxMCwxNyAxNi4yNTQsMTcgMTcuODEzLDE2LjU4MiBDMTguNjc1LDE2LjM1MyAxOS4zNTMsMTUuNjc1IDE5LjU4MiwxNC44MTMgQzIwLDEzLjI1NCAyMCwxMCAyMCwxMCBDMjAsMTAgMjAsNi43NDYgMTkuNTgyLDUuMTg2IEwxOS41ODIsNS4xODYgWiIvPgo8L3N2Zz4K\"","import { ReactComponent as LogoAngellist20 } from '../../icons/logo-angellist-20.svg'\nimport { ReactComponent as LogoCodepen20 } from '../../icons/logo-codepen-20.svg'\nimport { ReactComponent as LogoDribbble20 } from '../../icons/logo-dribbble-20.svg'\nimport { ReactComponent as LogoFacebook20 } from '../../icons/logo-facebook-20.svg'\nimport { ReactComponent as LogoGithub20 } from '../../icons/logo-github-20.svg'\nimport { ReactComponent as LogoInstagram20 } from '../../icons/logo-instagram-20.svg'\nimport { ReactComponent as LogoLinkedin20 } from '../../icons/logo-linkedin-20.svg'\nimport { ReactComponent as LogoMedium20 } from '../../icons/logo-medium-20.svg'\nimport { ReactComponent as LogoPinterest20 } from '../../icons/logo-pinterest-20.svg'\nimport { ReactComponent as LogoReddit20 } from '../../icons/logo-reddit-20.svg'\nimport { ReactComponent as LogoRss20 } from '../../icons/logo-rss-20.svg'\nimport { ReactComponent as LogoSnapchat20 } from '../../icons/logo-snapchat-20.svg'\nimport { ReactComponent as LogoSoundcloud20 } from '../../icons/logo-soundcloud-20.svg'\nimport { ReactComponent as LogoSpotify20 } from '../../icons/logo-spotify-20.svg'\nimport { ReactComponent as LogoTelegram20 } from '../../icons/logo-telegram-20.svg'\nimport { ReactComponent as LogoTumblr20 } from '../../icons/logo-tumblr-20.svg'\nimport { ReactComponent as LogoTwitch20 } from '../../icons/logo-twitch-20.svg'\nimport { ReactComponent as LogoTwitter20 } from '../../icons/logo-twitter-20.svg'\nimport { ReactComponent as LogoWhatsapp20 } from '../../icons/logo-whatsapp-20.svg'\nimport { ReactComponent as LogoVimeo20 } from '../../icons/logo-vimeo-20.svg'\nimport { ReactComponent as LogoYelp20 } from '../../icons/logo-yelp-20.svg'\nimport { ReactComponent as LogoYoutube20 } from '../../icons/logo-youtube-20.svg'\n\nexport const SocialLinksOptions = [\n { type: 'angellist', label: 'AngelList', icon: <LogoAngellist20 />, brandColor: 'black' },\n { type: 'codepen', label: 'CodePen', icon: <LogoCodepen20 />, brandColor: 'black' },\n { type: 'dribbble', label: 'Dribbble', icon: <LogoDribbble20 />, brandColor: '#ea4c89' },\n { type: 'facebook', label: 'Facebook', icon: <LogoFacebook20 />, brandColor: '#3b5998' },\n { type: 'github', label: 'GitHub', icon: <LogoGithub20 />, brandColor: 'black' },\n { type: 'instagram', label: 'Instagram', icon: <LogoInstagram20 />, brandColor: 'black' },\n { type: 'linkedin', label: 'LinkedIn', icon: <LogoLinkedin20 />, brandColor: '#0077b5' },\n { type: 'medium', label: 'Medium', icon: <LogoMedium20 />, brandColor: 'black' },\n { type: 'pinterest', label: 'Pinterest', icon: <LogoPinterest20 />, brandColor: '#bd081c' },\n { type: 'reddit', label: 'Reddit', icon: <LogoReddit20 />, brandColor: '#ff4500' },\n { type: 'rss', label: 'RSS', icon: <LogoRss20 />, brandColor: 'black' },\n { type: 'snapchat', label: 'Snapchat', icon: <LogoSnapchat20 />, brandColor: '#fffc00' },\n { type: 'soundcloud', label: 'SoundCloud', icon: <LogoSoundcloud20 />, brandColor: '#ff3300' },\n { type: 'spotify', label: 'Spotify', icon: <LogoSpotify20 />, brandColor: '#1db954' },\n { type: 'telegram', label: 'Telegram', icon: <LogoTelegram20 />, brandColor: '#0088cc' },\n { type: 'tumblr', label: 'Tumblr', icon: <LogoTumblr20 />, brandColor: '#35465c' },\n { type: 'twitch', label: 'Twitch', icon: <LogoTwitch20 />, brandColor: '#6441A4' },\n { type: 'twitter', label: 'Twitter', icon: <LogoTwitter20 />, brandColor: '#1da1f2' },\n { type: 'whatsapp', label: 'WhatsApp', icon: <LogoWhatsapp20 />, brandColor: '#25d366' },\n { type: 'vimeo', label: 'Vimeo', icon: <LogoVimeo20 />, brandColor: '#1ab7ea' },\n { type: 'yelp', label: 'Yelp', icon: <LogoYelp20 />, brandColor: '#af0606' },\n { type: 'youtube', label: 'YouTube', icon: <LogoYoutube20 />, brandColor: '#ff0000' },\n] as const\n","import styled from 'styled-components'\n\nimport { ResponsiveValue, Length } from '../../../../../prop-controllers/descriptors'\n\nimport GutterContainer from '../../../../shared/GutterContainer'\n\nconst PlaceholderLink = styled.div`\n width: 44px;\n height: 44px;\n border-radius: 50%;\n background-color: rgba(161, 168, 194, 0.4);\n`\n\nconst links = [{ id: '1' }, { id: '2' }, { id: '3' }]\n\ntype Props = { gutter?: ResponsiveValue<Length> }\n\nexport default function SocialLinksPlaceholder({ gutter }: Props): JSX.Element {\n return (\n <>\n {links.map((link, i) => (\n <GutterContainer\n key={link.id}\n gutter={gutter}\n first={i === 0}\n last={i === links.length - 1}\n >\n <PlaceholderLink />\n </GutterContainer>\n ))}\n </>\n )\n}\n","import { forwardRef, Ref } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { Link } from '../../shared/Link'\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useColor } from '../../hooks'\nimport { SocialLinksOptions } from './options'\nimport GutterContainer from '../../shared/GutterContainer'\nimport SocialLinksPlaceholder from './components/SocialLinksPlaceholder'\nimport {\n ResponsiveValue,\n ElementIDValue,\n SocialLinksValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveSelectValue,\n ResponsiveColorValue,\n GapXValue,\n WidthValue,\n MarginValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n links?: SocialLinksValue\n shape?: ResponsiveIconRadioGroupValue<'naked' | 'circle' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n hoverStyle?: ResponsiveSelectValue<'none' | 'grow' | 'shrink' | 'fade'>\n fill?: ResponsiveColorValue\n backgroundColor?: ResponsiveColorValue\n alignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gutter?: GapXValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst Container = styled.div<{\n width: Props['width']\n margin: Props['margin']\n alignment: Props['alignment']\n}>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n ${cssWidth()}\n ${cssMargin()}\n ${p =>\n cssMediaRules(\n [p.alignment] as const,\n ([alignment = 'center']) => css`\n justify-content: ${alignment};\n `,\n )}\n`\n\nconst StyledLink = styled(Link)<{\n brandColor: string\n shape: Props['shape']\n size: Props['size']\n hoverStyle: Props['hoverStyle']\n fill: ResponsiveValue<Color> | null | undefined\n backgroundColor: ResponsiveValue<Color> | null | undefined\n}>`\n display: block;\n color: ${props => props.brandColor};\n transition: transform, opacity 0.18s;\n\n svg {\n display: block;\n }\n\n ${p =>\n cssMediaRules(\n [p.shape, p.size, p.hoverStyle, p.fill, p.backgroundColor] as const,\n ([shape = 'naked', size = 'medium', hoverStyle = 'none', fill, backgroundColor]) => css`\n padding: ${shape === 'naked' ? 0 : { small: 10, medium: 12, large: 14 }[size]}px;\n border-radius: ${{ circle: '50%', rounded: '8px', naked: 0, square: 0 }[shape]};\n background: ${shape === 'naked'\n ? 'transparent'\n : backgroundColor == null\n ? 'currentColor'\n : colorToString(backgroundColor)};\n\n :hover {\n ${{\n none: '',\n grow: css`\n transform: scale(1.1);\n `,\n shrink: css`\n transform: scale(0.9);\n `,\n fade: css`\n opacity: 0.65;\n `,\n }[hoverStyle]}\n }\n\n svg {\n fill: ${fill == null\n ? shape === 'naked' || backgroundColor != null\n ? 'currentColor'\n : 'white'\n : colorToString(fill)};\n width: ${{ small: 16, medium: 20, large: 24 }[size]}px;\n height: ${{ small: 16, medium: 20, large: 24 }[size]}px;\n }\n `,\n )}\n`\n\nconst SocialLinks = forwardRef(function SocialLinks(\n {\n id,\n links: { links, openInNewTab } = { links: [], openInNewTab: false },\n shape,\n size,\n hoverStyle,\n fill,\n backgroundColor,\n alignment,\n gutter,\n width,\n margin,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const fillData = useColor(fill)\n const backgroundColorData = useColor(backgroundColor)\n\n return (\n <Container ref={ref} id={id} alignment={alignment} width={width} margin={margin}>\n {links.length > 0 ? (\n links.map((link, i) => {\n const option = SocialLinksOptions.find(o => o.type === link.payload.type)\n\n if (!option) throw new Error(`Invalid link payload type ${link.payload.type}`)\n\n return (\n <GutterContainer\n key={link.id}\n gutter={gutter}\n first={i === 0}\n last={i === links.length - 1}\n >\n <StyledLink\n backgroundColor={backgroundColorData}\n brandColor={option.brandColor}\n fill={fillData}\n hoverStyle={hoverStyle}\n link={{ type: 'OPEN_URL', payload: { url: link.payload.url, openInNewTab } }}\n shape={shape}\n size={size}\n >\n {option == null ? null : option.icon}\n </StyledLink>\n </GutterContainer>\n )\n })\n ) : (\n <SocialLinksPlaceholder gutter={gutter} />\n )}\n </Container>\n )\n})\n\nexport default SocialLinks\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(SocialLinks, {\n type: './components/SocialLinks/index.js',\n label: 'Social Links',\n icon: 'SocialLinks40',\n props: {\n id: Props.ElementID(),\n links: Props.SocialLinks({\n preset: {\n links: [\n {\n id: 'facebook',\n payload: { type: 'facebook', url: 'https://www.facebook.com' },\n },\n {\n id: 'instagram',\n payload: { type: 'instagram', url: 'https://www.instagram.com' },\n },\n {\n id: 'twitter',\n payload: { type: 'twitter', url: 'https://www.twitter.com' },\n },\n ],\n openInNewTab: false,\n },\n }),\n shape: Props.ResponsiveIconRadioGroup({\n label: 'Shape',\n options: [\n { label: 'Naked', value: 'naked', icon: 'Star16' },\n { label: 'Circle', value: 'circle', icon: 'StarCircle16' },\n { label: 'Rounded', value: 'rounded', icon: 'StarRoundedSquare16' },\n { label: 'Square', value: 'square', icon: 'StarSquare16' },\n ],\n defaultValue: 'naked',\n // hidden: links == null || links.links.length === 0,\n }),\n size: Props.ResponsiveIconRadioGroup({\n label: 'Size',\n options: [\n { label: 'Small', value: 'small', icon: 'SizeSmall16' },\n { label: 'Medium', value: 'medium', icon: 'SizeMedium16' },\n { label: 'Large', value: 'large', icon: 'SizeLarge16' },\n ],\n defaultValue: 'medium',\n // hidden: links == null || links.links.length === 0,\n }),\n hoverStyle: Props.ResponsiveSelect({\n label: 'On hover',\n options: [\n { value: 'none', label: 'None' },\n { value: 'grow', label: 'Grow' },\n { value: 'shrink', label: 'Shrink' },\n { value: 'fade', label: 'Fade' },\n ],\n defaultValue: 'none',\n labelOrientation: 'horizontal',\n // hidden: links == null || links.links.length === 0,\n }),\n fill: Props.ResponsiveColor({\n label: 'Icon color',\n // hidden: links == null || links.links.length === 0,\n }),\n backgroundColor: Props.ResponsiveColor({\n label: 'Shape color',\n // hidden: links == null || links.links.length === 0,\n }),\n alignment: Props.ResponsiveIconRadioGroup({\n label: 'Alignment',\n options: [\n { label: 'flex-start', value: 'flex-start', icon: 'AlignLeft16' },\n { label: 'center', value: 'center', icon: 'AlignCenter16' },\n { label: 'flex-end', value: 'flex-end', icon: 'AlignRight16' },\n ],\n defaultValue: 'center',\n }),\n gutter: Props.GapX({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Link gap',\n min: 0,\n max: 100,\n step: 1,\n defaultValue: { value: 0, unit: 'px' },\n }),\n width: Props.Width({ defaultValue: { value: 100, unit: '%' } }),\n margin: Props.Margin({\n preset: [\n {\n deviceId: 'desktop',\n value: {\n marginTop: { value: 10, unit: 'px' },\n marginRight: 'auto',\n marginBottom: { value: 10, unit: 'px' },\n marginLeft: 'auto',\n },\n },\n ],\n }),\n },\n })\n}\n","import type { ColorValue } from '../utils/types'\nimport type { Length as LengthValue } from '../../prop-controllers'\nimport { DeviceOverride } from '../../prop-controllers'\nimport { TYPOGRAPHIES_BY_ID } from '../utils/queries'\nimport { useQuery } from '../../api/react'\n\nexport type TypographyStyleValue = {\n fontFamily?: string\n fontWeight?: number\n fontSize?: LengthValue\n color?: ColorValue\n textAlign?: string\n lineHeight?: number\n letterSpacing?: number\n uppercase?: boolean\n underline?: boolean\n strikethrough?: boolean\n italic?: boolean\n}\n\nexport type TypographyStyle = Array<DeviceOverride<TypographyStyleValue>>\n\nexport type Typography = {\n id: string\n name: string\n style: TypographyStyle\n}\n\nexport function useTypography(\n typographyId: string | null | undefined,\n): Typography | null | undefined {\n const { error, data } = useQuery(TYPOGRAPHIES_BY_ID, {\n skip: typographyId == null,\n variables: { ids: typographyId != null ? [typographyId] : [] },\n })\n\n if (typographyId == null || error != null) return null\n\n return data?.typographies[0] as Typography | null\n}\n","import { Length as LengthValue } from '../../../../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../../../../utils/types'\nimport { findDeviceOverride } from '../../../../../../../utils/devices'\nimport type { DeviceOverride } from '../../../../../../../../prop-controllers'\nimport { SWATCHES_BY_ID } from '../../../../../../../utils/queries'\nimport { useTypography, TypographyStyle } from '../../../../../../../hooks/useTypography'\nimport { useQuery } from '../../../../../../../../api/react'\n\nexport type TypographyMarkDataValue = {\n fontWeight?: number\n fontSize?: LengthValue\n fontFamily?: string\n color?: Color\n textAlign?: string\n lineHeight?: number\n letterSpacing?: number\n uppercase?: boolean\n italic?: boolean\n underline?: boolean\n strikethrough?: boolean\n}\n\nexport type TypographyMarkValue = {\n id: string | null | undefined\n style: TypographyStyle\n}\n\nexport type TypographyMarkData = Array<DeviceOverride<TypographyMarkDataValue>>\n\nconst concat = <A extends unknown[], B extends unknown[]>(a: A, b: B) => a.concat(b)\nconst getSwatchId = ({ value: { color } }: any) => color && color.swatchId\nconst getDeviceId = ({ deviceId }: any) => deviceId\n\nconst withColor =\n (swatches: any) =>\n ({ value: { color, ...restOfValue }, ...rest }: any) => ({\n ...rest,\n value: {\n ...restOfValue,\n ...(color\n ? {\n color: {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n },\n }\n : {}),\n },\n })\n\nexport const overrideTypographyStyle = <A>(\n source: Array<DeviceOverride<A>>,\n override: Array<DeviceOverride<A>>,\n): Array<DeviceOverride<A>> => {\n const devices = [...new Set(source.map(getDeviceId).concat(override.map(getDeviceId)))]\n\n return devices.map((deviceId: any) => ({\n deviceId,\n value: {\n ...(findDeviceOverride(source, deviceId) || { value: {} }).value,\n ...(findDeviceOverride(override, deviceId, v => v) || { value: {} }).value,\n },\n })) as DeviceOverride<A>[]\n}\n\nexport default function useTypographyMark(\n value: TypographyMarkValue | null | undefined,\n): TypographyMarkData | null | undefined {\n const typography = useTypography(value && value.id)\n\n const swatchIds = [\n (typography && typography.style.map(getSwatchId)) || [],\n (value && value.style.map(getSwatchId)) || [],\n ]\n .reduce(concat)\n .filter(Boolean)\n\n const { error: colorError, data: colorData = {} } = useQuery(SWATCHES_BY_ID, {\n skip: swatchIds == null || swatchIds.length === 0,\n variables: { ids: swatchIds },\n })\n\n const { swatches = [] } = colorData\n\n if (colorError != null) return null\n\n return overrideTypographyStyle(\n (typography && typography.style.map(withColor(swatches))) || [],\n (value && value.style.map(withColor(swatches))) || [],\n )\n}\n","import { ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport useTypographyMark, {\n TypographyMarkValue,\n TypographyMarkData,\n overrideTypographyStyle,\n TypographyMarkDataValue,\n} from './hooks/useTypographyMark'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { shallowMergeFallbacks } from '../../../../../../utils/devices'\n\nexport type { TypographyMarkValue }\nexport { overrideTypographyStyle }\n\nconst Span = styled.span<{ typographyStyle: TypographyMarkData | null | undefined }>`\n ${p =>\n cssMediaRules(\n [p.typographyStyle] as const,\n ([\n {\n color,\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n uppercase,\n underline,\n strikethrough,\n italic,\n } = {} as TypographyMarkDataValue,\n ]) => css`\n ${color == null\n ? ''\n : css`\n color: ${colorToString(color)};\n `}\n\n ${fontFamily == null\n ? ''\n : css`\n font-family: '${fontFamily}';\n `}\n\n ${fontSize == null || fontSize.value == null || fontSize.unit == null\n ? ''\n : css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `}\n\n ${fontWeight == null\n ? ''\n : css`\n font-weight: ${fontWeight};\n `}\n\n ${lineHeight == null\n ? ''\n : css`\n line-height: ${lineHeight};\n `}\n\n ${letterSpacing == null\n ? ''\n : css`\n letter-spacing: ${letterSpacing / 10}em;\n `}\n\n ${underline == null && strikethrough == null\n ? ''\n : css`\n text-decoration: ${[\n Boolean(underline) && 'underline',\n Boolean(strikethrough) && 'line-through',\n ]\n .filter(Boolean)\n .join(' ')};\n `}\n\n ${uppercase == null\n ? ''\n : css`\n text-transform: ${uppercase === true ? 'uppercase' : 'initial'};\n `}\n\n ${italic == null\n ? ''\n : css`\n font-style: ${italic === true ? 'italic' : 'initial'};\n `}\n `,\n shallowMergeFallbacks,\n )}\n`\n\ntype BaseProps = { value: TypographyMarkValue }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Span>, keyof BaseProps>\n\nexport default function Mark({ value, ...restOfProps }: Props): JSX.Element {\n const typographyStyle = useTypographyMark(value)\n\n return <Span {...restOfProps} typographyStyle={typographyStyle} />\n}\n","import type { Plugin } from 'slate-react'\n\nimport Mark from '../components/Mark'\n\nconst TYPOGRAPHY_TYPE = 'typography'\n\nexport default function DeviceOverridesMarksPlugin(): Plugin {\n return {\n renderMark({ mark, children }, _editor, next) {\n if (mark.type === TYPOGRAPHY_TYPE) {\n return <Mark value={mark.data.get('value')}>{children}</Mark>\n }\n\n return next()\n },\n }\n}\n","import { forwardRef, ElementType, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport type { ResponsiveValue } from '../../../../../../../prop-controllers'\n\ntype StyledBlockProps = {\n textAlign?: ResponsiveValue<'left' | 'center' | 'right' | 'justify'>\n as?: ElementType\n}\n\nconst StyledBlock = styled.div<StyledBlockProps>`\n margin: 0;\n ${p =>\n cssMediaRules([p.textAlign] as const, ([textAlign]) =>\n textAlign == null\n ? css``\n : css`\n text-align: ${textAlign};\n `,\n )}\n\n ${p =>\n p.as === 'blockquote'\n ? css`\n padding: 0.5em 10px;\n font-size: 1.25em;\n font-weight: 300;\n border-left: 5px solid rgba(0, 0, 0, 0.1);\n `\n : ''}\n`\n\ntype Props = ComponentPropsWithoutRef<typeof StyledBlock>\n\nexport default forwardRef<HTMLDivElement, Props>(function Block(\n { textAlign, ...restOfProps }: Props,\n ref,\n) {\n return <StyledBlock {...restOfProps} ref={ref} textAlign={textAlign} />\n})\n","import { Plugin } from 'slate-react'\n\nimport Block from '../components/Block'\n\nexport default function DeviceOverridesBlockPlugin(): Plugin {\n return {\n renderBlock(props, _editor, next): JSX.Element {\n const { node, attributes, children } = props\n const blockProps = { textAlign: node.data.get('textAlign') }\n\n switch (node.type) {\n case 'paragraph':\n return (\n <Block {...attributes} {...blockProps} as=\"p\">\n {children}\n </Block>\n )\n\n case 'heading-one':\n return (\n <Block {...attributes} {...blockProps} as=\"h1\">\n {children}\n </Block>\n )\n\n case 'heading-two':\n return (\n <Block {...attributes} {...blockProps} as=\"h2\">\n {children}\n </Block>\n )\n\n case 'heading-three':\n return (\n <Block {...attributes} {...blockProps} as=\"h3\">\n {children}\n </Block>\n )\n\n case 'heading-four':\n return (\n <Block {...attributes} {...blockProps} as=\"h4\">\n {children}\n </Block>\n )\n\n case 'heading-five':\n return (\n <Block {...attributes} {...blockProps} as=\"h5\">\n {children}\n </Block>\n )\n\n case 'heading-six':\n return (\n <Block {...attributes} {...blockProps} as=\"h6\">\n {children}\n </Block>\n )\n\n case 'blockquote':\n return (\n <Block {...attributes} {...blockProps} as=\"blockquote\">\n {children}\n </Block>\n )\n\n default:\n return next()\n }\n },\n }\n}\n","import { Plugin } from 'slate-react'\nimport styled from 'styled-components'\n\nimport { Link } from '../../../../../shared/Link'\n\nconst StyledLink = styled(Link)`\n text-decoration: none;\n`\n\nexport default function LinkPlugin(): Plugin {\n return {\n renderInline(props, _editor, next) {\n const { attributes, children, node } = props\n\n switch (node.type) {\n case 'link': {\n const { data } = node\n\n return (\n <StyledLink {...attributes} link={data.toJS()}>\n {children}\n </StyledLink>\n )\n }\n\n default: {\n return next()\n }\n }\n },\n }\n}\n","import { Plugin } from 'slate-react'\n\nexport default function Inlines(): Plugin {\n return {\n renderInline(props, _editor, next) {\n const { attributes, children, node } = props\n\n switch (node.type) {\n case 'code': {\n return <code {...attributes}>{children}</code>\n }\n\n case 'superscript': {\n return <sup {...attributes}>{children}</sup>\n }\n\n case 'subscript': {\n return <sub {...attributes}>{children}</sub>\n }\n\n default: {\n return next()\n }\n }\n },\n }\n}\n","import { ComponentPropsWithoutRef, forwardRef, useMemo } from 'react'\n\nimport { Editor as SlateEditor } from 'slate-react'\n\n// @ts-expect-error: no types for '@convertkit/slate-lists'\nimport Lists from '@convertkit/slate-lists'\nimport styled from 'styled-components'\n\nimport DeviceOverridesMarks from './plugins/DeviceOverridesMarks'\nimport DeviceOverridesBlocks from './plugins/DeviceOverridesBlocks'\nimport Link from './plugins/Link'\nimport Inlines from './plugins/Inlines'\n\nexport { overrideTypographyStyle } from './components/Mark'\n\ntype Props = ComponentPropsWithoutRef<typeof SlateEditor>\n\nexport const RichTextEditor = styled(\n forwardRef<SlateEditor, Props>(function RichTextEditor(\n { placeholder = 'Write some text...', ...restOfProps }: Props,\n ref,\n ) {\n const plugins = useMemo(\n () => [Lists(), Link(), Inlines(), DeviceOverridesBlocks(), DeviceOverridesMarks()],\n [],\n )\n\n return (\n <SlateEditor\n {...restOfProps}\n ref={ref}\n autoFocus={false}\n plugins={plugins}\n placeholder={placeholder}\n />\n )\n }),\n)`\n ul,\n ol {\n margin: 0;\n }\n`\n","import {\n useState,\n Ref,\n useImperativeHandle,\n forwardRef,\n useEffect,\n useCallback,\n useRef,\n KeyboardEvent as ReactKeyboardEvent,\n} from 'react'\nimport styled from 'styled-components'\nimport { Editor, OnChangeParam } from 'slate-react'\nimport { Value, ValueJSON } from 'slate'\n// @ts-expect-error: no types for 'slate-hotkeys'\nimport Hotkeys from 'slate-hotkeys'\n// @ts-expect-error: there are no types for 'corporate-ipsum'\nimport ipsum from 'corporate-ipsum'\n\nimport {\n ElementIDValue,\n MarginValue,\n RichTextDescriptor,\n RichTextValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { RichTextEditor } from './components/RichTextEditor'\nimport { ReactRuntime, useIsInBuilder } from '../../../react'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst StyledRichTextEditor = styled(RichTextEditor)<{\n width: Props['width']\n margin: Props['margin']\n}>`\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst defaultText: ValueJSON = {\n document: { nodes: [{ object: 'block' as const, type: 'paragraph' as const, nodes: [] }] },\n data: {},\n}\n\nconst COMMIT_DEBOUNCE_DELAY = 500\n\ntype Descriptors = { text?: RichTextDescriptor }\n\nconst Text = forwardRef(function Text(\n { id, text, width, margin }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const [editor, setEditor] = useState<Editor | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const controller = propControllers?.text\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n const el = editor?.findDOMNode([])\n\n return el instanceof Element ? getBox(el) : null\n },\n setPropControllers,\n }),\n [editor, setPropControllers],\n )\n\n useEffect(() => {\n if (editor) controller?.setSlateEditor(editor)\n }, [controller, editor])\n\n /**\n * We must keep local state so that we can reflect the user's typed changes immediately. At the\n * same time, though, the source of truth for the data is the prop data. This presents a\n * challenge: how do we keep local state in sync with the prop data without mangling user input as\n * data comes in?\n *\n * Consider, for example, that the user types \"Hello\". If at a later time, when the user is trying\n * to type \", world\" the component re-renders with prop data \"H\", \"He\", \"Hel\", \"Hell\", \"Hello\", it\n * will disrupt the user's typing. This could also happen as a result of the prop data changing\n * for other reasons, like collaborators changing the prop data concurrently. We want to avoid to\n * disrupt the user's typing, while at the same time display the \"true\" value as quickly as\n * possible.\n *\n * The approach we take here is to commit the prop data at an opportune time: as the user is\n * typing we avoid to commit prop data. But once they've stopped typing, we commit it as soon as\n * possible. This is known as a debounce.\n */\n const [value, setValue] = useState(() => {\n const { selection, ...textWithoutSelection } = text ?? defaultText\n\n return Value.fromJSON(textWithoutSelection)\n })\n const [shouldCommit, setShouldCommit] = useState(true)\n\n useEffect(() => {\n if (shouldCommit) {\n const nextValue = Value.fromJSON(text ?? defaultText)\n\n setValue(currentValue =>\n currentValue.selection.isBlurred\n ? Value.fromJSON(nextValue.toJSON({ preserveSelection: false }))\n : nextValue,\n )\n }\n }, [shouldCommit, text])\n\n useEffect(() => {\n if (shouldCommit) return\n\n const timeoutId = window.setTimeout(() => {\n setShouldCommit(true)\n }, COMMIT_DEBOUNCE_DELAY)\n\n return () => {\n window.clearTimeout(timeoutId)\n }\n }, [shouldCommit])\n\n function handleChange(change: OnChangeParam) {\n setValue(change.value as Value)\n\n if (change.value.document !== value.document) {\n setShouldCommit(false)\n\n controller?.onChange(change)\n }\n }\n\n // HACK: Slate holds on to the very first DOM event handlers passed in and doesn't update them\n // even if they change. Since `controller` is first `undefined` then we must use a ref.\n const lastController = useRef(controller)\n if (lastController.current !== controller) lastController.current = controller\n const handleFocus = useCallback(() => {\n lastController.current?.focus()\n }, [])\n const handleKeyDown = useCallback(\n (event: ReactKeyboardEvent, _editor: Editor, next: () => any) => {\n if (Hotkeys.isUndo(event)) {\n lastController.current?.undo()\n\n return true\n }\n\n if (Hotkeys.isRedo(event)) {\n lastController.current?.redo()\n\n return true\n }\n\n return next()\n },\n [],\n )\n\n const isInBuilder = useIsInBuilder()\n\n return (\n <StyledRichTextEditor\n // @ts-expect-error: types don't allow for 'id' prop even though it's used.\n id={id}\n ref={setEditor}\n readOnly={!isInBuilder}\n width={width}\n margin={margin}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n />\n )\n})\n\nexport default Text\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Text, {\n type: './components/Text/index.js',\n label: 'Text',\n props: {\n id: Props.ElementID(),\n // TODO: generate a different preset each time.\n text: Props.RichText({\n preset: {\n document: {\n nodes: [\n {\n object: 'block',\n type: 'paragraph',\n nodes: [\n {\n object: 'text',\n text: ipsum(3),\n marks: [\n {\n object: 'mark',\n type: 'typography',\n data: {\n value: {\n id: null,\n style: [\n {\n deviceId: 'mobile',\n value: { fontSize: { value: 16, unit: 'px' } },\n },\n {\n deviceId: 'desktop',\n value: {\n fontWeight: 400,\n fontSize: { value: 18, unit: 'px' },\n lineHeight: 1.5,\n },\n },\n ],\n },\n },\n },\n ],\n },\n ],\n },\n ],\n },\n },\n }),\n width: Props.Width({\n preset: [{ deviceId: 'desktop', value: { value: 700, unit: 'px' } }],\n defaultValue: { value: 100, unit: '%' },\n }),\n margin: Props.Margin({\n preset: [\n {\n deviceId: 'desktop',\n value: {\n marginTop: null,\n marginRight: 'auto',\n marginBottom: { value: 20, unit: 'px' },\n marginLeft: 'auto',\n },\n },\n ],\n }),\n },\n })\n}\n","export * from './Box'\nexport { default as Box } from './Box'\nexport { default as Button } from './Button'\nexport { default as Carousel } from './Carousel'\nexport { default as Countdown } from './Countdown'\nexport { default as Divider } from './Divider'\nexport { default as Embed } from './Embed'\nexport { default as Image } from './Image'\nexport { default as Navigation } from './Navigation'\nexport { default as Root } from './Root'\nexport { default as SocialLinks } from './SocialLinks'\nexport { default as Text } from './Text'\n\nimport { ReactRuntime } from '../../react'\nimport { registerComponent as registerBoxComponent } from './Box'\nimport { registerComponent as registerButtonComponent } from './Button'\nimport { registerComponent as registerCarouselComponent } from './Carousel'\nimport { registerComponent as registerCountdownComponent } from './Countdown'\nimport { registerComponent as registerDividerComponent } from './Divider'\nimport { registerComponent as registerEmbedComponent } from './Embed'\nimport { registerComponent as registerImageComponent } from './Image'\nimport { registerComponent as registerNavigationComponent } from './Navigation'\nimport { registerComponent as registerRootComponent } from './Root'\nimport { registerComponent as registerSocialLinksComponent } from './SocialLinks'\nimport { registerComponent as registerTextComponent } from './Text'\n\nexport function registerBuiltinComponents(runtime: ReactRuntime) {\n const unregisterBoxComponent = registerBoxComponent(runtime)\n const unregisterButtonComponent = registerButtonComponent(runtime)\n const unregisterCarouselComponent = registerCarouselComponent(runtime)\n const unregisterCountdownComponent = registerCountdownComponent(runtime)\n const unregisterDividerComponent = registerDividerComponent(runtime)\n const unregisterEmbedComponent = registerEmbedComponent(runtime)\n const unregisterImageComponent = registerImageComponent(runtime)\n const unregisterNavigationComponent = registerNavigationComponent(runtime)\n const unregisterRootComponent = registerRootComponent(runtime)\n const unregisterSocialLinksComponent = registerSocialLinksComponent(runtime)\n const unregisterTextComponent = registerTextComponent(runtime)\n\n return () => {\n unregisterBoxComponent()\n unregisterButtonComponent()\n unregisterCarouselComponent()\n unregisterCountdownComponent()\n unregisterDividerComponent()\n unregisterEmbedComponent()\n unregisterImageComponent()\n unregisterNavigationComponent()\n unregisterRootComponent()\n unregisterSocialLinksComponent()\n unregisterTextComponent()\n }\n}\n","import {\n createContext,\n forwardRef,\n memo,\n ReactNode,\n Ref,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\nimport { ApolloClient, InMemoryCache } from '@apollo/client'\n\nimport * as ReactPage from '../state/react-page'\nimport type * as ReactBuilderPreview from '../state/react-builder-preview'\nimport {\n mountComponentEffect,\n registerComponentEffect,\n registerComponentHandleEffect,\n registerReactComponentEffect,\n} from '../state/actions'\nimport type {\n PropControllerDescriptor,\n PropControllerDescriptorValueType,\n} from '../prop-controllers'\nimport { ComponentIcon } from '../state/modules/components-meta'\nimport { registerBuiltinComponents } from '../components'\nimport { ApolloProvider } from '../api/react'\n\nconst contextDefaultValue = ReactPage.configureStore()\n\nexport interface ReactRuntime {\n registerComponent<\n P extends Record<string, PropControllerDescriptor>,\n C extends ReactPage.ComponentType<{ [K in keyof P]?: PropControllerDescriptorValueType<P[K]> }>,\n >(\n component: C,\n meta: { type: string; label: string; icon?: ComponentIcon; hidden?: boolean; props?: P },\n ): () => void\n}\n\nexport function createReactRuntime(store: ReactPage.Store): ReactRuntime {\n return {\n registerComponent(component, { type, label, icon = 'Cube40', hidden = false, props }) {\n const unregisterComponent = store.dispatch(\n registerComponentEffect(type, { label, icon, hidden }, props ?? {}),\n )\n\n const unregisterReactComponent = store.dispatch(\n registerReactComponentEffect(type, component as unknown as ReactPage.ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n },\n }\n}\n\nexport const ReactRuntime = createReactRuntime(contextDefaultValue)\n\nconst Context = createContext(contextDefaultValue)\n\ntype RuntimeProviderProps = {\n defaultRootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n registerComponents?: (runtime: ReactRuntime) => () => void\n makeswiftApiEndpoint?: string\n}\n\nexport function RuntimeProvider({\n children,\n defaultRootElements,\n registerComponents,\n makeswiftApiEndpoint,\n}: RuntimeProviderProps): JSX.Element {\n const [store, setStore] = useState(() => {\n const store = ReactPage.configureStore({\n preloadedState: contextDefaultValue.getState(),\n rootElements: defaultRootElements,\n })\n const runtime = createReactRuntime(store)\n\n registerBuiltinComponents(runtime)\n registerComponents?.(runtime)\n\n return store\n })\n const [client, setClient] = useState(\n new ApolloClient({ uri: makeswiftApiEndpoint, cache: new InMemoryCache() }),\n )\n\n useEffect(() => {\n setClient(({ cache }) => new ApolloClient({ uri: makeswiftApiEndpoint, cache }))\n }, [makeswiftApiEndpoint])\n\n useEffect(() => {\n return registerBuiltinComponents(createReactRuntime(store))\n }, [store])\n\n useEffect(() => {\n return registerComponents?.(createReactRuntime(store))\n }, [store, registerComponents])\n\n useEffect(() => {\n // TODO(miguel): perform a more robust validation.\n const isInBuilder = window.parent !== window\n\n if (isInBuilder) setReactBuilderPreviewStore()\n\n async function setReactBuilderPreviewStore(): Promise<void> {\n const ReactBuilderPreview = await import('../state/react-builder-preview')\n\n setStore(store =>\n ReactBuilderPreview.configureStore({ preloadedState: store.getState(), client }),\n )\n }\n }, [client])\n\n useEffect(() => {\n // TODO(miguel): perform a more robust validation.\n const isInBuilder = window.parent !== window\n\n if (!isInBuilder) return\n\n window.addEventListener('focusin', handleFocusIn)\n window.addEventListener('focusout', handlefocusOut)\n\n return () => {\n window.addEventListener('focusin', handleFocusIn)\n window.removeEventListener('focusout', handlefocusOut)\n }\n\n function handleFocusIn(event: FocusEvent) {\n if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handlefocusOut(event: FocusEvent) {\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\n }\n }\n }, [])\n\n return (\n <Context.Provider value={store}>\n <ApolloProvider client={client}>{children}</ApolloProvider>\n </Context.Provider>\n )\n}\n\nconst DocumentContext = createContext<string | null>(null)\n\nfunction useDocumentKey(): string | null {\n return useContext(DocumentContext)\n}\n\ntype State = ReactPage.State | ReactBuilderPreview.State\n\nfunction useSelector<R>(selector: (state: State) => R): R {\n const store = useContext(Context)\n\n return useSyncExternalStoreWithSelector(store.subscribe, store.getState, store.getState, selector)\n}\n\nfunction useComponent(type: string): ReactPage.ComponentType | null {\n return useSelector(state => ReactPage.getReactComponent(state, type))\n}\n\nexport function useElementId(elementKey: string | null | undefined): string | null {\n const documentKey = useDocumentKey()\n\n return useSelector(state =>\n documentKey == null || elementKey == null\n ? null\n : ReactPage.getElementId(state, documentKey, elementKey),\n )\n}\n\nfunction useDocumentRootElement(documentKey: string): ReactPage.Element | null {\n return useSelector(state => ReactPage.getDocumentRootElement(state, documentKey))\n}\n\nexport function useIsInBuilder(): boolean {\n return useSelector(state => ReactPage.getIsInBuilder(state))\n}\n\ntype Dispatch = ReactPage.Dispatch & ReactBuilderPreview.Dispatch\n\nfunction useDispatch(): Dispatch {\n const store = useContext(Context)\n\n return store.dispatch\n}\n\ntype ElementDataProps = {\n elementData: ReactPage.ElementData\n}\n\nconst ElementData = memo(\n forwardRef(function ElementData(\n { elementData }: ElementDataProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n const Component = useComponent(elementData.type)\n\n if (Component == null) {\n return (\n <div ref={ref as Ref<HTMLDivElement>}>\n <p>Component Not Found</p>\n <pre>\n <code>{JSON.stringify(elementData, null, 2)}</code>\n </pre>\n </div>\n )\n }\n\n return <Component {...elementData.props} key={elementData.key} ref={ref} />\n }),\n)\n\ntype ElementRefereceProps = {\n elementReference: ReactPage.ElementReference\n}\n\nconst ElementReference = memo(\n forwardRef(function ElementReference(\n { elementReference }: ElementRefereceProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n return (\n <div ref={ref as Ref<HTMLDivElement>}>\n <p>Not Implemented</p>\n <pre>\n <code>{JSON.stringify(elementReference, null, 2)}</code>\n </pre>\n </div>\n )\n }),\n)\n\ntype ElementProps = {\n element: ReactPage.Element\n}\n\nexport const Element = memo(function Element({ element }: ElementProps): JSX.Element {\n const elementKey = element.key\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n const [handle, setHandle] = useState<unknown>(null)\n\n useEffect(() => {\n if (documentKey == null) return\n\n return dispatch(registerComponentHandleEffect(documentKey, elementKey, handle))\n }, [dispatch, documentKey, elementKey, handle])\n\n useEffect(() => {\n if (documentKey == null) return\n\n return dispatch(mountComponentEffect(documentKey, elementKey))\n }, [dispatch, documentKey, elementKey])\n\n return ReactPage.isElementReference(element) ? (\n <ElementReference key={elementKey} ref={setHandle} elementReference={element} />\n ) : (\n <ElementData key={elementKey} ref={setHandle} elementData={element} />\n )\n})\n\ntype DocumentProps = {\n documentKey: string\n}\n\nexport const Document = memo(function Document({ documentKey }: DocumentProps): JSX.Element {\n const documentRootElement = useDocumentRootElement(documentKey)\n\n if (documentRootElement == null) {\n return (\n <div>\n <p>Document Not Found</p>\n <pre>\n <code>{JSON.stringify({ documentKey }, null, 2)}</code>\n </pre>\n </div>\n )\n }\n\n return (\n <DocumentContext.Provider value={documentKey}>\n <Element element={documentRootElement} />\n </DocumentContext.Provider>\n )\n})\n"],"names":["getInitialState","reactComponents","Map","state","type","getReactComponents","get","action","ActionTypes","REGISTER_REACT_COMPONENT","set","payload","component","UNREGISTER_REACT_COMPONENT","nextState","deleted","delete","getPropControllerDescriptors","Types","combineReducers","Documents.reducer","ReactComponents.reducer","ComponentsMeta.reducer","PropControllers.reducer","Documents.getDocumentRootElement","ReactComponents.getReactComponent","PropControllers.getPropControllerDescriptors","PropControllers.getComponentPropControllerDescriptors","Documents.isElementReference","Introspection.getElementChildren","Introspection.getElementId","createStore","Documents.getInitialState","applyMiddleware","thunk","PlaceholderBase","styled","div","hide","forwardRef","ref","restOfProps","overflow","gql","Context","createContext","undefined","query","options","client","useContext","useApolloQuery","children","_jsx","useMemo","useState","useLayoutEffect","defaultExitedProps","opacity","x","y","scale","boxAnimations","none","entered","exited","transition","fadeIn","fadeLeft","ease","fadeRight","fadeUp","fadeDown","blurIn","filter","scaleDown","scaleUp","mergeCustomTransitionWithDefault","transitions","props","Object","keys","reduce","a","c","useElementOnScreen","element","isVisible","setIsVisible","useEffect","observer","IntersectionObserver","intersectionCallback","observe","unobserve","entry","isIntersecting","DEFAULT_BOX_ANIMATE_TYPE","DEFAULT_BOX_ANIMATE_DELAY","DEFAULT_BOX_ANIMATE_DURATION","DEFAULT_ITEM_ANIMATE_TYPE","DEFAULT_ITEM_ANIMATE_DELAY","DEFAULT_ITEM_ANIMATE_DURATION","DEFAULT_ITEM_STAGGER_DURATION","useBoxAnimations","boxElement","elements","reducedMotion","useReducedMotion","boxAnimateType","useMediaQuery","boxAnimateDuration","boxAnimateDelay","itemAnimateType","itemAnimateDuration","itemAnimateDelay","itemStaggerDuration","isBoxVisible","root","rootMargin","threshold","itemControls","useAnimation","boxControls","setSequence","useCallback","variant","stop","playSequence","start","map","e","key","sort","join","boxVariant","itemVariant","initial","container","parent","animate","variants","child","delay","duration","delayChildren","staggerChildren","joinResponsiveValues","css","overflowY","overflowX","ownerDocument","defaultView","getComputedStyle","test","parentElement","isScrollable","getScrollParent","strength","rest","useRef","containerScrollTop","setContainerScrollTop","lastScrollParentScrollTop","current","containerDocument","scrollParent","eventTarget","documentElement","scrollTop","requestAnimationFrame","top","containerTop","bottom","containerBottom","getBoundingClientRect","scrollParentTop","scrollParentBottom","innerHeight","scrollParentScrollTop","pageYOffset","scrollParentHeight","scrollParentScrollDelta","isContainerVisible","containerScrollRemaining","scrollParentScrollRemaining","parallaxRatio","containerScrollDelta","clamp","addEventListener","handleScroll","removeEventListener","getProps","style","restOfChildrenProps","position","left","right","transform","Container","Mask","backgroundColor","visible","getScale","aspectRatio","zoom","offsetWidth","width","offsetHeight","height","computedAspectRatio","Math","max","url","maskColor","ready","setReady","setScale","containerEl","handleResize","ReactPlayer","canPlay","_Fragment","vimeo","playerOptions","background","youtube","playerVars","origin","location","wistia","endVideoBehavior","playbackRateControl","playbar","playButton","volumeControl","fullscreenButton","muted","color","swatch","colorToString","hue","saturation","lightness","getStopsStyle","stops","getColor","getAspectRatio","AbsoluteFill","BackgroundsContainer","p","cssMediaRules","visibility","backgrounds","value","deviceId","v","reverse","bg","id","publicUrl","repeat","size","parallax","backgroundPosition","getParallaxProps","NextImage","backgroundImage","backgroundRepeat","backgroundSize","angle","isRadial","gradient","OuterContainer","motion","handle","setHandle","useImperativeHandle","useBackgrounds","Children","only","StyledBackgroundsContainer","cssWidth","cssMargin","cssBorderRadius","alignSelf","Grid","cssPadding","cssBorder","cssBoxShadow","alignContent","GridItem","cssGridItem","alignItems","Box","margin","padding","border","borderRadius","boxShadow","rowGap","columnGap","hidePlaceholder","verticalAlign","innerRef","setBoxElement","getBoxModel","paddingBoxElement","borderBoxElement","marginBoxElement","borderBox","paddingBoxComputedStyle","borderBoxComputedStyle","marginBoxComputedStyle","parse","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","marginTop","marginRight","marginBottom","marginLeft","createBox","borderData","useBorder","boxShadowData","useBoxShadow","length","index","columns","Element","Placeholder","runtime","registerComponent","label","Props","icon","defaultValue","preset","unit","labelOrientation","min","step","suffix","Link","link","onClick","page","usePage","pageId","elementKey","elementIdConfig","elementId","useElementId","href","target","block","pathname","openInNewTab","to","subject","body","phoneNumber","RangeError","handleClick","event","defaultPrevented","currentTarget","isContentEditable","preventDefault","hash","URL","error","view","scrollIntoView","document","querySelector","behavior","history","pushState","NextLink","StyledButton","shape","textColor","alpha","fontSize","small","medium","large","square","rounded","pill","flat","property","ColorHelper","darken","hex","outline","shadow","clear","toString","blocky","bubbly","lighten","saturate","skewed","cssTextStyle","Button","textStyle","useColor","placeholder","src","Promise","resolve","reject","image","Image","onload","onerror","baseDevice","DEVICES","find","device","maxWidth","baseWidth","findDeviceOverride","baseWidthSize","override","sourceSizes","sourceSize","ImageContainer","dimensions","UnoptimizedImage","img","ImageComponent","file","altText","placeholders","className","fileData","useFile","imageSrc","dataDimensions","measuredDimensions","setMeasuredDimensions","isInBuilder","useIsInBuilder","cleanedUp","then","naturalWidth","naturalHeight","catch","console","imageSizes","LeftChevron","RightChevron","Wrapper","Arrow","Slop","hidden","Slide","pageSize","Reel","gap","Page","LeftSlop","RightSlop","ClipMask","Dots","Dot","active","SWIPE_THRESHOLD","swipePower","dx","velocity","Carousel","images","responsivePageSize","responsiveStep","slideAlignment","showDots","showArrows","arrowPosition","arrowColor","arrowBackground","dotColor","autoplay","slideBorder","slideBorderRadius","setIndex","swipe","startIndex","wrap","endIndex","pageCount","ceil","pageIndex","isFirstPage","isLastPage","paginate","pageDistance","direction","abs","remaining","slice","distance","animation","stiffness","bindPage","useGesture","onDrag","movement","mx","delta","onDragEnd","drag","axis","bounds","rubberband","intervalId","setInterval","clearInterval","_jsxs","imageProps","Array","from","_","i","uuid","Block","Label","Segment","blockColor","numberColor","numberFont","labelColor","labelFont","getRemaining","date","days","hours","minutes","seconds","timeDiff","Date","getTime","now","floor","parseInt","String","Countdown","daysLabel","hoursLabel","minutesLabel","secondsLabel","setRemaining","toISOString","IE11MinHeightContainer","Line","thickness","Error","Divider","defaultHtml","SCRIPT_TAG","Embed","html","setContainer","shouldRender","setShouldRender","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tagName","toLowerCase","FILTER_ACCEPT","FILTER_REJECT","nodes","nextNode","push","currentNode","script","createElement","textContent","attributes","forEach","name","setAttribute","parentNode","insertBefore","removeChild","hasAttribute","__html","rows","_path","_extends","React","GutterContainer","gutter","first","last","PlaceholderLink","button","links","DROP_DOWN_MENU_WIDTH","DropDownMenu","dropIn","keyframes","DropDownContainer","StyledDropDownItem","fontWeight","fontStyle","letterSpacing","textTransform","includes","caret","setPosition","innerWidth","offsetLeft","display","fill","CaretDown8","Plus8","ArrowDown8","ChevronDown8","DropDownItem","open","ButtonLink","StyledLink","onClose","isOpen","setIsOpen","prev","coverRight","coverLeft","CloseIconContainer","closeIconColor","Times16","flexDirection","flexShrink","Fragment","DropDownButton","nav","LinksContainer","alignment","mobileMenuAnimation","OpenIconContainer","Navigation","linkTextStyle","showLogo","logoFile","logoWidth","logoAltText","logoLink","mobileMenuOpenIconColor","mobileMenuCloseIconColor","mobileMenuBackgroundColor","flexGrow","justifyContent","MobileMenu28","Normalize","createGlobalStyle","normalize","Root","SocialLinksOptions","LogoAngellist20","brandColor","LogoCodepen20","LogoDribbble20","LogoFacebook20","LogoGithub20","LogoInstagram20","LogoLinkedin20","LogoMedium20","LogoPinterest20","LogoReddit20","LogoRss20","LogoSnapchat20","LogoSoundcloud20","LogoSpotify20","LogoTelegram20","LogoTumblr20","LogoTwitch20","LogoTwitter20","LogoWhatsapp20","LogoVimeo20","LogoYelp20","LogoYoutube20","hoverStyle","circle","naked","grow","shrink","fade","SocialLinks","fillData","backgroundColorData","option","o","Span","span","typographyStyle","fontFamily","lineHeight","uppercase","underline","strikethrough","italic","Boolean","shallowMergeFallbacks","useTypographyMark","TYPOGRAPHY_TYPE","renderMark","mark","_editor","next","data","StyledBlock","textAlign","as","renderBlock","blockProps","renderInline","toJS","RichTextEditor","plugins","Lists","Inlines","DeviceOverridesBlocks","DeviceOverridesMarks","SlateEditor","StyledRichTextEditor","defaultText","object","COMMIT_DEBOUNCE_DELAY","Text","text","editor","setEditor","propControllers","setPropControllers","controller","el","findDOMNode","getBox","setSlateEditor","setValue","selection","textWithoutSelection","Value","fromJSON","shouldCommit","setShouldCommit","nextValue","currentValue","isBlurred","toJSON","preserveSelection","timeoutId","window","setTimeout","clearTimeout","change","onChange","lastController","handleFocus","focus","handleKeyDown","Hotkeys","isUndo","undo","isRedo","redo","handleChange","ipsum","marks","registerBoxComponent","registerButtonComponent","registerCarouselComponent","registerCountdownComponent","registerDividerComponent","registerEmbedComponent","registerImageComponent","registerNavigationComponent","registerRootComponent","registerSocialLinksComponent","registerTextComponent","contextDefaultValue","ReactPage","store","unregisterComponent","dispatch","registerComponentEffect","unregisterReactComponent","registerReactComponentEffect","ReactRuntime","createReactRuntime","defaultRootElements","registerComponents","makeswiftApiEndpoint","setStore","preloadedState","getState","rootElements","registerBuiltinComponents","setClient","ApolloClient","uri","cache","InMemoryCache","ReactBuilderPreview","configureStore","handleFocusIn","handlefocusOut","HTMLElement","relatedTarget","DocumentContext","selector","useSyncExternalStoreWithSelector","subscribe","useSelector","documentKey","useDocumentKey","ElementData","memo","elementData","Component","useComponent","JSON","stringify","ElementReference","elementReference","useDispatch","registerComponentHandleEffect","mountComponentEffect","Document","documentRootElement","useDocumentRootElement"],"mappings":"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"}
|