@makeswift/runtime 0.0.0-f94dde1 → 0.0.3

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.
Files changed (227) hide show
  1. package/controls.js +1 -0
  2. package/dist/Page.cjs.js +222 -0
  3. package/dist/Page.cjs.js.map +1 -0
  4. package/dist/Page.es.js +216 -0
  5. package/dist/Page.es.js.map +1 -0
  6. package/dist/actions.cjs.js +30 -1
  7. package/dist/actions.cjs.js.map +1 -1
  8. package/dist/actions.es.js +26 -2
  9. package/dist/actions.es.js.map +1 -1
  10. package/dist/box-models.cjs.js +2 -0
  11. package/dist/box-models.cjs.js.map +1 -1
  12. package/dist/box-models.es.js +2 -0
  13. package/dist/box-models.es.js.map +1 -1
  14. package/dist/builder.cjs.js +2 -0
  15. package/dist/builder.cjs.js.map +1 -1
  16. package/dist/builder.es.js +2 -1
  17. package/dist/builder.es.js.map +1 -1
  18. package/dist/components.cjs.js +54 -36
  19. package/dist/components.cjs.js.map +1 -1
  20. package/dist/components.es.js +15 -7
  21. package/dist/components.es.js.map +1 -1
  22. package/dist/constants.cjs.js +96 -1
  23. package/dist/constants.cjs.js.map +1 -1
  24. package/dist/constants.es.js +96 -1
  25. package/dist/constants.es.js.map +1 -1
  26. package/dist/control-serialization.cjs.js +335 -5
  27. package/dist/control-serialization.cjs.js.map +1 -1
  28. package/dist/control-serialization.es.js +335 -6
  29. package/dist/control-serialization.es.js.map +1 -1
  30. package/dist/controls.cjs.js +7 -0
  31. package/dist/controls.cjs.js.map +1 -0
  32. package/dist/controls.es.js +2 -0
  33. package/dist/controls.es.js.map +1 -0
  34. package/dist/descriptors.cjs.js +18 -1
  35. package/dist/descriptors.cjs.js.map +1 -1
  36. package/dist/descriptors.es.js +15 -2
  37. package/dist/descriptors.es.js.map +1 -1
  38. package/dist/{react.cjs2.js → index.cjs.js} +2893 -748
  39. package/dist/index.cjs.js.map +1 -0
  40. package/dist/{react.es2.js → index.es.js} +2836 -693
  41. package/dist/index.es.js.map +1 -0
  42. package/dist/instances.cjs.js +17 -0
  43. package/dist/instances.cjs.js.map +1 -1
  44. package/dist/instances.es.js +17 -1
  45. package/dist/instances.es.js.map +1 -1
  46. package/dist/main.cjs.js +10 -0
  47. package/dist/main.cjs.js.map +1 -1
  48. package/dist/main.es.js +6 -1
  49. package/dist/main.es.js.map +1 -1
  50. package/dist/next.cjs.js +63 -21
  51. package/dist/next.cjs.js.map +1 -1
  52. package/dist/next.es.js +61 -20
  53. package/dist/next.es.js.map +1 -1
  54. package/dist/prop-controllers.cjs.js +2 -0
  55. package/dist/prop-controllers.cjs.js.map +1 -1
  56. package/dist/prop-controllers.es.js +2 -1
  57. package/dist/prop-controllers.es.js.map +1 -1
  58. package/dist/react-builder-preview.cjs.js +24 -35
  59. package/dist/react-builder-preview.cjs.js.map +1 -1
  60. package/dist/react-builder-preview.es.js +23 -34
  61. package/dist/react-builder-preview.es.js.map +1 -1
  62. package/dist/react-page.cjs.js +263 -0
  63. package/dist/react-page.cjs.js.map +1 -0
  64. package/dist/react-page.es.js +241 -0
  65. package/dist/react-page.es.js.map +1 -0
  66. package/dist/react.cjs.js +21 -12
  67. package/dist/react.cjs.js.map +1 -1
  68. package/dist/react.es.js +14 -7
  69. package/dist/react.es.js.map +1 -1
  70. package/dist/style.cjs.js +38 -0
  71. package/dist/style.cjs.js.map +1 -0
  72. package/dist/style.es.js +35 -0
  73. package/dist/style.es.js.map +1 -0
  74. package/dist/types/api/constants.d.ts.map +1 -1
  75. package/dist/types/api/generated/graphql.d.ts +59 -0
  76. package/dist/types/api/generated/graphql.d.ts.map +1 -1
  77. package/dist/types/api/react.d.ts +26 -4
  78. package/dist/types/api/react.d.ts.map +1 -1
  79. package/dist/types/api/types.d.ts +2 -2
  80. package/dist/types/api/types.d.ts.map +1 -1
  81. package/dist/types/builder/serialization/control-serialization.d.ts +274 -7
  82. package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
  83. package/dist/types/builder/serialization/function-serialization.d.ts +1 -0
  84. package/dist/types/builder/serialization/function-serialization.d.ts.map +1 -1
  85. package/dist/types/components/builtin/Box/Box.d.ts +2 -2
  86. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  87. package/dist/types/components/builtin/Button/Button.d.ts +7 -6
  88. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
  89. package/dist/types/components/builtin/Carousel/Carousel.d.ts +6 -5
  90. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  91. package/dist/types/components/builtin/Countdown/Countdown.d.ts +6 -5
  92. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  93. package/dist/types/components/builtin/Divider/Divider.d.ts +4 -3
  94. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
  95. package/dist/types/components/builtin/Embed/Embed.d.ts +2 -2
  96. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
  97. package/dist/types/components/builtin/Form/Form.d.ts +42 -0
  98. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -0
  99. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +15 -0
  100. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -0
  101. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +15 -0
  102. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -0
  103. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +11 -0
  104. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -0
  105. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts +14 -0
  106. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -0
  107. package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts +16 -0
  108. package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -0
  109. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +10 -0
  110. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -0
  111. package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts +23 -0
  112. package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -0
  113. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +11 -0
  114. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -0
  115. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +11 -0
  116. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -0
  117. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +3 -0
  118. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -0
  119. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +17 -0
  120. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -0
  121. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +11 -0
  122. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -0
  123. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts +23 -0
  124. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -0
  125. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +19 -0
  126. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -0
  127. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts +24 -0
  128. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +1 -0
  129. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts +13 -0
  130. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -0
  131. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +11 -0
  132. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -0
  133. package/dist/types/components/builtin/Form/components/Field/index.d.ts +19 -0
  134. package/dist/types/components/builtin/Form/components/Field/index.d.ts.map +1 -0
  135. package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts +11 -0
  136. package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts.map +1 -0
  137. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts +9 -0
  138. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -0
  139. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts +3 -0
  140. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -0
  141. package/dist/types/components/builtin/Form/context/FormContext.d.ts +33 -0
  142. package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -0
  143. package/dist/types/components/builtin/Form/index.d.ts +2 -0
  144. package/dist/types/components/builtin/Form/index.d.ts.map +1 -0
  145. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
  146. package/dist/types/components/builtin/Navigation/Navigation.d.ts +6 -5
  147. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  148. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +4 -3
  149. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  150. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +5 -4
  151. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  152. package/dist/types/components/builtin/Text/Text.d.ts +2 -2
  153. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -1
  154. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +2 -13
  155. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -1
  156. package/dist/types/components/builtin/Video/Video.d.ts +15 -0
  157. package/dist/types/components/builtin/Video/Video.d.ts.map +1 -0
  158. package/dist/types/components/builtin/Video/index.d.ts +2 -0
  159. package/dist/types/components/builtin/Video/index.d.ts.map +1 -0
  160. package/dist/types/components/builtin/index.d.ts +1 -0
  161. package/dist/types/components/builtin/index.d.ts.map +1 -1
  162. package/dist/types/components/hooks/index.d.ts +1 -0
  163. package/dist/types/components/hooks/index.d.ts.map +1 -1
  164. package/dist/types/components/hooks/useTable.d.ts +66 -0
  165. package/dist/types/components/hooks/useTable.d.ts.map +1 -0
  166. package/dist/types/components/hooks/useTableFormFieldRefs.d.ts +8 -0
  167. package/dist/types/components/hooks/useTableFormFieldRefs.d.ts.map +1 -0
  168. package/dist/types/components/index.d.ts +2 -0
  169. package/dist/types/components/index.d.ts.map +1 -1
  170. package/dist/types/components/page/BodySnippet.d.ts +7 -0
  171. package/dist/types/components/page/BodySnippet.d.ts.map +1 -0
  172. package/dist/types/components/page/Page.d.ts +47 -0
  173. package/dist/types/components/page/Page.d.ts.map +1 -0
  174. package/dist/types/components/page/index.d.ts +2 -0
  175. package/dist/types/components/page/index.d.ts.map +1 -0
  176. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  177. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts +7 -0
  178. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -0
  179. package/dist/types/components/shared/FallbackComponent/index.d.ts +2 -0
  180. package/dist/types/components/shared/FallbackComponent/index.d.ts.map +1 -0
  181. package/dist/types/components/utils/placeholders.d.ts +7 -0
  182. package/dist/types/components/utils/placeholders.d.ts.map +1 -1
  183. package/dist/types/components/utils/queries.d.ts +1 -0
  184. package/dist/types/components/utils/queries.d.ts.map +1 -1
  185. package/dist/types/components/utils/responsive-style.d.ts +9 -0
  186. package/dist/types/components/utils/responsive-style.d.ts.map +1 -0
  187. package/dist/types/components/utils/types.d.ts +1 -2
  188. package/dist/types/components/utils/types.d.ts.map +1 -1
  189. package/dist/types/controls/index.d.ts +2 -0
  190. package/dist/types/controls/index.d.ts.map +1 -0
  191. package/dist/types/controls/style.d.ts +141 -0
  192. package/dist/types/controls/style.d.ts.map +1 -0
  193. package/dist/types/controls/types.d.ts +11 -0
  194. package/dist/types/controls/types.d.ts.map +1 -0
  195. package/dist/types/index.d.ts +2 -1
  196. package/dist/types/index.d.ts.map +1 -1
  197. package/dist/types/next.d.ts +7 -4
  198. package/dist/types/next.d.ts.map +1 -1
  199. package/dist/types/prop-controllers/descriptors.d.ts +82 -46
  200. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  201. package/dist/types/prop-controllers/index.d.ts +3 -3
  202. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  203. package/dist/types/prop-controllers/instances.d.ts +36 -4
  204. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  205. package/dist/types/react.d.ts +1 -1
  206. package/dist/types/react.d.ts.map +1 -1
  207. package/dist/types/runtimes/react/controls/style.d.ts +4 -0
  208. package/dist/types/runtimes/react/controls/style.d.ts.map +1 -0
  209. package/dist/types/runtimes/react/controls.d.ts +7 -0
  210. package/dist/types/runtimes/react/controls.d.ts.map +1 -0
  211. package/dist/types/runtimes/react/index.d.ts +44 -0
  212. package/dist/types/runtimes/react/index.d.ts.map +1 -0
  213. package/dist/types/state/actions.d.ts +36 -1
  214. package/dist/types/state/actions.d.ts.map +1 -1
  215. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  216. package/dist/types/state/modules/read-only-documents.d.ts +8 -4
  217. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  218. package/dist/types/state/modules/read-write-documents.d.ts +1 -1
  219. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
  220. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  221. package/dist/types/state/react-page.d.ts +4 -3
  222. package/dist/types/state/react-page.d.ts.map +1 -1
  223. package/package.json +22 -12
  224. package/dist/react.cjs2.js.map +0 -1
  225. package/dist/react.es2.js.map +0 -1
  226. package/dist/types/runtimes/react.d.ts +0 -36
  227. package/dist/types/runtimes/react.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"react.es2.js","sources":["../src/state/modules/read-only-documents.ts","../src/state/modules/react-components.tsx","../src/state/modules/components-meta.ts","../src/state/modules/prop-controllers.ts","../src/prop-controllers/introspection.ts","../src/state/react-page.ts","../src/components/builtin/Box/components/Placeholder/index.tsx","../src/components/utils/queries.ts","../src/components/utils/isNonNullable.ts","../src/api/react.tsx","../src/components/hooks/useBackgrounds.ts","../src/components/hooks/useBorder.ts","../src/components/hooks/useBoxShadow.ts","../src/components/hooks/useColor.ts","../src/components/hooks/useFile.ts","../src/utils/keys.ts","../src/utils/coalesce.ts","../src/utils/shallowMerge.ts","../src/components/utils/devices.ts","../src/components/hooks/useMediaQuery.ts","../src/components/hooks/usePage.ts","../src/components/builtin/Box/animations.tsx","../src/components/utils/columns.ts","../src/components/utils/colorToString.ts","../src/components/utils/cssMediaRules.ts","../src/utils/clamp.ts","../src/components/shared/BackgroundsContainer/components/Parallax/index.tsx","../src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.tsx","../src/components/shared/BackgroundsContainer/components/Backgrounds/index.tsx","../src/components/shared/BackgroundsContainer/index.tsx","../src/components/builtin/Box/Box.tsx","../src/components/shared/Link/index.tsx","../src/components/builtin/Button/Button.tsx","../src/components/utils/placeholders.ts","../src/components/builtin/Image/Image.tsx","../src/components/builtin/Carousel/Carousel.tsx","../src/components/builtin/Countdown/Countdown.tsx","../src/components/builtin/Divider/Divider.tsx","../src/components/builtin/Embed/Embed.tsx","../src/components/icons/mobile-menu-28.svg","../src/components/shared/GutterContainer/index.tsx","../src/components/builtin/Navigation/components/LinksPlaceholder/index.tsx","../src/components/icons/caret-down-8.svg","../src/components/icons/plus-8.svg","../src/components/icons/arrow-down-8.svg","../src/components/icons/chevron-down-8.svg","../src/components/builtin/Navigation/components/DropDownButton/index.tsx","../src/components/icons/times-16.svg","../src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.tsx","../src/components/builtin/Navigation/components/MobileMenu/index.tsx","../src/components/builtin/Navigation/Navigation.tsx","../src/components/builtin/Root/components/Placeholder/index.tsx","../src/components/builtin/Root/Root.tsx","../src/components/icons/logo-angellist-20.svg","../src/components/icons/logo-codepen-20.svg","../src/components/icons/logo-dribbble-20.svg","../src/components/icons/logo-facebook-20.svg","../src/components/icons/logo-github-20.svg","../src/components/icons/logo-instagram-20.svg","../src/components/icons/logo-linkedin-20.svg","../src/components/icons/logo-medium-20.svg","../src/components/icons/logo-pinterest-20.svg","../src/components/icons/logo-reddit-20.svg","../src/components/icons/logo-rss-20.svg","../src/components/icons/logo-snapchat-20.svg","../src/components/icons/logo-soundcloud-20.svg","../src/components/icons/logo-spotify-20.svg","../src/components/icons/logo-telegram-20.svg","../src/components/icons/logo-tumblr-20.svg","../src/components/icons/logo-twitch-20.svg","../src/components/icons/logo-twitter-20.svg","../src/components/icons/logo-whatsapp-20.svg","../src/components/icons/logo-vimeo-20.svg","../src/components/icons/logo-yelp-20.svg","../src/components/icons/logo-youtube-20.svg","../src/components/builtin/SocialLinks/options.tsx","../src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.tsx","../src/components/builtin/SocialLinks/SocialLinks.tsx","../src/components/hooks/useTypography.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.tsx","../src/components/builtin/Text/components/RichTextEditor/components/Block/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Link.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Inlines.tsx","../src/components/builtin/Text/components/RichTextEditor/index.tsx","../src/components/builtin/Text/Text.tsx","../src/components/builtin/index.ts","../src/runtimes/react.tsx"],"sourcesContent":["import type { Action } from '../actions'\n\nexport type Data = undefined | null | boolean | number | string | Data[] | { [key: string]: Data }\n\nexport type ElementData = { type: string; key: string; props: Record<string, Data> }\n\nexport type ElementReference = { type: 'reference'; key: string; value: string }\n\nexport type Element = ElementData | ElementReference\n\nexport function isElementReference(element: Element): element is ElementReference {\n return !('props' in element)\n}\n\nexport type Document = {\n rootElement: Element\n}\n\nexport function createDocument(rootElement: Element): Document {\n return { rootElement }\n}\n\nexport type State = Map<string, Document>\n\nexport function getInitialState({\n rootElements = new Map(),\n}: { rootElements?: Map<string, Element> } = {}): State {\n const initialState = new Map()\n\n rootElements.forEach((rootElement, elementKey) => {\n initialState.set(elementKey, createDocument(rootElement))\n })\n\n return initialState\n}\n\nfunction getDocuments(state: State): Map<string, Document> {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): Document | null {\n return getDocuments(state).get(documentKey) ?? null\n}\n\nexport function getDocumentRootElement(state: State, documentKey: string): Element | null {\n return getDocument(state, documentKey)?.rootElement ?? null\n}\n\nexport function reducer(state: State = getInitialState(), _action: Action): State {\n return state\n}\n","import type {\n ClassAttributes,\n ComponentClass,\n PropsWithoutRef,\n RefAttributes,\n VoidFunctionComponent,\n} from 'react'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type ComponentType<P = Record<string, any>, T = any> =\n | ComponentClass<PropsWithoutRef<P> & ClassAttributes<T>>\n | VoidFunctionComponent<PropsWithoutRef<P> & RefAttributes<T>>\n\nexport type State = Map<string, ComponentType>\n\nexport function getInitialState({\n reactComponents = new Map(),\n}: { reactComponents?: Map<string, ComponentType> } = {}): State {\n return reactComponents\n}\n\nfunction getReactComponents(state: State): Map<string, ComponentType> {\n return state\n}\n\nexport function getReactComponent(state: State, type: string): ComponentType | null {\n return getReactComponents(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_REACT_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.component)\n\n case ActionTypes.UNREGISTER_REACT_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type ComponentIcon =\n | 'Carousel40'\n | 'Code40'\n | 'Countdown40'\n | 'Cube40'\n | 'Divider40'\n | 'Form40'\n | 'Navigation40'\n | 'SocialLinks40'\n | 'Video40'\n\nexport type ComponentMeta = { label: string; icon: ComponentIcon; hidden: boolean }\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\nimport { PropControllerDescriptor } from '../../prop-controllers'\n\nexport type { PropControllerDescriptor }\n\nexport type State = Map<string, Record<string, PropControllerDescriptor>>\n\nexport function getInitialState({\n propControllerDescriptors = new Map(),\n}: {\n propControllerDescriptors?: Map<string, Record<string, PropControllerDescriptor>>\n} = {}): State {\n return propControllerDescriptors\n}\n\nexport function getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllerDescriptor>> {\n return state\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllerDescriptor> | null {\n return getPropControllerDescriptors(state).get(componentType) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Descriptor, ElementIDValue, GridValue, Types } from './descriptors'\nimport { Data, Element } from '../state/react-page'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Grid:\n return (prop as GridValue).elements\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case Types.ElementID:\n return prop as ElementIDValue\n\n default:\n return null\n }\n}\n","import {\n applyMiddleware,\n combineReducers,\n createStore,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkDispatch } from 'redux-thunk'\n\nimport * as Documents from './modules/read-only-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as Introspection from '../prop-controllers/introspection'\nimport { Action } from './actions'\n\nexport type {\n Data,\n Document,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\nexport { isElementReference } from './modules/read-only-documents'\nexport type { ComponentType } from './modules/react-components'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n isInBuilder: (_state: boolean = false, _action: Action): boolean => false,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocumentRootElement(\n state: State,\n documentKey: string,\n): Documents.Element | null {\n return Documents.getDocumentRootElement(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nfunction getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllers.PropControllerDescriptor>> {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nfunction getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction normalizeElement(\n element: Documents.Element,\n descriptors: Map<string, Record<string, PropControllers.PropControllerDescriptor>>,\n): Map<string, Documents.Element> {\n const elements = new Map<string, Documents.Element>()\n const remaining = [element]\n let current: Documents.Element | undefined\n\n while ((current = remaining.pop())) {\n elements.set(current.key, current)\n\n if (Documents.isElementReference(current)) continue\n\n const elementDescriptors = descriptors.get(element.type)\n\n if (elementDescriptors == null) continue\n\n const parent = current\n const children = Object.entries(elementDescriptors).reduce((acc, [propName, descriptor]) => {\n return [...acc, ...Introspection.getElementChildren(descriptor, parent.props[propName])]\n }, [] as Documents.Element[])\n\n remaining.push(...children)\n }\n\n return elements\n}\n\nfunction getDocumentElements(state: State, documentKey: string): Map<string, Documents.Element> {\n const rootElement = getDocumentRootElement(state, documentKey)\n const descriptors = getPropControllerDescriptors(state)\n\n if (rootElement == null) return new Map()\n\n return normalizeElement(rootElement, descriptors)\n}\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return getDocumentElements(state, documentKey).get(elementKey) ?? null\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n const descriptors = getComponentPropControllerDescriptors(state, element.type)\n\n if (descriptors == null) return null\n\n const elementId = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n if (acc != null) return acc\n\n return Introspection.getElementId(descriptor, element.props[propName])\n }, null as string | null)\n\n return elementId\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n} = {}): Store {\n return createStore(\n reducer,\n { ...preloadedState, documents: Documents.getInitialState({ rootElements }) },\n applyMiddleware(thunk),\n )\n}\n","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\n\nconst PlaceholderBase = styled.div<{ hide: boolean }>`\n width: 100%;\n background: rgba(161, 168, 194, 0.18);\n height: 80px;\n padding: 8px;\n visibility: ${({ hide }) => (hide === true ? 'hidden' : 'initial')};\n`\n\ntype Props = { hide?: boolean }\n\nexport default forwardRef(function Placeholder(\n { hide = false, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <PlaceholderBase {...restOfProps} hide={hide} ref={ref}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n style={{ overflow: 'visible' }}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </PlaceholderBase>\n )\n})\n","import { gql } from '@apollo/client'\n\nexport const SWATCHES_BY_ID = gql`\n query SwatchesById($ids: [ID!]!) {\n swatches(ids: $ids) {\n id\n hue\n saturation\n lightness\n }\n }\n`\n\nexport const FILE_BY_ID = gql`\n query FileById($id: ID!) {\n file(id: $id) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n }\n`\n\nexport const FILES_BY_ID = gql`\n query FilesById($ids: [ID!]!) {\n files(ids: $ids) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n }\n`\n\nexport const PAGE_PATHNAMES_BY_ID = gql`\n query PagePathnamesById($ids: [ID!]!) {\n pagePathnamesById(ids: $ids) {\n id\n pathname\n }\n }\n`\n\nexport const TYPOGRAPHY_FRAGMENT = gql`\n fragment Typography on Typography {\n id\n name\n style {\n deviceId\n value {\n fontFamily\n fontSize {\n value\n unit\n }\n color {\n swatchId\n alpha\n }\n lineHeight\n letterSpacing\n fontWeight\n textAlign\n uppercase\n underline\n strikethrough\n italic\n }\n }\n }\n`\n\nexport const TYPOGRAPHIES_BY_ID = gql`\n query TypographiesById($ids: [ID!]!) {\n typographies(ids: $ids) {\n ...Typography\n }\n }\n\n ${TYPOGRAPHY_FRAGMENT}\n`\n","export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value != null\n}\n","import {\n ApolloClient,\n DocumentNode,\n NormalizedCacheObject,\n OperationVariables,\n QueryHookOptions,\n QueryResult,\n TypedDocumentNode,\n useQuery as useApolloQuery,\n} from '@apollo/client'\nimport { ApolloProviderProps } from '@apollo/client/react/context'\nimport { createContext, useContext } from 'react'\n\nconst Context = createContext<ApolloClient<NormalizedCacheObject> | undefined>(undefined)\n\nexport function useQuery<TData = any, TVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: QueryHookOptions<TData, TVariables>,\n): QueryResult<TData, TVariables> {\n const client = useContext(Context)\n\n return useApolloQuery(query, { client, ...options })\n}\n\nexport function ApolloProvider({ client, children }: ApolloProviderProps<NormalizedCacheObject>) {\n return <Context.Provider value={client}>{children}</Context.Provider>\n}\n","import { useMemo } from 'react'\n\nimport { ColorValue as Color } from '../utils/types'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport { FILES_BY_ID, SWATCHES_BY_ID } from '../utils/queries'\nimport { isNonNullable } from '../utils/isNonNullable'\nimport { BackgroundsValue as ResponsiveBackgroundsValue } from '../../prop-controllers/descriptors'\nimport { useQuery } from '../../api/react'\n\ntype BackgroundColorData = Color\n\ntype BackgroundGradientStopData = {\n id: string\n location: number\n color: Color | null | undefined\n}\n\ntype BackgroundGradientData = {\n angle: number\n isRadial: boolean\n stops: Array<BackgroundGradientStopData>\n}\n\ntype BackgroundImageData = {\n publicUrl?: string\n dimensions: { width: number; height: number } | null\n position: {\n x: number\n y: number\n }\n size: 'cover' | 'contain' | 'auto'\n repeat: 'no-repeat' | 'repeat-x' | 'repeat-y' | 'repeat'\n opacity?: number\n parallax?: number\n}\n\ntype BackgroundVideoData = {\n url: string\n maskColor: Color | null | undefined\n aspectRatio: 'wide' | 'standard'\n opacity: number\n zoom: number\n parallax: number\n}\n\ntype BackgroundData =\n | { id: string; type: 'color'; payload: BackgroundColorData | null | undefined }\n | { id: string; type: 'image'; payload: BackgroundImageData | null | undefined }\n | { id: string; type: 'gradient'; payload: BackgroundGradientData | null | undefined }\n | { id: string; type: 'video'; payload: BackgroundVideoData | null | undefined }\n\ntype BackgroundsData = Array<BackgroundData>\n\nexport type BackgroundsPropControllerData = ResponsiveValue<BackgroundsData>\n\nexport function useBackgrounds(\n value: ResponsiveBackgroundsValue | null | undefined,\n): BackgroundsPropControllerData | null | undefined {\n const fileIds =\n value == null\n ? []\n : value\n .map(({ value: backgrounds }) =>\n backgrounds\n .map(background =>\n background.type === 'image' && background.payload != null\n ? background.payload.imageId\n : null,\n )\n .filter(isNonNullable)\n .reduce((a, b) => a.concat(b), [] as string[]),\n )\n .reduce((a, b) => a.concat(b), [])\n const swatchIds =\n value == null\n ? []\n : value\n .map(({ value: backgrounds }) =>\n backgrounds\n .map(background => {\n if (background.type === 'color' && background.payload != null) {\n return [background.payload.swatchId]\n }\n\n if (background.type === 'gradient' && background.payload != null) {\n return background.payload.stops\n .map(stop => stop.color && stop.color.swatchId)\n .filter(isNonNullable)\n }\n\n if (background.type === 'video' && background.payload != null) {\n return [background.payload.maskColor && background.payload.maskColor.swatchId]\n }\n\n return null\n })\n .filter(isNonNullable)\n .reduce((a, b) => a.concat(b), []),\n )\n .reduce((a, b) => a.concat(b), [])\n .filter(isNonNullable)\n const skip = value == null\n const filesResult = useQuery(FILES_BY_ID, {\n skip: skip || fileIds.length === 0,\n variables: { ids: fileIds },\n })\n const swatchesResult = useQuery(SWATCHES_BY_ID, {\n skip: skip || swatchIds.length === 0,\n variables: { ids: swatchIds },\n })\n\n return useMemo(() => {\n const { data: filesData = {} } = filesResult\n const { data: swatchesData = {} } = swatchesResult\n\n if (value == null || filesResult.error != null || swatchesResult.error != null) {\n return null\n }\n\n const { files = [] } = filesData\n const { swatches = [] } = swatchesData\n\n return value.map(({ value: backgrounds, ...restOfValue }) => ({\n ...restOfValue,\n value: backgrounds\n .map(bg => {\n if (bg.type === 'image' && bg.payload != null && bg.payload.imageId != null) {\n const { imageId, ...restOfPayload } = bg.payload\n const file = files.find((f: any) => f && f.id === imageId)\n\n return (\n file && {\n id: bg.id,\n type: 'image',\n payload: {\n ...restOfPayload,\n publicUrl: file.publicUrl,\n dimensions: file.dimensions,\n },\n }\n )\n }\n\n if (bg.type === 'color' && bg.payload != null) {\n const { swatchId, alpha } = bg.payload\n const swatch = swatches.find((s: any) => s && s.id === swatchId)\n\n return { id: bg.id, type: 'color', payload: { swatch, alpha } }\n }\n\n if (bg.type === 'gradient' && bg.payload != null && bg.payload.stops.length > 0) {\n return {\n id: bg.id,\n type: 'gradient',\n payload: {\n angle: bg.payload.angle,\n isRadial: bg.payload.isRadial,\n stops: bg.payload.stops.map(({ color, ...restOfStop }) => ({\n ...restOfStop,\n color: color && {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n },\n })),\n },\n }\n }\n\n if (bg.type === 'video' && bg.payload != null) {\n const { maskColor, ...restOfPayload } = bg.payload\n const swatch = maskColor && swatches.find((s: any) => s && s.id === maskColor.swatchId)\n\n return {\n id: bg.id,\n type: 'video',\n payload: {\n ...restOfPayload,\n maskColor: swatch && maskColor && { swatch, alpha: maskColor.alpha },\n },\n }\n }\n\n return null\n })\n .filter(Boolean),\n }))\n }, [filesResult, swatchesResult, value])\n}\n","import { BorderStyleProperty } from 'csstype'\n\nimport { isNonNullable } from '../utils/isNonNullable'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport type { ColorValue as Color } from '../utils/types'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport { BorderValue as ResponsiveBorderValue } from '../../prop-controllers/descriptors'\nimport { useQuery } from '../../api/react'\n\nfunction mapSideColor(swatches: any, { color, ...restOfSide }: any) {\n return {\n ...restOfSide,\n color: color && {\n alpha: color.alpha,\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n },\n }\n}\n\nexport type BorderSide = {\n width: number | null | undefined\n style: BorderStyleProperty\n color: Color | null | undefined\n}\n\ntype BorderData = {\n borderTop: BorderSide | null | undefined\n borderRight: BorderSide | null | undefined\n borderBottom: BorderSide | null | undefined\n borderLeft: BorderSide | null | undefined\n}\n\nexport type BorderPropControllerData = ResponsiveValue<BorderData>\n\nexport function useBorder(\n value: ResponsiveBorderValue | null | undefined,\n): BorderPropControllerData | null | undefined {\n const swatchIds =\n value == null\n ? []\n : [\n ...Array.from(\n new Set(\n value\n .map(({ value: { borderTop, borderLeft, borderBottom, borderRight } }) => [\n borderTop && borderTop.color && borderTop.color.swatchId,\n borderBottom && borderBottom.color && borderBottom.color.swatchId,\n borderLeft && borderLeft.color && borderLeft.color.swatchId,\n borderRight && borderRight.color && borderRight.color.swatchId,\n ])\n .reduce((a, b) => a.concat(b))\n .filter(isNonNullable),\n ),\n ),\n ]\n const skip = value == null || swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (value == null || error != null) return null\n\n const { swatches = [] } = data\n\n return value.map(({ value: { borderTop, borderBottom, borderLeft, borderRight }, ...rest }) => ({\n ...rest,\n value: {\n borderTop: borderTop && mapSideColor(swatches, borderTop),\n borderBottom: borderBottom && mapSideColor(swatches, borderBottom),\n borderLeft: borderLeft && mapSideColor(swatches, borderLeft),\n borderRight: borderRight && mapSideColor(swatches, borderRight),\n },\n }))\n}\n","import { isNonNullable } from '../utils/isNonNullable'\nimport type { ColorValue as Color } from '../utils/types'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport type { ResponsiveValue } from '../../prop-controllers'\nimport type { ShadowsValue as ResponsiveShadowsValue } from '../../prop-controllers/descriptors'\nimport { useQuery } from '../../api/react'\n\ntype ShadowData = {\n id: string\n payload: {\n inset: boolean\n offsetX: number\n offsetY: number\n blurRadius: number\n spreadRadius: number\n color: Color | null | undefined\n }\n}\n\nconst ShadowDefaultValue = {\n inset: false,\n offsetX: 0,\n offsetY: 2,\n blurRadius: 4,\n spreadRadius: 0,\n color: null,\n} as const\n\nexport type BoxShadowData = Array<ShadowData>\n\nexport type BoxShadowPropControllerData = ResponsiveValue<BoxShadowData>\n\nexport function useBoxShadow(\n value: ResponsiveShadowsValue | null | undefined,\n): BoxShadowPropControllerData | null | undefined {\n const swatchIds =\n value == null\n ? []\n : [\n ...Array.from(\n new Set(\n value\n .map(({ value: shadows }) =>\n shadows.map(({ payload: { color } }) => color && color.swatchId),\n )\n .reduce((a, b) => a.concat(b), [])\n .filter(isNonNullable),\n ),\n ),\n ]\n\n const skip = value == null || swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (value == null || error != null) return null\n\n const { swatches = [] } = data\n\n return value.map(({ value: shadows, ...restOfValue }) => ({\n ...restOfValue,\n value: shadows.map(\n ({\n payload: { color, inset, offsetX, offsetY, blurRadius, spreadRadius },\n ...restOfShadow\n }) => ({\n ...restOfShadow,\n payload: {\n color:\n color != null\n ? {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n }\n : null,\n inset: inset ?? ShadowDefaultValue.inset,\n offsetX: offsetX ?? ShadowDefaultValue.offsetX,\n offsetY: offsetY ?? ShadowDefaultValue.offsetY,\n blurRadius: blurRadius ?? ShadowDefaultValue.blurRadius,\n spreadRadius: spreadRadius ?? ShadowDefaultValue.spreadRadius,\n },\n }),\n ),\n }))\n}\n","import type { ResponsiveValue } from '../../prop-controllers'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport { isNonNullable } from '../utils/isNonNullable'\nimport type { ColorValue as Color } from '../utils/types'\nimport { useQuery } from '../../api/react'\n\nexport function useColor(\n color:\n | ResponsiveValue<{\n swatchId: string\n alpha: number\n }>\n | null\n | undefined,\n): ResponsiveValue<Color> | null | undefined {\n const swatchIds =\n color == null\n ? []\n : [...Array.from(new Set(color.map(({ value: v }) => v && v.swatchId).filter(isNonNullable)))]\n const skip = swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (color == null || error != null) return null\n\n const { swatches = [] } = data\n\n return color\n .map(({ value: v, ...rest }) => {\n const { swatchId, alpha } = v\n const swatch = swatches.find((s: any) => s && s.id === swatchId)\n\n return swatch == null ? null : { ...rest, value: { swatch, alpha } }\n })\n .filter(isNonNullable)\n}\n","import { useQuery } from '../../api/react'\nimport { FILE_BY_ID } from '../utils/queries'\n\ntype File = {\n id: string\n name: string\n publicUrl: string\n extension: string\n dimensions: { width: number; height: number } | null\n}\n\nexport function useFile(fileId: string | null | undefined): File | null | undefined {\n const { error, data = {} } = useQuery(FILE_BY_ID, {\n skip: fileId == null,\n variables: { id: fileId },\n })\n\n if (fileId == null || error != null) return null\n\n return data.file\n}\n","const keys = <O extends { [key: string]: unknown }>(o: O): (keyof O)[] => Object.keys(o)\n\nexport default keys\n","const coalesce = <T>(...args: Array<T>): T => {\n let i: number\n\n for (i = 0; i < args.length - 1; i += 1) {\n if (args[i] != null) return args[i]\n }\n\n return args[i]\n}\n\nexport default coalesce\n","import keys from './keys'\nimport coalesce from './coalesce'\n\nexport default function shallowMerge<\n A extends Record<string, unknown>,\n B extends Record<string, unknown>,\n>(a: A, b: B): A & B {\n const bKeys = keys(b)\n const merged = { ...a } as A & B\n\n bKeys.forEach(key => {\n // @ts-expect-error: `coalesce` returns `null | undefined` regardless of input guarantees.\n merged[key] = coalesce(merged[key], b[key])\n })\n\n return merged\n}\n","import type { Device as DeviceID, DeviceOverride, ResponsiveValue } from '../../prop-controllers'\nimport shallowMerge from '../../utils/shallowMerge'\n\nexport type Device = {\n id: DeviceID\n minWidth?: number\n maxWidth?: number\n}\n\nexport const DEVICES: Array<Device> = [\n { id: 'desktop', minWidth: 769 },\n { id: 'tablet', minWidth: 576, maxWidth: 768 },\n { id: 'mobile', maxWidth: 575 },\n]\n\nexport const getDevice = (deviceId: DeviceID): Device => {\n const device = DEVICES.find(({ id }) => id === deviceId)\n\n if (device == null) throw new Error(`Unrecognized device ID: \"${deviceId}\".`)\n\n return device\n}\n\nexport type FallbackStrategy<V> = (\n arg0: DeviceOverride<V> | undefined,\n arg1: ResponsiveValue<V>,\n) => DeviceOverride<V> | undefined\n\nfunction defaultStrategy<V>(\n value: DeviceOverride<V> | undefined,\n fallbacks: ResponsiveValue<V>,\n): DeviceOverride<V> | undefined {\n return value || fallbacks[0]\n}\n\nexport function shallowMergeFallbacks<V extends Record<string, unknown>>(\n value: DeviceOverride<V> | undefined,\n fallbacks: ResponsiveValue<V>,\n): DeviceOverride<V> | undefined {\n return [value, ...fallbacks]\n .filter((override): override is DeviceOverride<V> => Boolean(override))\n .reduce((a, b) => ({\n deviceId: a.deviceId || b.deviceId,\n value: shallowMerge(a.value, b.value),\n }))\n}\n\nexport function findDeviceOverride<S>(\n values: ResponsiveValue<S> = [],\n deviceId: string,\n strategy: FallbackStrategy<S> = defaultStrategy,\n): DeviceOverride<S> | undefined {\n const value = values.find(({ deviceId: d }) => d === deviceId)\n const fallbacks = DEVICES.slice(0, DEVICES.findIndex(d => d.id === deviceId) + 1)\n .reverse()\n .map(d => values.find(v => v.deviceId === d.id))\n .filter((override): override is DeviceOverride<S> => Boolean(override))\n\n return value != null || fallbacks.length > 0 ? strategy(value, fallbacks) : undefined\n}\n\nexport type ExtractResponsiveValue<T> = T extends ResponsiveValue<infer V> ? V : never\n\nexport function join<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, R>(\n responsiveValues: A,\n joinFn: (values: { [I in keyof A]: ExtractResponsiveValue<A[I]> | undefined }) => R,\n strategy?: FallbackStrategy<V>,\n): ResponsiveValue<R> {\n return DEVICES.map(({ id }) => id)\n .map(deviceId => {\n const value = joinFn(\n responsiveValues.map(responsiveValue => {\n const deviceValue =\n responsiveValue && findDeviceOverride(responsiveValue, deviceId, strategy)\n\n return deviceValue == null ? undefined : deviceValue.value\n }) as unknown as { [I in keyof A]: ExtractResponsiveValue<A[I] | undefined> },\n )\n\n if (value == null) return null\n\n return { deviceId, value }\n })\n .filter((override): override is DeviceOverride<R> => Boolean(override))\n}\n\nexport const getDeviceMediaQuery = (device: Device): string => {\n const parts = ['@media only screen']\n\n if (device.minWidth != null) {\n parts.push(`(min-width: ${device.minWidth}px)`)\n }\n\n if (device.maxWidth != null) {\n parts.push(`(max-width: ${device.maxWidth}px)`)\n }\n\n return parts.join(' and ')\n}\n","/* eslint-env browser */\n\nimport { useState, useLayoutEffect } from 'react'\n\nimport { DeviceOverride } from '../../prop-controllers'\nimport { DEVICES, findDeviceOverride, getDeviceMediaQuery } from '../utils/devices'\n\nexport function useMediaQuery<S>(responsiveValue?: Array<DeviceOverride<S>>): S | void {\n const [deviceId, setDeviceId] = useState(DEVICES[0].id)\n const { value } = findDeviceOverride(responsiveValue, deviceId) || {}\n\n useLayoutEffect(() => {\n if (responsiveValue == null || window == null) return () => {}\n\n const cleanUpFns = DEVICES.map(device => {\n const mediaQueryList = window.matchMedia(getDeviceMediaQuery(device).replace('@media', ''))\n\n const listener = () => {\n if (mediaQueryList.matches) setDeviceId(device.id)\n }\n\n listener()\n mediaQueryList.addListener(listener)\n\n return () => mediaQueryList.removeListener(listener)\n })\n\n return () => cleanUpFns.forEach(fn => fn())\n })\n\n return value\n}\n","import { useQuery } from '../../api/react'\nimport { PAGE_PATHNAMES_BY_ID } from '../utils/queries'\n\ntype Page = {\n id: string\n pathname: string\n}\n\nexport function usePage(pageId: string | null | undefined): Page | null | undefined {\n const { error, data = {} } = useQuery(PAGE_PATHNAMES_BY_ID, {\n skip: pageId == null,\n variables: { ids: [pageId] },\n })\n\n if (pageId == null || error != null) return null\n\n const { pagePathnamesById: [page] = [] } = data\n\n return page\n}\n","import {\n TargetAndTransition,\n Transition,\n useAnimation,\n useReducedMotion,\n Variants,\n MotionProps,\n} from 'framer-motion'\nimport { TransitionMap } from 'framer-motion/types/types'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport { ResponsiveValue } from '../../../prop-controllers'\nimport { useMediaQuery } from '../../hooks'\nimport { Element } from '../../../state/react-page'\n\nexport type BoxAnimateIn =\n | 'none'\n | 'fadeIn'\n | 'fadeUp'\n | 'fadeDown'\n | 'fadeLeft'\n | 'fadeRight'\n | 'blurIn'\n | 'scaleUp'\n | 'scaleDown'\n\nconst defaultExitedProps = {\n opacity: 0,\n x: 0,\n y: 0,\n scale: 1,\n}\n\ntype BoxAnimationVariants = {\n entered: TargetAndTransition\n exited: TargetAndTransition\n}\n\nexport const boxAnimations: {\n [key in BoxAnimateIn]: {\n transition: TransitionMap\n } & BoxAnimationVariants\n} = {\n none: {\n entered: {\n opacity: 1,\n },\n exited: {\n ...defaultExitedProps,\n opacity: 1,\n },\n transition: {},\n },\n fadeIn: {\n exited: defaultExitedProps,\n entered: {\n opacity: 1,\n },\n transition: {},\n },\n fadeLeft: {\n exited: {\n ...defaultExitedProps,\n x: 60,\n },\n entered: {\n opacity: 1,\n x: 0,\n },\n transition: {\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeRight: {\n exited: {\n ...defaultExitedProps,\n x: -60,\n },\n entered: {\n opacity: 1,\n x: 0,\n },\n transition: {\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeUp: {\n exited: {\n ...defaultExitedProps,\n y: 80,\n },\n entered: {\n opacity: 1,\n y: 0,\n },\n transition: {\n y: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeDown: {\n exited: {\n ...defaultExitedProps,\n y: -80,\n },\n entered: {\n opacity: 1,\n y: 0,\n },\n transition: {\n y: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n blurIn: {\n exited: {\n ...defaultExitedProps,\n filter: 'blur(20px)',\n },\n entered: {\n opacity: 1,\n filter: 'blur(0px)',\n },\n transition: {},\n },\n scaleDown: {\n exited: {\n ...defaultExitedProps,\n scale: 1.2,\n },\n entered: {\n opacity: 1,\n scale: 1,\n },\n transition: {\n scale: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n scaleUp: {\n exited: {\n ...defaultExitedProps,\n scale: 0.75,\n },\n entered: {\n opacity: 1,\n scale: 1,\n },\n transition: {\n scale: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n}\n\nconst mergeCustomTransitionWithDefault = (\n transitions: TransitionMap,\n props: Transition,\n): TransitionMap | Transition =>\n transitions\n ? Object.keys(transitions).reduce(\n (a, c) => ({\n ...a,\n [c]: {\n ...transitions[c as string],\n ...props,\n },\n }),\n props,\n )\n : props\n\nexport type BoxAnimationType = {\n containerAnimationProps: {\n transition: Transition\n variants: Variants\n }\n parentAnimationProps: {\n transition: Transition\n }\n childAnimationProps: {\n transition: Transition\n variants: Variants\n }\n}\n\nconst useElementOnScreen = (element: HTMLElement | null, options: IntersectionObserverInit) => {\n const [isVisible, setIsVisible] = useState(false)\n\n useEffect(() => {\n const observer = new IntersectionObserver(intersectionCallback, options)\n\n if (element) observer.observe(element)\n\n return () => {\n if (element) observer.unobserve(element)\n }\n\n function intersectionCallback([entry]: IntersectionObserverEntry[]) {\n if (entry?.isIntersecting) {\n setIsVisible(true)\n }\n }\n }, [element, options])\n\n return isVisible\n}\n\nexport const DEFAULT_BOX_ANIMATE_TYPE = 'none'\nexport const DEFAULT_BOX_ANIMATE_DELAY = 0.0\nexport const DEFAULT_BOX_ANIMATE_DURATION = 0.75\nexport const DEFAULT_ITEM_ANIMATE_TYPE = 'none'\nexport const DEFAULT_ITEM_ANIMATE_DELAY = 0.0\nexport const DEFAULT_ITEM_ANIMATE_DURATION = 0.75\nexport const DEFAULT_ITEM_STAGGER_DURATION = 0.0\n\ntype UseBoxAnimationsPayload = {\n initial?: { container: MotionProps['initial']; parent: MotionProps['initial'] }\n animate?: { container: MotionProps['animate']; parent: MotionProps['animate'] }\n variants?: { container: MotionProps['variants']; child: MotionProps['variants'] }\n transition?: {\n container: MotionProps['transition']\n parent: MotionProps['transition']\n child: MotionProps['transition']\n }\n key?: { container: string }\n}\n\nexport const useBoxAnimations = ({\n boxElement,\n elements,\n ...props\n}: {\n boxAnimateType: ResponsiveValue<BoxAnimateIn> | undefined\n boxAnimateDuration: ResponsiveValue<number> | undefined\n boxAnimateDelay: ResponsiveValue<number> | undefined\n itemAnimateType: ResponsiveValue<BoxAnimateIn> | undefined\n itemAnimateDuration: ResponsiveValue<number> | undefined\n itemAnimateDelay: ResponsiveValue<number> | undefined\n itemStaggerDuration: ResponsiveValue<number> | undefined\n boxElement: HTMLElement | null\n elements: Element[] | undefined\n}): UseBoxAnimationsPayload => {\n const reducedMotion = useReducedMotion()\n const boxAnimateType = useMediaQuery(props.boxAnimateType) || DEFAULT_BOX_ANIMATE_TYPE\n const boxAnimateDuration = useMediaQuery(props.boxAnimateDuration) || DEFAULT_BOX_ANIMATE_DURATION\n const boxAnimateDelay = useMediaQuery(props.boxAnimateDelay) || DEFAULT_BOX_ANIMATE_DELAY\n const itemAnimateType = useMediaQuery(props.itemAnimateType) || DEFAULT_ITEM_ANIMATE_TYPE\n const itemAnimateDuration =\n useMediaQuery(props.itemAnimateDuration) || DEFAULT_ITEM_ANIMATE_DURATION\n const itemAnimateDelay = useMediaQuery(props.itemAnimateDelay) || DEFAULT_ITEM_ANIMATE_DELAY\n const itemStaggerDuration =\n useMediaQuery(props.itemStaggerDuration) || DEFAULT_ITEM_STAGGER_DURATION\n\n const isBoxVisible = useElementOnScreen(boxElement, {\n root: null,\n rootMargin: `0px 0px -10% 0px`,\n threshold: 0.2,\n })\n\n const itemControls = useAnimation()\n const boxControls = useAnimation()\n\n const setSequence = useCallback(\n (variant: keyof BoxAnimationVariants) => {\n boxControls.stop()\n itemControls.stop()\n boxControls.set(variant)\n itemControls.set(variant)\n },\n [boxControls, itemControls],\n )\n\n const playSequence = useCallback(() => {\n boxControls.stop()\n itemControls.stop()\n boxControls.set('exited')\n itemControls.set('exited')\n boxControls.start('entered')\n itemControls.start('entered')\n }, [boxControls, itemControls])\n\n useEffect(() => {\n if (isBoxVisible) {\n setSequence('entered')\n }\n }, [\n elements\n ?.map(e => e.key)\n .sort()\n .join(),\n setSequence,\n ])\n\n useEffect(() => {\n if (isBoxVisible) {\n playSequence()\n }\n }, [\n isBoxVisible,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemAnimateDelay,\n itemStaggerDuration,\n reducedMotion,\n playSequence,\n ])\n\n const boxVariant = boxAnimations[boxAnimateType]\n const itemVariant = boxAnimations[itemAnimateType]\n\n return {\n initial: {\n container: reducedMotion ? 'entered' : 'exited',\n parent: reducedMotion ? 'entered' : 'exited',\n },\n animate: {\n container: reducedMotion ? undefined : boxControls,\n parent: reducedMotion ? undefined : itemControls,\n },\n variants: {\n container: {\n exited: boxVariant.exited,\n entered: boxVariant.entered,\n },\n child: {\n exited: itemVariant.exited,\n entered: itemVariant.entered,\n },\n },\n transition: {\n container: mergeCustomTransitionWithDefault(boxVariant.transition, {\n delay: boxAnimateDelay,\n duration: boxAnimateDuration,\n }),\n parent: {\n delayChildren: itemAnimateDelay,\n staggerChildren: itemStaggerDuration,\n duration: itemAnimateDuration,\n },\n child: mergeCustomTransitionWithDefault(itemVariant.transition, {\n duration: itemAnimateDuration,\n }),\n },\n key: {\n container:\n boxAnimateType +\n boxAnimateDuration +\n boxAnimateDelay +\n itemAnimateType +\n itemAnimateDuration +\n itemAnimateDelay +\n itemStaggerDuration +\n reducedMotion,\n },\n }\n}\n","export const getIndexes = (spans: Array<Array<number>>, index: number): [number, number] => {\n const flattened = spans.reduce((a, s) => a.concat(s), [])\n\n if (index < 0 || index > flattened.length) throw new RangeError()\n\n let remainder = index\n let rowIndex = 0\n\n while (rowIndex < spans.length - 1 && remainder >= spans[rowIndex].length) {\n remainder -= spans[rowIndex].length\n rowIndex += 1\n }\n\n return [rowIndex, remainder]\n}\n","import type { ColorValue as Color } from './types'\n\nexport function colorToString(color?: Color): string {\n return color && color.swatch\n ? `hsla(${color.swatch.hue},${color.swatch.saturation}%,${color.swatch.lightness}%,${color.alpha})`\n : ''\n}\n","import { css, CSSObject } from 'styled-components'\nimport {\n WidthProperty,\n MarginProperty,\n MarginTopProperty,\n MarginRightProperty,\n MarginBottomProperty,\n MarginLeftProperty,\n PaddingProperty,\n PaddingTopProperty,\n PaddingRightProperty,\n PaddingBottomProperty,\n PaddingLeftProperty,\n BorderRadiusProperty,\n BorderTopLeftRadiusProperty,\n BorderTopRightRadiusProperty,\n BorderBottomLeftRadiusProperty,\n BorderBottomRightRadiusProperty,\n} from 'csstype'\n\nimport {\n ResponsiveValue,\n ResponsiveValueType as ExtractResponsiveValue,\n Length as LengthValue,\n} from '../../prop-controllers'\nimport {\n FallbackStrategy,\n getDevice,\n getDeviceMediaQuery,\n join as joinResponsiveValues,\n} from './devices'\nimport { getIndexes } from './columns'\nimport {\n BorderRadiusValue,\n MarginValue,\n PaddingValue,\n TextStyleValue,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport { colorToString } from './colorToString'\nimport {\n BorderSide,\n BorderPropControllerData,\n BoxShadowData,\n BoxShadowPropControllerData,\n} from '../hooks'\n\ntype CSSRules = ReturnType<typeof css>\n\nexport function cssMediaRules<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, P>(\n responsiveValues: A | ((props: P) => A),\n join: (values: { [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined }) =>\n | CSSRules\n | CSSObject,\n strategy?: FallbackStrategy<V>,\n): (props: P) => CSSRules {\n return props =>\n joinResponsiveValues(\n typeof responsiveValues === 'function' ? responsiveValues(props) : responsiveValues,\n join,\n strategy,\n ).reduce((acc, { deviceId, value }) => {\n const device = getDevice(deviceId)\n const mediaQuery = getDeviceMediaQuery(device)\n\n return css`\n ${acc}${mediaQuery} {\n ${value}\n }\n `\n }, css`` as CSSRules)\n}\n\nexport function cssWidth(\n defaultValue: LengthValue | WidthProperty<string | number> = '100%',\n): (props: { width?: WidthValue }) => CSSRules {\n return props => css`\n max-width: 100%;\n ${cssMediaRules(\n [props.width] as const,\n ([width = defaultValue]) => css`\n width: ${typeof width === 'object' ? `${width.value}${width.unit}` : width};\n `,\n )}\n `\n}\n\nfunction getMarginSide(marginSide: LengthValue | MarginProperty<string | number>) {\n return typeof marginSide === 'object' ? `${marginSide.value}${marginSide.unit}` : marginSide\n}\n\nexport function cssMargin(\n defaultValue: {\n marginTop?: LengthValue | MarginTopProperty<string | number>\n marginRight?: LengthValue | MarginRightProperty<string | number>\n marginBottom?: LengthValue | MarginBottomProperty<string | number>\n marginLeft?: LengthValue | MarginLeftProperty<string | number>\n } = {},\n): (props: { margin?: MarginValue }) => CSSRules {\n const defaultMarginTop = defaultValue.marginTop === undefined ? 0 : defaultValue.marginTop\n const defaultMarginRight =\n defaultValue.marginRight === undefined ? 'auto' : defaultValue.marginRight\n const defaultMarginBottom =\n defaultValue.marginBottom === undefined ? 0 : defaultValue.marginBottom\n const defaultMarginLeft = defaultValue.marginLeft === undefined ? 'auto' : defaultValue.marginLeft\n\n return props => css`\n ${cssMediaRules(\n [props.margin] as const,\n ([\n {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = {} as ExtractResponsiveValue<MarginValue>,\n ]) => css`\n margin-top: ${getMarginSide(marginTop || defaultMarginTop)};\n margin-right: ${getMarginSide(marginRight || defaultMarginRight)};\n margin-bottom: ${getMarginSide(marginBottom || defaultMarginBottom)};\n margin-left: ${getMarginSide(marginLeft || defaultMarginLeft)};\n `,\n )}\n `\n}\n\nfunction getPaddingSide(paddingSide: LengthValue | PaddingProperty<string | number>) {\n return typeof paddingSide === 'object' ? `${paddingSide.value}${paddingSide.unit}` : paddingSide\n}\n\nexport function cssPadding(\n defaultValue: {\n paddingTop?: LengthValue | PaddingTopProperty<string | number>\n paddingRight?: LengthValue | PaddingRightProperty<string | number>\n paddingBottom?: LengthValue | PaddingBottomProperty<string | number>\n paddingLeft?: LengthValue | PaddingLeftProperty<string | number>\n } = {},\n): (props: { padding?: PaddingValue }) => CSSRules {\n const defaultPaddingTop = defaultValue.paddingTop === undefined ? 0 : defaultValue.paddingTop\n const defaultPaddingRight =\n defaultValue.paddingRight === undefined ? 0 : defaultValue.paddingRight\n const defaultPaddingBottom =\n defaultValue.paddingBottom === undefined ? 0 : defaultValue.paddingBottom\n const defaultPaddingLeft = defaultValue.paddingLeft === undefined ? 0 : defaultValue.paddingLeft\n\n return props => css`\n ${cssMediaRules(\n [props.padding] as const,\n ([\n {\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n } = {} as ExtractResponsiveValue<PaddingValue>,\n ]) => css`\n padding-top: ${getPaddingSide(paddingTop || defaultPaddingTop)};\n padding-right: ${getPaddingSide(paddingRight || defaultPaddingRight)};\n padding-bottom: ${getPaddingSide(paddingBottom || defaultPaddingBottom)};\n padding-left: ${getPaddingSide(paddingLeft || defaultPaddingLeft)};\n `,\n )}\n `\n}\n\nconst defaultBorderSide = { width: 0, style: 'solid', color: null }\n\nconst getBorderSide = ({ width, style, color }: BorderSide) =>\n `${width != null ? width : 0}px ${style} ${color != null ? colorToString(color) : 'black'}`\n\nexport function cssBorder(\n defaultValue: {\n borderTop?: BorderSide\n borderRight?: BorderSide\n borderBottom?: BorderSide\n borderLeft?: BorderSide\n } = {},\n): (props: { border?: BorderPropControllerData | null | undefined }) => CSSRules {\n const defaultBorderTop =\n defaultValue.borderTop === undefined ? defaultBorderSide : defaultValue.borderTop\n const defaultBorderRight =\n defaultValue.borderRight === undefined ? defaultBorderSide : defaultValue.borderRight\n const defaultBorderBottom =\n defaultValue.borderBottom === undefined ? defaultBorderSide : defaultValue.borderBottom\n const defaultBorderLeft =\n defaultValue.borderLeft === undefined ? defaultBorderSide : defaultValue.borderLeft\n\n return props => css`\n ${cssMediaRules(\n [props.border] as const,\n ([\n {\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n } = {} as ExtractResponsiveValue<BorderPropControllerData>,\n ]) => css`\n border-top: ${getBorderSide(borderTop || defaultBorderTop)};\n border-right: ${getBorderSide(borderRight || defaultBorderRight)};\n border-bottom: ${getBorderSide(borderBottom || defaultBorderBottom)};\n border-left: ${getBorderSide(borderLeft || defaultBorderLeft)};\n `,\n )}\n `\n}\n\nfunction getBorderRadiusCorner(\n borderRadiusCorner: LengthValue | BorderRadiusProperty<string | number>,\n) {\n return typeof borderRadiusCorner === 'object'\n ? `${borderRadiusCorner.value}${borderRadiusCorner.unit}`\n : borderRadiusCorner\n}\n\nexport function cssBorderRadius(\n defaultValue: {\n borderTopLeftRadius?: LengthValue | BorderTopLeftRadiusProperty<string | number>\n borderTopRightRadius?: LengthValue | BorderTopRightRadiusProperty<string | number>\n borderBottomLeftRadius?: LengthValue | BorderBottomLeftRadiusProperty<string | number>\n borderBottomRightRadius?: LengthValue | BorderBottomRightRadiusProperty<string | number>\n } = {},\n): (props: { borderRadius?: BorderRadiusValue }) => CSSRules {\n const defaultBorderTopLeftRadius =\n defaultValue.borderTopLeftRadius === undefined ? 0 : defaultValue.borderTopLeftRadius\n const defaultBorderTopRightRadius =\n defaultValue.borderTopRightRadius === undefined ? 0 : defaultValue.borderTopRightRadius\n const defaultPaddingBottom =\n defaultValue.borderBottomLeftRadius === undefined ? 0 : defaultValue.borderBottomLeftRadius\n const defaultPaddingLeft =\n defaultValue.borderBottomRightRadius === undefined ? 0 : defaultValue.borderBottomRightRadius\n\n return props => css`\n ${cssMediaRules(\n [props.borderRadius] as const,\n ([\n {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n } = {} as ExtractResponsiveValue<BorderRadiusValue>,\n ]) => css`\n border-top-left-radius: ${getBorderRadiusCorner(\n borderTopLeftRadius || defaultBorderTopLeftRadius,\n )};\n border-top-right-radius: ${getBorderRadiusCorner(\n borderTopRightRadius || defaultBorderTopRightRadius,\n )};\n border-bottom-left-radius: ${getBorderRadiusCorner(\n borderBottomLeftRadius || defaultPaddingBottom,\n )};\n border-bottom-right-radius: ${getBorderRadiusCorner(\n borderBottomRightRadius || defaultPaddingLeft,\n )};\n `,\n )}\n `\n}\n\nconst getBoxShadow = (shadows: BoxShadowData) =>\n shadows\n .map(\n ({ payload: { inset, offsetX, offsetY, blurRadius, spreadRadius, color } }) =>\n `${inset ? 'inset ' : ''}${offsetX.toFixed(1)}px ${offsetY.toFixed(\n 1,\n )}px ${blurRadius}px ${spreadRadius}px ${\n color != null ? colorToString(color) : 'rgba(0,0,0,0.2)'\n }`,\n )\n .filter(Boolean)\n .join()\n\nexport function cssBoxShadow(\n defaultValue: BoxShadowData = [],\n): (props: { boxShadow?: BoxShadowPropControllerData | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules(\n [props.boxShadow] as const,\n ([boxShadow = defaultValue]) => css`\n box-shadow: ${getBoxShadow(boxShadow)};\n `,\n )}\n `\n}\n\nconst floor =\n (d: number) =>\n (v: number): number =>\n Math.floor(10 ** d * v) / 10 ** d\n\nexport function cssGridItem(): (props: {\n grid: ResponsiveValue<{ spans: Array<Array<number>>; count: number }>\n index: number\n columnGap?: ResponsiveValue<LengthValue>\n rowGap?: ResponsiveValue<LengthValue>\n}) => CSSRules {\n return props => css`\n display: flex;\n\n /* TODO: A default span of 12 won't work once the column count is modifiable. */\n ${cssMediaRules(\n [props.grid, props.columnGap, props.rowGap] as const,\n ([\n { spans, count } = { spans: [[12]], count: 12 },\n columnGap = { value: 0, unit: 'px' },\n rowGap = { value: 0, unit: 'px' },\n ]) => {\n const [rowIndex, columnIndex] = getIndexes(spans, props.index)\n const firstCol = columnIndex === 0\n const lastCol = columnIndex === spans[rowIndex].length - 1\n const span = spans[rowIndex][columnIndex]\n const fraction = floor(5)(span / count)\n const width = `${fraction} * (100% + ${columnGap.value}${columnGap.unit})`\n const excessWidth = `${Number(firstCol) + Number(lastCol)} * ${columnGap.value}${\n columnGap.unit\n } / 2`\n const iePrecisionError = '0.01px'\n const flexBasis = `calc(${width} - ${excessWidth} - ${iePrecisionError})`\n const firstRow = rowIndex === 0\n const lastRow = rowIndex === spans.length - 1\n\n return span === 0\n ? { display: 'none' }\n : {\n flexBasis,\n minWidth: flexBasis,\n // NOTE: IE11 width breaks without max width\n // https://github.com/philipwalton/flexbugs/issues/3\n maxWidth: flexBasis,\n paddingLeft: firstCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingRight: lastCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingTop: firstRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n paddingBottom: lastRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n }\n },\n )}\n `\n}\n\nexport function cssTextStyle(\n defaultValue: {\n fontFamily?: string | null | undefined\n letterSpacing: number | null | undefined\n fontSize: LengthValue | null | undefined\n fontWeight: number | null | undefined\n textTransform: Array<'uppercase'>\n fontStyle: Array<'italic'>\n } = {\n fontFamily: null,\n letterSpacing: null,\n fontSize: null,\n fontWeight: null,\n textTransform: [],\n fontStyle: [],\n },\n): (arg0: { textStyle?: TextStyleValue | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules([props.textStyle], ([textStyle = defaultValue]) => {\n const {\n fontSize,\n fontWeight,\n fontStyle = [],\n textTransform = [],\n letterSpacing,\n fontFamily,\n } = textStyle\n\n return css`\n ${fontFamily != null\n ? css`\n font-family: '${fontFamily}';\n `\n : ''};\n ${fontWeight != null\n ? css`\n font-weight: ${fontWeight};\n `\n : ''};\n ${letterSpacing != null\n ? css`\n letter-spacing: ${letterSpacing}px;\n `\n : ''};\n ${fontSize != null\n ? css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `\n : ''};\n ${textTransform.includes('uppercase')\n ? css`\n text-transform: uppercase;\n `\n : ''};\n ${fontStyle.includes('italic')\n ? css`\n font-style: italic;\n `\n : ''};\n `\n })}\n `\n}\n","const clamp = (min: number, val: number, max: number): number => Math.min(Math.max(min, val), max)\n\nexport default clamp\n","import { useState, useRef, useLayoutEffect, useCallback, ReactNode, CSSProperties } from 'react'\nimport clamp from '../../../../../utils/clamp'\n\nfunction isScrollable(element: HTMLElement) {\n const { overflow, overflowY, overflowX } =\n element.ownerDocument.defaultView!.getComputedStyle(element)\n\n return /(auto|scroll)/.test(overflow + overflowX + overflowY)\n}\n\nfunction getScrollParent(element: HTMLElement): HTMLElement {\n const { parentElement } = element\n\n if (!element || !parentElement) return element\n\n if (isScrollable(element)) return element\n\n return getScrollParent(parentElement)\n}\n\ntype Props = {\n strength: number | null | undefined\n children: (\n getParallaxProps: <P extends { style?: CSSProperties; [key: string]: unknown }>(props: P) => P,\n ) => ReactNode\n}\n\nexport default function Parallax({ strength, children, ...rest }: Props): JSX.Element {\n const container = useRef<HTMLDivElement>(null)\n const [containerScrollTop, setContainerScrollTop] = useState(strength == null ? 0 : strength)\n const lastScrollParentScrollTop = useRef(0)\n\n useLayoutEffect(() => {\n if (!container.current || strength == null || strength === 0) return undefined\n\n const containerDocument = container.current.ownerDocument\n const scrollParent = getScrollParent(container.current)\n const eventTarget =\n containerDocument.documentElement === scrollParent\n ? containerDocument.defaultView!\n : scrollParent\n\n lastScrollParentScrollTop.current = scrollParent.scrollTop\n setContainerScrollTop(strength)\n\n function handleScroll() {\n containerDocument.defaultView!.requestAnimationFrame(() => {\n if (!container.current) return\n\n const { top: containerTop, bottom: containerBottom } =\n container.current.getBoundingClientRect()\n const { top: scrollParentTop, bottom: scrollParentBottom } =\n scrollParent === containerDocument.documentElement\n ? { top: 0, bottom: containerDocument.defaultView!.innerHeight }\n : scrollParent.getBoundingClientRect()\n const { scrollTop: scrollParentScrollTop } =\n scrollParent === containerDocument.documentElement\n ? { scrollTop: containerDocument.defaultView!.pageYOffset }\n : scrollParent\n const scrollParentHeight = scrollParentBottom - scrollParentTop\n const scrollParentScrollDelta = scrollParentScrollTop - lastScrollParentScrollTop.current\n\n lastScrollParentScrollTop.current = scrollParentScrollTop\n\n setContainerScrollTop(scrollTop => {\n const isContainerVisible =\n containerTop < scrollParentTop + scrollParentHeight && containerBottom > scrollParentTop\n const containerScrollRemaining =\n scrollParentScrollDelta > 0 ? 2 * strength! - scrollTop : scrollTop\n const scrollParentScrollRemaining =\n scrollParentScrollDelta > 0\n ? scrollParentTop + containerBottom\n : scrollParentHeight - containerTop\n const parallaxRatio = containerScrollRemaining / scrollParentScrollRemaining\n const containerScrollDelta = isContainerVisible\n ? parallaxRatio * scrollParentScrollDelta\n : 0\n\n return clamp(0, scrollTop + containerScrollDelta, strength! * 2)\n })\n })\n }\n\n eventTarget.addEventListener('scroll', handleScroll)\n\n return () => eventTarget.removeEventListener('scroll', handleScroll)\n }, [strength])\n\n const getProps = useCallback(\n ({ style, ...restOfChildrenProps }) => ({\n ...restOfChildrenProps,\n style: {\n ...style,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n ...(strength == null || strength === 0\n ? {}\n : {\n top: -strength,\n bottom: -strength,\n transform: `translate3d(0, ${containerScrollTop - strength}px, 0)`,\n }),\n },\n }),\n [strength, containerScrollTop],\n )\n\n return (\n <div\n {...rest}\n ref={container}\n style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}\n >\n {children(getProps)}\n </div>\n )\n}\n","import { useState, useLayoutEffect, useRef } from 'react'\nimport ReactPlayer from 'react-player'\nimport styled from 'styled-components'\n\nconst Container = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n overflow: hidden;\n`\n\nconst Mask = styled.div<{ backgroundColor: string | undefined; visible: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${props => props.backgroundColor};\n opacity: ${props => (props.visible ? 1 : 0)};\n transition: opacity 1s;\n`\n\nconst getScale = (element: HTMLElement, aspectRatio: number, zoom: number) => {\n const { offsetWidth: width, offsetHeight: height } = element\n const computedAspectRatio = width / height\n\n return Math.max(aspectRatio / computedAspectRatio, computedAspectRatio / aspectRatio) * zoom\n}\n\ntype Props = {\n url?: string\n aspectRatio?: number\n zoom?: number\n opacity?: number\n maskColor?: string\n}\n\nexport default function BackgroundVideo({\n url = '',\n aspectRatio = 16 / 9,\n zoom = 1,\n maskColor,\n opacity,\n}: Props): JSX.Element {\n const [ready, setReady] = useState(false)\n const [scale, setScale] = useState(1)\n const container = useRef<HTMLDivElement>(null)\n\n useLayoutEffect(() => {\n const { current: containerEl } = container\n\n if (!containerEl) return undefined\n\n const { defaultView } = containerEl.ownerDocument\n const handleResize = () => setScale(getScale(containerEl, aspectRatio, zoom))\n\n handleResize()\n\n defaultView!.addEventListener('resize', handleResize)\n\n return () => defaultView!.removeEventListener('resize', handleResize)\n }, [aspectRatio, zoom])\n\n if (!ReactPlayer.canPlay(url)) return <></>\n\n return (\n <Container ref={container}>\n {container.current && (\n <ReactPlayer\n url={url}\n config={{\n vimeo: { playerOptions: { background: true } },\n youtube: {\n playerVars: {\n origin: container.current.ownerDocument.defaultView?.location.origin,\n },\n },\n wistia: {\n options: {\n endVideoBehavior: 'loop',\n playbackRateControl: false,\n playbar: false,\n playButton: false,\n volumeControl: false,\n fullscreenButton: false,\n muted: true,\n },\n },\n }}\n playing\n loop\n muted\n controls={false}\n onReady={() => setReady(true)}\n style={{\n transform: `scale3d(${scale}, ${scale}, 1)`,\n opacity,\n }}\n width=\"100%\"\n height=\"100%\"\n />\n )}\n <Mask backgroundColor={maskColor} visible={!ready} />\n </Container>\n )\n}\n","import styled, { css } from 'styled-components'\nimport NextImage from 'next/image'\n\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport { BackgroundsPropControllerData } from '../../../../hooks'\nimport { ResponsiveValue } from '../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport Parallax from '../Parallax'\nimport BackgroundVideo from '../BackgroundVideo'\n\nfunction getColor(color: Color | null | undefined) {\n if (color == null) return 'black'\n\n if (color.swatch == null) {\n return colorToString({ ...color, swatch: { hue: 0, saturation: 0, lightness: 0 } })\n }\n\n return colorToString(color)\n}\n\ntype GradientStop = { color: Color | null | undefined; location: number }\n\nconst getStopsStyle = (stops: GradientStop[]) =>\n stops.map(({ color, location }) => `${getColor(color)} ${location}%`).join(',')\n\ntype AspectRatio = 'wide' | 'standard'\n\nconst getAspectRatio = (aspectRatio: AspectRatio) => {\n switch (aspectRatio) {\n case 'wide':\n return 16 / 9\n case 'standard':\n return 4 / 3\n default:\n return 16 / 9\n }\n}\n\nconst AbsoluteFill = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n`\n\nconst Container = styled(AbsoluteFill)`\n border-radius: inherit;\n`\n\nconst BackgroundsContainer = styled(Container)<{ visibility: ResponsiveValue<boolean> }>`\n overflow: hidden;\n ${p =>\n cssMediaRules(\n [p.visibility],\n ([visibility]) => css`\n display: ${visibility === true ? 'block' : 'none'};\n `,\n )}\n`\n\ntype Props = { backgrounds: BackgroundsPropControllerData | null | undefined }\n\nexport default function Backgrounds({ backgrounds }: Props): JSX.Element {\n if (backgrounds == null) return <></>\n\n return (\n <>\n {backgrounds.map(({ value, deviceId }) => {\n const visibility = backgrounds.map(v => ({\n deviceId: v.deviceId,\n value: v.deviceId === deviceId,\n }))\n\n return (\n <BackgroundsContainer key={deviceId} visibility={visibility}>\n {[...value].reverse().map(bg => {\n if (bg.type === 'color') {\n return (\n <Container\n key={bg.id}\n style={{\n backgroundColor: getColor(bg.payload),\n }}\n />\n )\n }\n\n if (bg.type === 'image' && bg.payload) {\n const {\n publicUrl,\n position,\n repeat = 'no-repeat',\n size = 'cover',\n opacity,\n parallax,\n } = bg.payload\n const backgroundPosition = `${position.x}% ${position.y}%`\n\n if (repeat === 'no-repeat' && size !== 'auto' && publicUrl != null) {\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <div {...getParallaxProps({ style: { opacity, overflow: 'hidden' } })}>\n <NextImage\n src={publicUrl}\n layout=\"fill\"\n objectPosition={backgroundPosition}\n objectFit={size}\n />\n </div>\n )}\n </Parallax>\n )\n }\n\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <Container\n {...getParallaxProps({\n style: {\n backgroundImage: publicUrl != null ? `url('${publicUrl}')` : undefined,\n backgroundPosition,\n backgroundRepeat: repeat,\n backgroundSize: size,\n opacity,\n },\n })}\n />\n )}\n </Parallax>\n )\n }\n\n if (bg.type === 'gradient' && bg.payload) {\n const { angle, stops, isRadial } = bg.payload\n const gradient = `${getStopsStyle(stops)}`\n\n return (\n <Container\n key={bg.id}\n style={{\n background: isRadial\n ? `radial-gradient(${gradient})`\n : `linear-gradient(${angle}rad, ${gradient})`,\n }}\n />\n )\n }\n\n if (bg.type === 'video' && bg.payload) {\n const { url, aspectRatio, maskColor, zoom, opacity, parallax } = bg.payload\n\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <Container {...getParallaxProps({})}>\n <BackgroundVideo\n url={url}\n zoom={zoom}\n opacity={opacity}\n aspectRatio={getAspectRatio(aspectRatio)}\n maskColor={getColor(maskColor)}\n />\n </Container>\n )}\n </Parallax>\n )\n }\n\n return null\n })}\n </BackgroundsContainer>\n )\n })}\n </>\n )\n}\n","import {\n ReactElement,\n ElementType,\n forwardRef,\n Children,\n ComponentPropsWithoutRef,\n useImperativeHandle,\n useState,\n} from 'react'\nimport styled from 'styled-components'\nimport { motion } from 'framer-motion'\n\nimport Backgrounds from './components/Backgrounds'\nimport { BackgroundsValue as BackgroundsPropControllerValue } from '../../../prop-controllers/descriptors'\nimport { useBackgrounds } from '../../hooks'\nimport { Ref } from 'react'\n\nconst OuterContainer = styled(motion.div)`\n position: relative;\n width: 100%;\n margin: 0 auto;\n\n > * {\n border-radius: inherit;\n height: inherit;\n }\n\n > :last-child {\n position: relative;\n }\n`\n\ntype BaseProps = {\n backgrounds: BackgroundsPropControllerValue | null | undefined\n children: ReactElement<ElementType>\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof OuterContainer>, keyof BaseProps>\n\nexport default forwardRef<HTMLDivElement | null, Props>(function BackgroundsContainer(\n { backgrounds, children, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement | null>,\n) {\n const [handle, setHandle] = useState<HTMLDivElement | null>(null)\n\n useImperativeHandle(ref, () => handle, [handle])\n\n return (\n <OuterContainer {...restOfProps} ref={setHandle}>\n <Backgrounds backgrounds={useBackgrounds(backgrounds)} />\n {Children.only(children)}\n </OuterContainer>\n )\n})\n","import { forwardRef, Ref, useImperativeHandle, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport { motion } from 'framer-motion'\n\nimport { Element, ReactRuntime } from '../../../react'\nimport Placeholder from './components/Placeholder'\nimport {\n BoxAnimateIn,\n DEFAULT_BOX_ANIMATE_DELAY,\n DEFAULT_BOX_ANIMATE_DURATION,\n DEFAULT_ITEM_ANIMATE_DELAY,\n DEFAULT_ITEM_STAGGER_DURATION,\n useBoxAnimations,\n} from './animations'\nimport {\n BorderRadiusValue,\n ElementIDValue,\n WidthValue,\n MarginValue,\n PaddingValue,\n ResponsiveIconRadioGroupValue,\n GridValue,\n GapYValue,\n GapXValue,\n CheckboxValue,\n ResponsiveSelectValue,\n ResponsiveNumberValue,\n BackgroundsValue,\n BorderValue,\n ShadowsValue,\n} from '../../../prop-controllers/descriptors'\nimport {\n cssWidth,\n cssMargin,\n cssPadding,\n cssBorderRadius,\n cssGridItem,\n cssMediaRules,\n cssBorder,\n cssBoxShadow,\n} from '../../utils/cssMediaRules'\nimport { BoxModelHandle, parse, createBox } from '../../../box-model'\nimport BackgroundsContainer from '../../shared/BackgroundsContainer'\nimport {\n BorderPropControllerData,\n BoxShadowPropControllerData,\n useBorder,\n useBoxShadow,\n} from '../../hooks'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n backgrounds?: BackgroundsValue\n width?: WidthValue\n height?: ResponsiveIconRadioGroupValue<'auto' | 'stretch'>\n verticalAlign?: ResponsiveIconRadioGroupValue<\n 'flex-start' | 'center' | 'flex-end' | 'space-between'\n >\n margin?: MarginValue\n padding?: PaddingValue\n border?: BorderValue\n borderRadius?: BorderRadiusValue\n boxShadow?: ShadowsValue\n rowGap?: GapYValue\n columnGap?: GapXValue\n boxAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n boxAnimateDuration?: ResponsiveNumberValue\n boxAnimateDelay?: ResponsiveNumberValue\n itemAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n itemAnimateDuration?: ResponsiveNumberValue\n itemAnimateDelay?: ResponsiveNumberValue\n itemStaggerDuration?: ResponsiveNumberValue\n hidePlaceholder?: CheckboxValue\n children?: GridValue\n}\n\nconst StyledBackgroundsContainer = styled(BackgroundsContainer)<{\n width: Props['width']\n margin: Props['margin']\n borderRadius: Props['borderRadius']\n alignSelf: Props['height']\n}>`\n display: flex;\n ${cssWidth()}\n ${cssMargin()}\n ${cssBorderRadius()}\n ${props => cssMediaRules([props.alignSelf] as const, ([alignSelf = 'auto']) => ({ alignSelf }))}\n`\n\nconst Grid = styled(motion.div)<{\n padding: Props['padding']\n border: BorderPropControllerData | null | undefined\n boxShadow: BoxShadowPropControllerData | null | undefined\n alignContent: Props['verticalAlign']\n}>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n ${cssPadding()}\n ${cssBorder()}\n ${cssBoxShadow()}\n ${props =>\n cssMediaRules([props.alignContent] as const, ([alignContent = 'flex-start']) => ({\n alignContent,\n }))}\n`\nconst GridItem = styled(motion.div)<{\n grid: NonNullable<Props['children']>['columns']\n alignItems: Props['verticalAlign']\n index: number\n columnGap: Props['columnGap']\n rowGap: Props['rowGap']\n}>`\n display: flex;\n\n /* IE11 doesn't recognize space-between and treats it as stretch, so we fall back to flex-start */\n align-items: flex-start;\n ${cssGridItem()}\n ${props =>\n cssMediaRules([props.alignItems] as const, ([alignItems = 'flex-start']) => ({ alignItems }))}\n`\n\nconst Box = forwardRef(function Box(\n {\n id,\n backgrounds,\n width,\n height,\n margin,\n padding,\n border,\n children,\n borderRadius,\n boxShadow,\n rowGap,\n columnGap,\n hidePlaceholder,\n verticalAlign,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemStaggerDuration,\n }: Props,\n ref: Ref<BoxModelHandle>,\n) {\n const innerRef = useRef<HTMLDivElement | null>(null)\n const [boxElement, setBoxElement] = useState<HTMLElement | null>(null)\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n const paddingBoxElement = innerRef.current\n const borderBoxElement = innerRef.current\n const marginBoxElement = boxElement\n const borderBox = innerRef.current?.getBoundingClientRect()\n const paddingBoxComputedStyle =\n paddingBoxElement?.ownerDocument.defaultView?.getComputedStyle(paddingBoxElement)\n const borderBoxComputedStyle =\n borderBoxElement?.ownerDocument.defaultView?.getComputedStyle(borderBoxElement)\n const marginBoxComputedStyle =\n marginBoxElement?.ownerDocument.defaultView?.getComputedStyle(marginBoxElement)\n const padding = paddingBoxComputedStyle && {\n top: parse(paddingBoxComputedStyle.paddingTop),\n right: parse(paddingBoxComputedStyle.paddingRight),\n bottom: parse(paddingBoxComputedStyle.paddingBottom),\n left: parse(paddingBoxComputedStyle.paddingLeft),\n }\n const border = borderBoxComputedStyle && {\n top: parse(borderBoxComputedStyle.borderTopWidth),\n right: parse(borderBoxComputedStyle.borderRightWidth),\n bottom: parse(borderBoxComputedStyle.borderBottomWidth),\n left: parse(borderBoxComputedStyle.borderLeftWidth),\n }\n const margin = marginBoxComputedStyle && {\n top: parse(marginBoxComputedStyle.marginTop),\n right: parse(marginBoxComputedStyle.marginRight),\n bottom: parse(marginBoxComputedStyle.marginBottom),\n left: parse(marginBoxComputedStyle.marginLeft),\n }\n\n return borderBox ? createBox({ borderBox, padding, border, margin }) : null\n },\n }),\n [boxElement],\n )\n\n const borderData = useBorder(border)\n const boxShadowData = useBoxShadow(boxShadow)\n\n const { initial, animate, variants, transition, key } = useBoxAnimations({\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemStaggerDuration,\n boxElement,\n elements: children?.elements,\n })\n\n return (\n <StyledBackgroundsContainer\n ref={setBoxElement}\n id={id}\n backgrounds={backgrounds}\n width={width}\n margin={margin}\n borderRadius={borderRadius}\n alignSelf={height}\n animate={animate?.container}\n initial={initial?.container}\n variants={variants?.container}\n transition={transition?.container}\n key={key?.container}\n >\n <Grid\n ref={innerRef}\n padding={padding}\n border={borderData}\n boxShadow={boxShadowData}\n alignContent={verticalAlign}\n animate={animate?.parent}\n initial={initial?.parent}\n transition={transition?.parent}\n >\n {children && children.elements.length > 0 ? (\n children.elements.map((child, index) => (\n <GridItem\n key={child.key}\n grid={children.columns}\n index={index}\n columnGap={columnGap}\n rowGap={rowGap}\n alignItems={verticalAlign}\n variants={variants?.child}\n transition={transition?.child}\n >\n <Element element={child} />\n </GridItem>\n ))\n ) : (\n <Placeholder hide={hidePlaceholder} />\n )}\n </Grid>\n </StyledBackgroundsContainer>\n )\n})\n\nexport default Box\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Box, {\n type: './components/Box/index.js',\n label: 'Box',\n props: {\n id: Props.ElementID(),\n backgrounds: Props.Backgrounds(),\n width: Props.Width(),\n height: Props.ResponsiveIconRadioGroup({\n label: 'Height',\n options: [\n { value: 'auto', label: 'Auto', icon: 'HeightAuto16' },\n { value: 'stretch', label: 'Stretch', icon: 'HeightMatch16' },\n ],\n defaultValue: 'auto',\n }),\n verticalAlign: Props.ResponsiveIconRadioGroup({\n label: 'Align items',\n options: [\n { value: 'flex-start', label: 'Top', icon: 'VerticalAlignStart16' },\n { value: 'center', label: 'Middle', icon: 'VerticalAlignMiddle16' },\n { value: 'flex-end', label: 'Bottom', icon: 'VerticalAlignEnd16' },\n {\n value: 'space-between',\n label: 'Space between',\n icon: 'VerticalAlignSpaceBetween16',\n },\n ],\n defaultValue: 'flex-start',\n }),\n margin: Props.Margin(),\n padding: Props.Padding({\n preset: [\n {\n deviceId: 'desktop',\n value: {\n paddingTop: { value: 10, unit: 'px' },\n paddingRight: { value: 10, unit: 'px' },\n paddingBottom: { value: 10, unit: 'px' },\n paddingLeft: { value: 10, unit: 'px' },\n },\n },\n ],\n }),\n border: Props.Border(),\n borderRadius: Props.BorderRadius(),\n boxShadow: Props.Shadows(),\n rowGap: Props.GapY({\n // hidden: props.children == null,\n }),\n columnGap: Props.GapX({\n // hidden: props.children == null,\n }),\n boxAnimateType: Props.ResponsiveSelect({\n label: 'Animate box in',\n labelOrientation: 'vertical',\n options: [\n { value: 'none', label: 'None' },\n { value: 'fadeIn', label: 'Fade in' },\n { value: 'fadeRight', label: 'Fade right' },\n { value: 'fadeDown', label: 'Fade down' },\n { value: 'fadeLeft', label: 'Fade left' },\n { value: 'fadeUp', label: 'Fade up' },\n { value: 'blurIn', label: 'Blur in' },\n { value: 'scaleUp', label: 'Scale up' },\n { value: 'scaleDown', label: 'Scale down' },\n ],\n defaultValue: 'none',\n }),\n boxAnimateDuration: Props.ResponsiveNumber({\n label: 'Box duration',\n defaultValue: DEFAULT_BOX_ANIMATE_DURATION,\n min: 0.1,\n step: 0.05,\n suffix: 's',\n // hidden: isHiddenBasedOnBoxAnimation(props, device),\n }),\n boxAnimateDelay: Props.ResponsiveNumber({\n label: 'Box delay',\n defaultValue: DEFAULT_BOX_ANIMATE_DELAY,\n min: 0,\n step: 0.05,\n suffix: 's',\n // hidden: isHiddenBasedOnBoxAnimation(props, device),\n }),\n itemAnimateType: Props.ResponsiveSelect({\n label: 'Animate items in',\n labelOrientation: 'vertical',\n options: [\n { value: 'none', label: 'None' },\n { value: 'fadeIn', label: 'Fade in' },\n { value: 'fadeRight', label: 'Fade right' },\n { value: 'fadeDown', label: 'Fade down' },\n { value: 'fadeLeft', label: 'Fade left' },\n { value: 'fadeUp', label: 'Fade up' },\n { value: 'blurIn', label: 'Blur in' },\n { value: 'scaleUp', label: 'Scale up' },\n { value: 'scaleDown', label: 'Scale down' },\n ],\n defaultValue: 'none',\n }),\n itemAnimateDuration: Props.ResponsiveNumber({\n label: 'Items duration',\n defaultValue: DEFAULT_BOX_ANIMATE_DURATION,\n min: 0.1,\n step: 0.05,\n suffix: 's',\n // hidden: isHiddenBasedOnItemAnimation(props, device),\n }),\n itemAnimateDelay: Props.ResponsiveNumber({\n label: 'Items delay',\n defaultValue: DEFAULT_ITEM_ANIMATE_DELAY,\n min: 0,\n step: 0.05,\n suffix: 's',\n // hidden: isHiddenBasedOnItemAnimation(props, device),\n }),\n itemStaggerDuration: Props.ResponsiveNumber({\n label: 'Stagger',\n min: 0,\n step: 0.05,\n suffix: 's',\n defaultValue: DEFAULT_ITEM_STAGGER_DURATION,\n // hidden: isHiddenBasedOnItemAnimation(props, device),\n }),\n hidePlaceholder: Props.Checkbox({\n label: 'Hide placeholder',\n // hidden: props.children != null,\n }),\n children: Props.Grid(),\n },\n })\n}\n","import { ComponentPropsWithoutRef, forwardRef, MouseEvent } from 'react'\nimport scrollIntoView from 'scroll-into-view-if-needed'\nimport NextLink from 'next/link'\n\nimport { LinkValue as LinkPropControllerValue } from '../../../prop-controllers/descriptors'\nimport { usePage } from '../../hooks'\nimport { useElementId } from '../../../runtimes/react'\n\ntype BaseProps = {\n link?: LinkPropControllerValue\n onClick?: (event: MouseEvent<HTMLAnchorElement>) => unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<'a'>, keyof BaseProps>\n\nexport const Link = forwardRef<HTMLAnchorElement, Props>(function Link(\n { link, onClick = () => {}, ...restOfProps }: Props,\n ref,\n) {\n const page = usePage(link && link.type === 'OPEN_PAGE' ? link.payload.pageId : null)\n const elementKey =\n link?.type === 'SCROLL_TO_ELEMENT' ? link.payload.elementIdConfig?.elementKey : null\n const elementId = useElementId(elementKey)\n\n let href = ''\n let target: '_blank' | '_self' | undefined\n let block: 'start' | 'center' | 'end' | undefined\n\n if (link) {\n switch (link.type) {\n case 'OPEN_PAGE': {\n if (page) href = `/${page.pathname}`\n\n target = link.payload.openInNewTab ? '_blank' : '_self'\n\n break\n }\n\n case 'OPEN_URL': {\n href = link.payload.url\n\n target = link.payload.openInNewTab ? '_blank' : '_self'\n\n break\n }\n\n case 'SEND_EMAIL': {\n const { to, subject = '', body = '' } = link.payload\n\n if (to != null) href = `mailto:${to}?subject=${subject}&body=${body}`\n\n break\n }\n\n case 'CALL_PHONE': {\n href = `tel:${link.payload.phoneNumber}`\n\n break\n }\n\n case 'SCROLL_TO_ELEMENT': {\n href = `#${elementId ?? ''}`\n block = link.payload.block\n\n break\n }\n\n default:\n throw new RangeError(`Invalid link type \"${(link as any).type}.\"`)\n }\n }\n\n function handleClick(event: MouseEvent<HTMLAnchorElement>) {\n onClick(event)\n\n if (event.defaultPrevented) return\n\n /**\n * When we introduced `next/link` instead of just `a` element slate no longer prevented link from navigating within\n * content mode. This is a hack to compensate for what would be expected as slate's default behavior.\n * On upgrade of slate this can be reevaluated.\n */\n if (event.currentTarget.isContentEditable) return event.preventDefault()\n\n if (link && link.type === 'SCROLL_TO_ELEMENT') {\n let hash: string | undefined\n\n try {\n hash = new URL(`http://www.example.com/${href}`).hash\n } catch (error) {\n console.error(`Link received invalid href: ${href}`, error)\n }\n\n if (href != null && href === hash) {\n event.preventDefault()\n const view = event.view as unknown as Window\n\n scrollIntoView(view.document.querySelector(hash)!, {\n behavior: 'smooth',\n block,\n })\n\n if (view.location.hash !== hash) view.history.pushState({}, '', hash)\n }\n }\n }\n\n return (\n <NextLink href={href}>\n {/* eslint-disable-next-line */}\n <a {...restOfProps} ref={ref} target={target} onClick={handleClick} />\n </NextLink>\n )\n})\n","import { ReactElement, ComponentPropsWithoutRef, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport ColorHelper from 'color'\n\nimport { cssMediaRules, cssWidth, cssMargin, cssTextStyle } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n MarginValue,\n ResponsiveColorValue,\n TextInputValue,\n ResponsiveSelectValue,\n ResponsiveIconRadioGroupValue,\n TextStyleValue,\n LinkValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../utils/types'\nimport { colorToString } from '../../utils/colorToString'\nimport { Link } from '../../shared/Link'\nimport { useColor } from '../../hooks'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype ControllerProps = {\n id?: ElementIDValue\n children?: TextInputValue\n link?: LinkValue\n variant?: ResponsiveSelectValue<\n 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n >\n shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n color?: ResponsiveColorValue\n textColor?: ResponsiveColorValue\n textStyle?: TextStyleValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst StyledButton = styled(Link)<{\n width: ControllerProps['width']\n margin: ControllerProps['margin']\n variant: ControllerProps['variant']\n shape: ControllerProps['shape']\n size: ControllerProps['size']\n textColor: ResponsiveValue<Color> | null | undefined\n color: ResponsiveValue<Color> | null | undefined\n textStyle: ControllerProps['textStyle']\n}>`\n display: table;\n border: 0;\n outline: 0;\n user-select: none;\n cursor: pointer;\n font-family: inherit;\n text-decoration: none;\n text-align: center;\n ${cssWidth('auto')}\n ${cssMargin()}\n ${p =>\n cssMediaRules(\n [p.variant, p.shape, p.size, p.textColor, p.color] as const,\n ([\n variant = 'flat',\n shape = 'rounded',\n size = 'medium',\n textColor = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 },\n color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => {\n const fontSize = {\n value: { small: 12, medium: 14, large: 18 }[size],\n unit: 'px',\n }\n\n return css`\n color: ${colorToString(textColor)};\n border-radius: ${{ square: 0, rounded: 4, pill: 500 }[shape]}px;\n padding: ${{ small: '8px 12px', medium: '12px 16px', large: '16px 20px' }[size]};\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n\n ${{\n flat: css`\n background: ${colorToString(color)};\n border: none;\n transition: ${['color', 'background', 'border', 'box-shadow']\n .map(property => `${property} 0.15s ease-in-out`)\n .join(', ')};\n\n :hover {\n background: ${ColorHelper(colorToString(color)).darken(0.1).hex()};\n }\n\n :active {\n background: ${ColorHelper(colorToString(color)).darken(0.15).hex()};\n }\n `,\n outline: css`\n background: transparent;\n box-shadow: inset 0 0 0 2px ${colorToString(color)};\n transition: ${['color', 'background', 'box-shadow']\n .map(property => `${property} 0.15s ease-in-out`)\n .join(', ')};\n\n :hover {\n box-shadow: inset 0 0 0 2px ${ColorHelper(colorToString(color)).darken(0.1).hex()};\n color: ${ColorHelper(colorToString(color)).darken(0.1).hex()};\n }\n\n :active {\n box-shadow: inset 0 0 0 2px ${ColorHelper(colorToString(color)).darken(0.15).hex()};\n color: ${ColorHelper(colorToString(color)).darken(0.15).hex()};\n }\n `,\n shadow: css`\n background: ${colorToString(color)};\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.2);\n transition: ${['transform', 'box-shadow']\n .map(property => `${property} 0.18s`)\n .join(', ')};\n\n :hover {\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.3);\n transform: translateY(-1px);\n }\n\n :active {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 4px 6px -3px rgba(0, 0, 0, 0.3);\n transform: translateY(0px);\n }\n `,\n clear: css`\n background: transparent;\n border: none;\n\n :hover {\n color: ${ColorHelper(colorToString(textColor)).alpha(0.5).toString()};\n }\n\n :active {\n color: ${ColorHelper(colorToString(textColor)).alpha(0.6).toString()};\n }\n `,\n blocky: css`\n background: ${colorToString(color)};\n border-width: 1px;\n border-style: solid;\n border-color: ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n box-shadow: 0 4px ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n transition: ${['transform', 'box-shadow']\n .map(property => `${property} 0.1s`)\n .join(', ')};\n\n :hover {\n transform: translateY(2px);\n box-shadow: 0 2px ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n }\n\n :active {\n transform: translateY(4px);\n box-shadow: 0 0 ${ColorHelper(colorToString(color)).darken(0.25).hex()};\n }\n `,\n bubbly: css`\n background: linear-gradient(\n 180deg,\n ${ColorHelper(colorToString(color)).lighten(0.05).hex()},\n ${ColorHelper(colorToString(color)).darken(0.3).saturate(0.05).hex()}\n );\n position: relative;\n z-index: 0;\n\n :before {\n position: absolute;\n content: '';\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: inherit;\n background: linear-gradient(\n 180deg,\n ${ColorHelper(colorToString(color)).lighten(0.2).hex()},\n ${ColorHelper(colorToString(color)).darken(0.2).saturate(0.05).hex()}\n );\n opacity: 0;\n transition: opacity 0.15s;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n :before {\n opacity: 0.25;\n }\n }\n `,\n skewed: css`\n position: relative;\n z-index: 0;\n\n :before {\n position: absolute;\n content: '';\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n background: ${colorToString(color)};\n transform: skewX(-12deg);\n border-radius: inherit;\n transition: transform 0.2s cubic-bezier(0.25, 0, 0.25, 1.75);\n }\n\n :hover:before {\n transform: skew(0deg);\n }\n\n :active:before {\n transform: skew(-8deg);\n }\n `,\n }[variant]}\n `\n },\n )}\n ${cssTextStyle()}\n`\n\ntype BaseProps = {\n id?: ControllerProps['id']\n children?: ReactElement | string\n link?: ControllerProps['link']\n variant?: ControllerProps['variant']\n shape?: ControllerProps['shape']\n size?: ControllerProps['size']\n textColor?: ControllerProps['textColor']\n color?: ControllerProps['color']\n textStyle?: ControllerProps['textStyle']\n width?: ControllerProps['width']\n margin?: ControllerProps['margin']\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof StyledButton>, keyof BaseProps>\n\nconst Button = forwardRef<HTMLAnchorElement, Props>(function Button(\n {\n id,\n children,\n link,\n variant,\n shape,\n size,\n textColor,\n color,\n textStyle,\n width,\n margin,\n ...restOfProps\n },\n ref,\n) {\n return (\n <StyledButton\n {...restOfProps}\n ref={ref}\n id={id}\n // @ts-expect-error: HTMLAnchorElement `color` attribute conflicts with prop\n color={useColor(color)}\n link={link}\n margin={margin}\n shape={shape}\n size={size}\n textColor={useColor(textColor)}\n textStyle={textStyle}\n variant={variant}\n width={width}\n >\n {children == null ? 'Button Text' : children}\n </StyledButton>\n )\n})\n\nexport default Button\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Button, {\n type: './components/Button/index.js',\n label: 'Button',\n props: {\n id: Props.ElementID(),\n children: Props.TextInput({ placeholder: 'Button text' }),\n link: Props.Link({\n defaultValue: {\n type: 'OPEN_PAGE',\n payload: {\n pageId: null,\n openInNewTab: false,\n },\n },\n }),\n variant: Props.ResponsiveSelect({\n label: 'Style',\n labelOrientation: 'horizontal',\n options: [\n { value: 'flat', label: 'Flat' },\n { value: 'outline', label: 'Outline' },\n { value: 'shadow', label: 'Floating' },\n { value: 'clear', label: 'Clear' },\n { value: 'blocky', label: 'Blocky' },\n { value: 'bubbly', label: 'Bubbly' },\n { value: 'skewed', label: 'Skewed' },\n ],\n defaultValue: 'flat',\n }),\n shape: Props.ResponsiveIconRadioGroup({\n label: 'Shape',\n options: [\n { label: 'Pill', value: 'pill', icon: 'ButtonPill16' },\n { label: 'Rounded', value: 'rounded', icon: 'ButtonRounded16' },\n { label: 'Square', value: 'square', icon: 'ButtonSquare16' },\n ],\n defaultValue: 'rounded',\n }),\n size: Props.ResponsiveIconRadioGroup({\n label: 'Size',\n options: [\n { label: 'Small', value: 'small', icon: 'SizeSmall16' },\n { label: 'Medium', value: 'medium', icon: 'SizeMedium16' },\n { label: 'Large', value: 'large', icon: 'SizeLarge16' },\n ],\n defaultValue: 'medium',\n }),\n color: Props.ResponsiveColor({\n placeholder: 'black',\n // hidden: findDeviceOverride<ButtonVariant>(variant, device)?.value === 'clear',\n }),\n textColor: Props.ResponsiveColor({\n label: 'Text color',\n placeholder: 'white',\n }),\n textStyle: Props.TextStyle(),\n width: Props.Width(),\n margin: Props.Margin(),\n },\n })\n}\n","export const placeholders = {\n image: {\n src: \"data:image/svg+xml,%3Csvg width='360' height='240' viewBox='0 0 360 240' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0)'%3E%3Cpath d='M0 0H360V240H0V0Z' fill='%23A1A8C2' fill-opacity='0.18'/%3E%3Cpath d='M260 59C260 78.33 244.33 94 225 94C205.67 94 190 78.33 190 59C190 39.67 205.67 24 225 24C244.33 24 260 39.67 260 59Z' fill='%23A1A8C2' fill-opacity='0.25'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M319 250H417L291.485 124.485C286.799 119.799 279.201 119.799 274.515 124.485L234 165L319 250Z' fill='%23A1A8C2' fill-opacity='0.25'/%3E%3Cpath d='M311 250L-89 250L102.515 58.4853C107.201 53.799 114.799 53.799 119.485 58.4853L311 250Z' fill='%23A1A8C2' fill-opacity='0.25'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0'%3E%3Cpath d='M0 0H360V240H0V0Z' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A\",\n dimensions: { width: 360, height: 240 },\n },\n}\n","import styled, { css } from 'styled-components'\nimport { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\n\nimport {\n BorderRadiusValue,\n BorderValue,\n ElementIDValue,\n ImageValue,\n LinkValue,\n MarginValue,\n PaddingValue,\n ResponsiveOpacityValue,\n ShadowsValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport {\n cssBorder,\n cssBorderRadius,\n cssBoxShadow,\n cssMargin,\n cssMediaRules,\n cssPadding,\n cssWidth,\n} from '../../utils/cssMediaRules'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport {\n BorderPropControllerData,\n BoxShadowPropControllerData,\n useBorder,\n useBoxShadow,\n useFile,\n} from '../../hooks'\nimport { placeholders } from '../../utils/placeholders'\nimport { ReactRuntime, useIsInBuilder } from '../../../react'\nimport { Link } from '../../shared/Link'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: MarginValue\n padding?: PaddingValue\n border?: BorderValue\n borderRadius?: BorderRadiusValue\n boxShadow?: ShadowsValue\n opacity?: ResponsiveOpacityValue\n placeholder?: { src: string; dimensions: { width: number; height: number } }\n className?: string\n}\n\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image()\n\n image.onload = () => resolve(image)\n image.onerror = reject\n image.src = src\n })\n}\n\nfunction imageSizes(width?: Props['width']): string {\n const baseDevice = DEVICES.find(device => device.maxWidth == null)\n const baseWidth = baseDevice && width && findDeviceOverride(width, baseDevice.id)\n const baseWidthSize =\n baseWidth == null || baseWidth.value.unit !== 'px' ? '100vw' : `${baseWidth.value.value}px`\n\n return DEVICES.map(device => {\n const override = findDeviceOverride(width, device.id)\n\n if (override == null || device.maxWidth == null || override.value.unit !== 'px') return null\n\n return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`\n })\n .filter((size): size is NonNullable<typeof size> => size != null)\n .reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize)\n}\n\nconst ImageContainer = styled.div<{\n width?: Props['width']\n margin?: Props['margin']\n padding?: Props['padding']\n border?: BorderPropControllerData | null | undefined\n borderRadius: Props['borderRadius']\n boxShadow?: BoxShadowPropControllerData | null | undefined\n opacity: Props['opacity']\n link?: Props['link']\n dimensions: { width: number; height: number }\n}>`\n line-height: 0;\n overflow: hidden;\n ${props => cssWidth(`${props.dimensions.width}px`)(props)}\n ${cssMargin()}\n ${cssPadding()}\n ${cssBorder()}\n ${cssBorderRadius()}\n ${cssBoxShadow()}\n ${p =>\n cssMediaRules(\n [p.opacity],\n ([opacity = 1]) => css`\n opacity: ${opacity};\n `,\n )}\n`\n\nconst UnoptimizedImage = styled.img`\n width: 100%;\n`\n\ntype Dimensions = {\n width: number\n height: number\n}\n\nconst ImageComponent = forwardRef(function Image(\n {\n id,\n width,\n margin,\n padding,\n file,\n border,\n borderRadius,\n altText,\n link,\n opacity,\n boxShadow,\n placeholder = placeholders.image,\n className,\n }: Props,\n ref: Ref<HTMLImageElement>,\n) {\n const fileData = useFile(file)\n const borderData = useBorder(border)\n const boxShadowData = useBoxShadow(boxShadow)\n const imageSrc = fileData?.publicUrl ? fileData.publicUrl : placeholder.src\n const dataDimensions = fileData?.publicUrl ? fileData?.dimensions : placeholder.dimensions\n const [measuredDimensions, setMeasuredDimensions] = useState<Dimensions | null>(null)\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (dataDimensions) return\n\n let cleanedUp = false\n\n loadImage(imageSrc)\n .then(image => {\n if (!cleanedUp) {\n setMeasuredDimensions({ width: image.naturalWidth, height: image.naturalHeight })\n }\n })\n .catch(console.error)\n\n return () => {\n cleanedUp = true\n }\n }, [dataDimensions, imageSrc])\n\n const dimensions = dataDimensions ?? measuredDimensions\n\n if (!dimensions) return null\n\n return (\n <ImageContainer\n as={link ? Link : 'div'}\n link={link}\n dimensions={dimensions}\n ref={ref}\n id={id}\n className={className}\n width={width}\n margin={margin}\n opacity={opacity}\n padding={padding}\n border={borderData}\n borderRadius={borderRadius}\n boxShadow={boxShadowData}\n >\n {isInBuilder ? (\n <UnoptimizedImage src={imageSrc} alt={altText} />\n ) : (\n <NextImage\n layout=\"responsive\"\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText}\n width={dimensions.width}\n height={dimensions.height}\n />\n )}\n </ImageContainer>\n )\n})\n\nexport default ImageComponent\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(ImageComponent, {\n type: './components/Image/index.js',\n label: 'Image',\n props: {\n id: Props.ElementID(),\n file: Props.Image(),\n altText: Props.TextInput({ label: 'Alt text' }),\n link: Props.Link({ label: 'On click' }),\n width: Props.Width(),\n margin: Props.Margin(),\n padding: Props.Padding(),\n border: Props.Border(),\n borderRadius: Props.BorderRadius(),\n boxShadow: Props.Shadows(),\n opacity: Props.ResponsiveOpacity(),\n },\n })\n}\n","import { useState, useRef, useEffect, useCallback, forwardRef, Ref } from 'react'\nimport styled, { css } from 'styled-components'\nimport { motion, useAnimation } from 'framer-motion'\nimport { useGesture } from 'react-use-gesture'\nimport { wrap } from '@popmotion/popcorn'\nimport uuid from 'uuid/v4'\n\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useColor, useMediaQuery } from '../../hooks'\n\nimport Image from '../Image'\nimport {\n ResponsiveValue,\n ElementIDValue,\n ImagesValue,\n MarginValue,\n ResponsiveNumberValue,\n WidthValue,\n ResponsiveIconRadioGroupValue,\n GapXValue,\n CheckboxValue,\n NumberValue,\n ResponsiveColorValue,\n BorderValue,\n BorderRadiusValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\nconst LeftChevron = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"14\" viewBox=\"0 0 10 14\">\n <path\n d=\"M7,13,1,7,7,1\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n)\n\nconst RightChevron = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"14\" viewBox=\"0 0 10 14\">\n <path\n d=\"M3,1,9,7,3,13\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n)\n\n// NOTE: We set height to 100% here to fix an issue on IE11 where the child height of a flex column extends too far\nconst Container = styled.div`\n position: relative;\n height: 100%;\n`\n\ntype Props = {\n id?: ElementIDValue\n images?: ImagesValue\n width?: WidthValue\n margin?: MarginValue\n pageSize?: ResponsiveNumberValue\n step?: ResponsiveNumberValue\n slideAlignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gap?: GapXValue\n autoplay?: CheckboxValue\n delay?: NumberValue\n showArrows?: CheckboxValue\n arrowPosition?: ResponsiveIconRadioGroupValue<'inside' | 'center' | 'outside'>\n arrowColor?: ResponsiveColorValue\n arrowBackground?: ResponsiveColorValue\n showDots?: CheckboxValue\n dotColor?: ResponsiveColorValue\n slideBorder?: BorderValue\n slideBorderRadius?: BorderRadiusValue\n}\n\nconst Wrapper = styled.div<{ width: Props['width']; margin: Props['margin'] }>`\n position: relative;\n display: flex;\n flex-direction: column;\n ${cssWidth('400px')}\n ${cssMargin()}\n\n &:focus {\n outline: 0;\n }\n`\n\nconst Arrow = styled.div<{ background?: ResponsiveValue<Color> | null }>`\n padding: 10px;\n border-radius: 50%;\n outline: 0;\n border: 0;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n user-select: none;\n ${p =>\n cssMediaRules(\n [p.background] as const,\n ([background = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 }]) => css`\n background: ${colorToString(background)};\n `,\n )}\n\n svg {\n transition: transform 0.15s;\n stroke: currentColor;\n }\n`\n\nconst Slop = styled.div<{\n color?: ResponsiveValue<Color> | null\n}>`\n position: absolute;\n top: 0;\n bottom: 0;\n display: ${props => (props.hidden ? 'none' : 'flex')};\n align-items: center;\n cursor: pointer;\n z-index: 2;\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n color: ${colorToString(color)};\n `,\n )}\n`\n\nconst Slide = styled(motion.div)<{\n pageSize: Props['pageSize']\n alignItems: Props['slideAlignment']\n}>`\n display: flex;\n ${p =>\n cssMediaRules(\n [p.pageSize],\n ([pageSize = 1]) => css`\n flex-basis: ${100 / pageSize}%;\n max-width: ${100 / pageSize}%;\n min-width: ${100 / pageSize}%;\n `,\n )}\n\n ${p => cssMediaRules([p.alignItems], ([alignItems = 'center']) => ({ alignItems }))}\n`\n\nconst Reel = styled(motion.div)<{ gap: Props['gap'] }>`\n display: flex;\n position: relative;\n flex-wrap: nowrap;\n ${p =>\n cssMediaRules(\n [p.gap] as const,\n ([gap = { value: 0, unit: 'px' }]) => css`\n margin: 0 ${`${-gap.value / 2}${gap.unit}`};\n\n & > ${Slide} {\n padding: 0 ${`${gap.value / 2}${gap.unit}`};\n }\n `,\n )}\n`\n\nconst Page = styled(motion.div)`\n position: relative;\n width: 100%;\n`\n\nconst LeftSlop = styled(Slop)<{ position: Props['arrowPosition'] }>`\n ${p =>\n cssMediaRules([p.position] as const, ([position = 'inside']) => {\n switch (position) {\n case 'inside':\n return css`\n transform: translateX(8px);\n `\n case 'outside':\n return css`\n transform: translateX(calc(-100% - 8px));\n `\n default:\n return css`\n transform: translateX(calc(-50%));\n `\n }\n })}\n left: 0;\n\n &:hover > ${Arrow} {\n & > svg {\n transform: translateX(-2px);\n }\n }\n`\n\nconst RightSlop = styled(Slop)<{ position: Props['arrowPosition'] }>`\n ${p =>\n cssMediaRules([p.position] as const, ([position = 'inside']) => {\n switch (position) {\n case 'inside':\n return css`\n transform: translateX(-8px);\n `\n case 'outside':\n return css`\n transform: translateX(calc(100% + 8px));\n `\n default:\n return css`\n transform: translateX(calc(50%));\n `\n }\n })}\n right: 0;\n\n &:hover > ${Arrow} {\n & > svg {\n transform: translateX(2px);\n }\n }\n`\n\nconst ClipMask = styled.div`\n overflow: hidden;\n`\n\nconst Dots = styled.div<{ color?: ResponsiveValue<Color> | null }>`\n display: ${props => (props.hidden ? 'none' : 'flex')};\n justify-content: center;\n margin-top: 20px;\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n color: ${colorToString(color)};\n `,\n )}\n`\n\nconst Dot = styled.div<{ active: boolean }>`\n position: relative;\n margin: 0 6px;\n border-radius: 50%;\n cursor: pointer;\n width: 16px;\n height: 16px;\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n border-radius: 50%;\n transition: all 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n }\n\n &::before {\n box-shadow: 0 0 0 2px currentColor;\n transform: translate3d(-50%, -50%, 0);\n width: ${props => (props.active ? 16 : 10)}px;\n height: ${props => (props.active ? 16 : 10)}px;\n }\n\n &::after {\n background: currentColor;\n transform: translate3d(-50%, -50%, 0) scale(${props => (props.active ? 1 : 0)});\n width: 10px;\n height: 10px;\n }\n\n &:hover::after {\n transform: translate3d(-50%, -50%, 0) scale(${props => (props.active ? 1 : 0.5)});\n }\n`\n\nconst SWIPE_THRESHOLD = 20\nconst swipePower = (dx: number, velocity: number) => dx * (1 + velocity)\n\nconst Carousel = forwardRef(function Carousel(\n {\n images = [],\n width,\n margin,\n pageSize: responsivePageSize,\n step: responsiveStep,\n gap,\n slideAlignment,\n showDots,\n showArrows,\n arrowPosition,\n arrowColor,\n arrowBackground,\n dotColor,\n autoplay = false,\n delay = 5,\n slideBorder,\n slideBorderRadius,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const [index, setIndex] = useState(0)\n const swipe = useRef(0)\n const startIndex = wrap(0, images.length, index)\n const pageSize = useMediaQuery(responsivePageSize) || 1\n const step = useMediaQuery(responsiveStep) || 1\n const endIndex = startIndex + pageSize\n const pageCount = Math.ceil((images.length - pageSize) / step + 1)\n const pageIndex = Math.ceil(startIndex / step)\n const isFirstPage = pageIndex === 0\n const isLastPage = pageIndex === pageCount - 1\n const paginate = useCallback(\n pageDistance => {\n if (pageDistance === 0) return\n\n const direction = pageDistance / Math.abs(pageDistance)\n const remaining = direction > 0 ? images.slice(endIndex) : images.slice(0, startIndex)\n const distance = direction * Math.min(remaining.length, step * Math.abs(pageDistance))\n\n setIndex(index + distance)\n },\n [images, index, startIndex, endIndex, step],\n )\n // @ts-expect-error: `useAnimation` types expect no arguments.\n const animation = useAnimation({ x: 0, transition: { type: 'spring', stiffness: 100 } })\n const bindPage = useGesture(\n {\n onDrag: ({ movement: [mx], delta: [dx], velocity }) => {\n animation.start({ x: mx })\n swipe.current = swipePower(dx, velocity)\n },\n onDragEnd: () => {\n animation.start({ x: 0 })\n\n if (swipe.current > SWIPE_THRESHOLD) paginate(1)\n else if (swipe.current < -SWIPE_THRESHOLD) paginate(-1)\n },\n },\n {\n drag: {\n axis: 'x',\n bounds: { left: 0, right: 0 },\n rubberband: true,\n },\n },\n )\n\n useEffect(() => {\n if (!autoplay || pageSize !== 0) setIndex(0)\n }, [autoplay, pageSize])\n\n useEffect(() => {\n if (!autoplay) return () => {}\n\n const intervalId = setInterval(() => (isLastPage ? setIndex(0) : paginate(1)), delay * 1000)\n\n return () => clearInterval(intervalId)\n }, [autoplay, delay, paginate, isLastPage])\n\n return (\n <Wrapper\n ref={ref}\n width={width}\n margin={margin}\n tabIndex={-1}\n onKeyDown={e => {\n switch (e.key) {\n case 'ArrowRight':\n paginate(1)\n break\n case 'ArrowLeft':\n paginate(-1)\n break\n default:\n }\n }}\n >\n <Container>\n <ClipMask>\n <Page {...bindPage()} animate={animation}>\n <Reel\n gap={gap}\n animate={{ x: `${-(100 / pageSize) * startIndex}%` }}\n transition={{\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n duration: 0.5,\n },\n }}\n >\n {images.map(({ props: imageProps, key }) => (\n <Slide\n id={key}\n key={key}\n pageSize={responsivePageSize}\n alignItems={slideAlignment}\n onMouseDown={e => e.preventDefault()}\n onClick={e => {\n if (swipe.current !== 0) e.preventDefault()\n }}\n >\n <Image\n width={[{ deviceId: 'desktop', value: { value: 100, unit: '%' } }]}\n file={imageProps.file}\n altText={imageProps.altText}\n link={imageProps.link}\n border={slideBorder}\n borderRadius={slideBorderRadius}\n />\n </Slide>\n ))}\n </Reel>\n </Page>\n </ClipMask>\n <LeftSlop\n onClick={() => paginate(-1)}\n position={arrowPosition}\n // @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop\n color={useColor(arrowColor)}\n hidden={!showArrows || isFirstPage}\n >\n <Arrow background={useColor(arrowBackground)}>\n <LeftChevron />\n </Arrow>\n </LeftSlop>\n <RightSlop\n onClick={() => paginate(1)}\n position={arrowPosition}\n // @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop\n color={useColor(arrowColor)}\n hidden={!showArrows || isLastPage}\n >\n <Arrow background={useColor(arrowBackground)}>\n <RightChevron />\n </Arrow>\n </RightSlop>\n </Container>\n {/* @ts-expect-error: HTMLDivElement attributes conflicts with `color` prop */}\n <Dots color={useColor(dotColor)} hidden={!showDots}>\n {Array.from({ length: pageCount }).map((_, i) => (\n <Dot key={i} active={i === pageIndex} onClick={() => paginate(i - pageIndex)} />\n ))}\n </Dots>\n </Wrapper>\n )\n})\n\nexport default Carousel\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Carousel, {\n type: './components/Carousel/index.js',\n label: 'Carousel',\n icon: 'Carousel40',\n props: {\n id: Props.ElementID(),\n images: Props.Images({\n preset: [\n { key: uuid(), props: {} },\n { key: uuid(), props: {} },\n { key: uuid(), props: {} },\n ],\n }),\n width: Props.Width({ defaultValue: { value: 400, unit: 'px' } }),\n margin: Props.Margin(),\n pageSize: Props.ResponsiveNumber({\n label: 'Images shown',\n defaultValue: 1,\n min: 1,\n // max: images?.length ?? 0,\n step: 1,\n }),\n step: Props.ResponsiveNumber({\n label: 'Step',\n defaultValue: 1,\n min: 1,\n // max: findDeviceOverride(pageSize, device)?.value ?? 1,\n step: 1,\n }),\n slideAlignment: Props.ResponsiveIconRadioGroup({\n label: 'Alignment',\n options: [\n { label: 'Top', value: 'flex-start', icon: 'VerticalAlignStart16' },\n { label: 'Middle', value: 'center', icon: 'VerticalAlignMiddle16' },\n { label: 'Bottom', value: 'flex-end', icon: 'VerticalAlignEnd16' },\n ],\n defaultValue: 'center',\n }),\n gap: Props.GapX({\n label: 'Gap',\n step: 5,\n defaultValue: { value: 0, unit: 'px' },\n }),\n autoplay: Props.Checkbox({ label: 'Autoplay' }),\n delay: Props.Number({\n label: 'Delay',\n preset: 5,\n min: 1,\n step: 0.1,\n suffix: 'seconds',\n // hidden: !props.autoplay,\n }),\n showArrows: Props.Checkbox({ preset: true, label: 'Show arrows' }),\n arrowPosition: Props.ResponsiveIconRadioGroup({\n label: 'Arrow position',\n options: [\n { label: 'Inside', value: 'inside', icon: 'ArrowInside16' },\n { label: 'Center', value: 'center', icon: 'ArrowCenter16' },\n { label: 'Outside', value: 'outside', icon: 'ArrowOutside16' },\n ],\n defaultValue: 'inside',\n // hidden: props.showArrows === false,\n }),\n arrowColor: Props.ResponsiveColor({\n label: 'Arrow color',\n placeholder: 'black',\n // hidden: props.showArrows === false,\n }),\n arrowBackground: Props.ResponsiveColor({\n label: 'Arrow background',\n placeholder: 'white',\n // hidden: props.showArrows === false,\n }),\n showDots: Props.Checkbox({ preset: true, label: 'Show dots' }),\n dotColor: Props.ResponsiveColor({\n label: 'Dot color',\n placeholder: 'black',\n // hidden: props.showDots === false,\n }),\n slideBorder: Props.Border(),\n slideBorderRadius: Props.BorderRadius(),\n },\n })\n}\n","import { useState, useEffect, Ref, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { useColor } from '../../hooks'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n DateValue,\n ElementIDValue,\n FontValue,\n GapXValue,\n MarginValue,\n ResponsiveColorValue,\n ResponsiveIconRadioGroupValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n date?: DateValue\n variant?: ResponsiveIconRadioGroupValue<\n 'filled' | 'filled-split' | 'outline' | 'outline-split' | 'clear'\n >\n shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n gap?: GapXValue\n numberFont?: FontValue\n numberColor?: ResponsiveColorValue\n blockColor?: ResponsiveColorValue\n labelFont?: FontValue\n labelColor?: ResponsiveColorValue\n width?: WidthValue\n margin?: MarginValue\n daysLabel?: TextInputValue\n hoursLabel?: TextInputValue\n minutesLabel?: TextInputValue\n secondsLabel?: TextInputValue\n}\n\nconst Block = styled.div`\n display: block;\n padding: 0.5em;\n font-size: 1em;\n`\n\nconst Label = styled.div`\n margin-top: 0.25em;\n`\n\nconst Segment = styled.div`\n flex: 1;\n text-align: center;\n`\n\nconst Container = styled.div<{\n width: Props['width']\n margin: Props['margin']\n variant: Props['variant']\n size: Props['size']\n shape: Props['shape']\n gap: Props['gap']\n labelColor?: ResponsiveValue<Color> | null\n numberFont?: ResponsiveValue<string>\n numberColor?: ResponsiveValue<Color> | null\n blockColor?: ResponsiveValue<Color> | null\n labelFont?: ResponsiveValue<string>\n}>`\n display: flex;\n ${cssWidth('560px')}\n ${cssMargin()}\n ${p =>\n cssMediaRules([p.size] as const, ([size = 'medium']) => {\n switch (size) {\n case 'small':\n return css`\n font-size: 18px;\n\n ${Label} {\n font-size: 14px;\n }\n `\n case 'large':\n return css`\n font-size: 32px;\n\n ${Label} {\n font-size: 18px;\n }\n `\n default:\n return css`\n font-size: 24px;\n\n ${Label} {\n font-size: 16px;\n }\n `\n }\n })}\n\n ${Segment} {\n ${p =>\n cssMediaRules(\n [p.gap] as const,\n ([gap]) => css`\n margin: 0 ${gap == null ? 0 : `${gap.value / 2}${gap.unit}`};\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n `,\n )}\n }\n\n ${Block} {\n ${p =>\n cssMediaRules([p.shape] as const, ([shape = 'rounded']) => {\n switch (shape) {\n case 'pill':\n return css`\n border-radius: 500px;\n `\n case 'rounded':\n return css`\n border-radius: 6px;\n `\n default:\n return css`\n border-radius: 0;\n `\n }\n })}\n ${p =>\n cssMediaRules(\n [p.variant, p.blockColor, p.numberColor, p.numberFont] as const,\n ([\n variant = 'filled',\n blockColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n numberColor = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 },\n numberFont = 'sans-serif',\n ]) => {\n switch (variant) {\n case 'filled':\n return css`\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n background: ${colorToString(blockColor)};\n `\n case 'filled-split':\n return css`\n position: relative;\n color: ${colorToString(numberColor)};\n font-family: '${numberFont}';\n\n > span {\n position: relative;\n z-index: 1;\n }\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: calc(50% + 1px);\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n background: ${colorToString(blockColor)};\n }\n\n :after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: calc(50% + 1px);\n bottom: 0;\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit;\n background: ${colorToString(blockColor)};\n }\n `\n case 'outline':\n return css`\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n background: transparent;\n border: 2px solid ${colorToString(blockColor)};\n `\n case 'outline-split':\n return css`\n position: relative;\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n border: 2px solid ${colorToString(blockColor)};\n\n > span {\n position: relative;\n z-index: 1;\n }\n\n :before {\n content: '';\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 2px;\n margin-top: -1px;\n background: ${colorToString(blockColor)};\n }\n `\n default:\n return css`\n font-family: '${numberFont}';\n background: transparent;\n color: ${colorToString(numberColor)};\n padding-top: 0;\n padding-bottom: 0;\n `\n }\n },\n )}\n }\n\n ${Label} {\n ${p =>\n cssMediaRules(\n [p.labelColor, p.labelFont] as const,\n ([\n labelColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n labelFont = 'sans-serif',\n ]) => css`\n font-family: '${labelFont}';\n color: ${colorToString(labelColor)};\n `,\n )}\n }\n`\n\nconst getRemaining = (date: Props['date'] | undefined) => {\n if (date == null) return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n\n const timeDiff = new Date(date).getTime() - Date.now()\n\n if (timeDiff <= 0) return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n\n let delta = Math.abs(timeDiff) / 1000\n\n const days = Math.floor(delta / 86400)\n delta -= days * 86400\n\n const hours = Math.floor(delta / 3600) % 24\n delta -= hours * 3600\n\n const minutes = Math.floor(delta / 60) % 60\n delta -= minutes * 60\n\n const seconds = parseInt(String(delta % 60), 10)\n\n return { days, hours, minutes, seconds }\n}\n\nconst Countdown = forwardRef(function Countdown(\n {\n id,\n margin,\n width,\n date,\n variant,\n size,\n shape,\n gap,\n labelColor,\n labelFont,\n numberColor,\n numberFont,\n blockColor,\n daysLabel,\n hoursLabel,\n minutesLabel,\n secondsLabel,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const [{ days, hours, minutes, seconds }, setRemaining] = useState(getRemaining(date))\n\n useEffect(() => {\n setRemaining(getRemaining(date))\n\n const intervalId = setInterval(() => {\n setRemaining(getRemaining(date))\n }, 1000)\n\n return () => clearInterval(intervalId)\n }, [date])\n\n return (\n <Container\n ref={ref}\n id={id}\n width={width}\n margin={margin}\n variant={variant}\n size={size}\n shape={shape}\n labelColor={useColor(labelColor)}\n labelFont={labelFont}\n numberColor={useColor(numberColor)}\n numberFont={numberFont}\n blockColor={useColor(blockColor)}\n gap={gap}\n >\n <Segment>\n <Block>\n <span>{days}</span>\n </Block>\n <Label>{daysLabel == null ? 'Days' : daysLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{hours}</span>\n </Block>\n <Label>{hoursLabel == null ? 'Hours' : hoursLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{minutes}</span>\n </Block>\n <Label>{minutesLabel == null ? 'Minutes' : minutesLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{seconds}</span>\n </Block>\n <Label>{secondsLabel == null ? 'Seconds' : secondsLabel}</Label>\n </Segment>\n </Container>\n )\n})\n\nexport default Countdown\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Countdown, {\n type: './components/Countdown/index.js',\n label: 'Countdown',\n icon: 'Countdown40',\n props: {\n id: Props.ElementID(),\n // TODO: Make this a function\n date: Props.Date({\n preset: new Date(Date.now() + 1000 * 60 * 60 * 24 * 2).toISOString(),\n }),\n variant: Props.ResponsiveIconRadioGroup({\n label: 'Style',\n options: [\n { label: 'Filled', value: 'filled', icon: 'CountdownSolid16' },\n {\n label: 'Filled split',\n value: 'filled-split',\n icon: 'CountdownSolidSplit16',\n },\n { label: 'Outline', value: 'outline', icon: 'CountdownOutline16' },\n {\n label: 'Outline split',\n value: 'outline-split',\n icon: 'CountdownOutlineSplit16',\n },\n { label: 'Clear', value: 'clear', icon: 'CountdownNaked16' },\n ],\n defaultValue: 'filled',\n }),\n shape: Props.ResponsiveIconRadioGroup({\n label: 'Shape',\n options: [\n { label: 'Pill', value: 'pill', icon: 'ButtonPill16' },\n { label: 'Rounded', value: 'rounded', icon: 'ButtonRounded16' },\n { label: 'Square', value: 'square', icon: 'ButtonSquare16' },\n ],\n defaultValue: 'rounded',\n }),\n size: Props.ResponsiveIconRadioGroup({\n label: 'Size',\n options: [\n { label: 'Small', value: 'small', icon: 'SizeSmall16' },\n { label: 'Medium', value: 'medium', icon: 'SizeMedium16' },\n { label: 'Large', value: 'large', icon: 'SizeLarge16' },\n ],\n defaultValue: 'medium',\n }),\n gap: Props.GapX({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Gap',\n step: 1,\n min: 0,\n max: 100,\n defaultValue: { value: 0, unit: 'px' },\n }),\n numberFont: Props.Font({ label: 'Number font' }),\n numberColor: Props.ResponsiveColor({\n label: 'Number color',\n placeholder: 'white',\n }),\n blockColor: Props.ResponsiveColor({\n label: 'Block color',\n placeholder: 'black',\n }),\n labelFont: Props.Font({ label: 'Label font' }),\n labelColor: Props.ResponsiveColor({\n label: 'Label color',\n placeholder: 'black',\n }),\n width: Props.Width({ defaultValue: { value: 560, unit: 'px' } }),\n margin: Props.Margin(),\n daysLabel: Props.TextInput({ label: 'Days label', placeholder: 'Days' }),\n hoursLabel: Props.TextInput({ label: 'Hours label', placeholder: 'Hours' }),\n minutesLabel: Props.TextInput({\n label: 'Minutes label',\n placeholder: 'Minutes',\n }),\n secondsLabel: Props.TextInput({\n label: 'Seconds label',\n placeholder: 'Seconds',\n }),\n },\n })\n}\n","import { forwardRef, Ref } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ElementIDValue,\n MarginValue,\n ResponsiveColorValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useColor } from '../../hooks'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype DividerVariant = 'solid' | 'dashed' | 'dotted' | 'blended'\n\ntype Props = {\n id?: ElementIDValue\n variant?: ResponsiveSelectValue<DividerVariant>\n thickness?: ResponsiveLengthValue\n color?: ResponsiveColorValue\n width?: WidthValue\n margin?: MarginValue\n}\n\n// IE11 has a bug with Flexbox vertical centering with min height if height is not set.\n// Wrapping it in another flex container fixes it for some reason, read more here:\n// https://stackoverflow.com/questions/19371626/flexbox-not-centering-vertically-in-ie\nconst IE11MinHeightContainer = styled.div<{ width: Props['width']; margin: Props['margin'] }>`\n display: flex;\n width: 100%;\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 40px;\n width: 100%;\n`\n\nconst Line = styled.div<{\n variant: Props['variant']\n color?: ResponsiveValue<Color> | null\n thickness: Props['thickness']\n}>`\n ${p =>\n cssMediaRules(\n [p.variant, p.thickness, p.color] as const,\n ([\n variant = 'solid',\n thickness = { value: 1, unit: 'px' },\n color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => {\n switch (variant) {\n case 'solid':\n case 'dashed':\n case 'dotted':\n return css`\n border-bottom-width: ${thickness == null\n ? '1px'\n : `${thickness.value}${thickness.unit}`};\n border-bottom-style: ${variant};\n border-bottom-color: ${colorToString(color)};\n `\n\n case 'blended':\n return css`\n height: ${`${thickness.value}${thickness.unit}`};\n background: linear-gradient(\n ${[\n '90deg',\n colorToString({ swatch: color.swatch, alpha: 0 }),\n colorToString(color),\n colorToString({ swatch: color.swatch, alpha: 0 }),\n ].join(', ')}\n );\n `\n\n default:\n variant as never\n throw new Error(`Invalid variant ${variant}.`)\n }\n },\n )}\n`\n\nconst Divider = forwardRef(function Divider(\n { id, variant, thickness, color, width, margin }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <IE11MinHeightContainer ref={ref} id={id} width={width} margin={margin}>\n <Container>\n {/* @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop */}\n <Line variant={variant} thickness={thickness} color={useColor(color)} />\n </Container>\n </IE11MinHeightContainer>\n )\n})\n\nexport default Divider\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Divider, {\n type: './components/Divider/index.js',\n label: 'Divider',\n icon: 'Divider40',\n props: {\n id: Props.ElementID(),\n variant: Props.ResponsiveSelect({\n label: 'Style',\n labelOrientation: 'horizontal',\n options: [\n { value: 'solid', label: 'Solid' },\n { value: 'dashed', label: 'Dashed' },\n { value: 'dotted', label: 'Dotted' },\n { value: 'blended', label: 'Blended' },\n ],\n defaultValue: 'solid',\n }),\n thickness: Props.ResponsiveLength({\n label: 'Height',\n defaultValue: { value: 1, unit: 'px' },\n options: [{ value: 'px', label: 'Pixels', icon: 'Px16' }],\n }),\n color: Props.ResponsiveColor({ placeholder: 'black' }),\n width: Props.Width({ defaultValue: { value: 100, unit: '%' } }),\n margin: Props.Margin(),\n },\n })\n}\n","/* eslint-env browser */\n\nimport { useState, useEffect, useLayoutEffect, forwardRef, Ref, useImperativeHandle } from 'react'\nimport styled from 'styled-components'\n\nimport { cssMargin, cssWidth } from '../../utils/cssMediaRules'\nimport {\n ElementIDValue,\n MarginValue,\n TextAreaValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { Props } from '../../../prop-controllers'\nimport { ReactRuntime } from '../../../react'\n\ntype Props = {\n id?: ElementIDValue\n html?: TextAreaValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst Container = styled.div<{ width: Props['width']; margin: Props['margin'] }>`\n min-height: 15px;\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst defaultHtml = `<div style=\"padding: 24px; background-color: rgba(161, 168, 194, 0.18); overflow: hidden;\">\n<svg width=\"316\" height=\"168\" viewBox=\"0 0 316 168\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"70\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"78\" width=\"30\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"116\" width=\"78\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect y=\"20\" width=\"120\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"128\" y=\"20\" width=\"30\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"166\" y=\"20\" width=\"78\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect y=\"60\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"20\" y=\"80\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"40\" y=\"100\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"88\" y=\"100\" width=\"110\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"206\" y=\"100\" width=\"24\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"238\" y=\"100\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"40\" y=\"120\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"88\" y=\"120\" width=\"50\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"146\" y=\"120\" width=\"24\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"178\" y=\"120\" width=\"90\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.25\"/>\n<rect x=\"276\" y=\"120\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect x=\"20\" y=\"140\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n<rect y=\"160\" width=\"40\" height=\"8\" rx=\"2\" fill=\"#A1A8C2\" fill-opacity=\"0.5\"/>\n</svg>\n</div>`\nconst SCRIPT_TAG = 'script'\n\nconst Embed = forwardRef(function Embed(\n { id, width, margin, html = defaultHtml }: Props,\n ref: Ref<HTMLDivElement | null>,\n) {\n const [container, setContainer] = useState<HTMLDivElement | null>(null)\n const [shouldRender, setShouldRender] = useState(false)\n\n useLayoutEffect(() => {\n setShouldRender(true)\n }, [])\n\n useImperativeHandle(ref, () => container, [container])\n\n useEffect(() => {\n // TODO: When we SSR the editor, we can remove the editor check\n // and not run this effect on the first render.\n if (!container) return\n\n const walker = container.ownerDocument.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node: Element) {\n return node.tagName.toLowerCase() === SCRIPT_TAG\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_REJECT\n },\n })\n\n const nodes: Element[] = []\n\n while (walker.nextNode()) nodes.push(walker.currentNode as Element)\n\n // By default scripts appended dynamically will execute asyncrhonously. Here we ensure that\n // scripts are loaded synchronously since that's what a user usually expects with scripts in\n // embedded in HTML which usually comes from the server.\n //\n // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#notes\n async function executeScriptsInOrder() {\n for (let i = 0; i < nodes.length; i++) {\n await new Promise<void>(resolve => {\n const node = nodes[i]\n const script = node.ownerDocument.createElement(SCRIPT_TAG)\n\n script.textContent = node.textContent\n Array.from(node.attributes).forEach(({ name, value }) => {\n script.setAttribute(name, value)\n })\n\n script.onload = () => resolve()\n script.onerror = () => resolve()\n\n node.parentNode?.insertBefore(script, node)\n node.parentNode?.removeChild(node)\n\n if (!script.hasAttribute('src')) resolve()\n })\n }\n }\n\n executeScriptsInOrder().catch(error => {\n // Ignore errors from user-provided code\n console.error(error)\n })\n }, [container, html])\n\n if (shouldRender === false) return null\n\n return (\n <Container\n ref={setContainer}\n id={id}\n margin={margin}\n width={width}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n )\n})\n\nexport default Embed\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Embed, {\n type: './components/Embed/index.js',\n label: 'Embed',\n icon: 'Code40',\n props: {\n id: Props.ElementID(),\n html: Props.TextArea({ label: 'Code', rows: 20 }),\n width: Props.Width(),\n margin: Props.Margin(),\n },\n })\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+CiAgPHBhdGggZD0iTTI3IDE1SDFhMSAxIDAgMCAxLTEtMSAxIDEgMCAwIDEgMS0xaDI2YTEgMSAwIDAgMSAxIDEgMSAxIDAgMCAxLTEgMXptMC0xMEgxYTEgMSAwIDAgMC0xIDEgMSAxIDAgMCAwIDEgMWgyNmExIDEgMCAwIDAgMS0xIDEgMSAwIDAgMC0xLTF6bTAgMTZIMWExIDEgMCAwIDAtMSAxIDEgMSAwIDAgMCAxIDFoMjZhMSAxIDAgMCAwIDEtMSAxIDEgMCAwIDAtMS0xeiIvPgo8L3N2Zz4=\"","import styled, { css } from 'styled-components'\n\nimport { ResponsiveValue, Length } from '../../../prop-controllers/descriptors'\nimport { cssMediaRules } from '../../utils/cssMediaRules'\n\nconst GutterContainer = styled.div<{\n gutter?: ResponsiveValue<Length>\n first: boolean\n last: boolean\n}>`\n ${p =>\n cssMediaRules(\n [p.gutter],\n ([gutter = { value: 0, unit: 'px' }]) => css`\n padding-left: ${p.first ? '0px' : `${gutter.value / 2}${gutter.unit}`};\n padding-right: ${p.last ? '0px' : `${gutter.value / 2}${gutter.unit}`};\n `,\n )}\n`\n\nexport default GutterContainer\n","import styled from 'styled-components'\n\nimport { ResponsiveLengthValue } from '../../../../../prop-controllers/descriptors'\nimport GutterContainer from '../../../../shared/GutterContainer'\n\nconst PlaceholderLink = styled.div<{ width: number; button?: boolean }>`\n width: ${props => props.width}px;\n height: ${props => (props.button === true ? 32 : 8)}px;\n background-color: #a1a8c2;\n border-radius: ${props => (props.button === true ? 6 : 2)}px;\n opacity: 0.4;\n`\n\ntype Props = { gutter?: ResponsiveLengthValue }\n\nconst links = [{ width: 50 }, { width: 70 }, { width: 60 }, { width: 80, button: true }]\n\nexport default function LinksPlaceholder({ gutter }: Props): JSX.Element {\n return (\n <>\n {links.map((link, i) => (\n <GutterContainer key={i} gutter={gutter} first={i === 0} last={i === links.length - 1}>\n <PlaceholderLink {...link} />\n </GutterContainer>\n ))}\n </>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xIDJhMSAxIDAgMCAwLS43MDcgMS43MDdsMyAzYTEgMSAwIDAgMCAxLjQxNCAwbDMtM0ExIDEgMCAwIDAgNyAySDF6Ii8+PC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00IDBhMSAxIDAgMCAwLTEgMXYySDFhMSAxIDAgMSAwIDAgMmgydjJhMSAxIDAgMCAwIDIgMFY1aDJhMSAxIDAgMCAwIDAtMkg1VjFhMSAxIDAgMCAwLTEtMXoiLz48L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik01IDFhMSAxIDAgMCAwLTIgMHYzLjU4NmwtLjI5My0uMjkzYTEgMSAwIDAgMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMCAwIDEuNDE0IDBsMi0yYTEgMSAwIDAgMC0xLjQxNC0xLjQxNEw1IDQuNTg2VjF6Ii8+PC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNLjI5MyAyLjI5M2ExIDEgMCAwIDEgMS40MTQgMEw0IDQuNTg2bDIuMjkzLTIuMjkzYTEgMSAwIDAgMSAxLjQxNCAxLjQxNGwtMyAzYTEgMSAwIDAgMS0xLjQxNCAwbC0zLTNhMSAxIDAgMCAxIDAtMS40MTR6Ii8+PC9zdmc+\"","import { ComponentPropsWithoutRef, useRef, useState, useLayoutEffect } from 'react'\nimport styled, { css, keyframes } from 'styled-components'\n\nimport { ReactComponent as CaretDown8 } from '../../../../icons/caret-down-8.svg'\nimport { ReactComponent as Plus8 } from '../../../../icons/plus-8.svg'\nimport { ReactComponent as ArrowDown8 } from '../../../../icons/arrow-down-8.svg'\nimport { ReactComponent as ChevronDown8 } from '../../../../icons/chevron-down-8.svg'\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ResponsiveColorValue,\n TextStyleValue,\n LinkValue,\n} from '../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport { useColor } from '../../../../hooks'\n\nimport { Link } from '../../../../shared/Link'\nimport Button from '../../../Button'\n\nconst DROP_DOWN_MENU_WIDTH = 200\n\ntype Position = 'left' | 'right'\n\nconst DropDownMenu = styled.div<{ position: Position }>`\n position: absolute;\n top: 100%;\n left: ${props => (props.position === 'left' ? 0 : 'auto')};\n right: ${props => (props.position === 'right' ? 0 : 'auto')};\n background: #fff;\n margin: 0;\n padding: 8px 0;\n border-radius: 4px;\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);\n width: ${DROP_DOWN_MENU_WIDTH}px;\n z-index: 99;\n list-style: none;\n overflow: hidden;\n transform-origin: 50% 0;\n will-change: transform, opacity;\n transform-style: preserve-3d;\n display: none;\n`\n\nconst dropIn = keyframes`\n 0% {\n opacity: 0;\n transform: rotateX(-20deg);\n }\n 100% {\n opacity: 1;\n transform: none;\n }\n`\n\nconst DropDownContainer = styled.div`\n position: relative;\n\n &:hover > ${DropDownMenu} {\n display: block;\n animation: ${dropIn} 0.25s;\n }\n`\n\nconst StyledDropDownItem = styled(Link)<{\n color?: ResponsiveValue<Color> | null\n textStyle?: TextStyleValue\n}>`\n display: block;\n text-decoration: none;\n line-height: 1.4;\n padding: 8px 16px;\n color: black;\n background-color: transparent;\n transition: background-color 0.2s;\n ${p =>\n cssMediaRules([p.color, p.textStyle] as const, ([color, textStyle = {}]) => {\n const fontSize = textStyle.fontSize || { value: 14, unit: 'px' }\n const fontWeight = textStyle.fontWeight == null ? 'normal' : textStyle.fontWeight\n const fontStyle = textStyle.fontStyle || []\n const letterSpacing = textStyle.letterSpacing == null ? null : textStyle.letterSpacing\n const textTransform = textStyle.textTransform || []\n\n return css`\n color: ${color == null ? 'black' : colorToString(color)};\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n font-weight: ${fontWeight};\n font-style: ${fontStyle.includes('italic') ? 'italic' : 'normal'};\n letter-spacing: ${letterSpacing == null ? 'normal' : `${letterSpacing}px`};\n text-transform: ${textTransform.includes('uppercase') ? 'uppercase' : 'none'};\n `\n })}\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.04);\n }\n`\n\ntype BaseDropDownItemProps = {\n color?: ResponsiveColorValue\n textStyle?: TextStyleValue\n}\n\ntype DropDownItemProps = BaseDropDownItemProps &\n Omit<ComponentPropsWithoutRef<typeof StyledDropDownItem>, keyof BaseDropDownItemProps>\n\nfunction DropDownItem({ color, ...restOfProps }: DropDownItemProps) {\n // @ts-expect-error: HTMLDivElement `color` attribute conflicts with prop.\n return <StyledDropDownItem {...restOfProps} color={useColor(color)} />\n}\n\ntype Props = ComponentPropsWithoutRef<typeof Button> & {\n label: string\n caret?: 'caret' | 'plus' | 'arrow-down' | 'chevron-down'\n links?: Array<{\n id: string\n payload: ComponentPropsWithoutRef<typeof DropDownItem> & {\n link?: LinkValue\n label: string\n }\n }>\n}\n\nexport default function DropDownButton({\n label,\n caret = 'caret',\n links = [],\n ...restOfProps\n}: Props): JSX.Element {\n const container = useRef<HTMLDivElement>(null)\n const [position, setPosition] = useState<Position>('left')\n\n useLayoutEffect(() => {\n if (\n container.current &&\n container.current.ownerDocument.defaultView!.innerWidth <\n container.current.offsetLeft + DROP_DOWN_MENU_WIDTH\n ) {\n setPosition('right')\n } else {\n setPosition('left')\n }\n }, [setPosition])\n\n return (\n <DropDownContainer ref={container}>\n <Button {...restOfProps}>\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span style={{ marginRight: 6 }}>{label}</span>\n <span style={{ display: 'inline-flex', fill: 'currentColor' }}>\n {caret === 'caret' && <CaretDown8 />}\n {caret === 'plus' && <Plus8 />}\n {caret === 'arrow-down' && <ArrowDown8 />}\n {caret === 'chevron-down' && <ChevronDown8 />}\n </span>\n </div>\n </Button>\n <DropDownMenu position={position}>\n {links.map(({ id, payload }) => (\n <DropDownItem {...payload} key={id}>\n {payload.label}\n </DropDownItem>\n ))}\n </DropDownMenu>\n </DropDownContainer>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy43MDcgMy43MDdhMSAxIDAgMCAwLTEuNDE0LTEuNDE0TDggNi41ODYgMy43MDcgMi4yOTNhMSAxIDAgMCAwLTEuNDE0IDEuNDE0TDYuNTg2IDhsLTQuMjkzIDQuMjkzYTEgMSAwIDEgMCAxLjQxNCAxLjQxNEw4IDkuNDE0bDQuMjkzIDQuMjkzYTEgMSAwIDAgMCAxLjQxNC0xLjQxNEw5LjQxNCA4bDQuMjkzLTQuMjkzWiIvPgo8L3N2Zz4=\"","import { ComponentPropsWithoutRef, useState } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules, cssTextStyle } from '../../../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n ResponsiveColorValue,\n TextStyleValue,\n LinkValue,\n} from '../../../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../../../utils/types'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { useColor } from '../../../../../../hooks'\n\nimport { ReactComponent as CaretDown8 } from '../../../../../../icons/caret-down-8.svg'\nimport { ReactComponent as Plus8 } from '../../../../../../icons/plus-8.svg'\nimport { ReactComponent as ArrowDown8 } from '../../../../../../icons/arrow-down-8.svg'\nimport { ReactComponent as ChevronDown8 } from '../../../../../../icons/chevron-down-8.svg'\n\nimport { Link } from '../../../../../../shared/Link'\nimport Button from '../../../../../Button'\n\nconst DropDownMenu = styled.div<{ open: boolean }>`\n display: ${props => (props.open ? 'flex' : 'none')};\n flex-direction: column;\n padding: 8px;\n`\n\nconst ButtonLink = styled(Button)`\n margin: 8px 0;\n`\n\nconst StyledLink = styled(Link)<{\n textStyle?: TextStyleValue\n color?: ResponsiveValue<Color> | null\n}>`\n text-decoration: none;\n line-height: 1.4;\n padding: 8px 16px;\n color: black;\n ${cssTextStyle()}\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color]) => css`\n color: ${color == null ? 'black' : colorToString(color)};\n `,\n )}\n`\n\ntype BaseDropDownItemProps = {\n color?: ResponsiveColorValue\n textStyle?: TextStyleValue\n}\n\ntype DropDownItemProps = BaseDropDownItemProps &\n Omit<ComponentPropsWithoutRef<typeof StyledLink>, keyof BaseDropDownItemProps>\n\nfunction DropDownItem({ color, ...restOfProps }: DropDownItemProps) {\n // @ts-expect-error: HTMLAnchorElement `color` attribute conflict with props\n return <StyledLink {...restOfProps} color={useColor(color)} />\n}\n\ntype Props = ComponentPropsWithoutRef<typeof Button> & {\n label: string\n links?: Array<{\n id: string\n payload: ComponentPropsWithoutRef<typeof DropDownItem> & {\n link?: LinkValue\n label: string\n }\n }>\n onClose?: () => unknown\n caret?: string\n}\n\nexport default function MobileDropDownButton({\n label,\n caret,\n links = [],\n onClose = () => {},\n ...restOfProps\n}: Props): JSX.Element {\n const [isOpen, setIsOpen] = useState(false)\n return (\n <>\n <ButtonLink {...restOfProps} onPointerDown={() => setIsOpen(prev => !prev)}>\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span style={{ marginRight: 6 }}>{label}</span>\n <span style={{ display: 'inline-flex', fill: 'currentColor' }}>\n <>\n {caret === 'caret' && <CaretDown8 />}\n {caret === 'plus' && <Plus8 />}\n {caret === 'arrow-down' && <ArrowDown8 />}\n {caret === 'chevron-down' && <ChevronDown8 />}\n </>\n </span>\n </div>\n </ButtonLink>\n <DropDownMenu open={isOpen}>\n {links.map(({ id, payload }) => (\n <DropDownItem {...payload} key={id} onClick={onClose}>\n {payload.label}\n </DropDownItem>\n ))}\n </DropDownMenu>\n </>\n )\n}\n","import { Fragment } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n} from '../../../../../prop-controllers/descriptors'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport { useColor } from '../../../../hooks'\nimport { ReactComponent as Times16 } from '../../../../icons/times-16.svg'\n\nimport Button from '../../../Button'\nimport DropDownButton from './components/MobileDropDownButton'\n\nconst ButtonLink = styled(Button)`\n margin: 8px 0;\n`\n\nconst Container = styled.div<{\n animation?: ResponsiveValue<'coverRight' | 'coverLeft'>\n backgroundColor?: ResponsiveValue<Color> | null\n open: boolean\n}>`\n position: fixed;\n flex-direction: column;\n width: 100%;\n padding: 40px 15px;\n transition: transform 300ms ease-in-out;\n overflow-y: auto;\n z-index: 9999;\n max-width: 575px;\n ${p =>\n cssMediaRules([p.animation, p.backgroundColor] as const, ([animation, backgroundColor]) =>\n animation == null\n ? css`\n display: none;\n `\n : css`\n display: flex;\n background-color: ${backgroundColor == null ? 'black' : colorToString(backgroundColor)};\n transform: ${p.open\n ? `translate3d(0,0,0)`\n : `translate3d(${{ coverRight: '', coverLeft: '-' }[animation]}100%, 0, 0)`};\n ${{\n coverRight: { top: 0, bottom: 0, right: 0 },\n coverLeft: { top: 0, bottom: 0, left: 0 },\n }[animation]}\n `,\n )}\n`\n\nconst CloseIconContainer = styled.button<{ color?: ResponsiveValue<Color> | null }>`\n position: absolute;\n top: 15px;\n right: 15px;\n padding: 0;\n border: 0;\n outline: 0;\n background: none;\n fill: currentColor;\n ${p =>\n cssMediaRules(\n [p.color] as const,\n ([color]) => css`\n color: ${color == null ? 'rgba(161, 168, 194, 0.5)' : colorToString(color)};\n `,\n )}\n`\n\ntype Props = {\n animation?: ResponsiveValue<'coverRight' | 'coverLeft'>\n backgroundColor?: ResponsiveColorValue\n closeIconColor?: ResponsiveColorValue\n links?: NavigationLinksValue\n onClose?: () => unknown\n open?: boolean\n}\n\nexport default function MobileMenu({\n animation,\n backgroundColor,\n open = false,\n closeIconColor,\n links = [],\n onClose = () => {},\n}: Props): JSX.Element {\n return (\n <Container animation={animation} backgroundColor={useColor(backgroundColor)} open={open}>\n {/* @ts-expect-error: HTMLButtonElement `color` attribute conflicts with prop */}\n <CloseIconContainer color={useColor(closeIconColor)} onClick={onClose}>\n <Times16 />\n </CloseIconContainer>\n <div\n style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', flexShrink: 0 }}\n >\n {links.map(link => (\n <Fragment key={link.id}>\n {link.type === 'button' && (\n <ButtonLink {...link.payload} onClick={onClose}>\n {link.payload.label}\n </ButtonLink>\n )}\n {link.type === 'dropdown' && <DropDownButton {...link.payload} onClose={onClose} />}\n </Fragment>\n ))}\n </div>\n </Container>\n )\n}\n","import { forwardRef, useState } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { ReactComponent as MobileMenu28 } from '../../icons/mobile-menu-28.svg'\n\nimport GutterContainer from '../../shared/GutterContainer'\nimport Image from '../Image'\nimport Button from '../Button'\nimport LinksPlaceholder from './components/LinksPlaceholder'\nimport DropDownButton from './components/DropDownButton'\nimport MobileMenu from './components/MobileMenu'\nimport {\n ResponsiveValue,\n CheckboxValue,\n ElementIDValue,\n GapXValue,\n ImageValue,\n LinkValue,\n MarginValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n TextInputValue,\n TextStyleValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssMargin, cssMediaRules, cssTextStyle, cssWidth } from '../../utils/cssMediaRules'\nimport { ColorValue as Color } from '../../utils/types'\nimport { colorToString } from '../../utils/colorToString'\nimport { useColor } from '../../hooks'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n links?: NavigationLinksValue\n linkTextStyle?: TextStyleValue\n showLogo?: CheckboxValue\n logoFile?: ImageValue\n logoWidth?: ResponsiveLengthValue\n logoAltText?: TextInputValue\n logoLink?: LinkValue\n alignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gutter?: GapXValue\n mobileMenuAnimation?: ResponsiveSelectValue<'coverRight' | 'coverLeft'>\n mobileMenuOpenIconColor?: ResponsiveColorValue\n mobileMenuCloseIconColor?: ResponsiveColorValue\n mobileMenuBackgroundColor?: ResponsiveColorValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst Container = styled.nav<{\n width: Props['width']\n margin: Props['margin']\n textStyle: Props['linkTextStyle']\n}>`\n display: flex;\n align-items: center;\n ${cssWidth()}\n ${cssMargin()}\n ${cssTextStyle()}\n`\n\nconst LinksContainer = styled.div<{\n alignment: Props['alignment']\n mobileMenuAnimation: Props['mobileMenuAnimation']\n}>`\n display: flex;\n align-items: center;\n flex-grow: 1;\n ${p =>\n cssMediaRules(\n [p.alignment, p.mobileMenuAnimation] as const,\n ([alignment = 'flex-end', mobileMenuAnimation]) => css`\n display: ${mobileMenuAnimation == null ? 'flex' : 'none'};\n justify-content: ${alignment};\n `,\n )}\n`\n\nconst OpenIconContainer = styled.button<{\n mobileMenuAnimation: Props['mobileMenuAnimation']\n alignment: Props['alignment']\n color: ResponsiveValue<Color> | null | undefined\n}>`\n display: none;\n flex-grow: 1;\n align-items: center;\n background: none;\n outline: 0;\n border: 0;\n padding: 0;\n fill: currentColor;\n ${p =>\n cssMediaRules(\n [p.mobileMenuAnimation, p.alignment, p.color] as const,\n ([mobileMenuAnimation, alignment = 'flex-end', color]) => css`\n display: ${mobileMenuAnimation == null ? 'none' : 'flex'};\n justify-content: ${alignment};\n color: ${color == null ? 'rgba(161, 168, 194, 0.5)' : colorToString(color)};\n `,\n )}\n`\n\nconst placeholder = {\n src: \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='93.12' height='36' viewBox='0 0 93.12 36'%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath d='M18,0A18,18,0,1,1,0,18,18,18,0,0,1,18,0ZM49.36,21.94h6.36V24H46.8V10h2.56Zm9.06.72a4.88,4.88,0,0,1-1.64-3.72,5,5,0,0,1,1.64-3.74,5.57,5.57,0,0,1,7.7,0,5.09,5.09,0,0,1,.26,7.18l-.26.26a5.56,5.56,0,0,1-7.7,0Zm1.68-6a3.39,3.39,0,0,0,0,4.52,3,3,0,0,0,4.24.08l.08-.08a3.39,3.39,0,0,0,0-4.52,3,3,0,0,0-4.24-.08Zm10,10.68,1-1.92a5.28,5.28,0,0,0,3.3,1.22,3.6,3.6,0,0,0,2.32-.72,2.73,2.73,0,0,0,.9-2.26V22.5a3.61,3.61,0,0,1-1.45,1.26,4.35,4.35,0,0,1-2,.46,4.57,4.57,0,0,1-3.58-1.54A5.48,5.48,0,0,1,69.2,18.9a5.42,5.42,0,0,1,1.36-3.74,4.64,4.64,0,0,1,3.62-1.5,4,4,0,0,1,3.44,1.72v-1.5h2.46v9a6.13,6.13,0,0,1-1.43,4.46,5.27,5.27,0,0,1-4,1.44,7.09,7.09,0,0,1-4.53-1.42Zm1.54-8.44a3.4,3.4,0,0,0,.82,2.3,2.72,2.72,0,0,0,2.17.94,3.13,3.13,0,0,0,1.21-.22,2.89,2.89,0,0,0,1-.62,3.08,3.08,0,0,0,.63-1,3.62,3.62,0,0,0,.21-1.3,4,4,0,0,0-.23-1.33,3.3,3.3,0,0,0-.63-1.05,2.74,2.74,0,0,0-1-.68,3.35,3.35,0,0,0-1.25-.24,2.92,2.92,0,0,0-1.2.24,2.58,2.58,0,0,0-.93.67,3,3,0,0,0-.59,1,3.89,3.89,0,0,0-.19,1.31ZM83.8,22.66a4.88,4.88,0,0,1-1.64-3.72A5,5,0,0,1,83.8,15.2a5.57,5.57,0,0,1,7.7,0,5.09,5.09,0,0,1,.26,7.18,3.19,3.19,0,0,1-.26.26,5.56,5.56,0,0,1-7.7,0Zm1.68-6a3.39,3.39,0,0,0,0,4.52,3,3,0,0,0,4.24.08l.08-.08a3.39,3.39,0,0,0,0-4.52,3,3,0,0,0-4.24-.08Z' fill='%23a1a8c2' opacity='0.4' style='isolation: isolate'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A\",\n dimensions: { width: 93, height: 36 },\n}\n\nconst Navigation = forwardRef<HTMLDivElement, Props>(function Navigation(\n {\n id,\n links = [],\n linkTextStyle,\n showLogo,\n logoFile,\n logoWidth,\n logoAltText,\n logoLink,\n alignment,\n gutter,\n mobileMenuAnimation,\n mobileMenuOpenIconColor,\n mobileMenuCloseIconColor,\n mobileMenuBackgroundColor,\n width,\n margin,\n },\n ref,\n) {\n const [isOpen, setIsOpen] = useState(false)\n\n return (\n <Container ref={ref} id={id} margin={margin} width={width} textStyle={linkTextStyle}>\n {showLogo === true && (\n <Image\n altText={logoAltText}\n file={logoFile}\n link={logoLink}\n placeholder={placeholder}\n width={logoWidth}\n />\n )}\n <div style={{ display: 'flex', flexGrow: 1, justifyContent: 'flex-end' }}>\n <LinksContainer alignment={alignment} mobileMenuAnimation={mobileMenuAnimation}>\n {links.length > 0 ? (\n links.map((link, i) => (\n <GutterContainer\n key={link.id}\n gutter={gutter}\n first={i === 0}\n last={i === links.length - 1}\n >\n {link.type === 'button' && <Button {...link.payload}>{link.payload.label}</Button>}\n {link.type === 'dropdown' && <DropDownButton {...link.payload} />}\n </GutterContainer>\n ))\n ) : (\n <LinksPlaceholder gutter={gutter} />\n )}\n </LinksContainer>\n <OpenIconContainer\n alignment={alignment}\n // @ts-expect-error: HTMLButtonElement `color` attribute conflicts with prop\n color={useColor(mobileMenuOpenIconColor)}\n mobileMenuAnimation={mobileMenuAnimation}\n onClick={() => setIsOpen(true)}\n >\n <MobileMenu28 />\n </OpenIconContainer>\n <MobileMenu\n animation={mobileMenuAnimation}\n backgroundColor={mobileMenuBackgroundColor}\n closeIconColor={mobileMenuCloseIconColor}\n links={links}\n onClose={() => setIsOpen(false)}\n open={isOpen}\n />\n </div>\n </Container>\n )\n})\n\nexport default Navigation\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Navigation, {\n type: './components/Navigation/index.js',\n label: 'Navigation',\n icon: 'Navigation40',\n props: {\n id: Props.ElementID(),\n links: Props.NavigationLinks(),\n linkTextStyle: Props.TextStyle({\n label: 'Link text style',\n // hidden: links == null || links.length === 0,\n }),\n showLogo: Props.Checkbox({ preset: true, label: 'Show logo' }),\n logoFile: Props.Image({\n label: 'Logo',\n // hidden: props.showLogo === false,\n }),\n logoWidth: Props.ResponsiveLength({\n // preset: [{ deviceId: 'desktop', value: { value: 100, unit: 'px' } }],\n label: 'Logo width',\n // min: 0,\n // max: 1000,\n options: [{ value: 'px', label: 'Pixels', icon: 'Px16' }],\n // hidden: props.showLogo === false,\n }),\n logoAltText: Props.TextInput({\n label: 'Logo alt text',\n // hidden: props.showLogo === false,\n }),\n logoLink: Props.Link({\n label: 'Logo on click',\n // hidden: props.showLogo === false,\n }),\n alignment: Props.ResponsiveIconRadioGroup({\n label: 'Alignment',\n options: [\n { label: 'Left', value: 'flex-start', icon: 'AlignLeft16' },\n { label: 'Center', value: 'center', icon: 'AlignCenter16' },\n { label: 'End', value: 'flex-end', icon: 'AlignRight16' },\n ],\n defaultValue: 'flex-end',\n }),\n gutter: Props.GapX({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Link gap',\n min: 0,\n max: 100,\n step: 1,\n defaultValue: { value: 0, unit: 'px' },\n }),\n mobileMenuAnimation: Props.ResponsiveSelect({\n label: 'Mobile menu',\n options: [\n { value: 'coverRight', label: 'Cover from right' },\n { value: 'coverLeft', label: 'Cover from left' },\n ],\n }),\n mobileMenuOpenIconColor: Props.ResponsiveColor({\n label: 'Open icon color',\n placeholder: 'rgba(161, 168, 194, 0.5)',\n // hidden: !findDeviceOverride(mobileMenuAnimation, device),\n }),\n mobileMenuCloseIconColor: Props.ResponsiveColor({\n label: 'Close icon color',\n placeholder: 'rgba(161, 168, 194, 0.5)',\n // hidden: !findDeviceOverride(mobileMenuAnimation, device),\n }),\n mobileMenuBackgroundColor: Props.ResponsiveColor({\n label: 'Menu BG color',\n placeholder: 'black',\n // hidden: !findDeviceOverride(mobileMenuAnimation, device),\n }),\n width: Props.Width({ defaultValue: { value: 100, unit: '%' } }),\n margin: Props.Margin(),\n },\n })\n}\n","import { forwardRef } from 'react'\nimport styled from 'styled-components'\n\nconst PlaceholderBase = styled.div`\n width: 100%;\n background: rgba(161, 168, 194, 0.18);\n height: 80px;\n padding: 8px;\n`\n\ntype Props = Record<string, never>\n\nexport default forwardRef<HTMLDivElement, Props>(function Placeholder(props: Props, ref) {\n return (\n <PlaceholderBase {...props} ref={ref}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n style={{ overflow: 'visible' }}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </PlaceholderBase>\n )\n})\n","import styled, { createGlobalStyle } from 'styled-components'\nimport { normalize } from 'polished'\nimport { forwardRef, Ref } from 'react'\n\nimport Placeholder from './components/Placeholder'\nimport {\n GridValue,\n BackgroundsValue,\n GapXValue,\n GapYValue,\n} from '../../../prop-controllers/descriptors'\nimport { Element, ReactRuntime } from '../../../react'\nimport { cssGridItem } from '../../utils/cssMediaRules'\nimport BackgroundsContainer from '../../shared/BackgroundsContainer'\nimport { Props } from '../../../prop-controllers'\n\nconst Normalize = createGlobalStyle`\n html {\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n box-sizing: inherit;\n }\n\n ${normalize()}\n`\n\nconst Grid = styled.div`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n`\n\nconst GridItem = styled.div`\n display: flex;\n align-items: flex-start;\n ${cssGridItem()}\n`\n\ntype Props = {\n children?: GridValue\n backgrounds?: BackgroundsValue\n rowGap?: GapYValue\n columnGap?: GapXValue\n}\n\nconst Root = forwardRef(function Page(\n { children, backgrounds, rowGap, columnGap }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <>\n <Normalize />\n <BackgroundsContainer ref={ref} style={{ background: 'white' }} backgrounds={backgrounds}>\n <Grid>\n {children && children.elements.length > 0 ? (\n children.elements.map((child, index) => (\n <GridItem\n key={child.key}\n grid={children.columns}\n index={index}\n columnGap={columnGap}\n rowGap={rowGap}\n >\n <Element element={child} />\n </GridItem>\n ))\n ) : (\n <Placeholder />\n )}\n </Grid>\n </BackgroundsContainer>\n </>\n )\n})\n\nexport default Root\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Root, {\n type: './components/Root/index.js',\n label: 'Page',\n hidden: true,\n props: {\n children: Props.Grid(),\n backgrounds: Props.Backgrounds(),\n rowGap: Props.GapY(),\n columnGap: Props.GapX(),\n },\n })\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTMuNzQxMiw4LjI5NjcgQzE0LjM1ODIsNi42Mjk3IDE0LjgzOTIsNS4yNTQ3IDE1LjE4NDIsNC4xNjg3IEMxNS41MjkyLDMuMDgzNyAxNS43MDIyLDIuNDE3NyAxNS43MDIyLDIuMTcwNyBDMTUuNzAyMiwxLjkwNDcgMTUuNjQ0MiwxLjY5ODcgMTUuNTI5MiwxLjU1MTcgQzE1LjQxNDIsMS40MDU3IDE1LjI1NjIsMS4zMzI3IDE1LjA1MzIsMS4zMzI3IEMxNC43OTYyLDEuMzMyNyAxNC41MzMyLDEuNTQ1NyAxNC4yNjYyLDEuOTcwNyBDMTMuOTk5MiwyLjM5NjcgMTMuNzA1MiwzLjA4MTcgMTMuMzgzMiw0LjAyNDcgTDEyLjAwMjIsNy45OTQ3IEwxMy43NDEyLDguMjk2NyBaIE0xMS45MDUyLDExLjk5MTcgQzExLjUxMDIsMTEuOTczNyAxMS4xMzQyLDExLjkzMjcgMTAuNzgwMiwxMS44Njc3IEMxMC40MjYyLDExLjgwNDcgMTAuMDg3MiwxMS43MTI3IDkuNzY1MiwxMS41OTM3IEM5LjkxMjIsMTEuODg2NyAxMC4wNDMyLDEyLjE3OTcgMTAuMTU4MiwxMi40NzI3IEMxMC4yNzQyLDEyLjc2NTcgMTAuMzY4MiwxMy4wNTQ3IDEwLjQ0MjIsMTMuMzM4NyBDMTAuNjYyMiwxMy4wNjM3IDEwLjg5NTIsMTIuODEzNyAxMS4xMzgyLDEyLjU4ODcgQzExLjM4MzIsMTIuMzY0NyAxMS42MzgyLDEyLjE2NTcgMTEuOTA1MiwxMS45OTE3IEwxMS45MDUyLDExLjk5MTcgWiBNMTAuMzQ1Miw3LjgyOTcgTDguODU0MiwzLjU0MzcgQzguNDY3MiwyLjQ1NDcgOC4xNjgyLDEuNzQyNyA3Ljk1NjIsMS40MDc3IEM3Ljc0NDIsMS4wNzM3IDcuNTE0MiwwLjkwNjcgNy4yNjYyLDAuOTA2NyBDNy4wNzMyLDAuOTA2NyA2LjkxNjIsMC45Nzk3IDYuNzk3MiwxLjEyNjcgQzYuNjc3MiwxLjI3MjcgNi42MTcyLDEuNDY5NyA2LjYxNzIsMS43MTY3IEM2LjYxNzIsMi4xMzg3IDYuNzc4MiwyLjg3MDcgNy4xMDAyLDMuOTE0NyBDNy40MjMyLDQuOTU4NyA3LjkwNjIsNi4zMjc3IDguNTUwMiw4LjAyMTcgQzguNjA1Miw3LjkyMTcgOC42ODMyLDcuODUwNyA4Ljc4NTIsNy44MDg3IEM4Ljg4NjIsNy43Njc3IDkuMDI0Miw3Ljc0NzcgOS4xOTkyLDcuNzQ3NyBDOS4yNTQyLDcuNzQ3NyA5LjM2NTIsNy43NTI3IDkuNTMxMiw3Ljc2MDcgQzkuNjk2Miw3Ljc3MDcgOS45NjgyLDcuNzkzNyAxMC4zNDUyLDcuODI5NyBMMTAuMzQ1Miw3LjgyOTcgWiBNOC45OTIyLDE0LjQ2MzcgQzkuMTQ4MiwxNC40NjM3IDkuMjkxMiwxNC4zOTM3IDkuNDIwMiwxNC4yNTE3IEM5LjU0OTIsMTQuMTA5NyA5LjYxMzIsMTMuOTU2NyA5LjYxMzIsMTMuNzkxNyBDOS42MTMyLDEzLjYxNzcgOS40ODcyLDEzLjIxMjcgOS4yMzQyLDEyLjU3NTcgQzguOTgwMiwxMS45Mzk3IDguNjY1MiwxMS4zMTQ3IDguMjg4MiwxMC43MDA3IEM4LjAxMjIsMTAuMjQyNyA3Ljc0MDIsOS44OTc3IDcuNDczMiw5LjY2MzcgQzcuMjA2Miw5LjQyOTcgNi45NTMyLDkuMzEzNyA2LjcxNDIsOS4zMTM3IEM2LjUyMDIsOS4zMTM3IDYuMzA2Miw5LjQzNDcgNi4wNzIyLDkuNjc2NyBDNS44MzcyLDkuOTE5NyA1LjcyMDIsMTAuMTQ2NyA1LjcyMDIsMTAuMzU3NyBDNS43MjAyLDEwLjU3NjcgNS44MzUyLDEwLjkwNjcgNi4wNjUyLDExLjM0NTcgQzYuMjk1MiwxMS43ODU3IDYuNjAzMiwxMi4yNTI3IDYuOTkwMiwxMi43NDc3IEM3LjM5NTIsMTMuMjg3NyA3Ljc3NzIsMTMuNzA4NyA4LjEzNjIsMTQuMDEwNyBDOC40OTUyLDE0LjMxMzcgOC43ODAyLDE0LjQ2MzcgOC45OTIyLDE0LjQ2MzcgTDguOTkyMiwxNC40NjM3IFogTTQuODUwMiwxNC4xMzQ3IEM0Ljk3OTIsMTQuMjkwNyA1LjE1ODIsMTQuNTE5NyA1LjM4ODIsMTQuODIxNyBDNS45OTYyLDE1LjY1NDcgNi41NTcyLDE2LjA3MTcgNy4wNzMyLDE2LjA3MTcgQzcuMjQ3MiwxNi4wNzE3IDcuNDA0MiwxNi4wMTY3IDcuNTQyMiwxNS45MDY3IEM3LjY4MDIsMTUuNzk2NyA3Ljc0OTIsMTUuNjgyNyA3Ljc0OTIsMTUuNTYzNyBDNy43NDkyLDE1LjQyNTcgNy42NTcyLDE1LjE5NjcgNy40NzMyLDE0Ljg3NjcgQzcuMjg5MiwxNC41NTU3IDcuMDM2MiwxNC4xOTQ3IDYuNzE0MiwxMy43OTE3IEM2LjM0NTIsMTMuMzI0NyA2LjAzOTIsMTIuOTgzNyA1Ljc5NjIsMTIuNzY3NyBDNS41NTIyLDEyLjU1MjcgNS4zNTYyLDEyLjQ0NDcgNS4yMDkyLDEyLjQ0NDcgQzQuODg3MiwxMi40NDQ3IDQuNTkwMiwxMi42MTY3IDQuMzE4MiwxMi45NjA3IEM0LjA0NzIsMTMuMzAzNyAzLjkxMTIsMTMuNzA4NyAzLjkxMTIsMTQuMTc1NyBDMy45MTEyLDE0LjU1MTcgNC4wMDUyLDE0Ljk3MDcgNC4xOTQyLDE1LjQzMjcgQzQuMzgzMiwxNS44OTU3IDQuNjU3MiwxNi4zNTk3IDUuMDE1MiwxNi44MjY3IEM1LjU1ODIsMTcuNTUwNyA2LjIzMzIsMTguMTA2NyA3LjAzODIsMTguNDk1NyBDNy44NDQyLDE4Ljg4NTcgOC43MzQyLDE5LjA3OTcgOS43MTAyLDE5LjA3OTcgQzExLjUwNTIsMTkuMDc5NyAxMy4wMDgyLDE4LjQxMzcgMTQuMjE4MiwxNy4wODE3IEMxNS40MjgyLDE1Ljc0ODcgMTYuMDMzMiwxNC4wNzk3IDE2LjAzMzIsMTIuMDczNyBDMTYuMDMzMiwxMS40NjA3IDE1Ljk4NzIsMTAuOTczNyAxNS44OTUyLDEwLjYxMDcgQzE1LjgwNDIsMTAuMjQ5NyAxNS42NTEyLDkuOTg1NyAxNS40MzkyLDkuODIxNyBDMTUuMDYyMiw5LjUwOTcgMTQuMzI4Miw5LjIzMDcgMTMuMjM3Miw4Ljk4MzcgQzEyLjE0NjIsOC43MzU3IDExLjAwODIsOC42MTI3IDkuODIwMiw4LjYxMjcgQzkuNDg5Miw4LjYxMjcgOS4yNTQyLDguNjY3NyA5LjExNjIsOC43Nzc3IEM4Ljk3ODIsOC44ODc3IDguOTA5Miw5LjA3NDcgOC45MDkyLDkuMzQwNyBDOC45MDkyLDkuOTYzNyA5LjI1OTIsMTAuNDE0NyA5Ljk1ODIsMTAuNjkzNyBDMTAuNjU4MiwxMC45NzM3IDExLjc5MDIsMTEuMTEyNyAxMy4zNTUyLDExLjExMjcgTDEzLjkyMTIsMTEuMTEyNyBDMTQuMDUwMiwxMS4xMTI3IDE0LjE1MzIsMTEuMTYwNyAxNC4yMzEyLDExLjI1NjcgQzE0LjMwOTIsMTEuMzUyNyAxNC4zNjMyLDExLjQ5NzcgMTQuMzkwMiwxMS42ODk3IEMxNC4yMzMyLDExLjgzNjcgMTMuOTEyMiwxMi4wMDM3IDEzLjQyNDIsMTIuMTkxNyBDMTIuOTM2MiwxMi4zNzg3IDEyLjU2MzIsMTIuNTY0NyAxMi4zMDUyLDEyLjc0NzcgQzExLjc1NDIsMTMuMTUwNyAxMS4zMDkyLDEzLjYyODcgMTAuOTczMiwxNC4xODI3IEMxMC42MzcyLDE0LjczNjcgMTAuNDY5MiwxNS4yNjA3IDEwLjQ2OTIsMTUuNzU1NyBDMTAuNDY5MiwxNi4wNTc3IDEwLjU0MDIsMTYuNDIxNyAxMC42ODMyLDE2Ljg0NzcgQzEwLjgyNjIsMTcuMjczNyAxMC44OTcyLDE3LjUzNjcgMTAuODk3MiwxNy42Mzc3IEwxMC44OTcyLDE3LjczMzcgTDEwLjg2OTIsMTcuODU3NyBDMTAuNDY1MiwxNy44Mjk3IDEwLjE0NTIsMTcuNTkzNyA5LjkxMDIsMTcuMTQ5NyBDOS42NzUyLDE2LjcwNTcgOS41NTgyLDE2LjExMjcgOS41NTgyLDE1LjM3MDcgTDkuNTU4MiwxNS4yNDc3IEM5LjQ4NDIsMTUuMzExNyA5LjQxMzIsMTUuMzU3NyA5LjM0NDIsMTUuMzg0NyBDOS4yNzUyLDE1LjQxMjcgOS4xOTkyLDE1LjQyNTcgOS4xMTYyLDE1LjQyNTcgQzkuMDMzMiwxNS40MjU3IDguOTU1MiwxNS40MTk3IDguODgyMiwxNS40MDQ3IEM4LjgwNzIsMTUuMzkxNyA4LjcyNTIsMTUuMzcwNyA4LjYzMzIsMTUuMzQzNyBDOC42NjAyLDE1LjQ0NDcgOC42ODEyLDE1LjU0MjcgOC42OTUyLDE1LjYzODcgQzguNzA5MiwxNS43MzQ3IDguNzE2MiwxNS44MTA3IDguNzE2MiwxNS44NjU3IEM4LjcxNjIsMTYuMjA0NyA4LjU4MjIsMTYuNDk1NyA4LjMxNTIsMTYuNzM3NyBDOC4wNDgyLDE2Ljk4MDcgNy43MzEyLDE3LjEwMTcgNy4zNjMyLDE3LjEwMTcgQzYuNzgzMiwxNy4xMDE3IDYuMTk0MiwxNi44MTk3IDUuNTk1MiwxNi4yNTY3IEM0Ljk5NzIsMTUuNjkzNyA0LjY5ODIsMTUuMTQyNyA0LjY5ODIsMTQuNjAxNyBDNC42OTgyLDE0LjUwMDcgNC43MTAyLDE0LjQxMTcgNC43MzMyLDE0LjMzMzcgQzQuNzU1MiwxNC4yNTU3IDQuNzk1MiwxNC4xODk3IDQuODUwMiwxNC4xMzQ3IEw0Ljg1MDIsMTQuMTM0NyBaIE0xNC43MzUyLDguNTI5NyBDMTUuNTY0Miw4LjY4NjcgMTYuMTQ4Miw5LjAzMzcgMTYuNDg5Miw5LjU3MzcgQzE2LjgyOTIsMTAuMTE0NyAxNy4wMDAyLDEwLjk2NjcgMTcuMDAwMiwxMi4xMjk3IEMxNy4wMDAyLDE0LjQzNjcgMTYuMzAzMiwxNi4zMjU3IDE0LjkwODIsMTcuNzk1NyBDMTMuNTEzMiwxOS4yNjQ3IDExLjczMDIsMTkuOTk5NyA5LjU1ODIsMTkuOTk5NyBDOC43MDIyLDE5Ljk5OTcgNy44NzEyLDE5Ljg0NjcgNy4wNjYyLDE5LjUzOTcgQzYuMjYwMiwxOS4yMzM3IDUuNTY4MiwxOC44MDQ3IDQuOTg4MiwxOC4yNTU3IEM0LjMyNTIsMTcuNjUwNyAzLjgyODIsMTcuMDEyNyAzLjQ5NzIsMTYuMzM5NyBDMy4xNjUyLDE1LjY2NjcgMy4wMDAyLDE0Ljk3NzcgMy4wMDAyLDE0LjI3MjcgQzMuMDAwMiwxMy40ODQ3IDMuMTcwMiwxMi44NzU3IDMuNTExMiwxMi40NDQ3IEMzLjg1MTIsMTIuMDE0NyA0LjM4OTIsMTEuNzIxNyA1LjEyNjIsMTEuNTY2NyBDNC45ODgyLDExLjI0NTcgNC44ODcyLDEwLjk3NTcgNC44MjIyLDEwLjc1NTcgQzQuNzU4MiwxMC41MzU3IDQuNzI1MiwxMC4zNjY3IDQuNzI1MiwxMC4yNDc3IEM0LjcyNTIsOS44MzU3IDQuOTQ0Miw5LjQxNDcgNS4zODIyLDguOTgzNyBDNS44MTkyLDguNTUyNyA2LjIzMTIsOC4zMzc3IDYuNjE3Miw4LjMzNzcgQzYuNzgzMiw4LjMzNzcgNi45NTcyLDguMzY3NyA3LjE0MjIsOC40MjY3IEM3LjMyNjIsOC40ODY3IDcuNTM3Miw4LjU4NTcgNy43NzcyLDguNzIyNyBDNy4wNjgyLDYuNzI2NyA2LjU1MzIsNS4xODU3IDYuMjMxMiw0LjEwMDcgQzUuOTA4MiwzLjAxNDcgNS43NDcyLDIuMjY2NyA1Ljc0NzIsMS44NTQ3IEM1Ljc0NzIsMS4yODY3IDUuODk0MiwwLjgzNTcgNi4xODkyLDAuNTAxNyBDNi40ODQyLDAuMTY3NyA2Ljg4NDIsLTAuMDAwMyA3LjM5MDIsLTAuMDAwMyBDOC4yNTUyLC0wLjAwMDMgOS4zNTEyLDEuOTIyNyAxMC42NzYyLDUuNzY5NyBDMTAuOTA2Miw2LjQyODcgMTEuMDgxMiw2LjkzNjcgMTEuMjAxMiw3LjI5NDcgQzExLjMwMzIsNy4wMDk3IDExLjQ0NTIsNi42MDc3IDExLjYyOTIsNi4wODU3IEMxMi45NTUyLDIuMjc1NyAxNC4wOTUyLDAuMzcwNyAxNS4wNTMyLDAuMzcwNyBDMTUuNTIyMiwwLjM3MDcgMTUuODk3MiwwLjUyODcgMTYuMTc5MiwwLjg0NDcgQzE2LjQ1OTIsMS4xNjA3IDE2LjU5OTIsMS41ODQ3IDE2LjU5OTIsMi4xMTU3IEMxNi41OTkyLDIuNTE4NyAxNi40NDUyLDMuMjU1NyAxNi4xMzcyLDQuMzI2NyBDMTUuODI4Miw1LjM5ODcgMTUuMzYxMiw2Ljc5OTcgMTQuNzM1Miw4LjUyOTcgTDE0LjczNTIsOC41Mjk3IFoiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTguMjgxLDExLjQzODMgTDE2LjEzMiwxMC4wMDAzIEwxOC4yODEsOC41NjIzIEwxOC4yODEsMTEuNDM4MyBaIE0xMC44NTksMTcuNTM0MyBMMTAuODU5LDEzLjUyNjMgTDE0LjU4NiwxMS4wMzQzIEwxNy41OTQsMTMuMDQ1MyBMMTAuODU5LDE3LjUzNDMgWiBNMTAsMTIuMDMzMyBMNi45NjEsMTAuMDAwMyBMMTAsNy45NjYzIEwxMy4wNCwxMC4wMDAzIEwxMCwxMi4wMzMzIFogTTkuMTQxLDE3LjUzNDMgTDIuNDA3LDEzLjA0NTMgTDUuNDE1LDExLjAzNDMgTDkuMTQxLDEzLjUyNjMgTDkuMTQxLDE3LjUzNDMgWiBNMS43MTksOC41NjIzIEwzLjg2OSwxMC4wMDAzIEwxLjcxOSwxMS40MzgzIEwxLjcxOSw4LjU2MjMgWiBNOS4xNDEsMi40NjUzIEw5LjE0MSw2LjQ3NDMgTDUuNDE1LDguOTY2MyBMMi40MDcsNi45NTQzIEw5LjE0MSwyLjQ2NTMgWiBNMTAuODU5LDIuNDY1MyBMMTcuNTk0LDYuOTU0MyBMMTQuNTg2LDguOTY2MyBMMTAuODU5LDYuNDc0MyBMMTAuODU5LDIuNDY1MyBaIE0xOS45ODUsNi44MDMzIEMxOS45NDQsNi41ODAzIDE5LjgxMiw2LjM2MDMgMTkuNjE3LDYuMjM4MyBMMTAuNDc3LDAuMTQ0MyBDMTAuMTg4LC0wLjA0NzcgOS44MTIsLTAuMDQ3NyA5LjUyMywwLjE0NDMgTDAuMzgzLDYuMjM4MyBDMC4xNDgsNi4zOTQzIDAsNi42NzEzIDAsNi45NTMzIEwwLDEzLjA0NjMgQzAsMTMuMzI4MyAwLjE0OCwxMy42MDYzIDAuMzgzLDEzLjc2MTMgTDkuNTIzLDE5Ljg1NTMgQzkuNjY4LDE5Ljk1MjMgOS44MzQsMjAuMDAwMyAxMCwyMC4wMDAzIEMxMC4xNjcsMjAuMDAwMyAxMC4zMzMsMTkuOTUyMyAxMC40NzcsMTkuODU1MyBMMTkuNjE3LDEzLjc2MTMgQzE5Ljg1NCwxMy42MTMzIDIwLDEzLjMyMzMgMjAsMTMuMDQ2MyBMMjAsNi45NTMzIEMyMC4wMDEsNi45MDIzIDE5Ljk5Niw2Ljg1MzMgMTkuOTg1LDYuODAzMyBMMTkuOTg1LDYuODAzMyBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTkuNzk3LDcuOTg4MyBDMTkuNjY0LDcuMzQ0MyAxOS40NjgsNi43MTQzIDE5LjIxMiw2LjEwODMgQzE4Ljk2MSw1LjUxMzMgMTguNjUyLDQuOTQ1MyAxOC4yOSw0LjQxMDMgQzE1LjIwMywtMC4xNjg3IDguOTg4LC0xLjM3NzcgNC40MDksMS43MDkzIEMzLjM0NCwyLjQyNzMgMi40MjcsMy4zNDQzIDEuNzA5LDQuNDEwMyBDMC45NzcsNS40OTIzIDAuNDY1LDYuNzA4MyAwLjIwMiw3Ljk4ODMgQy0wLjA2Nyw5LjMxNzMgLTAuMDY3LDEwLjY4NjMgMC4yMDIsMTIuMDE1MyBDMC40NjYsMTMuMjk1MyAwLjk3OCwxNC41MTAzIDEuNzA5LDE1LjU5MzMgQzIuNDI3LDE2LjY1NzMgMy4zNDMsMTcuNTc0MyA0LjQwNywxOC4yOTIzIEM0Ljk0MywxOC42NTMzIDUuNTEyLDE4Ljk2MjMgNi4xMDcsMTkuMjE0MyBDOC41OTYsMjAuMjYxMyAxMS40MDIsMjAuMjYxMyAxMy44OTMsMTkuMjE0MyBDMTQuNDg2LDE4Ljk2MjMgMTUuMDU2LDE4LjY1MzMgMTUuNTkxLDE4LjI5MjMgQzE2LjY1NSwxNy41NzQzIDE3LjU3MiwxNi42NTgzIDE4LjI5LDE1LjU5MzMgQzE5LjAyMiwxNC41MTAzIDE5LjUzMywxMy4yOTUzIDE5Ljc5NywxMi4wMTUzIEMyMC4wNjcsMTAuNjg2MyAyMC4wNjcsOS4zMTczIDE5Ljc5Nyw3Ljk4ODMgTDE5Ljc5Nyw3Ljk4ODMgWiBNMTguNTM3LDkuOTE1MyBDMTYuNTgsOS41MjIzIDE0LjU3NSw5LjQyNzMgMTIuNTksOS42MzUzIEMxMi41MjgsOS40OTAzIDEyLjQ2OSw5LjM0MjMgMTIuNDA4LDkuMTk2MyBDMTIuMjI2LDguNzc3MyAxMi4wMzksOC4zNjMzIDExLjg0LDcuOTU2MyBDMTMuNzAxLDcuMjgwMyAxNS4zNDYsNi4xMTIzIDE2LjU5OCw0LjU3NzMgQzE3LjgzOCw2LjA4MTMgMTguNTI0LDcuOTY2MyAxOC41NCw5LjkxNTMgTDE4LjUzNyw5LjkxNTMgWiBNMTUuNjQxLDMuNTkzMyBDMTQuNDkzLDUuMDQ0MyAxMi45NDEsNi4xMjAzIDExLjE3OSw2LjY4MzMgQzEwLjIzLDQuOTUyMyA5LjE2MywzLjI4ODMgNy45ODcsMS43MDIzIEMxMC42OTMsMS4wNDMzIDEzLjU1MiwxLjc0OTMgMTUuNjQxLDMuNTkyMyBMMTUuNjQxLDMuNTkzMyBaIE02LjM1NywyLjI3OTMgQzcuNTA2LDMuODU2MyA4LjU2Niw1LjQ5OTMgOS41MjgsNy4xOTgzIEM2Ljk1NCw3Ljg3NzMgNC4zMDUsOC4yMjczIDEuNjQzLDguMjQxMyBDMi4xOTUsNS42MjYzIDMuOTM5LDMuNDE5MyA2LjM1NywyLjI3OTMgTDYuMzU3LDIuMjc5MyBaIE0xLjQ2MSwxMC4wMDAzIEMxLjQ2MSw5LjkwOTMgMS40NjUsOS44MTgzIDEuNDY4LDkuNzI3MyBDNC40MzMsOS43MzkzIDcuMzg1LDkuMzI5MyAxMC4yMzUsOC41MTAzIEMxMC40OCw4Ljk4OTMgMTAuNzE0LDkuNDc3MyAxMC45MjgsOS45NjQzIEMxMC44MTYsOS45OTQzIDEwLjcwMywxMC4wMjkzIDEwLjU5MiwxMC4wNjYzIEM3LjcwNCwxMS4xMDEzIDUuMjU0LDEzLjA5MDMgMy42NDYsMTUuNzAyMyBDMi4yMzgsMTQuMTM2MyAxLjQ2MiwxMi4xMDUzIDEuNDY1LDEwLjAwMDMgTDEuNDYxLDEwLjAwMDMgWiBNMTAuMDA1LDE4LjU0NTMgQzguMDE5LDE4LjU0ODMgNi4wOTQsMTcuODU0MyA0LjU2NSwxNi41ODczIEM0LjY3NywxNi42NzczIDQuNzU2LDE2LjczNzMgNC43NTYsMTYuNzM3MyBDNC43NTYsMTYuNzM3MyA2LjM5MywxMy4xNjczIDExLjQ1OCwxMS40MDEzIEMxMS40NzcsMTEuMzk0MyAxMS40OTcsMTEuMzg5MyAxMS41MTYsMTEuMzg0MyBDMTIuMzI3LDEzLjQ4MzMgMTIuOTM4LDE1LjY1MzMgMTMuMzM5LDE3Ljg2ODMgQzEyLjI4NCwxOC4zMTUzIDExLjE1MSwxOC41NDYzIDEwLjAwNSwxOC41NDUzIEwxMC4wMDUsMTguNTQ1MyBaIE0xNC43NzcsMTcuMDgyMyBDMTQuNCwxNS4wMDYzIDEzLjg0MywxMi45NjUzIDEzLjExNSwxMC45ODMzIEMxNC44OTYsMTAuNzE5MyAxNi43MTIsMTAuODQ2MyAxOC40MzgsMTEuMzU2MyBDMTguMDYyLDEzLjY4OTMgMTYuNzM3LDE1Ljc2MjMgMTQuNzc3LDE3LjA4MzMgTDE0Ljc3NywxNy4wODIzIFoiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTguODk2IDBIMS4xMDRDLjQ5NCAwIDAgLjQ5NCAwIDEuMTA0djE3Ljc5MkMwIDE5LjUwNi40OTQgMjAgMS4xMDQgMjBoOS41OHYtNy43MzRIOC4wODZWOS4yMzhoMi41OThWNy4wMWMwLTIuNTgzIDEuNTc3LTMuOTg5IDMuODgxLTMuOTg5IDEuMTA0IDAgMi4wNTMuMDgyIDIuMzMuMTE5djIuNjk5bC0xLjU5LjAwMWMtMS4yNTQgMC0xLjQ5Ni41OTYtMS40OTYgMS40N3YxLjkyOGgyLjk5N2wtLjM5IDMuMDI4aC0yLjYwN1YyMGg1LjA4N2MuNjEgMCAxLjEwNC0uNDk0IDEuMTA0LTEuMTA0VjEuMTA0QzIwIC40OTQgMTkuNTA2IDAgMTguODk2IDAiLz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNOS45OTU4LDAuMDAyOSBDNC42MDU4LC0wLjEyNTEgMC4xMzE4LDQuMTM4OSAwLjAwMjgsOS41Mjg5IEMtMC4xMDEyLDEzLjg3NzkgMi42ODU4LDE3Ljc3MDkgNi44MzU4LDE5LjA3NDkgQzcuMDkzOCwxOS4xNzU5IDcuMzgzOCwxOS4wNDg5IDcuNDg0OCwxOC43OTE5IEM3LjUwNzgsMTguNzMxOSA3LjUxOTgsMTguNjY4OSA3LjUxODgsMTguNjA0OSBDNy41MTg4LDE4LjM3MDkgNy41MDk4LDE3Ljc1NTkgNy41MDU4LDE2LjkzOTkgQzQuNzIzOCwxNy41Mjk5IDQuMTM2OCwxNS42MjY5IDQuMTM2OCwxNS42MjY5IEMzLjk0OTgsMTUuMDMyOSAzLjU1NTgsMTQuNTI0OSAzLjAyNjgsMTQuMTk1OSBDMi4xMTc4LDEzLjU4ODkgMy4wOTU4LDEzLjYwMTkgMy4wOTU4LDEzLjYwMTkgQzMuNzMzOCwxMy42ODQ5IDQuMjk3OCwxNC4wNTY5IDQuNjI2OCwxNC42MDg5IEM1LjIxMTgsMTUuNjI3OSA2LjUwNTgsMTUuOTg5OSA3LjUzNTgsMTUuNDIyOSBDNy41ODI4LDE0LjkyMzkgNy44MDg4LDE0LjQ1ODkgOC4xNzE4LDE0LjExMzkgQzUuOTUwOCwxMy44NjY5IDMuNjE3OCwxMy4wMjM5IDMuNjE3OCw5LjI3NjkgQzMuNjAzOCw4LjMwMTkgMy45NzM4LDcuMzU4OSA0LjY0NTgsNi42NTE5IEM0LjM0MDgsNS44MDg5IDQuMzc1OCw0Ljg3OTkgNC43NDM4LDQuMDYyOSBDNC43NDM4LDQuMDYyOSA1LjU4MzgsMy43OTg5IDcuNDkzOCw1LjA2MTkgQzkuMTMzOCw0LjYyMzkgMTAuODU5OCw0LjYyMzkgMTIuNTAwOCw1LjA2MTkgQzE0LjQwOTgsMy43OTU5IDE1LjI0NzgsNC4wNjI5IDE1LjI0NzgsNC4wNjI5IEMxNS42MTY4LDQuODc4OSAxNS42NTE4LDUuODA4OSAxNS4zNDY4LDYuNjUxOSBDMTYuMDE5OCw3LjM1ODkgMTYuMzg5OCw4LjMwMTkgMTYuMzc0OCw5LjI3NjkgQzE2LjM3NDgsMTMuMDM2OSAxNC4wMzY4LDEzLjg2NDkgMTEuODA4OCwxNC4xMDY5IEMxMi4yOTA4LDE0LjU4MTkgMTIuNTM4OCwxNS4yNDQ5IDEyLjQ4ODgsMTUuOTE4OSBDMTIuNDg4OCwxNy4yMjg5IDEyLjQ3NTgsMTguMjgxOSAxMi40NzU4LDE4LjYwNDkgQzEyLjQ3MTgsMTguODc4OSAxMi42ODk4LDE5LjEwNjkgMTIuOTY0OCwxOS4xMTA5IEMxMy4wMzI4LDE5LjExMTkgMTMuMDk5OCwxOS4wOTk5IDEzLjE2MzgsMTkuMDczOSBDMTguMzA3OCwxNy40NTY5IDIxLjE2NTgsMTEuOTc2OSAxOS41NDc4LDYuODMyOSBDMTguMjQxOCwyLjY4MjkgMTQuMzQ2OCwtMC4xMDMxIDkuOTk1OCwwLjAwMjkiLz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTUuMzM4IDMuNDYyYTEuMiAxLjIgMCAxIDAgMCAyLjQgMS4yIDEuMiAwIDAgMCAwLTIuNE0xMCAxMy4zMzJhMy4zMzMgMy4zMzMgMCAxIDEgMC02LjY2NCAzLjMzMyAzLjMzMyAwIDAgMSAwIDYuNjY1bTAtOC40NjhhNS4xMzUgNS4xMzUgMCAxIDAgMCAxMC4yNyA1LjEzNSA1LjEzNSAwIDAgMCAwLTEwLjI3TTEwIDBDNy4yODQgMCA2Ljk0My4wMTIgNS44NzcuMDYgNC44MTMuMTA5IDQuMDg2LjI3OCAzLjQ1LjUyNWE0LjkxOSA0LjkxOSAwIDAgMC0xLjc3MiAxLjE1M0E0LjkwNSA0LjkwNSAwIDAgMCAuNTI1IDMuNDVDLjI3OCA0LjA4Ni4xMDkgNC44MTMuMDYgNS44NzcuMDExIDYuOTQ0IDAgNy4yODQgMCAxMHMuMDExIDMuMDU3LjA2IDQuMTIzYy4wNDkgMS4wNjUuMjE4IDEuNzkuNDY1IDIuNDI4YTQuODk4IDQuODk4IDAgMCAwIDEuMTUzIDEuNzcgNC44ODIgNC44ODIgMCAwIDAgMS43NzIgMS4xNTRjLjYzNi4yNDggMS4zNjMuNDE3IDIuNDI3LjQ2NSAxLjA2Ni4wNDggMS40MDcuMDYgNC4xMjMuMDZzMy4wNTYtLjAxMiA0LjEyMy0uMDZjMS4wNjUtLjA0OCAxLjc5MS0uMjE3IDIuNDI3LS40NjVhNC44NyA0Ljg3IDAgMCAwIDEuNzcxLTEuMTU0IDQuODg4IDQuODg4IDAgMCAwIDEuMTU0LTEuNzdjLjI0Ny0uNjM3LjQxNi0xLjM2My40NjUtMi40MjguMDQ4LTEuMDY2LjA2LTEuNDA3LjA2LTQuMTIzcy0uMDEyLTMuMDU2LS4wNi00LjEyM2MtLjA0OS0xLjA2NC0uMjE4LTEuNzkxLS40NjUtMi40MjdhNC44OTUgNC44OTUgMCAwIDAtMS4xNTQtMS43NzJBNC45MDcgNC45MDcgMCAwIDAgMTYuNTUuNTI1QzE1LjkxNC4yNzggMTUuMTg4LjEwOSAxNC4xMjMuMDYgMTMuMDU2LjAxMiAxMi43MTYgMCAxMCAwbTAgMS44MDJjMi42NyAwIDIuOTg2LjAxIDQuMDQxLjA1OC45NzUuMDQ1IDEuNTA1LjIwNyAxLjg1Ny4zNDUuNDY2LjE4Ljc5OS4zOTggMS4xNDkuNzQ4LjM1MS4zNDkuNTY3LjY4My43NDkgMS4xNDkuMTM3LjM1My4yOTkuODgyLjM0NCAxLjg1Ny4wNDggMS4wNTUuMDU4IDEuMzcuMDU4IDQuMDRzLS4wMSAyLjk4Ny0uMDU4IDQuMDQyYy0uMDQ1Ljk3NS0uMjA3IDEuNTA0LS4zNDQgMS44NTdhMy4xMSAzLjExIDAgMCAxLS43NDkgMS4xNWMtLjM1LjM1LS42ODMuNTY2LTEuMTQ5Ljc0OC0uMzUyLjEzNy0uODgyLjMtMS44NTcuMzQ0LTEuMDU1LjA0OS0xLjM3LjA1OC00LjA0MS4wNTgtMi42NyAwLTIuOTg3LS4wMS00LjA0MS0uMDU4LS45NzUtLjA0NC0xLjUwNC0uMjA3LTEuODU3LS4zNDRhMy4xMDQgMy4xMDQgMCAwIDEtMS4xNS0uNzQ4IDMuMTMzIDMuMTMzIDAgMCAxLS43NDgtMS4xNWMtLjEzNy0uMzUzLS4zLS44ODItLjM0NC0xLjg1Ny0uMDQ4LTEuMDU1LS4wNTgtMS4zNzEtLjA1OC00LjA0MSAwLTIuNjcuMDEtMi45ODYuMDU4LTQuMDQxLjA0NC0uOTc1LjIwNy0xLjUwNC4zNDQtMS44NTcuMTgyLS40NjYuMzk5LS44Ljc0OC0xLjE1LjM1LS4zNS42ODMtLjU2NiAxLjE1LS43NDcuMzUzLS4xMzguODgyLS4zIDEuODU3LS4zNDVDNy4wMTQgMS44MTIgNy4zMyAxLjgwMiAxMCAxLjgwMiIvPgo8L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMC41MTYsMTkuNjM4OSBMNC40MTIsMTkuNjM4OSBMNC40MTIsNy4yOTU5IEwwLjUxNiw3LjI5NTkgTDAuNTE2LDE5LjYzODkgWiBNMi4zNjUsNS43NTE5IEwyLjMzNyw1Ljc1MTkgQzEuMTUyLDUuODQ2OSAwLjExNCw0Ljk2MjkgMC4wMTksMy43NzY5IEMwLjAxNCwzLjcyMTkgMC4wMTIsMy42NjY5IDAuMDEyLDMuNjExOSBDLTAuMTE4LDIuMzA2OSAwLjgzNCwxLjE0MjkgMi4xNCwxLjAxMTkgQzMuNDQ2LDAuODgwOSA0LjYxLDEuODMzOSA0Ljc0LDMuMTM5OSBDNC44Nyw0LjQ0NTkgMy45MTgsNS42MDk5IDIuNjEyLDUuNzM5OSBDMi41Myw1Ljc0ODkgMi40NDcsNS43NTE5IDIuMzY1LDUuNzUxOSBMMi4zNjUsNS43NTE5IFogTTIwLDE5LjYzOTkgTDE1LjU4MywxOS42Mzk5IEwxNS41ODMsMTMuMjUxOSBDMTUuNTgzLDExLjU3OTkgMTQuODkxLDEwLjQzNTkgMTMuMzcyLDEwLjQzNTkgQzEyLjQxOCwxMC40MzU5IDExLjU2OSwxMS4wNDM5IDExLjI2MiwxMS45NDc5IEMxMS4xNzIsMTIuMjc1OSAxMS4xNCwxMi42MTc5IDExLjE3MiwxMi45NTY5IEwxMS4xNzIsMTkuNjM5OSBMNi43OTEsMTkuNjM5OSBDNi43OTEsMTkuNjM5OSA2Ljg0Nyw4LjMyNDkgNi43OTEsNy4yOTU5IEwxMS4xNjcsNy4yOTU5IEwxMS4xNjcsOS4yMzI5IEMxMS40MjYsOC4zODY5IDEyLjgyNCw3LjE3NjkgMTUuMDU1LDcuMTc2OSBDMTcuODI0LDcuMTc2OSAyMCw4Ljk1MjkgMjAsMTIuNzc1OSBMMjAsMTkuNjM5OSBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMi4zNzE2LDUuMjY0MiBDMi4zOTY2LDUuMDE2MiAyLjMwMjYsNC43NzIyIDIuMTE5Niw0LjYwNTIgTDAuMjUxNiwyLjMzOTIgTDAuMjUxNiwyLjAwMDIgTDYuMDUwNiwyLjAwMDIgTDEwLjUzMjYsMTEuOTA1MiBMMTQuNDcyNiwyLjAwMDIgTDE5Ljk5OTYsMi4wMDAyIEwxOS45OTk2LDIuMzM5MiBMMTguNDAzNiwzLjg4MTIgQzE4LjI2NTYsMy45ODcyIDE4LjE5NzYsNC4xNjAyIDE4LjIyNTYsNC4zMzIyIEwxOC4yMjU2LDE1LjY2NzIgQzE4LjE5NzYsMTUuODM5MiAxOC4yNjU2LDE2LjAxMzIgMTguNDAzNiwxNi4xMTkyIEwxOS45NjI2LDE3LjY2MTIgTDE5Ljk2MjYsMTguMDAwMiBMMTIuMTE5NiwxOC4wMDAyIEwxMi4xMTk2LDE3LjY2MTIgTDEzLjczNDYsMTYuMDgxMiBDMTMuODkzNiwxNS45MjEyIDEzLjg5MzYsMTUuODc0MiAxMy44OTM2LDE1LjYzMDIgTDEzLjg5MzYsNi40NjgyIEw5LjQwMjYsMTcuOTYyMiBMOC43OTU2LDE3Ljk2MjIgTDMuNTY2Niw2LjQ2ODIgTDMuNTY2NiwxNC4xNzIyIEMzLjUyMjYsMTQuNDk1MiAzLjYyOTYsMTQuODIxMiAzLjg1NjYsMTUuMDU2MiBMNS45NTY2LDE3LjYyNDIgTDUuOTU2NiwxNy45NjIyIEwtMC4wMDA0LDE3Ljk2MjIgTC0wLjAwMDQsMTcuNjI0MiBMMi4xMDA2LDE1LjA1NjIgQzIuMzI1NiwxNC44MjEyIDIuNDI1NiwxNC40OTMyIDIuMzcxNiwxNC4xNzIyIEwyLjM3MTYsNS4yNjQyIFoiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNOS45OTQ5LC0wLjAwMDEgQzQuNDc0OSwtMC4wMDAxIC0wLjAwMDEsNC40NzU5IC0wLjAwMDEsOS45OTU5IEMtMC4wMDAxLDEzLjk2NDkgMi4zNDg5LDE3LjU1NzkgNS45ODM5LDE5LjE1MDkgQzUuOTQwOSwxOC4zODA5IDUuOTk4OSwxNy42MDk5IDYuMTU1OSwxNi44NTQ5IEM2LjM0ODksMTYuMDQzOSA3LjQ0MTksMTEuNDA5OSA3LjQ0MTksMTEuNDA5OSBDNy4yMjQ5LDEwLjkxMDkgNy4xMTY5LDEwLjM3MDkgNy4xMjI5LDkuODI2OSBDNy4xMjI5LDguMzQ1OSA3Ljk4MjksNy4yMzk5IDkuMDQ5OSw3LjIzOTkgQzkuNzg5OSw3LjIyODkgMTAuMzk3OSw3LjgxOTkgMTAuNDA4OSw4LjU1OTkgQzEwLjQwODksOC42MjA5IDEwLjQwNTksOC42ODA5IDEwLjM5ODksOC43NDA5IEMxMC4yMDU5LDkuOTQ0OSA5LjkxMDksMTEuMTI5OSA5LjUxNTksMTIuMjg0OSBDOS4zMDQ5LDEzLjExMDkgOS44MDM5LDEzLjk1MjkgMTAuNjMwOSwxNC4xNjQ5IEMxMC43ODE5LDE0LjIwMjkgMTAuOTM3OSwxNC4yMTc5IDExLjA5MzksMTQuMjA5OSBDMTIuOTg3OSwxNC4yMDk5IDE0LjI2MzksMTEuNzc3OSAxNC4yNjM5LDguODk1OSBDMTQuMjYzOSw2LjcwNTkgMTIuNzg4OSw1LjA2NTkgMTAuMTAzOSw1LjA2NTkgQzcuNDkyOSw0Ljk2MTkgNS4yOTA5LDYuOTk0OSA1LjE4NjksOS42MDU5IEM1LjE4MzksOS42ODc5IDUuMTgyOSw5Ljc2OTkgNS4xODM5LDkuODUwOSBDNS4xNTI5LDEwLjU2MzkgNS4zODc5LDExLjI2MjkgNS44NDI5LDExLjgxMjkgQzYuMDA3OSwxMS45NDc5IDYuMDY1OSwxMi4xNzI5IDUuOTg1OSwxMi4zNzA5IEM1LjkzODksMTIuNTUyOSA1LjgyODksMTIuOTk4OSA1Ljc4MjksMTMuMTcyOSBDNS43NTI5LDEzLjM2MDkgNS41NzY5LDEzLjQ4ODkgNS4zODk5LDEzLjQ1NzkgQzUuMzUxOSwxMy40NTI5IDUuMzE1OSwxMy40NDA5IDUuMjgyOSwxMy40MjI5IEMzLjg4NTksMTIuODUzOSAzLjIzNTksMTEuMzI0OSAzLjIzNTksOS42MDY5IEMzLjIzNTksNi43Njc5IDUuNjI5OSwzLjM2MDkgMTAuMzc4OSwzLjM2MDkgQzE0LjE5NDksMy4zNjA5IDE2LjcwNzksNi4xMjQ5IDE2LjcwNzksOS4wODU5IEMxNi43MDc5LDEzLjAwNjkgMTQuNTI2OSwxNS45MzY5IDExLjMxMzksMTUuOTM2OSBDMTAuMzQxOSwxNS45NjE5IDkuNDIyOSwxNS40OTM5IDguODcxOSwxNC42OTE5IEM4Ljg3MTksMTQuNjkxOSA4LjI5MTksMTYuOTk0OSA4LjE2ODksMTcuNDM4OSBDNy45MzY5LDE4LjE5NjkgNy41OTg5LDE4LjkxNjkgNy4xNjI5LDE5LjU3OTkgQzEyLjQ1NTksMjEuMTQ3OSAxOC4wMTc5LDE4LjEyNjkgMTkuNTg1OSwxMi44MzM5IEMyMS4xNTI5LDcuNTQxOSAxOC4xMzM5LDEuOTc4OSAxMi44NDA5LDAuNDExOSBDMTEuOTE2OSwwLjEzNzkgMTAuOTU4OSwtMC4wMDAxIDkuOTk0OSwtMC4wMDAxIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTMuNDM4NCwxMy4wODI1IEMxMi42MDk0LDEzLjA4MjUgMTEuOTM3NCwxMi40MTA1IDExLjkzNzQsMTEuNTgwNSBDMTEuOTM3NCwxMC43NTE1IDEyLjYwOTQsMTAuMDc5NSAxMy40Mzg0LDEwLjA3OTUgQzE0LjI2NzQsMTAuMDc5NSAxNC45NDA0LDEwLjc1MTUgMTQuOTQwNCwxMS41ODA1IEMxNC45NzM0LDEyLjQwOTUgMTQuMzI4NCwxMy4xMDc1IDEzLjUwMDQsMTMuMTQxNSBDMTMuNDc0NCwxMy4xNDI1IDEzLjQ0OTQsMTMuMTQzNSAxMy40MjM0LDEzLjE0MjUgTDEzLjQzODQsMTMuMDgyNSBaIE0xMy43MDk0LDE1LjY0OTUgQzEyLjY0MzQsMTYuNDUyNSAxMS4zMzM0LDE2Ljg2MDUgMTAuMDAwNCwxNi44MDY1IEM4LjY2NzQsMTYuODYwNSA3LjM1NjQsMTYuNDUyNSA2LjI5MjQsMTUuNjQ5NSBDNi4xNDk0LDE1LjQ3NzUgNi4xNzQ0LDE1LjIyMTUgNi4zNDg0LDE1LjA3OTUgQzYuNDk3NCwxNC45NTY1IDYuNzEyNCwxNC45NTY1IDYuODYyNCwxNS4wNzk1IEM3Ljc2NTQsMTUuNzQxNSA4Ljg2NjQsMTYuMDc1NSA5Ljk4NTQsMTYuMDI0NSBDMTEuMTA1NCwxNi4wODY1IDEyLjIxMTQsMTUuNzYzNSAxMy4xMjM0LDE1LjEwOTUgQzEzLjI4OTQsMTQuOTQ3NSAxMy41NTQ0LDE0Ljk1MDUgMTMuNzE2NCwxNS4xMTY1IEMxMy44Nzc0LDE1LjI4MjUgMTMuODc1NCwxNS41NDg1IDEzLjcwOTQsMTUuNzA5NSBMMTMuNzA5NCwxNS42NDk1IFogTTQuOTg1NCwxMS41MjA1IEM0Ljk4NTQsMTAuNjkxNSA1LjY1NzQsMTAuMDE5NSA2LjQ4NjQsMTAuMDE5NSBDNy4zMTY0LDEwLjAxOTUgNy45ODg0LDEwLjY5MTUgNy45ODg0LDExLjUyMDUgQzcuOTg4NCwxMi4zNTA1IDcuMzE2NCwxMy4wMjE1IDYuNDg2NCwxMy4wMjE1IEM1LjY1NzQsMTMuMDIxNSA0Ljk4NTQsMTIuMzUwNSA0Ljk4NTQsMTEuNTIwNSBMNC45ODU0LDExLjUyMDUgWiBNMjAuMDAwNCwxMC4wMTk1IEMxOS45NTY0LDguODA5NSAxOC45Mzg0LDcuODY0NSAxNy43Mjk0LDcuOTA5NSBDMTcuMTkxNCw3LjkyODUgMTYuNjc5NCw4LjE0NTUgMTYuMjkxNCw4LjUxODUgQzE0LjU4MzQsNy4zNTY1IDEyLjU3NTQsNi43MTU1IDEwLjUxMDQsNi42NzE1IEwxMS40ODY0LDEuOTg2NSBMMTQuNzAwNCwyLjY2MjUgQzE0Ljc4ODQsMy40ODY1IDE1LjUyODQsNC4wODM1IDE2LjM1MzQsMy45OTQ1IEMxNy4xNzc0LDMuOTA2NSAxNy43NzQ0LDMuMTY1NSAxNy42ODU0LDIuMzQxNSBDMTcuNTk2NCwxLjUxNzUgMTYuODU2NCwwLjkyMDUgMTYuMDMyNCwxLjAwOTUgQzE1LjU1NzQsMS4wNjA1IDE1LjEzNDQsMS4zMzM1IDE0Ljg5NDQsMS43NDY1IEwxMS4yMTY0LDEuMDEwNSBDMTAuOTY1NCwwLjk1NjUgMTAuNzE2NCwxLjExNDUgMTAuNjYyNCwxLjM2NTUgQzEwLjY2MjQsMS4zNjc1IDEwLjY2MTQsMS4zNjk1IDEwLjY2MTQsMS4zNzE1IEw5LjU0OTQsNi41ODE1IEM3LjQ1OTQsNi42MTI1IDUuNDI0NCw3LjI1NDUgMy42OTQ0LDguNDI4NSBDMi44MTI0LDcuNTk4NSAxLjQyNTQsNy42NDA1IDAuNTk1NCw4LjUyMjUgQy0wLjIzMzYsOS40MDQ1IC0wLjE5MTYsMTAuNzkxNSAwLjY4OTQsMTEuNjIwNSBDMC44NjI0LDExLjc4MzUgMS4wNjE0LDExLjkxNzUgMS4yNzY0LDEyLjAxNjUgQzEuMjYwNCwxMi4yMzU1IDEuMjYwNCwxMi40NTc1IDEuMjc2NCwxMi42Nzc1IEMxLjI3NjQsMTYuMDQwNSA1LjE5NTQsMTguNzcyNSAxMC4wMzA0LDE4Ljc3MjUgQzE0Ljg2NTQsMTguNzcyNSAxOC43ODM0LDE2LjA0MDUgMTguNzgzNCwxMi42Nzc1IEMxOC44MDA0LDEyLjQ1NzUgMTguODAwNCwxMi4yMzU1IDE4Ljc4MzQsMTIuMDE2NSBDMTkuNTQwNCwxMS42NDA1IDIwLjAxMjQsMTAuODYzNSAyMC4wMDA0LDEwLjAxOTUgTDIwLjAwMDQsMTAuMDE5NSBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTUsMTkgQzE1LDExLjI4IDguNzIsNSAxLDUgQzAuNDQ3LDUgMCw1LjQ0OCAwLDYgQzAsNi41NTIgMC40NDcsNyAxLDcgQzcuNjE3LDcgMTMsMTIuMzgzIDEzLDE5IEMxMywxOS41NTMgMTMuNDQ3LDIwIDE0LDIwIEMxNC41NTMsMjAgMTUsMTkuNTUzIDE1LDE5IE0yMCwxOSBDMjAsOC41MjMgMTEuNDc3LDAgMSwwIEMwLjQ0NywwIDAsMC40NDggMCwxIEMwLDEuNTUyIDAuNDQ3LDIgMSwyIEMxMC4zNzQsMiAxOCw5LjYyNiAxOCwxOSBDMTgsMTkuNTUzIDE4LjQ0NywyMCAxOSwyMCBDMTkuNTUzLDIwIDIwLDE5LjU1MyAyMCwxOSBNMTAsMTkgQzEwLDE0LjAzNyA1Ljk2MywxMCAxLDEwIEMwLjQ0NywxMCAwLDEwLjQ0OCAwLDExIEMwLDExLjU1MiAwLjQ0NywxMiAxLDEyIEM0Ljg1OSwxMiA4LDE1LjE0MSA4LDE5IEM4LDE5LjU1MyA4LjQ0NywyMCA5LDIwIEM5LjU1MywyMCAxMCwxOS41NTMgMTAsMTkgTTUsMTcuNSBDNSwxOC44ODEgMy44ODEsMjAgMi41LDIwIEMxLjExOSwyMCAwLDE4Ljg4MSAwLDE3LjUgQzAsMTYuMTE5IDEuMTE5LDE1IDIuNSwxNSBDMy44ODEsMTUgNSwxNi4xMTkgNSwxNy41Ii8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTAuMTI2MDQzOSwxOSBDMTAuMDc1MDQ1MywxOSAxMC4wMjQwNDY4LDE4Ljk5ODA4MjMgOS45NzMwNDgyLDE4Ljk5NjE2NDUgQzkuOTQxMDQ5MSwxOC45OTgwODIzIDkuOTA3MDUwMDUsMTkgOS44NzQwNTA5OCwxOSBDOC42ODkwODQyMSwxOSA3LjkyODEwNTU1LDE4LjQ4NDEyNTMgNy4xOTMxMjYxNywxNy45ODU1MTAzIEM2LjY4NTE0MDQxLDE3LjY0MTI3NDIgNi4yMDYxNTM4NSwxNy4zMTcxNzQ1IDUuNjQxMTY5NjksMTcuMjI2MDgxNCBDNS4zNjYxNzc0LDE3LjE4MjkzMiA1LjA5MTE4NTExLDE3LjE2MDg3NzkgNC44MjcxOTI1MiwxNy4xNjA4Nzc5IEM0LjM0OTIwNTkyLDE3LjE2MDg3NzkgMy45NzIyMTY1LDE3LjIzMDg3NTggMy42OTcyMjQyMSwxNy4yODI2NTUgQzMuNTMwMjI4ODksMTcuMzE0Mjk3OSAzLjM4NjIzMjkzLDE3LjM0MjEwNTMgMy4yNzcyMzU5OSwxNy4zNDIxMDUzIEMzLjE2MjIzOTIxLDE3LjM0MjEwNTMgMy4wMzgyNDI2OSwxNy4zMTcxNzQ1IDIuOTg0MjQ0MiwxNy4xNDE3MDA0IEMyLjkzODI0NTQ5LDE2Ljk4NzMyMTUgMi45MDQyNDY0NSwxNi44Mzk2NTQ4IDIuODcxMjQ3MzcsMTYuNjk2NzgyNCBDMi43ODcyNDk3MywxNi4zMjc2MTU2IDIuNzI4MjUxMzgsMTYuMTAxMzIxMSAyLjU2NjI1NTkzLDE2LjA3NjM5MDQgQzAuNjg3MzA4NjIyLDE1Ljc5ODMxNjYgMC4xNDkzMjM3MDksMTUuNDE5NTYxIDAuMDI5MzI3MDc0NywxNS4xNDkxNTgzIEMwLjAxMjMyNzU1MTQsMTUuMTEwODAzMyAwLjAwMjMyNzgzMTg4LDE1LjA3MjQ0ODMgMC4wMDAzMjc4ODc5NjksMTUuMDM0MDkzMyBDLTAuMDA1NjcxOTQzNzcsMTQuOTMxNDkzNyAwLjA3MTMyNTg5NjgsMTQuODM5NDQxNyAwLjE3NzMyMjkyNCwxNC44MjMxNDA4IEMzLjA2NjI0MTksMTQuMzY2NzE2NCA0LjM2MTIwNTU5LDExLjUzNjExNzYgNC40MTUyMDQwNywxMS40MTYyNTgzIEM0LjQxNzIwNDAyLDExLjQxMjQyMjggNC40MTgyMDM5OSwxMS40MDk1NDYxIDQuNDIwMjAzOTMsMTEuNDA1NzEwNiBDNC41OTcxOTg5NywxMS4wNjI0MzM0IDQuNjMxMTk4MDIsMTAuNzY0MjIzMyA0LjUyMzIwMTA0LDEwLjUxOTcxMDIgQzQuMzI1MjA2NiwxMC4wNzA5NTY3IDMuNjc4MjI0NzQsOS44NzQzODczOSAzLjI1MTIzNjcyLDkuNzQ0OTM5MjcgQzMuMTQ2MjM5NjYsOS43MTIzMzc1MiAzLjA0NjI0MjQ3LDkuNjgyNjEyNCAyLjk2ODI0NDY1LDkuNjUyODg3MjggQzIuMTE0MjY4Niw5LjMyODc4NzU2IDIuMDQzMjcwNTksOC45OTcwMTY4MyAyLjA3NzI2OTY0LDguODI4MjU0ODUgQzIuMTM0MjY4MDQsOC41Mzk2MzM1IDIuNTM2MjU2NzcsOC4zMzgyNjk3NiAyLjg2MTI0NzY1LDguMzM4MjY5NzYgQzIuOTUwMjQ1MTYsOC4zMzgyNjk3NiAzLjAyOTI0Mjk0LDguMzUyNjUyODkgMy4wOTUyNDEwOSw4LjM4MjM3ODAxIEMzLjQ3OTIzMDMyLDguNTU0OTc1NSAzLjgyNTIyMDYyLDguNjQyMjMzMTEgNC4xMjQyMTIyMyw4LjY0MjIzMzExIEM0LjUzNzIwMDY1LDguNjQyMjMzMTEgNC43MTcxOTU2LDguNDc2MzQ3NzUgNC43MzkxOTQ5OSw4LjQ1NDI5MzYzIEM0LjcyOTE5NTI3LDguMjY3MzEzMDIgNC43MTYxOTU2Myw4LjA3MTcwMjU0IDQuNzAyMTk2MDIsNy44NjkzNzk5MyBDNC42MTYxOTg0NCw2LjU1OTU1Njc5IDQuNTEwMjAxNDEsNC45MzIzNDYwNSA0Ljk0MjE4OTI5LDQuMDAzMTk2MjUgQzYuMjM3MTUyOTgsMS4yMTk1ODIzNiA4Ljk4MzA3NTk3LDEuMDAyODc2NjIgOS43OTQwNTMyMiwxLjAwMjg3NjYyIEM5LjgxNDA1MjY2LDEuMDAyODc2NjIgMTAuMTQ5MDQzMywxIDEwLjE0OTA0MzMsMSBMMTAuMTk3MDQxOSwxIEMxMS4wMTAwMTkxLDEgMTMuNzYxOTQxOSwxLjIxNTc0Njg2IDE1LjA1NzkwNTYsNC4wMDEyNzg1IEMxNS40ODk4OTM1LDQuOTMxMzg3MTcgMTUuMzgyODk2NSw2LjU1OTU1Njc5IDE1LjI5Njg5ODksNy44Njg0MjEwNSBMMTUuMjkyODk5LDcuOTI0OTk0NjcgQzE1LjI4MTg5OTMsOC4xMDgxMzk3OCAxNS4yNjk4OTk3LDguMjg0NTcyNzcgMTUuMjU5ODk5OSw4LjQ1NDI5MzYzIEMxNS4yODA4OTkzLDguNDczNDcxMTMgMTUuNDQ2ODk0Nyw4LjYyNzg0OTk5IDE1LjgyMDg4NDIsOC42NDEyNzQyNCBMMTUuODIwODg0Miw4LjY0MTI3NDI0IEMxNi4xMDU4NzYyLDguNjMwNzI2NjEgMTYuNDMyODY3LDguNTQ0NDI3ODcgMTYuNzkxODU3LDguMzgyMzc4MDEgQzE2Ljg5Njg1NCw4LjMzNTM5MzE0IDE3LjAxMjg1MDgsOC4zMjU4MDQzOSAxNy4wOTI4NDg1LDguMzI1ODA0MzkgQzE3LjIxMzg0NTEsOC4zMjU4MDQzOSAxNy4zMzY4NDE3LDguMzQ4ODE3MzkgMTcuNDM4ODM4OCw4LjM4OTA5MDEzIEwxNy40NDU4Mzg2LDguMzkxOTY2NzYgQzE3LjczNTgzMDUsOC40ODk3NzIgMTcuOTI1ODI1Miw4LjY4NDQyMzYxIDE3LjkyOTgyNTEsOC44ODg2NjM5NyBDMTcuOTMzODI0OSw5LjA4MDQzODk1IDE3Ljc4MDgyOTIsOS4zNjkwNjAzIDE3LjAzMTg1MDIsOS42NTI4ODcyOCBDMTYuOTUzODUyNCw5LjY4MTY1MzUzIDE2Ljg1NDg1NTIsOS43MTIzMzc1MiAxNi43NDk4NTgxLDkuNzQ0OTM5MjcgQzE2LjMyMDg3MDIsOS44NzQzODczOSAxNS42NzQ4ODgzLDEwLjA3MDk1NjcgMTUuNDc2ODkzOCwxMC41MTg3NTEzIEMxNS4zNjc4OTY5LDEwLjc2MzI2NDQgMTUuNDAyODk1OSwxMS4wNjI0MzM0IDE1LjU3OTg5MSwxMS40MDU3MTA2IEMxNS41ODA4OTA5LDExLjQwODU4NzMgMTUuNTgyODkwOSwxMS40MTI0MjI4IDE1LjU4Mzg5MDgsMTEuNDE2MjU4MyBDMTUuNjM3ODg5MywxMS41MzYxMTc2IDE2LjkzMjg1MywxNC4zNjU3NTc1IDE5LjgyMjc3MiwxNC44MjMxNDA4IEMxOS45Mjg3NjksMTQuODM5NDQxNyAyMC4wMDQ3NjY5LDE0LjkzMDUzNDggMTkuOTk5NzY3LDE1LjAzNDA5MzMgQzE5Ljk5Njc2NzEsMTUuMDcyNDQ4MyAxOS45ODY3Njc0LDE1LjExMTc2MjIgMTkuOTY5NzY3OCwxNS4xNTAxMTcyIEMxOS44NTA3NzEyLDE1LjQxNzY0MzMgMTkuMzEzNzg2MiwxNS43OTYzOTg5IDE3LjQzMzgzOSwxNi4wNzU0MzE1IEMxNy4yNzk4NDMzLDE2LjA5ODQ0NDUgMTcuMjE5ODQ1LDE2LjI5MDIxOTUgMTcuMTI4ODQ3NSwxNi42OTE5ODgxIEMxNy4wOTU4NDg0LDE2LjgzODY5NTkgMTcuMDYxODQ5NCwxNi45ODI1MjcyIDE3LjAxNDg1MDcsMTcuMTM0MDI5NCBDMTYuOTc0ODUxOCwxNy4yNjQ0MzY0IDE2Ljg4OTg1NDIsMTcuMzI2NzYzMyAxNi43NDY4NTgyLDE3LjMyNjc2MzMgTDE2LjcyMjg1ODksMTcuMzI2NzYzMyBDMTYuNjIzODYxNywxNy4zMjY3NjMzIDE2LjQ4MTg2NTcsMTcuMzA4NTQ0NiAxNi4zMDE4NzA3LDE3LjI3NDk4NCBDMTUuOTgzODc5NiwxNy4yMTY0OTI2IDE1LjYyNjg4OTYsMTcuMTYwODc3OSAxNS4xNzI5MDI0LDE3LjE2MDg3NzkgQzE0LjkwNzkwOTgsMTcuMTYwODc3OSAxNC42MzM5MTc1LDE3LjE4MjkzMiAxNC4zNTc5MjUyLDE3LjIyNjA4MTQgQzEzLjc5Mzk0MSwxNy4zMTcxNzQ1IDEzLjMxNDk1NDUsMTcuNjQxMjc0MiAxMi44MDg5Njg3LDE3Ljk4NDU1MTUgQzEyLjA3MTk4OTMsMTguNDg0MTI1MyAxMS4zMTIwMTA3LDE5IDEwLjEyNjA0MzksMTkiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMCwxMy4yMyBDMCwxMy40ODIgMC4wOSwxMy42NzIgMC4yNywxMy44MDEgQzAuNDUsMTMuOTMgMC42NDIsMTMuOTc2IDAuODQ3LDEzLjkzOCBDMS4wMzksMTMuOSAxLjE3NCwxMy44MzEgMS4yNTIsMTMuNzMgQzEuMzI5LDEzLjYyOSAxLjM2OCwxMy40NjMgMS4zNjgsMTMuMjMgTDEuMzY4LDEwLjQ5NCBDMS4zNjgsMTAuMjk4IDEuMzAxLDEwLjEzMyAxLjE2OCw5Ljk5OCBDMS4wMzUsOS44NjMgMC44NzIsOS43OTQgMC42NzksOS43OTQgQzAuNDkzLDkuNzk0IDAuMzMzLDkuODYzIDAuMiw5Ljk5OCBDMC4wNjcsMTAuMTMzIDAsMTAuMjk4IDAsMTAuNDk0IEwwLDEzLjIzIFogTTIuMTQxLDE0LjQwMSBDMi4xNDEsMTQuNTg0IDIuMjA0LDE0LjcyIDIuMzMxLDE0LjgxMSBDMi40NTgsMTQuOTAzIDIuNjIxLDE0Ljk0OCAyLjgyLDE0Ljk0OCBDMy4wMjQsMTQuOTQ4IDMuMTksMTQuOTAzIDMuMzE4LDE0LjgxMSBDMy40NDUsMTQuNzIgMy41MDksMTQuNTg0IDMuNTA5LDE0LjQwMSBMMy41MDksOC4wMjEgQzMuNTA5LDcuODMyIDMuNDQyLDcuNjY5IDMuMzA5LDcuNTM0IEMzLjE3NSw3LjM5OSAzLjAxMiw3LjMzMiAyLjgyLDcuMzMyIEMyLjYzNCw3LjMzMiAyLjQ3NCw3LjM5OSAyLjM0MSw3LjUzNCBDMi4yMDcsNy42NjkgMi4xNDEsNy44MzIgMi4xNDEsOC4wMjEgTDIuMTQxLDE0LjQwMSBaIE00LjI3MSwxNC43MDMgQzQuMjcxLDE0Ljg4NSA0LjMzNywxNS4wMjIgNC40NjcsMTUuMTEzIEM0LjU5OCwxNS4yMDUgNC43NjUsMTUuMjUgNC45NywxNS4yNSBDNS4xNjgsMTUuMjUgNS4zMzEsMTUuMjA1IDUuNDU4LDE1LjExMyBDNS41ODUsMTUuMDIyIDUuNjQ5LDE0Ljg4NSA1LjY0OSwxNC43MDMgTDUuNjQ5LDguODc5IEM1LjY0OSw4LjY4NCA1LjU4Myw4LjUxOCA1LjQ0OSw4LjM3OSBDNS4zMTUsOC4yNDEgNS4xNTYsOC4xNzEgNC45Nyw4LjE3MSBDNC43NzcsOC4xNzEgNC42MTMsOC4yNDEgNC40NzcsOC4zNzkgQzQuMzQsOC41MTggNC4yNzEsOC42ODQgNC4yNzEsOC44NzkgTDQuMjcxLDE0LjcwMyBaIE02LjQxMiwxNC43MzEgQzYuNDEyLDE1LjA3NyA2LjY0MiwxNS4yNSA3LjEwMSwxNS4yNSBDNy41NiwxNS4yNSA3Ljc5LDE1LjA3NyA3Ljc5LDE0LjczMSBMNy43OSw1LjI5MyBDNy43OSw0Ljc2NCA3LjYyLDQuNDA0IDcuMzExLDQuMzY1IEM3LjEwMiw0LjMzNyA2LjkwOSw0LjMzOCA2LjcxLDQuNTA4IEM2LjUxMiw0LjY3OCA2LjQxMiw0Ljk4NSA2LjQxMiw1LjI5MyBMNi40MTIsMTQuNzMxIFogTTguNTksMTUuMDA0IEw4LjU5LDQuNzM2IEM4LjU5LDQuNDA5IDguNjg2LDQuMjE0IDguODc4LDQuMTUxIEM5LjI5NCw0LjA1IDkuNzA3LDQgMTAuMTE3LDQgQzExLjA2Niw0IDExLjk1LDQuMjI3IDEyLjc2OSw0LjY4IEMxMy41ODcsNS4xMzIgMTQuMjUsNS43NTEgMTQuNzU1LDYuNTM0IEMxNS4yNjEsNy4zMTcgMTUuNTU0LDguMTgxIDE1LjYzNSw5LjEyNSBDMTYuMDEzLDguOTYxIDE2LjQxNyw4Ljg3OSAxNi44NDUsOC44NzkgQzE3LjcxMyw4Ljg3OSAxOC40NTcsOS4xOTEgMTkuMDc0LDkuODE0IEMxOS42OTEsMTAuNDM3IDIwLDExLjE4NSAyMCwxMi4wNiBDMjAsMTIuOTQxIDE5LjY5MSwxMy42OTMgMTkuMDc0LDE0LjMxNiBDMTguNDU3LDE0LjkzOSAxNy43MTYsMTUuMjUxIDE2Ljg1NCwxNS4yNTEgTDguNzU4LDE1LjI0MSBDOC43MDIsMTUuMjIyIDguNjYsMTUuMTg3IDguNjMyLDE1LjEzNyBDOC42MDQsMTUuMDg2IDguNTksMTUuMDQyIDguNTksMTUuMDA0IEw4LjU5LDE1LjAwNCBaIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTAsMCBDNC40NzcsMCAwLDQuNDc3IDAsMTAgQzAsMTUuNTIyIDQuNDc3LDIwIDEwLDIwIEMxNS41MjIsMjAgMjAsMTUuNTIyIDIwLDEwIEMxOS45ODQsNC40ODQgMTUuNTE3LDAuMDE2IDEwLDAgTTE0LjYsMTQuNDU0IEMxNC40MzgsMTQuNzQgMTQuMDc1LDE0Ljg0MSAxMy43OSwxNC42NzkgQzEzLjc3NiwxNC42NzIgMTMuNzYzLDE0LjY2MyAxMy43NSwxNC42NTQgQzExLjQsMTMuMiA4LjQ1LDEyLjkwNCA0Ljk1LDEzLjcwNCBDNC42MTksMTMuNzg3IDQuMjgzLDEzLjU4NiA0LjIsMTMuMjU1IEM0LjExNywxMi45MjMgNC4zMTksMTIuNTg3IDQuNjUsMTIuNTA1IEM4LjQ1LDExLjY1NCAxMS43NSwxMi4wMDUgMTQuMzUsMTMuNjA0IEMxNC42NDcsMTMuNzQ5IDE0Ljc3MSwxNC4xMDcgMTQuNjI3LDE0LjQwNSBDMTQuNjE5LDE0LjQyMiAxNC42MDksMTQuNDM4IDE0LjYsMTQuNDU0IE0xNS44MDUsMTEuNyBDMTUuNTkxLDEyLjA1OCAxNS4xMjgsMTIuMTc0IDE0Ljc3MSwxMS45NiBDMTQuNzY2LDExLjk1NyAxNC43NiwxMS45NTMgMTQuNzU1LDExLjk1IEMxMS43MjUsMTAuMjQ3IDguMTM4LDkuODMzIDQuOCwxMC44IEM0LjM5OSwxMC45MjYgMy45NzMsMTAuNzAzIDMuODQ4LDEwLjMwMyBDMy43MjIsOS45MDIgMy45NDUsOS40NzYgNC4zNDUsOS4zNSBDOC4xMjYsOC4yNjkgMTIuMTgzLDguNzU1IDE1LjYsMTAuNyBDMTUuOTI5LDEwLjkwOSAxNi4wMjYsMTEuMzQ2IDE1LjgxNiwxMS42NzUgQzE1LjgxMiwxMS42ODQgMTUuODA2LDExLjY5MSAxNS44LDExLjcgTTE1LjksOC45IEMxMi43LDcgNy4zNSw2LjggNC4zLDcuNzUgQzMuODIzLDcuOTIgMy4yOTgsNy42NzEgMy4xMjgsNy4xOTQgQzIuOTU4LDYuNzE3IDMuMjA2LDYuMTkyIDMuNjgzLDYuMDIyIEMzLjcwNyw2LjAxNCAzLjczLDYuMDA2IDMuNzU0LDYgQzcuMzA1LDQuOTUgMTMuMTU0LDUuMTUgMTYuODU0LDcuMzUgQzE3LjMwNCw3LjYxNyAxNy40NTksOC4xOTMgMTcuMjA0LDguNjUgQzE2Ljg4Niw5LjAzMSAxNi4zNDIsOS4xMzYgMTUuOTA0LDguOSIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTguNTQgMS4yTC43NzggOC40NThzLS44NC4zLS43NzQuODUyYy4wNjYuNTUzLjc1Mi44MDcuNzUyLjgwN2w0LjQ2OCAxLjU2NiAxMC43MjgtNy4wOTZzLjYyLS4zOTIuNTk3IDBjMCAwIC4xMTEuMDctLjIyLjM5MS0uMzMzLjMyNC04LjQyOSA3LjkwNC04LjQyOSA3LjkwNGwtLjU4MyA1LjE4MmMuMjQ3LjExMi40NzMtLjA2Ni40NzMtLjA2NmwyLjg4Ny0yLjc0MiA0LjUwMSAzLjU5M2MxLjIxNi41NTQgMS42Ni0uNTk4IDEuNjYtLjU5OEwyMCAxLjYzOGMwLTEuMTA2LTEuNDYtLjQzOC0xLjQ2LS40MzgiLz4KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTUuMDgzLDE1Ljk2NSBDMTQuNTk1LDE2LjE3MyAxNC4wNzEsMTYuMjkgMTMuNTQsMTYuMzEgQzEyLjU4NSwxNi4zOCAxMS43NTQsMTUuNjY5IDExLjY4NCwxNC43MjQgQzExLjY3NCwxNC41OTYgMTEuNjc5LDE0LjQ2NyAxMS42OTgsMTQuMzQgTDExLjY5OCw4LjExNSBMMTUuNTQyLDguMTE1IEwxNS41NDIsNS4wODcgTDExLjcwNyw1LjA4NyBMMTEuNzA3LDAgTDguOTA0LDAgQzguODI3LDAuMDA4IDguNzY4LDAuMDcyIDguNzY2LDAuMTUgQzguNjY3LDIuNTE1IDcuMjAxLDQuNjEyIDUsNS41MzMgTDUsOC4xMTUgTDYuOTM3LDguMTE1IEw2LjkzNywxNC42NDggQzYuOTAzLDE3LjU2OSA5LjI2NiwxOS45NjYgMTIuMjE1LDE5Ljk5OSBDMTIuMzcyLDIwLjAwMSAxMi41MjksMTkuOTk2IDEyLjY4NywxOS45ODUgQzE0LjA5NCwxOS45NiAxNS42NTUsMTkuMzQ5IDE2LDE4LjgxNCBMMTUuMDgzLDE1Ljk2MyIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMS40MDYgMEwwIDMuNDMzdjE0LjAzaDUuMDAxVjIwaDIuODEybDIuNjU2LTIuNTM3aDQuMDYzTDIwIDEyLjIzOFYwSDEuNDA2em0xLjcxOSAxLjc5MWgxNXY5LjU1MkwxNSAxNC4zMjhoLTVsLTIuNjU2IDIuNTM3di0yLjUzN0gzLjEyNVYxLjc5MXptMTAgOC42NTFoMS44NzZWNS4yMjRoLTEuODc2djUuMjE4em0tNSAwSDEwVjUuMjI0SDguMTI1djUuMjE4eiIvPgo8L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNNi4yOSAxOC4yNTRjNy41NDcgMCAxMS42NzUtNi4yNTMgMTEuNjc1LTExLjY3NSAwLS4xNzgtLjAwNC0uMzU0LS4wMTItLjUzQTguMzM5IDguMzM5IDAgMCAwIDIwIDMuOTI0YTguMTY1IDguMTY1IDAgMCAxLTIuMzU2LjY0NiA0LjEyIDQuMTIgMCAwIDAgMS44MDQtMi4yNyA4LjE5OCA4LjE5OCAwIDAgMS0yLjYwNi45OTZBNC4xMDQgNC4xMDQgMCAwIDAgOS44NSA3LjAzOWExMS42NTIgMTEuNjUyIDAgMCAxLTguNDU4LTQuMjg3IDQuMTAxIDQuMTAxIDAgMCAwIDEuMjcgNS40NzcgNC4wNTggNC4wNTggMCAwIDEtMS44NTgtLjUxM2wtLjAwMS4wNTJhNC4xMDQgNC4xMDQgMCAwIDAgMy4yOTIgNC4wMjMgNC4xMDcgNC4xMDcgMCAwIDEtMS44NTMuMDcgNC4xMDcgNC4xMDcgMCAwIDAgMy44MzMgMi44NSA4LjIzMyA4LjIzMyAwIDAgMS01LjA5NiAxLjc1N0E4LjMzIDguMzMgMCAwIDEgMCAxNi40MTFhMTEuNjE0IDExLjYxNCAwIDAgMCA2LjI5IDEuODQzIi8+Cjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTQuNzg1IDExLjk1N2MtLjI0Ni0uMTM1LTEuNDU1LS43ODMtMS42ODMtLjg3My0uMjI2LS4wOTEtLjM5LS4xNC0uNTY4LjEwNC0uMTc3LjI0Mi0uNjc5Ljc4NC0uODMuOTQ0LS4xNTIuMTYyLS4zLjE3Ny0uNTQ2LjA0My0uMjQ2LS4xMzUtMS4wNDMtLjQyOC0xLjk2OS0xLjMxLS43MTktLjY4Ny0xLjE5Mi0xLjUyLTEuMzI5LTEuNzc0LS4xMzctLjI1NSAwLS4zODQuMTMtLjUwMy4xMTYtLjEwNy4yNjEtLjI4MS4zOTItLjQyMS4xMy0uMTQyLjE3Ni0uMjQ0LjI2Ni0uNDA2LjA5LS4xNjMuMDU0LS4zMS0uMDA1LS40MzctLjA1OC0uMTI1LS41MTItMS4zNjktLjcwMy0xLjg3NS0uMTktLjUwNS0uNC0uNDMtLjU0OC0uNDM2LS4xNDYtLjAwNS0uMzEyLS4wMzItLjQ3OS0uMDM3YS45MjUuOTI1IDAgMCAwLS42OC4yODVjLS4yNC4yNC0uOTA5LjgxOS0uOTU2IDIuMDQyLS4wNDYgMS4yMjQuODA3IDIuNDQuOTI2IDIuNjEuMTIuMTcgMS42MyAyLjgyMiA0LjE0IDMuOTEzIDIuNTEgMS4wOTEgMi41MjMuNzU4IDIuOTg0LjczNC40NjEtLjAyNCAxLjUwNS0uNTQ2IDEuNzM2LTEuMTIuMjMxLS41NzIuMjUtMS4wNy4xOTEtMS4xNzUtLjA1OS0uMTA3LS4yMjMtLjE3Ni0uNDY5LS4zMDltLTQuNjA0IDUuODk2YTguMTggOC4xOCAwIDAgMS00LjQ5Ny0xLjM0bC0zLjE0Ljk5NyAxLjAyLTMuMDExYTguMDI1IDguMDI1IDAgMCAxLTEuNTU2LTQuNzU1YzAtNC40NzQgMy42NjctOC4xMTIgOC4xNzMtOC4xMTIgNC41MDcgMCA4LjE3MyAzLjYzOCA4LjE3MyA4LjExMSAwIDQuNDcyLTMuNjY2IDguMTEtOC4xNzMgOC4xMW0wLTE3Ljg1MkM0Ljc2IDAgLjM2MyA0LjM2Mi4zNjMgOS43NDJjMCAxLjg0MS41MTUgMy41NjMgMS40MSA1LjAzTDAgMjBsNS40MzUtMS43MjdhOS44MzggOS44MzggMCAwIDAgNC43NDYgMS4yMTJjNS40MjMgMCA5LjgyLTQuMzYyIDkuODItOS43NDIgMC01LjM4MS00LjM5Ny05Ljc0NC05LjgyLTkuNzQ0Ii8+Cjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNMTkuOTkyNSw1LjE1NjggQzE5LjkwNTUsNy4xODU4IDE4LjU0NjUsOS45NjA4IDE1LjkxNjUsMTMuNDc5OCBDMTMuMTk3NSwxNy4xNTk4IDEwLjg5NDUsMTguOTk5OCA5LjAxMDUsMTguOTk5OCBDNy44NDU1LDE4Ljk5OTggNi44NTk1LDE3Ljg3ODggNi4wNTM1LDE1LjYzNTggQzUuNTEzNSwxMy41NzU4IDQuOTc0NSwxMS41MTY4IDQuNDM4NSw5LjQ2MTggQzMuODM4NSw3LjIxNTggMy4xOTU1LDYuMDkxOCAyLjUwOTUsNi4wOTI4IEMxLjkzODUsNi4zMzk4IDEuNDA5NSw2LjY3MTggMC45NDA1LDcuMDc2OCBMLTAuMDAwNSw1LjgxNTggQzAuOTg1NSw0LjkxNTggMS45NTc1LDQuMDExOCAyLjkxNTUsMy4xMDY4IEM0LjIyODUsMS45MjE4IDUuMjE0NSwxLjI5NzggNS44NzM1LDEuMjM0OCBDNy40MjY1LDEuMDc2OCA4LjM4MzUsMi4xODI4IDguNzQ0NSw0LjU1MzggQzkuMTI5NSw3LjExMTggOS4zOTc1LDguNzAxOCA5LjU0ODUsOS4zMjU4IEM5Ljk5ODUsMTEuNDQ1OCAxMC40OTE1LDEyLjUwNTggMTEuMDI3NSwxMi41MDM4IEMxMS40NDU1LDEyLjUwMzggMTIuMDczNSwxMS44MTg4IDEyLjkxMTUsMTAuNDQ4OCBDMTMuNTcyNSw5LjUwNzggMTQuMDMwNSw4LjQzOTggMTQuMjU1NSw3LjMxNDggQzE0LjM3NTUsNi4xMjg4IDEzLjkyNzUsNS41Mzk4IDEyLjkxMTUsNS41Mzk4IEMxMi40MDA1LDUuNTQ0OCAxMS44OTY1LDUuNjU2OCAxMS40MzE1LDUuODY1OCBDMTIuNDE5NSwyLjUyOTggMTQuMzAzNSwwLjkwODggMTcuMDgyNSwxLjAwMzggQzE5LjE0MTUsMS4wNjM4IDIwLjExMDUsMi40NDk4IDE5Ljk4OTUsNS4xNjI4Ii8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNNi44NjEzLDAuMzg5NiBDNi4wNTYzLDAuNTkwNiA1LjI4OTMsMC44NTY2IDQuNTYzMywxLjE3ODYgQzQuMDU5MywxLjQwMTYgMy44NzAzLDEuOTc5NiA0LjE0ODMsMi40Mjk2IEw4LjUxNzMsOS40NzU2IEM5LjAwNzMsMTAuMjY2NiAxMC4zMDUzLDkuOTQyNiAxMC4zMDUzLDkuMDI5NiBMMTAuMzA1MywwLjg5MzYgQzEwLjMwNTMsMC4zNzM2IDkuODMwMywtMC4wMzg0IDkuMjc0MywwLjAwMjYgQzguNDcyMywwLjA2MTYgNy42NjYzLDAuMTg5NiA2Ljg2MTMsMC4zODk2IE0xNy45MjAzLDkuMjc0NiBDMTcuNDI2Myw4LjIxMzYgMTYuNjk2Myw3LjI5NzYgMTUuODA1Myw2LjU2NTYgQzE1LjM3MjMsNi4yMDk2IDE0LjcwMTMsNi4yOTE2IDE0LjM3ODMsNi43Mzc2IEwxMS43NzczLDEwLjMyNzYgQzExLjI3NzMsMTEuMDE3NiAxMS45NzYzLDExLjkxMjYgMTIuODM2MywxMS42ODM2IEwxNy4zMDUzLDEwLjQ5MDYgQzE3Ljg2MzMsMTAuMzQxNiAxOC4xNTAzLDkuNzY5NiAxNy45MjAzLDkuMjc0NiBNMTEuNzAwMywxNC40Mzg2IEwxNC4xNjUzLDE4LjExMTYgQzE0LjQ3MjMsMTguNTY5NiAxNS4xNDIzLDE4LjY2OTYgMTUuNTkwMywxOC4zMjY2IEMxNi41MjkzLDE3LjYwNDYgMTcuMjgyMywxNi43MDA2IDE3LjgwMDMsMTUuNjg4NiBDMTguMDQ5MywxNS4yMDI2IDE3Ljc4MTMsMTQuNjIxNiAxNy4yMzEzLDE0LjQ1NDYgTDEyLjgwOTMsMTMuMTE3NiBDMTEuOTU4MywxMi44NTk2IDExLjIyNjMsMTMuNzMyNiAxMS43MDAzLDE0LjQzODYgTTUuNjAxMywxOC43MzI2IEM2LjU5NDMsMTkuMzY3NiA3LjczMTMsMTkuNzk5NiA4LjkzMzMsMTkuOTg3NiBDOS41MDUzLDIwLjA3NjYgMTAuMDMxMywxOS42Nzc2IDEwLjA1MTMsMTkuMTM3NiBMMTAuMjE0MywxNC44MDk2IEMxMC4yNDUzLDEzLjk3NjYgOS4xNDIzLDEzLjU2MjYgOC41NDQzLDE0LjE4MTYgTDUuNDMyMywxNy4zOTk2IEM1LjA0NjMsMTcuNzk5NiA1LjEyNTMsMTguNDI2NiA1LjYwMTMsMTguNzMyNiBNMy43NTkzLDkuMzg2NiBMNy45MzkzLDExLjI4NTYgQzguNzQzMywxMS42NTA2IDguNjE5MywxMi43NTA2IDcuNzUxMywxMi45NTI2IEwzLjIzOTMsMTMuOTk5NiBDMi42NzYzLDE0LjEzMDYgMi4xMjEzLDEzLjc2OTYgMi4wNTQzLDEzLjIzMjYgQzEuOTEyMywxMi4wODQ2IDIuMDUyMywxMC45NTE2IDIuNDMxMyw5LjkwMjYgQzIuNjE1Myw5LjM5MjYgMy4yNDAzLDkuMTUxNiAzLjc1OTMsOS4zODY2Ii8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8cGF0aCBkPSJNOCwxMyBMOCw3IEwxMywxMCBMOCwxMyBaIE0xOS41ODIsNS4xODYgQzE5LjM1Myw0LjMyNiAxOC42NzUsMy42NDggMTcuODEzLDMuNDE4IEMxNi4yNTQsMyAxMCwzIDEwLDMgQzEwLDMgMy43NDYsMyAyLjE4NiwzLjQxOCBDMS4zMjYsMy42NDggMC42NDgsNC4zMjYgMC40MTgsNS4xODYgQzAsNi43NDYgMCwxMCAwLDEwIEMwLDEwIDAsMTMuMjU0IDAuNDE4LDE0LjgxMyBDMC42NDgsMTUuNjc1IDEuMzI2LDE2LjM1MyAyLjE4NiwxNi41ODIgQzMuNzQ2LDE3IDEwLDE3IDEwLDE3IEMxMCwxNyAxNi4yNTQsMTcgMTcuODEzLDE2LjU4MiBDMTguNjc1LDE2LjM1MyAxOS4zNTMsMTUuNjc1IDE5LjU4MiwxNC44MTMgQzIwLDEzLjI1NCAyMCwxMCAyMCwxMCBDMjAsMTAgMjAsNi43NDYgMTkuNTgyLDUuMTg2IEwxOS41ODIsNS4xODYgWiIvPgo8L3N2Zz4K\"","import { ReactComponent as LogoAngellist20 } from '../../icons/logo-angellist-20.svg'\nimport { ReactComponent as LogoCodepen20 } from '../../icons/logo-codepen-20.svg'\nimport { ReactComponent as LogoDribbble20 } from '../../icons/logo-dribbble-20.svg'\nimport { ReactComponent as LogoFacebook20 } from '../../icons/logo-facebook-20.svg'\nimport { ReactComponent as LogoGithub20 } from '../../icons/logo-github-20.svg'\nimport { ReactComponent as LogoInstagram20 } from '../../icons/logo-instagram-20.svg'\nimport { ReactComponent as LogoLinkedin20 } from '../../icons/logo-linkedin-20.svg'\nimport { ReactComponent as LogoMedium20 } from '../../icons/logo-medium-20.svg'\nimport { ReactComponent as LogoPinterest20 } from '../../icons/logo-pinterest-20.svg'\nimport { ReactComponent as LogoReddit20 } from '../../icons/logo-reddit-20.svg'\nimport { ReactComponent as LogoRss20 } from '../../icons/logo-rss-20.svg'\nimport { ReactComponent as LogoSnapchat20 } from '../../icons/logo-snapchat-20.svg'\nimport { ReactComponent as LogoSoundcloud20 } from '../../icons/logo-soundcloud-20.svg'\nimport { ReactComponent as LogoSpotify20 } from '../../icons/logo-spotify-20.svg'\nimport { ReactComponent as LogoTelegram20 } from '../../icons/logo-telegram-20.svg'\nimport { ReactComponent as LogoTumblr20 } from '../../icons/logo-tumblr-20.svg'\nimport { ReactComponent as LogoTwitch20 } from '../../icons/logo-twitch-20.svg'\nimport { ReactComponent as LogoTwitter20 } from '../../icons/logo-twitter-20.svg'\nimport { ReactComponent as LogoWhatsapp20 } from '../../icons/logo-whatsapp-20.svg'\nimport { ReactComponent as LogoVimeo20 } from '../../icons/logo-vimeo-20.svg'\nimport { ReactComponent as LogoYelp20 } from '../../icons/logo-yelp-20.svg'\nimport { ReactComponent as LogoYoutube20 } from '../../icons/logo-youtube-20.svg'\n\nexport const SocialLinksOptions = [\n { type: 'angellist', label: 'AngelList', icon: <LogoAngellist20 />, brandColor: 'black' },\n { type: 'codepen', label: 'CodePen', icon: <LogoCodepen20 />, brandColor: 'black' },\n { type: 'dribbble', label: 'Dribbble', icon: <LogoDribbble20 />, brandColor: '#ea4c89' },\n { type: 'facebook', label: 'Facebook', icon: <LogoFacebook20 />, brandColor: '#3b5998' },\n { type: 'github', label: 'GitHub', icon: <LogoGithub20 />, brandColor: 'black' },\n { type: 'instagram', label: 'Instagram', icon: <LogoInstagram20 />, brandColor: 'black' },\n { type: 'linkedin', label: 'LinkedIn', icon: <LogoLinkedin20 />, brandColor: '#0077b5' },\n { type: 'medium', label: 'Medium', icon: <LogoMedium20 />, brandColor: 'black' },\n { type: 'pinterest', label: 'Pinterest', icon: <LogoPinterest20 />, brandColor: '#bd081c' },\n { type: 'reddit', label: 'Reddit', icon: <LogoReddit20 />, brandColor: '#ff4500' },\n { type: 'rss', label: 'RSS', icon: <LogoRss20 />, brandColor: 'black' },\n { type: 'snapchat', label: 'Snapchat', icon: <LogoSnapchat20 />, brandColor: '#fffc00' },\n { type: 'soundcloud', label: 'SoundCloud', icon: <LogoSoundcloud20 />, brandColor: '#ff3300' },\n { type: 'spotify', label: 'Spotify', icon: <LogoSpotify20 />, brandColor: '#1db954' },\n { type: 'telegram', label: 'Telegram', icon: <LogoTelegram20 />, brandColor: '#0088cc' },\n { type: 'tumblr', label: 'Tumblr', icon: <LogoTumblr20 />, brandColor: '#35465c' },\n { type: 'twitch', label: 'Twitch', icon: <LogoTwitch20 />, brandColor: '#6441A4' },\n { type: 'twitter', label: 'Twitter', icon: <LogoTwitter20 />, brandColor: '#1da1f2' },\n { type: 'whatsapp', label: 'WhatsApp', icon: <LogoWhatsapp20 />, brandColor: '#25d366' },\n { type: 'vimeo', label: 'Vimeo', icon: <LogoVimeo20 />, brandColor: '#1ab7ea' },\n { type: 'yelp', label: 'Yelp', icon: <LogoYelp20 />, brandColor: '#af0606' },\n { type: 'youtube', label: 'YouTube', icon: <LogoYoutube20 />, brandColor: '#ff0000' },\n] as const\n","import styled from 'styled-components'\n\nimport { ResponsiveValue, Length } from '../../../../../prop-controllers/descriptors'\n\nimport GutterContainer from '../../../../shared/GutterContainer'\n\nconst PlaceholderLink = styled.div`\n width: 44px;\n height: 44px;\n border-radius: 50%;\n background-color: rgba(161, 168, 194, 0.4);\n`\n\nconst links = [{ id: '1' }, { id: '2' }, { id: '3' }]\n\ntype Props = { gutter?: ResponsiveValue<Length> }\n\nexport default function SocialLinksPlaceholder({ gutter }: Props): JSX.Element {\n return (\n <>\n {links.map((link, i) => (\n <GutterContainer\n key={link.id}\n gutter={gutter}\n first={i === 0}\n last={i === links.length - 1}\n >\n <PlaceholderLink />\n </GutterContainer>\n ))}\n </>\n )\n}\n","import { forwardRef, Ref } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { Link } from '../../shared/Link'\nimport { cssMediaRules, cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { useColor } from '../../hooks'\nimport { SocialLinksOptions } from './options'\nimport GutterContainer from '../../shared/GutterContainer'\nimport SocialLinksPlaceholder from './components/SocialLinksPlaceholder'\nimport {\n ResponsiveValue,\n ElementIDValue,\n SocialLinksValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveSelectValue,\n ResponsiveColorValue,\n GapXValue,\n WidthValue,\n MarginValue,\n} from '../../../prop-controllers/descriptors'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n links?: SocialLinksValue\n shape?: ResponsiveIconRadioGroupValue<'naked' | 'circle' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n hoverStyle?: ResponsiveSelectValue<'none' | 'grow' | 'shrink' | 'fade'>\n fill?: ResponsiveColorValue\n backgroundColor?: ResponsiveColorValue\n alignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gutter?: GapXValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst Container = styled.div<{\n width: Props['width']\n margin: Props['margin']\n alignment: Props['alignment']\n}>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n ${cssWidth()}\n ${cssMargin()}\n ${p =>\n cssMediaRules(\n [p.alignment] as const,\n ([alignment = 'center']) => css`\n justify-content: ${alignment};\n `,\n )}\n`\n\nconst StyledLink = styled(Link)<{\n brandColor: string\n shape: Props['shape']\n size: Props['size']\n hoverStyle: Props['hoverStyle']\n fill: ResponsiveValue<Color> | null | undefined\n backgroundColor: ResponsiveValue<Color> | null | undefined\n}>`\n display: block;\n color: ${props => props.brandColor};\n transition: transform, opacity 0.18s;\n\n svg {\n display: block;\n }\n\n ${p =>\n cssMediaRules(\n [p.shape, p.size, p.hoverStyle, p.fill, p.backgroundColor] as const,\n ([shape = 'naked', size = 'medium', hoverStyle = 'none', fill, backgroundColor]) => css`\n padding: ${shape === 'naked' ? 0 : { small: 10, medium: 12, large: 14 }[size]}px;\n border-radius: ${{ circle: '50%', rounded: '8px', naked: 0, square: 0 }[shape]};\n background: ${shape === 'naked'\n ? 'transparent'\n : backgroundColor == null\n ? 'currentColor'\n : colorToString(backgroundColor)};\n\n :hover {\n ${{\n none: '',\n grow: css`\n transform: scale(1.1);\n `,\n shrink: css`\n transform: scale(0.9);\n `,\n fade: css`\n opacity: 0.65;\n `,\n }[hoverStyle]}\n }\n\n svg {\n fill: ${fill == null\n ? shape === 'naked' || backgroundColor != null\n ? 'currentColor'\n : 'white'\n : colorToString(fill)};\n width: ${{ small: 16, medium: 20, large: 24 }[size]}px;\n height: ${{ small: 16, medium: 20, large: 24 }[size]}px;\n }\n `,\n )}\n`\n\nconst SocialLinks = forwardRef(function SocialLinks(\n {\n id,\n links: { links, openInNewTab } = { links: [], openInNewTab: false },\n shape,\n size,\n hoverStyle,\n fill,\n backgroundColor,\n alignment,\n gutter,\n width,\n margin,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const fillData = useColor(fill)\n const backgroundColorData = useColor(backgroundColor)\n\n return (\n <Container ref={ref} id={id} alignment={alignment} width={width} margin={margin}>\n {links.length > 0 ? (\n links.map((link, i) => {\n const option = SocialLinksOptions.find(o => o.type === link.payload.type)\n\n if (!option) throw new Error(`Invalid link payload type ${link.payload.type}`)\n\n return (\n <GutterContainer\n key={link.id}\n gutter={gutter}\n first={i === 0}\n last={i === links.length - 1}\n >\n <StyledLink\n backgroundColor={backgroundColorData}\n brandColor={option.brandColor}\n fill={fillData}\n hoverStyle={hoverStyle}\n link={{ type: 'OPEN_URL', payload: { url: link.payload.url, openInNewTab } }}\n shape={shape}\n size={size}\n >\n {option == null ? null : option.icon}\n </StyledLink>\n </GutterContainer>\n )\n })\n ) : (\n <SocialLinksPlaceholder gutter={gutter} />\n )}\n </Container>\n )\n})\n\nexport default SocialLinks\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(SocialLinks, {\n type: './components/SocialLinks/index.js',\n label: 'Social Links',\n icon: 'SocialLinks40',\n props: {\n id: Props.ElementID(),\n links: Props.SocialLinks({\n preset: {\n links: [\n {\n id: 'facebook',\n payload: { type: 'facebook', url: 'https://www.facebook.com' },\n },\n {\n id: 'instagram',\n payload: { type: 'instagram', url: 'https://www.instagram.com' },\n },\n {\n id: 'twitter',\n payload: { type: 'twitter', url: 'https://www.twitter.com' },\n },\n ],\n openInNewTab: false,\n },\n }),\n shape: Props.ResponsiveIconRadioGroup({\n label: 'Shape',\n options: [\n { label: 'Naked', value: 'naked', icon: 'Star16' },\n { label: 'Circle', value: 'circle', icon: 'StarCircle16' },\n { label: 'Rounded', value: 'rounded', icon: 'StarRoundedSquare16' },\n { label: 'Square', value: 'square', icon: 'StarSquare16' },\n ],\n defaultValue: 'naked',\n // hidden: links == null || links.links.length === 0,\n }),\n size: Props.ResponsiveIconRadioGroup({\n label: 'Size',\n options: [\n { label: 'Small', value: 'small', icon: 'SizeSmall16' },\n { label: 'Medium', value: 'medium', icon: 'SizeMedium16' },\n { label: 'Large', value: 'large', icon: 'SizeLarge16' },\n ],\n defaultValue: 'medium',\n // hidden: links == null || links.links.length === 0,\n }),\n hoverStyle: Props.ResponsiveSelect({\n label: 'On hover',\n options: [\n { value: 'none', label: 'None' },\n { value: 'grow', label: 'Grow' },\n { value: 'shrink', label: 'Shrink' },\n { value: 'fade', label: 'Fade' },\n ],\n defaultValue: 'none',\n labelOrientation: 'horizontal',\n // hidden: links == null || links.links.length === 0,\n }),\n fill: Props.ResponsiveColor({\n label: 'Icon color',\n // hidden: links == null || links.links.length === 0,\n }),\n backgroundColor: Props.ResponsiveColor({\n label: 'Shape color',\n // hidden: links == null || links.links.length === 0,\n }),\n alignment: Props.ResponsiveIconRadioGroup({\n label: 'Alignment',\n options: [\n { label: 'flex-start', value: 'flex-start', icon: 'AlignLeft16' },\n { label: 'center', value: 'center', icon: 'AlignCenter16' },\n { label: 'flex-end', value: 'flex-end', icon: 'AlignRight16' },\n ],\n defaultValue: 'center',\n }),\n gutter: Props.GapX({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Link gap',\n min: 0,\n max: 100,\n step: 1,\n defaultValue: { value: 0, unit: 'px' },\n }),\n width: Props.Width({ defaultValue: { value: 100, unit: '%' } }),\n margin: Props.Margin({\n preset: [\n {\n deviceId: 'desktop',\n value: {\n marginTop: { value: 10, unit: 'px' },\n marginRight: 'auto',\n marginBottom: { value: 10, unit: 'px' },\n marginLeft: 'auto',\n },\n },\n ],\n }),\n },\n })\n}\n","import type { ColorValue } from '../utils/types'\nimport type { Length as LengthValue } from '../../prop-controllers'\nimport { DeviceOverride } from '../../prop-controllers'\nimport { TYPOGRAPHIES_BY_ID } from '../utils/queries'\nimport { useQuery } from '../../api/react'\n\nexport type TypographyStyleValue = {\n fontFamily?: string\n fontWeight?: number\n fontSize?: LengthValue\n color?: ColorValue\n textAlign?: string\n lineHeight?: number\n letterSpacing?: number\n uppercase?: boolean\n underline?: boolean\n strikethrough?: boolean\n italic?: boolean\n}\n\nexport type TypographyStyle = Array<DeviceOverride<TypographyStyleValue>>\n\nexport type Typography = {\n id: string\n name: string\n style: TypographyStyle\n}\n\nexport function useTypography(\n typographyId: string | null | undefined,\n): Typography | null | undefined {\n const { error, data } = useQuery(TYPOGRAPHIES_BY_ID, {\n skip: typographyId == null,\n variables: { ids: typographyId != null ? [typographyId] : [] },\n })\n\n if (typographyId == null || error != null) return null\n\n return data?.typographies[0] as Typography | null\n}\n","import { Length as LengthValue } from '../../../../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../../../../utils/types'\nimport { findDeviceOverride } from '../../../../../../../utils/devices'\nimport type { DeviceOverride } from '../../../../../../../../prop-controllers'\nimport { SWATCHES_BY_ID } from '../../../../../../../utils/queries'\nimport { useTypography, TypographyStyle } from '../../../../../../../hooks/useTypography'\nimport { useQuery } from '../../../../../../../../api/react'\n\nexport type TypographyMarkDataValue = {\n fontWeight?: number\n fontSize?: LengthValue\n fontFamily?: string\n color?: Color\n textAlign?: string\n lineHeight?: number\n letterSpacing?: number\n uppercase?: boolean\n italic?: boolean\n underline?: boolean\n strikethrough?: boolean\n}\n\nexport type TypographyMarkValue = {\n id: string | null | undefined\n style: TypographyStyle\n}\n\nexport type TypographyMarkData = Array<DeviceOverride<TypographyMarkDataValue>>\n\nconst concat = <A extends unknown[], B extends unknown[]>(a: A, b: B) => a.concat(b)\nconst getSwatchId = ({ value: { color } }: any) => color && color.swatchId\nconst getDeviceId = ({ deviceId }: any) => deviceId\n\nconst withColor =\n (swatches: any) =>\n ({ value: { color, ...restOfValue }, ...rest }: any) => ({\n ...rest,\n value: {\n ...restOfValue,\n ...(color\n ? {\n color: {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n },\n }\n : {}),\n },\n })\n\nexport const overrideTypographyStyle = <A>(\n source: Array<DeviceOverride<A>>,\n override: Array<DeviceOverride<A>>,\n): Array<DeviceOverride<A>> => {\n const devices = [...new Set(source.map(getDeviceId).concat(override.map(getDeviceId)))]\n\n return devices.map((deviceId: any) => ({\n deviceId,\n value: {\n ...(findDeviceOverride(source, deviceId) || { value: {} }).value,\n ...(findDeviceOverride(override, deviceId, v => v) || { value: {} }).value,\n },\n })) as DeviceOverride<A>[]\n}\n\nexport default function useTypographyMark(\n value: TypographyMarkValue | null | undefined,\n): TypographyMarkData | null | undefined {\n const typography = useTypography(value && value.id)\n\n const swatchIds = [\n (typography && typography.style.map(getSwatchId)) || [],\n (value && value.style.map(getSwatchId)) || [],\n ]\n .reduce(concat)\n .filter(Boolean)\n\n const { error: colorError, data: colorData = {} } = useQuery(SWATCHES_BY_ID, {\n skip: swatchIds == null || swatchIds.length === 0,\n variables: { ids: swatchIds },\n })\n\n const { swatches = [] } = colorData\n\n if (colorError != null) return null\n\n return overrideTypographyStyle(\n (typography && typography.style.map(withColor(swatches))) || [],\n (value && value.style.map(withColor(swatches))) || [],\n )\n}\n","import { ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport useTypographyMark, {\n TypographyMarkValue,\n TypographyMarkData,\n overrideTypographyStyle,\n TypographyMarkDataValue,\n} from './hooks/useTypographyMark'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { shallowMergeFallbacks } from '../../../../../../utils/devices'\n\nexport type { TypographyMarkValue }\nexport { overrideTypographyStyle }\n\nconst Span = styled.span<{ typographyStyle: TypographyMarkData | null | undefined }>`\n ${p =>\n cssMediaRules(\n [p.typographyStyle] as const,\n ([\n {\n color,\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n uppercase,\n underline,\n strikethrough,\n italic,\n } = {} as TypographyMarkDataValue,\n ]) => css`\n ${color == null\n ? ''\n : css`\n color: ${colorToString(color)};\n `}\n\n ${fontFamily == null\n ? ''\n : css`\n font-family: '${fontFamily}';\n `}\n\n ${fontSize == null || fontSize.value == null || fontSize.unit == null\n ? ''\n : css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `}\n\n ${fontWeight == null\n ? ''\n : css`\n font-weight: ${fontWeight};\n `}\n\n ${lineHeight == null\n ? ''\n : css`\n line-height: ${lineHeight};\n `}\n\n ${letterSpacing == null\n ? ''\n : css`\n letter-spacing: ${letterSpacing / 10}em;\n `}\n\n ${underline == null && strikethrough == null\n ? ''\n : css`\n text-decoration: ${[\n Boolean(underline) && 'underline',\n Boolean(strikethrough) && 'line-through',\n ]\n .filter(Boolean)\n .join(' ')};\n `}\n\n ${uppercase == null\n ? ''\n : css`\n text-transform: ${uppercase === true ? 'uppercase' : 'initial'};\n `}\n\n ${italic == null\n ? ''\n : css`\n font-style: ${italic === true ? 'italic' : 'initial'};\n `}\n `,\n shallowMergeFallbacks,\n )}\n`\n\ntype BaseProps = { value: TypographyMarkValue }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Span>, keyof BaseProps>\n\nexport default function Mark({ value, ...restOfProps }: Props): JSX.Element {\n const typographyStyle = useTypographyMark(value)\n\n return <Span {...restOfProps} typographyStyle={typographyStyle} />\n}\n","import type { Plugin } from 'slate-react'\n\nimport Mark from '../components/Mark'\n\nconst TYPOGRAPHY_TYPE = 'typography'\n\nexport default function DeviceOverridesMarksPlugin(): Plugin {\n return {\n renderMark({ mark, children }, _editor, next) {\n if (mark.type === TYPOGRAPHY_TYPE) {\n return <Mark value={mark.data.get('value')}>{children}</Mark>\n }\n\n return next()\n },\n }\n}\n","import { forwardRef, ElementType, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport type { ResponsiveValue } from '../../../../../../../prop-controllers'\n\ntype StyledBlockProps = {\n textAlign?: ResponsiveValue<'left' | 'center' | 'right' | 'justify'>\n as?: ElementType\n}\n\nconst StyledBlock = styled.div<StyledBlockProps>`\n margin: 0;\n ${p =>\n cssMediaRules([p.textAlign] as const, ([textAlign]) =>\n textAlign == null\n ? css``\n : css`\n text-align: ${textAlign};\n `,\n )}\n\n ${p =>\n p.as === 'blockquote'\n ? css`\n padding: 0.5em 10px;\n font-size: 1.25em;\n font-weight: 300;\n border-left: 5px solid rgba(0, 0, 0, 0.1);\n `\n : ''}\n`\n\ntype Props = ComponentPropsWithoutRef<typeof StyledBlock>\n\nexport default forwardRef<HTMLDivElement, Props>(function Block(\n { textAlign, ...restOfProps }: Props,\n ref,\n) {\n return <StyledBlock {...restOfProps} ref={ref} textAlign={textAlign} />\n})\n","import { Plugin } from 'slate-react'\n\nimport Block from '../components/Block'\n\nexport default function DeviceOverridesBlockPlugin(): Plugin {\n return {\n renderBlock(props, _editor, next): JSX.Element {\n const { node, attributes, children } = props\n const blockProps = { textAlign: node.data.get('textAlign') }\n\n switch (node.type) {\n case 'paragraph':\n return (\n <Block {...attributes} {...blockProps} as=\"p\">\n {children}\n </Block>\n )\n\n case 'heading-one':\n return (\n <Block {...attributes} {...blockProps} as=\"h1\">\n {children}\n </Block>\n )\n\n case 'heading-two':\n return (\n <Block {...attributes} {...blockProps} as=\"h2\">\n {children}\n </Block>\n )\n\n case 'heading-three':\n return (\n <Block {...attributes} {...blockProps} as=\"h3\">\n {children}\n </Block>\n )\n\n case 'heading-four':\n return (\n <Block {...attributes} {...blockProps} as=\"h4\">\n {children}\n </Block>\n )\n\n case 'heading-five':\n return (\n <Block {...attributes} {...blockProps} as=\"h5\">\n {children}\n </Block>\n )\n\n case 'heading-six':\n return (\n <Block {...attributes} {...blockProps} as=\"h6\">\n {children}\n </Block>\n )\n\n case 'blockquote':\n return (\n <Block {...attributes} {...blockProps} as=\"blockquote\">\n {children}\n </Block>\n )\n\n default:\n return next()\n }\n },\n }\n}\n","import { Plugin } from 'slate-react'\nimport styled from 'styled-components'\n\nimport { Link } from '../../../../../shared/Link'\n\nconst StyledLink = styled(Link)`\n text-decoration: none;\n`\n\nexport default function LinkPlugin(): Plugin {\n return {\n renderInline(props, _editor, next) {\n const { attributes, children, node } = props\n\n switch (node.type) {\n case 'link': {\n const { data } = node\n\n return (\n <StyledLink {...attributes} link={data.toJS()}>\n {children}\n </StyledLink>\n )\n }\n\n default: {\n return next()\n }\n }\n },\n }\n}\n","import { Plugin } from 'slate-react'\n\nexport default function Inlines(): Plugin {\n return {\n renderInline(props, _editor, next) {\n const { attributes, children, node } = props\n\n switch (node.type) {\n case 'code': {\n return <code {...attributes}>{children}</code>\n }\n\n case 'superscript': {\n return <sup {...attributes}>{children}</sup>\n }\n\n case 'subscript': {\n return <sub {...attributes}>{children}</sub>\n }\n\n default: {\n return next()\n }\n }\n },\n }\n}\n","import { ComponentPropsWithoutRef, forwardRef, useMemo } from 'react'\n\nimport { Editor as SlateEditor } from 'slate-react'\n\n// @ts-expect-error: no types for '@convertkit/slate-lists'\nimport Lists from '@convertkit/slate-lists'\nimport styled from 'styled-components'\n\nimport DeviceOverridesMarks from './plugins/DeviceOverridesMarks'\nimport DeviceOverridesBlocks from './plugins/DeviceOverridesBlocks'\nimport Link from './plugins/Link'\nimport Inlines from './plugins/Inlines'\n\nexport { overrideTypographyStyle } from './components/Mark'\n\ntype Props = ComponentPropsWithoutRef<typeof SlateEditor>\n\nexport const RichTextEditor = styled(\n forwardRef<SlateEditor, Props>(function RichTextEditor(\n { placeholder = 'Write some text...', ...restOfProps }: Props,\n ref,\n ) {\n const plugins = useMemo(\n () => [Lists(), Link(), Inlines(), DeviceOverridesBlocks(), DeviceOverridesMarks()],\n [],\n )\n\n return (\n <SlateEditor\n {...restOfProps}\n ref={ref}\n autoFocus={false}\n plugins={plugins}\n placeholder={placeholder}\n />\n )\n }),\n)`\n ul,\n ol {\n margin: 0;\n }\n`\n","import {\n useState,\n Ref,\n useImperativeHandle,\n forwardRef,\n useEffect,\n useCallback,\n useRef,\n KeyboardEvent as ReactKeyboardEvent,\n} from 'react'\nimport styled from 'styled-components'\nimport { Editor, OnChangeParam } from 'slate-react'\nimport { Value, ValueJSON } from 'slate'\n// @ts-expect-error: no types for 'slate-hotkeys'\nimport Hotkeys from 'slate-hotkeys'\n// @ts-expect-error: there are no types for 'corporate-ipsum'\nimport ipsum from 'corporate-ipsum'\n\nimport {\n ElementIDValue,\n MarginValue,\n RichTextDescriptor,\n RichTextValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssWidth, cssMargin } from '../../utils/cssMediaRules'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { RichTextEditor } from './components/RichTextEditor'\nimport { ReactRuntime, useIsInBuilder } from '../../../react'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst StyledRichTextEditor = styled(RichTextEditor)<{\n width: Props['width']\n margin: Props['margin']\n}>`\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst defaultText: ValueJSON = {\n document: { nodes: [{ object: 'block' as const, type: 'paragraph' as const, nodes: [] }] },\n data: {},\n}\n\nconst COMMIT_DEBOUNCE_DELAY = 500\n\ntype Descriptors = { text?: RichTextDescriptor }\n\nconst Text = forwardRef(function Text(\n { id, text, width, margin }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const [editor, setEditor] = useState<Editor | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const controller = propControllers?.text\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n const el = editor?.findDOMNode([])\n\n return el instanceof Element ? getBox(el) : null\n },\n setPropControllers,\n }),\n [editor, setPropControllers],\n )\n\n useEffect(() => {\n if (editor) controller?.setSlateEditor(editor)\n }, [controller, editor])\n\n /**\n * We must keep local state so that we can reflect the user's typed changes immediately. At the\n * same time, though, the source of truth for the data is the prop data. This presents a\n * challenge: how do we keep local state in sync with the prop data without mangling user input as\n * data comes in?\n *\n * Consider, for example, that the user types \"Hello\". If at a later time, when the user is trying\n * to type \", world\" the component re-renders with prop data \"H\", \"He\", \"Hel\", \"Hell\", \"Hello\", it\n * will disrupt the user's typing. This could also happen as a result of the prop data changing\n * for other reasons, like collaborators changing the prop data concurrently. We want to avoid to\n * disrupt the user's typing, while at the same time display the \"true\" value as quickly as\n * possible.\n *\n * The approach we take here is to commit the prop data at an opportune time: as the user is\n * typing we avoid to commit prop data. But once they've stopped typing, we commit it as soon as\n * possible. This is known as a debounce.\n */\n const [value, setValue] = useState(() => {\n const { selection, ...textWithoutSelection } = text ?? defaultText\n\n return Value.fromJSON(textWithoutSelection)\n })\n const [shouldCommit, setShouldCommit] = useState(true)\n\n useEffect(() => {\n if (shouldCommit) {\n const nextValue = Value.fromJSON(text ?? defaultText)\n\n setValue(currentValue =>\n currentValue.selection.isBlurred\n ? Value.fromJSON(nextValue.toJSON({ preserveSelection: false }))\n : nextValue,\n )\n }\n }, [shouldCommit, text])\n\n useEffect(() => {\n if (shouldCommit) return\n\n const timeoutId = window.setTimeout(() => {\n setShouldCommit(true)\n }, COMMIT_DEBOUNCE_DELAY)\n\n return () => {\n window.clearTimeout(timeoutId)\n }\n }, [shouldCommit])\n\n function handleChange(change: OnChangeParam) {\n setValue(change.value as Value)\n\n if (change.value.document !== value.document) {\n setShouldCommit(false)\n\n controller?.onChange(change)\n }\n }\n\n // HACK: Slate holds on to the very first DOM event handlers passed in and doesn't update them\n // even if they change. Since `controller` is first `undefined` then we must use a ref.\n const lastController = useRef(controller)\n if (lastController.current !== controller) lastController.current = controller\n const handleFocus = useCallback(() => {\n lastController.current?.focus()\n }, [])\n const handleKeyDown = useCallback(\n (event: ReactKeyboardEvent, _editor: Editor, next: () => any) => {\n if (Hotkeys.isUndo(event)) {\n lastController.current?.undo()\n\n return true\n }\n\n if (Hotkeys.isRedo(event)) {\n lastController.current?.redo()\n\n return true\n }\n\n return next()\n },\n [],\n )\n\n const isInBuilder = useIsInBuilder()\n\n return (\n <StyledRichTextEditor\n // @ts-expect-error: types don't allow for 'id' prop even though it's used.\n id={id}\n ref={setEditor}\n readOnly={!isInBuilder}\n width={width}\n margin={margin}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n />\n )\n})\n\nexport default Text\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Text, {\n type: './components/Text/index.js',\n label: 'Text',\n props: {\n id: Props.ElementID(),\n // TODO: generate a different preset each time.\n text: Props.RichText({\n preset: {\n document: {\n nodes: [\n {\n object: 'block',\n type: 'paragraph',\n nodes: [\n {\n object: 'text',\n text: ipsum(3),\n marks: [\n {\n object: 'mark',\n type: 'typography',\n data: {\n value: {\n id: null,\n style: [\n {\n deviceId: 'mobile',\n value: { fontSize: { value: 16, unit: 'px' } },\n },\n {\n deviceId: 'desktop',\n value: {\n fontWeight: 400,\n fontSize: { value: 18, unit: 'px' },\n lineHeight: 1.5,\n },\n },\n ],\n },\n },\n },\n ],\n },\n ],\n },\n ],\n },\n },\n }),\n width: Props.Width({\n preset: [{ deviceId: 'desktop', value: { value: 700, unit: 'px' } }],\n defaultValue: { value: 100, unit: '%' },\n }),\n margin: Props.Margin({\n preset: [\n {\n deviceId: 'desktop',\n value: {\n marginTop: null,\n marginRight: 'auto',\n marginBottom: { value: 20, unit: 'px' },\n marginLeft: 'auto',\n },\n },\n ],\n }),\n },\n })\n}\n","export * from './Box'\nexport { default as Box } from './Box'\nexport { default as Button } from './Button'\nexport { default as Carousel } from './Carousel'\nexport { default as Countdown } from './Countdown'\nexport { default as Divider } from './Divider'\nexport { default as Embed } from './Embed'\nexport { default as Image } from './Image'\nexport { default as Navigation } from './Navigation'\nexport { default as Root } from './Root'\nexport { default as SocialLinks } from './SocialLinks'\nexport { default as Text } from './Text'\n\nimport { ReactRuntime } from '../../react'\nimport { registerComponent as registerBoxComponent } from './Box'\nimport { registerComponent as registerButtonComponent } from './Button'\nimport { registerComponent as registerCarouselComponent } from './Carousel'\nimport { registerComponent as registerCountdownComponent } from './Countdown'\nimport { registerComponent as registerDividerComponent } from './Divider'\nimport { registerComponent as registerEmbedComponent } from './Embed'\nimport { registerComponent as registerImageComponent } from './Image'\nimport { registerComponent as registerNavigationComponent } from './Navigation'\nimport { registerComponent as registerRootComponent } from './Root'\nimport { registerComponent as registerSocialLinksComponent } from './SocialLinks'\nimport { registerComponent as registerTextComponent } from './Text'\n\nexport function registerBuiltinComponents(runtime: ReactRuntime) {\n const unregisterBoxComponent = registerBoxComponent(runtime)\n const unregisterButtonComponent = registerButtonComponent(runtime)\n const unregisterCarouselComponent = registerCarouselComponent(runtime)\n const unregisterCountdownComponent = registerCountdownComponent(runtime)\n const unregisterDividerComponent = registerDividerComponent(runtime)\n const unregisterEmbedComponent = registerEmbedComponent(runtime)\n const unregisterImageComponent = registerImageComponent(runtime)\n const unregisterNavigationComponent = registerNavigationComponent(runtime)\n const unregisterRootComponent = registerRootComponent(runtime)\n const unregisterSocialLinksComponent = registerSocialLinksComponent(runtime)\n const unregisterTextComponent = registerTextComponent(runtime)\n\n return () => {\n unregisterBoxComponent()\n unregisterButtonComponent()\n unregisterCarouselComponent()\n unregisterCountdownComponent()\n unregisterDividerComponent()\n unregisterEmbedComponent()\n unregisterImageComponent()\n unregisterNavigationComponent()\n unregisterRootComponent()\n unregisterSocialLinksComponent()\n unregisterTextComponent()\n }\n}\n","import {\n createContext,\n forwardRef,\n memo,\n ReactNode,\n Ref,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\nimport { ApolloClient, InMemoryCache } from '@apollo/client'\n\nimport * as ReactPage from '../state/react-page'\nimport type * as ReactBuilderPreview from '../state/react-builder-preview'\nimport {\n mountComponentEffect,\n registerComponentEffect,\n registerComponentHandleEffect,\n registerReactComponentEffect,\n} from '../state/actions'\nimport type {\n PropControllerDescriptor,\n PropControllerDescriptorValueType,\n} from '../prop-controllers'\nimport { ComponentIcon } from '../state/modules/components-meta'\nimport { registerBuiltinComponents } from '../components'\nimport { ApolloProvider } from '../api/react'\n\nconst contextDefaultValue = ReactPage.configureStore()\n\nexport interface ReactRuntime {\n registerComponent<\n P extends Record<string, PropControllerDescriptor>,\n C extends ReactPage.ComponentType<{ [K in keyof P]?: PropControllerDescriptorValueType<P[K]> }>,\n >(\n component: C,\n meta: { type: string; label: string; icon?: ComponentIcon; hidden?: boolean; props?: P },\n ): () => void\n}\n\nexport function createReactRuntime(store: ReactPage.Store): ReactRuntime {\n return {\n registerComponent(component, { type, label, icon = 'Cube40', hidden = false, props }) {\n const unregisterComponent = store.dispatch(\n registerComponentEffect(type, { label, icon, hidden }, props ?? {}),\n )\n\n const unregisterReactComponent = store.dispatch(\n registerReactComponentEffect(type, component as unknown as ReactPage.ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n },\n }\n}\n\nexport const ReactRuntime = createReactRuntime(contextDefaultValue)\n\nconst Context = createContext(contextDefaultValue)\n\ntype RuntimeProviderProps = {\n defaultRootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n registerComponents?: (runtime: ReactRuntime) => () => void\n makeswiftApiEndpoint?: string\n}\n\nexport function RuntimeProvider({\n children,\n defaultRootElements,\n registerComponents,\n makeswiftApiEndpoint,\n}: RuntimeProviderProps): JSX.Element {\n const [store, setStore] = useState(() => {\n const store = ReactPage.configureStore({\n preloadedState: contextDefaultValue.getState(),\n rootElements: defaultRootElements,\n })\n const runtime = createReactRuntime(store)\n\n registerBuiltinComponents(runtime)\n registerComponents?.(runtime)\n\n return store\n })\n const [client, setClient] = useState(\n new ApolloClient({ uri: makeswiftApiEndpoint, cache: new InMemoryCache() }),\n )\n\n useEffect(() => {\n setClient(({ cache }) => new ApolloClient({ uri: makeswiftApiEndpoint, cache }))\n }, [makeswiftApiEndpoint])\n\n useEffect(() => {\n return registerBuiltinComponents(createReactRuntime(store))\n }, [store])\n\n useEffect(() => {\n return registerComponents?.(createReactRuntime(store))\n }, [store, registerComponents])\n\n useEffect(() => {\n // TODO(miguel): perform a more robust validation.\n const isInBuilder = window.parent !== window\n\n if (isInBuilder) setReactBuilderPreviewStore()\n\n async function setReactBuilderPreviewStore(): Promise<void> {\n const ReactBuilderPreview = await import('../state/react-builder-preview')\n\n setStore(store =>\n ReactBuilderPreview.configureStore({ preloadedState: store.getState(), client }),\n )\n }\n }, [client])\n\n useEffect(() => {\n // TODO(miguel): perform a more robust validation.\n const isInBuilder = window.parent !== window\n\n if (!isInBuilder) return\n\n window.addEventListener('focusin', handleFocusIn)\n window.addEventListener('focusout', handlefocusOut)\n\n return () => {\n window.addEventListener('focusin', handleFocusIn)\n window.removeEventListener('focusout', handlefocusOut)\n }\n\n function handleFocusIn(event: FocusEvent) {\n if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handlefocusOut(event: FocusEvent) {\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\n }\n }\n }, [])\n\n return (\n <Context.Provider value={store}>\n <ApolloProvider client={client}>{children}</ApolloProvider>\n </Context.Provider>\n )\n}\n\nconst DocumentContext = createContext<string | null>(null)\n\nfunction useDocumentKey(): string | null {\n return useContext(DocumentContext)\n}\n\ntype State = ReactPage.State | ReactBuilderPreview.State\n\nfunction useSelector<R>(selector: (state: State) => R): R {\n const store = useContext(Context)\n\n return useSyncExternalStoreWithSelector(store.subscribe, store.getState, store.getState, selector)\n}\n\nfunction useComponent(type: string): ReactPage.ComponentType | null {\n return useSelector(state => ReactPage.getReactComponent(state, type))\n}\n\nexport function useElementId(elementKey: string | null | undefined): string | null {\n const documentKey = useDocumentKey()\n\n return useSelector(state =>\n documentKey == null || elementKey == null\n ? null\n : ReactPage.getElementId(state, documentKey, elementKey),\n )\n}\n\nfunction useDocumentRootElement(documentKey: string): ReactPage.Element | null {\n return useSelector(state => ReactPage.getDocumentRootElement(state, documentKey))\n}\n\nexport function useIsInBuilder(): boolean {\n return useSelector(state => ReactPage.getIsInBuilder(state))\n}\n\ntype Dispatch = ReactPage.Dispatch & ReactBuilderPreview.Dispatch\n\nfunction useDispatch(): Dispatch {\n const store = useContext(Context)\n\n return store.dispatch\n}\n\ntype ElementDataProps = {\n elementData: ReactPage.ElementData\n}\n\nconst ElementData = memo(\n forwardRef(function ElementData(\n { elementData }: ElementDataProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n const Component = useComponent(elementData.type)\n\n if (Component == null) {\n return (\n <div ref={ref as Ref<HTMLDivElement>}>\n <p>Component Not Found</p>\n <pre>\n <code>{JSON.stringify(elementData, null, 2)}</code>\n </pre>\n </div>\n )\n }\n\n return <Component {...elementData.props} key={elementData.key} ref={ref} />\n }),\n)\n\ntype ElementRefereceProps = {\n elementReference: ReactPage.ElementReference\n}\n\nconst ElementReference = memo(\n forwardRef(function ElementReference(\n { elementReference }: ElementRefereceProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n return (\n <div ref={ref as Ref<HTMLDivElement>}>\n <p>Not Implemented</p>\n <pre>\n <code>{JSON.stringify(elementReference, null, 2)}</code>\n </pre>\n </div>\n )\n }),\n)\n\ntype ElementProps = {\n element: ReactPage.Element\n}\n\nexport const Element = memo(function Element({ element }: ElementProps): JSX.Element {\n const elementKey = element.key\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n const [handle, setHandle] = useState<unknown>(null)\n\n useEffect(() => {\n if (documentKey == null) return\n\n return dispatch(registerComponentHandleEffect(documentKey, elementKey, handle))\n }, [dispatch, documentKey, elementKey, handle])\n\n useEffect(() => {\n if (documentKey == null) return\n\n return dispatch(mountComponentEffect(documentKey, elementKey))\n }, [dispatch, documentKey, elementKey])\n\n return ReactPage.isElementReference(element) ? (\n <ElementReference key={elementKey} ref={setHandle} elementReference={element} />\n ) : (\n <ElementData key={elementKey} ref={setHandle} elementData={element} />\n )\n})\n\ntype DocumentProps = {\n documentKey: string\n}\n\nexport const Document = memo(function Document({ documentKey }: DocumentProps): JSX.Element {\n const documentRootElement = useDocumentRootElement(documentKey)\n\n if (documentRootElement == null) {\n return (\n <div>\n <p>Document Not Found</p>\n <pre>\n <code>{JSON.stringify({ documentKey }, null, 2)}</code>\n </pre>\n </div>\n )\n }\n\n return (\n <DocumentContext.Provider value={documentKey}>\n <Element element={documentRootElement} />\n </DocumentContext.Provider>\n )\n})\n"],"names":["getInitialState","reactComponents","Map","state","type","getReactComponents","get","action","ActionTypes","REGISTER_REACT_COMPONENT","set","payload","component","UNREGISTER_REACT_COMPONENT","nextState","deleted","delete","getPropControllerDescriptors","Documents.reducer","ReactComponents.reducer","ComponentsMeta.reducer","PropControllers.reducer","Documents.getDocumentRootElement","ReactComponents.getReactComponent","PropControllers.getPropControllerDescriptors","PropControllers.getComponentPropControllerDescriptors","Documents.isElementReference","Introspection.getElementChildren","Introspection.getElementId","Documents.getInitialState","PlaceholderBase","styled","div","hide","forwardRef","ref","restOfProps","overflow","Context","createContext","undefined","query","options","client","useContext","useApolloQuery","children","_jsx","defaultExitedProps","opacity","x","y","scale","boxAnimations","none","entered","exited","transition","fadeIn","fadeLeft","ease","fadeRight","fadeUp","fadeDown","blurIn","filter","scaleDown","scaleUp","mergeCustomTransitionWithDefault","transitions","props","Object","keys","reduce","a","c","useElementOnScreen","element","isVisible","setIsVisible","useState","useEffect","observer","IntersectionObserver","intersectionCallback","observe","unobserve","entry","isIntersecting","DEFAULT_BOX_ANIMATE_TYPE","DEFAULT_BOX_ANIMATE_DELAY","DEFAULT_BOX_ANIMATE_DURATION","DEFAULT_ITEM_ANIMATE_TYPE","DEFAULT_ITEM_ANIMATE_DELAY","DEFAULT_ITEM_ANIMATE_DURATION","DEFAULT_ITEM_STAGGER_DURATION","useBoxAnimations","boxElement","elements","reducedMotion","useReducedMotion","boxAnimateType","useMediaQuery","boxAnimateDuration","boxAnimateDelay","itemAnimateType","itemAnimateDuration","itemAnimateDelay","itemStaggerDuration","isBoxVisible","root","rootMargin","threshold","itemControls","useAnimation","boxControls","setSequence","useCallback","variant","stop","playSequence","start","map","e","key","sort","join","boxVariant","itemVariant","initial","container","parent","animate","variants","child","delay","duration","delayChildren","staggerChildren","joinResponsiveValues","overflowY","overflowX","ownerDocument","defaultView","getComputedStyle","test","parentElement","isScrollable","getScrollParent","strength","rest","useRef","containerScrollTop","setContainerScrollTop","lastScrollParentScrollTop","useLayoutEffect","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","css","backgrounds","value","deviceId","v","reverse","bg","id","publicUrl","repeat","size","parallax","backgroundPosition","getParallaxProps","backgroundImage","backgroundRepeat","backgroundSize","angle","isRadial","gradient","OuterContainer","motion","handle","setHandle","useImperativeHandle","useBackgrounds","Children","only","StyledBackgroundsContainer","cssWidth","cssMargin","cssBorderRadius","alignSelf","Grid","cssPadding","cssBorder","cssBoxShadow","alignContent","GridItem","cssGridItem","alignItems","Box","margin","padding","border","borderRadius","boxShadow","rowGap","columnGap","hidePlaceholder","verticalAlign","innerRef","setBoxElement","getBoxModel","paddingBoxElement","borderBoxElement","marginBoxElement","borderBox","paddingBoxComputedStyle","borderBoxComputedStyle","marginBoxComputedStyle","parse","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","marginTop","marginRight","marginBottom","marginLeft","createBox","borderData","useBorder","boxShadowData","useBoxShadow","length","index","columns","Element","Placeholder","runtime","registerComponent","label","Props","icon","defaultValue","preset","unit","labelOrientation","min","step","suffix","Link","link","onClick","page","usePage","pageId","elementKey","elementIdConfig","elementId","useElementId","href","target","block","pathname","openInNewTab","to","subject","body","phoneNumber","RangeError","handleClick","event","defaultPrevented","currentTarget","isContentEditable","preventDefault","hash","URL","error","view","scrollIntoView","document","querySelector","behavior","history","pushState","StyledButton","shape","textColor","alpha","fontSize","small","medium","large","square","rounded","pill","flat","property","ColorHelper","darken","hex","outline","shadow","clear","toString","blocky","bubbly","lighten","saturate","skewed","cssTextStyle","Button","textStyle","useColor","placeholder","src","Promise","resolve","reject","image","Image","onload","onerror","baseDevice","DEVICES","find","device","maxWidth","baseWidth","findDeviceOverride","baseWidthSize","override","sourceSizes","sourceSize","ImageContainer","dimensions","UnoptimizedImage","img","ImageComponent","file","altText","placeholders","className","fileData","useFile","imageSrc","dataDimensions","measuredDimensions","setMeasuredDimensions","isInBuilder","useIsInBuilder","cleanedUp","then","naturalWidth","naturalHeight","catch","console","imageSizes","LeftChevron","RightChevron","Wrapper","Arrow","Slop","hidden","Slide","pageSize","Reel","gap","Page","LeftSlop","RightSlop","ClipMask","Dots","Dot","active","SWIPE_THRESHOLD","swipePower","dx","velocity","Carousel","images","responsivePageSize","responsiveStep","slideAlignment","showDots","showArrows","arrowPosition","arrowColor","arrowBackground","dotColor","autoplay","slideBorder","slideBorderRadius","setIndex","swipe","startIndex","wrap","endIndex","pageCount","ceil","pageIndex","isFirstPage","isLastPage","paginate","pageDistance","direction","abs","remaining","slice","distance","animation","stiffness","bindPage","useGesture","onDrag","movement","mx","delta","onDragEnd","drag","axis","bounds","rubberband","intervalId","setInterval","clearInterval","_jsxs","imageProps","Array","from","_","i","uuid","Block","Label","Segment","blockColor","numberColor","numberFont","labelColor","labelFont","getRemaining","date","days","hours","minutes","seconds","timeDiff","Date","getTime","now","floor","parseInt","String","Countdown","daysLabel","hoursLabel","minutesLabel","secondsLabel","setRemaining","toISOString","IE11MinHeightContainer","Line","thickness","Error","Divider","defaultHtml","SCRIPT_TAG","Embed","html","setContainer","shouldRender","setShouldRender","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tagName","toLowerCase","FILTER_ACCEPT","FILTER_REJECT","nodes","nextNode","push","currentNode","script","createElement","textContent","attributes","forEach","name","setAttribute","parentNode","insertBefore","removeChild","hasAttribute","__html","rows","_path","_extends","GutterContainer","gutter","first","last","PlaceholderLink","button","links","DROP_DOWN_MENU_WIDTH","DropDownMenu","dropIn","keyframes","DropDownContainer","StyledDropDownItem","fontWeight","fontStyle","letterSpacing","textTransform","includes","caret","setPosition","innerWidth","offsetLeft","display","fill","CaretDown8","Plus8","ArrowDown8","ChevronDown8","DropDownItem","open","ButtonLink","StyledLink","onClose","isOpen","setIsOpen","prev","coverRight","coverLeft","CloseIconContainer","closeIconColor","Times16","flexDirection","flexShrink","Fragment","DropDownButton","nav","LinksContainer","alignment","mobileMenuAnimation","OpenIconContainer","Navigation","linkTextStyle","showLogo","logoFile","logoWidth","logoAltText","logoLink","mobileMenuOpenIconColor","mobileMenuCloseIconColor","mobileMenuBackgroundColor","flexGrow","justifyContent","MobileMenu28","Normalize","createGlobalStyle","normalize","Root","SocialLinksOptions","LogoAngellist20","brandColor","LogoCodepen20","LogoDribbble20","LogoFacebook20","LogoGithub20","LogoInstagram20","LogoLinkedin20","LogoMedium20","LogoPinterest20","LogoReddit20","LogoRss20","LogoSnapchat20","LogoSoundcloud20","LogoSpotify20","LogoTelegram20","LogoTumblr20","LogoTwitch20","LogoTwitter20","LogoWhatsapp20","LogoVimeo20","LogoYelp20","LogoYoutube20","hoverStyle","circle","naked","grow","shrink","fade","SocialLinks","fillData","backgroundColorData","option","o","Span","span","typographyStyle","fontFamily","lineHeight","uppercase","underline","strikethrough","italic","Boolean","shallowMergeFallbacks","useTypographyMark","TYPOGRAPHY_TYPE","renderMark","mark","_editor","next","data","StyledBlock","textAlign","as","renderBlock","blockProps","renderInline","toJS","RichTextEditor","plugins","useMemo","Lists","Inlines","DeviceOverridesBlocks","DeviceOverridesMarks","SlateEditor","StyledRichTextEditor","defaultText","object","COMMIT_DEBOUNCE_DELAY","Text","text","editor","setEditor","propControllers","setPropControllers","controller","el","findDOMNode","getBox","setSlateEditor","setValue","selection","textWithoutSelection","Value","fromJSON","shouldCommit","setShouldCommit","nextValue","currentValue","isBlurred","toJSON","preserveSelection","timeoutId","window","setTimeout","clearTimeout","change","onChange","lastController","handleFocus","focus","handleKeyDown","Hotkeys","isUndo","undo","isRedo","redo","handleChange","ipsum","marks","registerBoxComponent","registerButtonComponent","registerCarouselComponent","registerCountdownComponent","registerDividerComponent","registerEmbedComponent","registerImageComponent","registerNavigationComponent","registerRootComponent","registerSocialLinksComponent","registerTextComponent","contextDefaultValue","ReactPage","store","unregisterComponent","dispatch","registerComponentEffect","unregisterReactComponent","registerReactComponentEffect","ReactRuntime","createReactRuntime","defaultRootElements","registerComponents","makeswiftApiEndpoint","setStore","preloadedState","getState","rootElements","registerBuiltinComponents","setClient","ApolloClient","uri","cache","InMemoryCache","ReactBuilderPreview","configureStore","handleFocusIn","handlefocusOut","HTMLElement","relatedTarget","DocumentContext","selector","useSyncExternalStoreWithSelector","subscribe","useSelector","documentKey","useDocumentKey","ElementData","memo","elementData","Component","useComponent","JSON","stringify","ElementReference","elementReference","useDispatch","registerComponentHandleEffect","mountComponentEffect","Document","documentRootElement","useDocumentRootElement"],"mappings":"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"}