@makeswift/runtime 0.0.17 → 0.0.18
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/dist/api.cjs.js +1 -0
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +1 -0
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +6 -4
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +6 -4
- package/dist/components.es.js.map +1 -1
- package/dist/constants.cjs.js +10 -363
- package/dist/constants.cjs.js.map +1 -1
- package/dist/constants.es.js +1 -354
- package/dist/constants.es.js.map +1 -1
- package/dist/controls.cjs.js +5 -4
- package/dist/controls.cjs.js.map +1 -1
- package/dist/controls.es.js +2 -1
- package/dist/controls.es.js.map +1 -1
- package/dist/graphql.cjs.js +365 -0
- package/dist/graphql.cjs.js.map +1 -0
- package/dist/graphql.es.js +356 -0
- package/dist/graphql.es.js.map +1 -0
- package/dist/image.cjs.js +14 -0
- package/dist/image.cjs.js.map +1 -0
- package/dist/image.es.js +10 -0
- package/dist/image.es.js.map +1 -0
- package/dist/index.cjs.js +357 -115
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +348 -106
- package/dist/index.es.js.map +1 -1
- package/dist/main.cjs.js +1 -0
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +1 -0
- package/dist/main.es.js.map +1 -1
- package/dist/next.cjs.js +6 -4
- package/dist/next.cjs.js.map +1 -1
- package/dist/next.es.js +6 -4
- package/dist/next.es.js.map +1 -1
- package/dist/react-builder-preview.cjs.js +8 -6
- package/dist/react-builder-preview.cjs.js.map +1 -1
- package/dist/react-builder-preview.es.js +9 -7
- package/dist/react-builder-preview.es.js.map +1 -1
- package/dist/react-page.cjs.js +260 -0
- package/dist/react-page.cjs.js.map +1 -1
- package/dist/react-page.es.js +254 -1
- package/dist/react-page.es.js.map +1 -1
- package/dist/react.cjs.js +6 -4
- package/dist/react.cjs.js.map +1 -1
- package/dist/react.es.js +6 -4
- package/dist/react.es.js.map +1 -1
- package/dist/text-input.cjs.js +0 -12
- package/dist/text-input.cjs.js.map +1 -1
- package/dist/text-input.es.js +1 -9
- package/dist/text-input.es.js.map +1 -1
- package/dist/types/api/introspection.d.ts +10 -0
- package/dist/types/api/introspection.d.ts.map +1 -0
- package/dist/types/api/react.d.ts +0 -1
- package/dist/types/api/react.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
- package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
- package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
- package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
- package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
- package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts +1 -1
- package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
- package/dist/types/components/builtin/Text/Text.d.ts.map +1 -1
- package/dist/types/components/builtin/Video/Video.d.ts.map +1 -1
- package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
- package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/dist/types/components/hooks/useMediaQuery.d.ts.map +1 -1
- package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
- package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
- package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -1
- package/dist/types/components/utils/queries.d.ts +2 -0
- package/dist/types/components/utils/queries.d.ts.map +1 -1
- package/dist/types/prop-controllers/introspection.d.ts +5 -0
- package/dist/types/prop-controllers/introspection.d.ts.map +1 -1
- package/dist/types/runtimes/react/index.d.ts +1 -1
- package/dist/types/runtimes/react/index.d.ts.map +1 -1
- package/dist/types/state/react-page.d.ts +1 -0
- package/dist/types/state/react-page.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../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/useResponsiveColor.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/hooks/useTable.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/utils/responsive-style.ts","../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/check-12.svg","../src/components/builtin/Form/context/FormContext.ts","../src/components/builtin/Form/components/Field/services/cssField.ts","../src/components/builtin/Form/components/Field/components/Input/index.tsx","../src/components/builtin/Form/components/Placeholder/index.tsx","../src/components/builtin/Form/components/Field/components/Label/index.tsx","../src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.tsx","../src/components/builtin/Form/components/Field/components/TextArea/index.tsx","../src/components/builtin/Form/components/Field/components/LongTextTableField/index.tsx","../src/components/builtin/Form/components/Field/components/Checkbox/index.tsx","../src/components/builtin/Form/components/Field/components/CheckboxTableField/index.tsx","../src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.tsx","../src/components/builtin/Form/components/Field/components/RadioButton/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.tsx","../src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.tsx","../src/components/builtin/Form/components/Field/components/EmailTableField/index.tsx","../src/components/builtin/Form/components/Field/components/URLTableField/index.tsx","../src/components/builtin/Form/components/Field/components/NumberTableField/index.tsx","../src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.tsx","../src/components/builtin/Form/components/Field/index.tsx","../src/components/icons/spinner-20.svg","../src/components/builtin/Form/components/Spinner/index.tsx","../src/components/hooks/useTableFormFieldRefs.ts","../src/components/builtin/Form/Form.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/Video/Video.tsx","../src/components/builtin/index.ts","../src/components/page/BodySnippet.tsx","../src/utils/is.ts","../src/utils/shallowEqual.ts","../src/utils/deepEqual.ts","../src/components/page/Page.tsx","../src/components/icons/warning-20.svg","../src/components/shared/FallbackComponent/FallbackComponent.tsx","../../../node_modules/@emotion/hash/dist/hash.browser.esm.js","../../../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../../../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../../../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../../../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../src/runtimes/react/controls/style.ts","../src/runtimes/react/components/render-hook.ts","../src/runtimes/react/controls/checkbox.ts","../src/runtimes/react/controls/color.ts","../src/runtimes/react/controls/combobox.ts","../src/runtimes/react/controls/image.ts","../src/runtimes/react/controls/list.tsx","../src/runtimes/react/controls/number.ts","../src/runtimes/react/controls/select.ts","../src/runtimes/react/controls/shape.tsx","../src/runtimes/react/controls/text-area.ts","../src/runtimes/react/controls/text-input.ts","../src/runtimes/react/controls/control.tsx","../src/runtimes/react/controls.tsx","../src/runtimes/react/find-dom-node.tsx","../src/runtimes/react/index.tsx"],"sourcesContent":["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\nexport const TABLE_BY_ID = gql`\n query TableById($id: ID!) {\n table(id: $id) {\n id\n name\n columns {\n id\n name\n ... on MultipleSelectTableColumn {\n options {\n id\n name\n }\n }\n ... on SingleSelectTableColumn {\n options {\n id\n name\n }\n }\n }\n }\n }\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 useMutation as useApolloMutation,\n DefaultContext,\n ApolloCache,\n MutationHookOptions,\n MutationTuple,\n InMemoryCache,\n TypePolicies,\n} from '@apollo/client'\nimport { getDataFromTree } from '@apollo/client/react/ssr'\nexport { gql } from '@apollo/client'\nimport { createContext, ReactNode, useContext } from 'react'\nimport { KeyUtils } from 'slate'\nimport uuid from 'uuid/v4'\n\nimport { DocumentReference, RuntimeProvider } from '../react'\nimport { createDocumentReference, Element } from '../state/react-page'\n\nconst typePolicies: TypePolicies = {\n Query: {\n fields: {\n swatches(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'Swatch', id }, true))\n )\n },\n file(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'File', id: args?.id }, true)\n },\n files(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'File', id }, true))\n )\n },\n typographies(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'Typography', id }, true))\n )\n },\n pagePathnamesById(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'PagePathnameSlice', id }, true))\n )\n },\n globalElement(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'GlobalElement', id: args?.id }, true)\n },\n table(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'Table', id: args?.id }, true)\n },\n page(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'Page', id: args?.id }, true)\n },\n site(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'Site', id: args?.id }, true)\n },\n },\n },\n}\n\nconst PrefetchContext = createContext(false)\n\nexport function useIsPrefetching(): boolean {\n return useContext(PrefetchContext)\n}\n\ntype CreateApolloClientParams = {\n uri?: string\n cacheData?: NormalizedCacheObject\n}\n\nexport function createApolloClient({ uri, cacheData }: CreateApolloClientParams) {\n const cache = new InMemoryCache({ typePolicies })\n\n if (cacheData) cache.restore(cacheData)\n\n return new ApolloClient({ uri, cache })\n}\n\nexport type MakeswiftClientOptions = {\n uri?: string\n cacheData?: NormalizedCacheObject\n}\n\nexport class MakeswiftClient {\n apolloClient: ApolloClient<NormalizedCacheObject>\n\n constructor({ uri, cacheData }: MakeswiftClientOptions) {\n this.apolloClient = createApolloClient({ uri, cacheData })\n }\n\n async prefetch(element: Element): Promise<NormalizedCacheObject> {\n const id = uuid()\n\n await getDataFromTree(\n <PrefetchContext.Provider value={true}>\n <RuntimeProvider client={this} rootElements={new Map([[id, element]])}>\n <DocumentReference documentReference={createDocumentReference(id)} />\n </RuntimeProvider>\n </PrefetchContext.Provider>,\n )\n\n KeyUtils.resetGenerator()\n\n return this.apolloClient.cache.extract()\n }\n\n updateCacheData(cacheData: NormalizedCacheObject): void {\n this.apolloClient.cache.restore(cacheData)\n }\n}\n\nconst Context = createContext<MakeswiftClient | 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: client?.apolloClient, ...options })\n}\n\nexport function useMutation<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n>(\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: MutationHookOptions<TData, TVariables, TContext>,\n): MutationTuple<TData, TVariables, TContext, TCache> {\n const client = useContext(Context)\n\n return useApolloMutation(mutation, { client: client?.apolloClient, ...options })\n}\n\ntype MakeswiftProviderProps = {\n client: MakeswiftClient\n children: ReactNode\n}\n\nexport function MakeswiftProvider({ client, children }: MakeswiftProviderProps) {\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 useResponsiveColor(\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 { useQuery } from '../../api/react'\nimport { TABLE_BY_ID } from '../utils/queries'\n\nexport type SingleLineTextTableColumn = {\n id: string\n name: string\n __typename: 'SingleLineTextTableColumn'\n}\n\nexport type LongTextTableColumn = {\n id: string\n name: string\n __typename: 'LongTextTableColumn'\n}\n\nexport type CheckboxTableColumn = {\n id: string\n name: string\n __typename: 'CheckboxTableColumn'\n}\n\nexport type MultipleSelectTableColumnOption = {\n id: string\n name: string\n}\n\nexport type MultipleSelectTableColumn = {\n id: string\n name: string\n options: Array<MultipleSelectTableColumnOption>\n __typename: 'MultipleSelectTableColumn'\n}\n\nexport type SingleSelectTableColumnOption = {\n id: string\n name: string\n}\n\nexport type SingleSelectTableColumn = {\n id: string\n name: string\n options: Array<SingleSelectTableColumnOption>\n __typename: 'SingleSelectTableColumn'\n}\n\nexport type PhoneNumberTableColumn = {\n id: string\n name: string\n __typename: 'PhoneNumberTableColumn'\n}\n\nexport type EmailTableColumn = {\n id: string\n name: string\n __typename: 'EmailTableColumn'\n}\n\nexport type URLTableColumn = {\n id: string\n name: string\n __typename: 'URLTableColumn'\n}\n\nexport type NumberTableColumn = {\n id: string\n name: string\n __typename: 'NumberTableColumn'\n}\n\nexport type TableColumn =\n | SingleLineTextTableColumn\n | LongTextTableColumn\n | CheckboxTableColumn\n | MultipleSelectTableColumn\n | SingleSelectTableColumn\n | PhoneNumberTableColumn\n | EmailTableColumn\n | URLTableColumn\n | NumberTableColumn\n\ntype Table = {\n id: string\n name: string\n columns: Array<TableColumn>\n}\n\nexport function useTable(tableId: string | null | undefined) {\n return useQuery<{ table: Table | null }>(TABLE_BY_ID, {\n skip: tableId == null,\n variables: { id: tableId },\n })\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'\nimport { useIsPrefetching } from '../../../../../api/react'\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 const isPrefetching = useIsPrefetching()\n\n if (isPrefetching) return <></>\n\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'\nimport { cx } from '@emotion/css'\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 MarginValue,\n PaddingValue,\n ResponsiveIconRadioGroupValue,\n GridValue,\n GapYValue,\n GapXValue,\n CheckboxValue,\n ResponsiveSelectValue,\n ResponsiveNumberValue,\n BackgroundsValue,\n BorderValue,\n ShadowsValue,\n ResponsiveValue,\n} from '../../../prop-controllers/descriptors'\nimport {\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'\nimport { findDeviceOverride } from '../../utils/devices'\n\ntype Props = {\n id?: ElementIDValue\n backgrounds?: BackgroundsValue\n width?: string\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 margin: Props['margin']\n borderRadius: Props['borderRadius']\n alignSelf: Props['height']\n}>`\n display: flex;\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 className={cx(width)}\n backgrounds={backgrounds}\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 function isHiddenBasedOnAnimationType(\n props: Record<string, unknown>,\n deviceId: string,\n property: 'boxAnimateType' | 'itemAnimateType',\n ): boolean {\n const animateIn = props[property] as ResponsiveValue<BoxAnimateIn>\n return (findDeviceOverride<BoxAnimateIn>(animateIn, deviceId)?.value ?? 'none') === 'none'\n }\n const isHiddenBasedOnBoxAnimation = (props: Record<string, unknown>, deviceId: string) =>\n isHiddenBasedOnAnimationType(props, deviceId, 'boxAnimateType')\n const isHiddenBasedOnItemAnimation = (props: Record<string, unknown>, deviceId: string) =>\n isHiddenBasedOnAnimationType(props, deviceId, 'itemAnimateType')\n\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({ format: Props.Width.Formats.ClassName }),\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(props => ({\n hidden: props.children == null,\n })),\n columnGap: Props.GapX(props => ({\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((props, device) => ({\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((props, device) => ({\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((props, device) => ({\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((props, device) => ({\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((props, device) => ({\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(props => ({\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 { WidthProperty } from 'csstype'\nimport { CSSObject } from '@emotion/css'\n\nimport {\n ResponsiveValue,\n ResponsiveValueType as ExtractResponsiveValue,\n Length as LengthValue,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport {\n FallbackStrategy,\n getDevice,\n getDeviceMediaQuery,\n join as joinResponsiveValues,\n} from './devices'\n\nexport function responsiveStyle<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>>(\n responsiveValues: A,\n join: (values: { [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined }) => CSSObject,\n strategy?: FallbackStrategy<V>,\n): CSSObject {\n return joinResponsiveValues(responsiveValues, join, strategy).reduce(\n (acc, { deviceId, value }) => {\n const device = getDevice(deviceId)\n const mediaQuery = getDeviceMediaQuery(device)\n\n return {\n ...acc,\n [mediaQuery]: {\n ...(acc[mediaQuery] as CSSObject),\n ...value,\n },\n }\n },\n {} as CSSObject,\n )\n}\n\nexport function responsiveWidth(\n widthData: WidthValue | undefined,\n defaultValue: LengthValue | WidthProperty<string | number> = '100%',\n): CSSObject {\n return {\n maxWidth: '100%',\n ...responsiveStyle([widthData], ([width = defaultValue]) => ({\n width: typeof width === 'object' ? `${width.value}${width.unit}` : width,\n })),\n }\n}\n","import { ReactElement, ComponentPropsWithoutRef, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport ColorHelper from 'color'\nimport { cx, css as toClass } from '@emotion/css'\n\nimport { cssMediaRules, cssMargin, cssTextStyle } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n MarginValue,\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 { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { responsiveWidth } from '../../utils/responsive-style'\nimport { findDeviceOverride } from '../../utils/devices'\n\ntype ButtonVariant = 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n\ntype ControllerProps = {\n id?: ElementIDValue\n children?: TextInputValue\n link?: LinkValue\n variant?: ResponsiveSelectValue<ButtonVariant>\n shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n color?: ResponsiveColor\n textColor?: ResponsiveColor\n textStyle?: TextStyleValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst StyledButton = styled(Link)<{\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 ${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?: WidthValue\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 className,\n ...restOfProps\n },\n ref,\n) {\n return (\n <StyledButton\n {...restOfProps}\n ref={ref}\n id={id}\n className={cx(toClass(responsiveWidth(width, 'auto')), className)}\n // @ts-expect-error: HTMLAnchorElement `color` attribute conflicts with prop\n color={color}\n link={link}\n margin={margin}\n shape={shape}\n size={size}\n textColor={textColor}\n textStyle={textStyle}\n variant={variant}\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((props, device) => {\n const variant = props.variant as ResponsiveValue<ButtonVariant>\n const hidden = findDeviceOverride<ButtonVariant>(variant, device)?.value === 'clear'\n\n return { placeholder: 'black', hidden }\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 video: {\n src: \"data:image/svg+xml,%3Csvg width='712' height='400' viewBox='0 0 712 400' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M712 0H0V400H712V0ZM356 240C378.091 240 396 222.091 396 200C396 177.909 378.091 160 356 160C333.909 160 316 177.909 316 200C316 222.091 333.909 240 356 240Z' fill='%23A1A8C2' fill-opacity='0.18'/%3E%3Cpath d='M344 216.503V183.497C344 181.95 345.681 180.989 347.014 181.773L375.069 198.276C376.384 199.049 376.384 200.951 375.069 201.724L347.014 218.227C345.681 219.011 344 218.05 344 216.503Z' fill='%23A1A8C2' fill-opacity='0.4'/%3E%3C/svg%3E%0A\",\n dimensions: { width: 712, height: 400 },\n },\n}\n","import styled, { css } from 'styled-components'\nimport { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\nimport { css as toClass, cx } from '@emotion/css'\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} 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'\nimport { useIsPrefetching } from '../../../api/react'\nimport { responsiveWidth } from '../../utils/responsive-style'\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 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}>`\n line-height: 0;\n overflow: hidden;\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 const isPrefetching = useIsPrefetching()\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 const widthClass = toClass(responsiveWidth(width, `${dimensions.width}px`))\n\n if (isPrefetching) return null\n\n return (\n <ImageContainer\n as={link ? Link : 'div'}\n link={link}\n ref={ref}\n id={id}\n className={cx(className, widthClass)}\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'\nimport { cx } from '@emotion/css'\n\nimport { cssMediaRules, cssMargin } from '../../utils/cssMediaRules'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useMediaQuery } from '../../hooks'\n\nimport Image from '../Image'\nimport {\n ResponsiveValue,\n ElementIDValue,\n ImagesValue,\n MarginValue,\n ResponsiveNumberValue,\n ResponsiveIconRadioGroupValue,\n GapXValue,\n CheckboxValue,\n NumberValue,\n BorderValue,\n BorderRadiusValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { findDeviceOverride } from '../../utils/devices'\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?: string\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?: ResponsiveColor | null\n arrowBackground?: ResponsiveColor | null\n showDots?: CheckboxValue\n dotColor?: ResponsiveColor | null\n slideBorder?: BorderValue\n slideBorderRadius?: BorderRadiusValue\n}\n\nconst Wrapper = styled.div<{ margin: Props['margin'] }>`\n position: relative;\n display: flex;\n flex-direction: column;\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 className={cx(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={arrowColor}\n hidden={!showArrows || isFirstPage}\n >\n <Arrow background={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={arrowColor}\n hidden={!showArrows || isLastPage}\n >\n <Arrow background={arrowBackground}>\n <RightChevron />\n </Arrow>\n </RightSlop>\n </Container>\n {/* @ts-expect-error: HTMLDivElement attributes conflicts with `color` prop */}\n <Dots color={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({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 400, unit: 'px' },\n }),\n margin: Props.Margin(),\n pageSize: Props.ResponsiveNumber(props => {\n const images = props.images as unknown[]\n const imagesLength = images?.length ?? 0\n\n return {\n label: 'Images shown',\n defaultValue: 1,\n min: 1,\n max: imagesLength,\n step: 1,\n }\n }),\n step: Props.ResponsiveNumber((props, device) => {\n const pageSize = props.pageSize as ResponsiveValue<number>\n const pageSizeValue = findDeviceOverride(pageSize, device)?.value ?? 1\n\n return {\n label: 'Step',\n defaultValue: 1,\n min: 1,\n max: pageSizeValue,\n step: 1,\n }\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(props => ({\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(props => ({\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(props => ({\n label: 'Arrow color',\n placeholder: 'black',\n hidden: props.showArrows === false,\n })),\n arrowBackground: Props.ResponsiveColor(props => ({\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(props => ({\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'\nimport { cx } from '@emotion/css'\n\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { cssMediaRules, cssMargin } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n DateValue,\n ElementIDValue,\n FontValue,\n GapXValue,\n MarginValue,\n ResponsiveIconRadioGroupValue,\n TextInputValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\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?: ResponsiveColor | null\n blockColor?: ResponsiveColor | null\n labelFont?: FontValue\n labelColor?: ResponsiveColor | null\n width?: string\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 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 ${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 className={cx(width)}\n margin={margin}\n variant={variant}\n size={size}\n shape={shape}\n labelColor={labelColor}\n labelFont={labelFont}\n numberColor={numberColor}\n numberFont={numberFont}\n blockColor={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 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({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 560, unit: 'px' },\n }),\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'\nimport { cx } from '@emotion/css'\n\nimport { cssMediaRules, cssMargin } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n MarginValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n} from '../../../prop-controllers/descriptors'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\n\ntype DividerVariant = 'solid' | 'dashed' | 'dotted' | 'blended'\n\ntype Props = {\n id?: ElementIDValue\n variant?: ResponsiveSelectValue<DividerVariant>\n thickness?: ResponsiveLengthValue\n color?: ResponsiveColor | null\n width?: string\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<{ margin: Props['margin'] }>`\n display: flex;\n width: 100%;\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} className={cx(width)} margin={margin}>\n <Container>\n {/* @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop */}\n <Line variant={variant} thickness={thickness} color={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({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 100, unit: '%' },\n }),\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'\nimport { cx } from '@emotion/css'\n\nimport { cssMargin } from '../../utils/cssMediaRules'\nimport { ElementIDValue, MarginValue, TextAreaValue } from '../../../prop-controllers/descriptors'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../react'\n\ntype Props = {\n id?: ElementIDValue\n html?: TextAreaValue\n width?: string\n margin?: MarginValue\n}\n\nconst Container = styled.div<{ margin: Props['margin'] }>`\n min-height: 15px;\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 className={cx(width)}\n margin={margin}\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({ format: Props.Width.Formats.ClassName }),\n margin: Props.Margin(),\n },\n })\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS43MDcxIDEuNzkyODlDMTIuMDk3NiAyLjE4MzQyIDEyLjA5NzYgMi44MTY1OCAxMS43MDcxIDMuMjA3MTFMNC43MDcxMSAxMC4yMDcxQzQuMzE2NTggMTAuNTk3NiAzLjY4MzQyIDEwLjU5NzYgMy4yOTI4OSAxMC4yMDcxTDAuMjkyODkzIDcuMjA3MTFDLTAuMDk3NjMxMSA2LjgxNjU4IC0wLjA5NzYzMTEgNi4xODM0MiAwLjI5Mjg5MyA1Ljc5Mjg5QzAuNjgzNDE3IDUuNDAyMzcgMS4zMTY1OCA1LjQwMjM3IDEuNzA3MTEgNS43OTI4OUw0IDguMDg1NzlMMTAuMjkyOSAxLjc5Mjg5QzEwLjY4MzQgMS40MDIzNyAxMS4zMTY2IDEuNDAyMzcgMTEuNzA3MSAxLjc5Mjg5WiIvPgo8L3N2Zz4K\"","import { createContext, useContext } from 'react'\n\nimport { ResponsiveValue, TextStyleValue } from '../../../../prop-controllers/descriptors'\nimport { ResponsiveColor } from '../../../../runtimes/react/controls'\nimport { ColorValue } from '../../../utils/types'\n\nexport const Shapes = Object.freeze({\n SQUARE: 'square',\n ROUNDED: 'rounded',\n PILL: 'pill',\n} as const)\n\nexport type Shape = typeof Shapes[keyof typeof Shapes]\n\nexport const Sizes = Object.freeze({\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const)\n\nexport type Size = typeof Sizes[keyof typeof Sizes]\n\nexport const Contrasts = Object.freeze({\n LIGHT: 'light',\n DARK: 'dark',\n} as const)\n\nexport type Contrast = typeof Contrasts[keyof typeof Contrasts]\n\nexport type Value = {\n shape: ResponsiveValue<Shape> | null | undefined\n size: ResponsiveValue<Size> | null | undefined\n contrast: ResponsiveValue<Contrast> | null | undefined\n brandColor: ResponsiveValue<ColorValue> | null | undefined\n labelTextStyle?: TextStyleValue\n labelTextColor?: ResponsiveColor | null\n}\n\nconst Context = createContext<Value>({} as Value)\n\nexport function useFormContext(): Value {\n return useContext(Context)\n}\n\nconst { Provider } = Context\n\nexport { Provider }\n","import { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../utils/colorToString'\n\nimport {\n Size,\n Shape,\n Contrast,\n Shapes,\n Sizes,\n Contrasts,\n Value,\n} from '../../../context/FormContext'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 30\n\n case Sizes.MEDIUM:\n return 38\n\n case Sizes.LARGE:\n return 48\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getSizeHorizontalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 8\n\n case Sizes.MEDIUM:\n return 12\n\n case Sizes.LARGE:\n return 16\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nfunction getSizeVerticalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 3\n\n case Sizes.MEDIUM:\n return 7\n\n case Sizes.LARGE:\n return 11\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getShapeBorderRadius(shape: Shape): number {\n switch (shape) {\n case Shapes.SQUARE:\n return 0\n\n case Shapes.ROUNDED:\n return 4\n\n case Shapes.PILL:\n return 500\n\n default:\n throw new Error(`Invalid form shape \"${shape}\"`)\n }\n}\n\nexport function getContrastBorderColor(contrast: Contrast, error?: boolean): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(0, 0, 0, 0.25)'\n\n case Contrasts.DARK:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.6)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastBackgroundColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'white'\n\n case Contrasts.DARK:\n return 'rgba(0, 0, 0, 0.7)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.95)'\n\n case Contrasts.DARK:\n return 'white'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nfunction getContrastPlaceholderColor(contrast: Contrast) {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.3)'\n\n case Contrasts.DARK:\n return 'rgba(255,255,255,0.3)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport default function cssField() {\n return css<Pick<Value, 'shape' | 'size' | 'contrast' | 'brandColor'> & { error?: boolean }>`\n display: block;\n width: 100%;\n outline: none;\n border-width: 1px;\n border-style: solid;\n transition: border-color 200ms;\n ${props =>\n cssMediaRules(\n [props.shape, props.size, props.contrast, props.brandColor] as const,\n ([\n shape = Shapes.ROUNDED,\n size = Sizes.MEDIUM,\n contrast = Contrasts.LIGHT,\n brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => css`\n padding: ${getSizeVerticalPadding(size)}px ${getSizeHorizontalPadding(size)}px;\n border-radius: ${getShapeBorderRadius(shape)}px;\n border-color: ${getContrastBorderColor(contrast, props.error)};\n color: ${getContrastColor(contrast)};\n background-color: ${getContrastBackgroundColor(contrast)};\n\n :focus,\n :focus-within {\n border-color: ${colorToString(brandColor)};\n }\n\n ::placeholder {\n color: ${getContrastPlaceholderColor(contrast)};\n }\n `,\n )}\n `\n}\n","import { ComponentPropsWithoutRef, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { Size, useFormContext, Sizes, Value } from '../../../../context/FormContext'\nimport cssField from '../../services/cssField'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 36\n\n case Sizes.MEDIUM:\n return 42\n\n case Sizes.LARGE:\n return 48\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nconst Base = styled.input<\n Pick<Value, 'shape' | 'size' | 'contrast' | 'brandColor'> & { error?: boolean }\n>`\n ${cssField()}\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n min-height: ${getSizeHeight(size)}px;\n max-height: ${getSizeHeight(size)}px;\n `,\n )}\n`\n\ntype BaseProps = { error?: boolean; form?: unknown }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Base>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function Input(\n { error = false, form, ...restOfProps }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <Base\n {...restOfProps}\n ref={ref}\n error={error}\n shape={shape}\n // @ts-expect-error: HTMLInputEleent `size` attribute conflicts with prop\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n )\n})\n","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\n\nimport { MarginValue, WidthValue } from '../../../../../prop-controllers/descriptors'\nimport { cssMargin } from '../../../../utils/cssMediaRules'\n\nconst Container = styled.div<{\n width?: WidthValue\n margin?: MarginValue\n}>`\n display: flex;\n flex-direction: column;\n ${cssMargin()};\n`\n\nconst Label = styled.div`\n max-width: 120px;\n min-width: 60px;\n height: 8px;\n border-radius: 2px;\n background-color: #a1a8c2;\n opacity: 0.4;\n margin-bottom: 8px;\n`\n\nconst Input = styled.div`\n min-width: 80px;\n height: 32px;\n border-radius: 4px;\n border-width: 2px;\n border-style: solid;\n border-color: #a1a8c2;\n opacity: 0.4;\n`\n\nconst Button = styled.div`\n min-width: 140px;\n height: 32px;\n border-radius: 4px;\n background-color: #a1a8c2;\n opacity: 0.4;\n`\n\ntype Props = {\n className?: string\n margin?: MarginValue\n}\n\nexport default forwardRef(function Placeholder(\n { className, margin }: Props,\n ref: Ref<HTMLDivElement>,\n): JSX.Element {\n return (\n <Container ref={ref} className={className} margin={margin}>\n <div style={{ display: 'flex', flexDirection: 'column', marginBottom: 16 }}>\n <Label />\n <Input />\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', marginBottom: 16 }}>\n <Label />\n <Input />\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'flex-end' }}>\n <Button />\n </div>\n </Container>\n )\n})\n","import { ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport { ResponsiveValue } from '../../../../../../../prop-controllers'\nimport { TextStyleValue } from '../../../../../../../prop-controllers/descriptors'\nimport { cssMediaRules, cssTextStyle } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\n\nimport { useFormContext, Size, Sizes, Contrast, Contrasts } from '../../../../context/FormContext'\nimport { ColorValue } from '../../../../../../utils/types'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 14\n\n case Sizes.MEDIUM:\n return 18\n\n case Sizes.LARGE:\n return 22\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nfunction getContrastColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.8)'\n\n case Contrasts.DARK:\n return 'rgba(255, 255, 255, 0.95)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nconst Base = styled.label<{\n contrast?: ResponsiveValue<Contrast> | null | undefined\n size?: ResponsiveValue<Size> | null | undefined\n textStyle?: TextStyleValue | null | undefined\n textColor?: ResponsiveValue<ColorValue> | null | undefined\n}>`\n display: block;\n margin: 0 0 0.25em 0;\n ${cssTextStyle()}\n ${props =>\n cssMediaRules(\n [props.size, props.contrast, props.textColor] as const,\n ([size = Sizes.MEDIUM, contrast = Contrasts.LIGHT, textColor]) => css`\n min-height: ${getSizeHeight(size)}px;\n color: ${textColor == null ? getContrastColor(contrast) : colorToString(textColor)};\n `,\n )}\n`\n\ntype Props = ComponentPropsWithoutRef<typeof Base>\n\nexport default function Label(props: Props): JSX.Element {\n const { contrast, size, labelTextStyle, labelTextColor } = useFormContext()\n\n return (\n <Base\n {...props}\n contrast={contrast}\n size={size}\n textStyle={labelTextStyle}\n textColor={labelTextColor}\n />\n )\n}\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function SingleLineTextTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"text\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef, ComponentPropsWithoutRef } from 'react'\nimport styled from 'styled-components'\n\nimport cssField from '../../services/cssField'\nimport { Value, useFormContext } from '../../../../context/FormContext'\n\nconst Base = styled.textarea<Value & { error?: boolean }>`\n resize: vertical;\n ${cssField()}\n`\n\ntype BaseProps = { error?: boolean; form?: unknown }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Base>, keyof BaseProps>\n\nexport default forwardRef<HTMLTextAreaElement, Props>(function TextArea(\n { error = false, form, ...restOfProps }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <Base\n {...restOfProps}\n ref={ref}\n rows={4}\n error={error}\n shape={shape}\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport TextArea from '../TextArea'\n\ntype Props = {\n id: string\n label?: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLTextAreaElement, Props>(function LongTextTableField(\n { id, label = '', error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <TextArea {...restOfProps} aria-label={label} ref={ref} id={id} error={error != null} />\n </>\n )\n})\n","import { forwardRef, CSSProperties, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport Color from 'color'\n\nimport { getSizeHeight as getSize } from '../Label'\nimport {\n useFormContext,\n Value as FormContextValue,\n Sizes,\n Contrasts,\n} from '../../../../context/FormContext'\nimport { getContrastBorderColor, getContrastBackgroundColor } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { SwatchValue } from '../../../../../../utils/types'\n\nfunction getCheckmarkColor({\n swatch: { hue: h, saturation: s, lightness: l },\n alpha: a,\n}: {\n swatch: SwatchValue\n alpha: number\n}) {\n return Color({ h, s, l }).alpha(a).isLight() ? 'rgba(0, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.95)'\n}\n\nconst Container = styled.div<Pick<FormContextValue, 'size'>>`\n position: relative;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n height: ${getSize(size)}px;\n width: ${getSize(size)}px;\n `,\n )}\n`\n\nconst FakeCheckbox = styled.div<Pick<FormContextValue, 'contrast'> & { error?: boolean }>`\n position: absolute;\n width: 100%;\n height: 100%;\n border-style: solid;\n border-radius: 4px;\n pointer-events: none;\n border-width: 1px;\n ${props =>\n cssMediaRules(\n [props.contrast] as const,\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n background-color: ${getContrastBackgroundColor(contrast)};\n `,\n )}\n`\n\nconst HiddenCheckbox = styled.input<\n Pick<FormContextValue, 'size' | 'brandColor' | 'contrast'> & {\n error?: boolean\n }\n>`\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n\n &:disabled {\n cursor: no-drop;\n\n & ~ ${FakeCheckbox} {\n opacity: 0.5;\n }\n }\n\n &:checked ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([{ swatch = { hue: 0, saturation: 0, lightness: 0 }, alpha = 1 } = {}]) => css`\n background-color: ${colorToString({ swatch, alpha })};\n `,\n )}\n border-color: transparent;\n\n &::after {\n content: '';\n position: absolute;\n box-sizing: content-box;\n width: 25%;\n height: 50%;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n border-width: ${getSize(size) * 0.1}px;\n border-left: 0;\n border-top: 0;\n `,\n )}\n border-style: solid;\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([{ swatch = { hue: 0, saturation: 0, lightness: 0 }, alpha = 1 } = {}]) => css`\n border-color: ${getCheckmarkColor({ swatch, alpha })};\n `,\n )}\n transform: rotate(45deg) translate3d(91%, -23%, 0);\n }\n }\n\n &:not(:disabled) {\n &:focus ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.brandColor],\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n border-color: ${colorToString(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled):checked {\n &:focus ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.contrast],\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n `,\n )}\n }\n }\n`\n\ntype BaseProps = {\n error?: boolean\n className?: string\n style?: CSSProperties\n form?: unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof HiddenCheckbox>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function Checkbox(\n { error, className, style, form, ...restOfProps }: Props,\n ref,\n) {\n const { size, contrast, brandColor } = useFormContext()\n\n return (\n <Container size={size}>\n <HiddenCheckbox\n {...restOfProps}\n type=\"checkbox\"\n ref={ref}\n error={error}\n // @ts-expect-error: HTMLInputElement `size` attribute conflicts with prop\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n <FakeCheckbox className={className} error={error} contrast={contrast} style={style} />\n </Container>\n )\n})\n","import { forwardRef, SyntheticEvent } from 'react'\nimport styled, { css } from 'styled-components'\nimport { FormikProps } from 'formik'\n\nimport { useFormContext, Sizes, Value } from '../../../../context/FormContext'\nimport Label from '../Label'\nimport { getSizeHeight as getInputSizeHeight } from '../Input'\nimport Checkbox from '../Checkbox'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\n\nconst StyledLabel = styled(Label)<Pick<Value, 'size'>>`\n display: flex;\n align-items: center;\n margin: 0;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n `,\n )}\n`\n\nconst CheckboxContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n form: FormikProps<{\n [key: string]: boolean\n }>\n id: string\n label?: string\n name: string\n value?: boolean\n error?: string\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function CheckboxTableField(\n { form, id, name, label = '', value = false, error, ...restOfProps }: Props,\n ref,\n) {\n const { size } = useFormContext()\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n form.setFieldValue(name, event.currentTarget.checked)\n }\n\n return (\n <StyledLabel htmlFor={id} size={size}>\n <CheckboxContainer>\n <Checkbox\n {...restOfProps}\n aria-label={label}\n checked={value}\n onChange={handleChange}\n ref={ref}\n id={id}\n error={error != null}\n />\n </CheckboxContainer>\n {label}\n </StyledLabel>\n )\n})\n","import { forwardRef, useRef, useImperativeHandle, SyntheticEvent } from 'react'\nimport styled from 'styled-components'\n\nimport Label from '../Label'\nimport Checkbox from '../Checkbox'\n\nconst MainLabel = styled(Label)`\n margin: 0 0 4px 0;\n`\n\nconst StyledLabel = styled(Label)`\n display: flex;\n align-items: center;\n margin: 8px 0;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`\n\nconst CheckboxContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n value?: Array<string>\n label?: string\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n hideLabel?: boolean\n}\n\nexport default forwardRef<\n {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n },\n Props\n>(function MultipleSelectTableField(\n {\n tableColumn,\n label = '',\n required,\n value = [],\n onChange,\n hideLabel = false,\n ...restOfProps\n }: Props,\n ref,\n) {\n const handle = useRef({\n validity: { valueMissing: required === true && value.length === 0, typeMismatch: false },\n })\n\n useImperativeHandle(ref, () => handle.current, [])\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n handle.current.validity.valueMissing =\n required === true &&\n !event.currentTarget.checked &&\n value.filter(v => v !== event.currentTarget.value).length === 0\n\n onChange(event)\n }\n\n return (\n <div>\n {!hideLabel && <MainLabel>{label}</MainLabel>}\n {tableColumn.options.map(option => (\n <StyledLabel key={option.id} htmlFor={option.id}>\n <CheckboxContainer>\n <Checkbox\n {...restOfProps}\n aria-label={label}\n onChange={handleChange}\n checked={value.includes(option.name)}\n id={option.id}\n value={option.name}\n />\n </CheckboxContainer>\n {option.name}\n </StyledLabel>\n ))}\n </div>\n )\n})\n","import { forwardRef, CSSProperties, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport Color from 'color'\n\nimport { getSizeHeight as getSize } from '../Label'\nimport { useFormContext, Sizes, Contrasts, Value } from '../../../../context/FormContext'\nimport { getContrastBorderColor, getContrastBackgroundColor } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { ColorValue } from '../../../../../../utils/types'\n\nfunction getCheckmarkColor({\n swatch: { hue: h, saturation: s, lightness: l } = { hue: 0, saturation: 0, lightness: 0 },\n alpha: a,\n}: ColorValue) {\n return Color({ h, s, l }).alpha(a).isLight() ? 'rgba(0, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.95)'\n}\n\nconst Container = styled.div<Pick<Value, 'size'>>`\n position: relative;\n ${props =>\n cssMediaRules(\n [props.size],\n ([size = Sizes.MEDIUM]) => css`\n height: ${getSize(size)}px;\n width: ${getSize(size)}px;\n `,\n )}\n`\n\nconst FakeRadioButton = styled.div<Pick<Value, 'contrast'> & { error?: boolean }>`\n position: absolute;\n width: 100%;\n height: 100%;\n border-style: solid;\n border-radius: 50%;\n pointer-events: none;\n border-width: 1px;\n ${props =>\n cssMediaRules(\n [props.contrast],\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n background-color: ${getContrastBackgroundColor(contrast)};\n `,\n )}\n`\n\nconst HiddenRadioButton = styled.input.attrs({ type: 'radio' })<\n Pick<Value, 'brandColor' | 'contrast'> & { error?: boolean }\n>`\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n\n &:disabled {\n cursor: no-drop;\n\n & ~ ${FakeRadioButton} {\n opacity: 0.5;\n }\n }\n\n &:checked ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n background-color: ${colorToString(brandColor)};\n `,\n )}\n border-color: transparent;\n\n &::after {\n content: '';\n position: absolute;\n box-sizing: content-box;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n background-color: ${getCheckmarkColor(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled) {\n &:focus ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n border-color: ${colorToString(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled):checked {\n &:focus ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.contrast] as const,\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n `,\n )}\n }\n }\n`\n\ntype BaseProps = {\n error?: boolean\n className?: string\n style?: CSSProperties\n form?: unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof HiddenRadioButton>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function RadioButton(\n { error, className, style, form, ...restOfProps }: Props,\n ref,\n) {\n const { size, contrast, brandColor } = useFormContext()\n\n return (\n <Container size={size}>\n <HiddenRadioButton\n {...restOfProps}\n ref={ref}\n error={error}\n contrast={contrast}\n brandColor={brandColor}\n />\n <FakeRadioButton className={className} error={error} contrast={contrast} style={style} />\n </Container>\n )\n})\n","import { forwardRef, useRef, useImperativeHandle, SyntheticEvent } from 'react'\nimport styled from 'styled-components'\n\nimport Label from '../../../Label'\nimport RadioButton from '../../../RadioButton'\n\nconst StyledLabel = styled(Label)`\n display: flex;\n align-items: center;\n margin: 8px 0;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`\n\nconst RadioButtonContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n label?: string\n value?: string\n hideLabel?: boolean\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n}\n\nexport default forwardRef<\n {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n },\n Props\n>(function TableColumnRadioButtonGroup(\n {\n tableColumn,\n label = '',\n value = '',\n required = false,\n hideLabel = false,\n onChange,\n ...restOfProps\n }: Props,\n ref,\n) {\n const handle = useRef({\n validity: { valueMissing: required === true && value === '', typeMismatch: false },\n })\n\n useImperativeHandle(ref, () => handle.current, [])\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n handle.current.validity.valueMissing = required === true && !event.currentTarget.checked\n\n onChange(event)\n }\n\n return (\n <div>\n {!hideLabel && <Label as=\"p\">{label}</Label>}\n {tableColumn.options.map(option => (\n <StyledLabel key={option.id} htmlFor={option.id} aria-label={label}>\n <RadioButtonContainer>\n <RadioButton\n {...restOfProps}\n onChange={handleChange}\n checked={value === option.name}\n id={option.id}\n value={option.name}\n />\n </RadioButtonContainer>\n {option.name}\n </StyledLabel>\n ))}\n </div>\n )\n})\n","import { forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../../../utils/cssMediaRules'\nimport { useFormContext, Sizes, Contrasts, Value } from '../../../../../../context/FormContext'\nimport cssField, {\n getSizeHeight,\n getSizeHorizontalPadding,\n getContrastColor,\n} from '../../../../services/cssField'\nimport Label from '../../../Label'\n\nconst Container = styled.div<Value & { error?: boolean }>`\n ${cssField()}\n display: flex;\n align-items: center;\n position: relative;\n user-select: none;\n border-color: #f19eb9;\n\n &:focus,\n &:focus-within {\n border-color: #e54e7f;\n }\n\n ${props =>\n cssMediaRules(\n [props.size, props.contrast] as const,\n ([size = Sizes.MEDIUM, contrast = Contrasts.LIGHT]) => css`\n min-height: ${getSizeHeight(size)}px;\n max-height: ${getSizeHeight(size)}px;\n\n &::after {\n content: '';\n position: absolute;\n right: ${getSizeHorizontalPadding(size)}px;\n top: 50%;\n transform: translate3d(0, -25%, 0);\n border: solid 0.35em transparent;\n border-top-color: ${getContrastColor(contrast)};\n }\n `,\n )}\n`\n\nconst Select = styled.select`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n value?: string\n label?: string\n required?: boolean\n error?: boolean\n hideLabel?: boolean\n form?: unknown\n}\n\nexport default forwardRef<HTMLSelectElement, Props>(function TableColumnSingleSelect(\n {\n id,\n tableColumn,\n value = '',\n label = '',\n error = false,\n hideLabel = false,\n form,\n ...restOfProps\n }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Container\n error={error}\n shape={shape}\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n >\n <span>{value === '' ? '-' : value}</span>\n <Select {...restOfProps} aria-label={label} ref={ref} id={id} value={value}>\n <option value=\"\">-</option>\n {tableColumn.options.map(option => (\n <option key={option.id} value={option.name}>\n {option.name}\n </option>\n ))}\n </Select>\n </Container>\n </>\n )\n})\n","import { forwardRef, SyntheticEvent } from 'react'\n\nimport TableColumnRadioButtonGroup from './components/TableColumnRadioButtonGroup'\nimport TableColumnSingleSelect from './components/TableColumnSingleSelect'\n\ntype Props = {\n id: string\n name: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n label?: string\n value?: string\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n type: 'select' | 'radio'\n}\n\nexport default forwardRef<\n {\n readonly validity: {\n readonly valueMissing: boolean\n readonly typeMismatch: boolean\n }\n },\n Props\n>(function SingleSelectTableField({ type, ...restOfProps }: Props, ref) {\n return type === 'select' ? (\n // @ts-expect-error: custom ref doesn't match select element\n <TableColumnSingleSelect {...restOfProps} ref={ref} />\n ) : (\n <TableColumnRadioButtonGroup {...restOfProps} ref={ref} />\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function PhoneNumberTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"tel\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function EmailTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"email\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function URLTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"url\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function NumberTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"number\"\n error={error != null}\n />\n </>\n )\n})\n","import styled, { css } from 'styled-components'\n\nimport { useFormContext, Sizes, Shapes, Value } from '../../../../context/FormContext'\nimport { getSizeHeight as getLabelSizeHeight } from '../Label'\nimport { getSizeHeight as getInputSizeHeight } from '../Input'\nimport { getShapeBorderRadius } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\n\nconst Label = styled.div<Pick<Value, 'size'>>`\n display: block;\n max-width: 120px;\n min-width: 60px;\n border-radius: 2px;\n background-color: #5f49f4;\n opacity: 0.4;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n margin: calc(0.25 * ${getLabelSizeHeight(size)}px + 2px) 0;\n min-height: ${0.5 * getLabelSizeHeight(size)}px;\n max-height: ${0.5 * getLabelSizeHeight(size)}px;\n `,\n )}\n`\n\nconst Input = styled.div<Pick<Value, 'shape' | 'size'>>`\n display: block;\n width: 100%;\n border-width: 2px;\n border-style: solid;\n border-color: #5f49f4;\n opacity: 0.4;\n ${props =>\n cssMediaRules(\n [props.shape, props.size] as const,\n ([shape = Shapes.ROUNDED, size = Sizes.MEDIUM]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n border-radius: ${getShapeBorderRadius(shape)}px;\n `,\n )}\n`\n\nexport default function PlaceholderTableField(): JSX.Element {\n const { size, shape } = useFormContext()\n\n return (\n <>\n <Label size={size} />\n <Input shape={shape} size={size} />\n </>\n )\n}\n","import { useRef } from 'react'\nimport { Field as FormikField, getIn } from 'formik'\n\nimport SingleLineTextTableField from './components/SingleLineTextTableField'\nimport LongTextTableField from './components/LongTextTableField'\nimport CheckboxTableField from './components/CheckboxTableField'\nimport MultipleSelectTableField from './components/MultipleSelectTableField'\nimport SingleSelectTableField from './components/SingleSelectTableField'\nimport PhoneNumberTableField from './components/PhoneNumberTableField'\nimport EmailTableField from './components/EmailTableField'\nimport URLTableField from './components/URLTableField'\nimport NumberTableField from './components/NumberTableField'\nimport PlaceholderTableField from './components/PlaceholderTableField'\nimport { TableColumn } from '../../../../hooks'\n\nfunction getTypeMismatchErrorMessage(tableColumn: TableColumn | null | undefined, label: string) {\n switch ((tableColumn || {}).__typename) {\n case 'PhoneNumberTableColumn':\n return `${label} field must be a valid phone number.`\n\n case 'EmailTableColumn':\n return `${label} field must be a valid email.`\n\n case 'URLTableColumn':\n return `${label} field must be a valid URL.`\n\n case 'NumberTableColumn':\n return `${label} field must be a valid number.`\n\n case 'SingleLineTextTableColumn':\n case 'LongTextTableColumn':\n case 'CheckboxTableColumn':\n default:\n return `${label} field is invalid.`\n }\n}\n\nfunction getTableColumnField(tableColumn: TableColumn | null | undefined) {\n switch ((tableColumn || {}).__typename) {\n case 'SingleLineTextTableColumn':\n return SingleLineTextTableField\n\n case 'LongTextTableColumn':\n return LongTextTableField\n\n case 'CheckboxTableColumn':\n return CheckboxTableField\n\n case 'MultipleSelectTableColumn':\n return MultipleSelectTableField\n\n case 'SingleSelectTableColumn':\n return SingleSelectTableField\n\n case 'PhoneNumberTableColumn':\n return PhoneNumberTableField\n\n case 'EmailTableColumn':\n return EmailTableField\n\n case 'URLTableColumn':\n return URLTableField\n\n case 'NumberTableColumn':\n return NumberTableField\n\n default:\n return SingleLineTextTableField\n }\n}\n\ntype TableFormField = {\n id: string\n tableColumnId: string\n label?: string\n placeholder?: string\n required?: boolean\n hidden?: boolean\n type?: 'select' | 'radio'\n hideLabel?: boolean\n}\n\ntype Props = {\n tableColumn: TableColumn | null | undefined\n tableFormField: TableFormField\n}\n\nexport default function Field({\n tableColumn,\n tableFormField: {\n id,\n label = '',\n placeholder,\n required = false,\n hidden = false,\n type = 'radio',\n hideLabel = false,\n },\n}: Props): JSX.Element {\n const TableColumnField = getTableColumnField(tableColumn)\n const input = useRef<\n | {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n }\n | null\n | undefined\n >(null)\n\n if (!tableColumn) return <PlaceholderTableField />\n\n function validate() {\n let errorMessage\n\n if (input.current) {\n const { validity = {} as ValidityState } = input.current\n\n if (validity.valueMissing) errorMessage = `${label} is required.`\n\n if (validity.typeMismatch) errorMessage = getTypeMismatchErrorMessage(tableColumn, label)\n }\n\n return errorMessage\n }\n\n return (\n <FormikField name={tableColumn.name} validate={validate}>\n {({ field, form }: any) =>\n hidden ? (\n <input {...field} ref={input} type=\"hidden\" />\n ) : (\n <TableColumnField\n {...field}\n type={type}\n form={form}\n tableColumn={tableColumn}\n ref={input}\n id={id}\n error={getIn(form.touched, field.name) && getIn(form.errors, field.name)}\n label={label}\n placeholder={placeholder}\n required={required}\n hideLabel={hideLabel}\n />\n )\n }\n </FormikField>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEpIj4KICAgIDxjaXJjbGUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGN4PSI5IiBjeT0iOSIgcj0iOSIgc3Ryb2tlLW9wYWNpdHk9Ii40Ii8+CiAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIGQ9Ik05IDE4QTkgOSAwIDAgMCA5IDAiLz4KICA8L2c+Cjwvc3ZnPgo=\"","import styled, { keyframes } from 'styled-components'\n\nimport { ReactComponent as Spinner20 } from '../../../../icons/spinner-20.svg'\n\nconst spin = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Icon = styled(Spinner20)`\n display: inline-flex;\n animation: ${spin} 1s linear infinite;\n stroke: currentColor;\n`\n\nexport default function Spinner(): JSX.Element {\n return <Icon />\n}\n","import { useState, useEffect, useMemo } from 'react'\nimport { getBox } from '../../box-model'\nimport { TableFormFieldsPropController } from '../../prop-controllers/instances'\nimport { useIsInBuilder } from '../../react'\n\nexport function useTableFormFieldRefs(\n propController: TableFormFieldsPropController | null | undefined,\n { fieldsCount }: { fieldsCount: number },\n): {\n container: (arg0: HTMLElement | null | undefined) => void\n items: Array<(arg0: HTMLElement | null | undefined) => void>\n} {\n const [container, setContainer] = useState<HTMLElement | null | undefined>(null)\n const [items, setItems] = useState<Array<HTMLElement | null | undefined>>(\n Array(fieldsCount + 1).fill(null),\n )\n\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (!isInBuilder) return\n\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n if (propController == null) return\n\n if (container != null) propController.tableFormLayoutChange({ layout: getBox(container) })\n\n items.map((item, index) => {\n if (item == null) return\n\n propController.tableFormFieldLayoutChange({ index, layout: getBox(item) })\n })\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }, [propController, container, items, isInBuilder])\n\n const itemRefs = useMemo(\n () =>\n Array.from({ length: fieldsCount + 1 }).map(\n (_, index) => (item: HTMLElement | null | undefined) => {\n setItems(is => [...is.slice(0, index), item, ...is.slice(index + 1)])\n },\n ),\n [fieldsCount, setItems],\n )\n\n return { container: setContainer, items: itemRefs }\n}\n","import {\n useState,\n useEffect,\n useRef,\n useMemo,\n forwardRef,\n ComponentPropsWithoutRef,\n Ref,\n useImperativeHandle,\n} from 'react'\nimport styled, { css } from 'styled-components'\nimport { Formik, getIn } from 'formik'\nimport { cx } from '@emotion/css'\n\nimport { ReactComponent as Check12 } from '../../icons/check-12.svg'\n\nimport { getSizeHeight as getInputSizeHeight } from './components/Field/components/Input'\n\nimport {\n Size,\n Sizes,\n Provider as FormContextProvider,\n Shape,\n Contrast,\n Shapes,\n Contrasts,\n} from './context/FormContext'\nimport Placeholder from './components/Placeholder'\nimport Field from './components/Field'\nimport Spinner from './components/Spinner'\nimport Button from '../Button'\nimport { TableColumn, useTable } from '../../hooks'\nimport { cssGridItem, cssMargin, cssMediaRules } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n GapYValue,\n LinkValue,\n MarginValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n TableFormFieldsDescriptor,\n TableFormFieldsValue,\n TableValue,\n TextInputValue,\n TextStyleValue,\n} from '../../../prop-controllers/descriptors'\nimport { Link } from '../../shared/Link'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\nimport { useTableFormFieldRefs } from '../../hooks/useTableFormFieldRefs'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { useMutation, gql } from '../../../api/react'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { findDeviceOverride } from '../../utils/devices'\n\nconst LOCAL_STORAGE_NAMESPACE = '@@makeswift/components/form'\n\nfunction getSizeFontSize(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 12\n\n case Sizes.MEDIUM:\n return 14\n\n case Sizes.LARGE:\n return 18\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport const Alignments = {\n LEFT: 'left',\n CENTER: 'center',\n RIGHT: 'right',\n} as const\n\nexport type Alignment = typeof Alignments[keyof typeof Alignments]\n\ntype Props = {\n id?: ElementIDValue\n tableId?: TableValue\n fields?: TableFormFieldsValue\n submitLink?: LinkValue\n gap?: GapYValue\n shape?: ResponsiveIconRadioGroupValue<Shape>\n size?: ResponsiveIconRadioGroupValue<Size>\n contrast?: ResponsiveIconRadioGroupValue<Contrast>\n labelTextStyle?: TextStyleValue\n labelTextColor?: ResponsiveColor | null\n submitTextStyle?: TextStyleValue\n brandColor?: ResponsiveColor | null\n submitTextColor?: ResponsiveColor | null\n submitLabel?: TextInputValue\n submitVariant?: ResponsiveSelectValue<\n 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n >\n submitWidth?: ResponsiveLengthValue\n submitAlignment?: ResponsiveIconRadioGroupValue<Alignment>\n width?: string\n margin?: MarginValue\n}\n\nconst GridForm = styled.form<{\n size: Props['size']\n margin: Props['margin']\n}>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n ${props =>\n cssMediaRules(\n [props.size],\n ([size = Sizes.MEDIUM]) => css`\n font-size: ${getSizeFontSize(size)}px;\n `,\n )}\n ${cssMargin()}\n`\n\nconst GridItem = styled.div`\n align-self: flex-end;\n flex-direction: column;\n ${cssGridItem()}\n`\n\nfunction getAlignmentMargin(alignment: Alignment): string {\n switch (alignment) {\n case Alignments.LEFT:\n return '0 auto 0 0'\n case Alignments.RIGHT:\n return '0 0 0 auto'\n default:\n return '0 auto'\n }\n}\n\nconst StyledButton = styled((props: ComponentPropsWithoutRef<typeof Button>) => (\n <Button {...props} as=\"button\" />\n))<{\n size: Props['size']\n alignment: Props['submitAlignment']\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n ${props =>\n cssMediaRules(\n [props.size, props.alignment] as const,\n ([size = Sizes.MEDIUM, alignment = Alignments.CENTER]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n margin: ${getAlignmentMargin(alignment)};\n padding-top: 0;\n padding-bottom: 0;\n `,\n )}\n`\n\nconst ErrorContainer = styled.div`\n padding: 8px 16px;\n background-color: #f19eb9;\n border-radius: 4px;\n margin-top: 16px;\n`\n\nconst IconContainer = styled.div`\n fill: currentColor;\n`\n\nconst ErrorMessage = styled.p`\n font-size: 12px;\n margin: 8px 0;\n color: rgba(127, 0, 0, 0.95);\n`\n\nfunction getTableColumnDefaultValue(tableColumn: TableColumn) {\n switch (tableColumn.__typename) {\n case 'CheckboxTableColumn':\n return false\n\n case 'MultipleSelectTableColumn':\n return []\n\n case 'SingleLineTextTableColumn':\n case 'LongTextTableColumn':\n case 'SingleSelectTableColumn':\n case 'PhoneNumberTableColumn':\n case 'EmailTableColumn':\n case 'URLTableColumn':\n case 'NumberTableColumn':\n default:\n return ''\n }\n}\n\nconst CREATE_TABLE_RECORD = gql`\n mutation CreateTableRecord($input: CreateTableRecordInput!) {\n createTableRecord(input: $input) {\n tableRecord {\n id\n }\n }\n }\n`\n\ntype Column = { columnId: string; data: Record<string, any> }\ntype Fields = Record<string, string | string[] | boolean>\n\ntype Descriptors = { fields?: TableFormFieldsDescriptor }\n\nconst Form = forwardRef(function Form(\n {\n id,\n tableId,\n fields: fieldsProp,\n submitLabel = 'Submit',\n submitLink,\n shape,\n size,\n contrast,\n brandColor,\n gap,\n width,\n margin,\n submitTextStyle,\n submitVariant,\n submitTextColor,\n submitWidth,\n submitAlignment,\n labelTextStyle,\n labelTextColor,\n }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const fields = useMemo(() => fieldsProp?.fields ?? [], [fieldsProp])\n const grid = useMemo(() => fieldsProp?.grid ?? [], [fieldsProp])\n const { data: { table } = {} } = useTable(tableId)\n const [createTableRecord] = useMutation(CREATE_TABLE_RECORD)\n const [refEl, setRefEl] = useState<HTMLElement | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const [initialValues, setInitialValues] = useState<Fields>(() =>\n fields.reduce((acc, formField) => {\n const tableColumn = table && table.columns.find(field => field.id === formField.tableColumnId)\n const defaultValue = formField ? formField.defaultValue : null\n\n if (tableColumn) {\n acc[tableColumn.name] =\n defaultValue == null ? getTableColumnDefaultValue(tableColumn) : defaultValue\n }\n\n return acc\n }, {} as Fields),\n )\n const controller = propControllers?.fields\n const { container, items } = useTableFormFieldRefs(controller, { fieldsCount: fields.length })\n const [isDone, setIsDone] = useState(false)\n const linkRef = useRef<HTMLAnchorElement>(null)\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n return refEl instanceof Element ? getBox(refEl) : null\n },\n setPropControllers,\n }),\n [refEl, setPropControllers],\n )\n\n useEffect(() => {\n container(refEl)\n }, [container, refEl])\n\n useEffect(() => {\n if (!isDone) return\n\n let timeoutId = setTimeout(() => setIsDone(false), 2500)\n\n return () => clearTimeout(timeoutId)\n }, [isDone])\n\n function getTableColumn({ tableColumnId }: any) {\n return table && table.columns.find(field => tableColumnId === field.id)\n }\n\n async function handleSubmit(values: any, { setSubmitting, resetForm, setStatus }: any) {\n if (table) {\n const columns: Column[] = []\n\n fields.forEach(field => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data) {\n columns.push({ columnId: field.tableColumnId, data })\n\n if (field.autofill) {\n localStorage.setItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n JSON.stringify(data),\n )\n }\n }\n }\n })\n\n try {\n await createTableRecord({\n variables: { input: { data: { tableId: table.id, columns } } },\n })\n setIsDone(true)\n setInitialValues(prev =>\n fields.reduce(\n (acc, field) => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data && field.autofill) return { ...acc, [tableColumn.name]: data }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n resetForm()\n\n if (linkRef.current != null) linkRef.current.click()\n } catch (error) {\n setStatus({ error: 'An unexpected error has occurred, please try again later' })\n } finally {\n setSubmitting(false)\n }\n }\n }\n\n useEffect(() => {\n setInitialValues(prev =>\n fields.reduce(\n (acc, formField) => {\n const tableColumn =\n table && table.columns.find(field => field.id === formField.tableColumnId)\n\n if (tableColumn && formField.autofill) {\n const storedValue = localStorage.getItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n )\n\n if (storedValue) {\n try {\n acc[tableColumn.name] = JSON.parse(storedValue)\n } catch (e) {\n // Ignore\n }\n }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n }, [fields, table])\n\n return (\n <FormContextProvider\n value={{ shape, size, contrast, brandColor, labelTextStyle, labelTextColor }}\n >\n {tableId == null ? (\n <Placeholder ref={setRefEl} className={cx(width)} margin={margin} />\n ) : (\n <>\n <Formik\n onSubmit={handleSubmit}\n initialValues={initialValues}\n initialStatus={{ error: null }}\n enableReinitialize\n >\n {formik => {\n const error = formik.status && formik.status.error\n const errors = fields\n .map(field => {\n const tableColumn = getTableColumn(field)\n\n return (\n tableColumn &&\n getIn(formik.touched, tableColumn.name) &&\n getIn(formik.errors, tableColumn.name)\n )\n })\n .filter(message => typeof message === 'string')\n\n return (\n <>\n <GridForm\n ref={setRefEl}\n id={id}\n className={cx(width)}\n margin={margin}\n size={size}\n onSubmit={formik.handleSubmit}\n onReset={formik.handleReset}\n noValidate\n >\n {fields.map((field, index) => {\n const tableColumn = getTableColumn(field)\n\n return (\n <GridItem\n key={field.id}\n ref={items[index]}\n grid={grid}\n index={index}\n rowGap={gap}\n columnGap={gap}\n >\n <Field tableColumn={tableColumn} tableFormField={field} />\n </GridItem>\n )\n })}\n <GridItem\n ref={items[fields.length]}\n grid={grid}\n index={fields.length}\n rowGap={gap}\n columnGap={gap}\n >\n <StyledButton\n type=\"submit\"\n disabled={formik.isSubmitting || isDone}\n shape={shape}\n size={size}\n color={brandColor}\n variant={submitVariant}\n textColor={submitTextColor}\n width={submitWidth}\n alignment={submitAlignment}\n textStyle={submitTextStyle}\n >\n {formik.isSubmitting ? (\n <Spinner />\n ) : isDone ? (\n <IconContainer>\n <Check12 />\n </IconContainer>\n ) : (\n submitLabel\n )}\n </StyledButton>\n {(errors.length > 0 || error) && (\n <ErrorContainer>\n {errors.map(message => (\n <ErrorMessage key={message}>{message}</ErrorMessage>\n ))}\n {error != null && <ErrorMessage>{error}</ErrorMessage>}\n </ErrorContainer>\n )}\n </GridItem>\n </GridForm>\n {submitLink != null && <Link ref={linkRef} hidden link={submitLink} />}\n </>\n )\n }}\n </Formik>\n </>\n )}\n </FormContextProvider>\n )\n})\n\nexport default Form\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Form, {\n type: './components/Form/index.js',\n label: 'Form',\n icon: 'Form40',\n props: {\n id: Props.ElementID(),\n tableId: Props.Table(),\n fields: Props.TableFormFields(),\n submitLink: Props.Link(props => ({\n label: 'Redirect to',\n // TODO: This option is hardcoded. We should import it from LinkPanelOptions\n options: [\n { value: 'OPEN_PAGE', label: 'Open page' },\n { value: 'OPEN_URL', label: 'Open URL' },\n ],\n hidden: props.tableId == null,\n })),\n gap: Props.GapY(props => ({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Gap',\n defaultValue: { value: 0, unit: 'px' },\n hidden: props.tableId == null,\n })),\n shape: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Shape',\n options: [\n { label: 'Pill', value: Shapes.PILL, icon: 'ButtonPill16' },\n { label: 'Rounded', value: Shapes.ROUNDED, icon: 'ButtonRounded16' },\n { label: 'Square', value: Shapes.SQUARE, icon: 'ButtonSquare16' },\n ],\n defaultValue: Shapes.ROUNDED,\n hidden: props.tableId == null,\n })),\n size: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Size',\n options: [\n { label: 'Small', value: Sizes.SMALL, icon: 'SizeSmall16' },\n { label: 'Medium', value: Sizes.MEDIUM, icon: 'SizeMedium16' },\n { label: 'Large', value: Sizes.LARGE, icon: 'SizeLarge16' },\n ],\n defaultValue: Sizes.MEDIUM,\n hidden: props?.tableId == null,\n })),\n contrast: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Color',\n options: [\n { label: 'Light mode', value: Contrasts.LIGHT, icon: 'Sun16' },\n { label: 'Dark mode', value: Contrasts.DARK, icon: 'Moon16' },\n ],\n defaultValue: Contrasts.LIGHT,\n hidden: props.tableId == null,\n })),\n labelTextStyle: Props.TextStyle({ label: 'Label text style' }),\n labelTextColor: Props.ResponsiveColor((props, device) => {\n const hidden = props.tableId == null\n const responsiveContrast = props.contrast as ResponsiveValue<Contrast>\n const contrast = findDeviceOverride<Contrast>(responsiveContrast, device)\n\n return {\n hidden,\n label: 'Label text color',\n placeholder:\n contrast?.value === Contrasts.DARK ? 'rgba(255,255,255,0.95)' : 'rgba(0,0,0,0.8)',\n }\n }),\n submitTextStyle: Props.TextStyle({ label: 'Button text style' }),\n brandColor: Props.ResponsiveColor(props => ({\n label: 'Button color',\n placeholder: 'black',\n hidden: props.tableId == null,\n // TODO: Add hideAlphaSlider\n })),\n submitTextColor: Props.ResponsiveColor(props => ({\n label: 'Button text color',\n placeholder: 'white',\n hidden: props.tableId == null,\n })),\n submitLabel: Props.TextInput(props => ({\n label: 'Button label',\n placeholder: 'Submit',\n hidden: props.tableId == null,\n })),\n submitVariant: Props.ResponsiveSelect(props => ({\n label: 'Button style',\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 hidden: props.tableId == null,\n })),\n submitWidth: Props.ResponsiveLength(props => ({\n label: 'Button width',\n hidden: props.tableId == null,\n // TODO: Add placeholder: { value: 'auto' }\n })),\n submitAlignment: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Button alignment',\n options: [\n { label: 'Left', value: Alignments.LEFT, icon: 'AlignLeft16' },\n { label: 'Center', value: Alignments.CENTER, icon: 'AlignCenter16' },\n { label: 'Right', value: Alignments.RIGHT, icon: 'AlignRight16' },\n ],\n defaultValue: Alignments.CENTER,\n hidden: props.tableId == null,\n })),\n width: Props.Width({\n format: Props.Width.Formats.ClassName,\n preset: [{ deviceId: 'desktop', value: { value: 550, unit: 'px' } }],\n defaultValue: { value: 100, unit: '%' },\n }),\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, 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 { useResponsiveColor } 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 ${cssTextStyle()}\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={useResponsiveColor(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 textColor,\n color,\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\n {...restOfProps}\n textColor={useResponsiveColor(textColor)}\n color={useResponsiveColor(color)}\n >\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 { useResponsiveColor } 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={useResponsiveColor(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 color,\n textColor,\n ...restOfProps\n}: Props): JSX.Element {\n const [isOpen, setIsOpen] = useState(false)\n return (\n <>\n <ButtonLink\n {...restOfProps}\n textColor={useResponsiveColor(textColor)}\n color={useResponsiveColor(color)}\n onPointerDown={() => setIsOpen(prev => !prev)}\n >\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 { ComponentPropsWithoutRef, Fragment } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n NavigationLinksValue,\n NavigationButton as NavigationButtonValue,\n} from '../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport { ReactComponent as Times16 } from '../../../../icons/times-16.svg'\n\nimport Button from '../../../Button'\nimport DropDownButton from './components/MobileDropDownButton'\nimport { ResponsiveColor } from '../../../../../runtimes/react/controls'\nimport { useResponsiveColor } from '../../../../hooks'\n\ntype NavigationButtonProps = NavigationButtonValue['payload'] &\n Omit<ComponentPropsWithoutRef<typeof Button>, 'color' | 'textColor'>\n\nfunction NavigationButton(props: NavigationButtonProps): JSX.Element {\n const { textColor, color, ...restOfProps } = props\n\n return (\n <Button\n {...restOfProps}\n textColor={useResponsiveColor(textColor)}\n color={useResponsiveColor(color)}\n />\n )\n}\n\nconst ButtonLink = styled(NavigationButton)`\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?: ResponsiveColor | null\n closeIconColor?: ResponsiveColor | null\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={backgroundColor} open={open}>\n {/* @ts-expect-error: HTMLButtonElement `color` attribute conflicts with prop */}\n <CloseIconContainer color={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 { ComponentPropsWithoutRef, forwardRef, useState } from 'react'\nimport styled, { css } from 'styled-components'\nimport { cx } from '@emotion/css'\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 ResponsiveIconRadioGroupValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n TextInputValue,\n TextStyleValue,\n NavigationButton as NavigationButtonValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssMargin, cssMediaRules, cssTextStyle } from '../../utils/cssMediaRules'\nimport { ColorValue as Color } from '../../utils/types'\nimport { colorToString } from '../../utils/colorToString'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { findDeviceOverride } from '../../utils/devices'\nimport { useResponsiveColor } from '../../hooks'\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?: ResponsiveColor | null\n mobileMenuCloseIconColor?: ResponsiveColor | null\n mobileMenuBackgroundColor?: ResponsiveColor | null\n width?: string\n margin?: MarginValue\n}\n\nconst Container = styled.nav<{\n margin: Props['margin']\n textStyle: Props['linkTextStyle']\n gutter: Props['gutter']\n}>`\n display: flex;\n align-items: center;\n ${cssMargin()}\n ${cssTextStyle()}\n ${p =>\n cssMediaRules(\n [p.gutter] as const,\n ([gutter = { value: 0, unit: 'px' }]) => css`\n gap: ${gutter.value}${gutter.unit};\n `,\n )}\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\ntype NavigationButtonProps = NavigationButtonValue['payload'] &\n Omit<ComponentPropsWithoutRef<typeof Button>, 'color' | 'textColor'>\n\nfunction NavigationButton(props: NavigationButtonProps): JSX.Element {\n const { textColor, color, ...restOfProps } = props\n\n return (\n <Button\n {...restOfProps}\n textColor={useResponsiveColor(textColor)}\n color={useResponsiveColor(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\n ref={ref}\n id={id}\n className={cx(width)}\n margin={margin}\n textStyle={linkTextStyle}\n gutter={gutter}\n >\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' && (\n <NavigationButton {...link.payload}>{link.payload.label}</NavigationButton>\n )}\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={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(props => {\n const links = props.links as NavigationLinksValue\n\n return {\n label: 'Link text style',\n hidden: links == null || links.length === 0,\n }\n }),\n showLogo: Props.Checkbox({ preset: true, label: 'Show logo' }),\n logoFile: Props.Image(props => ({\n label: 'Logo',\n hidden: props.showLogo === false,\n })),\n logoWidth: Props.ResponsiveLength(props => ({\n preset: [{ deviceId: 'desktop', value: { value: 100, unit: 'px' } }],\n label: 'Logo width',\n min: 0,\n max: 1000,\n // TODO: This is hardcoded value, import it from LengthInputOptions\n options: [{ value: 'px', label: 'Pixels', icon: 'Px16' }],\n hidden: props.showLogo === false,\n })),\n logoAltText: Props.TextInput(props => ({\n label: 'Logo alt text',\n hidden: props.showLogo === false,\n })),\n logoLink: Props.Link(props => ({\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((props, device) => {\n const mobileMenuAnimation = props.mobileMenuAnimation as ResponsiveValue<string>\n const hidden = !findDeviceOverride(mobileMenuAnimation, device)\n\n return {\n label: 'Open icon color',\n placeholder: 'rgba(161, 168, 194, 0.5)',\n hidden,\n }\n }),\n mobileMenuCloseIconColor: Props.ResponsiveColor((props, device) => {\n const mobileMenuAnimation = props.mobileMenuAnimation as ResponsiveValue<string>\n const hidden = !findDeviceOverride(mobileMenuAnimation, device)\n\n return {\n label: 'Close icon color',\n placeholder: 'rgba(161, 168, 194, 0.5)',\n hidden,\n }\n }),\n mobileMenuBackgroundColor: Props.ResponsiveColor((props, device) => {\n const mobileMenuAnimation = props.mobileMenuAnimation as ResponsiveValue<string>\n const hidden = !findDeviceOverride(mobileMenuAnimation, device)\n\n return {\n label: 'Menu BG color',\n placeholder: 'black',\n hidden,\n }\n }),\n width: Props.Width({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 100, unit: '%' },\n }),\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'\nimport { cx } from '@emotion/css'\n\nimport { Link } from '../../shared/Link'\nimport { cssMediaRules, cssMargin } from '../../utils/cssMediaRules'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\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 GapXValue,\n MarginValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\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?: ResponsiveColor | null\n backgroundColor?: ResponsiveColor | null\n alignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gutter?: GapXValue\n width?: string\n margin?: MarginValue\n}\n\nconst Container = styled.div<{\n margin: Props['margin']\n alignment: Props['alignment']\n}>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\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 return (\n <Container ref={ref} id={id} className={cx(width)} alignment={alignment} 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={backgroundColor}\n brandColor={option.brandColor}\n fill={fill}\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(props => {\n const links = props.links as SocialLinksValue\n\n return {\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 }),\n size: Props.ResponsiveIconRadioGroup(props => {\n const links = props.links as SocialLinksValue\n\n return {\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 }),\n hoverStyle: Props.ResponsiveSelect(props => {\n const links = props.links as SocialLinksValue\n const hidden = links == null || links.links.length === 0\n\n return {\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,\n }\n }),\n fill: Props.ResponsiveColor(props => {\n const links = props.links as SocialLinksValue\n const hidden = links == null || links.links.length === 0\n\n return {\n label: 'Icon color',\n hidden,\n }\n }),\n backgroundColor: Props.ResponsiveColor(props => {\n const links = props.links as SocialLinksValue\n const hidden = links == null || links.links.length === 0\n\n return {\n label: 'Shape color',\n hidden,\n }\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({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 100, unit: '%' },\n }),\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'\nimport { cx } from '@emotion/css'\nimport { isHotkey } from 'is-hotkey'\n\nimport {\n ElementIDValue,\n MarginValue,\n RichTextDescriptor,\n RichTextValue,\n} from '../../../prop-controllers/descriptors'\nimport { 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?: string\n margin?: MarginValue\n}\n\nconst StyledRichTextEditor = styled(RichTextEditor)<{ margin: Props['margin'] }>`\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 !== value) {\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 if (isHotkey('escape')(event)) {\n lastController.current?.blur()\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 className={cx(width)}\n readOnly={!isInBuilder}\n margin={margin}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n // Workaround for: clicking on any of the text panel will remove the text selection.\n onBlur={e => e.preventDefault()}\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 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 format: Props.Width.Formats.ClassName,\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","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport ReactPlayer from 'react-player'\nimport { cx } from '@emotion/css'\n\nimport {\n BorderRadiusValue,\n ElementIDValue,\n MarginValue,\n VideoValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssBorderRadius, cssMargin } from '../../utils/cssMediaRules'\nimport { placeholders } from '../../utils/placeholders'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n video?: VideoValue\n width?: string\n margin?: MarginValue\n borderRadius?: BorderRadiusValue\n}\n\nconst Container = styled.div<{ margin: Props['margin']; borderRadius: Props['borderRadius'] }>`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n ${cssMargin()}\n ${cssBorderRadius()}\n`\n\nconst ASPECT_RATIO = 16 / 9\n\nconst Video = forwardRef(function Video(\n { id, video, width, margin, borderRadius }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const canPlayUrl = video && video.url != null && ReactPlayer.canPlay(video.url)\n\n return (\n <Container ref={ref} id={id} className={cx(width)} margin={margin} borderRadius={borderRadius}>\n <div style={{ position: 'relative', paddingTop: `${100 / ASPECT_RATIO}%` }}>\n <div style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>\n {canPlayUrl === true ? (\n <ReactPlayer\n {...video}\n width=\"100%\"\n height=\"100%\"\n config={{\n vimeo: { playerOptions: { background: video != null && !video.controls } },\n wistia: {\n options: {\n endVideoBehavior: video != null && video.loop === true ? 'loop' : 'default',\n },\n },\n }}\n />\n ) : (\n <img width=\"100%\" src={placeholders.video.src} alt=\"Video Placeholder\" />\n )}\n </div>\n </div>\n </Container>\n )\n})\n\nexport default Video\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Video, {\n type: './components/Video/index.js',\n label: 'Video',\n icon: 'Video40',\n props: {\n id: Props.ElementID(),\n video: Props.Video({ preset: { controls: true } }),\n width: Props.Width({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 560, unit: 'px' },\n }),\n margin: Props.Margin(),\n borderRadius: Props.BorderRadius(),\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 Form } from './Form'\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 registerFormComponent } from './Form'\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'\nimport { registerComponent as registerVideoComponent } from './Video'\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 unregisterFormComponent = registerFormComponent(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 const unregisterVideoComponent = registerVideoComponent(runtime)\n\n return () => {\n unregisterBoxComponent()\n unregisterButtonComponent()\n unregisterCarouselComponent()\n unregisterCountdownComponent()\n unregisterDividerComponent()\n unregisterEmbedComponent()\n unregisterFormComponent()\n unregisterImageComponent()\n unregisterNavigationComponent()\n unregisterRootComponent()\n unregisterSocialLinksComponent()\n unregisterTextComponent()\n unregisterTextComponent()\n unregisterVideoComponent()\n }\n}\n","import { useEffect } from 'react'\n\nconst SCRIPT_TAG = 'script'\n\ntype Props = {\n code: string\n cleanup: string | null | undefined\n}\n\nexport function BodySnippet({ code, cleanup }: Props): null {\n useEffect(() => {\n const container = document.createElement('div')\n\n container.innerHTML = code\n\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT)\n const scripts: HTMLScriptElement[] = []\n\n while (walker.nextNode()) {\n if (walker.currentNode instanceof HTMLScriptElement) scripts.push(walker.currentNode)\n }\n\n scripts.forEach(inlineScript => {\n const executableScript = document.createElement(SCRIPT_TAG)\n\n executableScript.textContent = inlineScript.textContent\n Array.from(inlineScript.attributes).forEach(({ name, value }) => {\n executableScript.setAttribute(name, value)\n })\n\n inlineScript.parentNode?.replaceChild(executableScript, inlineScript)\n })\n\n const nodes = Array.from(container.childNodes)\n\n document.body.append(...nodes)\n\n return () => {\n nodes.forEach(node => {\n node.parentNode?.removeChild(node)\n })\n\n if (cleanup == null) return\n\n const cleanUp = new Function(cleanup)\n\n try {\n cleanUp()\n } catch {\n // Ignore errors from user input.\n }\n }\n }, [code, cleanup])\n\n return null\n}\n","export default function is(x: unknown, y: unknown): boolean {\n if (x === y) return x !== 0 || y !== 0 || 1 / x === 1 / y\n\n return x !== x && y !== y\n}\n","import is from './is'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst shallowEqual = (a: unknown, b: unknown): boolean => {\n if (is(a, b)) return true\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) return false\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) return false\n\n for (let i = 0; i < keysA.length; i += 1) {\n // @ts-expect-error: {}[string] is OK.\n if (!hasOwnProperty.call(b, keysA[i]) || !is(a[keysA[i]], b[keysA[i]])) return false\n }\n\n return true\n}\n\nexport default shallowEqual\n","import shallowEqual from './shallowEqual'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst deepEqual = (a: unknown, b: unknown): boolean => {\n if (shallowEqual(a, b)) return true\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) return false\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) return false\n\n for (let i = 0; i < keysA.length; i += 1) {\n if (\n !hasOwnProperty.call(b, keysA[i]) ||\n // @ts-expect-error: {}[string] is OK.\n !deepEqual(a[keysA[i]], b[keysA[i]])\n )\n return false\n }\n\n return true\n}\n\nexport default deepEqual\n","import { ReactElement, Children, createElement, useMemo, useEffect, useRef, useState } from 'react'\nimport parse from 'html-react-parser'\nimport Head from 'next/head'\n\nimport { BodySnippet } from './BodySnippet'\nimport { DocumentReference } from '../../runtimes/react'\nimport { createDocumentReference } from '../../state/react-page'\nimport { useQuery, gql } from '../../api/react'\nimport { useIsInBuilder } from '../../react'\nimport deepEqual from '../../utils/deepEqual'\n\nenum SnippetLocation {\n Body = 'BODY',\n Head = 'HEAD',\n}\n\ntype Snippet = {\n builderEnabled: boolean\n cleanup?: string | null\n code: string\n id: string\n liveEnabled: boolean\n location: SnippetLocation\n}\n\nexport type PageData = {\n id: string\n meta: {\n title?: string | null | undefined\n description?: string | null | undefined\n keywords?: string | null | undefined\n socialImage?: { id: string; publicUrl: any; mimetype: any } | null | undefined\n favicon?: { id: string; publicUrl: any; mimetype: any } | null | undefined\n }\n snippets: Snippet[]\n fonts: Array<{\n family: string\n variants: string[]\n }>\n seo: {\n canonicalUrl?: string | null | undefined\n isIndexingBlocked?: boolean | null | undefined\n }\n site: {\n id: string\n }\n}\n\nconst defaultFavicon = {\n mimetype: 'image/png',\n publicUrl:\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAABcRAAAXEQHKJvM/AAABjElEQVRYhc2XzU3EMBCFB8TddAAXn6EE6GCpgNABZ1/IXnymBOgAOmA7YM8+ABVsXEHQQFaKQryeN3Yk3ilKJtEnv/nLUd/3pFG0riGi88yrnQn+UfJ5FUi0riWiB2H4nQn+KRd0DFP8agXEfkqCYJBoHdtxIQxfm+DfFgEhoith3NYE30o/qgGR2BJB+xY7kdYEL8oNFUi0jiFMJuxVWrJqEMFxsyUNCsE6AeNztvBp7aJ143vXksoRnwhYtmNdSoIQa6RlO9YXEWW7KgoCleOgxgTf1QZBT+RZ2lXFING6UxCCq+ceeUE8fYdknY599v9sJvzGBP+yCEgC7GPmETc0OJ+0awAlkhe2pAbIXAeFZ8xe2g2Nk3c3ub0xwWt6zY9qbmiqGVMbZK21ZC/YmhlbeBMTzZNDQqcvDb1kM1x32iqZSt1HaqukfKvq34BAOTLsrH+ETNmUkKHHA+428RgeclPVWozeSyAI2EdWB34jtqXNTAySOY3i/KgFIlqOa4GkFmBegorzg4joG07he/M7zl6jAAAAAElFTkSuQmCC',\n}\n\n// Taken from https://github.com/facebook/react/blob/14bac6193a334eda42e727336e8967419f08f5df/packages/react-dom/src/server/ReactPartialRenderer.js#L208\nconst VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_.\\-\\d]*$/\n\nconst VALID_HEAD_ELEMENT_TYPES = [\n 'title',\n 'base',\n 'link',\n 'style',\n 'meta',\n 'script',\n 'noscript',\n 'template',\n]\n\nfunction snippetToElement(snippet: Pick<Snippet, 'id' | 'code'>): (string | ReactElement)[] {\n return Children.map(parse(snippet.code), element => {\n if (typeof element === 'string') return element\n\n if (!VALID_TAG_REGEX.test(element.type)) return null\n\n const key = element.key ? `${snippet.id}:${element.key}` : snippet.id\n\n return createElement(element.type, { ...element.props, key })\n })\n}\n\nconst filterUsedSnippetProperties = ({\n code,\n builderEnabled,\n liveEnabled,\n location,\n cleanup,\n}: Snippet) => ({\n code,\n builderEnabled,\n liveEnabled,\n location,\n cleanup,\n})\n\ntype Props = {\n page: PageData\n preview?: boolean\n}\n\nexport const PAGE_SNIPPETS_QUERY = gql`\n query PageById($id: ID!) {\n page(id: $id) {\n __typename\n id\n snippets {\n __typename\n id\n name\n code\n cleanup\n location\n shouldAddToNewPages\n liveEnabled\n builderEnabled\n }\n }\n }\n`\n\nexport type SiteFontsSiteQuery = {\n site?: {\n id: string\n googleFonts: {\n edges: Array<{\n activeVariants: Array<{ specifier: string }>\n node: {\n family: string\n variants: Array<{ specifier: string }>\n }\n } | null>\n }\n } | null\n}\n\nexport const SITE_FONTS_QUERY = gql`\n query SiteById($id: ID!) {\n site(id: $id) {\n id\n googleFonts {\n edges {\n activeVariants {\n specifier\n }\n node {\n family\n variants {\n specifier\n }\n }\n }\n }\n }\n }\n`\n\nexport function Page({ page, preview = false }: Props): JSX.Element {\n const isInBuilder = useIsInBuilder()\n const [snippets, setSnippets] = useState(page.snippets)\n // We're using useQuery here for page snippets and site fonts so that anytime the user change\n // the snippets or fonts on the builder, the change would be reflected here.\n // See this PR for discussions and things we can do to improve it in the future:\n // https://github.com/makeswift/makeswift/pull/77\n useQuery<{ page: { snippets: Snippet[] } }>(PAGE_SNIPPETS_QUERY, {\n variables: { id: page.id },\n skip: isInBuilder === false,\n fetchPolicy: 'cache-only',\n onCompleted(data) {\n if (data == null) return\n\n const oldSnippets = snippets.map(filterUsedSnippetProperties)\n const newSnippets = data.page.snippets.map(filterUsedSnippetProperties)\n\n if (deepEqual(newSnippets, oldSnippets)) return\n\n setSnippets(data.page.snippets)\n },\n })\n const { data: siteData } = useQuery<SiteFontsSiteQuery>(SITE_FONTS_QUERY, {\n variables: { id: page.site.id },\n skip: isInBuilder === false,\n fetchPolicy: 'cache-only',\n })\n\n const favicon = page.meta.favicon ?? defaultFavicon\n const { title, description, keywords, socialImage } = page.meta\n const { canonicalUrl, isIndexingBlocked } = page.seo\n\n const fontFamilyParamValue = useMemo(() => {\n if (siteData?.site == null) {\n return page.fonts\n .map(({ family, variants }) => {\n return `${family.replace(/ /g, '+')}:${variants.join()}`\n })\n .join('|')\n }\n\n return siteData.site.googleFonts.edges\n .filter((edge): edge is NonNullable<typeof edge> => edge != null)\n .map(({ activeVariants, node: { family, variants } }) => {\n const activeVariantSpecifiers = variants\n .filter(variant =>\n activeVariants.some(activeVariant => activeVariant.specifier === variant.specifier),\n )\n .map(variant => variant.specifier)\n .join()\n\n return `${family.replace(/ /g, '+')}:${activeVariantSpecifiers}`\n })\n .join('|')\n }, [siteData, page])\n\n const filteredSnippets = useMemo(\n () => snippets.filter(snippet => (preview ? snippet.builderEnabled : snippet.liveEnabled)),\n [snippets],\n )\n const headSnippets = useMemo(\n () => filteredSnippets.filter(snippet => snippet.location === SnippetLocation.Head),\n [filteredSnippets],\n )\n\n const previousHeadSnippets = useRef<PageData['snippets'] | null>(null)\n useEffect(() => {\n const headSnippetsToCleanUp = (previousHeadSnippets.current ?? [])\n .filter(previousSnippet => previousSnippet.cleanup != null)\n .filter(previousSnippet => !headSnippets.some(snippet => previousSnippet.id === snippet.id))\n\n headSnippetsToCleanUp.forEach(snippetToCleanUp => {\n if (snippetToCleanUp.cleanup == null) return\n\n const cleanUp = new Function(snippetToCleanUp.cleanup)\n\n try {\n cleanUp()\n } catch {\n // Ignore errors from user input.\n }\n })\n\n previousHeadSnippets.current = headSnippets\n }, [headSnippets])\n\n return (\n <>\n <Head>\n <style>\n {`\n html {\n font-family: sans-serif;\n }\n div#__next {\n overflow: hidden;\n }\n `}\n </style>\n\n <link rel=\"icon\" type={favicon.mimetype} href={favicon.publicUrl} />\n\n {canonicalUrl && <link rel=\"canonical\" href={canonicalUrl} />}\n\n {isIndexingBlocked && <meta name=\"robots\" content=\"noindex\" />}\n\n {title && (\n <>\n <title>{title}</title>\n <meta property=\"og:title\" content={title} />\n <meta name=\"twitter:title\" content={title} />\n <meta itemProp=\"name\" content={title} />\n </>\n )}\n\n {description && (\n <>\n <meta name=\"description\" content={description} />\n <meta property=\"og:description\" content={description} />\n <meta name=\"twitter:description\" content={description} />\n <meta itemProp=\"description\" content={description} />\n </>\n )}\n\n {keywords && <meta name=\"keywords\" content={keywords} />}\n\n {socialImage && (\n <>\n <meta property=\"og:image\" content={socialImage.publicUrl} />\n <meta property=\"og:image:type\" content={socialImage.publicUrl} />\n <meta name=\"twitter:image\" content={socialImage.publicUrl} />\n <meta name=\"twitter:card\" content={socialImage.publicUrl} />\n <meta itemProp=\"image\" content={socialImage.publicUrl} />\n </>\n )}\n\n {fontFamilyParamValue !== '' && (\n <>\n <link\n rel=\"stylesheet\"\n href={`https://fonts.googleapis.com/css?family=${fontFamilyParamValue}&display=swap`}\n />\n </>\n )}\n\n {headSnippets.map(snippetToElement).map(children =>\n Children.map(children, child => {\n if (typeof child === 'string') return child\n\n if (VALID_HEAD_ELEMENT_TYPES.includes(child.type as string)) return child\n\n return null\n }),\n )}\n </Head>\n\n <DocumentReference documentReference={createDocumentReference(page.id)} />\n\n {filteredSnippets\n .filter(snippet => snippet.location === SnippetLocation.Body)\n .map(snippet => (\n <BodySnippet key={snippet.id} code={snippet.code} cleanup={snippet.cleanup} />\n ))}\n </>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yLjg5ODY0IDE4SDE3LjEwMTRDMTguNDE4MyAxOCAxOS4yNjMzIDE2LjYwMDMgMTguNjUgMTUuNDM0OUwxMS41NDg2IDEuOTQyMzZDMTAuODkyNSAwLjY5NTc3IDkuMTA3NDkgMC42OTU3NjYgOC40NTEzOSAxLjk0MjM2TDEuMzUwMDMgMTUuNDM0OUMwLjczNjY5MiAxNi42MDAzIDEuNTgxNzQgMTggMi44OTg2NCAxOFpNOSA2QzkgNS40NDc3MiA5LjQ0NzcxIDUgMTAgNUMxMC41NTIzIDUgMTEgNS40NDc3MiAxMSA2VjExQzExIDExLjU1MjMgMTAuNTUyMyAxMiAxMCAxMkM5LjQ0NzcxIDEyIDkgMTEuNTUyMyA5IDExVjZaTTExLjI1IDE0Ljc1QzExLjI1IDE1LjQ0MDQgMTAuNjkwNCAxNiAxMCAxNkM5LjMwOTY0IDE2IDguNzUgMTUuNDQwNCA4Ljc1IDE0Ljc1QzguNzUgMTQuMDU5NiA5LjMwOTY0IDEzLjUgMTAgMTMuNUMxMC42OTA0IDEzLjUgMTEuMjUgMTQuMDU5NiAxMS4yNSAxNC43NVoiIC8+Cjwvc3ZnPgo=\"","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport { ReactComponent as Warning20 } from '../../icons/warning-20.svg'\n\nconst ErrorDiv = styled('div')`\n width: 100%;\n height: 54px;\n background-color: #fcedf2;\n border-radius: 6px;\n padding: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #c73e6d;\n fill: currentColor;\n font-family: Heebo, sans-serif;\n font-size: 16px;\n`\n\ntype Props = {\n text: string\n}\n\nexport const FallbackComponent = forwardRef(function FallbackComponent(\n { text }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <ErrorDiv ref={ref}>\n <Warning20 />\n <span>{text}</span>\n </ErrorDiv>\n )\n})\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import * as React from 'react'\nimport { css, cache, CSSObject } from '@emotion/css'\nimport { serializeStyles } from '@emotion/serialize'\nimport { insertStyles } from '@emotion/utils'\n\nimport { useBorder, BorderSide } from '../../../components'\nimport { colorToString } from '../../../components/utils/colorToString'\nimport { responsiveStyle } from '../../../components/utils/responsive-style'\n\nimport {\n BorderRadiusLonghandPropertyData,\n MarginLonghandPropertyData,\n PaddingLonghandPropertyData,\n StyleControlData,\n StyleControlDefinition,\n StyleControlProperty,\n WidthPropertyData,\n} from '../../../controls'\n\nfunction useStyleControlCssObject(\n style: StyleControlData | undefined,\n controlDefinition: StyleControlDefinition,\n): CSSObject {\n const { properties } = controlDefinition.config\n\n return {\n ...(properties.includes(StyleControlProperty.Width) && {\n maxWidth: '100%',\n }),\n ...responsiveStyle(\n [\n style?.width,\n style?.margin,\n style?.padding,\n useBorder(style?.border),\n style?.borderRadius,\n ] as const,\n ([width, margin, padding, border, borderRadius]) => ({\n ...(properties.includes(StyleControlProperty.Width) && {\n width: widthToString(width) ?? '100%',\n }),\n ...(properties.includes(StyleControlProperty.Margin) && {\n marginTop: marginToString(margin?.marginTop) ?? 0,\n marginRight: marginToString(margin?.marginRight) ?? 'auto',\n marginBottom: marginToString(margin?.marginBottom) ?? 0,\n marginLeft: marginToString(margin?.marginLeft) ?? 'auto',\n }),\n ...(properties.includes(StyleControlProperty.Padding) && {\n paddingTop: paddingToString(padding?.paddingTop) ?? 0,\n paddingRight: paddingToString(padding?.paddingRight) ?? 0,\n paddingBottom: paddingToString(padding?.paddingBottom) ?? 0,\n paddingLeft: paddingToString(padding?.paddingLeft) ?? 0,\n }),\n ...(properties.includes(StyleControlProperty.Border) && {\n borderTop: borderSideToString(border?.borderTop) ?? '0 solid black',\n borderRight: borderSideToString(border?.borderRight) ?? '0 solid black',\n borderBottom: borderSideToString(border?.borderBottom) ?? '0 solid black',\n borderLeft: borderSideToString(border?.borderLeft) ?? '0 solid black',\n }),\n ...(properties.includes(StyleControlProperty.BorderRadius) && {\n borderTopLeftRadius: borderRadiusToString(borderRadius?.borderTopLeftRadius) ?? 0,\n borderTopRightRadius: borderRadiusToString(borderRadius?.borderTopRightRadius) ?? 0,\n borderBottomRightRadius: borderRadiusToString(borderRadius?.borderBottomRightRadius) ?? 0,\n borderBottomLeftRadius: borderRadiusToString(borderRadius?.borderBottomLeftRadius) ?? 0,\n }),\n }),\n ),\n }\n\n function widthToString(widthProperty: WidthPropertyData | undefined): string | null {\n if (widthProperty == null) return null\n\n return `${widthProperty.value}${widthProperty.unit}`\n }\n\n function marginToString(\n marginProperty: MarginLonghandPropertyData | null | undefined,\n ): string | null {\n if (marginProperty == null) return null\n\n if (marginProperty === 'auto') return marginProperty\n\n return `${marginProperty.value}${marginProperty.unit}`\n }\n\n function paddingToString(\n paddingProperty: PaddingLonghandPropertyData | null | undefined,\n ): string | null {\n if (paddingProperty == null) return null\n\n return `${paddingProperty.value}${paddingProperty.unit}`\n }\n\n function borderSideToString(borderSide: BorderSide | null | undefined): string | null {\n if (borderSide == null) return null\n\n const { width, color, style } = borderSide\n return `${width != null ? width : 0}px ${style} ${\n color != null ? colorToString(color) : 'black'\n }`\n }\n\n function borderRadiusToString(\n borderRadius: BorderRadiusLonghandPropertyData | null | undefined,\n ): string | null {\n if (borderRadius == null) return null\n\n return `${borderRadius.value}${borderRadius.unit}`\n }\n}\n\nconst useInsertionEffectSpecifier = 'useInsertionEffect'\n// @ts-expect-error: React types are outdated.\nconst useInsertionEffect = React[useInsertionEffectSpecifier] ?? React.useLayoutEffect\nconst isServer = typeof window === 'undefined'\n\nexport type StyleControlFormattedValue = string\n\nexport function useFormattedStyle(\n styleControlData: StyleControlData | undefined,\n controlDefinition: StyleControlDefinition,\n): StyleControlFormattedValue {\n const style = useStyleControlCssObject(styleControlData, controlDefinition)\n\n if (isServer) return css(style)\n\n const serialized = serializeStyles([style], cache.registered)\n\n useInsertionEffect(() => {\n insertStyles(cache, serialized, false)\n })\n\n return `${cache.key}-${serialized.name}`\n}\n","type Props<H extends (...args: any[]) => any> = {\n /**\n * `<RenderHook>` requires key that changes whenever the `hook` prop changes to ensure the rules of\n * hooks are followed.\n */\n key: string\n\n hook: H\n parameters: Parameters<H>\n children(result: ReturnType<H>): JSX.Element\n}\n\nexport function RenderHook<H extends (...args: any[]) => any>({\n hook: useHook,\n parameters,\n children,\n}: Props<H>) {\n return children(useHook(...parameters))\n}\n","import { CheckboxControlData, CheckboxControlDefinition } from '../../../controls'\n\nexport type CheckboxControlValue<T extends CheckboxControlDefinition> =\n undefined extends T['config']['defaultValue'] ? boolean | undefined : boolean\n\nexport function useCheckboxControlValue<T extends CheckboxControlDefinition>(\n data: CheckboxControlData | undefined,\n definition: T,\n): CheckboxControlValue<T> {\n return (data ?? definition.config.defaultValue) as CheckboxControlValue<T>\n}\n","import Color from 'color'\n\nimport { useQuery } from '../../../api/react'\nimport { SWATCHES_BY_ID } from '../../../components/utils/queries'\nimport { ColorControlData, ColorControlDefinition } from '../../../controls/color'\n\nexport type ColorControlValue<T extends ColorControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\ntype Swatch = {\n id: string\n hue: number\n saturation: number\n lightness: number\n}\n\ntype SwatchesById = { swatches: Swatch[] }\n\nexport function useColorValue<T extends ColorControlDefinition>(\n data: ColorControlData | undefined,\n definition: T,\n): ColorControlValue<T> {\n const result = useQuery<SwatchesById>(SWATCHES_BY_ID, {\n variables: { ids: [data?.swatchId] },\n skip: data?.swatchId == null,\n })\n\n if (data === undefined) {\n const { defaultValue } = definition.config\n\n if (defaultValue === undefined) return undefined as ColorControlValue<T>\n\n let defaultColor\n try {\n defaultColor = Color(definition.config.defaultValue)\n } catch {\n defaultColor = Color()\n }\n\n return defaultColor.rgb().string()\n }\n\n const [swatch] = result.data?.swatches ?? [null]\n\n return Color({ h: swatch?.hue, s: swatch?.saturation, l: swatch?.lightness })\n .alpha(data.alpha)\n .rgb()\n .string()\n}\n","import {\n ComboboxControlData,\n ComboboxControlDefinition,\n ComboboxControlDefinitionOption,\n} from '../../../controls'\n\nexport type ComboboxControlValue<T extends ComboboxControlDefinition> =\n | ComboboxControlDefinitionOption<T>\n | undefined\n\nexport function useComboboxControlValue<T extends ComboboxControlDefinition>(\n data: ComboboxControlData<T> | undefined,\n): ComboboxControlValue<T> {\n return data?.value\n}\n","import { useFile } from '../../../components'\nimport { ImageControlData } from '../../../controls'\n\nexport type ImageControlValue = string | undefined\n\nexport function useImageControlValue(data: ImageControlData | undefined): ImageControlValue {\n return useFile(data)?.publicUrl\n}\n","import { ListControlData, ListControlDefinition } from '../../../controls'\nimport { ControlDefinitionValue, ControlValue } from './control'\n\ntype ListControlItemValue<T extends ListControlDefinition> = ControlDefinitionValue<\n T['config']['type']\n>\n\nexport type ListControlValue<T extends ListControlDefinition> = ListControlItemValue<T>[]\n\ntype ListControlValueProps<T extends ListControlDefinition> = {\n definition: T\n data: ListControlData<T> | undefined\n children(value: ListControlValue<T>): JSX.Element\n}\n\nexport function ListControlValue<T extends ListControlDefinition>({\n definition,\n data,\n children,\n}: ListControlValueProps<T>): JSX.Element {\n return (data ?? []).reduce(\n (renderFn, item) => listControlValue =>\n (\n <ControlValue definition={definition.config.type} data={item.value}>\n {value => renderFn([value as ListControlItemValue<T>, ...listControlValue])}\n </ControlValue>\n ),\n children,\n )([])\n}\n","import { NumberControlData, NumberControlDefinition } from '../../../controls'\n\nexport type NumberControlValue<T extends NumberControlDefinition> =\n undefined extends T['config']['defaultValue'] ? NumberControlData | undefined : NumberControlData\n\nexport function useNumber<T extends NumberControlDefinition>(\n numberControlData: number | undefined,\n controlDefinition: T,\n): NumberControlValue<T> {\n return (numberControlData ?? controlDefinition.config.defaultValue) as NumberControlValue<T>\n}\n","import {\n SelectControlData,\n SelectControlDefinition,\n SelectControlDefinitionOption,\n} from '../../../controls'\n\nexport type SelectControlValue<T extends SelectControlDefinition> =\n undefined extends T['config']['defaultValue']\n ? SelectControlDefinitionOption<T> | undefined\n : SelectControlDefinitionOption<T>\n\nexport function useSelectControlValue<T extends SelectControlDefinition>(\n data: SelectControlData<T> | undefined,\n definition: T,\n): SelectControlValue<T> {\n return (data ?? definition?.config.defaultValue) as SelectControlValue<T>\n}\n","import { ShapeControlData, ShapeControlDefinition } from '../../../controls/shape'\nimport { ControlDefinitionValue, ControlValue } from './control'\n\nexport type ShapeControlValue<T extends ShapeControlDefinition> = {\n [K in keyof T['config']['type']]: ControlDefinitionValue<T['config']['type'][K]>\n}\n\ntype ShapeControlValueProps<T extends ShapeControlDefinition> = {\n definition: T\n data: ShapeControlData<T> | undefined\n children(value: ShapeControlValue<T>): JSX.Element\n}\n\nexport function ShapeControlValue<T extends ShapeControlDefinition>({\n definition,\n data,\n children,\n}: ShapeControlValueProps<T>) {\n return Object.entries(definition.config.type).reduceRight(\n (renderFn, [key, controlDefinition]) =>\n shapeControlValue =>\n (\n <ControlValue definition={controlDefinition} data={data?.[key]}>\n {value => renderFn({ ...shapeControlValue, [key]: value })}\n </ControlValue>\n ),\n children,\n )({} as ShapeControlValue<T>)\n}\n","import { TextAreaControlData, TextAreaControlDefinition } from '../../../controls'\n\nexport type TextAreaControlValue<T extends TextAreaControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextAreaValue<T extends TextAreaControlDefinition>(\n data: TextAreaControlData | undefined,\n definition: T,\n): TextAreaControlValue<T> {\n return (data ?? definition.config.defaultValue) as TextAreaControlValue<T>\n}\n","import { TextInputControlData, TextInputControlDefinition } from '../../../controls'\n\nexport type TextInputControlValue<T extends TextInputControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextInputValue<T extends TextInputControlDefinition>(\n data: TextInputControlData | undefined,\n definition: T,\n): TextInputControlValue<T> {\n return (data ?? definition.config.defaultValue) as TextInputControlValue<T>\n}\n","import {\n CheckboxControlData,\n CheckboxControlDefinition,\n CheckboxControlType,\n ColorControlData,\n ColorControlDefinition,\n ColorControlType,\n ComboboxControlData,\n ComboboxControlDefinition,\n ComboboxControlType,\n ControlDefinition,\n ControlDefinitionData,\n ImageControlData,\n ImageControlDefinition,\n ImageControlType,\n ListControlData,\n ListControlDefinition,\n ListControlType,\n NumberControlData,\n NumberControlDefinition,\n NumberControlType,\n SelectControlData,\n SelectControlDefinition,\n SelectControlType,\n ShapeControlData,\n ShapeControlDefinition,\n ShapeControlType,\n TextAreaControlData,\n TextAreaControlDefinition,\n TextAreaControlType,\n TextInputControlData,\n TextInputControlDefinition,\n TextInputControlType,\n} from '../../../controls'\nimport { RenderHook } from '../components'\nimport { CheckboxControlValue, useCheckboxControlValue } from './checkbox'\nimport { ColorControlValue, useColorValue } from './color'\nimport { ComboboxControlValue, useComboboxControlValue } from './combobox'\nimport { ImageControlValue, useImageControlValue } from './image'\nimport { ListControlValue } from './list'\nimport { NumberControlValue, useNumber } from './number'\nimport { SelectControlValue, useSelectControlValue } from './select'\nimport { ShapeControlValue } from './shape'\nimport { TextAreaControlValue, useTextAreaValue } from './text-area'\nimport { TextInputControlValue, useTextInputValue } from './text-input'\n\nexport type ControlDefinitionValue<T extends ControlDefinition> =\n T extends CheckboxControlDefinition\n ? CheckboxControlValue<T>\n : T extends NumberControlDefinition\n ? NumberControlValue<T>\n : T extends TextInputControlDefinition\n ? TextInputControlValue<T>\n : T extends TextAreaControlDefinition\n ? TextAreaControlValue<T>\n : T extends SelectControlDefinition\n ? SelectControlValue<T>\n : T extends ColorControlDefinition\n ? ColorControlValue<T>\n : T extends ImageControlDefinition\n ? ImageControlValue\n : T extends ComboboxControlDefinition\n ? ComboboxControlValue<T>\n : T extends ShapeControlDefinition\n ? ShapeControlValue<T>\n : T extends ListControlDefinition\n ? ListControlValue<T>\n : never\n\ntype ControlValueProps<T extends ControlDefinition> = {\n definition: T\n data: ControlDefinitionData<T> | undefined\n children(value: ControlDefinitionValue<T>): JSX.Element\n}\n\nexport function ControlValue<T extends ControlDefinition>({\n data,\n definition,\n children,\n}: ControlValueProps<T>): JSX.Element {\n switch (definition.type) {\n case CheckboxControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useCheckboxControlValue}\n parameters={[data as CheckboxControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case NumberControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useNumber}\n parameters={[data as NumberControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TextInputControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTextInputValue}\n parameters={[data as TextInputControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TextAreaControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTextAreaValue}\n parameters={[data as TextAreaControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case SelectControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useSelectControlValue}\n parameters={[data as SelectControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ColorControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useColorValue}\n parameters={[data as ColorControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ImageControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useImageControlValue}\n parameters={[data as ImageControlData]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ComboboxControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useComboboxControlValue}\n parameters={[data as ComboboxControlData]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ShapeControlType:\n return (\n <ShapeControlValue definition={definition} data={data as ShapeControlData}>\n {value => children(value as ControlDefinitionValue<T>)}\n </ShapeControlValue>\n )\n\n case ListControlType:\n return (\n <ListControlValue definition={definition} data={data as ListControlData}>\n {value => children(value as ControlDefinitionValue<T>)}\n </ListControlValue>\n )\n\n default:\n return children(data as ControlDefinitionValue<T>)\n }\n}\n","import { useMemo, useRef } from 'react'\n\nimport { useStore } from '.'\nimport * as ReactPage from '../../state/react-page'\nimport { Props } from '../../prop-controllers'\nimport {\n Descriptor,\n Device,\n ResolveOptions,\n ResponsiveValue,\n WidthControlValueFormats,\n WidthDescriptor,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport { css } from '@emotion/css'\nimport { useResponsiveColor } from '../../components'\nimport type { ColorValue } from '../../components/utils/types'\nimport { responsiveWidth } from '../../components/utils/responsive-style'\nimport {\n CheckboxControlType,\n ColorControlType,\n ComboboxControlType,\n ImageControlType,\n ListControlType,\n NumberControlType,\n SelectControlType,\n ShapeControlType,\n StyleControlType,\n TextAreaControlType,\n TextInputControlType,\n} from '../../controls'\nimport { useFormattedStyle } from './controls/style'\nimport { ControlValue } from './controls/control'\nimport { RenderHook } from './components'\n\nexport type ResponsiveColor = ResponsiveValue<ColorValue>\n\nfunction useDeviceMode(): Device {\n return 'desktop'\n}\n\nfunction useWidth(\n value: WidthValue | undefined,\n descriptor: WidthDescriptor,\n props: Record<string, unknown>,\n): string | WidthValue | undefined {\n const deviceMode = useDeviceMode()\n const options = useMemo(\n () =>\n typeof descriptor.options === 'function'\n ? descriptor.options(props, deviceMode)\n : descriptor.options,\n [props, deviceMode],\n )\n\n return useMemo(\n () =>\n options.format === WidthControlValueFormats.ClassName\n ? css(responsiveWidth(value, options.defaultValue))\n : value,\n [value, options.defaultValue, options.format],\n )\n}\n\nexport type ResolveWidthControlValue<T extends Descriptor> = T extends WidthDescriptor\n ? undefined extends ResolveOptions<T['options']>['format']\n ? WidthValue | undefined\n : ResolveOptions<T['options']>['format'] extends typeof WidthControlValueFormats.ClassName\n ? string\n : ResolveOptions<T['options']>['format'] extends typeof WidthControlValueFormats.ResponsiveValue\n ? WidthValue | undefined\n : never\n : never\n\ntype PropsValueProps = {\n element: ReactPage.ElementData\n children(props: Record<string, unknown>): JSX.Element\n}\n\nexport function PropsValue({ element, children }: PropsValueProps): JSX.Element {\n const store = useStore()\n const propControllerDescriptorsRef = useRef(\n ReactPage.getComponentPropControllerDescriptors(store.getState(), element.type) ?? {},\n )\n const props = element.props as Record<string, any>\n\n return Object.entries(propControllerDescriptorsRef.current).reduceRight(\n (renderFn, [propName, descriptor]) =>\n propsValue => {\n switch (descriptor.type) {\n case CheckboxControlType:\n case NumberControlType:\n case TextInputControlType:\n case TextAreaControlType:\n case SelectControlType:\n case ColorControlType:\n case ImageControlType:\n case ComboboxControlType:\n case ShapeControlType:\n case ListControlType:\n return (\n <ControlValue definition={descriptor} data={props[propName]}>\n {value => renderFn({ ...propsValue, [propName]: value })}\n </ControlValue>\n )\n\n case StyleControlType:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useFormattedStyle}\n parameters={[props[propName], descriptor]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case Props.Types.Width:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useWidth}\n parameters={[props[propName], descriptor, props]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case Props.Types.ResponsiveColor:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useResponsiveColor}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n default:\n return renderFn({ ...propsValue, [propName]: props[propName] })\n }\n },\n children,\n )({})\n}\n","import { ForwardedRef } from 'react'\nimport { ReactInstance } from 'react'\nimport { forwardRef } from 'react'\nimport { Component, ReactNode } from 'react'\nimport { findDOMNode } from 'react-dom'\n\ntype FindDomNodeClassComponentProps = {\n innerRef?: ForwardedRef<Element | Text | null>\n children?: ReactNode\n}\n\n/**\n * @see https://github.com/facebook/react/blob/a2505792ed17fd4d7ddc69561053c3ac90899491/packages/react-reconciler/src/ReactFiberReconciler.new.js#L179-L244\n */\nfunction suppressWarningAndFindDomNode(\n instance: ReactInstance | null | undefined,\n): Element | Text | null {\n const error = console.error\n\n console.error = (...args) => {\n if (typeof args[0] === 'string' && args[0].includes('%s is deprecated in StrictMode.')) return\n\n return error.apply(console, args)\n }\n\n const foundDomNode = findDOMNode(instance)\n\n console.error = error\n\n return foundDomNode\n}\n\nclass FindDomNodeClassComponent extends Component<FindDomNodeClassComponentProps> {\n componentDidMount() {\n this.setInnerRef(suppressWarningAndFindDomNode(this))\n }\n\n componentDidUpdate() {\n this.setInnerRef(suppressWarningAndFindDomNode(this))\n }\n\n setInnerRef(current: Element | Text | null) {\n const { innerRef } = this.props\n\n if (innerRef == null) return\n\n if (typeof innerRef === 'function') innerRef(current)\n else innerRef.current = current\n }\n\n render() {\n return <>{this.props.children}</>\n }\n}\n\ntype FindDomNodeProps = {\n children?: ReactNode\n}\n\nexport const FindDomNode = forwardRef<Element | Text | null, FindDomNodeProps>(function FindDomNode(\n props,\n ref,\n) {\n return <FindDomNodeClassComponent {...props} innerRef={ref} />\n})\n","import {\n ComponentPropsWithoutRef,\n createContext,\n forwardRef,\n memo,\n ReactNode,\n Ref,\n useContext,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\nimport { gql } 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 registerDocumentEffect,\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 { MakeswiftProvider, MakeswiftClient, useQuery } from '../../api/react'\nimport { FallbackComponent } from '../../components/shared/FallbackComponent'\nimport { PropsValue } from './controls'\nimport { FindDomNode } from './find-dom-node'\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 client: MakeswiftClient\n rootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n}\n\nexport function RuntimeProvider({\n client,\n children,\n rootElements,\n}: RuntimeProviderProps): JSX.Element {\n const [store, setStore] = useState(() => {\n const store = ReactPage.configureStore({\n preloadedState: contextDefaultValue.getState(),\n rootElements,\n })\n const runtime = createReactRuntime(store)\n\n registerBuiltinComponents(runtime)\n\n return store\n })\n\n useEffect(() => {\n return registerBuiltinComponents(createReactRuntime(store))\n }, [store])\n\n useEffect(() => {\n const unregisterDocuments = Array.from(rootElements?.entries() ?? []).map(\n ([documentKey, rootElement]) =>\n store.dispatch(registerDocumentEffect(ReactPage.createDocument(documentKey, rootElement))),\n )\n\n return () => {\n unregisterDocuments.forEach(unregisterDocument => {\n unregisterDocument()\n })\n }\n }, [store, rootElements])\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({\n preloadedState: store.getState(),\n client: client.apolloClient,\n }),\n )\n }\n }, [client])\n\n return (\n <Context.Provider value={store}>\n <MakeswiftProvider client={client}>{children}</MakeswiftProvider>\n </Context.Provider>\n )\n}\n\nconst PageContext = createContext<string | null>(null)\n\nfunction usePageIdOrNull(): string | null {\n return useContext(PageContext)\n}\n\nexport function usePageId(): string {\n const pageIdOrNull = usePageIdOrNull()\n\n if (pageIdOrNull == null) throw new Error('`usePageId` must be used with `<PageProvider>`')\n\n return pageIdOrNull\n}\n\ntype PageProviderProps = {\n id: string\n children: ComponentPropsWithoutRef<typeof PageContext['Provider']>['children']\n}\n\nexport function PageProvider({ id, children }: PageProviderProps) {\n return <PageContext.Provider value={id}>{children}</PageContext.Provider>\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\nexport function useStore(): ReactPage.Store {\n return useContext(Context)\n}\n\nfunction useSelector<R>(selector: (state: State) => R): R {\n const store = useStore()\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 useDocument(documentKey: string): ReactPage.Document | null {\n return useSelector(state => ReactPage.getDocument(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\n/**\n * @see https://github.com/facebook/react/blob/a2505792ed17fd4d7ddc69561053c3ac90899491/packages/react-reconciler/src/ReactFiberBeginWork.new.js#L1814-L1890\n */\nfunction useSuppressRefWarning(ownerName: string) {\n const originalErrorRef = useRef(console.error)\n const patchedRef = useRef(false)\n\n if (patchedRef.current === false) {\n console.error = (...args) => {\n if (\n typeof args[0] === 'string' &&\n args[0].includes('Function components cannot be given refs.') &&\n args[0].includes(`Check the render method of \\`${ownerName}\\`.`)\n ) {\n return\n }\n\n return originalErrorRef.current(...args)\n }\n\n patchedRef.current = true\n }\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 const [handle, setHandle] = useState<unknown | null>(null)\n const [foundDomNode, setFoundDomNode] = useState<Element | Text | null>(null)\n\n useImperativeHandle(ref, () => handle ?? foundDomNode, [handle, foundDomNode])\n\n useSuppressRefWarning(`\\`ForwardRef(${ElementData.name})\\``)\n\n if (Component == null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Component not found\" />\n }\n\n return (\n <FindDomNode ref={setFoundDomNode}>\n <PropsValue element={elementData}>\n {props => <Component {...props} key={elementData.key} ref={setHandle} />}\n </PropsValue>\n </FindDomNode>\n )\n }),\n)\n\nconst DisableRegisterElement = createContext(false)\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 const { error, data } = useQuery(\n gql`\n query ElementReferenceGlobalElement($id: ID!) {\n globalElement(id: $id) {\n id\n data\n }\n }\n `,\n { variables: { id: elementReference.value } },\n )\n const globalElementData = data?.globalElement?.data as ReactPage.ElementData | undefined\n const elementReferenceDocument = useDocument(elementReference.key)\n\n if (error != null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Something went wrong!\" />\n }\n\n if (globalElementData == null) {\n return (\n <FallbackComponent\n ref={ref as Ref<HTMLDivElement>}\n text=\"This global component doesn't exist\"\n />\n )\n }\n\n return elementReferenceDocument != null ? (\n <Document document={elementReferenceDocument} ref={ref} />\n ) : (\n <DisableRegisterElement.Provider value={true}>\n <ElementData elementData={globalElementData} ref={ref} />\n </DisableRegisterElement.Provider>\n )\n }),\n)\n\ntype ElementProps = {\n element: ReactPage.Element\n}\n\nexport const Element = memo(\n forwardRef(function Element({ element }: ElementProps, ref: Ref<unknown>): JSX.Element {\n const elementKey = element.key\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n const [handle, setHandle] = useState<unknown>(null)\n const isRegisterElementDisabled = useContext(DisableRegisterElement)\n\n useImperativeHandle(ref, () => handle, [handle])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(registerComponentHandleEffect(documentKey, elementKey, handle))\n }, [dispatch, documentKey, elementKey, handle, isRegisterElementDisabled])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(mountComponentEffect(documentKey, elementKey))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\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)\n\ntype DocumentProps = {\n document: ReactPage.Document\n}\n\nconst Document = memo(\n forwardRef(function Document({ document }: DocumentProps, ref: Ref<unknown>): JSX.Element {\n return (\n <DocumentContext.Provider value={document.key}>\n <Element ref={ref} element={document.rootElement} />\n </DocumentContext.Provider>\n )\n }),\n)\n\ntype DocumentReferenceProps = {\n documentReference: ReactPage.DocumentReference\n}\n\nexport const DocumentReference = memo(\n forwardRef(function DocumentReference(\n { documentReference }: DocumentReferenceProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n const document = useDocument(documentReference.key)\n\n if (document == null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Document not found\" />\n }\n\n return <Document ref={ref} document={document} />\n }),\n)\n"],"names":["PlaceholderBase","styled","div","hide","forwardRef","ref","restOfProps","overflow","gql","typePolicies","Query","fields","swatches","existingData","args","toReference","ids","map","id","__typename","file","files","typographies","pagePathnamesById","globalElement","table","page","site","PrefetchContext","createContext","useContext","uri","cacheData","cache","InMemoryCache","restore","ApolloClient","MakeswiftClient","constructor","apolloClient","createApolloClient","prefetch","element","uuid","getDataFromTree","_jsx","Map","createDocumentReference","KeyUtils","resetGenerator","extract","updateCacheData","Context","undefined","query","options","client","useApolloQuery","mutation","useApolloMutation","children","useMemo","useState","useLayoutEffect","defaultExitedProps","opacity","x","y","scale","boxAnimations","none","entered","exited","transition","fadeIn","fadeLeft","type","ease","fadeRight","fadeUp","fadeDown","blurIn","filter","scaleDown","scaleUp","mergeCustomTransitionWithDefault","transitions","props","Object","keys","reduce","a","c","useElementOnScreen","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","set","playSequence","start","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","isPrefetching","useIsPrefetching","value","deviceId","v","reverse","bg","payload","publicUrl","repeat","size","parallax","backgroundPosition","getParallaxProps","NextImage","backgroundImage","backgroundRepeat","backgroundSize","angle","isRadial","gradient","OuterContainer","motion","handle","setHandle","useImperativeHandle","useBackgrounds","Children","only","StyledBackgroundsContainer","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","cx","length","index","columns","Element","Placeholder","runtime","property","animateIn","isHiddenBasedOnBoxAnimation","isHiddenBasedOnAnimationType","isHiddenBasedOnItemAnimation","registerComponent","label","Props","format","Formats","ClassName","icon","defaultValue","preset","unit","hidden","labelOrientation","device","min","step","suffix","Link","link","onClick","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","ColorHelper","darken","hex","outline","shadow","clear","toString","blocky","bubbly","lighten","saturate","skewed","cssTextStyle","Button","textStyle","className","toClass","responsiveWidth","placeholder","findDeviceOverride","src","Promise","resolve","reject","image","Image","onload","onerror","baseDevice","DEVICES","find","maxWidth","baseWidth","baseWidthSize","override","sourceSizes","sourceSize","ImageContainer","UnoptimizedImage","img","ImageComponent","altText","placeholders","fileData","useFile","imageSrc","dataDimensions","dimensions","measuredDimensions","setMeasuredDimensions","isInBuilder","useIsInBuilder","cleanedUp","then","naturalWidth","naturalHeight","catch","console","widthClass","imageSizes","LeftChevron","RightChevron","Wrapper","Arrow","Slop","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","imagesLength","pageSizeValue","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","getContrastColor","Sizes","SMALL","MEDIUM","LARGE","Base","input","cssField","getSizeHeight","form","contrast","brandColor","useFormContext","Input","display","flexDirection","justifyContent","Contrasts","LIGHT","DARK","labelTextStyle","labelTextColor","hideLabel","textarea","h","s","l","Color","isLight","getSize","FakeCheckbox","getContrastBorderColor","getContrastBackgroundColor","HiddenCheckbox","getCheckmarkColor","StyledLabel","getInputSizeHeight","CheckboxContainer","span","handleChange","setFieldValue","checked","MainLabel","tableColumn","required","onChange","validity","valueMissing","typeMismatch","option","includes","FakeRadioButton","HiddenRadioButton","attrs","RadioButtonContainer","getSizeHorizontalPadding","Select","select","getLabelSizeHeight","Shapes","ROUNDED","getShapeBorderRadius","SingleLineTextTableField","LongTextTableField","CheckboxTableField","MultipleSelectTableField","SingleSelectTableField","PhoneNumberTableField","EmailTableField","URLTableField","NumberTableField","tableFormField","TableColumnField","getTableColumnField","errorMessage","getTypeMismatchErrorMessage","FormikField","field","getIn","touched","errors","spin","keyframes","Icon","Spinner20","getBox","LOCAL_STORAGE_NAMESPACE","Alignments","LEFT","CENTER","RIGHT","GridForm","getSizeFontSize","alignment","getAlignmentMargin","ErrorContainer","IconContainer","ErrorMessage","CREATE_TABLE_RECORD","Form","tableId","fieldsProp","submitLabel","submitLink","submitTextStyle","submitVariant","submitTextColor","submitWidth","submitAlignment","grid","data","useTable","createTableRecord","useMutation","refEl","setRefEl","propControllers","setPropControllers","initialValues","setInitialValues","acc","formField","tableColumnId","getTableColumnDefaultValue","controller","items","useTableFormFieldRefs","fieldsCount","isDone","setIsDone","linkRef","timeoutId","setTimeout","clearTimeout","values","setSubmitting","resetForm","setStatus","getTableColumn","columnId","autofill","setItem","JSON","stringify","variables","prev","click","storedValue","localStorage","getItem","FormContextProvider","Formik","handleSubmit","formik","status","message","handleReset","isSubmitting","Check12","PILL","SQUARE","responsiveContrast","GutterContainer","gutter","first","last","PlaceholderLink","button","links","DROP_DOWN_MENU_WIDTH","DropDownMenu","dropIn","DropDownContainer","StyledDropDownItem","fontWeight","fontStyle","letterSpacing","textTransform","useResponsiveColor","caret","setPosition","innerWidth","offsetLeft","fill","CaretDown8","Plus8","ArrowDown8","ChevronDown8","DropDownItem","open","ButtonLink","StyledLink","onClose","isOpen","setIsOpen","NavigationButton","coverRight","coverLeft","CloseIconContainer","closeIconColor","Times16","flexShrink","Fragment","DropDownButton","nav","LinksContainer","mobileMenuAnimation","OpenIconContainer","Navigation","linkTextStyle","showLogo","logoFile","logoWidth","logoAltText","logoLink","mobileMenuOpenIconColor","mobileMenuCloseIconColor","mobileMenuBackgroundColor","flexGrow","MobileMenu28","Normalize","createGlobalStyle","normalize","Root","SocialLinksOptions","LogoAngellist20","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","o","Span","typographyStyle","fontFamily","lineHeight","uppercase","underline","strikethrough","italic","Boolean","shallowMergeFallbacks","useTypographyMark","TYPOGRAPHY_TYPE","renderMark","mark","_editor","next","get","StyledBlock","textAlign","as","renderBlock","blockProps","renderInline","toJS","RichTextEditor","plugins","Lists","Inlines","DeviceOverridesBlocks","DeviceOverridesMarks","SlateEditor","StyledRichTextEditor","defaultText","object","COMMIT_DEBOUNCE_DELAY","Text","text","editor","setEditor","el","findDOMNode","setSlateEditor","setValue","selection","textWithoutSelection","Value","fromJSON","shouldCommit","setShouldCommit","nextValue","currentValue","isBlurred","toJSON","preserveSelection","window","change","lastController","handleFocus","focus","handleKeyDown","Hotkeys","isUndo","undo","isRedo","redo","isHotkey","blur","RichText","ipsum","marks","ASPECT_RATIO","Video","video","canPlayUrl","controls","loop","registerBoxComponent","registerButtonComponent","registerCarouselComponent","registerCountdownComponent","registerDividerComponent","registerEmbedComponent","registerFormComponent","registerImageComponent","registerNavigationComponent","registerRootComponent","registerSocialLinksComponent","registerTextComponent","registerVideoComponent","code","cleanup","innerHTML","scripts","HTMLScriptElement","inlineScript","executableScript","replaceChild","childNodes","append","cleanUp","Function","hasOwnProperty","defaultFavicon","mimetype","VALID_TAG_REGEX","VALID_HEAD_ELEMENT_TYPES","snippet","filterUsedSnippetProperties","builderEnabled","liveEnabled","PAGE_SNIPPETS_QUERY","SITE_FONTS_QUERY","preview","snippets","setSnippets","useQuery","skip","fetchPolicy","onCompleted","oldSnippets","newSnippets","deepEqual","siteData","favicon","meta","title","description","keywords","socialImage","canonicalUrl","isIndexingBlocked","seo","fontFamilyParamValue","fonts","family","replace","googleFonts","edges","edge","activeVariants","activeVariantSpecifiers","some","activeVariant","specifier","filteredSnippets","headSnippets","SnippetLocation","previousHeadSnippets","headSnippetsToCleanUp","previousSnippet","snippetToCleanUp","Head","snippetToElement","ErrorDiv","FallbackComponent","Warning20","unitless","hashString","StyleControlProperty","definition","renderFn","item","listControlValue","config","entries","reduceRight","controlDefinition","shapeControlValue","CheckboxControlType","useCheckboxControlValue","NumberControlType","useNumber","TextInputControlType","useTextInputValue","TextAreaControlType","useTextAreaValue","SelectControlType","useSelectControlValue","ColorControlType","useColorValue","ImageControlType","useImageControlValue","ComboboxControlType","useComboboxControlValue","ShapeControlType","ListControlType","descriptor","deviceMode","useDeviceMode","WidthControlValueFormats","store","useStore","propControllerDescriptorsRef","ReactPage","getState","propName","propsValue","StyleControlType","useFormattedStyle","Width","useWidth","ResponsiveColor","instance","apply","foundDomNode","FindDomNodeClassComponent","Component","componentDidMount","setInnerRef","suppressWarningAndFindDomNode","componentDidUpdate","render","FindDomNode","contextDefaultValue","component","unregisterComponent","dispatch","registerComponentEffect","unregisterReactComponent","registerReactComponentEffect","ReactRuntime","createReactRuntime","rootElements","setStore","preloadedState","registerBuiltinComponents","unregisterDocuments","documentKey","rootElement","registerDocumentEffect","unregisterDocument","ReactBuilderPreview","configureStore","PageContext","pageIdOrNull","usePageIdOrNull","DocumentContext","selector","useSyncExternalStoreWithSelector","subscribe","useSelector","state","useDocumentKey","ownerName","originalErrorRef","patchedRef","ElementData","memo","elementData","useComponent","setFoundDomNode","_createElement","DisableRegisterElement","ElementReference","elementReference","globalElementData","elementReferenceDocument","useDocument","useDispatch","isRegisterElementDisabled","registerComponentHandleEffect","mountComponentEffect","Document","DocumentReference","documentReference"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/components/builtin/Box/components/Placeholder/index.tsx","../src/components/utils/queries.ts","../src/components/utils/isNonNullable.ts","../src/api/introspection.ts","../src/api/react.tsx","../src/components/hooks/useBackgrounds.ts","../src/components/hooks/useBorder.ts","../src/components/hooks/useBoxShadow.ts","../src/components/hooks/useResponsiveColor.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/useIsomorphicLayoutEffect.ts","../src/components/hooks/useMediaQuery.ts","../src/components/hooks/usePage.ts","../src/components/hooks/useTable.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/utils/responsive-style.ts","../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/check-12.svg","../src/components/builtin/Form/context/FormContext.ts","../src/components/builtin/Form/components/Field/services/cssField.ts","../src/components/builtin/Form/components/Field/components/Input/index.tsx","../src/components/builtin/Form/components/Placeholder/index.tsx","../src/components/builtin/Form/components/Field/components/Label/index.tsx","../src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.tsx","../src/components/builtin/Form/components/Field/components/TextArea/index.tsx","../src/components/builtin/Form/components/Field/components/LongTextTableField/index.tsx","../src/components/builtin/Form/components/Field/components/Checkbox/index.tsx","../src/components/builtin/Form/components/Field/components/CheckboxTableField/index.tsx","../src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.tsx","../src/components/builtin/Form/components/Field/components/RadioButton/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.tsx","../src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.tsx","../src/components/builtin/Form/components/Field/components/EmailTableField/index.tsx","../src/components/builtin/Form/components/Field/components/URLTableField/index.tsx","../src/components/builtin/Form/components/Field/components/NumberTableField/index.tsx","../src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.tsx","../src/components/builtin/Form/components/Field/index.tsx","../src/components/icons/spinner-20.svg","../src/components/builtin/Form/components/Spinner/index.tsx","../src/components/hooks/useTableFormFieldRefs.ts","../src/components/builtin/Form/Form.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/Video/Video.tsx","../src/components/builtin/index.ts","../src/components/page/BodySnippet.tsx","../src/utils/is.ts","../src/utils/shallowEqual.ts","../src/utils/deepEqual.ts","../src/components/page/Page.tsx","../src/components/icons/warning-20.svg","../src/components/shared/FallbackComponent/FallbackComponent.tsx","../../../node_modules/@emotion/hash/dist/hash.browser.esm.js","../../../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../../../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../../../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../../../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../src/runtimes/react/controls/style.ts","../src/runtimes/react/components/render-hook.ts","../src/runtimes/react/controls/checkbox.ts","../src/runtimes/react/controls/color.ts","../src/runtimes/react/controls/combobox.ts","../src/runtimes/react/controls/image.ts","../src/runtimes/react/controls/list.tsx","../src/runtimes/react/controls/number.ts","../src/runtimes/react/controls/select.ts","../src/runtimes/react/controls/shape.tsx","../src/runtimes/react/controls/text-area.ts","../src/runtimes/react/controls/text-input.ts","../src/runtimes/react/controls/control.tsx","../src/runtimes/react/controls.tsx","../src/runtimes/react/find-dom-node.tsx","../src/runtimes/react/index.tsx"],"sourcesContent":["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\nexport const TABLE_BY_ID = gql`\n query TableById($id: ID!) {\n table(id: $id) {\n id\n name\n columns {\n id\n name\n ... on MultipleSelectTableColumn {\n options {\n id\n name\n }\n }\n ... on SingleSelectTableColumn {\n options {\n id\n name\n }\n }\n }\n }\n }\n`\n\nexport const ELEMENT_REFERENCE_GLOBAL_ELEMENT = gql`\n query ElementReferenceGlobalElement($id: ID!) {\n globalElement(id: $id) {\n id\n data\n }\n }\n`\n\nexport const INTROSPECTION_QUERY = gql`\n query Introspection(\n $swatchIds: [ID!]!\n $fileIds: [ID!]!\n $pageIds: [ID!]!\n $typographyIds: [ID!]!\n $tableIds: [ID!]!\n ) {\n swatches(ids: $swatchIds) {\n id\n hue\n saturation\n lightness\n }\n\n files(ids: $fileIds) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n\n pagePathnamesById(ids: $pageIds) {\n id\n pathname\n }\n\n typographies(ids: $typographyIds) {\n ...Typography\n }\n\n tables(ids: $tableIds) {\n id\n name\n columns {\n id\n name\n ... on MultipleSelectTableColumn {\n options {\n id\n name\n }\n }\n ... on SingleSelectTableColumn {\n options {\n id\n name\n }\n }\n }\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 { ApolloClient, NormalizedCacheObject } from '@apollo/client'\nimport {\n getElementChildren,\n getElementSwatchIds,\n getFileIds,\n getPageIds,\n getTableIds,\n getTypographyIds,\n} from '../prop-controllers/introspection'\nimport { ELEMENT_REFERENCE_GLOBAL_ELEMENT, TYPOGRAPHIES_BY_ID } from '../components/utils/queries'\nimport {\n Element,\n ElementData,\n getPropControllerDescriptors,\n isElementReference,\n Store,\n} from '../state/react-page'\nimport { TypographyFragment } from './generated/graphql'\nimport { PropControllerDescriptor } from '../prop-controllers'\nimport { ListControlData, ListControlType, ShapeControlData, ShapeControlType } from '../controls'\nimport { ListValue, ShapeValue, Types } from '../prop-controllers/descriptors'\n\nexport async function introspect(\n element: Element,\n client: ApolloClient<NormalizedCacheObject>,\n store: Store,\n) {\n const descriptors = getPropControllerDescriptors(store.getState())\n const swatchIds = new Set<string>()\n const fileIds = new Set<string>()\n const typographyIds = new Set<string>()\n const tableIds = new Set<string>()\n const pageIds = new Set<string>()\n\n const remaining = [element]\n let current: Element | undefined\n\n while ((current = remaining.pop())) {\n let element: ElementData\n\n if (isElementReference(current)) {\n const query = await client.query({\n query: ELEMENT_REFERENCE_GLOBAL_ELEMENT,\n variables: { id: current.value },\n })\n\n const elementData = query.data?.globalElement?.data\n\n if (elementData == null) continue\n\n element = elementData\n } else {\n element = current\n }\n\n const elementDescriptors = descriptors.get(element.type)\n\n if (elementDescriptors == null) continue\n\n getResourcesFromElementDescriptors(elementDescriptors, element.props)\n\n function getResourcesFromElementDescriptors(\n elementDescriptors: Record<string, PropControllerDescriptor>,\n props: ElementData['props'],\n ) {\n Object.entries(elementDescriptors).forEach(([propName, descriptor]) => {\n getElementSwatchIds(descriptor, props[propName]).forEach(swatchId => {\n swatchIds.add(swatchId)\n })\n\n getFileIds(descriptor, props[propName]).forEach(fileId => fileIds.add(fileId))\n\n getTypographyIds(descriptor, props[propName]).forEach(typographyId =>\n typographyIds.add(typographyId),\n )\n\n getTableIds(descriptor, props[propName]).forEach(tableId => tableIds.add(tableId))\n\n getPageIds(descriptor, props[propName]).forEach(pageId => pageIds.add(pageId))\n\n getElementChildren(descriptor, props[propName]).forEach(child => remaining.push(child))\n\n if (descriptor.type === ShapeControlType) {\n const prop = props[propName] as ShapeControlData\n\n if (prop == null) return\n\n getResourcesFromElementDescriptors(descriptor.config.type, prop)\n }\n\n if (descriptor.type === ListControlType) {\n const prop = props[propName] as ListControlData\n\n if (prop == null) return\n\n prop.forEach(item => {\n getResourcesFromElementDescriptors(\n { propName: descriptor.config.type },\n { propName: item.value },\n )\n })\n }\n\n if (descriptor.type === Types.Shape) {\n const prop = props[propName] as ShapeValue\n\n if (prop == null) return\n\n getResourcesFromElementDescriptors(descriptor.options.type, prop)\n }\n\n if (descriptor.type === Types.List) {\n const prop = props[propName] as ListValue\n\n if (prop == null) return\n\n prop.forEach(item => {\n getResourcesFromElementDescriptors(\n { propName: descriptor.options.type },\n { propName: item.value },\n )\n })\n }\n })\n }\n }\n\n const typographiesResult = await client.query({\n query: TYPOGRAPHIES_BY_ID,\n variables: { ids: [...typographyIds] },\n })\n\n typographiesResult?.data?.typographies.forEach((typography: TypographyFragment) => {\n typography.style.forEach(style => {\n const swatchId = style.value.color?.swatchId\n\n if (swatchId != null) swatchIds.add(swatchId)\n })\n })\n\n return {\n swatchIds: [...swatchIds],\n fileIds: [...fileIds],\n typographyIds: [...typographyIds],\n tableIds: [...tableIds],\n pageIds: [...pageIds],\n }\n}\n","import {\n ApolloClient,\n DocumentNode,\n NormalizedCacheObject,\n OperationVariables,\n QueryHookOptions,\n QueryResult,\n TypedDocumentNode,\n useQuery as useApolloQuery,\n useMutation as useApolloMutation,\n DefaultContext,\n ApolloCache,\n MutationHookOptions,\n MutationTuple,\n InMemoryCache,\n TypePolicies,\n} from '@apollo/client'\nimport { BatchHttpLink } from '@apollo/client/link/batch-http'\nexport { gql } from '@apollo/client'\nimport { createContext, ReactNode, useContext } from 'react'\nimport { KeyUtils } from 'slate'\n\nimport { INTROSPECTION_QUERY } from '../components/utils/queries'\n\nimport { Element } from '../state/react-page'\nimport { PagePathnameSliceFragment, PagePathnameSliceFragmentDoc } from './generated/graphql'\nimport { storeContextDefaultValue } from '../runtimes/react'\nimport { introspect } from './introspection'\n\nconst typePolicies: TypePolicies = {\n Query: {\n fields: {\n swatches(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'Swatch', id }, true))\n )\n },\n file(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'File', id: args?.id }, true)\n },\n files(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'File', id }, true))\n )\n },\n typographies(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'Typography', id }, true))\n )\n },\n pagePathnamesById(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'PagePathnameSlice', id }, true))\n )\n },\n globalElement(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'GlobalElement', id: args?.id }, true)\n },\n table(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'Table', id: args?.id }, true)\n },\n page(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'Page', id: args?.id }, true)\n },\n site(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'Site', id: args?.id }, true)\n },\n },\n },\n}\n\ntype CreateApolloClientParams = {\n uri?: string\n cacheData?: NormalizedCacheObject\n}\n\nexport function createApolloClient({ uri, cacheData }: CreateApolloClientParams) {\n const cache = new InMemoryCache({ typePolicies })\n\n if (cacheData) cache.restore(cacheData)\n\n return new ApolloClient({ link: new BatchHttpLink({ uri, batchMax: 100 }), cache })\n}\n\nexport type MakeswiftClientOptions = {\n uri?: string\n cacheData?: NormalizedCacheObject\n}\n\nexport class MakeswiftClient {\n apolloClient: ApolloClient<NormalizedCacheObject>\n\n constructor({ uri, cacheData }: MakeswiftClientOptions) {\n this.apolloClient = createApolloClient({ uri, cacheData })\n }\n\n async prefetch(element: Element): Promise<NormalizedCacheObject> {\n const introspectionData = await introspect(element, this.apolloClient, storeContextDefaultValue)\n\n const res = await this.apolloClient.query({\n query: INTROSPECTION_QUERY,\n variables: introspectionData,\n })\n\n // We're doing this because the API return the id without turning it to nodeId:\n // '87237bda-e775-48d8-92cc-399c65577bb7' vs 'UGFnZTo4NzIzN2JkYS1lNzc1LTQ4ZDgtOTJjYy0zOTljNjU1NzdiYjc='\n res.data.pagePathnamesById.forEach((pagePathnameSlice: PagePathnameSliceFragment) => {\n const id = Buffer.from(`Page:${pagePathnameSlice.id}`).toString('base64')\n\n this.apolloClient.cache.writeFragment({\n fragment: PagePathnameSliceFragmentDoc,\n data: { ...pagePathnameSlice, id },\n })\n })\n\n KeyUtils.resetGenerator()\n\n return this.apolloClient.cache.extract()\n }\n\n updateCacheData(cacheData: NormalizedCacheObject): void {\n this.apolloClient.cache.restore(cacheData)\n }\n}\n\nconst Context = createContext<MakeswiftClient | 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: client?.apolloClient, ...options })\n}\n\nexport function useMutation<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n>(\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: MutationHookOptions<TData, TVariables, TContext>,\n): MutationTuple<TData, TVariables, TContext, TCache> {\n const client = useContext(Context)\n\n return useApolloMutation(mutation, { client: client?.apolloClient, ...options })\n}\n\ntype MakeswiftProviderProps = {\n client: MakeswiftClient\n children: ReactNode\n}\n\nexport function MakeswiftProvider({ client, children }: MakeswiftProviderProps) {\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 useResponsiveColor(\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","import { useEffect, useLayoutEffect } from 'react'\n\nconst isSSR =\n typeof window === 'undefined' ||\n /ServerSideRendering/.test(window.navigator && window.navigator.userAgent)\n\nexport const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect\n","/* eslint-env browser */\n\nimport { useState } from 'react'\n\nimport { DeviceOverride } from '../../prop-controllers'\nimport { DEVICES, findDeviceOverride, getDeviceMediaQuery } from '../utils/devices'\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'\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 useIsomorphicLayoutEffect(() => {\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 { useQuery } from '../../api/react'\nimport { TABLE_BY_ID } from '../utils/queries'\n\nexport type SingleLineTextTableColumn = {\n id: string\n name: string\n __typename: 'SingleLineTextTableColumn'\n}\n\nexport type LongTextTableColumn = {\n id: string\n name: string\n __typename: 'LongTextTableColumn'\n}\n\nexport type CheckboxTableColumn = {\n id: string\n name: string\n __typename: 'CheckboxTableColumn'\n}\n\nexport type MultipleSelectTableColumnOption = {\n id: string\n name: string\n}\n\nexport type MultipleSelectTableColumn = {\n id: string\n name: string\n options: Array<MultipleSelectTableColumnOption>\n __typename: 'MultipleSelectTableColumn'\n}\n\nexport type SingleSelectTableColumnOption = {\n id: string\n name: string\n}\n\nexport type SingleSelectTableColumn = {\n id: string\n name: string\n options: Array<SingleSelectTableColumnOption>\n __typename: 'SingleSelectTableColumn'\n}\n\nexport type PhoneNumberTableColumn = {\n id: string\n name: string\n __typename: 'PhoneNumberTableColumn'\n}\n\nexport type EmailTableColumn = {\n id: string\n name: string\n __typename: 'EmailTableColumn'\n}\n\nexport type URLTableColumn = {\n id: string\n name: string\n __typename: 'URLTableColumn'\n}\n\nexport type NumberTableColumn = {\n id: string\n name: string\n __typename: 'NumberTableColumn'\n}\n\nexport type TableColumn =\n | SingleLineTextTableColumn\n | LongTextTableColumn\n | CheckboxTableColumn\n | MultipleSelectTableColumn\n | SingleSelectTableColumn\n | PhoneNumberTableColumn\n | EmailTableColumn\n | URLTableColumn\n | NumberTableColumn\n\ntype Table = {\n id: string\n name: string\n columns: Array<TableColumn>\n}\n\nexport function useTable(tableId: string | null | undefined) {\n return useQuery<{ table: Table | null }>(TABLE_BY_ID, {\n skip: tableId == null,\n variables: { id: tableId },\n })\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, useCallback, ReactNode, CSSProperties } from 'react'\nimport clamp from '../../../../../utils/clamp'\nimport { useIsomorphicLayoutEffect } from '../../../../hooks/useIsomorphicLayoutEffect'\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 useIsomorphicLayoutEffect(() => {\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, useRef } from 'react'\nimport ReactPlayer from 'react-player'\nimport styled from 'styled-components'\n\nimport { useIsomorphicLayoutEffect } from '../../../../hooks/useIsomorphicLayoutEffect'\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 useIsomorphicLayoutEffect(() => {\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'\nimport { cx } from '@emotion/css'\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 MarginValue,\n PaddingValue,\n ResponsiveIconRadioGroupValue,\n GridValue,\n GapYValue,\n GapXValue,\n CheckboxValue,\n ResponsiveSelectValue,\n ResponsiveNumberValue,\n BackgroundsValue,\n BorderValue,\n ShadowsValue,\n ResponsiveValue,\n} from '../../../prop-controllers/descriptors'\nimport {\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'\nimport { findDeviceOverride } from '../../utils/devices'\n\ntype Props = {\n id?: ElementIDValue\n backgrounds?: BackgroundsValue\n width?: string\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).withConfig({\n shouldForwardProp: prop => !['margin', 'borderRadius', 'alignSelf'].includes(prop.toString()),\n})<{\n margin: Props['margin']\n borderRadius: Props['borderRadius']\n alignSelf: Props['height']\n}>`\n display: flex;\n ${cssMargin()}\n ${cssBorderRadius()}\n ${props => cssMediaRules([props.alignSelf] as const, ([alignSelf = 'auto']) => ({ alignSelf }))}\n`\n\nconst Grid = styled(motion.div).withConfig({\n shouldForwardProp: prop => !['padding', 'border', 'boxShadow', 'alignContent'].includes(prop),\n})<{\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).withConfig({\n shouldForwardProp: prop => !['grid', 'alignItems', 'index', 'columnGap', 'rowGap'].includes(prop),\n})<{\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 className={cx(width)}\n backgrounds={backgrounds}\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 function isHiddenBasedOnAnimationType(\n props: Record<string, unknown>,\n deviceId: string,\n property: 'boxAnimateType' | 'itemAnimateType',\n ): boolean {\n const animateIn = props[property] as ResponsiveValue<BoxAnimateIn>\n return (findDeviceOverride<BoxAnimateIn>(animateIn, deviceId)?.value ?? 'none') === 'none'\n }\n const isHiddenBasedOnBoxAnimation = (props: Record<string, unknown>, deviceId: string) =>\n isHiddenBasedOnAnimationType(props, deviceId, 'boxAnimateType')\n const isHiddenBasedOnItemAnimation = (props: Record<string, unknown>, deviceId: string) =>\n isHiddenBasedOnAnimationType(props, deviceId, 'itemAnimateType')\n\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({ format: Props.Width.Formats.ClassName }),\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(props => ({\n hidden: props.children == null,\n })),\n columnGap: Props.GapX(props => ({\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((props, device) => ({\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((props, device) => ({\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((props, device) => ({\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((props, device) => ({\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((props, device) => ({\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(props => ({\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 { WidthProperty } from 'csstype'\nimport { CSSObject } from '@emotion/css'\n\nimport {\n ResponsiveValue,\n ResponsiveValueType as ExtractResponsiveValue,\n Length as LengthValue,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport {\n FallbackStrategy,\n getDevice,\n getDeviceMediaQuery,\n join as joinResponsiveValues,\n} from './devices'\n\nexport function responsiveStyle<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>>(\n responsiveValues: A,\n join: (values: { [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined }) => CSSObject,\n strategy?: FallbackStrategy<V>,\n): CSSObject {\n return joinResponsiveValues(responsiveValues, join, strategy).reduce(\n (acc, { deviceId, value }) => {\n const device = getDevice(deviceId)\n const mediaQuery = getDeviceMediaQuery(device)\n\n return {\n ...acc,\n [mediaQuery]: {\n ...(acc[mediaQuery] as CSSObject),\n ...value,\n },\n }\n },\n {} as CSSObject,\n )\n}\n\nexport function responsiveWidth(\n widthData: WidthValue | undefined,\n defaultValue: LengthValue | WidthProperty<string | number> = '100%',\n): CSSObject {\n return {\n maxWidth: '100%',\n ...responsiveStyle([widthData], ([width = defaultValue]) => ({\n width: typeof width === 'object' ? `${width.value}${width.unit}` : width,\n })),\n }\n}\n","import { ReactElement, ComponentPropsWithoutRef, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport ColorHelper from 'color'\nimport { cx, css as toClass } from '@emotion/css'\n\nimport { cssMediaRules, cssMargin, cssTextStyle } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n MarginValue,\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 { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { responsiveWidth } from '../../utils/responsive-style'\nimport { findDeviceOverride } from '../../utils/devices'\n\ntype ButtonVariant = 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n\ntype ControllerProps = {\n id?: ElementIDValue\n children?: TextInputValue\n link?: LinkValue\n variant?: ResponsiveSelectValue<ButtonVariant>\n shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n color?: ResponsiveColor\n textColor?: ResponsiveColor\n textStyle?: TextStyleValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst StyledButton = styled(Link).withConfig({\n shouldForwardProp: prop =>\n !['margin', 'variant', 'shape', 'size', 'textColor', 'color', 'textStyle'].includes(\n prop.toString(),\n ),\n})<{\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 ${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 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?: WidthValue\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 className,\n ...restOfProps\n },\n ref,\n) {\n return (\n <StyledButton\n {...restOfProps}\n ref={ref}\n id={id}\n className={cx(toClass(responsiveWidth(width, 'auto')), className)}\n // @ts-expect-error: HTMLAnchorElement `color` attribute conflicts with prop\n color={color}\n link={link}\n margin={margin}\n shape={shape}\n size={size}\n textColor={textColor}\n textStyle={textStyle}\n variant={variant}\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((props, device) => {\n const variant = props.variant as ResponsiveValue<ButtonVariant>\n const hidden = findDeviceOverride<ButtonVariant>(variant, device)?.value === 'clear'\n\n return { placeholder: 'black', hidden }\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 video: {\n src: \"data:image/svg+xml,%3Csvg width='712' height='400' viewBox='0 0 712 400' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M712 0H0V400H712V0ZM356 240C378.091 240 396 222.091 396 200C396 177.909 378.091 160 356 160C333.909 160 316 177.909 316 200C316 222.091 333.909 240 356 240Z' fill='%23A1A8C2' fill-opacity='0.18'/%3E%3Cpath d='M344 216.503V183.497C344 181.95 345.681 180.989 347.014 181.773L375.069 198.276C376.384 199.049 376.384 200.951 375.069 201.724L347.014 218.227C345.681 219.011 344 218.05 344 216.503Z' fill='%23A1A8C2' fill-opacity='0.4'/%3E%3C/svg%3E%0A\",\n dimensions: { width: 712, height: 400 },\n },\n}\n","import styled, { css } from 'styled-components'\nimport { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\nimport { css as toClass, cx } from '@emotion/css'\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} 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'\nimport { responsiveWidth } from '../../utils/responsive-style'\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.withConfig({\n shouldForwardProp: prop =>\n ![\n 'margin',\n 'padding',\n 'border',\n 'borderRadius',\n 'boxShadow',\n 'opacity',\n 'link',\n 'dimensions',\n ].includes(prop.toString()),\n})<{\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}>`\n line-height: 0;\n overflow: hidden;\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 const widthClass = toClass(responsiveWidth(width, `${dimensions.width}px`))\n\n return (\n <ImageContainer\n as={link ? Link : 'div'}\n link={link}\n ref={ref}\n id={id}\n className={cx(className, widthClass)}\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'\nimport { cx } from '@emotion/css'\n\nimport { cssMediaRules, cssMargin } from '../../utils/cssMediaRules'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useMediaQuery } from '../../hooks'\n\nimport Image from '../Image'\nimport {\n ResponsiveValue,\n ElementIDValue,\n ImagesValue,\n MarginValue,\n ResponsiveNumberValue,\n ResponsiveIconRadioGroupValue,\n GapXValue,\n CheckboxValue,\n NumberValue,\n BorderValue,\n BorderRadiusValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { findDeviceOverride } from '../../utils/devices'\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?: string\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?: ResponsiveColor | null\n arrowBackground?: ResponsiveColor | null\n showDots?: CheckboxValue\n dotColor?: ResponsiveColor | null\n slideBorder?: BorderValue\n slideBorderRadius?: BorderRadiusValue\n}\n\nconst Wrapper = styled.div.withConfig({\n shouldForwardProp: prop => !['margin'].includes(prop),\n})<{ margin: Props['margin'] }>`\n position: relative;\n display: flex;\n flex-direction: column;\n ${cssMargin()}\n\n &:focus {\n outline: 0;\n }\n`\n\nconst Arrow = styled.div.withConfig({\n shouldForwardProp: prop => !['background'].includes(prop),\n})<{ 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.withConfig({\n shouldForwardProp: prop => !['color'].includes(prop),\n})<{\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).withConfig({\n shouldForwardProp: prop => !['pageSize', 'alignItems'].includes(prop),\n})<{\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).withConfig({\n shouldForwardProp: prop => !['gap'].includes(prop),\n})<{ 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).withConfig({\n shouldForwardProp: prop => !['position'].includes(prop),\n})<{ 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).withConfig({\n shouldForwardProp: prop => !['position'].includes(prop),\n})<{ 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.withConfig({\n shouldForwardProp: prop => !['color'].includes(prop),\n})<{ 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.withConfig({\n shouldForwardProp: prop => !['active'].includes(prop),\n})<{ 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 className={cx(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={arrowColor}\n hidden={!showArrows || isFirstPage}\n >\n <Arrow background={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={arrowColor}\n hidden={!showArrows || isLastPage}\n >\n <Arrow background={arrowBackground}>\n <RightChevron />\n </Arrow>\n </RightSlop>\n </Container>\n {/* @ts-expect-error: HTMLDivElement attributes conflicts with `color` prop */}\n <Dots color={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({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 400, unit: 'px' },\n }),\n margin: Props.Margin(),\n pageSize: Props.ResponsiveNumber(props => {\n const images = props.images as unknown[]\n const imagesLength = images?.length ?? 0\n\n return {\n label: 'Images shown',\n defaultValue: 1,\n min: 1,\n max: imagesLength,\n step: 1,\n }\n }),\n step: Props.ResponsiveNumber((props, device) => {\n const pageSize = props.pageSize as ResponsiveValue<number>\n const pageSizeValue = findDeviceOverride(pageSize, device)?.value ?? 1\n\n return {\n label: 'Step',\n defaultValue: 1,\n min: 1,\n max: pageSizeValue,\n step: 1,\n }\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(props => ({\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(props => ({\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(props => ({\n label: 'Arrow color',\n placeholder: 'black',\n hidden: props.showArrows === false,\n })),\n arrowBackground: Props.ResponsiveColor(props => ({\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(props => ({\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'\nimport { cx } from '@emotion/css'\n\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { cssMediaRules, cssMargin } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n DateValue,\n ElementIDValue,\n FontValue,\n GapXValue,\n MarginValue,\n ResponsiveIconRadioGroupValue,\n TextInputValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\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?: ResponsiveColor | null\n blockColor?: ResponsiveColor | null\n labelFont?: FontValue\n labelColor?: ResponsiveColor | null\n width?: string\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.withConfig({\n shouldForwardProp: prop =>\n ![\n 'margin',\n 'variant',\n 'size',\n 'shape',\n 'gap',\n 'labelColor',\n 'numberFont',\n 'numberColor',\n 'blockColor',\n 'labelFont',\n ].includes(prop),\n})<{\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 ${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 className={cx(width)}\n margin={margin}\n variant={variant}\n size={size}\n shape={shape}\n labelColor={labelColor}\n labelFont={labelFont}\n numberColor={numberColor}\n numberFont={numberFont}\n blockColor={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 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({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 560, unit: 'px' },\n }),\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'\nimport { cx } from '@emotion/css'\n\nimport { cssMediaRules, cssMargin } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n MarginValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n} from '../../../prop-controllers/descriptors'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\n\ntype DividerVariant = 'solid' | 'dashed' | 'dotted' | 'blended'\n\ntype Props = {\n id?: ElementIDValue\n variant?: ResponsiveSelectValue<DividerVariant>\n thickness?: ResponsiveLengthValue\n color?: ResponsiveColor | null\n width?: string\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.withConfig({\n shouldForwardProp: prop => !['margin'].includes(prop),\n})<{ margin: Props['margin'] }>`\n display: flex;\n width: 100%;\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.withConfig({\n shouldForwardProp: prop => !['variant', 'color', 'thickness'].includes(prop),\n})<{\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} className={cx(width)} margin={margin}>\n <Container>\n {/* @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop */}\n <Line variant={variant} thickness={thickness} color={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({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 100, unit: '%' },\n }),\n margin: Props.Margin(),\n },\n })\n}\n","/* eslint-env browser */\n\nimport { useState, useEffect, forwardRef, Ref, useImperativeHandle } from 'react'\nimport styled from 'styled-components'\nimport { cx } from '@emotion/css'\n\nimport { cssMargin } from '../../utils/cssMediaRules'\nimport { ElementIDValue, MarginValue, TextAreaValue } from '../../../prop-controllers/descriptors'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../react'\nimport { useIsomorphicLayoutEffect } from '../../hooks/useIsomorphicLayoutEffect'\n\ntype Props = {\n id?: ElementIDValue\n html?: TextAreaValue\n width?: string\n margin?: MarginValue\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['margin'].includes(prop),\n})<{ margin: Props['margin'] }>`\n min-height: 15px;\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 useIsomorphicLayoutEffect(() => {\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 className={cx(width)}\n margin={margin}\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({ format: Props.Width.Formats.ClassName }),\n margin: Props.Margin(),\n },\n })\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS43MDcxIDEuNzkyODlDMTIuMDk3NiAyLjE4MzQyIDEyLjA5NzYgMi44MTY1OCAxMS43MDcxIDMuMjA3MTFMNC43MDcxMSAxMC4yMDcxQzQuMzE2NTggMTAuNTk3NiAzLjY4MzQyIDEwLjU5NzYgMy4yOTI4OSAxMC4yMDcxTDAuMjkyODkzIDcuMjA3MTFDLTAuMDk3NjMxMSA2LjgxNjU4IC0wLjA5NzYzMTEgNi4xODM0MiAwLjI5Mjg5MyA1Ljc5Mjg5QzAuNjgzNDE3IDUuNDAyMzcgMS4zMTY1OCA1LjQwMjM3IDEuNzA3MTEgNS43OTI4OUw0IDguMDg1NzlMMTAuMjkyOSAxLjc5Mjg5QzEwLjY4MzQgMS40MDIzNyAxMS4zMTY2IDEuNDAyMzcgMTEuNzA3MSAxLjc5Mjg5WiIvPgo8L3N2Zz4K\"","import { createContext, useContext } from 'react'\n\nimport { ResponsiveValue, TextStyleValue } from '../../../../prop-controllers/descriptors'\nimport { ResponsiveColor } from '../../../../runtimes/react/controls'\nimport { ColorValue } from '../../../utils/types'\n\nexport const Shapes = Object.freeze({\n SQUARE: 'square',\n ROUNDED: 'rounded',\n PILL: 'pill',\n} as const)\n\nexport type Shape = typeof Shapes[keyof typeof Shapes]\n\nexport const Sizes = Object.freeze({\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const)\n\nexport type Size = typeof Sizes[keyof typeof Sizes]\n\nexport const Contrasts = Object.freeze({\n LIGHT: 'light',\n DARK: 'dark',\n} as const)\n\nexport type Contrast = typeof Contrasts[keyof typeof Contrasts]\n\nexport type Value = {\n shape: ResponsiveValue<Shape> | null | undefined\n size: ResponsiveValue<Size> | null | undefined\n contrast: ResponsiveValue<Contrast> | null | undefined\n brandColor: ResponsiveValue<ColorValue> | null | undefined\n labelTextStyle?: TextStyleValue\n labelTextColor?: ResponsiveColor | null\n}\n\nconst Context = createContext<Value>({} as Value)\n\nexport function useFormContext(): Value {\n return useContext(Context)\n}\n\nconst { Provider } = Context\n\nexport { Provider }\n","import { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../utils/colorToString'\n\nimport {\n Size,\n Shape,\n Contrast,\n Shapes,\n Sizes,\n Contrasts,\n Value,\n} from '../../../context/FormContext'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 30\n\n case Sizes.MEDIUM:\n return 38\n\n case Sizes.LARGE:\n return 48\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getSizeHorizontalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 8\n\n case Sizes.MEDIUM:\n return 12\n\n case Sizes.LARGE:\n return 16\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nfunction getSizeVerticalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 3\n\n case Sizes.MEDIUM:\n return 7\n\n case Sizes.LARGE:\n return 11\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getShapeBorderRadius(shape: Shape): number {\n switch (shape) {\n case Shapes.SQUARE:\n return 0\n\n case Shapes.ROUNDED:\n return 4\n\n case Shapes.PILL:\n return 500\n\n default:\n throw new Error(`Invalid form shape \"${shape}\"`)\n }\n}\n\nexport function getContrastBorderColor(contrast: Contrast, error?: boolean): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(0, 0, 0, 0.25)'\n\n case Contrasts.DARK:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.6)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastBackgroundColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'white'\n\n case Contrasts.DARK:\n return 'rgba(0, 0, 0, 0.7)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.95)'\n\n case Contrasts.DARK:\n return 'white'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nfunction getContrastPlaceholderColor(contrast: Contrast) {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.3)'\n\n case Contrasts.DARK:\n return 'rgba(255,255,255,0.3)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport default function cssField() {\n return css<Pick<Value, 'shape' | 'size' | 'contrast' | 'brandColor'> & { error?: boolean }>`\n display: block;\n width: 100%;\n outline: none;\n border-width: 1px;\n border-style: solid;\n transition: border-color 200ms;\n ${props =>\n cssMediaRules(\n [props.shape, props.size, props.contrast, props.brandColor] as const,\n ([\n shape = Shapes.ROUNDED,\n size = Sizes.MEDIUM,\n contrast = Contrasts.LIGHT,\n brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => css`\n padding: ${getSizeVerticalPadding(size)}px ${getSizeHorizontalPadding(size)}px;\n border-radius: ${getShapeBorderRadius(shape)}px;\n border-color: ${getContrastBorderColor(contrast, props.error)};\n color: ${getContrastColor(contrast)};\n background-color: ${getContrastBackgroundColor(contrast)};\n\n :focus,\n :focus-within {\n border-color: ${colorToString(brandColor)};\n }\n\n ::placeholder {\n color: ${getContrastPlaceholderColor(contrast)};\n }\n `,\n )}\n `\n}\n","import { ComponentPropsWithoutRef, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { Size, useFormContext, Sizes, Value } from '../../../../context/FormContext'\nimport cssField from '../../services/cssField'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 36\n\n case Sizes.MEDIUM:\n return 42\n\n case Sizes.LARGE:\n return 48\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nconst Base = styled.input.withConfig({\n shouldForwardProp: (prop, defaultValidator) =>\n !['shape', 'size', 'contrast', 'brandColor', 'error'].includes(prop.toString()) &&\n defaultValidator(prop),\n})<Pick<Value, 'shape' | 'size' | 'contrast' | 'brandColor'> & { error?: boolean }>`\n ${cssField()}\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n min-height: ${getSizeHeight(size)}px;\n max-height: ${getSizeHeight(size)}px;\n `,\n )}\n`\n\ntype BaseProps = { error?: boolean; form?: unknown }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Base>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function Input(\n { error = false, form, ...restOfProps }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <Base\n {...restOfProps}\n ref={ref}\n error={error}\n shape={shape}\n // @ts-expect-error: HTMLInputEleent `size` attribute conflicts with prop\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n )\n})\n","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\n\nimport { MarginValue, WidthValue } from '../../../../../prop-controllers/descriptors'\nimport { cssMargin } from '../../../../utils/cssMediaRules'\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['width', 'margin'].includes(prop.toString()),\n})<{\n width?: WidthValue\n margin?: MarginValue\n}>`\n display: flex;\n flex-direction: column;\n ${cssMargin()};\n`\n\nconst Label = styled.div`\n max-width: 120px;\n min-width: 60px;\n height: 8px;\n border-radius: 2px;\n background-color: #a1a8c2;\n opacity: 0.4;\n margin-bottom: 8px;\n`\n\nconst Input = styled.div`\n min-width: 80px;\n height: 32px;\n border-radius: 4px;\n border-width: 2px;\n border-style: solid;\n border-color: #a1a8c2;\n opacity: 0.4;\n`\n\nconst Button = styled.div`\n min-width: 140px;\n height: 32px;\n border-radius: 4px;\n background-color: #a1a8c2;\n opacity: 0.4;\n`\n\ntype Props = {\n className?: string\n margin?: MarginValue\n}\n\nexport default forwardRef(function Placeholder(\n { className, margin }: Props,\n ref: Ref<HTMLDivElement>,\n): JSX.Element {\n return (\n <Container ref={ref} className={className} margin={margin}>\n <div style={{ display: 'flex', flexDirection: 'column', marginBottom: 16 }}>\n <Label />\n <Input />\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', marginBottom: 16 }}>\n <Label />\n <Input />\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'flex-end' }}>\n <Button />\n </div>\n </Container>\n )\n})\n","import { ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport { ResponsiveValue } from '../../../../../../../prop-controllers'\nimport { TextStyleValue } from '../../../../../../../prop-controllers/descriptors'\nimport { cssMediaRules, cssTextStyle } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\n\nimport { useFormContext, Size, Sizes, Contrast, Contrasts } from '../../../../context/FormContext'\nimport { ColorValue } from '../../../../../../utils/types'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 14\n\n case Sizes.MEDIUM:\n return 18\n\n case Sizes.LARGE:\n return 22\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nfunction getContrastColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.8)'\n\n case Contrasts.DARK:\n return 'rgba(255, 255, 255, 0.95)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nconst Base = styled.label.withConfig({\n shouldForwardProp: (prop, defaultValidator) =>\n !['contrast', 'size', 'textStyle', 'textColor'].includes(prop.toString()) &&\n defaultValidator(prop),\n})<{\n contrast?: ResponsiveValue<Contrast> | null | undefined\n size?: ResponsiveValue<Size> | null | undefined\n textStyle?: TextStyleValue | null | undefined\n textColor?: ResponsiveValue<ColorValue> | null | undefined\n}>`\n display: block;\n margin: 0 0 0.25em 0;\n ${cssTextStyle()}\n ${props =>\n cssMediaRules(\n [props.size, props.contrast, props.textColor] as const,\n ([size = Sizes.MEDIUM, contrast = Contrasts.LIGHT, textColor]) => css`\n min-height: ${getSizeHeight(size)}px;\n color: ${textColor == null ? getContrastColor(contrast) : colorToString(textColor)};\n `,\n )}\n`\n\ntype Props = ComponentPropsWithoutRef<typeof Base>\n\nexport default function Label(props: Props): JSX.Element {\n const { contrast, size, labelTextStyle, labelTextColor } = useFormContext()\n\n return (\n <Base\n {...props}\n contrast={contrast}\n size={size}\n textStyle={labelTextStyle}\n textColor={labelTextColor}\n />\n )\n}\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function SingleLineTextTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"text\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef, ComponentPropsWithoutRef } from 'react'\nimport styled from 'styled-components'\n\nimport cssField from '../../services/cssField'\nimport { Value, useFormContext } from '../../../../context/FormContext'\n\nconst Base = styled.textarea.withConfig({\n shouldForwardProp: (prop, defaultValidator) =>\n !['error', 'shape', 'size', 'contrast', 'brandColor'].includes(prop.toString()) &&\n defaultValidator(prop),\n})<Value & { error?: boolean }>`\n resize: vertical;\n ${cssField()}\n`\n\ntype BaseProps = { error?: boolean; form?: unknown }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Base>, keyof BaseProps>\n\nexport default forwardRef<HTMLTextAreaElement, Props>(function TextArea(\n { error = false, form, ...restOfProps }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <Base\n {...restOfProps}\n ref={ref}\n rows={4}\n error={error}\n shape={shape}\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport TextArea from '../TextArea'\n\ntype Props = {\n id: string\n label?: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLTextAreaElement, Props>(function LongTextTableField(\n { id, label = '', error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <TextArea {...restOfProps} aria-label={label} ref={ref} id={id} error={error != null} />\n </>\n )\n})\n","import { forwardRef, CSSProperties, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport Color from 'color'\n\nimport { getSizeHeight as getSize } from '../Label'\nimport {\n useFormContext,\n Value as FormContextValue,\n Sizes,\n Contrasts,\n} from '../../../../context/FormContext'\nimport { getContrastBorderColor, getContrastBackgroundColor } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { SwatchValue } from '../../../../../../utils/types'\n\nfunction getCheckmarkColor({\n swatch: { hue: h, saturation: s, lightness: l },\n alpha: a,\n}: {\n swatch: SwatchValue\n alpha: number\n}) {\n return Color({ h, s, l }).alpha(a).isLight() ? 'rgba(0, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.95)'\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['size'].includes(prop),\n})<Pick<FormContextValue, 'size'>>`\n position: relative;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n height: ${getSize(size)}px;\n width: ${getSize(size)}px;\n `,\n )}\n`\n\nconst FakeCheckbox = styled.div.withConfig({\n shouldForwardProp: prop => !['contrast', 'error'].includes(prop),\n})<Pick<FormContextValue, 'contrast'> & { error?: boolean }>`\n position: absolute;\n width: 100%;\n height: 100%;\n border-style: solid;\n border-radius: 4px;\n pointer-events: none;\n border-width: 1px;\n ${props =>\n cssMediaRules(\n [props.contrast] as const,\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n background-color: ${getContrastBackgroundColor(contrast)};\n `,\n )}\n`\n\nconst HiddenCheckbox = styled.input.withConfig({\n shouldForwardProp: (prop, defaultValidator) =>\n !['size', 'brandColor', 'contrast', 'error'].includes(prop) && defaultValidator(prop),\n})<\n Pick<FormContextValue, 'size' | 'brandColor' | 'contrast'> & {\n error?: boolean\n }\n>`\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n\n &:disabled {\n cursor: no-drop;\n\n & ~ ${FakeCheckbox} {\n opacity: 0.5;\n }\n }\n\n &:checked ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([{ swatch = { hue: 0, saturation: 0, lightness: 0 }, alpha = 1 } = {}]) => css`\n background-color: ${colorToString({ swatch, alpha })};\n `,\n )}\n border-color: transparent;\n\n &::after {\n content: '';\n position: absolute;\n box-sizing: content-box;\n width: 25%;\n height: 50%;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n border-width: ${getSize(size) * 0.1}px;\n border-left: 0;\n border-top: 0;\n `,\n )}\n border-style: solid;\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([{ swatch = { hue: 0, saturation: 0, lightness: 0 }, alpha = 1 } = {}]) => css`\n border-color: ${getCheckmarkColor({ swatch, alpha })};\n `,\n )}\n transform: rotate(45deg) translate3d(91%, -23%, 0);\n }\n }\n\n &:not(:disabled) {\n &:focus ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.brandColor],\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n border-color: ${colorToString(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled):checked {\n &:focus ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.contrast],\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n `,\n )}\n }\n }\n`\n\ntype BaseProps = {\n error?: boolean\n className?: string\n style?: CSSProperties\n form?: unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof HiddenCheckbox>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function Checkbox(\n { error, className, style, form, ...restOfProps }: Props,\n ref,\n) {\n const { size, contrast, brandColor } = useFormContext()\n\n return (\n <Container size={size}>\n <HiddenCheckbox\n {...restOfProps}\n type=\"checkbox\"\n ref={ref}\n error={error}\n // @ts-expect-error: HTMLInputElement `size` attribute conflicts with prop\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n <FakeCheckbox className={className} error={error} contrast={contrast} style={style} />\n </Container>\n )\n})\n","import { forwardRef, SyntheticEvent } from 'react'\nimport styled, { css } from 'styled-components'\nimport { FormikProps } from 'formik'\n\nimport { useFormContext, Sizes, Value } from '../../../../context/FormContext'\nimport Label from '../Label'\nimport { getSizeHeight as getInputSizeHeight } from '../Input'\nimport Checkbox from '../Checkbox'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\n\nconst StyledLabel = styled(Label)<Pick<Value, 'size'>>`\n display: flex;\n align-items: center;\n margin: 0;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n `,\n )}\n`\n\nconst CheckboxContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n form: FormikProps<{\n [key: string]: boolean\n }>\n id: string\n label?: string\n name: string\n value?: boolean\n error?: string\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function CheckboxTableField(\n { form, id, name, label = '', value = false, error, ...restOfProps }: Props,\n ref,\n) {\n const { size } = useFormContext()\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n form.setFieldValue(name, event.currentTarget.checked)\n }\n\n return (\n <StyledLabel htmlFor={id} size={size}>\n <CheckboxContainer>\n <Checkbox\n {...restOfProps}\n aria-label={label}\n checked={value}\n onChange={handleChange}\n ref={ref}\n id={id}\n error={error != null}\n />\n </CheckboxContainer>\n {label}\n </StyledLabel>\n )\n})\n","import { forwardRef, useRef, useImperativeHandle, SyntheticEvent } from 'react'\nimport styled from 'styled-components'\n\nimport Label from '../Label'\nimport Checkbox from '../Checkbox'\n\nconst MainLabel = styled(Label)`\n margin: 0 0 4px 0;\n`\n\nconst StyledLabel = styled(Label)`\n display: flex;\n align-items: center;\n margin: 8px 0;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`\n\nconst CheckboxContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n value?: Array<string>\n label?: string\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n hideLabel?: boolean\n}\n\nexport default forwardRef<\n {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n },\n Props\n>(function MultipleSelectTableField(\n {\n tableColumn,\n label = '',\n required,\n value = [],\n onChange,\n hideLabel = false,\n ...restOfProps\n }: Props,\n ref,\n) {\n const handle = useRef({\n validity: { valueMissing: required === true && value.length === 0, typeMismatch: false },\n })\n\n useImperativeHandle(ref, () => handle.current, [])\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n handle.current.validity.valueMissing =\n required === true &&\n !event.currentTarget.checked &&\n value.filter(v => v !== event.currentTarget.value).length === 0\n\n onChange(event)\n }\n\n return (\n <div>\n {!hideLabel && <MainLabel>{label}</MainLabel>}\n {tableColumn.options.map(option => (\n <StyledLabel key={option.id} htmlFor={option.id}>\n <CheckboxContainer>\n <Checkbox\n {...restOfProps}\n aria-label={label}\n onChange={handleChange}\n checked={value.includes(option.name)}\n id={option.id}\n value={option.name}\n />\n </CheckboxContainer>\n {option.name}\n </StyledLabel>\n ))}\n </div>\n )\n})\n","import { forwardRef, CSSProperties, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport Color from 'color'\n\nimport { getSizeHeight as getSize } from '../Label'\nimport { useFormContext, Sizes, Contrasts, Value } from '../../../../context/FormContext'\nimport { getContrastBorderColor, getContrastBackgroundColor } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { ColorValue } from '../../../../../../utils/types'\n\nfunction getCheckmarkColor({\n swatch: { hue: h, saturation: s, lightness: l } = { hue: 0, saturation: 0, lightness: 0 },\n alpha: a,\n}: ColorValue) {\n return Color({ h, s, l }).alpha(a).isLight() ? 'rgba(0, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.95)'\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['size'].includes(prop.toString()),\n})<Pick<Value, 'size'>>`\n position: relative;\n ${props =>\n cssMediaRules(\n [props.size],\n ([size = Sizes.MEDIUM]) => css`\n height: ${getSize(size)}px;\n width: ${getSize(size)}px;\n `,\n )}\n`\n\nconst FakeRadioButton = styled.div.withConfig({\n shouldForwardProp: prop => !['contrast', 'error'].includes(prop.toString()),\n})<Pick<Value, 'contrast'> & { error?: boolean }>`\n position: absolute;\n width: 100%;\n height: 100%;\n border-style: solid;\n border-radius: 50%;\n pointer-events: none;\n border-width: 1px;\n ${props =>\n cssMediaRules(\n [props.contrast],\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n background-color: ${getContrastBackgroundColor(contrast)};\n `,\n )}\n`\n\nconst HiddenRadioButton = styled.input\n .withConfig({\n shouldForwardProp: prop => !['brandColor', 'contrast', 'error'].includes(prop.toString()),\n })\n .attrs({ type: 'radio' })<Pick<Value, 'brandColor' | 'contrast'> & { error?: boolean }>`\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n\n &:disabled {\n cursor: no-drop;\n\n & ~ ${FakeRadioButton} {\n opacity: 0.5;\n }\n }\n\n &:checked ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n background-color: ${colorToString(brandColor)};\n `,\n )}\n border-color: transparent;\n\n &::after {\n content: '';\n position: absolute;\n box-sizing: content-box;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n background-color: ${getCheckmarkColor(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled) {\n &:focus ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n border-color: ${colorToString(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled):checked {\n &:focus ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.contrast] as const,\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n `,\n )}\n }\n }\n`\n\ntype BaseProps = {\n error?: boolean\n className?: string\n style?: CSSProperties\n form?: unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof HiddenRadioButton>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function RadioButton(\n { error, className, style, form, ...restOfProps }: Props,\n ref,\n) {\n const { size, contrast, brandColor } = useFormContext()\n\n return (\n <Container size={size}>\n <HiddenRadioButton\n {...restOfProps}\n ref={ref}\n error={error}\n contrast={contrast}\n brandColor={brandColor}\n />\n <FakeRadioButton className={className} error={error} contrast={contrast} style={style} />\n </Container>\n )\n})\n","import { forwardRef, useRef, useImperativeHandle, SyntheticEvent } from 'react'\nimport styled from 'styled-components'\n\nimport Label from '../../../Label'\nimport RadioButton from '../../../RadioButton'\n\nconst StyledLabel = styled(Label)`\n display: flex;\n align-items: center;\n margin: 8px 0;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`\n\nconst RadioButtonContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n label?: string\n value?: string\n hideLabel?: boolean\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n}\n\nexport default forwardRef<\n {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n },\n Props\n>(function TableColumnRadioButtonGroup(\n {\n tableColumn,\n label = '',\n value = '',\n required = false,\n hideLabel = false,\n onChange,\n ...restOfProps\n }: Props,\n ref,\n) {\n const handle = useRef({\n validity: { valueMissing: required === true && value === '', typeMismatch: false },\n })\n\n useImperativeHandle(ref, () => handle.current, [])\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n handle.current.validity.valueMissing = required === true && !event.currentTarget.checked\n\n onChange(event)\n }\n\n return (\n <div>\n {!hideLabel && <Label as=\"p\">{label}</Label>}\n {tableColumn.options.map(option => (\n <StyledLabel key={option.id} htmlFor={option.id} aria-label={label}>\n <RadioButtonContainer>\n <RadioButton\n {...restOfProps}\n onChange={handleChange}\n checked={value === option.name}\n id={option.id}\n value={option.name}\n />\n </RadioButtonContainer>\n {option.name}\n </StyledLabel>\n ))}\n </div>\n )\n})\n","import { forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../../../utils/cssMediaRules'\nimport { useFormContext, Sizes, Contrasts, Value } from '../../../../../../context/FormContext'\nimport cssField, {\n getSizeHeight,\n getSizeHorizontalPadding,\n getContrastColor,\n} from '../../../../services/cssField'\nimport Label from '../../../Label'\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop =>\n !['error', 'shape', 'size', 'contrast', 'brandColor'].includes(prop.toString()),\n})<Value & { error?: boolean }>`\n ${cssField()}\n display: flex;\n align-items: center;\n position: relative;\n user-select: none;\n border-color: #f19eb9;\n\n &:focus,\n &:focus-within {\n border-color: #e54e7f;\n }\n\n ${props =>\n cssMediaRules(\n [props.size, props.contrast] as const,\n ([size = Sizes.MEDIUM, contrast = Contrasts.LIGHT]) => css`\n min-height: ${getSizeHeight(size)}px;\n max-height: ${getSizeHeight(size)}px;\n\n &::after {\n content: '';\n position: absolute;\n right: ${getSizeHorizontalPadding(size)}px;\n top: 50%;\n transform: translate3d(0, -25%, 0);\n border: solid 0.35em transparent;\n border-top-color: ${getContrastColor(contrast)};\n }\n `,\n )}\n`\n\nconst Select = styled.select`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n value?: string\n label?: string\n required?: boolean\n error?: boolean\n hideLabel?: boolean\n form?: unknown\n}\n\nexport default forwardRef<HTMLSelectElement, Props>(function TableColumnSingleSelect(\n {\n id,\n tableColumn,\n value = '',\n label = '',\n error = false,\n hideLabel = false,\n form,\n ...restOfProps\n }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Container\n error={error}\n shape={shape}\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n >\n <span>{value === '' ? '-' : value}</span>\n <Select {...restOfProps} aria-label={label} ref={ref} id={id} value={value}>\n <option value=\"\">-</option>\n {tableColumn.options.map(option => (\n <option key={option.id} value={option.name}>\n {option.name}\n </option>\n ))}\n </Select>\n </Container>\n </>\n )\n})\n","import { forwardRef, SyntheticEvent } from 'react'\n\nimport TableColumnRadioButtonGroup from './components/TableColumnRadioButtonGroup'\nimport TableColumnSingleSelect from './components/TableColumnSingleSelect'\n\ntype Props = {\n id: string\n name: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n label?: string\n value?: string\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n type: 'select' | 'radio'\n}\n\nexport default forwardRef<\n {\n readonly validity: {\n readonly valueMissing: boolean\n readonly typeMismatch: boolean\n }\n },\n Props\n>(function SingleSelectTableField({ type, ...restOfProps }: Props, ref) {\n return type === 'select' ? (\n // @ts-expect-error: custom ref doesn't match select element\n <TableColumnSingleSelect {...restOfProps} ref={ref} />\n ) : (\n <TableColumnRadioButtonGroup {...restOfProps} ref={ref} />\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function PhoneNumberTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"tel\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function EmailTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"email\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function URLTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"url\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function NumberTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"number\"\n error={error != null}\n />\n </>\n )\n})\n","import styled, { css } from 'styled-components'\n\nimport { useFormContext, Sizes, Shapes, Value } from '../../../../context/FormContext'\nimport { getSizeHeight as getLabelSizeHeight } from '../Label'\nimport { getSizeHeight as getInputSizeHeight } from '../Input'\nimport { getShapeBorderRadius } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\n\nconst Label = styled.div.withConfig({\n shouldForwardProp: prop => !['size'].includes(prop.toString()),\n})<Pick<Value, 'size'>>`\n display: block;\n max-width: 120px;\n min-width: 60px;\n border-radius: 2px;\n background-color: #5f49f4;\n opacity: 0.4;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n margin: calc(0.25 * ${getLabelSizeHeight(size)}px + 2px) 0;\n min-height: ${0.5 * getLabelSizeHeight(size)}px;\n max-height: ${0.5 * getLabelSizeHeight(size)}px;\n `,\n )}\n`\n\nconst Input = styled.div.withConfig({\n shouldForwardProp: prop => !['shape', 'size'].includes(prop.toString()),\n})<Pick<Value, 'shape' | 'size'>>`\n display: block;\n width: 100%;\n border-width: 2px;\n border-style: solid;\n border-color: #5f49f4;\n opacity: 0.4;\n ${props =>\n cssMediaRules(\n [props.shape, props.size] as const,\n ([shape = Shapes.ROUNDED, size = Sizes.MEDIUM]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n border-radius: ${getShapeBorderRadius(shape)}px;\n `,\n )}\n`\n\nexport default function PlaceholderTableField(): JSX.Element {\n const { size, shape } = useFormContext()\n\n return (\n <>\n <Label size={size} />\n <Input shape={shape} size={size} />\n </>\n )\n}\n","import { useRef } from 'react'\nimport { Field as FormikField, getIn } from 'formik'\n\nimport SingleLineTextTableField from './components/SingleLineTextTableField'\nimport LongTextTableField from './components/LongTextTableField'\nimport CheckboxTableField from './components/CheckboxTableField'\nimport MultipleSelectTableField from './components/MultipleSelectTableField'\nimport SingleSelectTableField from './components/SingleSelectTableField'\nimport PhoneNumberTableField from './components/PhoneNumberTableField'\nimport EmailTableField from './components/EmailTableField'\nimport URLTableField from './components/URLTableField'\nimport NumberTableField from './components/NumberTableField'\nimport PlaceholderTableField from './components/PlaceholderTableField'\nimport { TableColumn } from '../../../../hooks'\n\nfunction getTypeMismatchErrorMessage(tableColumn: TableColumn | null | undefined, label: string) {\n switch ((tableColumn || {}).__typename) {\n case 'PhoneNumberTableColumn':\n return `${label} field must be a valid phone number.`\n\n case 'EmailTableColumn':\n return `${label} field must be a valid email.`\n\n case 'URLTableColumn':\n return `${label} field must be a valid URL.`\n\n case 'NumberTableColumn':\n return `${label} field must be a valid number.`\n\n case 'SingleLineTextTableColumn':\n case 'LongTextTableColumn':\n case 'CheckboxTableColumn':\n default:\n return `${label} field is invalid.`\n }\n}\n\nfunction getTableColumnField(tableColumn: TableColumn | null | undefined) {\n switch ((tableColumn || {}).__typename) {\n case 'SingleLineTextTableColumn':\n return SingleLineTextTableField\n\n case 'LongTextTableColumn':\n return LongTextTableField\n\n case 'CheckboxTableColumn':\n return CheckboxTableField\n\n case 'MultipleSelectTableColumn':\n return MultipleSelectTableField\n\n case 'SingleSelectTableColumn':\n return SingleSelectTableField\n\n case 'PhoneNumberTableColumn':\n return PhoneNumberTableField\n\n case 'EmailTableColumn':\n return EmailTableField\n\n case 'URLTableColumn':\n return URLTableField\n\n case 'NumberTableColumn':\n return NumberTableField\n\n default:\n return SingleLineTextTableField\n }\n}\n\ntype TableFormField = {\n id: string\n tableColumnId: string\n label?: string\n placeholder?: string\n required?: boolean\n hidden?: boolean\n type?: 'select' | 'radio'\n hideLabel?: boolean\n}\n\ntype Props = {\n tableColumn: TableColumn | null | undefined\n tableFormField: TableFormField\n}\n\nexport default function Field({\n tableColumn,\n tableFormField: {\n id,\n label = '',\n placeholder,\n required = false,\n hidden = false,\n type = 'radio',\n hideLabel = false,\n },\n}: Props): JSX.Element {\n const TableColumnField = getTableColumnField(tableColumn)\n const input = useRef<\n | {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n }\n | null\n | undefined\n >(null)\n\n if (!tableColumn) return <PlaceholderTableField />\n\n function validate() {\n let errorMessage\n\n if (input.current) {\n const { validity = {} as ValidityState } = input.current\n\n if (validity.valueMissing) errorMessage = `${label} is required.`\n\n if (validity.typeMismatch) errorMessage = getTypeMismatchErrorMessage(tableColumn, label)\n }\n\n return errorMessage\n }\n\n return (\n <FormikField name={tableColumn.name} validate={validate}>\n {({ field, form }: any) =>\n hidden ? (\n <input {...field} ref={input} type=\"hidden\" />\n ) : (\n <TableColumnField\n {...field}\n type={type}\n form={form}\n tableColumn={tableColumn}\n ref={input}\n id={id}\n error={getIn(form.touched, field.name) && getIn(form.errors, field.name)}\n label={label}\n placeholder={placeholder}\n required={required}\n hideLabel={hideLabel}\n />\n )\n }\n </FormikField>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEpIj4KICAgIDxjaXJjbGUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGN4PSI5IiBjeT0iOSIgcj0iOSIgc3Ryb2tlLW9wYWNpdHk9Ii40Ii8+CiAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIGQ9Ik05IDE4QTkgOSAwIDAgMCA5IDAiLz4KICA8L2c+Cjwvc3ZnPgo=\"","import styled, { keyframes } from 'styled-components'\n\nimport { ReactComponent as Spinner20 } from '../../../../icons/spinner-20.svg'\n\nconst spin = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Icon = styled(Spinner20)`\n display: inline-flex;\n animation: ${spin} 1s linear infinite;\n stroke: currentColor;\n`\n\nexport default function Spinner(): JSX.Element {\n return <Icon />\n}\n","import { useState, useEffect, useMemo } from 'react'\nimport { getBox } from '../../box-model'\nimport { TableFormFieldsPropController } from '../../prop-controllers/instances'\nimport { useIsInBuilder } from '../../react'\n\nexport function useTableFormFieldRefs(\n propController: TableFormFieldsPropController | null | undefined,\n { fieldsCount }: { fieldsCount: number },\n): {\n container: (arg0: HTMLElement | null | undefined) => void\n items: Array<(arg0: HTMLElement | null | undefined) => void>\n} {\n const [container, setContainer] = useState<HTMLElement | null | undefined>(null)\n const [items, setItems] = useState<Array<HTMLElement | null | undefined>>(\n Array(fieldsCount + 1).fill(null),\n )\n\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (!isInBuilder) return\n\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n if (propController == null) return\n\n if (container != null) propController.tableFormLayoutChange({ layout: getBox(container) })\n\n items.map((item, index) => {\n if (item == null) return\n\n propController.tableFormFieldLayoutChange({ index, layout: getBox(item) })\n })\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }, [propController, container, items, isInBuilder])\n\n const itemRefs = useMemo(\n () =>\n Array.from({ length: fieldsCount + 1 }).map(\n (_, index) => (item: HTMLElement | null | undefined) => {\n setItems(is => [...is.slice(0, index), item, ...is.slice(index + 1)])\n },\n ),\n [fieldsCount, setItems],\n )\n\n return { container: setContainer, items: itemRefs }\n}\n","import {\n useState,\n useEffect,\n useRef,\n useMemo,\n forwardRef,\n ComponentPropsWithoutRef,\n Ref,\n useImperativeHandle,\n} from 'react'\nimport styled, { css } from 'styled-components'\nimport { Formik, getIn } from 'formik'\nimport { cx } from '@emotion/css'\n\nimport { ReactComponent as Check12 } from '../../icons/check-12.svg'\n\nimport { getSizeHeight as getInputSizeHeight } from './components/Field/components/Input'\n\nimport {\n Size,\n Sizes,\n Provider as FormContextProvider,\n Shape,\n Contrast,\n Shapes,\n Contrasts,\n} from './context/FormContext'\nimport Placeholder from './components/Placeholder'\nimport Field from './components/Field'\nimport Spinner from './components/Spinner'\nimport Button from '../Button'\nimport { TableColumn, useTable } from '../../hooks'\nimport { cssGridItem, cssMargin, cssMediaRules } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n GapYValue,\n LinkValue,\n MarginValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n TableFormFieldsDescriptor,\n TableFormFieldsValue,\n TableValue,\n TextInputValue,\n TextStyleValue,\n} from '../../../prop-controllers/descriptors'\nimport { Link } from '../../shared/Link'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\nimport { useTableFormFieldRefs } from '../../hooks/useTableFormFieldRefs'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { useMutation, gql } from '../../../api/react'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { findDeviceOverride } from '../../utils/devices'\n\nconst LOCAL_STORAGE_NAMESPACE = '@@makeswift/components/form'\n\nfunction getSizeFontSize(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 12\n\n case Sizes.MEDIUM:\n return 14\n\n case Sizes.LARGE:\n return 18\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport const Alignments = {\n LEFT: 'left',\n CENTER: 'center',\n RIGHT: 'right',\n} as const\n\nexport type Alignment = typeof Alignments[keyof typeof Alignments]\n\ntype Props = {\n id?: ElementIDValue\n tableId?: TableValue\n fields?: TableFormFieldsValue\n submitLink?: LinkValue\n gap?: GapYValue\n shape?: ResponsiveIconRadioGroupValue<Shape>\n size?: ResponsiveIconRadioGroupValue<Size>\n contrast?: ResponsiveIconRadioGroupValue<Contrast>\n labelTextStyle?: TextStyleValue\n labelTextColor?: ResponsiveColor | null\n submitTextStyle?: TextStyleValue\n brandColor?: ResponsiveColor | null\n submitTextColor?: ResponsiveColor | null\n submitLabel?: TextInputValue\n submitVariant?: ResponsiveSelectValue<\n 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n >\n submitWidth?: ResponsiveLengthValue\n submitAlignment?: ResponsiveIconRadioGroupValue<Alignment>\n width?: string\n margin?: MarginValue\n}\n\nconst GridForm = styled.form.withConfig({\n shouldForwardProp: prop => !['size', 'width', 'margin'].includes(prop),\n})<{\n size: Props['size']\n margin: Props['margin']\n}>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n ${props =>\n cssMediaRules(\n [props.size],\n ([size = Sizes.MEDIUM]) => css`\n font-size: ${getSizeFontSize(size)}px;\n `,\n )}\n ${cssMargin()}\n`\n\nconst GridItem = styled.div.withConfig({\n shouldForwardProp: prop => !['grid', 'index', 'rowGap', 'columnGap'].includes(prop),\n})`\n align-self: flex-end;\n flex-direction: column;\n ${cssGridItem()}\n`\n\nfunction getAlignmentMargin(alignment: Alignment): string {\n switch (alignment) {\n case Alignments.LEFT:\n return '0 auto 0 0'\n case Alignments.RIGHT:\n return '0 0 0 auto'\n default:\n return '0 auto'\n }\n}\n\nconst StyledButton = styled((props: ComponentPropsWithoutRef<typeof Button>) => (\n <Button {...props} as=\"button\" />\n)).withConfig({\n shouldForwardProp: prop => !['alignment'].includes(prop.toString()),\n})<{\n size: Props['size']\n alignment: Props['submitAlignment']\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n ${props =>\n cssMediaRules(\n [props.size, props.alignment] as const,\n ([size = Sizes.MEDIUM, alignment = Alignments.CENTER]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n margin: ${getAlignmentMargin(alignment)};\n padding-top: 0;\n padding-bottom: 0;\n `,\n )}\n`\n\nconst ErrorContainer = styled.div`\n padding: 8px 16px;\n background-color: #f19eb9;\n border-radius: 4px;\n margin-top: 16px;\n`\n\nconst IconContainer = styled.div`\n fill: currentColor;\n`\n\nconst ErrorMessage = styled.p`\n font-size: 12px;\n margin: 8px 0;\n color: rgba(127, 0, 0, 0.95);\n`\n\nfunction getTableColumnDefaultValue(tableColumn: TableColumn) {\n switch (tableColumn.__typename) {\n case 'CheckboxTableColumn':\n return false\n\n case 'MultipleSelectTableColumn':\n return []\n\n case 'SingleLineTextTableColumn':\n case 'LongTextTableColumn':\n case 'SingleSelectTableColumn':\n case 'PhoneNumberTableColumn':\n case 'EmailTableColumn':\n case 'URLTableColumn':\n case 'NumberTableColumn':\n default:\n return ''\n }\n}\n\nconst CREATE_TABLE_RECORD = gql`\n mutation CreateTableRecord($input: CreateTableRecordInput!) {\n createTableRecord(input: $input) {\n tableRecord {\n id\n }\n }\n }\n`\n\ntype Column = { columnId: string; data: Record<string, any> }\ntype Fields = Record<string, string | string[] | boolean>\n\ntype Descriptors = { fields?: TableFormFieldsDescriptor }\n\nconst Form = forwardRef(function Form(\n {\n id,\n tableId,\n fields: fieldsProp,\n submitLabel = 'Submit',\n submitLink,\n shape,\n size,\n contrast,\n brandColor,\n gap,\n width,\n margin,\n submitTextStyle,\n submitVariant,\n submitTextColor,\n submitWidth,\n submitAlignment,\n labelTextStyle,\n labelTextColor,\n }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const fields = useMemo(() => fieldsProp?.fields ?? [], [fieldsProp])\n const grid = useMemo(() => fieldsProp?.grid ?? [], [fieldsProp])\n const { data: { table } = {} } = useTable(tableId)\n const [createTableRecord] = useMutation(CREATE_TABLE_RECORD)\n const [refEl, setRefEl] = useState<HTMLElement | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const [initialValues, setInitialValues] = useState<Fields>(() =>\n fields.reduce((acc, formField) => {\n const tableColumn = table && table.columns.find(field => field.id === formField.tableColumnId)\n const defaultValue = formField ? formField.defaultValue : null\n\n if (tableColumn) {\n acc[tableColumn.name] =\n defaultValue == null ? getTableColumnDefaultValue(tableColumn) : defaultValue\n }\n\n return acc\n }, {} as Fields),\n )\n const controller = propControllers?.fields\n const { container, items } = useTableFormFieldRefs(controller, { fieldsCount: fields.length })\n const [isDone, setIsDone] = useState(false)\n const linkRef = useRef<HTMLAnchorElement>(null)\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n return refEl instanceof Element ? getBox(refEl) : null\n },\n setPropControllers,\n }),\n [refEl, setPropControllers],\n )\n\n useEffect(() => {\n container(refEl)\n }, [container, refEl])\n\n useEffect(() => {\n if (!isDone) return\n\n let timeoutId = setTimeout(() => setIsDone(false), 2500)\n\n return () => clearTimeout(timeoutId)\n }, [isDone])\n\n function getTableColumn({ tableColumnId }: any) {\n return table && table.columns.find(field => tableColumnId === field.id)\n }\n\n async function handleSubmit(values: any, { setSubmitting, resetForm, setStatus }: any) {\n if (table) {\n const columns: Column[] = []\n\n fields.forEach(field => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data) {\n columns.push({ columnId: field.tableColumnId, data })\n\n if (field.autofill) {\n localStorage.setItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n JSON.stringify(data),\n )\n }\n }\n }\n })\n\n try {\n await createTableRecord({\n variables: { input: { data: { tableId: table.id, columns } } },\n })\n setIsDone(true)\n setInitialValues(prev =>\n fields.reduce(\n (acc, field) => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data && field.autofill) return { ...acc, [tableColumn.name]: data }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n resetForm()\n\n if (linkRef.current != null) linkRef.current.click()\n } catch (error) {\n setStatus({ error: 'An unexpected error has occurred, please try again later' })\n } finally {\n setSubmitting(false)\n }\n }\n }\n\n useEffect(() => {\n setInitialValues(prev =>\n fields.reduce(\n (acc, formField) => {\n const tableColumn =\n table && table.columns.find(field => field.id === formField.tableColumnId)\n\n if (tableColumn && formField.autofill) {\n const storedValue = localStorage.getItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n )\n\n if (storedValue) {\n try {\n acc[tableColumn.name] = JSON.parse(storedValue)\n } catch (e) {\n // Ignore\n }\n }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n }, [fields, table])\n\n return (\n <FormContextProvider\n value={{ shape, size, contrast, brandColor, labelTextStyle, labelTextColor }}\n >\n {tableId == null ? (\n <Placeholder ref={setRefEl} className={cx(width)} margin={margin} />\n ) : (\n <>\n <Formik\n onSubmit={handleSubmit}\n initialValues={initialValues}\n initialStatus={{ error: null }}\n enableReinitialize\n >\n {formik => {\n const error = formik.status && formik.status.error\n const errors = fields\n .map(field => {\n const tableColumn = getTableColumn(field)\n\n return (\n tableColumn &&\n getIn(formik.touched, tableColumn.name) &&\n getIn(formik.errors, tableColumn.name)\n )\n })\n .filter(message => typeof message === 'string')\n\n return (\n <>\n <GridForm\n ref={setRefEl}\n id={id}\n className={cx(width)}\n margin={margin}\n size={size}\n onSubmit={formik.handleSubmit}\n onReset={formik.handleReset}\n noValidate\n >\n {fields.map((field, index) => {\n const tableColumn = getTableColumn(field)\n\n return (\n <GridItem\n key={field.id}\n ref={items[index]}\n grid={grid}\n index={index}\n rowGap={gap}\n columnGap={gap}\n >\n <Field tableColumn={tableColumn} tableFormField={field} />\n </GridItem>\n )\n })}\n <GridItem\n ref={items[fields.length]}\n grid={grid}\n index={fields.length}\n rowGap={gap}\n columnGap={gap}\n >\n <StyledButton\n type=\"submit\"\n disabled={formik.isSubmitting || isDone}\n shape={shape}\n size={size}\n color={brandColor}\n variant={submitVariant}\n textColor={submitTextColor}\n width={submitWidth}\n alignment={submitAlignment}\n textStyle={submitTextStyle}\n >\n {formik.isSubmitting ? (\n <Spinner />\n ) : isDone ? (\n <IconContainer>\n <Check12 />\n </IconContainer>\n ) : (\n submitLabel\n )}\n </StyledButton>\n {(errors.length > 0 || error) && (\n <ErrorContainer>\n {errors.map(message => (\n <ErrorMessage key={message}>{message}</ErrorMessage>\n ))}\n {error != null && <ErrorMessage>{error}</ErrorMessage>}\n </ErrorContainer>\n )}\n </GridItem>\n </GridForm>\n {submitLink != null && <Link ref={linkRef} hidden link={submitLink} />}\n </>\n )\n }}\n </Formik>\n </>\n )}\n </FormContextProvider>\n )\n})\n\nexport default Form\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Form, {\n type: './components/Form/index.js',\n label: 'Form',\n icon: 'Form40',\n props: {\n id: Props.ElementID(),\n tableId: Props.Table(),\n fields: Props.TableFormFields(),\n submitLink: Props.Link(props => ({\n label: 'Redirect to',\n // TODO: This option is hardcoded. We should import it from LinkPanelOptions\n options: [\n { value: 'OPEN_PAGE', label: 'Open page' },\n { value: 'OPEN_URL', label: 'Open URL' },\n ],\n hidden: props.tableId == null,\n })),\n gap: Props.GapY(props => ({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Gap',\n defaultValue: { value: 0, unit: 'px' },\n hidden: props.tableId == null,\n })),\n shape: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Shape',\n options: [\n { label: 'Pill', value: Shapes.PILL, icon: 'ButtonPill16' },\n { label: 'Rounded', value: Shapes.ROUNDED, icon: 'ButtonRounded16' },\n { label: 'Square', value: Shapes.SQUARE, icon: 'ButtonSquare16' },\n ],\n defaultValue: Shapes.ROUNDED,\n hidden: props.tableId == null,\n })),\n size: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Size',\n options: [\n { label: 'Small', value: Sizes.SMALL, icon: 'SizeSmall16' },\n { label: 'Medium', value: Sizes.MEDIUM, icon: 'SizeMedium16' },\n { label: 'Large', value: Sizes.LARGE, icon: 'SizeLarge16' },\n ],\n defaultValue: Sizes.MEDIUM,\n hidden: props?.tableId == null,\n })),\n contrast: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Color',\n options: [\n { label: 'Light mode', value: Contrasts.LIGHT, icon: 'Sun16' },\n { label: 'Dark mode', value: Contrasts.DARK, icon: 'Moon16' },\n ],\n defaultValue: Contrasts.LIGHT,\n hidden: props.tableId == null,\n })),\n labelTextStyle: Props.TextStyle({ label: 'Label text style' }),\n labelTextColor: Props.ResponsiveColor((props, device) => {\n const hidden = props.tableId == null\n const responsiveContrast = props.contrast as ResponsiveValue<Contrast>\n const contrast = findDeviceOverride<Contrast>(responsiveContrast, device)\n\n return {\n hidden,\n label: 'Label text color',\n placeholder:\n contrast?.value === Contrasts.DARK ? 'rgba(255,255,255,0.95)' : 'rgba(0,0,0,0.8)',\n }\n }),\n submitTextStyle: Props.TextStyle({ label: 'Button text style' }),\n brandColor: Props.ResponsiveColor(props => ({\n label: 'Button color',\n placeholder: 'black',\n hidden: props.tableId == null,\n // TODO: Add hideAlphaSlider\n })),\n submitTextColor: Props.ResponsiveColor(props => ({\n label: 'Button text color',\n placeholder: 'white',\n hidden: props.tableId == null,\n })),\n submitLabel: Props.TextInput(props => ({\n label: 'Button label',\n placeholder: 'Submit',\n hidden: props.tableId == null,\n })),\n submitVariant: Props.ResponsiveSelect(props => ({\n label: 'Button style',\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 hidden: props.tableId == null,\n })),\n submitWidth: Props.ResponsiveLength(props => ({\n label: 'Button width',\n hidden: props.tableId == null,\n // TODO: Add placeholder: { value: 'auto' }\n })),\n submitAlignment: Props.ResponsiveIconRadioGroup(props => ({\n label: 'Button alignment',\n options: [\n { label: 'Left', value: Alignments.LEFT, icon: 'AlignLeft16' },\n { label: 'Center', value: Alignments.CENTER, icon: 'AlignCenter16' },\n { label: 'Right', value: Alignments.RIGHT, icon: 'AlignRight16' },\n ],\n defaultValue: Alignments.CENTER,\n hidden: props.tableId == null,\n })),\n width: Props.Width({\n format: Props.Width.Formats.ClassName,\n preset: [{ deviceId: 'desktop', value: { value: 550, unit: 'px' } }],\n defaultValue: { value: 100, unit: '%' },\n }),\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.withConfig({\n shouldForwardProp: prop => !['width', 'button'].includes(prop.toString()),\n})<{ 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 } 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, 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 { useResponsiveColor } from '../../../../hooks'\n\nimport { Link } from '../../../../shared/Link'\nimport Button from '../../../Button'\nimport { useIsomorphicLayoutEffect } from '../../../../hooks/useIsomorphicLayoutEffect'\n\nconst DROP_DOWN_MENU_WIDTH = 200\n\ntype Position = 'left' | 'right'\n\nconst DropDownMenu = styled.div.withConfig({\n shouldForwardProp: prop => !['position'].includes(prop.toString()),\n})<{ 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).withConfig({\n shouldForwardProp: prop => !['color', 'textStyle'].includes(prop.toString()),\n})<{\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 ${cssTextStyle()}\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={useResponsiveColor(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 textColor,\n color,\n ...restOfProps\n}: Props): JSX.Element {\n const container = useRef<HTMLDivElement>(null)\n const [position, setPosition] = useState<Position>('left')\n\n useIsomorphicLayoutEffect(() => {\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\n {...restOfProps}\n textColor={useResponsiveColor(textColor)}\n color={useResponsiveColor(color)}\n >\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 { useResponsiveColor } 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.withConfig({\n shouldForwardProp: prop => !['open'].includes(prop.toString()),\n})<{ 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).withConfig({\n shouldForwardProp: prop => !['textStyle', 'color'].includes(prop.toString()),\n})<{\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={useResponsiveColor(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 color,\n textColor,\n ...restOfProps\n}: Props): JSX.Element {\n const [isOpen, setIsOpen] = useState(false)\n return (\n <>\n <ButtonLink\n {...restOfProps}\n textColor={useResponsiveColor(textColor)}\n color={useResponsiveColor(color)}\n onPointerDown={() => setIsOpen(prev => !prev)}\n >\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 { ComponentPropsWithoutRef, Fragment } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n NavigationLinksValue,\n NavigationButton as NavigationButtonValue,\n} from '../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport { ReactComponent as Times16 } from '../../../../icons/times-16.svg'\n\nimport Button from '../../../Button'\nimport DropDownButton from './components/MobileDropDownButton'\nimport { ResponsiveColor } from '../../../../../runtimes/react/controls'\nimport { useResponsiveColor } from '../../../../hooks'\n\ntype NavigationButtonProps = NavigationButtonValue['payload'] &\n Omit<ComponentPropsWithoutRef<typeof Button>, 'color' | 'textColor'>\n\nfunction NavigationButton(props: NavigationButtonProps): JSX.Element {\n const { textColor, color, ...restOfProps } = props\n\n return (\n <Button\n {...restOfProps}\n textColor={useResponsiveColor(textColor)}\n color={useResponsiveColor(color)}\n />\n )\n}\n\nconst ButtonLink = styled(NavigationButton)`\n margin: 8px 0;\n`\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['animation', 'backgroundColor', 'open'].includes(prop.toString()),\n})<{\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.withConfig({\n shouldForwardProp: prop => !['color'].includes(prop.toString()),\n})<{ 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?: ResponsiveColor | null\n closeIconColor?: ResponsiveColor | null\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={backgroundColor} open={open}>\n {/* @ts-expect-error: HTMLButtonElement `color` attribute conflicts with prop */}\n <CloseIconContainer color={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 { ComponentPropsWithoutRef, forwardRef, useState } from 'react'\nimport styled, { css } from 'styled-components'\nimport { cx } from '@emotion/css'\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 ResponsiveIconRadioGroupValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n TextInputValue,\n TextStyleValue,\n NavigationButton as NavigationButtonValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssMargin, cssMediaRules, cssTextStyle } from '../../utils/cssMediaRules'\nimport { ColorValue as Color } from '../../utils/types'\nimport { colorToString } from '../../utils/colorToString'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { findDeviceOverride } from '../../utils/devices'\nimport { useResponsiveColor } from '../../hooks'\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?: ResponsiveColor | null\n mobileMenuCloseIconColor?: ResponsiveColor | null\n mobileMenuBackgroundColor?: ResponsiveColor | null\n width?: string\n margin?: MarginValue\n}\n\nconst Container = styled.nav.withConfig({\n shouldForwardProp: prop => !['margin', 'textStyle', 'gutter'].includes(prop.toString()),\n})<{\n margin: Props['margin']\n textStyle: Props['linkTextStyle']\n gutter: Props['gutter']\n}>`\n display: flex;\n align-items: center;\n ${cssMargin()}\n ${cssTextStyle()}\n ${p =>\n cssMediaRules(\n [p.gutter] as const,\n ([gutter = { value: 0, unit: 'px' }]) => css`\n gap: ${gutter.value}${gutter.unit};\n `,\n )}\n`\n\nconst LinksContainer = styled.div.withConfig({\n shouldForwardProp: prop => !['alignment', 'mobileMenuAnimation'].includes(prop.toString()),\n})<{\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.withConfig({\n shouldForwardProp: prop =>\n !['mobileMenuAnimation', 'alignment', 'color'].includes(prop.toString()),\n})<{\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\ntype NavigationButtonProps = NavigationButtonValue['payload'] &\n Omit<ComponentPropsWithoutRef<typeof Button>, 'color' | 'textColor'>\n\nfunction NavigationButton(props: NavigationButtonProps): JSX.Element {\n const { textColor, color, ...restOfProps } = props\n\n return (\n <Button\n {...restOfProps}\n textColor={useResponsiveColor(textColor)}\n color={useResponsiveColor(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\n ref={ref}\n id={id}\n className={cx(width)}\n margin={margin}\n textStyle={linkTextStyle}\n gutter={gutter}\n >\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' && (\n <NavigationButton {...link.payload}>{link.payload.label}</NavigationButton>\n )}\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={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(props => {\n const links = props.links as NavigationLinksValue\n\n return {\n label: 'Link text style',\n hidden: links == null || links.length === 0,\n }\n }),\n showLogo: Props.Checkbox({ preset: true, label: 'Show logo' }),\n logoFile: Props.Image(props => ({\n label: 'Logo',\n hidden: props.showLogo === false,\n })),\n logoWidth: Props.ResponsiveLength(props => ({\n preset: [{ deviceId: 'desktop', value: { value: 100, unit: 'px' } }],\n label: 'Logo width',\n min: 0,\n max: 1000,\n // TODO: This is hardcoded value, import it from LengthInputOptions\n options: [{ value: 'px', label: 'Pixels', icon: 'Px16' }],\n hidden: props.showLogo === false,\n })),\n logoAltText: Props.TextInput(props => ({\n label: 'Logo alt text',\n hidden: props.showLogo === false,\n })),\n logoLink: Props.Link(props => ({\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((props, device) => {\n const mobileMenuAnimation = props.mobileMenuAnimation as ResponsiveValue<string>\n const hidden = !findDeviceOverride(mobileMenuAnimation, device)\n\n return {\n label: 'Open icon color',\n placeholder: 'rgba(161, 168, 194, 0.5)',\n hidden,\n }\n }),\n mobileMenuCloseIconColor: Props.ResponsiveColor((props, device) => {\n const mobileMenuAnimation = props.mobileMenuAnimation as ResponsiveValue<string>\n const hidden = !findDeviceOverride(mobileMenuAnimation, device)\n\n return {\n label: 'Close icon color',\n placeholder: 'rgba(161, 168, 194, 0.5)',\n hidden,\n }\n }),\n mobileMenuBackgroundColor: Props.ResponsiveColor((props, device) => {\n const mobileMenuAnimation = props.mobileMenuAnimation as ResponsiveValue<string>\n const hidden = !findDeviceOverride(mobileMenuAnimation, device)\n\n return {\n label: 'Menu BG color',\n placeholder: 'black',\n hidden,\n }\n }),\n width: Props.Width({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 100, unit: '%' },\n }),\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.withConfig({\n shouldForwardProp: prop => !['grid', 'index', 'rowGap', 'columnGap'].includes(prop.toString()),\n})`\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'\nimport { cx } from '@emotion/css'\n\nimport { Link } from '../../shared/Link'\nimport { cssMediaRules, cssMargin } from '../../utils/cssMediaRules'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\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 GapXValue,\n MarginValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\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?: ResponsiveColor | null\n backgroundColor?: ResponsiveColor | null\n alignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gutter?: GapXValue\n width?: string\n margin?: MarginValue\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['width', 'margin', 'alignment'].includes(prop.toString()),\n})<{\n margin: Props['margin']\n alignment: Props['alignment']\n}>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\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).withConfig({\n shouldForwardProp: prop =>\n !['brandColor', 'shape', 'size', 'hoverStyle', 'fill', 'backgroundColor'].includes(\n prop.toString(),\n ),\n})<{\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 return (\n <Container ref={ref} id={id} className={cx(width)} alignment={alignment} 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={backgroundColor}\n brandColor={option.brandColor}\n fill={fill}\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(props => {\n const links = props.links as SocialLinksValue\n\n return {\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 }),\n size: Props.ResponsiveIconRadioGroup(props => {\n const links = props.links as SocialLinksValue\n\n return {\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 }),\n hoverStyle: Props.ResponsiveSelect(props => {\n const links = props.links as SocialLinksValue\n const hidden = links == null || links.links.length === 0\n\n return {\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,\n }\n }),\n fill: Props.ResponsiveColor(props => {\n const links = props.links as SocialLinksValue\n const hidden = links == null || links.links.length === 0\n\n return {\n label: 'Icon color',\n hidden,\n }\n }),\n backgroundColor: Props.ResponsiveColor(props => {\n const links = props.links as SocialLinksValue\n const hidden = links == null || links.links.length === 0\n\n return {\n label: 'Shape color',\n hidden,\n }\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({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 100, unit: '%' },\n }),\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'\nimport { cx } from '@emotion/css'\nimport { isHotkey } from 'is-hotkey'\n\nimport {\n ElementIDValue,\n MarginValue,\n RichTextDescriptor,\n RichTextValue,\n} from '../../../prop-controllers/descriptors'\nimport { 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?: string\n margin?: MarginValue\n}\n\nconst StyledRichTextEditor = styled(RichTextEditor).withConfig({\n shouldForwardProp: prop => !['margin'].includes(prop.toString()),\n})<{ margin: Props['margin'] }>`\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 !== value) {\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 if (isHotkey('escape')(event)) {\n lastController.current?.blur()\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 className={cx(width)}\n readOnly={!isInBuilder}\n margin={margin}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n // Workaround for: clicking on any of the text panel will remove the text selection.\n onBlur={e => e.preventDefault()}\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 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 format: Props.Width.Formats.ClassName,\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","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport ReactPlayer from 'react-player'\nimport { cx } from '@emotion/css'\n\nimport {\n BorderRadiusValue,\n ElementIDValue,\n MarginValue,\n VideoValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssBorderRadius, cssMargin } from '../../utils/cssMediaRules'\nimport { placeholders } from '../../utils/placeholders'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n video?: VideoValue\n width?: string\n margin?: MarginValue\n borderRadius?: BorderRadiusValue\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['margin', 'borderRadius'].includes(prop.toString()),\n})<{ margin: Props['margin']; borderRadius: Props['borderRadius'] }>`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n ${cssMargin()}\n ${cssBorderRadius()}\n`\n\nconst ASPECT_RATIO = 16 / 9\n\nconst Video = forwardRef(function Video(\n { id, video, width, margin, borderRadius }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const canPlayUrl = video && video.url != null && ReactPlayer.canPlay(video.url)\n\n return (\n <Container ref={ref} id={id} className={cx(width)} margin={margin} borderRadius={borderRadius}>\n <div style={{ position: 'relative', paddingTop: `${100 / ASPECT_RATIO}%` }}>\n <div style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>\n {canPlayUrl === true ? (\n <ReactPlayer\n {...video}\n width=\"100%\"\n height=\"100%\"\n config={{\n vimeo: { playerOptions: { background: video != null && !video.controls } },\n wistia: {\n options: {\n endVideoBehavior: video != null && video.loop === true ? 'loop' : 'default',\n },\n },\n }}\n />\n ) : (\n <img width=\"100%\" src={placeholders.video.src} alt=\"Video Placeholder\" />\n )}\n </div>\n </div>\n </Container>\n )\n})\n\nexport default Video\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Video, {\n type: './components/Video/index.js',\n label: 'Video',\n icon: 'Video40',\n props: {\n id: Props.ElementID(),\n video: Props.Video({ preset: { controls: true } }),\n width: Props.Width({\n format: Props.Width.Formats.ClassName,\n defaultValue: { value: 560, unit: 'px' },\n }),\n margin: Props.Margin(),\n borderRadius: Props.BorderRadius(),\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 Form } from './Form'\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 registerFormComponent } from './Form'\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'\nimport { registerComponent as registerVideoComponent } from './Video'\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 unregisterFormComponent = registerFormComponent(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 const unregisterVideoComponent = registerVideoComponent(runtime)\n\n return () => {\n unregisterBoxComponent()\n unregisterButtonComponent()\n unregisterCarouselComponent()\n unregisterCountdownComponent()\n unregisterDividerComponent()\n unregisterEmbedComponent()\n unregisterFormComponent()\n unregisterImageComponent()\n unregisterNavigationComponent()\n unregisterRootComponent()\n unregisterSocialLinksComponent()\n unregisterTextComponent()\n unregisterTextComponent()\n unregisterVideoComponent()\n }\n}\n","import { useEffect } from 'react'\n\nconst SCRIPT_TAG = 'script'\n\ntype Props = {\n code: string\n cleanup: string | null | undefined\n}\n\nexport function BodySnippet({ code, cleanup }: Props): null {\n useEffect(() => {\n const container = document.createElement('div')\n\n container.innerHTML = code\n\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT)\n const scripts: HTMLScriptElement[] = []\n\n while (walker.nextNode()) {\n if (walker.currentNode instanceof HTMLScriptElement) scripts.push(walker.currentNode)\n }\n\n scripts.forEach(inlineScript => {\n const executableScript = document.createElement(SCRIPT_TAG)\n\n executableScript.textContent = inlineScript.textContent\n Array.from(inlineScript.attributes).forEach(({ name, value }) => {\n executableScript.setAttribute(name, value)\n })\n\n inlineScript.parentNode?.replaceChild(executableScript, inlineScript)\n })\n\n const nodes = Array.from(container.childNodes)\n\n document.body.append(...nodes)\n\n return () => {\n nodes.forEach(node => {\n node.parentNode?.removeChild(node)\n })\n\n if (cleanup == null) return\n\n const cleanUp = new Function(cleanup)\n\n try {\n cleanUp()\n } catch {\n // Ignore errors from user input.\n }\n }\n }, [code, cleanup])\n\n return null\n}\n","export default function is(x: unknown, y: unknown): boolean {\n if (x === y) return x !== 0 || y !== 0 || 1 / x === 1 / y\n\n return x !== x && y !== y\n}\n","import is from './is'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst shallowEqual = (a: unknown, b: unknown): boolean => {\n if (is(a, b)) return true\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) return false\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) return false\n\n for (let i = 0; i < keysA.length; i += 1) {\n // @ts-expect-error: {}[string] is OK.\n if (!hasOwnProperty.call(b, keysA[i]) || !is(a[keysA[i]], b[keysA[i]])) return false\n }\n\n return true\n}\n\nexport default shallowEqual\n","import shallowEqual from './shallowEqual'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst deepEqual = (a: unknown, b: unknown): boolean => {\n if (shallowEqual(a, b)) return true\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) return false\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) return false\n\n for (let i = 0; i < keysA.length; i += 1) {\n if (\n !hasOwnProperty.call(b, keysA[i]) ||\n // @ts-expect-error: {}[string] is OK.\n !deepEqual(a[keysA[i]], b[keysA[i]])\n )\n return false\n }\n\n return true\n}\n\nexport default deepEqual\n","import { ReactElement, Children, createElement, useMemo, useEffect, useRef, useState } from 'react'\nimport parse from 'html-react-parser'\nimport Head from 'next/head'\n\nimport { BodySnippet } from './BodySnippet'\nimport { DocumentReference } from '../../runtimes/react'\nimport { createDocumentReference } from '../../state/react-page'\nimport { useQuery, gql } from '../../api/react'\nimport { useIsInBuilder } from '../../react'\nimport deepEqual from '../../utils/deepEqual'\n\nenum SnippetLocation {\n Body = 'BODY',\n Head = 'HEAD',\n}\n\ntype Snippet = {\n builderEnabled: boolean\n cleanup?: string | null\n code: string\n id: string\n liveEnabled: boolean\n location: SnippetLocation\n}\n\nexport type PageData = {\n id: string\n meta: {\n title?: string | null | undefined\n description?: string | null | undefined\n keywords?: string | null | undefined\n socialImage?: { id: string; publicUrl: any; mimetype: any } | null | undefined\n favicon?: { id: string; publicUrl: any; mimetype: any } | null | undefined\n }\n snippets: Snippet[]\n fonts: Array<{\n family: string\n variants: string[]\n }>\n seo: {\n canonicalUrl?: string | null | undefined\n isIndexingBlocked?: boolean | null | undefined\n }\n site: {\n id: string\n }\n}\n\nconst defaultFavicon = {\n mimetype: 'image/png',\n publicUrl:\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAABcRAAAXEQHKJvM/AAABjElEQVRYhc2XzU3EMBCFB8TddAAXn6EE6GCpgNABZ1/IXnymBOgAOmA7YM8+ABVsXEHQQFaKQryeN3Yk3ilKJtEnv/nLUd/3pFG0riGi88yrnQn+UfJ5FUi0riWiB2H4nQn+KRd0DFP8agXEfkqCYJBoHdtxIQxfm+DfFgEhoith3NYE30o/qgGR2BJB+xY7kdYEL8oNFUi0jiFMJuxVWrJqEMFxsyUNCsE6AeNztvBp7aJ143vXksoRnwhYtmNdSoIQa6RlO9YXEWW7KgoCleOgxgTf1QZBT+RZ2lXFING6UxCCq+ceeUE8fYdknY599v9sJvzGBP+yCEgC7GPmETc0OJ+0awAlkhe2pAbIXAeFZ8xe2g2Nk3c3ub0xwWt6zY9qbmiqGVMbZK21ZC/YmhlbeBMTzZNDQqcvDb1kM1x32iqZSt1HaqukfKvq34BAOTLsrH+ETNmUkKHHA+428RgeclPVWozeSyAI2EdWB34jtqXNTAySOY3i/KgFIlqOa4GkFmBegorzg4joG07he/M7zl6jAAAAAElFTkSuQmCC',\n}\n\n// Taken from https://github.com/facebook/react/blob/14bac6193a334eda42e727336e8967419f08f5df/packages/react-dom/src/server/ReactPartialRenderer.js#L208\nconst VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_.\\-\\d]*$/\n\nconst VALID_HEAD_ELEMENT_TYPES = [\n 'title',\n 'base',\n 'link',\n 'style',\n 'meta',\n 'script',\n 'noscript',\n 'template',\n]\n\nfunction snippetToElement(snippet: Pick<Snippet, 'id' | 'code'>): (string | ReactElement)[] {\n return Children.map(parse(snippet.code), element => {\n if (typeof element === 'string') return element\n\n if (!VALID_TAG_REGEX.test(element.type)) return null\n\n const key = element.key ? `${snippet.id}:${element.key}` : snippet.id\n\n return createElement(element.type, { ...element.props, key })\n })\n}\n\nconst filterUsedSnippetProperties = ({\n code,\n builderEnabled,\n liveEnabled,\n location,\n cleanup,\n}: Snippet) => ({\n code,\n builderEnabled,\n liveEnabled,\n location,\n cleanup,\n})\n\ntype Props = {\n page: PageData\n preview?: boolean\n}\n\nexport const PAGE_SNIPPETS_QUERY = gql`\n query PageById($id: ID!) {\n page(id: $id) {\n __typename\n id\n snippets {\n __typename\n id\n name\n code\n cleanup\n location\n shouldAddToNewPages\n liveEnabled\n builderEnabled\n }\n }\n }\n`\n\nexport type SiteFontsSiteQuery = {\n site?: {\n id: string\n googleFonts: {\n edges: Array<{\n activeVariants: Array<{ specifier: string }>\n node: {\n family: string\n variants: Array<{ specifier: string }>\n }\n } | null>\n }\n } | null\n}\n\nexport const SITE_FONTS_QUERY = gql`\n query SiteById($id: ID!) {\n site(id: $id) {\n id\n googleFonts {\n edges {\n activeVariants {\n specifier\n }\n node {\n family\n variants {\n specifier\n }\n }\n }\n }\n }\n }\n`\n\nexport function Page({ page, preview = false }: Props): JSX.Element {\n const isInBuilder = useIsInBuilder()\n const [snippets, setSnippets] = useState(page.snippets)\n // We're using useQuery here for page snippets and site fonts so that anytime the user change\n // the snippets or fonts on the builder, the change would be reflected here.\n // See this PR for discussions and things we can do to improve it in the future:\n // https://github.com/makeswift/makeswift/pull/77\n useQuery<{ page: { snippets: Snippet[] } }>(PAGE_SNIPPETS_QUERY, {\n variables: { id: page.id },\n skip: isInBuilder === false,\n fetchPolicy: 'cache-only',\n onCompleted(data) {\n if (data == null) return\n\n const oldSnippets = snippets.map(filterUsedSnippetProperties)\n const newSnippets = data.page.snippets.map(filterUsedSnippetProperties)\n\n if (deepEqual(newSnippets, oldSnippets)) return\n\n setSnippets(data.page.snippets)\n },\n })\n const { data: siteData } = useQuery<SiteFontsSiteQuery>(SITE_FONTS_QUERY, {\n variables: { id: page.site.id },\n skip: isInBuilder === false,\n fetchPolicy: 'cache-only',\n })\n\n const favicon = page.meta.favicon ?? defaultFavicon\n const { title, description, keywords, socialImage } = page.meta\n const { canonicalUrl, isIndexingBlocked } = page.seo\n\n const fontFamilyParamValue = useMemo(() => {\n if (siteData?.site == null) {\n return page.fonts\n .map(({ family, variants }) => {\n return `${family.replace(/ /g, '+')}:${variants.join()}`\n })\n .join('|')\n }\n\n return siteData.site.googleFonts.edges\n .filter((edge): edge is NonNullable<typeof edge> => edge != null)\n .map(({ activeVariants, node: { family, variants } }) => {\n const activeVariantSpecifiers = variants\n .filter(variant =>\n activeVariants.some(activeVariant => activeVariant.specifier === variant.specifier),\n )\n .map(variant => variant.specifier)\n .join()\n\n return `${family.replace(/ /g, '+')}:${activeVariantSpecifiers}`\n })\n .join('|')\n }, [siteData, page])\n\n const filteredSnippets = useMemo(\n () => snippets.filter(snippet => (preview ? snippet.builderEnabled : snippet.liveEnabled)),\n [snippets],\n )\n const headSnippets = useMemo(\n () => filteredSnippets.filter(snippet => snippet.location === SnippetLocation.Head),\n [filteredSnippets],\n )\n\n const previousHeadSnippets = useRef<PageData['snippets'] | null>(null)\n useEffect(() => {\n const headSnippetsToCleanUp = (previousHeadSnippets.current ?? [])\n .filter(previousSnippet => previousSnippet.cleanup != null)\n .filter(previousSnippet => !headSnippets.some(snippet => previousSnippet.id === snippet.id))\n\n headSnippetsToCleanUp.forEach(snippetToCleanUp => {\n if (snippetToCleanUp.cleanup == null) return\n\n const cleanUp = new Function(snippetToCleanUp.cleanup)\n\n try {\n cleanUp()\n } catch {\n // Ignore errors from user input.\n }\n })\n\n previousHeadSnippets.current = headSnippets\n }, [headSnippets])\n\n return (\n <>\n <Head>\n <style>\n {`\n html {\n font-family: sans-serif;\n }\n div#__next {\n overflow: hidden;\n }\n `}\n </style>\n\n <link rel=\"icon\" type={favicon.mimetype} href={favicon.publicUrl} />\n\n {canonicalUrl && <link rel=\"canonical\" href={canonicalUrl} />}\n\n {isIndexingBlocked && <meta name=\"robots\" content=\"noindex\" />}\n\n {title && (\n <>\n <title>{title}</title>\n <meta property=\"og:title\" content={title} />\n <meta name=\"twitter:title\" content={title} />\n <meta itemProp=\"name\" content={title} />\n </>\n )}\n\n {description && (\n <>\n <meta name=\"description\" content={description} />\n <meta property=\"og:description\" content={description} />\n <meta name=\"twitter:description\" content={description} />\n <meta itemProp=\"description\" content={description} />\n </>\n )}\n\n {keywords && <meta name=\"keywords\" content={keywords} />}\n\n {socialImage && (\n <>\n <meta property=\"og:image\" content={socialImage.publicUrl} />\n <meta property=\"og:image:type\" content={socialImage.publicUrl} />\n <meta name=\"twitter:image\" content={socialImage.publicUrl} />\n <meta name=\"twitter:card\" content={socialImage.publicUrl} />\n <meta itemProp=\"image\" content={socialImage.publicUrl} />\n </>\n )}\n\n {fontFamilyParamValue !== '' && (\n <>\n <link\n rel=\"stylesheet\"\n href={`https://fonts.googleapis.com/css?family=${fontFamilyParamValue}&display=swap`}\n />\n </>\n )}\n\n {headSnippets.map(snippetToElement).map(children =>\n Children.map(children, child => {\n if (typeof child === 'string') return child\n\n if (VALID_HEAD_ELEMENT_TYPES.includes(child.type as string)) return child\n\n return null\n }),\n )}\n </Head>\n\n <DocumentReference documentReference={createDocumentReference(page.id)} />\n\n {filteredSnippets\n .filter(snippet => snippet.location === SnippetLocation.Body)\n .map(snippet => (\n <BodySnippet key={snippet.id} code={snippet.code} cleanup={snippet.cleanup} />\n ))}\n </>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yLjg5ODY0IDE4SDE3LjEwMTRDMTguNDE4MyAxOCAxOS4yNjMzIDE2LjYwMDMgMTguNjUgMTUuNDM0OUwxMS41NDg2IDEuOTQyMzZDMTAuODkyNSAwLjY5NTc3IDkuMTA3NDkgMC42OTU3NjYgOC40NTEzOSAxLjk0MjM2TDEuMzUwMDMgMTUuNDM0OUMwLjczNjY5MiAxNi42MDAzIDEuNTgxNzQgMTggMi44OTg2NCAxOFpNOSA2QzkgNS40NDc3MiA5LjQ0NzcxIDUgMTAgNUMxMC41NTIzIDUgMTEgNS40NDc3MiAxMSA2VjExQzExIDExLjU1MjMgMTAuNTUyMyAxMiAxMCAxMkM5LjQ0NzcxIDEyIDkgMTEuNTUyMyA5IDExVjZaTTExLjI1IDE0Ljc1QzExLjI1IDE1LjQ0MDQgMTAuNjkwNCAxNiAxMCAxNkM5LjMwOTY0IDE2IDguNzUgMTUuNDQwNCA4Ljc1IDE0Ljc1QzguNzUgMTQuMDU5NiA5LjMwOTY0IDEzLjUgMTAgMTMuNUMxMC42OTA0IDEzLjUgMTEuMjUgMTQuMDU5NiAxMS4yNSAxNC43NVoiIC8+Cjwvc3ZnPgo=\"","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport { ReactComponent as Warning20 } from '../../icons/warning-20.svg'\n\nconst ErrorDiv = styled('div')`\n width: 100%;\n height: 54px;\n background-color: #fcedf2;\n border-radius: 6px;\n padding: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #c73e6d;\n fill: currentColor;\n font-family: Heebo, sans-serif;\n font-size: 16px;\n`\n\ntype Props = {\n text: string\n}\n\nexport const FallbackComponent = forwardRef(function FallbackComponent(\n { text }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <ErrorDiv ref={ref}>\n <Warning20 />\n <span>{text}</span>\n </ErrorDiv>\n )\n})\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import * as React from 'react'\nimport { css, cache, CSSObject } from '@emotion/css'\nimport { serializeStyles } from '@emotion/serialize'\nimport { insertStyles } from '@emotion/utils'\n\nimport { useBorder, BorderSide } from '../../../components'\nimport { colorToString } from '../../../components/utils/colorToString'\nimport { responsiveStyle } from '../../../components/utils/responsive-style'\n\nimport {\n BorderRadiusLonghandPropertyData,\n MarginLonghandPropertyData,\n PaddingLonghandPropertyData,\n StyleControlData,\n StyleControlDefinition,\n StyleControlProperty,\n WidthPropertyData,\n} from '../../../controls'\n\nfunction useStyleControlCssObject(\n style: StyleControlData | undefined,\n controlDefinition: StyleControlDefinition,\n): CSSObject {\n const { properties } = controlDefinition.config\n\n return {\n ...(properties.includes(StyleControlProperty.Width) && {\n maxWidth: '100%',\n }),\n ...responsiveStyle(\n [\n style?.width,\n style?.margin,\n style?.padding,\n useBorder(style?.border),\n style?.borderRadius,\n ] as const,\n ([width, margin, padding, border, borderRadius]) => ({\n ...(properties.includes(StyleControlProperty.Width) && {\n width: widthToString(width) ?? '100%',\n }),\n ...(properties.includes(StyleControlProperty.Margin) && {\n marginTop: marginToString(margin?.marginTop) ?? 0,\n marginRight: marginToString(margin?.marginRight) ?? 'auto',\n marginBottom: marginToString(margin?.marginBottom) ?? 0,\n marginLeft: marginToString(margin?.marginLeft) ?? 'auto',\n }),\n ...(properties.includes(StyleControlProperty.Padding) && {\n paddingTop: paddingToString(padding?.paddingTop) ?? 0,\n paddingRight: paddingToString(padding?.paddingRight) ?? 0,\n paddingBottom: paddingToString(padding?.paddingBottom) ?? 0,\n paddingLeft: paddingToString(padding?.paddingLeft) ?? 0,\n }),\n ...(properties.includes(StyleControlProperty.Border) && {\n borderTop: borderSideToString(border?.borderTop) ?? '0 solid black',\n borderRight: borderSideToString(border?.borderRight) ?? '0 solid black',\n borderBottom: borderSideToString(border?.borderBottom) ?? '0 solid black',\n borderLeft: borderSideToString(border?.borderLeft) ?? '0 solid black',\n }),\n ...(properties.includes(StyleControlProperty.BorderRadius) && {\n borderTopLeftRadius: borderRadiusToString(borderRadius?.borderTopLeftRadius) ?? 0,\n borderTopRightRadius: borderRadiusToString(borderRadius?.borderTopRightRadius) ?? 0,\n borderBottomRightRadius: borderRadiusToString(borderRadius?.borderBottomRightRadius) ?? 0,\n borderBottomLeftRadius: borderRadiusToString(borderRadius?.borderBottomLeftRadius) ?? 0,\n }),\n }),\n ),\n }\n\n function widthToString(widthProperty: WidthPropertyData | undefined): string | null {\n if (widthProperty == null) return null\n\n return `${widthProperty.value}${widthProperty.unit}`\n }\n\n function marginToString(\n marginProperty: MarginLonghandPropertyData | null | undefined,\n ): string | null {\n if (marginProperty == null) return null\n\n if (marginProperty === 'auto') return marginProperty\n\n return `${marginProperty.value}${marginProperty.unit}`\n }\n\n function paddingToString(\n paddingProperty: PaddingLonghandPropertyData | null | undefined,\n ): string | null {\n if (paddingProperty == null) return null\n\n return `${paddingProperty.value}${paddingProperty.unit}`\n }\n\n function borderSideToString(borderSide: BorderSide | null | undefined): string | null {\n if (borderSide == null) return null\n\n const { width, color, style } = borderSide\n return `${width != null ? width : 0}px ${style} ${\n color != null ? colorToString(color) : 'black'\n }`\n }\n\n function borderRadiusToString(\n borderRadius: BorderRadiusLonghandPropertyData | null | undefined,\n ): string | null {\n if (borderRadius == null) return null\n\n return `${borderRadius.value}${borderRadius.unit}`\n }\n}\n\nconst useInsertionEffectSpecifier = 'useInsertionEffect'\n// @ts-expect-error: React types are outdated.\nconst useInsertionEffect = React[useInsertionEffectSpecifier] ?? React.useLayoutEffect\nconst isServer = typeof window === 'undefined'\n\nexport type StyleControlFormattedValue = string\n\nexport function useFormattedStyle(\n styleControlData: StyleControlData | undefined,\n controlDefinition: StyleControlDefinition,\n): StyleControlFormattedValue {\n const style = useStyleControlCssObject(styleControlData, controlDefinition)\n\n if (isServer) return css(style)\n\n const serialized = serializeStyles([style], cache.registered)\n\n useInsertionEffect(() => {\n insertStyles(cache, serialized, false)\n })\n\n return `${cache.key}-${serialized.name}`\n}\n","type Props<H extends (...args: any[]) => any> = {\n /**\n * `<RenderHook>` requires key that changes whenever the `hook` prop changes to ensure the rules of\n * hooks are followed.\n */\n key: string\n\n hook: H\n parameters: Parameters<H>\n children(result: ReturnType<H>): JSX.Element\n}\n\nexport function RenderHook<H extends (...args: any[]) => any>({\n hook: useHook,\n parameters,\n children,\n}: Props<H>) {\n return children(useHook(...parameters))\n}\n","import { CheckboxControlData, CheckboxControlDefinition } from '../../../controls'\n\nexport type CheckboxControlValue<T extends CheckboxControlDefinition> =\n undefined extends T['config']['defaultValue'] ? boolean | undefined : boolean\n\nexport function useCheckboxControlValue<T extends CheckboxControlDefinition>(\n data: CheckboxControlData | undefined,\n definition: T,\n): CheckboxControlValue<T> {\n return (data ?? definition.config.defaultValue) as CheckboxControlValue<T>\n}\n","import Color from 'color'\n\nimport { useQuery } from '../../../api/react'\nimport { SWATCHES_BY_ID } from '../../../components/utils/queries'\nimport { ColorControlData, ColorControlDefinition } from '../../../controls/color'\n\nexport type ColorControlValue<T extends ColorControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\ntype Swatch = {\n id: string\n hue: number\n saturation: number\n lightness: number\n}\n\ntype SwatchesById = { swatches: Swatch[] }\n\nexport function useColorValue<T extends ColorControlDefinition>(\n data: ColorControlData | undefined,\n definition: T,\n): ColorControlValue<T> {\n const result = useQuery<SwatchesById>(SWATCHES_BY_ID, {\n variables: { ids: [data?.swatchId] },\n skip: data?.swatchId == null,\n })\n\n if (data === undefined) {\n const { defaultValue } = definition.config\n\n if (defaultValue === undefined) return undefined as ColorControlValue<T>\n\n let defaultColor\n try {\n defaultColor = Color(definition.config.defaultValue)\n } catch {\n defaultColor = Color()\n }\n\n return defaultColor.rgb().string()\n }\n\n const [swatch] = result.data?.swatches ?? [null]\n\n return Color({ h: swatch?.hue, s: swatch?.saturation, l: swatch?.lightness })\n .alpha(data.alpha)\n .rgb()\n .string()\n}\n","import {\n ComboboxControlData,\n ComboboxControlDefinition,\n ComboboxControlDefinitionOption,\n} from '../../../controls'\n\nexport type ComboboxControlValue<T extends ComboboxControlDefinition> =\n | ComboboxControlDefinitionOption<T>\n | undefined\n\nexport function useComboboxControlValue<T extends ComboboxControlDefinition>(\n data: ComboboxControlData<T> | undefined,\n): ComboboxControlValue<T> {\n return data?.value\n}\n","import { useFile } from '../../../components'\nimport { ImageControlData } from '../../../controls'\n\nexport type ImageControlValue = string | undefined\n\nexport function useImageControlValue(data: ImageControlData | undefined): ImageControlValue {\n return useFile(data)?.publicUrl\n}\n","import { ListControlData, ListControlDefinition } from '../../../controls'\nimport { ControlDefinitionValue, ControlValue } from './control'\n\ntype ListControlItemValue<T extends ListControlDefinition> = ControlDefinitionValue<\n T['config']['type']\n>\n\nexport type ListControlValue<T extends ListControlDefinition> = ListControlItemValue<T>[]\n\ntype ListControlValueProps<T extends ListControlDefinition> = {\n definition: T\n data: ListControlData<T> | undefined\n children(value: ListControlValue<T>): JSX.Element\n}\n\nexport function ListControlValue<T extends ListControlDefinition>({\n definition,\n data,\n children,\n}: ListControlValueProps<T>): JSX.Element {\n return (data ?? []).reduce(\n (renderFn, item) => listControlValue =>\n (\n <ControlValue definition={definition.config.type} data={item.value}>\n {value => renderFn([value as ListControlItemValue<T>, ...listControlValue])}\n </ControlValue>\n ),\n children,\n )([])\n}\n","import { NumberControlData, NumberControlDefinition } from '../../../controls'\n\nexport type NumberControlValue<T extends NumberControlDefinition> =\n undefined extends T['config']['defaultValue'] ? NumberControlData | undefined : NumberControlData\n\nexport function useNumber<T extends NumberControlDefinition>(\n numberControlData: number | undefined,\n controlDefinition: T,\n): NumberControlValue<T> {\n return (numberControlData ?? controlDefinition.config.defaultValue) as NumberControlValue<T>\n}\n","import {\n SelectControlData,\n SelectControlDefinition,\n SelectControlDefinitionOption,\n} from '../../../controls'\n\nexport type SelectControlValue<T extends SelectControlDefinition> =\n undefined extends T['config']['defaultValue']\n ? SelectControlDefinitionOption<T> | undefined\n : SelectControlDefinitionOption<T>\n\nexport function useSelectControlValue<T extends SelectControlDefinition>(\n data: SelectControlData<T> | undefined,\n definition: T,\n): SelectControlValue<T> {\n return (data ?? definition?.config.defaultValue) as SelectControlValue<T>\n}\n","import { ShapeControlData, ShapeControlDefinition } from '../../../controls/shape'\nimport { ControlDefinitionValue, ControlValue } from './control'\n\nexport type ShapeControlValue<T extends ShapeControlDefinition> = {\n [K in keyof T['config']['type']]: ControlDefinitionValue<T['config']['type'][K]>\n}\n\ntype ShapeControlValueProps<T extends ShapeControlDefinition> = {\n definition: T\n data: ShapeControlData<T> | undefined\n children(value: ShapeControlValue<T>): JSX.Element\n}\n\nexport function ShapeControlValue<T extends ShapeControlDefinition>({\n definition,\n data,\n children,\n}: ShapeControlValueProps<T>) {\n return Object.entries(definition.config.type).reduceRight(\n (renderFn, [key, controlDefinition]) =>\n shapeControlValue =>\n (\n <ControlValue definition={controlDefinition} data={data?.[key]}>\n {value => renderFn({ ...shapeControlValue, [key]: value })}\n </ControlValue>\n ),\n children,\n )({} as ShapeControlValue<T>)\n}\n","import { TextAreaControlData, TextAreaControlDefinition } from '../../../controls'\n\nexport type TextAreaControlValue<T extends TextAreaControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextAreaValue<T extends TextAreaControlDefinition>(\n data: TextAreaControlData | undefined,\n definition: T,\n): TextAreaControlValue<T> {\n return (data ?? definition.config.defaultValue) as TextAreaControlValue<T>\n}\n","import { TextInputControlData, TextInputControlDefinition } from '../../../controls'\n\nexport type TextInputControlValue<T extends TextInputControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextInputValue<T extends TextInputControlDefinition>(\n data: TextInputControlData | undefined,\n definition: T,\n): TextInputControlValue<T> {\n return (data ?? definition.config.defaultValue) as TextInputControlValue<T>\n}\n","import {\n CheckboxControlData,\n CheckboxControlDefinition,\n CheckboxControlType,\n ColorControlData,\n ColorControlDefinition,\n ColorControlType,\n ComboboxControlData,\n ComboboxControlDefinition,\n ComboboxControlType,\n ControlDefinition,\n ControlDefinitionData,\n ImageControlData,\n ImageControlDefinition,\n ImageControlType,\n ListControlData,\n ListControlDefinition,\n ListControlType,\n NumberControlData,\n NumberControlDefinition,\n NumberControlType,\n SelectControlData,\n SelectControlDefinition,\n SelectControlType,\n ShapeControlData,\n ShapeControlDefinition,\n ShapeControlType,\n TextAreaControlData,\n TextAreaControlDefinition,\n TextAreaControlType,\n TextInputControlData,\n TextInputControlDefinition,\n TextInputControlType,\n} from '../../../controls'\nimport { RenderHook } from '../components'\nimport { CheckboxControlValue, useCheckboxControlValue } from './checkbox'\nimport { ColorControlValue, useColorValue } from './color'\nimport { ComboboxControlValue, useComboboxControlValue } from './combobox'\nimport { ImageControlValue, useImageControlValue } from './image'\nimport { ListControlValue } from './list'\nimport { NumberControlValue, useNumber } from './number'\nimport { SelectControlValue, useSelectControlValue } from './select'\nimport { ShapeControlValue } from './shape'\nimport { TextAreaControlValue, useTextAreaValue } from './text-area'\nimport { TextInputControlValue, useTextInputValue } from './text-input'\n\nexport type ControlDefinitionValue<T extends ControlDefinition> =\n T extends CheckboxControlDefinition\n ? CheckboxControlValue<T>\n : T extends NumberControlDefinition\n ? NumberControlValue<T>\n : T extends TextInputControlDefinition\n ? TextInputControlValue<T>\n : T extends TextAreaControlDefinition\n ? TextAreaControlValue<T>\n : T extends SelectControlDefinition\n ? SelectControlValue<T>\n : T extends ColorControlDefinition\n ? ColorControlValue<T>\n : T extends ImageControlDefinition\n ? ImageControlValue\n : T extends ComboboxControlDefinition\n ? ComboboxControlValue<T>\n : T extends ShapeControlDefinition\n ? ShapeControlValue<T>\n : T extends ListControlDefinition\n ? ListControlValue<T>\n : never\n\ntype ControlValueProps<T extends ControlDefinition> = {\n definition: T\n data: ControlDefinitionData<T> | undefined\n children(value: ControlDefinitionValue<T>): JSX.Element\n}\n\nexport function ControlValue<T extends ControlDefinition>({\n data,\n definition,\n children,\n}: ControlValueProps<T>): JSX.Element {\n switch (definition.type) {\n case CheckboxControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useCheckboxControlValue}\n parameters={[data as CheckboxControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case NumberControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useNumber}\n parameters={[data as NumberControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TextInputControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTextInputValue}\n parameters={[data as TextInputControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TextAreaControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTextAreaValue}\n parameters={[data as TextAreaControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case SelectControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useSelectControlValue}\n parameters={[data as SelectControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ColorControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useColorValue}\n parameters={[data as ColorControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ImageControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useImageControlValue}\n parameters={[data as ImageControlData]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ComboboxControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useComboboxControlValue}\n parameters={[data as ComboboxControlData]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ShapeControlType:\n return (\n <ShapeControlValue definition={definition} data={data as ShapeControlData}>\n {value => children(value as ControlDefinitionValue<T>)}\n </ShapeControlValue>\n )\n\n case ListControlType:\n return (\n <ListControlValue definition={definition} data={data as ListControlData}>\n {value => children(value as ControlDefinitionValue<T>)}\n </ListControlValue>\n )\n\n default:\n return children(data as ControlDefinitionValue<T>)\n }\n}\n","import { useMemo, useRef } from 'react'\n\nimport { useStore } from '.'\nimport * as ReactPage from '../../state/react-page'\nimport { Props } from '../../prop-controllers'\nimport {\n Descriptor,\n Device,\n ResolveOptions,\n ResponsiveValue,\n WidthControlValueFormats,\n WidthDescriptor,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport { css } from '@emotion/css'\nimport { useResponsiveColor } from '../../components'\nimport type { ColorValue } from '../../components/utils/types'\nimport { responsiveWidth } from '../../components/utils/responsive-style'\nimport {\n CheckboxControlType,\n ColorControlType,\n ComboboxControlType,\n ImageControlType,\n ListControlType,\n NumberControlType,\n SelectControlType,\n ShapeControlType,\n StyleControlType,\n TextAreaControlType,\n TextInputControlType,\n} from '../../controls'\nimport { useFormattedStyle } from './controls/style'\nimport { ControlValue } from './controls/control'\nimport { RenderHook } from './components'\n\nexport type ResponsiveColor = ResponsiveValue<ColorValue>\n\nfunction useDeviceMode(): Device {\n return 'desktop'\n}\n\nfunction useWidth(\n value: WidthValue | undefined,\n descriptor: WidthDescriptor,\n props: Record<string, unknown>,\n): string | WidthValue | undefined {\n const deviceMode = useDeviceMode()\n const options = useMemo(\n () =>\n typeof descriptor.options === 'function'\n ? descriptor.options(props, deviceMode)\n : descriptor.options,\n [props, deviceMode],\n )\n\n return useMemo(\n () =>\n options.format === WidthControlValueFormats.ClassName\n ? css(responsiveWidth(value, options.defaultValue))\n : value,\n [value, options.defaultValue, options.format],\n )\n}\n\nexport type ResolveWidthControlValue<T extends Descriptor> = T extends WidthDescriptor\n ? undefined extends ResolveOptions<T['options']>['format']\n ? WidthValue | undefined\n : ResolveOptions<T['options']>['format'] extends typeof WidthControlValueFormats.ClassName\n ? string\n : ResolveOptions<T['options']>['format'] extends typeof WidthControlValueFormats.ResponsiveValue\n ? WidthValue | undefined\n : never\n : never\n\ntype PropsValueProps = {\n element: ReactPage.ElementData\n children(props: Record<string, unknown>): JSX.Element\n}\n\nexport function PropsValue({ element, children }: PropsValueProps): JSX.Element {\n const store = useStore()\n const propControllerDescriptorsRef = useRef(\n ReactPage.getComponentPropControllerDescriptors(store.getState(), element.type) ?? {},\n )\n const props = element.props as Record<string, any>\n\n return Object.entries(propControllerDescriptorsRef.current).reduceRight(\n (renderFn, [propName, descriptor]) =>\n propsValue => {\n switch (descriptor.type) {\n case CheckboxControlType:\n case NumberControlType:\n case TextInputControlType:\n case TextAreaControlType:\n case SelectControlType:\n case ColorControlType:\n case ImageControlType:\n case ComboboxControlType:\n case ShapeControlType:\n case ListControlType:\n return (\n <ControlValue definition={descriptor} data={props[propName]}>\n {value => renderFn({ ...propsValue, [propName]: value })}\n </ControlValue>\n )\n\n case StyleControlType:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useFormattedStyle}\n parameters={[props[propName], descriptor]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case Props.Types.Width:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useWidth}\n parameters={[props[propName], descriptor, props]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case Props.Types.ResponsiveColor:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useResponsiveColor}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n default:\n return renderFn({ ...propsValue, [propName]: props[propName] })\n }\n },\n children,\n )({})\n}\n","import { ForwardedRef } from 'react'\nimport { ReactInstance } from 'react'\nimport { forwardRef } from 'react'\nimport { Component, ReactNode } from 'react'\nimport { findDOMNode } from 'react-dom'\n\ntype FindDomNodeClassComponentProps = {\n innerRef?: ForwardedRef<Element | Text | null>\n children?: ReactNode\n}\n\n/**\n * @see https://github.com/facebook/react/blob/a2505792ed17fd4d7ddc69561053c3ac90899491/packages/react-reconciler/src/ReactFiberReconciler.new.js#L179-L244\n */\nfunction suppressWarningAndFindDomNode(\n instance: ReactInstance | null | undefined,\n): Element | Text | null {\n const error = console.error\n\n console.error = (...args) => {\n if (typeof args[0] === 'string' && args[0].includes('%s is deprecated in StrictMode.')) return\n\n return error.apply(console, args)\n }\n\n const foundDomNode = findDOMNode(instance)\n\n console.error = error\n\n return foundDomNode\n}\n\nclass FindDomNodeClassComponent extends Component<FindDomNodeClassComponentProps> {\n componentDidMount() {\n this.setInnerRef(suppressWarningAndFindDomNode(this))\n }\n\n componentDidUpdate() {\n this.setInnerRef(suppressWarningAndFindDomNode(this))\n }\n\n setInnerRef(current: Element | Text | null) {\n const { innerRef } = this.props\n\n if (innerRef == null) return\n\n if (typeof innerRef === 'function') innerRef(current)\n else innerRef.current = current\n }\n\n render() {\n return <>{this.props.children}</>\n }\n}\n\ntype FindDomNodeProps = {\n children?: ReactNode\n}\n\nexport const FindDomNode = forwardRef<Element | Text | null, FindDomNodeProps>(function FindDomNode(\n props,\n ref,\n) {\n return <FindDomNodeClassComponent {...props} innerRef={ref} />\n})\n","import {\n ComponentPropsWithoutRef,\n createContext,\n forwardRef,\n memo,\n ReactNode,\n Ref,\n useContext,\n useEffect,\n useImperativeHandle,\n useRef,\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 mountComponentEffect,\n registerComponentEffect,\n registerComponentHandleEffect,\n registerDocumentEffect,\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 { MakeswiftProvider, MakeswiftClient, useQuery } from '../../api/react'\nimport { FallbackComponent } from '../../components/shared/FallbackComponent'\nimport { PropsValue } from './controls'\nimport { FindDomNode } from './find-dom-node'\nimport { ELEMENT_REFERENCE_GLOBAL_ELEMENT } from '../../components/utils/queries'\n\nexport const storeContextDefaultValue = 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\nfunction 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(storeContextDefaultValue)\n\nregisterBuiltinComponents(ReactRuntime)\n\nconst Context = createContext(storeContextDefaultValue)\n\ntype RuntimeProviderProps = {\n client: MakeswiftClient\n rootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n}\n\nexport function RuntimeProvider({\n client,\n children,\n rootElements,\n}: RuntimeProviderProps): JSX.Element {\n const [store, setStore] = useState(() => {\n const store = ReactPage.configureStore({\n preloadedState: storeContextDefaultValue.getState(),\n rootElements,\n })\n\n return store\n })\n\n useEffect(() => {\n const unregisterDocuments = Array.from(rootElements?.entries() ?? []).map(\n ([documentKey, rootElement]) =>\n store.dispatch(registerDocumentEffect(ReactPage.createDocument(documentKey, rootElement))),\n )\n\n return () => {\n unregisterDocuments.forEach(unregisterDocument => {\n unregisterDocument()\n })\n }\n }, [store, rootElements])\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({\n preloadedState: store.getState(),\n client: client.apolloClient,\n }),\n )\n }\n }, [client])\n\n return (\n <Context.Provider value={store}>\n <MakeswiftProvider client={client}>{children}</MakeswiftProvider>\n </Context.Provider>\n )\n}\n\nconst PageContext = createContext<string | null>(null)\n\nfunction usePageIdOrNull(): string | null {\n return useContext(PageContext)\n}\n\nexport function usePageId(): string {\n const pageIdOrNull = usePageIdOrNull()\n\n if (pageIdOrNull == null) throw new Error('`usePageId` must be used with `<PageProvider>`')\n\n return pageIdOrNull\n}\n\ntype PageProviderProps = {\n id: string\n children: ComponentPropsWithoutRef<typeof PageContext['Provider']>['children']\n}\n\nexport function PageProvider({ id, children }: PageProviderProps) {\n return <PageContext.Provider value={id}>{children}</PageContext.Provider>\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\nexport function useStore(): ReactPage.Store {\n return useContext(Context)\n}\n\nfunction useSelector<R>(selector: (state: State) => R): R {\n const store = useStore()\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 useDocument(documentKey: string): ReactPage.Document | null {\n return useSelector(state => ReactPage.getDocument(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\n/**\n * @see https://github.com/facebook/react/blob/a2505792ed17fd4d7ddc69561053c3ac90899491/packages/react-reconciler/src/ReactFiberBeginWork.new.js#L1814-L1890\n */\nfunction useSuppressRefWarning(ownerName: string) {\n const originalErrorRef = useRef(console.error)\n const patchedRef = useRef(false)\n\n if (patchedRef.current === false) {\n console.error = (...args) => {\n if (\n typeof args[0] === 'string' &&\n args[0].includes('Function components cannot be given refs.') &&\n args[0].includes(`Check the render method of \\`${ownerName}\\`.`)\n ) {\n return\n }\n\n return originalErrorRef.current(...args)\n }\n\n patchedRef.current = true\n }\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 const [handle, setHandle] = useState<unknown | null>(null)\n const [foundDomNode, setFoundDomNode] = useState<Element | Text | null>(null)\n\n useImperativeHandle(ref, () => handle ?? foundDomNode, [handle, foundDomNode])\n\n useSuppressRefWarning(`\\`ForwardRef(${ElementData.name})\\``)\n\n if (Component == null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Component not found\" />\n }\n\n return (\n <FindDomNode ref={setFoundDomNode}>\n <PropsValue element={elementData}>\n {props => <Component {...props} key={elementData.key} ref={setHandle} />}\n </PropsValue>\n </FindDomNode>\n )\n }),\n)\n\nconst DisableRegisterElement = createContext(false)\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 const { error, data } = useQuery(ELEMENT_REFERENCE_GLOBAL_ELEMENT, {\n variables: { id: elementReference.value },\n })\n const globalElementData = data?.globalElement?.data as ReactPage.ElementData | undefined\n const elementReferenceDocument = useDocument(elementReference.key)\n\n if (error != null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Something went wrong!\" />\n }\n\n if (globalElementData == null) {\n return (\n <FallbackComponent\n ref={ref as Ref<HTMLDivElement>}\n text=\"This global component doesn't exist\"\n />\n )\n }\n\n return elementReferenceDocument != null ? (\n <Document document={elementReferenceDocument} ref={ref} />\n ) : (\n <DisableRegisterElement.Provider value={true}>\n <ElementData elementData={globalElementData} ref={ref} />\n </DisableRegisterElement.Provider>\n )\n }),\n)\n\ntype ElementProps = {\n element: ReactPage.Element\n}\n\nexport const Element = memo(\n forwardRef(function Element({ element }: ElementProps, ref: Ref<unknown>): JSX.Element {\n const elementKey = element.key\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n const [handle, setHandle] = useState<unknown>(null)\n const isRegisterElementDisabled = useContext(DisableRegisterElement)\n\n useImperativeHandle(ref, () => handle, [handle])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(registerComponentHandleEffect(documentKey, elementKey, handle))\n }, [dispatch, documentKey, elementKey, handle, isRegisterElementDisabled])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(mountComponentEffect(documentKey, elementKey))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\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)\n\ntype DocumentProps = {\n document: ReactPage.Document\n}\n\nconst Document = memo(\n forwardRef(function Document({ document }: DocumentProps, ref: Ref<unknown>): JSX.Element {\n return (\n <DocumentContext.Provider value={document.key}>\n <Element ref={ref} element={document.rootElement} />\n </DocumentContext.Provider>\n )\n }),\n)\n\ntype DocumentReferenceProps = {\n documentReference: ReactPage.DocumentReference\n}\n\nexport const DocumentReference = memo(\n forwardRef(function DocumentReference(\n { documentReference }: DocumentReferenceProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n const document = useDocument(documentReference.key)\n\n if (document == null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Document not found\" />\n }\n\n return <Document ref={ref} document={document} />\n }),\n)\n"],"names":["PlaceholderBase","styled","div","hide","forwardRef","ref","restOfProps","overflow","gql","descriptors","getPropControllerDescriptors","getElementSwatchIds","getFileIds","getTypographyIds","getTableIds","getPageIds","getElementChildren","ShapeControlType","ListControlType","Types","isElementReference","typePolicies","Query","fields","swatches","existingData","args","toReference","ids","map","id","__typename","file","files","typographies","pagePathnamesById","globalElement","table","page","site","uri","cacheData","cache","InMemoryCache","restore","ApolloClient","link","BatchHttpLink","batchMax","MakeswiftClient","constructor","apolloClient","createApolloClient","prefetch","element","introspectionData","introspect","storeContextDefaultValue","res","query","INTROSPECTION_QUERY","variables","data","forEach","pagePathnameSlice","Buffer","from","toString","writeFragment","fragment","PagePathnameSliceFragmentDoc","KeyUtils","resetGenerator","extract","updateCacheData","Context","createContext","undefined","options","client","useContext","useApolloQuery","mutation","useApolloMutation","children","_jsx","useMemo","useEffect","useLayoutEffect","useState","defaultExitedProps","opacity","x","y","scale","boxAnimations","none","entered","exited","transition","fadeIn","fadeLeft","type","ease","fadeRight","fadeUp","fadeDown","blurIn","filter","scaleDown","scaleUp","mergeCustomTransitionWithDefault","transitions","props","Object","keys","reduce","a","c","useElementOnScreen","isVisible","setIsVisible","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","set","playSequence","start","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","useIsomorphicLayoutEffect","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","payload","publicUrl","repeat","size","parallax","backgroundPosition","getParallaxProps","NextImage","backgroundImage","backgroundRepeat","backgroundSize","angle","isRadial","gradient","OuterContainer","motion","handle","setHandle","useImperativeHandle","useBackgrounds","Children","only","StyledBackgroundsContainer","withConfig","shouldForwardProp","prop","includes","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","cx","length","index","columns","Element","Placeholder","runtime","property","animateIn","isHiddenBasedOnBoxAnimation","isHiddenBasedOnAnimationType","isHiddenBasedOnItemAnimation","registerComponent","label","Props","format","Formats","ClassName","icon","defaultValue","preset","unit","hidden","labelOrientation","device","min","step","suffix","Link","onClick","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","ColorHelper","darken","hex","outline","shadow","clear","blocky","bubbly","lighten","saturate","skewed","cssTextStyle","Button","textStyle","className","toClass","responsiveWidth","placeholder","findDeviceOverride","src","Promise","resolve","reject","image","Image","onload","onerror","baseDevice","DEVICES","find","maxWidth","baseWidth","baseWidthSize","override","sourceSizes","sourceSize","ImageContainer","UnoptimizedImage","img","ImageComponent","altText","placeholders","fileData","useFile","imageSrc","dataDimensions","dimensions","measuredDimensions","setMeasuredDimensions","isInBuilder","useIsInBuilder","cleanedUp","then","naturalWidth","naturalHeight","catch","console","widthClass","imageSizes","LeftChevron","RightChevron","Wrapper","Arrow","Slop","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","_","i","uuid","imagesLength","pageSizeValue","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","name","setAttribute","parentNode","insertBefore","removeChild","hasAttribute","__html","rows","_path","_extends","React","getContrastColor","Sizes","SMALL","MEDIUM","LARGE","Base","input","defaultValidator","cssField","getSizeHeight","form","contrast","brandColor","useFormContext","Input","display","flexDirection","justifyContent","Contrasts","LIGHT","DARK","labelTextStyle","labelTextColor","hideLabel","textarea","h","s","l","Color","isLight","getSize","FakeCheckbox","getContrastBorderColor","getContrastBackgroundColor","HiddenCheckbox","getCheckmarkColor","StyledLabel","getInputSizeHeight","CheckboxContainer","span","handleChange","setFieldValue","checked","MainLabel","tableColumn","required","onChange","validity","valueMissing","typeMismatch","option","FakeRadioButton","HiddenRadioButton","attrs","RadioButtonContainer","getSizeHorizontalPadding","Select","select","getLabelSizeHeight","Shapes","ROUNDED","getShapeBorderRadius","SingleLineTextTableField","LongTextTableField","CheckboxTableField","MultipleSelectTableField","SingleSelectTableField","PhoneNumberTableField","EmailTableField","URLTableField","NumberTableField","tableFormField","TableColumnField","getTableColumnField","errorMessage","getTypeMismatchErrorMessage","FormikField","field","getIn","touched","errors","spin","keyframes","Icon","Spinner20","getBox","LOCAL_STORAGE_NAMESPACE","Alignments","LEFT","CENTER","RIGHT","GridForm","getSizeFontSize","alignment","getAlignmentMargin","ErrorContainer","IconContainer","ErrorMessage","CREATE_TABLE_RECORD","Form","tableId","fieldsProp","submitLabel","submitLink","submitTextStyle","submitVariant","submitTextColor","submitWidth","submitAlignment","grid","useTable","createTableRecord","useMutation","refEl","setRefEl","propControllers","setPropControllers","initialValues","setInitialValues","acc","formField","tableColumnId","getTableColumnDefaultValue","controller","items","useTableFormFieldRefs","fieldsCount","isDone","setIsDone","linkRef","timeoutId","setTimeout","clearTimeout","values","setSubmitting","resetForm","setStatus","getTableColumn","columnId","autofill","setItem","JSON","stringify","prev","click","storedValue","localStorage","getItem","FormContextProvider","Formik","handleSubmit","formik","status","message","handleReset","isSubmitting","Check12","PILL","SQUARE","responsiveContrast","GutterContainer","gutter","first","last","PlaceholderLink","button","links","DROP_DOWN_MENU_WIDTH","DropDownMenu","dropIn","DropDownContainer","StyledDropDownItem","fontWeight","fontStyle","letterSpacing","textTransform","useResponsiveColor","caret","setPosition","innerWidth","offsetLeft","fill","CaretDown8","Plus8","ArrowDown8","ChevronDown8","DropDownItem","open","ButtonLink","StyledLink","onClose","isOpen","setIsOpen","NavigationButton","coverRight","coverLeft","CloseIconContainer","closeIconColor","Times16","flexShrink","Fragment","DropDownButton","nav","LinksContainer","mobileMenuAnimation","OpenIconContainer","Navigation","linkTextStyle","showLogo","logoFile","logoWidth","logoAltText","logoLink","mobileMenuOpenIconColor","mobileMenuCloseIconColor","mobileMenuBackgroundColor","flexGrow","MobileMenu28","Normalize","createGlobalStyle","normalize","Root","SocialLinksOptions","LogoAngellist20","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","o","Span","typographyStyle","fontFamily","lineHeight","uppercase","underline","strikethrough","italic","Boolean","shallowMergeFallbacks","useTypographyMark","TYPOGRAPHY_TYPE","renderMark","mark","_editor","next","get","StyledBlock","textAlign","as","renderBlock","blockProps","renderInline","toJS","RichTextEditor","plugins","Lists","Inlines","DeviceOverridesBlocks","DeviceOverridesMarks","SlateEditor","StyledRichTextEditor","defaultText","object","COMMIT_DEBOUNCE_DELAY","Text","text","editor","setEditor","el","findDOMNode","setSlateEditor","setValue","selection","textWithoutSelection","Value","fromJSON","shouldCommit","setShouldCommit","nextValue","currentValue","isBlurred","toJSON","preserveSelection","window","change","lastController","handleFocus","focus","handleKeyDown","Hotkeys","isUndo","undo","isRedo","redo","isHotkey","blur","RichText","ipsum","marks","ASPECT_RATIO","Video","video","canPlayUrl","controls","loop","registerBoxComponent","registerButtonComponent","registerCarouselComponent","registerCountdownComponent","registerDividerComponent","registerEmbedComponent","registerFormComponent","registerImageComponent","registerNavigationComponent","registerRootComponent","registerSocialLinksComponent","registerTextComponent","registerVideoComponent","code","cleanup","innerHTML","scripts","HTMLScriptElement","inlineScript","executableScript","replaceChild","childNodes","append","cleanUp","Function","hasOwnProperty","defaultFavicon","mimetype","VALID_TAG_REGEX","VALID_HEAD_ELEMENT_TYPES","snippet","filterUsedSnippetProperties","builderEnabled","liveEnabled","PAGE_SNIPPETS_QUERY","SITE_FONTS_QUERY","preview","snippets","setSnippets","useQuery","skip","fetchPolicy","onCompleted","oldSnippets","newSnippets","deepEqual","siteData","favicon","meta","title","description","keywords","socialImage","canonicalUrl","isIndexingBlocked","seo","fontFamilyParamValue","fonts","family","replace","googleFonts","edges","edge","activeVariants","activeVariantSpecifiers","some","activeVariant","specifier","filteredSnippets","headSnippets","SnippetLocation","previousHeadSnippets","headSnippetsToCleanUp","previousSnippet","snippetToCleanUp","Head","snippetToElement","createDocumentReference","ErrorDiv","FallbackComponent","Warning20","unitless","hashString","StyleControlProperty","definition","renderFn","item","listControlValue","config","entries","reduceRight","controlDefinition","shapeControlValue","CheckboxControlType","useCheckboxControlValue","NumberControlType","useNumber","TextInputControlType","useTextInputValue","TextAreaControlType","useTextAreaValue","SelectControlType","useSelectControlValue","ColorControlType","useColorValue","ImageControlType","useImageControlValue","ComboboxControlType","useComboboxControlValue","descriptor","deviceMode","useDeviceMode","WidthControlValueFormats","store","useStore","propControllerDescriptorsRef","ReactPage","getState","propName","propsValue","StyleControlType","useFormattedStyle","Width","useWidth","ResponsiveColor","instance","apply","foundDomNode","FindDomNodeClassComponent","Component","componentDidMount","setInnerRef","suppressWarningAndFindDomNode","componentDidUpdate","render","FindDomNode","component","unregisterComponent","dispatch","registerComponentEffect","unregisterReactComponent","registerReactComponentEffect","ReactRuntime","createReactRuntime","registerBuiltinComponents","rootElements","setStore","preloadedState","unregisterDocuments","documentKey","rootElement","registerDocumentEffect","unregisterDocument","ReactBuilderPreview","configureStore","PageContext","pageIdOrNull","usePageIdOrNull","DocumentContext","selector","useSyncExternalStoreWithSelector","subscribe","useSelector","state","useDocumentKey","ownerName","originalErrorRef","patchedRef","ElementData","memo","elementData","useComponent","setFoundDomNode","_createElement","DisableRegisterElement","ElementReference","elementReference","ELEMENT_REFERENCE_GLOBAL_ELEMENT","globalElementData","elementReferenceDocument","useDocument","useDispatch","isRegisterElementDisabled","registerComponentHandleEffect","mountComponentEffect","Document","DocumentReference","documentReference"],"mappings":"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"}
|