@makeswift/runtime 0.0.0-af7286d → 0.0.0-d468236

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 (331) hide show
  1. package/api.js +1 -0
  2. package/box-model.js +1 -0
  3. package/builder.js +1 -0
  4. package/components.js +1 -0
  5. package/dist/Page.cjs.js +215 -0
  6. package/dist/Page.cjs.js.map +1 -0
  7. package/dist/Page.es.js +209 -0
  8. package/dist/Page.es.js.map +1 -0
  9. package/dist/actions.cjs.js +121 -17
  10. package/dist/actions.cjs.js.map +1 -1
  11. package/dist/actions.es.js +106 -16
  12. package/dist/actions.es.js.map +1 -1
  13. package/dist/api.cjs.js +5 -0
  14. package/dist/api.cjs.js.map +1 -0
  15. package/dist/api.es.js +2 -0
  16. package/dist/api.es.js.map +1 -0
  17. package/dist/box-model.cjs.js +2 -2
  18. package/dist/box-model.es.js +1 -0
  19. package/dist/box-model.es.js.map +1 -1
  20. package/dist/box-models.cjs.js +28 -156
  21. package/dist/box-models.cjs.js.map +1 -1
  22. package/dist/box-models.es.js +31 -159
  23. package/dist/box-models.es.js.map +1 -1
  24. package/dist/builder.cjs.js +10 -0
  25. package/dist/builder.cjs.js.map +1 -0
  26. package/dist/builder.es.js +3 -0
  27. package/dist/builder.es.js.map +1 -0
  28. package/dist/components.cjs.js +70 -19948
  29. package/dist/components.cjs.js.map +1 -1
  30. package/dist/components.es.js +31 -19911
  31. package/dist/components.es.js.map +1 -1
  32. package/dist/constants.cjs.js +241 -0
  33. package/dist/constants.cjs.js.map +1 -0
  34. package/dist/constants.es.js +240 -0
  35. package/dist/constants.es.js.map +1 -0
  36. package/dist/control-serialization.cjs.js +223 -0
  37. package/dist/control-serialization.cjs.js.map +1 -0
  38. package/dist/control-serialization.es.js +218 -0
  39. package/dist/control-serialization.es.js.map +1 -0
  40. package/dist/descriptors.cjs.js +40 -3
  41. package/dist/descriptors.cjs.js.map +1 -1
  42. package/dist/descriptors.es.js +8 -4
  43. package/dist/descriptors.es.js.map +1 -1
  44. package/dist/instances.cjs.js +106 -0
  45. package/dist/instances.cjs.js.map +1 -0
  46. package/dist/instances.es.js +103 -0
  47. package/dist/instances.es.js.map +1 -0
  48. package/dist/main.cjs.js +14 -2
  49. package/dist/main.cjs.js.map +1 -1
  50. package/dist/main.es.js +5 -1
  51. package/dist/main.es.js.map +1 -1
  52. package/dist/next.cjs.js +190 -0
  53. package/dist/next.cjs.js.map +1 -0
  54. package/dist/next.es.js +180 -0
  55. package/dist/next.es.js.map +1 -0
  56. package/dist/prop-controllers.cjs.js +4 -2
  57. package/dist/prop-controllers.cjs.js.map +1 -1
  58. package/dist/prop-controllers.es.js +1 -0
  59. package/dist/prop-controllers.es.js.map +1 -1
  60. package/dist/react-builder-preview.cjs.js +274 -4131
  61. package/dist/react-builder-preview.cjs.js.map +1 -1
  62. package/dist/react-builder-preview.es.js +265 -4126
  63. package/dist/react-builder-preview.es.js.map +1 -1
  64. package/dist/react-page.cjs.js +262 -0
  65. package/dist/react-page.cjs.js.map +1 -0
  66. package/dist/react-page.es.js +241 -0
  67. package/dist/react-page.es.js.map +1 -0
  68. package/dist/react.cjs.js +31 -3
  69. package/dist/react.cjs.js.map +1 -1
  70. package/dist/react.cjs2.js +7823 -665
  71. package/dist/react.cjs2.js.map +1 -1
  72. package/dist/react.es.js +28 -1
  73. package/dist/react.es.js.map +1 -1
  74. package/dist/react.es2.js +7741 -640
  75. package/dist/react.es2.js.map +1 -1
  76. package/dist/types/api/constants.d.ts +4 -0
  77. package/dist/types/api/constants.d.ts.map +1 -0
  78. package/dist/types/api/generated/graphql.d.ts +120 -0
  79. package/dist/types/api/generated/graphql.d.ts.map +1 -0
  80. package/dist/types/api/index.d.ts +3 -0
  81. package/dist/types/api/index.d.ts.map +1 -0
  82. package/dist/types/api/react.d.ts +27 -0
  83. package/dist/types/api/react.d.ts.map +1 -0
  84. package/dist/types/api/types.d.ts +4 -0
  85. package/dist/types/api/types.d.ts.map +1 -0
  86. package/dist/types/builder/index.d.ts +2 -0
  87. package/dist/types/builder/index.d.ts.map +1 -0
  88. package/dist/types/builder/serialization/control-serialization.d.ts +144 -0
  89. package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -0
  90. package/dist/types/builder/serialization/function-serialization.d.ts +12 -0
  91. package/dist/types/builder/serialization/function-serialization.d.ts.map +1 -0
  92. package/dist/types/builder/serialization/index.d.ts +3 -0
  93. package/dist/types/builder/serialization/index.d.ts.map +1 -0
  94. package/dist/types/components/builtin/Box/Box.d.ts +5 -2
  95. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  96. package/dist/types/components/builtin/Box/index.d.ts +1 -1
  97. package/dist/types/components/builtin/Box/index.d.ts.map +1 -1
  98. package/dist/types/components/builtin/Button/Button.d.ts +5 -2
  99. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
  100. package/dist/types/components/builtin/Button/index.d.ts +1 -1
  101. package/dist/types/components/builtin/Button/index.d.ts.map +1 -1
  102. package/dist/types/components/builtin/Carousel/Carousel.d.ts +5 -2
  103. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  104. package/dist/types/components/builtin/Carousel/index.d.ts +1 -1
  105. package/dist/types/components/builtin/Carousel/index.d.ts.map +1 -1
  106. package/dist/types/components/builtin/Countdown/Countdown.d.ts +5 -2
  107. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  108. package/dist/types/components/builtin/Countdown/index.d.ts +1 -1
  109. package/dist/types/components/builtin/Countdown/index.d.ts.map +1 -1
  110. package/dist/types/components/builtin/Divider/Divider.d.ts +5 -2
  111. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
  112. package/dist/types/components/builtin/Divider/index.d.ts +1 -1
  113. package/dist/types/components/builtin/Divider/index.d.ts.map +1 -1
  114. package/dist/types/components/builtin/Embed/Embed.d.ts +5 -2
  115. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
  116. package/dist/types/components/builtin/Embed/index.d.ts +1 -1
  117. package/dist/types/components/builtin/Embed/index.d.ts.map +1 -1
  118. package/dist/types/components/builtin/Form/Form.d.ts +41 -0
  119. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -0
  120. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +15 -0
  121. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -0
  122. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +15 -0
  123. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -0
  124. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +11 -0
  125. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -0
  126. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts +14 -0
  127. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -0
  128. package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts +16 -0
  129. package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -0
  130. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +10 -0
  131. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -0
  132. package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts +23 -0
  133. package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -0
  134. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +11 -0
  135. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -0
  136. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +11 -0
  137. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -0
  138. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +3 -0
  139. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -0
  140. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +17 -0
  141. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -0
  142. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +11 -0
  143. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -0
  144. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts +23 -0
  145. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -0
  146. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +19 -0
  147. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -0
  148. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts +24 -0
  149. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +1 -0
  150. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts +13 -0
  151. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -0
  152. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +11 -0
  153. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -0
  154. package/dist/types/components/builtin/Form/components/Field/index.d.ts +19 -0
  155. package/dist/types/components/builtin/Form/components/Field/index.d.ts.map +1 -0
  156. package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts +11 -0
  157. package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts.map +1 -0
  158. package/dist/types/components/{Embed/Embed.d.ts → builtin/Form/components/Placeholder/index.d.ts} +2 -4
  159. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -0
  160. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts +3 -0
  161. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -0
  162. package/dist/types/components/builtin/Form/context/FormContext.d.ts +32 -0
  163. package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -0
  164. package/dist/types/components/builtin/Form/index.d.ts +2 -0
  165. package/dist/types/components/builtin/Form/index.d.ts.map +1 -0
  166. package/dist/types/components/builtin/Image/Image.d.ts +5 -2
  167. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
  168. package/dist/types/components/builtin/Image/index.d.ts +1 -1
  169. package/dist/types/components/builtin/Image/index.d.ts.map +1 -1
  170. package/dist/types/components/builtin/Navigation/Navigation.d.ts +5 -2
  171. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  172. package/dist/types/components/builtin/Navigation/index.d.ts +1 -1
  173. package/dist/types/components/builtin/Navigation/index.d.ts.map +1 -1
  174. package/dist/types/components/builtin/Root/Root.d.ts +5 -2
  175. package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
  176. package/dist/types/components/builtin/Root/index.d.ts +1 -1
  177. package/dist/types/components/builtin/Root/index.d.ts.map +1 -1
  178. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +5 -2
  179. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  180. package/dist/types/components/builtin/SocialLinks/index.d.ts +1 -1
  181. package/dist/types/components/builtin/SocialLinks/index.d.ts.map +1 -1
  182. package/dist/types/components/builtin/Text/Text.d.ts +19 -0
  183. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -0
  184. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +24 -0
  185. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
  186. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +25 -0
  187. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  188. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +13 -0
  189. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  190. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts +5 -0
  191. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
  192. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  193. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  194. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  195. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  196. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +3 -0
  197. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  198. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +3 -0
  199. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
  200. package/dist/types/components/builtin/Text/index.d.ts +2 -0
  201. package/dist/types/components/builtin/Text/index.d.ts.map +1 -0
  202. package/dist/types/components/builtin/Video/Video.d.ts +15 -0
  203. package/dist/types/components/builtin/Video/Video.d.ts.map +1 -0
  204. package/dist/types/components/builtin/Video/index.d.ts +2 -0
  205. package/dist/types/components/builtin/Video/index.d.ts.map +1 -0
  206. package/dist/types/components/builtin/index.d.ts +6 -1
  207. package/dist/types/components/builtin/index.d.ts.map +1 -1
  208. package/dist/types/components/hooks/index.d.ts +1 -0
  209. package/dist/types/components/hooks/index.d.ts.map +1 -1
  210. package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -1
  211. package/dist/types/components/hooks/useBorder.d.ts.map +1 -1
  212. package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -1
  213. package/dist/types/components/hooks/useColor.d.ts.map +1 -1
  214. package/dist/types/components/hooks/useFile.d.ts.map +1 -1
  215. package/dist/types/components/hooks/usePage.d.ts.map +1 -1
  216. package/dist/types/components/hooks/useTable.d.ts +66 -0
  217. package/dist/types/components/hooks/useTable.d.ts.map +1 -0
  218. package/dist/types/components/hooks/useTableFormFieldRefs.d.ts +8 -0
  219. package/dist/types/components/hooks/useTableFormFieldRefs.d.ts.map +1 -0
  220. package/dist/types/components/hooks/useTypography.d.ts +24 -0
  221. package/dist/types/components/hooks/useTypography.d.ts.map +1 -0
  222. package/dist/types/components/index.d.ts +3 -0
  223. package/dist/types/components/index.d.ts.map +1 -1
  224. package/dist/types/components/page/BodySnippet.d.ts +7 -0
  225. package/dist/types/components/page/BodySnippet.d.ts.map +1 -0
  226. package/dist/types/components/page/Page.d.ts +45 -0
  227. package/dist/types/components/page/Page.d.ts.map +1 -0
  228. package/dist/types/components/page/index.d.ts +2 -0
  229. package/dist/types/components/page/index.d.ts.map +1 -0
  230. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  231. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts +7 -0
  232. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -0
  233. package/dist/types/components/shared/FallbackComponent/index.d.ts +2 -0
  234. package/dist/types/components/shared/FallbackComponent/index.d.ts.map +1 -0
  235. package/dist/types/components/utils/devices.d.ts +1 -0
  236. package/dist/types/components/utils/devices.d.ts.map +1 -1
  237. package/dist/types/components/utils/placeholders.d.ts +7 -0
  238. package/dist/types/components/utils/placeholders.d.ts.map +1 -1
  239. package/dist/types/components/utils/queries.d.ts +7 -4
  240. package/dist/types/components/utils/queries.d.ts.map +1 -1
  241. package/dist/types/components/utils/types.d.ts +1 -2
  242. package/dist/types/components/utils/types.d.ts.map +1 -1
  243. package/dist/types/controls.d.ts +4 -0
  244. package/dist/types/controls.d.ts.map +1 -0
  245. package/dist/types/index.d.ts +2 -1
  246. package/dist/types/index.d.ts.map +1 -1
  247. package/dist/types/next.d.ts +22 -0
  248. package/dist/types/next.d.ts.map +1 -0
  249. package/dist/types/prop-controllers/descriptors.d.ts +42 -23
  250. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  251. package/dist/types/prop-controllers/index.d.ts +3 -1
  252. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  253. package/dist/types/prop-controllers/instances.d.ts +95 -4
  254. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  255. package/dist/types/react.d.ts +1 -1
  256. package/dist/types/react.d.ts.map +1 -1
  257. package/dist/types/runtimes/react.d.ts +25 -12
  258. package/dist/types/runtimes/react.d.ts.map +1 -1
  259. package/dist/types/state/actions.d.ts +161 -13
  260. package/dist/types/state/actions.d.ts.map +1 -1
  261. package/dist/types/state/modules/box-models.d.ts +5 -5
  262. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  263. package/dist/types/state/modules/prop-controller-handles.d.ts +4 -8
  264. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -1
  265. package/dist/types/state/modules/read-only-documents.d.ts +8 -4
  266. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  267. package/dist/types/state/modules/read-write-documents.d.ts +1 -1
  268. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
  269. package/dist/types/state/react-builder-preview.d.ts +5 -1
  270. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  271. package/dist/types/state/react-page.d.ts +4 -3
  272. package/dist/types/state/react-page.d.ts.map +1 -1
  273. package/dist/types/utils/coalesce.d.ts +3 -0
  274. package/dist/types/utils/coalesce.d.ts.map +1 -0
  275. package/dist/types/utils/constants.d.ts +6 -0
  276. package/dist/types/utils/constants.d.ts.map +1 -0
  277. package/dist/types/utils/intersection.d.ts +4 -0
  278. package/dist/types/utils/intersection.d.ts.map +1 -0
  279. package/dist/types/utils/keys.d.ts +5 -0
  280. package/dist/types/utils/keys.d.ts.map +1 -0
  281. package/dist/types/utils/shallowMerge.d.ts +2 -0
  282. package/dist/types/utils/shallowMerge.d.ts.map +1 -0
  283. package/next.js +1 -0
  284. package/package.json +62 -24
  285. package/prop-controllers.js +1 -0
  286. package/react.js +1 -0
  287. package/dist/types/components/BackgroundsContainer/components/BackgroundVideo/index.d.ts +0 -11
  288. package/dist/types/components/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +0 -1
  289. package/dist/types/components/BackgroundsContainer/components/Backgrounds/index.d.ts +0 -8
  290. package/dist/types/components/BackgroundsContainer/components/Backgrounds/index.d.ts.map +0 -1
  291. package/dist/types/components/BackgroundsContainer/components/Parallax/index.d.ts +0 -11
  292. package/dist/types/components/BackgroundsContainer/components/Parallax/index.d.ts.map +0 -1
  293. package/dist/types/components/BackgroundsContainer/index.d.ts +0 -11
  294. package/dist/types/components/BackgroundsContainer/index.d.ts.map +0 -1
  295. package/dist/types/components/Box/Box.d.ts +0 -30
  296. package/dist/types/components/Box/Box.d.ts.map +0 -1
  297. package/dist/types/components/Box/animations.d.ts +0 -69
  298. package/dist/types/components/Box/animations.d.ts.map +0 -1
  299. package/dist/types/components/Box/components/Placeholder/index.d.ts +0 -7
  300. package/dist/types/components/Box/components/Placeholder/index.d.ts.map +0 -1
  301. package/dist/types/components/Box/index.d.ts +0 -3
  302. package/dist/types/components/Box/index.d.ts.map +0 -1
  303. package/dist/types/components/Carousel/Carousel.d.ts +0 -25
  304. package/dist/types/components/Carousel/Carousel.d.ts.map +0 -1
  305. package/dist/types/components/Carousel/index.d.ts +0 -2
  306. package/dist/types/components/Carousel/index.d.ts.map +0 -1
  307. package/dist/types/components/Countdown/Countdown.d.ts +0 -24
  308. package/dist/types/components/Countdown/Countdown.d.ts.map +0 -1
  309. package/dist/types/components/Countdown/index.d.ts +0 -2
  310. package/dist/types/components/Countdown/index.d.ts.map +0 -1
  311. package/dist/types/components/Divider/Divider.d.ts +0 -14
  312. package/dist/types/components/Divider/Divider.d.ts.map +0 -1
  313. package/dist/types/components/Divider/index.d.ts +0 -2
  314. package/dist/types/components/Divider/index.d.ts.map +0 -1
  315. package/dist/types/components/Embed/Embed.d.ts.map +0 -1
  316. package/dist/types/components/Embed/index.d.ts +0 -2
  317. package/dist/types/components/Embed/index.d.ts.map +0 -1
  318. package/dist/types/components/Image/Image.d.ts +0 -26
  319. package/dist/types/components/Image/Image.d.ts.map +0 -1
  320. package/dist/types/components/Image/index.d.ts +0 -2
  321. package/dist/types/components/Image/index.d.ts.map +0 -1
  322. package/dist/types/components/Link/index.d.ts +0 -9
  323. package/dist/types/components/Link/index.d.ts.map +0 -1
  324. package/dist/types/components/RichText/index.d.ts +0 -5
  325. package/dist/types/components/RichText/index.d.ts.map +0 -1
  326. package/dist/types/components/Root/Root.d.ts +0 -11
  327. package/dist/types/components/Root/Root.d.ts.map +0 -1
  328. package/dist/types/components/Root/components/Placeholder/index.d.ts +0 -5
  329. package/dist/types/components/Root/components/Placeholder/index.d.ts.map +0 -1
  330. package/dist/types/components/Root/index.d.ts +0 -2
  331. package/dist/types/components/Root/index.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"react.es2.js","sources":["../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/use-sync-external-store/shim/index.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../../node_modules/redux/es/redux.js","../../../node_modules/redux-thunk/es/index.js","../src/state/modules/read-only-documents.ts","../src/state/modules/react-components.tsx","../src/state/modules/components-meta.ts","../src/state/modules/prop-controllers.ts","../src/prop-controllers/introspection.ts","../src/state/react-page.ts","../src/runtimes/react.tsx"],"sourcesContent":["/** @license React vundefined\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/** @license React vundefined\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import type { Action } from '../actions'\n\nexport type Data = undefined | null | boolean | number | string | Data[] | { [key: string]: Data }\n\nexport type ElementData = { type: string; key: string; props: Record<string, Data> }\n\nexport type ElementReference = { type: 'reference'; key: string; value: string }\n\nexport type Element = ElementData | ElementReference\n\nexport function isElementReference(element: Element): element is ElementReference {\n return !('props' in element)\n}\n\nexport type Document = {\n rootElement: Element\n}\n\nexport function createDocument(rootElement: Element): Document {\n return { rootElement }\n}\n\nexport type State = Map<string, Document>\n\nexport function getInitialState({\n rootElements = new Map(),\n}: { rootElements?: Map<string, Element> } = {}): State {\n const initialState = new Map()\n\n rootElements.forEach((rootElement, elementKey) => {\n initialState.set(elementKey, createDocument(rootElement))\n })\n\n return initialState\n}\n\nfunction getDocuments(state: State): Map<string, Document> {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): Document | null {\n return getDocuments(state).get(documentKey) ?? null\n}\n\nexport function getDocumentRootElement(state: State, documentKey: string): Element | null {\n return getDocument(state, documentKey)?.rootElement ?? null\n}\n\nexport function reducer(state: State = getInitialState(), _action: Action): State {\n return state\n}\n","import type {\n ClassAttributes,\n ComponentClass,\n PropsWithoutRef,\n RefAttributes,\n VoidFunctionComponent,\n} from 'react'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type ComponentType<P = Record<string, any>, T = any> =\n | ComponentClass<PropsWithoutRef<P> & ClassAttributes<T>>\n | VoidFunctionComponent<PropsWithoutRef<P> & RefAttributes<T>>\n\nexport type State = Map<string, ComponentType>\n\nexport function getInitialState({\n reactComponents = new Map(),\n}: { reactComponents?: Map<string, ComponentType> } = {}): State {\n return reactComponents\n}\n\nfunction getReactComponents(state: State): Map<string, ComponentType> {\n return state\n}\n\nexport function getReactComponent(state: State, type: string): ComponentType | null {\n return getReactComponents(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_REACT_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.component)\n\n case ActionTypes.UNREGISTER_REACT_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type ComponentIcon =\n | 'Carousel40'\n | 'Code40'\n | 'Countdown40'\n | 'Cube40'\n | 'Divider40'\n | 'Form40'\n | 'Navigation40'\n | 'SocialLinks40'\n | 'Video40'\n\nexport type ComponentMeta = { label: string; icon: ComponentIcon; hidden: boolean }\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\nimport { PropControllerDescriptor } from '../../prop-controllers'\n\nexport type { PropControllerDescriptor }\n\nexport type State = Map<string, Record<string, PropControllerDescriptor>>\n\nexport function getInitialState({\n propControllerDescriptors = new Map(),\n}: {\n propControllerDescriptors?: Map<string, Record<string, PropControllerDescriptor>>\n} = {}): State {\n return propControllerDescriptors\n}\n\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 => state,\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 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 {\n createContext,\n forwardRef,\n memo,\n ReactNode,\n Ref,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\n\nimport * as ReactPage from '../state/react-page'\nimport type * as ReactBuilderPreview from '../state/react-builder-preview'\nimport {\n changeComponentHandle,\n mountComponentEffect,\n registerComponentEffect,\n registerReactComponentEffect,\n} from '../state/actions'\nimport type {\n PropControllerDescriptor,\n PropControllerDescriptorValueType,\n} from '../prop-controllers'\nimport { ComponentIcon } from '../state/modules/components-meta'\n\nconst contextDefaultValue = ReactPage.configureStore()\n\nexport const ReactRuntime = {\n registerComponent<\n P extends Record<string, PropControllerDescriptor>,\n C extends ReactPage.ComponentType<{ [K in keyof P]?: PropControllerDescriptorValueType<P[K]> }>,\n >(\n component: C,\n {\n type,\n label,\n icon = 'Cube40',\n hidden = false,\n props,\n }: { type: string; label: string; icon?: ComponentIcon; hidden?: boolean; props?: P },\n ): () => void {\n const unregisterComponent = contextDefaultValue.dispatch(\n registerComponentEffect(type, { label, icon, hidden }, props ?? {}),\n )\n\n const unregisterReactComponent = contextDefaultValue.dispatch(\n registerReactComponentEffect(type, component as unknown as ReactPage.ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n },\n}\n\nconst Context = createContext(contextDefaultValue)\n\ntype RuntimeProviderProps = {\n defaultRootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n}\n\nexport function RuntimeProvider({\n children,\n defaultRootElements,\n}: RuntimeProviderProps): JSX.Element {\n const [store, setStore] = useState(() =>\n ReactPage.configureStore({\n preloadedState: contextDefaultValue.getState(),\n rootElements: defaultRootElements,\n }),\n )\n\n useEffect(() => {\n // TODO(miguel): perform a more robust validation.\n const isInBuilder = window.parent !== window\n\n if (!isInBuilder) return\n\n const initializePromise = initializeReactBuilderPreview()\n\n return () => {\n initializePromise.then(cleanUp => {\n cleanUp()\n })\n }\n\n async function initializeReactBuilderPreview(): Promise<() => void> {\n const ReactBuilderPreview = await import('../state/react-builder-preview')\n\n const store = await new Promise<ReactBuilderPreview.Store>(resolve => {\n setStore(store => {\n const nextStore = ReactBuilderPreview.configureStore({ preloadedState: store.getState() })\n\n resolve(nextStore)\n\n return nextStore\n })\n })\n\n return store.dispatch(ReactBuilderPreview.initialize())\n }\n }, [])\n\n return <Context.Provider value={store}>{children}</Context.Provider>\n}\n\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 ref = useCallback(\n (handle: unknown): void => {\n dispatch(changeComponentHandle(elementKey, handle))\n },\n [dispatch, elementKey],\n )\n\n useEffect(() => dispatch(mountComponentEffect(elementKey)), [dispatch, elementKey])\n\n return ReactPage.isElementReference(element) ? (\n <ElementReference key={elementKey} ref={ref} elementReference={element} />\n ) : (\n <ElementData key={elementKey} ref={ref} elementData={element} />\n )\n})\n\ntype DocumentProps = {\n documentKey: string\n}\n\nexport const Document = memo(function Document({ documentKey }: DocumentProps): JSX.Element {\n const documentRootElement = useDocumentRootElement(documentKey)\n\n if (documentRootElement == null) {\n return (\n <div>\n <p>Document Not Found</p>\n <pre>\n <code>{JSON.stringify({ documentKey }, null, 2)}</code>\n </pre>\n </div>\n )\n }\n\n return (\n <DocumentContext.Provider value={documentKey}>\n <Element element={documentRootElement} />\n </DocumentContext.Provider>\n )\n})\n"],"names":["require$$0","h","n","p","r","u","t","q","shimModule","require$$1","withSelectorModule","defineProperty","_objectSpread","getInitialState","reactComponents","Map","state","type","getReactComponents","get","action","ActionTypes","REGISTER_REACT_COMPONENT","set","payload","component","UNREGISTER_REACT_COMPONENT","nextState","deleted","delete","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","thunk","contextDefaultValue","ReactPage","ReactRuntime","registerComponent","label","icon","hidden","props","unregisterComponent","dispatch","registerComponentEffect","unregisterReactComponent","registerReactComponentEffect","Context","createContext","children","defaultRootElements","store","setStore","useState","preloadedState","getState","rootElements","isInBuilder","window","parent","initializePromise","initializeReactBuilderPreview","then","cleanUp","ReactBuilderPreview","Promise","resolve","nextStore","configureStore","initialize","DocumentContext","useContext","selector","useSyncExternalStoreWithSelector","subscribe","useSelector","elementKey","documentKey","useDocumentKey","ElementData","memo","forwardRef","elementData","ref","Component","useComponent","JSON","stringify","key","ElementReference","elementReference","Element","element","useDispatch","useCallback","handle","changeComponentHandle","mountComponentEffect","Document","documentRootElement","useDocumentRootElement"],"mappings":"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"}
1
+ {"version":3,"file":"react.es2.js","sources":["../src/components/builtin/Box/components/Placeholder/index.tsx","../src/components/utils/queries.ts","../src/components/utils/isNonNullable.ts","../src/api/react.tsx","../src/components/hooks/useBackgrounds.ts","../src/components/hooks/useBorder.ts","../src/components/hooks/useBoxShadow.ts","../src/components/hooks/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/hooks/useTable.ts","../src/components/builtin/Box/animations.tsx","../src/components/utils/columns.ts","../src/components/utils/colorToString.ts","../src/components/utils/cssMediaRules.ts","../src/utils/clamp.ts","../src/components/shared/BackgroundsContainer/components/Parallax/index.tsx","../src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.tsx","../src/components/shared/BackgroundsContainer/components/Backgrounds/index.tsx","../src/components/shared/BackgroundsContainer/index.tsx","../src/components/builtin/Box/Box.tsx","../src/components/shared/Link/index.tsx","../src/components/builtin/Button/Button.tsx","../src/components/utils/placeholders.ts","../src/components/builtin/Image/Image.tsx","../src/components/builtin/Carousel/Carousel.tsx","../src/components/builtin/Countdown/Countdown.tsx","../src/components/builtin/Divider/Divider.tsx","../src/components/builtin/Embed/Embed.tsx","../src/components/icons/check-12.svg","../src/components/builtin/Form/context/FormContext.ts","../src/components/builtin/Form/components/Field/services/cssField.ts","../src/components/builtin/Form/components/Field/components/Input/index.tsx","../src/components/builtin/Form/components/Placeholder/index.tsx","../src/components/builtin/Form/components/Field/components/Label/index.tsx","../src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.tsx","../src/components/builtin/Form/components/Field/components/TextArea/index.tsx","../src/components/builtin/Form/components/Field/components/LongTextTableField/index.tsx","../src/components/builtin/Form/components/Field/components/Checkbox/index.tsx","../src/components/builtin/Form/components/Field/components/CheckboxTableField/index.tsx","../src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.tsx","../src/components/builtin/Form/components/Field/components/RadioButton/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.tsx","../src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.tsx","../src/components/builtin/Form/components/Field/components/EmailTableField/index.tsx","../src/components/builtin/Form/components/Field/components/URLTableField/index.tsx","../src/components/builtin/Form/components/Field/components/NumberTableField/index.tsx","../src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.tsx","../src/components/builtin/Form/components/Field/index.tsx","../src/components/icons/spinner-20.svg","../src/components/builtin/Form/components/Spinner/index.tsx","../src/components/hooks/useTableFormFieldRefs.ts","../src/components/builtin/Form/Form.tsx","../src/components/icons/mobile-menu-28.svg","../src/components/shared/GutterContainer/index.tsx","../src/components/builtin/Navigation/components/LinksPlaceholder/index.tsx","../src/components/icons/caret-down-8.svg","../src/components/icons/plus-8.svg","../src/components/icons/arrow-down-8.svg","../src/components/icons/chevron-down-8.svg","../src/components/builtin/Navigation/components/DropDownButton/index.tsx","../src/components/icons/times-16.svg","../src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.tsx","../src/components/builtin/Navigation/components/MobileMenu/index.tsx","../src/components/builtin/Navigation/Navigation.tsx","../src/components/builtin/Root/components/Placeholder/index.tsx","../src/components/builtin/Root/Root.tsx","../src/components/icons/logo-angellist-20.svg","../src/components/icons/logo-codepen-20.svg","../src/components/icons/logo-dribbble-20.svg","../src/components/icons/logo-facebook-20.svg","../src/components/icons/logo-github-20.svg","../src/components/icons/logo-instagram-20.svg","../src/components/icons/logo-linkedin-20.svg","../src/components/icons/logo-medium-20.svg","../src/components/icons/logo-pinterest-20.svg","../src/components/icons/logo-reddit-20.svg","../src/components/icons/logo-rss-20.svg","../src/components/icons/logo-snapchat-20.svg","../src/components/icons/logo-soundcloud-20.svg","../src/components/icons/logo-spotify-20.svg","../src/components/icons/logo-telegram-20.svg","../src/components/icons/logo-tumblr-20.svg","../src/components/icons/logo-twitch-20.svg","../src/components/icons/logo-twitter-20.svg","../src/components/icons/logo-whatsapp-20.svg","../src/components/icons/logo-vimeo-20.svg","../src/components/icons/logo-yelp-20.svg","../src/components/icons/logo-youtube-20.svg","../src/components/builtin/SocialLinks/options.tsx","../src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.tsx","../src/components/builtin/SocialLinks/SocialLinks.tsx","../src/components/hooks/useTypography.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.tsx","../src/components/builtin/Text/components/RichTextEditor/components/Block/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Link.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Inlines.tsx","../src/components/builtin/Text/components/RichTextEditor/index.tsx","../src/components/builtin/Text/Text.tsx","../src/components/builtin/Video/Video.tsx","../src/components/builtin/index.ts","../src/components/icons/warning-20.svg","../src/components/shared/FallbackComponent/FallbackComponent.tsx","../src/runtimes/react.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\n\nconst PlaceholderBase = styled.div<{ hide: boolean }>`\n width: 100%;\n background: rgba(161, 168, 194, 0.18);\n height: 80px;\n padding: 8px;\n visibility: ${({ hide }) => (hide === true ? 'hidden' : 'initial')};\n`\n\ntype Props = { hide?: boolean }\n\nexport default forwardRef(function Placeholder(\n { hide = false, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <PlaceholderBase {...restOfProps} hide={hide} ref={ref}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n style={{ overflow: 'visible' }}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </PlaceholderBase>\n )\n})\n","import { gql } from '@apollo/client'\n\nexport const SWATCHES_BY_ID = gql`\n query SwatchesById($ids: [ID!]!) {\n swatches(ids: $ids) {\n id\n hue\n saturation\n lightness\n }\n }\n`\n\nexport const FILE_BY_ID = gql`\n query FileById($id: ID!) {\n file(id: $id) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n }\n`\n\nexport const FILES_BY_ID = gql`\n query FilesById($ids: [ID!]!) {\n files(ids: $ids) {\n id\n name\n publicUrl\n extension\n dimensions {\n width\n height\n }\n }\n }\n`\n\nexport const PAGE_PATHNAMES_BY_ID = gql`\n query PagePathnamesById($ids: [ID!]!) {\n pagePathnamesById(ids: $ids) {\n id\n pathname\n }\n }\n`\n\nexport const TYPOGRAPHY_FRAGMENT = gql`\n fragment Typography on Typography {\n id\n name\n style {\n deviceId\n value {\n fontFamily\n fontSize {\n value\n unit\n }\n color {\n swatchId\n alpha\n }\n lineHeight\n letterSpacing\n fontWeight\n textAlign\n uppercase\n underline\n strikethrough\n italic\n }\n }\n }\n`\n\nexport const TYPOGRAPHIES_BY_ID = gql`\n query TypographiesById($ids: [ID!]!) {\n typographies(ids: $ids) {\n ...Typography\n }\n }\n\n ${TYPOGRAPHY_FRAGMENT}\n`\n\nexport const TABLE_BY_ID = gql`\n query TableById($id: ID!) {\n table(id: $id) {\n id\n name\n columns {\n id\n name\n ... on MultipleSelectTableColumn {\n options {\n id\n name\n }\n }\n ... on SingleSelectTableColumn {\n options {\n id\n name\n }\n }\n }\n }\n }\n`\n","export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value != null\n}\n","import {\n ApolloClient,\n DocumentNode,\n NormalizedCacheObject,\n OperationVariables,\n QueryHookOptions,\n QueryResult,\n TypedDocumentNode,\n useQuery as useApolloQuery,\n useMutation as useApolloMutation,\n DefaultContext,\n ApolloCache,\n MutationHookOptions,\n MutationTuple,\n InMemoryCache,\n TypePolicies,\n} from '@apollo/client'\nimport { getDataFromTree } from '@apollo/client/react/ssr'\nexport { gql } from '@apollo/client'\nimport { createContext, ReactNode, useContext } from 'react'\nimport uuid from 'uuid/v4'\n\nimport { DocumentReference, RuntimeProvider } from '../react'\nimport { createDocumentReference, Element } from '../state/react-page'\n\nconst typePolicies: TypePolicies = {\n Query: {\n fields: {\n swatches(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'Swatch', id }, true))\n )\n },\n file(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'File', id: args?.id }, true)\n },\n files(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'File', id }, true))\n )\n },\n typographies(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'Typography', id }, true))\n )\n },\n pagePathnamesById(existingData, { args, toReference }) {\n return (\n existingData ??\n args?.ids.map((id: string) => toReference({ __typename: 'PagePathnameSlice', id }, true))\n )\n },\n globalElement(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'GlobalElement', id: args?.id }, true)\n },\n table(existingData, { args, toReference }) {\n return existingData ?? toReference({ __typename: 'Table', id: args?.id }, true)\n },\n },\n },\n}\n\nconst PrefetchContext = createContext(false)\n\nexport function useIsPrefetching(): boolean {\n return useContext(PrefetchContext)\n}\n\ntype CreateApolloClientParams = {\n uri?: string\n cacheData?: NormalizedCacheObject\n}\n\nexport function createApolloClient({ uri, cacheData }: CreateApolloClientParams) {\n const cache = new InMemoryCache({ typePolicies })\n\n if (cacheData) cache.restore(cacheData)\n\n return new ApolloClient({ uri, cache })\n}\n\nexport type MakeswiftClientOptions = {\n uri?: string\n cacheData?: NormalizedCacheObject\n}\n\nexport class MakeswiftClient {\n apolloClient: ApolloClient<NormalizedCacheObject>\n\n constructor({ uri, cacheData }: MakeswiftClientOptions) {\n this.apolloClient = createApolloClient({ uri, cacheData })\n }\n\n async prefetch(element: Element): Promise<NormalizedCacheObject> {\n const id = uuid()\n\n await getDataFromTree(\n <PrefetchContext.Provider value={true}>\n <RuntimeProvider client={this} defaultRootElements={new Map([[id, element]])}>\n <DocumentReference documentReference={createDocumentReference(id)} />\n </RuntimeProvider>\n </PrefetchContext.Provider>,\n )\n\n return this.apolloClient.cache.extract()\n }\n}\n\nconst Context = createContext<MakeswiftClient | undefined>(undefined)\n\nexport function useQuery<TData = any, TVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: QueryHookOptions<TData, TVariables>,\n): QueryResult<TData, TVariables> {\n const client = useContext(Context)\n\n return useApolloQuery(query, { client: client?.apolloClient, ...options })\n}\n\nexport function useMutation<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n>(\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: MutationHookOptions<TData, TVariables, TContext>,\n): MutationTuple<TData, TVariables, TContext, TCache> {\n const client = useContext(Context)\n\n return useApolloMutation(mutation, { client: client?.apolloClient, ...options })\n}\n\ntype MakeswiftProviderProps = {\n client: MakeswiftClient\n children: ReactNode\n}\n\nexport function MakeswiftProvider({ client, children }: MakeswiftProviderProps) {\n return <Context.Provider value={client}>{children}</Context.Provider>\n}\n","import { useMemo } from 'react'\n\nimport { ColorValue as Color } from '../utils/types'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport { FILES_BY_ID, SWATCHES_BY_ID } from '../utils/queries'\nimport { isNonNullable } from '../utils/isNonNullable'\nimport { BackgroundsValue as ResponsiveBackgroundsValue } from '../../prop-controllers/descriptors'\nimport { useQuery } from '../../api/react'\n\ntype BackgroundColorData = Color\n\ntype BackgroundGradientStopData = {\n id: string\n location: number\n color: Color | null | undefined\n}\n\ntype BackgroundGradientData = {\n angle: number\n isRadial: boolean\n stops: Array<BackgroundGradientStopData>\n}\n\ntype BackgroundImageData = {\n publicUrl?: string\n dimensions: { width: number; height: number } | null\n position: {\n x: number\n y: number\n }\n size: 'cover' | 'contain' | 'auto'\n repeat: 'no-repeat' | 'repeat-x' | 'repeat-y' | 'repeat'\n opacity?: number\n parallax?: number\n}\n\ntype BackgroundVideoData = {\n url: string\n maskColor: Color | null | undefined\n aspectRatio: 'wide' | 'standard'\n opacity: number\n zoom: number\n parallax: number\n}\n\ntype BackgroundData =\n | { id: string; type: 'color'; payload: BackgroundColorData | null | undefined }\n | { id: string; type: 'image'; payload: BackgroundImageData | null | undefined }\n | { id: string; type: 'gradient'; payload: BackgroundGradientData | null | undefined }\n | { id: string; type: 'video'; payload: BackgroundVideoData | null | undefined }\n\ntype BackgroundsData = Array<BackgroundData>\n\nexport type BackgroundsPropControllerData = ResponsiveValue<BackgroundsData>\n\nexport function useBackgrounds(\n value: ResponsiveBackgroundsValue | null | undefined,\n): BackgroundsPropControllerData | null | undefined {\n const fileIds =\n value == null\n ? []\n : value\n .map(({ value: backgrounds }) =>\n backgrounds\n .map(background =>\n background.type === 'image' && background.payload != null\n ? background.payload.imageId\n : null,\n )\n .filter(isNonNullable)\n .reduce((a, b) => a.concat(b), [] as string[]),\n )\n .reduce((a, b) => a.concat(b), [])\n const swatchIds =\n value == null\n ? []\n : value\n .map(({ value: backgrounds }) =>\n backgrounds\n .map(background => {\n if (background.type === 'color' && background.payload != null) {\n return [background.payload.swatchId]\n }\n\n if (background.type === 'gradient' && background.payload != null) {\n return background.payload.stops\n .map(stop => stop.color && stop.color.swatchId)\n .filter(isNonNullable)\n }\n\n if (background.type === 'video' && background.payload != null) {\n return [background.payload.maskColor && background.payload.maskColor.swatchId]\n }\n\n return null\n })\n .filter(isNonNullable)\n .reduce((a, b) => a.concat(b), []),\n )\n .reduce((a, b) => a.concat(b), [])\n .filter(isNonNullable)\n const skip = value == null\n const filesResult = useQuery(FILES_BY_ID, {\n skip: skip || fileIds.length === 0,\n variables: { ids: fileIds },\n })\n const swatchesResult = useQuery(SWATCHES_BY_ID, {\n skip: skip || swatchIds.length === 0,\n variables: { ids: swatchIds },\n })\n\n return useMemo(() => {\n const { data: filesData = {} } = filesResult\n const { data: swatchesData = {} } = swatchesResult\n\n if (value == null || filesResult.error != null || swatchesResult.error != null) {\n return null\n }\n\n const { files = [] } = filesData\n const { swatches = [] } = swatchesData\n\n return value.map(({ value: backgrounds, ...restOfValue }) => ({\n ...restOfValue,\n value: backgrounds\n .map(bg => {\n if (bg.type === 'image' && bg.payload != null && bg.payload.imageId != null) {\n const { imageId, ...restOfPayload } = bg.payload\n const file = files.find((f: any) => f && f.id === imageId)\n\n return (\n file && {\n id: bg.id,\n type: 'image',\n payload: {\n ...restOfPayload,\n publicUrl: file.publicUrl,\n dimensions: file.dimensions,\n },\n }\n )\n }\n\n if (bg.type === 'color' && bg.payload != null) {\n const { swatchId, alpha } = bg.payload\n const swatch = swatches.find((s: any) => s && s.id === swatchId)\n\n return { id: bg.id, type: 'color', payload: { swatch, alpha } }\n }\n\n if (bg.type === 'gradient' && bg.payload != null && bg.payload.stops.length > 0) {\n return {\n id: bg.id,\n type: 'gradient',\n payload: {\n angle: bg.payload.angle,\n isRadial: bg.payload.isRadial,\n stops: bg.payload.stops.map(({ color, ...restOfStop }) => ({\n ...restOfStop,\n color: color && {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n },\n })),\n },\n }\n }\n\n if (bg.type === 'video' && bg.payload != null) {\n const { maskColor, ...restOfPayload } = bg.payload\n const swatch = maskColor && swatches.find((s: any) => s && s.id === maskColor.swatchId)\n\n return {\n id: bg.id,\n type: 'video',\n payload: {\n ...restOfPayload,\n maskColor: swatch && maskColor && { swatch, alpha: maskColor.alpha },\n },\n }\n }\n\n return null\n })\n .filter(Boolean),\n }))\n }, [filesResult, swatchesResult, value])\n}\n","import { BorderStyleProperty } from 'csstype'\n\nimport { isNonNullable } from '../utils/isNonNullable'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport type { ColorValue as Color } from '../utils/types'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport { BorderValue as ResponsiveBorderValue } from '../../prop-controllers/descriptors'\nimport { useQuery } from '../../api/react'\n\nfunction mapSideColor(swatches: any, { color, ...restOfSide }: any) {\n return {\n ...restOfSide,\n color: color && {\n alpha: color.alpha,\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n },\n }\n}\n\nexport type BorderSide = {\n width: number | null | undefined\n style: BorderStyleProperty\n color: Color | null | undefined\n}\n\ntype BorderData = {\n borderTop: BorderSide | null | undefined\n borderRight: BorderSide | null | undefined\n borderBottom: BorderSide | null | undefined\n borderLeft: BorderSide | null | undefined\n}\n\nexport type BorderPropControllerData = ResponsiveValue<BorderData>\n\nexport function useBorder(\n value: ResponsiveBorderValue | null | undefined,\n): BorderPropControllerData | null | undefined {\n const swatchIds =\n value == null\n ? []\n : [\n ...Array.from(\n new Set(\n value\n .map(({ value: { borderTop, borderLeft, borderBottom, borderRight } }) => [\n borderTop && borderTop.color && borderTop.color.swatchId,\n borderBottom && borderBottom.color && borderBottom.color.swatchId,\n borderLeft && borderLeft.color && borderLeft.color.swatchId,\n borderRight && borderRight.color && borderRight.color.swatchId,\n ])\n .reduce((a, b) => a.concat(b))\n .filter(isNonNullable),\n ),\n ),\n ]\n const skip = value == null || swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (value == null || error != null) return null\n\n const { swatches = [] } = data\n\n return value.map(({ value: { borderTop, borderBottom, borderLeft, borderRight }, ...rest }) => ({\n ...rest,\n value: {\n borderTop: borderTop && mapSideColor(swatches, borderTop),\n borderBottom: borderBottom && mapSideColor(swatches, borderBottom),\n borderLeft: borderLeft && mapSideColor(swatches, borderLeft),\n borderRight: borderRight && mapSideColor(swatches, borderRight),\n },\n }))\n}\n","import { isNonNullable } from '../utils/isNonNullable'\nimport type { ColorValue as Color } from '../utils/types'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport type { ResponsiveValue } from '../../prop-controllers'\nimport type { ShadowsValue as ResponsiveShadowsValue } from '../../prop-controllers/descriptors'\nimport { useQuery } from '../../api/react'\n\ntype ShadowData = {\n id: string\n payload: {\n inset: boolean\n offsetX: number\n offsetY: number\n blurRadius: number\n spreadRadius: number\n color: Color | null | undefined\n }\n}\n\nconst ShadowDefaultValue = {\n inset: false,\n offsetX: 0,\n offsetY: 2,\n blurRadius: 4,\n spreadRadius: 0,\n color: null,\n} as const\n\nexport type BoxShadowData = Array<ShadowData>\n\nexport type BoxShadowPropControllerData = ResponsiveValue<BoxShadowData>\n\nexport function useBoxShadow(\n value: ResponsiveShadowsValue | null | undefined,\n): BoxShadowPropControllerData | null | undefined {\n const swatchIds =\n value == null\n ? []\n : [\n ...Array.from(\n new Set(\n value\n .map(({ value: shadows }) =>\n shadows.map(({ payload: { color } }) => color && color.swatchId),\n )\n .reduce((a, b) => a.concat(b), [])\n .filter(isNonNullable),\n ),\n ),\n ]\n\n const skip = value == null || swatchIds.length === 0\n const { error, data = {} } = useQuery(SWATCHES_BY_ID, { skip, variables: { ids: swatchIds } })\n\n if (value == null || error != null) return null\n\n const { swatches = [] } = data\n\n return value.map(({ value: shadows, ...restOfValue }) => ({\n ...restOfValue,\n value: shadows.map(\n ({\n payload: { color, inset, offsetX, offsetY, blurRadius, spreadRadius },\n ...restOfShadow\n }) => ({\n ...restOfShadow,\n payload: {\n color:\n color != null\n ? {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n }\n : null,\n inset: inset ?? ShadowDefaultValue.inset,\n offsetX: offsetX ?? ShadowDefaultValue.offsetX,\n offsetY: offsetY ?? ShadowDefaultValue.offsetY,\n blurRadius: blurRadius ?? ShadowDefaultValue.blurRadius,\n spreadRadius: spreadRadius ?? ShadowDefaultValue.spreadRadius,\n },\n }),\n ),\n }))\n}\n","import type { ResponsiveValue } from '../../prop-controllers'\nimport { SWATCHES_BY_ID } from '../utils/queries'\nimport { isNonNullable } from '../utils/isNonNullable'\nimport type { ColorValue as Color } from '../utils/types'\nimport { useQuery } from '../../api/react'\n\nexport function 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 { useQuery } from '../../api/react'\nimport { TABLE_BY_ID } from '../utils/queries'\n\nexport type SingleLineTextTableColumn = {\n id: string\n name: string\n __typename: 'SingleLineTextTableColumn'\n}\n\nexport type LongTextTableColumn = {\n id: string\n name: string\n __typename: 'LongTextTableColumn'\n}\n\nexport type CheckboxTableColumn = {\n id: string\n name: string\n __typename: 'CheckboxTableColumn'\n}\n\nexport type MultipleSelectTableColumnOption = {\n id: string\n name: string\n}\n\nexport type MultipleSelectTableColumn = {\n id: string\n name: string\n options: Array<MultipleSelectTableColumnOption>\n __typename: 'MultipleSelectTableColumn'\n}\n\nexport type SingleSelectTableColumnOption = {\n id: string\n name: string\n}\n\nexport type SingleSelectTableColumn = {\n id: string\n name: string\n options: Array<SingleSelectTableColumnOption>\n __typename: 'SingleSelectTableColumn'\n}\n\nexport type PhoneNumberTableColumn = {\n id: string\n name: string\n __typename: 'PhoneNumberTableColumn'\n}\n\nexport type EmailTableColumn = {\n id: string\n name: string\n __typename: 'EmailTableColumn'\n}\n\nexport type URLTableColumn = {\n id: string\n name: string\n __typename: 'URLTableColumn'\n}\n\nexport type NumberTableColumn = {\n id: string\n name: string\n __typename: 'NumberTableColumn'\n}\n\nexport type TableColumn =\n | SingleLineTextTableColumn\n | LongTextTableColumn\n | CheckboxTableColumn\n | MultipleSelectTableColumn\n | SingleSelectTableColumn\n | PhoneNumberTableColumn\n | EmailTableColumn\n | URLTableColumn\n | NumberTableColumn\n\ntype Table = {\n id: string\n name: string\n columns: Array<TableColumn>\n}\n\nexport function useTable(tableId: string | null | undefined) {\n return useQuery<{ table: Table | null }>(TABLE_BY_ID, {\n skip: tableId == null,\n variables: { id: tableId },\n })\n}\n","import {\n TargetAndTransition,\n Transition,\n useAnimation,\n useReducedMotion,\n Variants,\n MotionProps,\n} from 'framer-motion'\nimport { TransitionMap } from 'framer-motion/types/types'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport { ResponsiveValue } from '../../../prop-controllers'\nimport { useMediaQuery } from '../../hooks'\nimport { Element } from '../../../state/react-page'\n\nexport type BoxAnimateIn =\n | 'none'\n | 'fadeIn'\n | 'fadeUp'\n | 'fadeDown'\n | 'fadeLeft'\n | 'fadeRight'\n | 'blurIn'\n | 'scaleUp'\n | 'scaleDown'\n\nconst defaultExitedProps = {\n opacity: 0,\n x: 0,\n y: 0,\n scale: 1,\n}\n\ntype BoxAnimationVariants = {\n entered: TargetAndTransition\n exited: TargetAndTransition\n}\n\nexport const boxAnimations: {\n [key in BoxAnimateIn]: {\n transition: TransitionMap\n } & BoxAnimationVariants\n} = {\n none: {\n entered: {\n opacity: 1,\n },\n exited: {\n ...defaultExitedProps,\n opacity: 1,\n },\n transition: {},\n },\n fadeIn: {\n exited: defaultExitedProps,\n entered: {\n opacity: 1,\n },\n transition: {},\n },\n fadeLeft: {\n exited: {\n ...defaultExitedProps,\n x: 60,\n },\n entered: {\n opacity: 1,\n x: 0,\n },\n transition: {\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeRight: {\n exited: {\n ...defaultExitedProps,\n x: -60,\n },\n entered: {\n opacity: 1,\n x: 0,\n },\n transition: {\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeUp: {\n exited: {\n ...defaultExitedProps,\n y: 80,\n },\n entered: {\n opacity: 1,\n y: 0,\n },\n transition: {\n y: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeDown: {\n exited: {\n ...defaultExitedProps,\n y: -80,\n },\n entered: {\n opacity: 1,\n y: 0,\n },\n transition: {\n y: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n blurIn: {\n exited: {\n ...defaultExitedProps,\n filter: 'blur(20px)',\n },\n entered: {\n opacity: 1,\n filter: 'blur(0px)',\n },\n transition: {},\n },\n scaleDown: {\n exited: {\n ...defaultExitedProps,\n scale: 1.2,\n },\n entered: {\n opacity: 1,\n scale: 1,\n },\n transition: {\n scale: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n scaleUp: {\n exited: {\n ...defaultExitedProps,\n scale: 0.75,\n },\n entered: {\n opacity: 1,\n scale: 1,\n },\n transition: {\n scale: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n}\n\nconst mergeCustomTransitionWithDefault = (\n transitions: TransitionMap,\n props: Transition,\n): TransitionMap | Transition =>\n transitions\n ? Object.keys(transitions).reduce(\n (a, c) => ({\n ...a,\n [c]: {\n ...transitions[c as string],\n ...props,\n },\n }),\n props,\n )\n : props\n\nexport type BoxAnimationType = {\n containerAnimationProps: {\n transition: Transition\n variants: Variants\n }\n parentAnimationProps: {\n transition: Transition\n }\n childAnimationProps: {\n transition: Transition\n variants: Variants\n }\n}\n\nconst useElementOnScreen = (element: HTMLElement | null, options: IntersectionObserverInit) => {\n const [isVisible, setIsVisible] = useState(false)\n\n useEffect(() => {\n const observer = new IntersectionObserver(intersectionCallback, options)\n\n if (element) observer.observe(element)\n\n return () => {\n if (element) observer.unobserve(element)\n }\n\n function intersectionCallback([entry]: IntersectionObserverEntry[]) {\n if (entry?.isIntersecting) {\n setIsVisible(true)\n }\n }\n }, [element, options])\n\n return isVisible\n}\n\nexport const DEFAULT_BOX_ANIMATE_TYPE = 'none'\nexport const DEFAULT_BOX_ANIMATE_DELAY = 0.0\nexport const DEFAULT_BOX_ANIMATE_DURATION = 0.75\nexport const DEFAULT_ITEM_ANIMATE_TYPE = 'none'\nexport const DEFAULT_ITEM_ANIMATE_DELAY = 0.0\nexport const DEFAULT_ITEM_ANIMATE_DURATION = 0.75\nexport const DEFAULT_ITEM_STAGGER_DURATION = 0.0\n\ntype UseBoxAnimationsPayload = {\n initial?: { container: MotionProps['initial']; parent: MotionProps['initial'] }\n animate?: { container: MotionProps['animate']; parent: MotionProps['animate'] }\n variants?: { container: MotionProps['variants']; child: MotionProps['variants'] }\n transition?: {\n container: MotionProps['transition']\n parent: MotionProps['transition']\n child: MotionProps['transition']\n }\n key?: { container: string }\n}\n\nexport const useBoxAnimations = ({\n boxElement,\n elements,\n ...props\n}: {\n boxAnimateType: ResponsiveValue<BoxAnimateIn> | undefined\n boxAnimateDuration: ResponsiveValue<number> | undefined\n boxAnimateDelay: ResponsiveValue<number> | undefined\n itemAnimateType: ResponsiveValue<BoxAnimateIn> | undefined\n itemAnimateDuration: ResponsiveValue<number> | undefined\n itemAnimateDelay: ResponsiveValue<number> | undefined\n itemStaggerDuration: ResponsiveValue<number> | undefined\n boxElement: HTMLElement | null\n elements: Element[] | undefined\n}): UseBoxAnimationsPayload => {\n const reducedMotion = useReducedMotion()\n const boxAnimateType = useMediaQuery(props.boxAnimateType) || DEFAULT_BOX_ANIMATE_TYPE\n const boxAnimateDuration = useMediaQuery(props.boxAnimateDuration) || DEFAULT_BOX_ANIMATE_DURATION\n const boxAnimateDelay = useMediaQuery(props.boxAnimateDelay) || DEFAULT_BOX_ANIMATE_DELAY\n const itemAnimateType = useMediaQuery(props.itemAnimateType) || DEFAULT_ITEM_ANIMATE_TYPE\n const itemAnimateDuration =\n useMediaQuery(props.itemAnimateDuration) || DEFAULT_ITEM_ANIMATE_DURATION\n const itemAnimateDelay = useMediaQuery(props.itemAnimateDelay) || DEFAULT_ITEM_ANIMATE_DELAY\n const itemStaggerDuration =\n useMediaQuery(props.itemStaggerDuration) || DEFAULT_ITEM_STAGGER_DURATION\n\n const isBoxVisible = useElementOnScreen(boxElement, {\n root: null,\n rootMargin: `0px 0px -10% 0px`,\n threshold: 0.2,\n })\n\n const itemControls = useAnimation()\n const boxControls = useAnimation()\n\n const setSequence = useCallback(\n (variant: keyof BoxAnimationVariants) => {\n boxControls.stop()\n itemControls.stop()\n boxControls.set(variant)\n itemControls.set(variant)\n },\n [boxControls, itemControls],\n )\n\n const playSequence = useCallback(() => {\n boxControls.stop()\n itemControls.stop()\n boxControls.set('exited')\n itemControls.set('exited')\n boxControls.start('entered')\n itemControls.start('entered')\n }, [boxControls, itemControls])\n\n useEffect(() => {\n if (isBoxVisible) {\n setSequence('entered')\n }\n }, [\n elements\n ?.map(e => e.key)\n .sort()\n .join(),\n setSequence,\n ])\n\n useEffect(() => {\n if (isBoxVisible) {\n playSequence()\n }\n }, [\n isBoxVisible,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemAnimateDelay,\n itemStaggerDuration,\n reducedMotion,\n playSequence,\n ])\n\n const boxVariant = boxAnimations[boxAnimateType]\n const itemVariant = boxAnimations[itemAnimateType]\n\n return {\n initial: {\n container: reducedMotion ? 'entered' : 'exited',\n parent: reducedMotion ? 'entered' : 'exited',\n },\n animate: {\n container: reducedMotion ? undefined : boxControls,\n parent: reducedMotion ? undefined : itemControls,\n },\n variants: {\n container: {\n exited: boxVariant.exited,\n entered: boxVariant.entered,\n },\n child: {\n exited: itemVariant.exited,\n entered: itemVariant.entered,\n },\n },\n transition: {\n container: mergeCustomTransitionWithDefault(boxVariant.transition, {\n delay: boxAnimateDelay,\n duration: boxAnimateDuration,\n }),\n parent: {\n delayChildren: itemAnimateDelay,\n staggerChildren: itemStaggerDuration,\n duration: itemAnimateDuration,\n },\n child: mergeCustomTransitionWithDefault(itemVariant.transition, {\n duration: itemAnimateDuration,\n }),\n },\n key: {\n container:\n boxAnimateType +\n boxAnimateDuration +\n boxAnimateDelay +\n itemAnimateType +\n itemAnimateDuration +\n itemAnimateDelay +\n itemStaggerDuration +\n reducedMotion,\n },\n }\n}\n","export const getIndexes = (spans: Array<Array<number>>, index: number): [number, number] => {\n const flattened = spans.reduce((a, s) => a.concat(s), [])\n\n if (index < 0 || index > flattened.length) throw new RangeError()\n\n let remainder = index\n let rowIndex = 0\n\n while (rowIndex < spans.length - 1 && remainder >= spans[rowIndex].length) {\n remainder -= spans[rowIndex].length\n rowIndex += 1\n }\n\n return [rowIndex, remainder]\n}\n","import type { ColorValue as Color } from './types'\n\nexport function colorToString(color?: Color): string {\n return color && color.swatch\n ? `hsla(${color.swatch.hue},${color.swatch.saturation}%,${color.swatch.lightness}%,${color.alpha})`\n : ''\n}\n","import { css, CSSObject } from 'styled-components'\nimport {\n WidthProperty,\n MarginProperty,\n MarginTopProperty,\n MarginRightProperty,\n MarginBottomProperty,\n MarginLeftProperty,\n PaddingProperty,\n PaddingTopProperty,\n PaddingRightProperty,\n PaddingBottomProperty,\n PaddingLeftProperty,\n BorderRadiusProperty,\n BorderTopLeftRadiusProperty,\n BorderTopRightRadiusProperty,\n BorderBottomLeftRadiusProperty,\n BorderBottomRightRadiusProperty,\n} from 'csstype'\n\nimport {\n ResponsiveValue,\n ResponsiveValueType as ExtractResponsiveValue,\n Length as LengthValue,\n} from '../../prop-controllers'\nimport {\n FallbackStrategy,\n getDevice,\n getDeviceMediaQuery,\n join as joinResponsiveValues,\n} from './devices'\nimport { getIndexes } from './columns'\nimport {\n BorderRadiusValue,\n MarginValue,\n PaddingValue,\n TextStyleValue,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport { colorToString } from './colorToString'\nimport {\n BorderSide,\n BorderPropControllerData,\n BoxShadowData,\n BoxShadowPropControllerData,\n} from '../hooks'\n\ntype CSSRules = ReturnType<typeof css>\n\nexport function cssMediaRules<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, P>(\n responsiveValues: A | ((props: P) => A),\n join: (values: { [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined }) =>\n | CSSRules\n | CSSObject,\n strategy?: FallbackStrategy<V>,\n): (props: P) => CSSRules {\n return props =>\n joinResponsiveValues(\n typeof responsiveValues === 'function' ? responsiveValues(props) : responsiveValues,\n join,\n strategy,\n ).reduce((acc, { deviceId, value }) => {\n const device = getDevice(deviceId)\n const mediaQuery = getDeviceMediaQuery(device)\n\n return css`\n ${acc}${mediaQuery} {\n ${value}\n }\n `\n }, css`` as CSSRules)\n}\n\nexport function cssWidth(\n defaultValue: LengthValue | WidthProperty<string | number> = '100%',\n): (props: { width?: WidthValue }) => CSSRules {\n return props => css`\n max-width: 100%;\n ${cssMediaRules(\n [props.width] as const,\n ([width = defaultValue]) => css`\n width: ${typeof width === 'object' ? `${width.value}${width.unit}` : width};\n `,\n )}\n `\n}\n\nfunction getMarginSide(marginSide: LengthValue | MarginProperty<string | number>) {\n return typeof marginSide === 'object' ? `${marginSide.value}${marginSide.unit}` : marginSide\n}\n\nexport function cssMargin(\n defaultValue: {\n marginTop?: LengthValue | MarginTopProperty<string | number>\n marginRight?: LengthValue | MarginRightProperty<string | number>\n marginBottom?: LengthValue | MarginBottomProperty<string | number>\n marginLeft?: LengthValue | MarginLeftProperty<string | number>\n } = {},\n): (props: { margin?: MarginValue }) => CSSRules {\n const defaultMarginTop = defaultValue.marginTop === undefined ? 0 : defaultValue.marginTop\n const defaultMarginRight =\n defaultValue.marginRight === undefined ? 'auto' : defaultValue.marginRight\n const defaultMarginBottom =\n defaultValue.marginBottom === undefined ? 0 : defaultValue.marginBottom\n const defaultMarginLeft = defaultValue.marginLeft === undefined ? 'auto' : defaultValue.marginLeft\n\n return props => css`\n ${cssMediaRules(\n [props.margin] as const,\n ([\n {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = {} as ExtractResponsiveValue<MarginValue>,\n ]) => css`\n margin-top: ${getMarginSide(marginTop || defaultMarginTop)};\n margin-right: ${getMarginSide(marginRight || defaultMarginRight)};\n margin-bottom: ${getMarginSide(marginBottom || defaultMarginBottom)};\n margin-left: ${getMarginSide(marginLeft || defaultMarginLeft)};\n `,\n )}\n `\n}\n\nfunction getPaddingSide(paddingSide: LengthValue | PaddingProperty<string | number>) {\n return typeof paddingSide === 'object' ? `${paddingSide.value}${paddingSide.unit}` : paddingSide\n}\n\nexport function cssPadding(\n defaultValue: {\n paddingTop?: LengthValue | PaddingTopProperty<string | number>\n paddingRight?: LengthValue | PaddingRightProperty<string | number>\n paddingBottom?: LengthValue | PaddingBottomProperty<string | number>\n paddingLeft?: LengthValue | PaddingLeftProperty<string | number>\n } = {},\n): (props: { padding?: PaddingValue }) => CSSRules {\n const defaultPaddingTop = defaultValue.paddingTop === undefined ? 0 : defaultValue.paddingTop\n const defaultPaddingRight =\n defaultValue.paddingRight === undefined ? 0 : defaultValue.paddingRight\n const defaultPaddingBottom =\n defaultValue.paddingBottom === undefined ? 0 : defaultValue.paddingBottom\n const defaultPaddingLeft = defaultValue.paddingLeft === undefined ? 0 : defaultValue.paddingLeft\n\n return props => css`\n ${cssMediaRules(\n [props.padding] as const,\n ([\n {\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n } = {} as ExtractResponsiveValue<PaddingValue>,\n ]) => css`\n padding-top: ${getPaddingSide(paddingTop || defaultPaddingTop)};\n padding-right: ${getPaddingSide(paddingRight || defaultPaddingRight)};\n padding-bottom: ${getPaddingSide(paddingBottom || defaultPaddingBottom)};\n padding-left: ${getPaddingSide(paddingLeft || defaultPaddingLeft)};\n `,\n )}\n `\n}\n\nconst defaultBorderSide = { width: 0, style: 'solid', color: null }\n\nconst getBorderSide = ({ width, style, color }: BorderSide) =>\n `${width != null ? width : 0}px ${style} ${color != null ? colorToString(color) : 'black'}`\n\nexport function cssBorder(\n defaultValue: {\n borderTop?: BorderSide\n borderRight?: BorderSide\n borderBottom?: BorderSide\n borderLeft?: BorderSide\n } = {},\n): (props: { border?: BorderPropControllerData | null | undefined }) => CSSRules {\n const defaultBorderTop =\n defaultValue.borderTop === undefined ? defaultBorderSide : defaultValue.borderTop\n const defaultBorderRight =\n defaultValue.borderRight === undefined ? defaultBorderSide : defaultValue.borderRight\n const defaultBorderBottom =\n defaultValue.borderBottom === undefined ? defaultBorderSide : defaultValue.borderBottom\n const defaultBorderLeft =\n defaultValue.borderLeft === undefined ? defaultBorderSide : defaultValue.borderLeft\n\n return props => css`\n ${cssMediaRules(\n [props.border] as const,\n ([\n {\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n } = {} as ExtractResponsiveValue<BorderPropControllerData>,\n ]) => css`\n border-top: ${getBorderSide(borderTop || defaultBorderTop)};\n border-right: ${getBorderSide(borderRight || defaultBorderRight)};\n border-bottom: ${getBorderSide(borderBottom || defaultBorderBottom)};\n border-left: ${getBorderSide(borderLeft || defaultBorderLeft)};\n `,\n )}\n `\n}\n\nfunction getBorderRadiusCorner(\n borderRadiusCorner: LengthValue | BorderRadiusProperty<string | number>,\n) {\n return typeof borderRadiusCorner === 'object'\n ? `${borderRadiusCorner.value}${borderRadiusCorner.unit}`\n : borderRadiusCorner\n}\n\nexport function cssBorderRadius(\n defaultValue: {\n borderTopLeftRadius?: LengthValue | BorderTopLeftRadiusProperty<string | number>\n borderTopRightRadius?: LengthValue | BorderTopRightRadiusProperty<string | number>\n borderBottomLeftRadius?: LengthValue | BorderBottomLeftRadiusProperty<string | number>\n borderBottomRightRadius?: LengthValue | BorderBottomRightRadiusProperty<string | number>\n } = {},\n): (props: { borderRadius?: BorderRadiusValue }) => CSSRules {\n const defaultBorderTopLeftRadius =\n defaultValue.borderTopLeftRadius === undefined ? 0 : defaultValue.borderTopLeftRadius\n const defaultBorderTopRightRadius =\n defaultValue.borderTopRightRadius === undefined ? 0 : defaultValue.borderTopRightRadius\n const defaultPaddingBottom =\n defaultValue.borderBottomLeftRadius === undefined ? 0 : defaultValue.borderBottomLeftRadius\n const defaultPaddingLeft =\n defaultValue.borderBottomRightRadius === undefined ? 0 : defaultValue.borderBottomRightRadius\n\n return props => css`\n ${cssMediaRules(\n [props.borderRadius] as const,\n ([\n {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n } = {} as ExtractResponsiveValue<BorderRadiusValue>,\n ]) => css`\n border-top-left-radius: ${getBorderRadiusCorner(\n borderTopLeftRadius || defaultBorderTopLeftRadius,\n )};\n border-top-right-radius: ${getBorderRadiusCorner(\n borderTopRightRadius || defaultBorderTopRightRadius,\n )};\n border-bottom-left-radius: ${getBorderRadiusCorner(\n borderBottomLeftRadius || defaultPaddingBottom,\n )};\n border-bottom-right-radius: ${getBorderRadiusCorner(\n borderBottomRightRadius || defaultPaddingLeft,\n )};\n `,\n )}\n `\n}\n\nconst getBoxShadow = (shadows: BoxShadowData) =>\n shadows\n .map(\n ({ payload: { inset, offsetX, offsetY, blurRadius, spreadRadius, color } }) =>\n `${inset ? 'inset ' : ''}${offsetX.toFixed(1)}px ${offsetY.toFixed(\n 1,\n )}px ${blurRadius}px ${spreadRadius}px ${\n color != null ? colorToString(color) : 'rgba(0,0,0,0.2)'\n }`,\n )\n .filter(Boolean)\n .join()\n\nexport function cssBoxShadow(\n defaultValue: BoxShadowData = [],\n): (props: { boxShadow?: BoxShadowPropControllerData | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules(\n [props.boxShadow] as const,\n ([boxShadow = defaultValue]) => css`\n box-shadow: ${getBoxShadow(boxShadow)};\n `,\n )}\n `\n}\n\nconst floor =\n (d: number) =>\n (v: number): number =>\n Math.floor(10 ** d * v) / 10 ** d\n\nexport function cssGridItem(): (props: {\n grid: ResponsiveValue<{ spans: Array<Array<number>>; count: number }>\n index: number\n columnGap?: ResponsiveValue<LengthValue>\n rowGap?: ResponsiveValue<LengthValue>\n}) => CSSRules {\n return props => css`\n display: flex;\n\n /* TODO: A default span of 12 won't work once the column count is modifiable. */\n ${cssMediaRules(\n [props.grid, props.columnGap, props.rowGap] as const,\n ([\n { spans, count } = { spans: [[12]], count: 12 },\n columnGap = { value: 0, unit: 'px' },\n rowGap = { value: 0, unit: 'px' },\n ]) => {\n const [rowIndex, columnIndex] = getIndexes(spans, props.index)\n const firstCol = columnIndex === 0\n const lastCol = columnIndex === spans[rowIndex].length - 1\n const span = spans[rowIndex][columnIndex]\n const fraction = floor(5)(span / count)\n const width = `${fraction} * (100% + ${columnGap.value}${columnGap.unit})`\n const excessWidth = `${Number(firstCol) + Number(lastCol)} * ${columnGap.value}${\n columnGap.unit\n } / 2`\n const iePrecisionError = '0.01px'\n const flexBasis = `calc(${width} - ${excessWidth} - ${iePrecisionError})`\n const firstRow = rowIndex === 0\n const lastRow = rowIndex === spans.length - 1\n\n return span === 0\n ? { display: 'none' }\n : {\n flexBasis,\n minWidth: flexBasis,\n // NOTE: IE11 width breaks without max width\n // https://github.com/philipwalton/flexbugs/issues/3\n maxWidth: flexBasis,\n paddingLeft: firstCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingRight: lastCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingTop: firstRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n paddingBottom: lastRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n }\n },\n )}\n `\n}\n\nexport function cssTextStyle(\n defaultValue: {\n fontFamily?: string | null | undefined\n letterSpacing: number | null | undefined\n fontSize: LengthValue | null | undefined\n fontWeight: number | null | undefined\n textTransform: Array<'uppercase'>\n fontStyle: Array<'italic'>\n } = {\n fontFamily: null,\n letterSpacing: null,\n fontSize: null,\n fontWeight: null,\n textTransform: [],\n fontStyle: [],\n },\n): (arg0: { textStyle?: TextStyleValue | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules([props.textStyle], ([textStyle = defaultValue]) => {\n const {\n fontSize,\n fontWeight,\n fontStyle = [],\n textTransform = [],\n letterSpacing,\n fontFamily,\n } = textStyle\n\n return css`\n ${fontFamily != null\n ? css`\n font-family: '${fontFamily}';\n `\n : ''};\n ${fontWeight != null\n ? css`\n font-weight: ${fontWeight};\n `\n : ''};\n ${letterSpacing != null\n ? css`\n letter-spacing: ${letterSpacing}px;\n `\n : ''};\n ${fontSize != null\n ? css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `\n : ''};\n ${textTransform.includes('uppercase')\n ? css`\n text-transform: uppercase;\n `\n : ''};\n ${fontStyle.includes('italic')\n ? css`\n font-style: italic;\n `\n : ''};\n `\n })}\n `\n}\n","const clamp = (min: number, val: number, max: number): number => Math.min(Math.max(min, val), max)\n\nexport default clamp\n","import { useState, useRef, useLayoutEffect, useCallback, ReactNode, CSSProperties } from 'react'\nimport clamp from '../../../../../utils/clamp'\n\nfunction isScrollable(element: HTMLElement) {\n const { overflow, overflowY, overflowX } =\n element.ownerDocument.defaultView!.getComputedStyle(element)\n\n return /(auto|scroll)/.test(overflow + overflowX + overflowY)\n}\n\nfunction getScrollParent(element: HTMLElement): HTMLElement {\n const { parentElement } = element\n\n if (!element || !parentElement) return element\n\n if (isScrollable(element)) return element\n\n return getScrollParent(parentElement)\n}\n\ntype Props = {\n strength: number | null | undefined\n children: (\n getParallaxProps: <P extends { style?: CSSProperties; [key: string]: unknown }>(props: P) => P,\n ) => ReactNode\n}\n\nexport default function Parallax({ strength, children, ...rest }: Props): JSX.Element {\n const container = useRef<HTMLDivElement>(null)\n const [containerScrollTop, setContainerScrollTop] = useState(strength == null ? 0 : strength)\n const lastScrollParentScrollTop = useRef(0)\n\n useLayoutEffect(() => {\n if (!container.current || strength == null || strength === 0) return undefined\n\n const containerDocument = container.current.ownerDocument\n const scrollParent = getScrollParent(container.current)\n const eventTarget =\n containerDocument.documentElement === scrollParent\n ? containerDocument.defaultView!\n : scrollParent\n\n lastScrollParentScrollTop.current = scrollParent.scrollTop\n setContainerScrollTop(strength)\n\n function handleScroll() {\n containerDocument.defaultView!.requestAnimationFrame(() => {\n if (!container.current) return\n\n const { top: containerTop, bottom: containerBottom } =\n container.current.getBoundingClientRect()\n const { top: scrollParentTop, bottom: scrollParentBottom } =\n scrollParent === containerDocument.documentElement\n ? { top: 0, bottom: containerDocument.defaultView!.innerHeight }\n : scrollParent.getBoundingClientRect()\n const { scrollTop: scrollParentScrollTop } =\n scrollParent === containerDocument.documentElement\n ? { scrollTop: containerDocument.defaultView!.pageYOffset }\n : scrollParent\n const scrollParentHeight = scrollParentBottom - scrollParentTop\n const scrollParentScrollDelta = scrollParentScrollTop - lastScrollParentScrollTop.current\n\n lastScrollParentScrollTop.current = scrollParentScrollTop\n\n setContainerScrollTop(scrollTop => {\n const isContainerVisible =\n containerTop < scrollParentTop + scrollParentHeight && containerBottom > scrollParentTop\n const containerScrollRemaining =\n scrollParentScrollDelta > 0 ? 2 * strength! - scrollTop : scrollTop\n const scrollParentScrollRemaining =\n scrollParentScrollDelta > 0\n ? scrollParentTop + containerBottom\n : scrollParentHeight - containerTop\n const parallaxRatio = containerScrollRemaining / scrollParentScrollRemaining\n const containerScrollDelta = isContainerVisible\n ? parallaxRatio * scrollParentScrollDelta\n : 0\n\n return clamp(0, scrollTop + containerScrollDelta, strength! * 2)\n })\n })\n }\n\n eventTarget.addEventListener('scroll', handleScroll)\n\n return () => eventTarget.removeEventListener('scroll', handleScroll)\n }, [strength])\n\n const getProps = useCallback(\n ({ style, ...restOfChildrenProps }) => ({\n ...restOfChildrenProps,\n style: {\n ...style,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n ...(strength == null || strength === 0\n ? {}\n : {\n top: -strength,\n bottom: -strength,\n transform: `translate3d(0, ${containerScrollTop - strength}px, 0)`,\n }),\n },\n }),\n [strength, containerScrollTop],\n )\n\n return (\n <div\n {...rest}\n ref={container}\n style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}\n >\n {children(getProps)}\n </div>\n )\n}\n","import { useState, useLayoutEffect, useRef } from 'react'\nimport ReactPlayer from 'react-player'\nimport styled from 'styled-components'\n\nconst Container = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n overflow: hidden;\n`\n\nconst Mask = styled.div<{ backgroundColor: string | undefined; visible: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${props => props.backgroundColor};\n opacity: ${props => (props.visible ? 1 : 0)};\n transition: opacity 1s;\n`\n\nconst getScale = (element: HTMLElement, aspectRatio: number, zoom: number) => {\n const { offsetWidth: width, offsetHeight: height } = element\n const computedAspectRatio = width / height\n\n return Math.max(aspectRatio / computedAspectRatio, computedAspectRatio / aspectRatio) * zoom\n}\n\ntype Props = {\n url?: string\n aspectRatio?: number\n zoom?: number\n opacity?: number\n maskColor?: string\n}\n\nexport default function BackgroundVideo({\n url = '',\n aspectRatio = 16 / 9,\n zoom = 1,\n maskColor,\n opacity,\n}: Props): JSX.Element {\n const [ready, setReady] = useState(false)\n const [scale, setScale] = useState(1)\n const container = useRef<HTMLDivElement>(null)\n\n useLayoutEffect(() => {\n const { current: containerEl } = container\n\n if (!containerEl) return undefined\n\n const { defaultView } = containerEl.ownerDocument\n const handleResize = () => setScale(getScale(containerEl, aspectRatio, zoom))\n\n handleResize()\n\n defaultView!.addEventListener('resize', handleResize)\n\n return () => defaultView!.removeEventListener('resize', handleResize)\n }, [aspectRatio, zoom])\n\n if (!ReactPlayer.canPlay(url)) return <></>\n\n return (\n <Container ref={container}>\n {container.current && (\n <ReactPlayer\n url={url}\n config={{\n vimeo: { playerOptions: { background: true } },\n youtube: {\n playerVars: {\n origin: container.current.ownerDocument.defaultView?.location.origin,\n },\n },\n wistia: {\n options: {\n endVideoBehavior: 'loop',\n playbackRateControl: false,\n playbar: false,\n playButton: false,\n volumeControl: false,\n fullscreenButton: false,\n muted: true,\n },\n },\n }}\n playing\n loop\n muted\n controls={false}\n onReady={() => setReady(true)}\n style={{\n transform: `scale3d(${scale}, ${scale}, 1)`,\n opacity,\n }}\n width=\"100%\"\n height=\"100%\"\n />\n )}\n <Mask backgroundColor={maskColor} visible={!ready} />\n </Container>\n )\n}\n","import styled, { css } from 'styled-components'\nimport NextImage from 'next/image'\n\nimport { cssMediaRules } from '../../../../utils/cssMediaRules'\nimport { BackgroundsPropControllerData } from '../../../../hooks'\nimport { ResponsiveValue } from '../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport Parallax from '../Parallax'\nimport BackgroundVideo from '../BackgroundVideo'\nimport { useIsPrefetching } from '../../../../../api/react'\n\nfunction getColor(color: Color | null | undefined) {\n if (color == null) return 'black'\n\n if (color.swatch == null) {\n return colorToString({ ...color, swatch: { hue: 0, saturation: 0, lightness: 0 } })\n }\n\n return colorToString(color)\n}\n\ntype GradientStop = { color: Color | null | undefined; location: number }\n\nconst getStopsStyle = (stops: GradientStop[]) =>\n stops.map(({ color, location }) => `${getColor(color)} ${location}%`).join(',')\n\ntype AspectRatio = 'wide' | 'standard'\n\nconst getAspectRatio = (aspectRatio: AspectRatio) => {\n switch (aspectRatio) {\n case 'wide':\n return 16 / 9\n case 'standard':\n return 4 / 3\n default:\n return 16 / 9\n }\n}\n\nconst AbsoluteFill = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n`\n\nconst Container = styled(AbsoluteFill)`\n border-radius: inherit;\n`\n\nconst BackgroundsContainer = styled(Container)<{ visibility: ResponsiveValue<boolean> }>`\n overflow: hidden;\n ${p =>\n cssMediaRules(\n [p.visibility],\n ([visibility]) => css`\n display: ${visibility === true ? 'block' : 'none'};\n `,\n )}\n`\n\ntype Props = { backgrounds: BackgroundsPropControllerData | null | undefined }\n\nexport default function Backgrounds({ backgrounds }: Props): JSX.Element {\n const isPrefetching = useIsPrefetching()\n\n if (isPrefetching) return <></>\n\n if (backgrounds == null) return <></>\n\n return (\n <>\n {backgrounds.map(({ value, deviceId }) => {\n const visibility = backgrounds.map(v => ({\n deviceId: v.deviceId,\n value: v.deviceId === deviceId,\n }))\n\n return (\n <BackgroundsContainer key={deviceId} visibility={visibility}>\n {[...value].reverse().map(bg => {\n if (bg.type === 'color') {\n return (\n <Container\n key={bg.id}\n style={{\n backgroundColor: getColor(bg.payload),\n }}\n />\n )\n }\n\n if (bg.type === 'image' && bg.payload) {\n const {\n publicUrl,\n position,\n repeat = 'no-repeat',\n size = 'cover',\n opacity,\n parallax,\n } = bg.payload\n const backgroundPosition = `${position.x}% ${position.y}%`\n\n if (repeat === 'no-repeat' && size !== 'auto' && publicUrl != null) {\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <div {...getParallaxProps({ style: { opacity, overflow: 'hidden' } })}>\n <NextImage\n src={publicUrl}\n layout=\"fill\"\n objectPosition={backgroundPosition}\n objectFit={size}\n />\n </div>\n )}\n </Parallax>\n )\n }\n\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <Container\n {...getParallaxProps({\n style: {\n backgroundImage: publicUrl != null ? `url('${publicUrl}')` : undefined,\n backgroundPosition,\n backgroundRepeat: repeat,\n backgroundSize: size,\n opacity,\n },\n })}\n />\n )}\n </Parallax>\n )\n }\n\n if (bg.type === 'gradient' && bg.payload) {\n const { angle, stops, isRadial } = bg.payload\n const gradient = `${getStopsStyle(stops)}`\n\n return (\n <Container\n key={bg.id}\n style={{\n background: isRadial\n ? `radial-gradient(${gradient})`\n : `linear-gradient(${angle}rad, ${gradient})`,\n }}\n />\n )\n }\n\n if (bg.type === 'video' && bg.payload) {\n const { url, aspectRatio, maskColor, zoom, opacity, parallax } = bg.payload\n\n return (\n <Parallax key={bg.id} strength={parallax}>\n {getParallaxProps => (\n <Container {...getParallaxProps({})}>\n <BackgroundVideo\n url={url}\n zoom={zoom}\n opacity={opacity}\n aspectRatio={getAspectRatio(aspectRatio)}\n maskColor={getColor(maskColor)}\n />\n </Container>\n )}\n </Parallax>\n )\n }\n\n return null\n })}\n </BackgroundsContainer>\n )\n })}\n </>\n )\n}\n","import {\n ReactElement,\n ElementType,\n forwardRef,\n Children,\n ComponentPropsWithoutRef,\n useImperativeHandle,\n useState,\n} from 'react'\nimport styled from 'styled-components'\nimport { motion } from 'framer-motion'\n\nimport Backgrounds from './components/Backgrounds'\nimport { BackgroundsValue as BackgroundsPropControllerValue } from '../../../prop-controllers/descriptors'\nimport { useBackgrounds } from '../../hooks'\nimport { Ref } from 'react'\n\nconst OuterContainer = styled(motion.div)`\n position: relative;\n width: 100%;\n margin: 0 auto;\n\n > * {\n border-radius: inherit;\n height: inherit;\n }\n\n > :last-child {\n position: relative;\n }\n`\n\ntype BaseProps = {\n backgrounds: BackgroundsPropControllerValue | null | undefined\n children: ReactElement<ElementType>\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof OuterContainer>, keyof BaseProps>\n\nexport default forwardRef<HTMLDivElement | null, Props>(function BackgroundsContainer(\n { backgrounds, children, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement | null>,\n) {\n const [handle, setHandle] = useState<HTMLDivElement | null>(null)\n\n useImperativeHandle(ref, () => handle, [handle])\n\n return (\n <OuterContainer {...restOfProps} ref={setHandle}>\n <Backgrounds backgrounds={useBackgrounds(backgrounds)} />\n {Children.only(children)}\n </OuterContainer>\n )\n})\n","import { forwardRef, Ref, useImperativeHandle, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport { motion } from 'framer-motion'\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 ResponsiveValue,\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'\nimport { findDeviceOverride } from '../../utils/devices'\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 function isHiddenBasedOnAnimationType(\n props: Record<string, unknown>,\n deviceId: string,\n property: 'boxAnimateType' | 'itemAnimateType',\n ): boolean {\n const animateIn = props[property] as ResponsiveValue<BoxAnimateIn>\n return (findDeviceOverride<BoxAnimateIn>(animateIn, deviceId)?.value ?? 'none') === 'none'\n }\n const isHiddenBasedOnBoxAnimation = (props: Record<string, unknown>, deviceId: string) =>\n isHiddenBasedOnAnimationType(props, deviceId, 'boxAnimateType')\n const isHiddenBasedOnItemAnimation = (props: Record<string, unknown>, deviceId: string) =>\n isHiddenBasedOnAnimationType(props, deviceId, 'itemAnimateType')\n\n return runtime.registerComponent(Box, {\n type: './components/Box/index.js',\n label: 'Box',\n props: {\n id: Props.ElementID(),\n backgrounds: Props.Backgrounds(),\n width: Props.Width(),\n height: Props.ResponsiveIconRadioGroup({\n label: 'Height',\n options: [\n { value: 'auto', label: 'Auto', icon: 'HeightAuto16' },\n { value: 'stretch', label: 'Stretch', icon: 'HeightMatch16' },\n ],\n defaultValue: 'auto',\n }),\n verticalAlign: Props.ResponsiveIconRadioGroup({\n label: 'Align items',\n options: [\n { value: 'flex-start', label: 'Top', icon: 'VerticalAlignStart16' },\n { value: 'center', label: 'Middle', icon: 'VerticalAlignMiddle16' },\n { value: 'flex-end', label: 'Bottom', icon: 'VerticalAlignEnd16' },\n {\n value: 'space-between',\n label: 'Space between',\n icon: 'VerticalAlignSpaceBetween16',\n },\n ],\n defaultValue: 'flex-start',\n }),\n margin: Props.Margin(),\n padding: Props.Padding({\n preset: [\n {\n deviceId: 'desktop',\n value: {\n paddingTop: { value: 10, unit: 'px' },\n paddingRight: { value: 10, unit: 'px' },\n paddingBottom: { value: 10, unit: 'px' },\n paddingLeft: { value: 10, unit: 'px' },\n },\n },\n ],\n }),\n border: Props.Border(),\n borderRadius: Props.BorderRadius(),\n boxShadow: Props.Shadows(),\n rowGap: Props.GapY(props => ({\n hidden: props.children == null,\n })),\n columnGap: Props.GapX(props => ({\n hidden: props.children == null,\n })),\n boxAnimateType: Props.ResponsiveSelect({\n label: 'Animate box in',\n labelOrientation: 'vertical',\n options: [\n { value: 'none', label: 'None' },\n { value: 'fadeIn', label: 'Fade in' },\n { value: 'fadeRight', label: 'Fade right' },\n { value: 'fadeDown', label: 'Fade down' },\n { value: 'fadeLeft', label: 'Fade left' },\n { value: 'fadeUp', label: 'Fade up' },\n { value: 'blurIn', label: 'Blur in' },\n { value: 'scaleUp', label: 'Scale up' },\n { value: 'scaleDown', label: 'Scale down' },\n ],\n defaultValue: 'none',\n }),\n boxAnimateDuration: Props.ResponsiveNumber((props, device) => ({\n label: 'Box duration',\n defaultValue: DEFAULT_BOX_ANIMATE_DURATION,\n min: 0.1,\n step: 0.05,\n suffix: 's',\n hidden: isHiddenBasedOnBoxAnimation(props, device),\n })),\n boxAnimateDelay: Props.ResponsiveNumber((props, device) => ({\n label: 'Box delay',\n defaultValue: DEFAULT_BOX_ANIMATE_DELAY,\n min: 0,\n step: 0.05,\n suffix: 's',\n hidden: isHiddenBasedOnBoxAnimation(props, device),\n })),\n itemAnimateType: Props.ResponsiveSelect({\n label: 'Animate items in',\n labelOrientation: 'vertical',\n options: [\n { value: 'none', label: 'None' },\n { value: 'fadeIn', label: 'Fade in' },\n { value: 'fadeRight', label: 'Fade right' },\n { value: 'fadeDown', label: 'Fade down' },\n { value: 'fadeLeft', label: 'Fade left' },\n { value: 'fadeUp', label: 'Fade up' },\n { value: 'blurIn', label: 'Blur in' },\n { value: 'scaleUp', label: 'Scale up' },\n { value: 'scaleDown', label: 'Scale down' },\n ],\n defaultValue: 'none',\n }),\n itemAnimateDuration: Props.ResponsiveNumber((props, device) => ({\n label: 'Items duration',\n defaultValue: DEFAULT_BOX_ANIMATE_DURATION,\n min: 0.1,\n step: 0.05,\n suffix: 's',\n hidden: isHiddenBasedOnItemAnimation(props, device),\n })),\n itemAnimateDelay: Props.ResponsiveNumber((props, device) => ({\n label: 'Items delay',\n defaultValue: DEFAULT_ITEM_ANIMATE_DELAY,\n min: 0,\n step: 0.05,\n suffix: 's',\n hidden: isHiddenBasedOnItemAnimation(props, device),\n })),\n itemStaggerDuration: Props.ResponsiveNumber((props, device) => ({\n label: 'Stagger',\n min: 0,\n step: 0.05,\n suffix: 's',\n defaultValue: DEFAULT_ITEM_STAGGER_DURATION,\n hidden: isHiddenBasedOnItemAnimation(props, device),\n })),\n hidePlaceholder: Props.Checkbox(props => ({\n label: 'Hide placeholder',\n hidden: props.children != null,\n })),\n children: Props.Grid(),\n },\n })\n}\n","import { ComponentPropsWithoutRef, forwardRef, MouseEvent } from 'react'\nimport scrollIntoView from 'scroll-into-view-if-needed'\nimport NextLink from 'next/link'\n\nimport { LinkValue as LinkPropControllerValue } from '../../../prop-controllers/descriptors'\nimport { usePage } from '../../hooks'\nimport { useElementId } from '../../../runtimes/react'\n\ntype BaseProps = {\n link?: LinkPropControllerValue\n onClick?: (event: MouseEvent<HTMLAnchorElement>) => unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<'a'>, keyof BaseProps>\n\nexport const Link = forwardRef<HTMLAnchorElement, Props>(function Link(\n { link, onClick = () => {}, ...restOfProps }: Props,\n ref,\n) {\n const page = usePage(link && link.type === 'OPEN_PAGE' ? link.payload.pageId : null)\n const elementKey =\n link?.type === 'SCROLL_TO_ELEMENT' ? link.payload.elementIdConfig?.elementKey : null\n const elementId = useElementId(elementKey)\n\n let href = ''\n let target: '_blank' | '_self' | undefined\n let block: 'start' | 'center' | 'end' | undefined\n\n if (link) {\n switch (link.type) {\n case 'OPEN_PAGE': {\n if (page) href = `/${page.pathname}`\n\n target = link.payload.openInNewTab ? '_blank' : '_self'\n\n break\n }\n\n case 'OPEN_URL': {\n href = link.payload.url\n\n target = link.payload.openInNewTab ? '_blank' : '_self'\n\n break\n }\n\n case 'SEND_EMAIL': {\n const { to, subject = '', body = '' } = link.payload\n\n if (to != null) href = `mailto:${to}?subject=${subject}&body=${body}`\n\n break\n }\n\n case 'CALL_PHONE': {\n href = `tel:${link.payload.phoneNumber}`\n\n break\n }\n\n case 'SCROLL_TO_ELEMENT': {\n href = `#${elementId ?? ''}`\n block = link.payload.block\n\n break\n }\n\n default:\n throw new RangeError(`Invalid link type \"${(link as any).type}.\"`)\n }\n }\n\n function handleClick(event: MouseEvent<HTMLAnchorElement>) {\n onClick(event)\n\n if (event.defaultPrevented) return\n\n /**\n * When we introduced `next/link` instead of just `a` element slate no longer prevented link from navigating within\n * content mode. This is a hack to compensate for what would be expected as slate's default behavior.\n * On upgrade of slate this can be reevaluated.\n */\n if (event.currentTarget.isContentEditable) return event.preventDefault()\n\n if (link && link.type === 'SCROLL_TO_ELEMENT') {\n let hash: string | undefined\n\n try {\n hash = new URL(`http://www.example.com/${href}`).hash\n } catch (error) {\n console.error(`Link received invalid href: ${href}`, error)\n }\n\n if (href != null && href === hash) {\n event.preventDefault()\n const view = event.view as unknown as Window\n\n scrollIntoView(view.document.querySelector(hash)!, {\n behavior: 'smooth',\n block,\n })\n\n if (view.location.hash !== hash) view.history.pushState({}, '', hash)\n }\n }\n }\n\n return (\n <NextLink href={href}>\n {/* eslint-disable-next-line */}\n <a {...restOfProps} ref={ref} target={target} onClick={handleClick} />\n </NextLink>\n )\n})\n","import { 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 video: {\n src: \"data:image/svg+xml,%3Csvg width='712' height='400' viewBox='0 0 712 400' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M712 0H0V400H712V0ZM356 240C378.091 240 396 222.091 396 200C396 177.909 378.091 160 356 160C333.909 160 316 177.909 316 200C316 222.091 333.909 240 356 240Z' fill='%23A1A8C2' fill-opacity='0.18'/%3E%3Cpath d='M344 216.503V183.497C344 181.95 345.681 180.989 347.014 181.773L375.069 198.276C376.384 199.049 376.384 200.951 375.069 201.724L347.014 218.227C345.681 219.011 344 218.05 344 216.503Z' fill='%23A1A8C2' fill-opacity='0.4'/%3E%3C/svg%3E%0A\",\n dimensions: { width: 712, height: 400 },\n },\n}\n","import styled, { css } from 'styled-components'\nimport { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\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'\nimport { useIsPrefetching } from '../../../api/react'\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 const isPrefetching = useIsPrefetching()\n\n useEffect(() => {\n if (dataDimensions) return\n\n let cleanedUp = false\n\n loadImage(imageSrc)\n .then(image => {\n if (!cleanedUp) {\n setMeasuredDimensions({ width: image.naturalWidth, height: image.naturalHeight })\n }\n })\n .catch(console.error)\n\n return () => {\n cleanedUp = true\n }\n }, [dataDimensions, imageSrc])\n\n const dimensions = dataDimensions ?? measuredDimensions\n\n if (!dimensions) return null\n\n if (isPrefetching) 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,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS43MDcxIDEuNzkyODlDMTIuMDk3NiAyLjE4MzQyIDEyLjA5NzYgMi44MTY1OCAxMS43MDcxIDMuMjA3MTFMNC43MDcxMSAxMC4yMDcxQzQuMzE2NTggMTAuNTk3NiAzLjY4MzQyIDEwLjU5NzYgMy4yOTI4OSAxMC4yMDcxTDAuMjkyODkzIDcuMjA3MTFDLTAuMDk3NjMxMSA2LjgxNjU4IC0wLjA5NzYzMTEgNi4xODM0MiAwLjI5Mjg5MyA1Ljc5Mjg5QzAuNjgzNDE3IDUuNDAyMzcgMS4zMTY1OCA1LjQwMjM3IDEuNzA3MTEgNS43OTI4OUw0IDguMDg1NzlMMTAuMjkyOSAxLjc5Mjg5QzEwLjY4MzQgMS40MDIzNyAxMS4zMTY2IDEuNDAyMzcgMTEuNzA3MSAxLjc5Mjg5WiIvPgo8L3N2Zz4K\"","import { createContext, useContext } from 'react'\n\nimport {\n ResponsiveValue,\n ResponsiveColorValue,\n TextStyleValue,\n} from '../../../../prop-controllers/descriptors'\nimport { ColorValue } from '../../../utils/types'\n\nexport const Shapes = Object.freeze({\n SQUARE: 'square',\n ROUNDED: 'rounded',\n PILL: 'pill',\n} as const)\n\nexport type Shape = typeof Shapes[keyof typeof Shapes]\n\nexport const Sizes = Object.freeze({\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const)\n\nexport type Size = typeof Sizes[keyof typeof Sizes]\n\nexport const Contrasts = Object.freeze({\n LIGHT: 'light',\n DARK: 'dark',\n} as const)\n\nexport type Contrast = typeof Contrasts[keyof typeof Contrasts]\n\nexport type Value = {\n shape: ResponsiveValue<Shape> | null | undefined\n size: ResponsiveValue<Size> | null | undefined\n contrast: ResponsiveValue<Contrast> | null | undefined\n brandColor: ResponsiveValue<ColorValue> | null | undefined\n labelTextStyle?: TextStyleValue\n labelTextColor?: ResponsiveColorValue\n}\n\nconst Context = createContext<Value>({} as Value)\n\nexport function useFormContext(): Value {\n return useContext(Context)\n}\n\nconst { Provider } = Context\n\nexport { Provider }\n","import { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../utils/colorToString'\n\nimport {\n Size,\n Shape,\n Contrast,\n Shapes,\n Sizes,\n Contrasts,\n Value,\n} from '../../../context/FormContext'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 30\n\n case Sizes.MEDIUM:\n return 38\n\n case Sizes.LARGE:\n return 48\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getSizeHorizontalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 8\n\n case Sizes.MEDIUM:\n return 12\n\n case Sizes.LARGE:\n return 16\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nfunction getSizeVerticalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 3\n\n case Sizes.MEDIUM:\n return 7\n\n case Sizes.LARGE:\n return 11\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getShapeBorderRadius(shape: Shape): number {\n switch (shape) {\n case Shapes.SQUARE:\n return 0\n\n case Shapes.ROUNDED:\n return 4\n\n case Shapes.PILL:\n return 500\n\n default:\n throw new Error(`Invalid form shape \"${shape}\"`)\n }\n}\n\nexport function getContrastBorderColor(contrast: Contrast, error?: boolean): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(0, 0, 0, 0.25)'\n\n case Contrasts.DARK:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.6)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastBackgroundColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'white'\n\n case Contrasts.DARK:\n return 'rgba(0, 0, 0, 0.7)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.95)'\n\n case Contrasts.DARK:\n return 'white'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nfunction getContrastPlaceholderColor(contrast: Contrast) {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.3)'\n\n case Contrasts.DARK:\n return 'rgba(255,255,255,0.3)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport default function cssField() {\n return css<Pick<Value, 'shape' | 'size' | 'contrast' | 'brandColor'> & { error?: boolean }>`\n display: block;\n width: 100%;\n outline: none;\n border-width: 1px;\n border-style: solid;\n transition: border-color 200ms;\n ${props =>\n cssMediaRules(\n [props.shape, props.size, props.contrast, props.brandColor] as const,\n ([\n shape = Shapes.ROUNDED,\n size = Sizes.MEDIUM,\n contrast = Contrasts.LIGHT,\n brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => css`\n padding: ${getSizeVerticalPadding(size)}px ${getSizeHorizontalPadding(size)}px;\n border-radius: ${getShapeBorderRadius(shape)}px;\n border-color: ${getContrastBorderColor(contrast, props.error)};\n color: ${getContrastColor(contrast)};\n background-color: ${getContrastBackgroundColor(contrast)};\n\n :focus,\n :focus-within {\n border-color: ${colorToString(brandColor)};\n }\n\n ::placeholder {\n color: ${getContrastPlaceholderColor(contrast)};\n }\n `,\n )}\n `\n}\n","import { ComponentPropsWithoutRef, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { Size, useFormContext, Sizes, Value } from '../../../../context/FormContext'\nimport cssField from '../../services/cssField'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 36\n\n case Sizes.MEDIUM:\n return 42\n\n case Sizes.LARGE:\n return 48\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nconst Base = styled.input<\n Pick<Value, 'shape' | 'size' | 'contrast' | 'brandColor'> & { error?: boolean }\n>`\n ${cssField()}\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n min-height: ${getSizeHeight(size)}px;\n max-height: ${getSizeHeight(size)}px;\n `,\n )}\n`\n\ntype BaseProps = { error?: boolean; form?: unknown }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Base>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function Input(\n { error = false, form, ...restOfProps }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <Base\n {...restOfProps}\n ref={ref}\n error={error}\n shape={shape}\n // @ts-expect-error: HTMLInputEleent `size` attribute conflicts with prop\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n )\n})\n","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\n\nimport { MarginValue, WidthValue } from '../../../../../prop-controllers/descriptors'\nimport { cssMargin, cssWidth } from '../../../../utils/cssMediaRules'\n\nconst Container = styled.div<{\n width?: WidthValue\n margin?: MarginValue\n}>`\n display: flex;\n flex-direction: column;\n ${cssWidth()};\n ${cssMargin()};\n`\n\nconst Label = styled.div`\n max-width: 120px;\n min-width: 60px;\n height: 8px;\n border-radius: 2px;\n background-color: #a1a8c2;\n opacity: 0.4;\n margin-bottom: 8px;\n`\n\nconst Input = styled.div`\n min-width: 80px;\n height: 32px;\n border-radius: 4px;\n border-width: 2px;\n border-style: solid;\n border-color: #a1a8c2;\n opacity: 0.4;\n`\n\nconst Button = styled.div`\n min-width: 140px;\n height: 32px;\n border-radius: 4px;\n background-color: #a1a8c2;\n opacity: 0.4;\n`\n\ntype Props = {\n width?: WidthValue\n margin?: MarginValue\n}\n\nexport default forwardRef(function Placeholder(\n { width, margin }: Props,\n ref: Ref<HTMLDivElement>,\n): JSX.Element {\n return (\n <Container ref={ref} width={width} margin={margin}>\n <div style={{ display: 'flex', flexDirection: 'column', marginBottom: 16 }}>\n <Label />\n <Input />\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', marginBottom: 16 }}>\n <Label />\n <Input />\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'flex-end' }}>\n <Button />\n </div>\n </Container>\n )\n})\n","import { ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport { ResponsiveValue } from '../../../../../../../prop-controllers'\nimport { TextStyleValue } from '../../../../../../../prop-controllers/descriptors'\nimport { cssMediaRules, cssTextStyle } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\n\nimport { useFormContext, Size, Sizes, Contrast, Contrasts } from '../../../../context/FormContext'\nimport { useColor } from '../../../../../../hooks'\nimport { ColorValue } from '../../../../../../utils/types'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 14\n\n case Sizes.MEDIUM:\n return 18\n\n case Sizes.LARGE:\n return 22\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nfunction getContrastColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.8)'\n\n case Contrasts.DARK:\n return 'rgba(255, 255, 255, 0.95)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nconst Base = styled.label<{\n contrast?: ResponsiveValue<Contrast> | null | undefined\n size?: ResponsiveValue<Size> | null | undefined\n textStyle?: TextStyleValue | null | undefined\n textColor?: ResponsiveValue<ColorValue> | null | undefined\n}>`\n display: block;\n margin: 0 0 0.25em 0;\n ${cssTextStyle()}\n ${props =>\n cssMediaRules(\n [props.size, props.contrast, props.textColor] as const,\n ([size = Sizes.MEDIUM, contrast = Contrasts.LIGHT, textColor]) => css`\n min-height: ${getSizeHeight(size)}px;\n color: ${textColor == null ? getContrastColor(contrast) : colorToString(textColor)};\n `,\n )}\n`\n\ntype Props = ComponentPropsWithoutRef<typeof Base>\n\nexport default function Label(props: Props): JSX.Element {\n const { contrast, size, labelTextStyle, labelTextColor } = useFormContext()\n\n return (\n <Base\n {...props}\n contrast={contrast}\n size={size}\n textStyle={labelTextStyle}\n textColor={useColor(labelTextColor)}\n />\n )\n}\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function SingleLineTextTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"text\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef, ComponentPropsWithoutRef } from 'react'\nimport styled from 'styled-components'\n\nimport cssField from '../../services/cssField'\nimport { Value, useFormContext } from '../../../../context/FormContext'\n\nconst Base = styled.textarea<Value & { error?: boolean }>`\n resize: vertical;\n ${cssField()}\n`\n\ntype BaseProps = { error?: boolean; form?: unknown }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Base>, keyof BaseProps>\n\nexport default forwardRef<HTMLTextAreaElement, Props>(function TextArea(\n { error = false, form, ...restOfProps }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <Base\n {...restOfProps}\n ref={ref}\n rows={4}\n error={error}\n shape={shape}\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport TextArea from '../TextArea'\n\ntype Props = {\n id: string\n label?: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLTextAreaElement, Props>(function LongTextTableField(\n { id, label = '', error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <TextArea {...restOfProps} aria-label={label} ref={ref} id={id} error={error != null} />\n </>\n )\n})\n","import { forwardRef, CSSProperties, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport Color from 'color'\n\nimport { getSizeHeight as getSize } from '../Label'\nimport {\n useFormContext,\n Value as FormContextValue,\n Sizes,\n Contrasts,\n} from '../../../../context/FormContext'\nimport { getContrastBorderColor, getContrastBackgroundColor } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { SwatchValue } from '../../../../../../utils/types'\n\nfunction getCheckmarkColor({\n swatch: { hue: h, saturation: s, lightness: l },\n alpha: a,\n}: {\n swatch: SwatchValue\n alpha: number\n}) {\n return Color({ h, s, l }).alpha(a).isLight() ? 'rgba(0, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.95)'\n}\n\nconst Container = styled.div<Pick<FormContextValue, 'size'>>`\n position: relative;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n height: ${getSize(size)}px;\n width: ${getSize(size)}px;\n `,\n )}\n`\n\nconst FakeCheckbox = styled.div<Pick<FormContextValue, 'contrast'> & { error?: boolean }>`\n position: absolute;\n width: 100%;\n height: 100%;\n border-style: solid;\n border-radius: 4px;\n pointer-events: none;\n border-width: 1px;\n ${props =>\n cssMediaRules(\n [props.contrast] as const,\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n background-color: ${getContrastBackgroundColor(contrast)};\n `,\n )}\n`\n\nconst HiddenCheckbox = styled.input<\n Pick<FormContextValue, 'size' | 'brandColor' | 'contrast'> & {\n error?: boolean\n }\n>`\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n\n &:disabled {\n cursor: no-drop;\n\n & ~ ${FakeCheckbox} {\n opacity: 0.5;\n }\n }\n\n &:checked ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([{ swatch = { hue: 0, saturation: 0, lightness: 0 }, alpha = 1 } = {}]) => css`\n background-color: ${colorToString({ swatch, alpha })};\n `,\n )}\n border-color: transparent;\n\n &::after {\n content: '';\n position: absolute;\n box-sizing: content-box;\n width: 25%;\n height: 50%;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n border-width: ${getSize(size) * 0.1}px;\n border-left: 0;\n border-top: 0;\n `,\n )}\n border-style: solid;\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([{ swatch = { hue: 0, saturation: 0, lightness: 0 }, alpha = 1 } = {}]) => css`\n border-color: ${getCheckmarkColor({ swatch, alpha })};\n `,\n )}\n transform: rotate(45deg) translate3d(91%, -23%, 0);\n }\n }\n\n &:not(:disabled) {\n &:focus ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.brandColor],\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n border-color: ${colorToString(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled):checked {\n &:focus ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.contrast],\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n `,\n )}\n }\n }\n`\n\ntype BaseProps = {\n error?: boolean\n className?: string\n style?: CSSProperties\n form?: unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof HiddenCheckbox>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function Checkbox(\n { error, className, style, form, ...restOfProps }: Props,\n ref,\n) {\n const { size, contrast, brandColor } = useFormContext()\n\n return (\n <Container size={size}>\n <HiddenCheckbox\n {...restOfProps}\n type=\"checkbox\"\n ref={ref}\n error={error}\n // @ts-expect-error: HTMLInputElement `size` attribute conflicts with prop\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n <FakeCheckbox className={className} error={error} contrast={contrast} style={style} />\n </Container>\n )\n})\n","import { forwardRef, SyntheticEvent } from 'react'\nimport styled, { css } from 'styled-components'\nimport { FormikProps } from 'formik'\n\nimport { useFormContext, Sizes, Value } from '../../../../context/FormContext'\nimport Label from '../Label'\nimport { getSizeHeight as getInputSizeHeight } from '../Input'\nimport Checkbox from '../Checkbox'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\n\nconst StyledLabel = styled(Label)<Pick<Value, 'size'>>`\n display: flex;\n align-items: center;\n margin: 0;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n `,\n )}\n`\n\nconst CheckboxContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n form: FormikProps<{\n [key: string]: boolean\n }>\n id: string\n label?: string\n name: string\n value?: boolean\n error?: string\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function CheckboxTableField(\n { form, id, name, label = '', value = false, error, ...restOfProps }: Props,\n ref,\n) {\n const { size } = useFormContext()\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n form.setFieldValue(name, event.currentTarget.checked)\n }\n\n return (\n <StyledLabel htmlFor={id} size={size}>\n <CheckboxContainer>\n <Checkbox\n {...restOfProps}\n aria-label={label}\n checked={value}\n onChange={handleChange}\n ref={ref}\n id={id}\n error={error != null}\n />\n </CheckboxContainer>\n {label}\n </StyledLabel>\n )\n})\n","import { forwardRef, useRef, useImperativeHandle, SyntheticEvent } from 'react'\nimport styled from 'styled-components'\n\nimport Label from '../Label'\nimport Checkbox from '../Checkbox'\n\nconst MainLabel = styled(Label)`\n margin: 0 0 4px 0;\n`\n\nconst StyledLabel = styled(Label)`\n display: flex;\n align-items: center;\n margin: 8px 0;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`\n\nconst CheckboxContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n value?: Array<string>\n label?: string\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n hideLabel?: boolean\n}\n\nexport default forwardRef<\n {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n },\n Props\n>(function MultipleSelectTableField(\n {\n tableColumn,\n label = '',\n required,\n value = [],\n onChange,\n hideLabel = false,\n ...restOfProps\n }: Props,\n ref,\n) {\n const handle = useRef({\n validity: { valueMissing: required === true && value.length === 0, typeMismatch: false },\n })\n\n useImperativeHandle(ref, () => handle.current, [])\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n handle.current.validity.valueMissing =\n required === true &&\n !event.currentTarget.checked &&\n value.filter(v => v !== event.currentTarget.value).length === 0\n\n onChange(event)\n }\n\n return (\n <div>\n {!hideLabel && <MainLabel>{label}</MainLabel>}\n {tableColumn.options.map(option => (\n <StyledLabel key={option.id} htmlFor={option.id}>\n <CheckboxContainer>\n <Checkbox\n {...restOfProps}\n aria-label={label}\n onChange={handleChange}\n checked={value.includes(option.name)}\n id={option.id}\n value={option.name}\n />\n </CheckboxContainer>\n {option.name}\n </StyledLabel>\n ))}\n </div>\n )\n})\n","import { forwardRef, CSSProperties, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport Color from 'color'\n\nimport { getSizeHeight as getSize } from '../Label'\nimport { useFormContext, Sizes, Contrasts, Value } from '../../../../context/FormContext'\nimport { getContrastBorderColor, getContrastBackgroundColor } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { ColorValue } from '../../../../../../utils/types'\n\nfunction getCheckmarkColor({\n swatch: { hue: h, saturation: s, lightness: l } = { hue: 0, saturation: 0, lightness: 0 },\n alpha: a,\n}: ColorValue) {\n return Color({ h, s, l }).alpha(a).isLight() ? 'rgba(0, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.95)'\n}\n\nconst Container = styled.div<Pick<Value, 'size'>>`\n position: relative;\n ${props =>\n cssMediaRules(\n [props.size],\n ([size = Sizes.MEDIUM]) => css`\n height: ${getSize(size)}px;\n width: ${getSize(size)}px;\n `,\n )}\n`\n\nconst FakeRadioButton = styled.div<Pick<Value, 'contrast'> & { error?: boolean }>`\n position: absolute;\n width: 100%;\n height: 100%;\n border-style: solid;\n border-radius: 50%;\n pointer-events: none;\n border-width: 1px;\n ${props =>\n cssMediaRules(\n [props.contrast],\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n background-color: ${getContrastBackgroundColor(contrast)};\n `,\n )}\n`\n\nconst HiddenRadioButton = styled.input.attrs({ type: 'radio' })<\n Pick<Value, 'brandColor' | 'contrast'> & { error?: boolean }\n>`\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n\n &:disabled {\n cursor: no-drop;\n\n & ~ ${FakeRadioButton} {\n opacity: 0.5;\n }\n }\n\n &:checked ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n background-color: ${colorToString(brandColor)};\n `,\n )}\n border-color: transparent;\n\n &::after {\n content: '';\n position: absolute;\n box-sizing: content-box;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n background-color: ${getCheckmarkColor(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled) {\n &:focus ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n border-color: ${colorToString(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled):checked {\n &:focus ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.contrast] as const,\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n `,\n )}\n }\n }\n`\n\ntype BaseProps = {\n error?: boolean\n className?: string\n style?: CSSProperties\n form?: unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof HiddenRadioButton>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function RadioButton(\n { error, className, style, form, ...restOfProps }: Props,\n ref,\n) {\n const { size, contrast, brandColor } = useFormContext()\n\n return (\n <Container size={size}>\n <HiddenRadioButton\n {...restOfProps}\n ref={ref}\n error={error}\n contrast={contrast}\n brandColor={brandColor}\n />\n <FakeRadioButton className={className} error={error} contrast={contrast} style={style} />\n </Container>\n )\n})\n","import { forwardRef, useRef, useImperativeHandle, SyntheticEvent } from 'react'\nimport styled from 'styled-components'\n\nimport Label from '../../../Label'\nimport RadioButton from '../../../RadioButton'\n\nconst StyledLabel = styled(Label)`\n display: flex;\n align-items: center;\n margin: 8px 0;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`\n\nconst RadioButtonContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n label?: string\n value?: string\n hideLabel?: boolean\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n}\n\nexport default forwardRef<\n {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n },\n Props\n>(function TableColumnRadioButtonGroup(\n {\n tableColumn,\n label = '',\n value = '',\n required = false,\n hideLabel = false,\n onChange,\n ...restOfProps\n }: Props,\n ref,\n) {\n const handle = useRef({\n validity: { valueMissing: required === true && value === '', typeMismatch: false },\n })\n\n useImperativeHandle(ref, () => handle.current, [])\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n handle.current.validity.valueMissing = required === true && !event.currentTarget.checked\n\n onChange(event)\n }\n\n return (\n <div>\n {!hideLabel && <Label as=\"p\">{label}</Label>}\n {tableColumn.options.map(option => (\n <StyledLabel key={option.id} htmlFor={option.id} aria-label={label}>\n <RadioButtonContainer>\n <RadioButton\n {...restOfProps}\n onChange={handleChange}\n checked={value === option.name}\n id={option.id}\n value={option.name}\n />\n </RadioButtonContainer>\n {option.name}\n </StyledLabel>\n ))}\n </div>\n )\n})\n","import { forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../../../utils/cssMediaRules'\nimport { useFormContext, Sizes, Contrasts, Value } from '../../../../../../context/FormContext'\nimport cssField, {\n getSizeHeight,\n getSizeHorizontalPadding,\n getContrastColor,\n} from '../../../../services/cssField'\nimport Label from '../../../Label'\n\nconst Container = styled.div<Value & { error?: boolean }>`\n ${cssField()}\n display: flex;\n align-items: center;\n position: relative;\n user-select: none;\n border-color: #f19eb9;\n\n &:focus,\n &:focus-within {\n border-color: #e54e7f;\n }\n\n ${props =>\n cssMediaRules(\n [props.size, props.contrast] as const,\n ([size = Sizes.MEDIUM, contrast = Contrasts.LIGHT]) => css`\n min-height: ${getSizeHeight(size)}px;\n max-height: ${getSizeHeight(size)}px;\n\n &::after {\n content: '';\n position: absolute;\n right: ${getSizeHorizontalPadding(size)}px;\n top: 50%;\n transform: translate3d(0, -25%, 0);\n border: solid 0.35em transparent;\n border-top-color: ${getContrastColor(contrast)};\n }\n `,\n )}\n`\n\nconst Select = styled.select`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n value?: string\n label?: string\n required?: boolean\n error?: boolean\n hideLabel?: boolean\n form?: unknown\n}\n\nexport default forwardRef<HTMLSelectElement, Props>(function TableColumnSingleSelect(\n {\n id,\n tableColumn,\n value = '',\n label = '',\n error = false,\n hideLabel = false,\n form,\n ...restOfProps\n }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Container\n error={error}\n shape={shape}\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n >\n <span>{value === '' ? '-' : value}</span>\n <Select {...restOfProps} aria-label={label} ref={ref} id={id} value={value}>\n <option value=\"\">-</option>\n {tableColumn.options.map(option => (\n <option key={option.id} value={option.name}>\n {option.name}\n </option>\n ))}\n </Select>\n </Container>\n </>\n )\n})\n","import { forwardRef, SyntheticEvent } from 'react'\n\nimport TableColumnRadioButtonGroup from './components/TableColumnRadioButtonGroup'\nimport TableColumnSingleSelect from './components/TableColumnSingleSelect'\n\ntype Props = {\n id: string\n name: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n label?: string\n value?: string\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n type: 'select' | 'radio'\n}\n\nexport default forwardRef<\n {\n readonly validity: {\n readonly valueMissing: boolean\n readonly typeMismatch: boolean\n }\n },\n Props\n>(function SingleSelectTableField({ type, ...restOfProps }: Props, ref) {\n return type === 'select' ? (\n // @ts-expect-error: custom ref doesn't match select element\n <TableColumnSingleSelect {...restOfProps} ref={ref} />\n ) : (\n <TableColumnRadioButtonGroup {...restOfProps} ref={ref} />\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function PhoneNumberTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"tel\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function EmailTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"email\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function URLTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"url\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function NumberTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"number\"\n error={error != null}\n />\n </>\n )\n})\n","import styled, { css } from 'styled-components'\n\nimport { useFormContext, Sizes, Shapes, Value } from '../../../../context/FormContext'\nimport { getSizeHeight as getLabelSizeHeight } from '../Label'\nimport { getSizeHeight as getInputSizeHeight } from '../Input'\nimport { getShapeBorderRadius } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\n\nconst Label = styled.div<Pick<Value, 'size'>>`\n display: block;\n max-width: 120px;\n min-width: 60px;\n border-radius: 2px;\n background-color: #5f49f4;\n opacity: 0.4;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n margin: calc(0.25 * ${getLabelSizeHeight(size)}px + 2px) 0;\n min-height: ${0.5 * getLabelSizeHeight(size)}px;\n max-height: ${0.5 * getLabelSizeHeight(size)}px;\n `,\n )}\n`\n\nconst Input = styled.div<Pick<Value, 'shape' | 'size'>>`\n display: block;\n width: 100%;\n border-width: 2px;\n border-style: solid;\n border-color: #5f49f4;\n opacity: 0.4;\n ${props =>\n cssMediaRules(\n [props.shape, props.size] as const,\n ([shape = Shapes.ROUNDED, size = Sizes.MEDIUM]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n border-radius: ${getShapeBorderRadius(shape)}px;\n `,\n )}\n`\n\nexport default function PlaceholderTableField(): JSX.Element {\n const { size, shape } = useFormContext()\n\n return (\n <>\n <Label size={size} />\n <Input shape={shape} size={size} />\n </>\n )\n}\n","import { useRef } from 'react'\nimport { Field as FormikField, getIn } from 'formik'\n\nimport SingleLineTextTableField from './components/SingleLineTextTableField'\nimport LongTextTableField from './components/LongTextTableField'\nimport CheckboxTableField from './components/CheckboxTableField'\nimport MultipleSelectTableField from './components/MultipleSelectTableField'\nimport SingleSelectTableField from './components/SingleSelectTableField'\nimport PhoneNumberTableField from './components/PhoneNumberTableField'\nimport EmailTableField from './components/EmailTableField'\nimport URLTableField from './components/URLTableField'\nimport NumberTableField from './components/NumberTableField'\nimport PlaceholderTableField from './components/PlaceholderTableField'\nimport { TableColumn } from '../../../../hooks'\n\nfunction getTypeMismatchErrorMessage(tableColumn: TableColumn | null | undefined, label: string) {\n switch ((tableColumn || {}).__typename) {\n case 'PhoneNumberTableColumn':\n return `${label} field must be a valid phone number.`\n\n case 'EmailTableColumn':\n return `${label} field must be a valid email.`\n\n case 'URLTableColumn':\n return `${label} field must be a valid URL.`\n\n case 'NumberTableColumn':\n return `${label} field must be a valid number.`\n\n case 'SingleLineTextTableColumn':\n case 'LongTextTableColumn':\n case 'CheckboxTableColumn':\n default:\n return `${label} field is invalid.`\n }\n}\n\nfunction getTableColumnField(tableColumn: TableColumn | null | undefined) {\n switch ((tableColumn || {}).__typename) {\n case 'SingleLineTextTableColumn':\n return SingleLineTextTableField\n\n case 'LongTextTableColumn':\n return LongTextTableField\n\n case 'CheckboxTableColumn':\n return CheckboxTableField\n\n case 'MultipleSelectTableColumn':\n return MultipleSelectTableField\n\n case 'SingleSelectTableColumn':\n return SingleSelectTableField\n\n case 'PhoneNumberTableColumn':\n return PhoneNumberTableField\n\n case 'EmailTableColumn':\n return EmailTableField\n\n case 'URLTableColumn':\n return URLTableField\n\n case 'NumberTableColumn':\n return NumberTableField\n\n default:\n return SingleLineTextTableField\n }\n}\n\ntype TableFormField = {\n id: string\n tableColumnId: string\n label?: string\n placeholder?: string\n required?: boolean\n hidden?: boolean\n type?: 'select' | 'radio'\n hideLabel?: boolean\n}\n\ntype Props = {\n tableColumn: TableColumn | null | undefined\n tableFormField: TableFormField\n}\n\nexport default function Field({\n tableColumn,\n tableFormField: {\n id,\n label = '',\n placeholder,\n required = false,\n hidden = false,\n type = 'radio',\n hideLabel = false,\n },\n}: Props): JSX.Element {\n const TableColumnField = getTableColumnField(tableColumn)\n const input = useRef<\n | {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n }\n | null\n | undefined\n >(null)\n\n if (!tableColumn) return <PlaceholderTableField />\n\n function validate() {\n let errorMessage\n\n if (input.current) {\n const { validity = {} as ValidityState } = input.current\n\n if (validity.valueMissing) errorMessage = `${label} is required.`\n\n if (validity.typeMismatch) errorMessage = getTypeMismatchErrorMessage(tableColumn, label)\n }\n\n return errorMessage\n }\n\n return (\n <FormikField name={tableColumn.name} validate={validate}>\n {({ field, form }: any) =>\n hidden ? (\n <input {...field} ref={input} type=\"hidden\" />\n ) : (\n <TableColumnField\n {...field}\n type={type}\n form={form}\n tableColumn={tableColumn}\n ref={input}\n id={id}\n error={getIn(form.touched, field.name) && getIn(form.errors, field.name)}\n label={label}\n placeholder={placeholder}\n required={required}\n hideLabel={hideLabel}\n />\n )\n }\n </FormikField>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEpIj4KICAgIDxjaXJjbGUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGN4PSI5IiBjeT0iOSIgcj0iOSIgc3Ryb2tlLW9wYWNpdHk9Ii40Ii8+CiAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIGQ9Ik05IDE4QTkgOSAwIDAgMCA5IDAiLz4KICA8L2c+Cjwvc3ZnPgo=\"","import styled, { keyframes } from 'styled-components'\n\nimport { ReactComponent as Spinner20 } from '../../../../icons/spinner-20.svg'\n\nconst spin = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Icon = styled(Spinner20)`\n display: inline-flex;\n animation: ${spin} 1s linear infinite;\n stroke: currentColor;\n`\n\nexport default function Spinner(): JSX.Element {\n return <Icon />\n}\n","import { useState, useEffect, useMemo } from 'react'\nimport { getBox } from '../../box-model'\nimport { TableFormFieldsPropController } from '../../prop-controllers/instances'\nimport { useIsInBuilder } from '../../react'\n\nexport function useTableFormFieldRefs(\n propController: TableFormFieldsPropController | null | undefined,\n { fieldsCount }: { fieldsCount: number },\n): {\n container: (arg0: HTMLElement | null | undefined) => void\n items: Array<(arg0: HTMLElement | null | undefined) => void>\n} {\n const [container, setContainer] = useState<HTMLElement | null | undefined>(null)\n const [items, setItems] = useState<Array<HTMLElement | null | undefined>>(\n Array(fieldsCount + 1).fill(null),\n )\n\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (!isInBuilder) return\n\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n if (propController == null) return\n\n if (container != null) propController.tableFormLayoutChange({ layout: getBox(container) })\n\n items.map((item, index) => {\n if (item == null) return\n\n propController.tableFormFieldLayoutChange({ index, layout: getBox(item) })\n })\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }, [propController, container, items, isInBuilder])\n\n const itemRefs = useMemo(\n () =>\n Array.from({ length: fieldsCount + 1 }).map(\n (_, index) => (item: HTMLElement | null | undefined) => {\n setItems(is => [...is.slice(0, index), item, ...is.slice(index + 1)])\n },\n ),\n [fieldsCount, setItems],\n )\n\n return { container: setContainer, items: itemRefs }\n}\n","import {\n useState,\n useEffect,\n useRef,\n useMemo,\n forwardRef,\n ComponentPropsWithoutRef,\n Ref,\n useImperativeHandle,\n} from 'react'\nimport styled, { css } from 'styled-components'\nimport { Formik, getIn } from 'formik'\n\nimport { ReactComponent as Check12 } from '../../icons/check-12.svg'\n\nimport { getSizeHeight as getInputSizeHeight } from './components/Field/components/Input'\n\nimport {\n Size,\n Sizes,\n Provider as FormContextProvider,\n Shape,\n Contrast,\n Shapes,\n Contrasts,\n} from './context/FormContext'\nimport Placeholder from './components/Placeholder'\nimport Field from './components/Field'\nimport Spinner from './components/Spinner'\nimport Button from '../Button'\nimport { TableColumn, useColor, useTable } from '../../hooks'\nimport { cssGridItem, cssMargin, cssMediaRules, cssWidth } from '../../utils/cssMediaRules'\nimport {\n ElementIDValue,\n GapYValue,\n LinkValue,\n MarginValue,\n ResponsiveColorValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n TableFormFieldsDescriptor,\n TableFormFieldsValue,\n TableValue,\n TextInputValue,\n TextStyleValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { Link } from '../../shared/Link'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\nimport { useTableFormFieldRefs } from '../../hooks/useTableFormFieldRefs'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\nimport { useMutation, gql } from '../../../api/react'\n\nconst LOCAL_STORAGE_NAMESPACE = '@@makeswift/components/form'\n\nfunction getSizeFontSize(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 12\n\n case Sizes.MEDIUM:\n return 14\n\n case Sizes.LARGE:\n return 18\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport const Alignments = {\n LEFT: 'left',\n CENTER: 'center',\n RIGHT: 'right',\n} as const\n\nexport type Alignment = typeof Alignments[keyof typeof Alignments]\n\ntype Props = {\n id?: ElementIDValue\n tableId?: TableValue\n fields?: TableFormFieldsValue\n submitLink?: LinkValue\n gap?: GapYValue\n shape?: ResponsiveIconRadioGroupValue<Shape>\n size?: ResponsiveIconRadioGroupValue<Size>\n contrast?: ResponsiveIconRadioGroupValue<Contrast>\n labelTextStyle?: TextStyleValue\n labelTextColor?: ResponsiveColorValue\n submitTextStyle?: TextStyleValue\n brandColor?: ResponsiveColorValue\n submitTextColor?: ResponsiveColorValue\n submitLabel?: TextInputValue\n submitVariant?: ResponsiveSelectValue<\n 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n >\n submitWidth?: ResponsiveLengthValue\n submitAlignment?: ResponsiveIconRadioGroupValue<Alignment>\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst GridForm = styled.form<{\n size: Props['size']\n width: Props['width']\n margin: Props['margin']\n}>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n ${props =>\n cssMediaRules(\n [props.size],\n ([size = Sizes.MEDIUM]) => css`\n font-size: ${getSizeFontSize(size)}px;\n `,\n )}\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst GridItem = styled.div`\n align-self: flex-end;\n flex-direction: column;\n ${cssGridItem()}\n`\n\nfunction getAlignmentMargin(alignment: Alignment): string {\n switch (alignment) {\n case Alignments.LEFT:\n return '0 auto 0 0'\n case Alignments.RIGHT:\n return '0 0 0 auto'\n default:\n return '0 auto'\n }\n}\n\nconst StyledButton = styled((props: ComponentPropsWithoutRef<typeof Button>) => (\n <Button {...props} as=\"button\" />\n))<{\n size: Props['size']\n alignment: Props['submitAlignment']\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n ${props =>\n cssMediaRules(\n [props.size, props.alignment] as const,\n ([size = Sizes.MEDIUM, alignment = Alignments.CENTER]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n margin: ${getAlignmentMargin(alignment)};\n padding-top: 0;\n padding-bottom: 0;\n `,\n )}\n`\n\nconst ErrorContainer = styled.div`\n padding: 8px 16px;\n background-color: #f19eb9;\n border-radius: 4px;\n margin-top: 16px;\n`\n\nconst IconContainer = styled.div`\n fill: currentColor;\n`\n\nconst ErrorMessage = styled.p`\n font-size: 12px;\n margin: 8px 0;\n color: rgba(127, 0, 0, 0.95);\n`\n\nfunction getTableColumnDefaultValue(tableColumn: TableColumn) {\n switch (tableColumn.__typename) {\n case 'CheckboxTableColumn':\n return false\n\n case 'MultipleSelectTableColumn':\n return []\n\n case 'SingleLineTextTableColumn':\n case 'LongTextTableColumn':\n case 'SingleSelectTableColumn':\n case 'PhoneNumberTableColumn':\n case 'EmailTableColumn':\n case 'URLTableColumn':\n case 'NumberTableColumn':\n default:\n return ''\n }\n}\n\nconst CREATE_TABLE_RECORD = gql`\n mutation CreateTableRecord($input: CreateTableRecordInput!) {\n createTableRecord(input: $input) {\n tableRecord {\n id\n }\n }\n }\n`\n\ntype Column = { columnId: string; data: Record<string, any> }\ntype Fields = Record<string, string | string[] | boolean>\n\ntype Descriptors = { fields?: TableFormFieldsDescriptor }\n\nconst Form = forwardRef(function Form(\n {\n id,\n tableId,\n fields: fieldsProp,\n submitLabel = 'Submit',\n submitLink,\n shape,\n size,\n contrast,\n brandColor,\n gap,\n width,\n margin,\n submitTextStyle,\n submitVariant,\n submitTextColor,\n submitWidth,\n submitAlignment,\n labelTextStyle,\n labelTextColor,\n }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const fields = useMemo(() => fieldsProp?.fields ?? [], [fieldsProp])\n const grid = useMemo(() => fieldsProp?.grid ?? [], [fieldsProp])\n const { data: { table } = {} } = useTable(tableId)\n const [createTableRecord] = useMutation(CREATE_TABLE_RECORD)\n const [refEl, setRefEl] = useState<HTMLElement | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const [initialValues, setInitialValues] = useState<Fields>(() =>\n fields.reduce((acc, formField) => {\n const tableColumn = table && table.columns.find(field => field.id === formField.tableColumnId)\n const defaultValue = formField ? formField.defaultValue : null\n\n if (tableColumn) {\n acc[tableColumn.name] =\n defaultValue == null ? getTableColumnDefaultValue(tableColumn) : defaultValue\n }\n\n return acc\n }, {} as Fields),\n )\n const controller = propControllers?.fields\n const { container, items } = useTableFormFieldRefs(controller, { fieldsCount: fields.length })\n const [isDone, setIsDone] = useState(false)\n const linkRef = useRef<HTMLAnchorElement>(null)\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n return refEl instanceof Element ? getBox(refEl) : null\n },\n setPropControllers,\n }),\n [refEl, setPropControllers],\n )\n\n useEffect(() => {\n container(refEl)\n }, [container, refEl])\n\n useEffect(() => {\n if (!isDone) return\n\n let timeoutId = setTimeout(() => setIsDone(false), 2500)\n\n return () => clearTimeout(timeoutId)\n }, [isDone])\n\n function getTableColumn({ tableColumnId }: any) {\n return table && table.columns.find(field => tableColumnId === field.id)\n }\n\n async function handleSubmit(values: any, { setSubmitting, resetForm, setStatus }: any) {\n if (table) {\n const columns: Column[] = []\n\n fields.forEach(field => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data) {\n columns.push({ columnId: field.tableColumnId, data })\n\n if (field.autofill) {\n localStorage.setItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n JSON.stringify(data),\n )\n }\n }\n }\n })\n\n try {\n await createTableRecord({\n variables: { input: { data: { tableId: table.id, columns } } },\n })\n setIsDone(true)\n setInitialValues(prev =>\n fields.reduce(\n (acc, field) => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data && field.autofill) return { ...acc, [tableColumn.name]: data }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n resetForm()\n\n if (linkRef.current != null) linkRef.current.click()\n } catch (error) {\n setStatus({ error: 'An unexpected error has occurred, please try again later' })\n } finally {\n setSubmitting(false)\n }\n }\n }\n\n useEffect(() => {\n setInitialValues(prev =>\n fields.reduce(\n (acc, formField) => {\n const tableColumn =\n table && table.columns.find(field => field.id === formField.tableColumnId)\n\n if (tableColumn && formField.autofill) {\n const storedValue = localStorage.getItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n )\n\n if (storedValue) {\n try {\n acc[tableColumn.name] = JSON.parse(storedValue)\n } catch (e) {\n // Ignore\n }\n }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n }, [fields, table])\n\n const brandColorData = useColor(brandColor)\n\n return (\n <FormContextProvider\n value={{ shape, size, contrast, brandColor: brandColorData, labelTextStyle, labelTextColor }}\n >\n {tableId == null ? (\n <Placeholder ref={setRefEl} width={width} margin={margin} />\n ) : (\n <>\n <Formik\n onSubmit={handleSubmit}\n initialValues={initialValues}\n initialStatus={{ error: null }}\n enableReinitialize\n >\n {formik => {\n const error = formik.status && formik.status.error\n const errors = fields\n .map(field => {\n const tableColumn = getTableColumn(field)\n\n return (\n tableColumn &&\n getIn(formik.touched, tableColumn.name) &&\n getIn(formik.errors, tableColumn.name)\n )\n })\n .filter(message => typeof message === 'string')\n\n return (\n <>\n <GridForm\n ref={setRefEl}\n id={id}\n width={width}\n margin={margin}\n size={size}\n onSubmit={formik.handleSubmit}\n onReset={formik.handleReset}\n noValidate\n >\n {fields.map((field, index) => {\n const tableColumn = getTableColumn(field)\n\n return (\n <GridItem\n key={field.id}\n ref={items[index]}\n grid={grid}\n index={index}\n rowGap={gap}\n columnGap={gap}\n >\n <Field tableColumn={tableColumn} tableFormField={field} />\n </GridItem>\n )\n })}\n <GridItem\n ref={items[fields.length]}\n grid={grid}\n index={fields.length}\n rowGap={gap}\n columnGap={gap}\n >\n <StyledButton\n type=\"submit\"\n disabled={formik.isSubmitting || isDone}\n shape={shape}\n size={size}\n color={brandColor}\n variant={submitVariant}\n textColor={submitTextColor}\n width={submitWidth}\n alignment={submitAlignment}\n textStyle={submitTextStyle}\n >\n {formik.isSubmitting ? (\n <Spinner />\n ) : isDone ? (\n <IconContainer>\n <Check12 />\n </IconContainer>\n ) : (\n submitLabel\n )}\n </StyledButton>\n {(errors.length > 0 || error) && (\n <ErrorContainer>\n {errors.map(message => (\n <ErrorMessage key={message}>{message}</ErrorMessage>\n ))}\n {error != null && <ErrorMessage>{error}</ErrorMessage>}\n </ErrorContainer>\n )}\n </GridItem>\n </GridForm>\n {submitLink != null && <Link ref={linkRef} hidden link={submitLink} />}\n </>\n )\n }}\n </Formik>\n </>\n )}\n </FormContextProvider>\n )\n})\n\nexport default Form\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Form, {\n type: './components/Form/index.js',\n label: 'Form',\n icon: 'Form40',\n props: {\n id: Props.ElementID(),\n tableId: Props.Table(),\n fields: Props.TableFormFields(),\n submitLink: Props.Link({\n label: 'Redirect to',\n options: [\n { value: 'OPEN_PAGE', label: 'Open page' },\n { value: 'OPEN_URL', label: 'Open URL' },\n ],\n // hidden: props.tableId == null,\n }),\n gap: Props.GapY({\n preset: [{ deviceId: 'desktop', value: { value: 10, unit: 'px' } }],\n label: 'Gap',\n defaultValue: { value: 0, unit: 'px' },\n // hidden: props.tableId == null,\n }),\n shape: Props.ResponsiveIconRadioGroup({\n label: 'Shape',\n options: [\n { label: 'Pill', value: Shapes.PILL, icon: 'ButtonPill16' },\n { label: 'Rounded', value: Shapes.ROUNDED, icon: 'ButtonRounded16' },\n { label: 'Square', value: Shapes.SQUARE, icon: 'ButtonSquare16' },\n ],\n defaultValue: Shapes.ROUNDED,\n // hidden: props.tableId == null,\n }),\n size: Props.ResponsiveIconRadioGroup({\n label: 'Size',\n options: [\n { label: 'Small', value: Sizes.SMALL, icon: 'SizeSmall16' },\n { label: 'Medium', value: Sizes.MEDIUM, icon: 'SizeMedium16' },\n { label: 'Large', value: Sizes.LARGE, icon: 'SizeLarge16' },\n ],\n defaultValue: Sizes.MEDIUM,\n // hidden: props?.tableId == null,\n }),\n contrast: Props.ResponsiveIconRadioGroup({\n label: 'Color',\n options: [\n { label: 'Light mode', value: Contrasts.LIGHT, icon: 'Sun16' },\n { label: 'Dark mode', value: Contrasts.DARK, icon: 'Moon16' },\n ],\n defaultValue: Contrasts.LIGHT,\n // hidden: props.tableId == null,\n }),\n labelTextStyle: Props.TextStyle({ label: 'Label text style' }),\n labelTextColor: Props.ResponsiveColor({\n label: 'Label text color',\n }),\n // labelTextColor: Props.ResponsiveColor((props, device) => {\n // const hidden = props.tableId == null\n // const responsiveContrast = props.contrast as ResponsiveValue<Contrast>\n // const contrast = findDeviceOverride<Contrast>(responsiveContrast, device)\n\n // return {\n // hidden,\n // label: 'Label text color',\n // placeholder:\n // contrast?.value === Contrasts.DARK ? 'rgba(255,255,255,0.95)' : 'rgba(0,0,0,0.8)',\n // }\n // }),\n submitTextStyle: Props.TextStyle({ label: 'Button text style' }),\n brandColor: Props.ResponsiveColor({\n label: 'Button color',\n placeholder: 'black',\n // hidden: props.tableId == null,\n // TODO: Add hideAlphaSlider\n }),\n submitTextColor: Props.ResponsiveColor({\n label: 'Button text color',\n placeholder: 'white',\n // hidden: props.tableId == null,\n }),\n submitLabel: Props.TextInput({\n label: 'Button label',\n placeholder: 'Submit',\n // hidden: props.tableId == null,\n }),\n submitVariant: Props.ResponsiveSelect({\n label: 'Button style',\n options: [\n { value: 'flat', label: 'Flat' },\n { value: 'outline', label: 'Outline' },\n { value: 'shadow', label: 'Floating' },\n { value: 'clear', label: 'Clear' },\n { value: 'blocky', label: 'Blocky' },\n { value: 'bubbly', label: 'Bubbly' },\n { value: 'skewed', label: 'Skewed' },\n ],\n defaultValue: 'flat',\n // hidden: props.tableId == null,\n }),\n submitWidth: Props.ResponsiveLength({\n label: 'Button width',\n // hidden: props.tableId == null,\n // TODO: Add placeholder: { value: 'auto' }\n }),\n submitAlignment: Props.ResponsiveIconRadioGroup({\n label: 'Button alignment',\n options: [\n { label: 'Left', value: Alignments.LEFT, icon: 'AlignLeft16' },\n { label: 'Center', value: Alignments.CENTER, icon: 'AlignCenter16' },\n { label: 'Right', value: Alignments.RIGHT, icon: 'AlignRight16' },\n ],\n defaultValue: Alignments.CENTER,\n // hidden: props.tableId == null,\n }),\n width: Props.Width({\n preset: [{ deviceId: 'desktop', value: { value: 550, unit: 'px' } }],\n defaultValue: { value: 100, unit: '%' },\n }),\n margin: Props.Margin(),\n },\n })\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+CiAgPHBhdGggZD0iTTI3IDE1SDFhMSAxIDAgMCAxLTEtMSAxIDEgMCAwIDEgMS0xaDI2YTEgMSAwIDAgMSAxIDEgMSAxIDAgMCAxLTEgMXptMC0xMEgxYTEgMSAwIDAgMC0xIDEgMSAxIDAgMCAwIDEgMWgyNmExIDEgMCAwIDAgMS0xIDEgMSAwIDAgMC0xLTF6bTAgMTZIMWExIDEgMCAwIDAtMSAxIDEgMSAwIDAgMCAxIDFoMjZhMSAxIDAgMCAwIDEtMSAxIDEgMCAwIDAtMS0xeiIvPgo8L3N2Zz4=\"","import styled, { css } from 'styled-components'\n\nimport { ResponsiveValue, Length } from '../../../prop-controllers/descriptors'\nimport { cssMediaRules } from '../../utils/cssMediaRules'\n\nconst GutterContainer = styled.div<{\n gutter?: ResponsiveValue<Length>\n first: boolean\n last: boolean\n}>`\n ${p =>\n cssMediaRules(\n [p.gutter],\n ([gutter = { value: 0, unit: 'px' }]) => css`\n padding-left: ${p.first ? '0px' : `${gutter.value / 2}${gutter.unit}`};\n padding-right: ${p.last ? '0px' : `${gutter.value / 2}${gutter.unit}`};\n `,\n )}\n`\n\nexport default GutterContainer\n","import styled from 'styled-components'\n\nimport { ResponsiveLengthValue } from '../../../../../prop-controllers/descriptors'\nimport GutterContainer from '../../../../shared/GutterContainer'\n\nconst PlaceholderLink = styled.div<{ width: number; button?: boolean }>`\n width: ${props => props.width}px;\n height: ${props => (props.button === true ? 32 : 8)}px;\n background-color: #a1a8c2;\n border-radius: ${props => (props.button === true ? 6 : 2)}px;\n opacity: 0.4;\n`\n\ntype Props = { gutter?: ResponsiveLengthValue }\n\nconst links = [{ width: 50 }, { width: 70 }, { width: 60 }, { width: 80, button: true }]\n\nexport default function LinksPlaceholder({ gutter }: Props): JSX.Element {\n return (\n <>\n {links.map((link, i) => (\n <GutterContainer key={i} gutter={gutter} first={i === 0} last={i === links.length - 1}>\n <PlaceholderLink {...link} />\n </GutterContainer>\n ))}\n </>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xIDJhMSAxIDAgMCAwLS43MDcgMS43MDdsMyAzYTEgMSAwIDAgMCAxLjQxNCAwbDMtM0ExIDEgMCAwIDAgNyAySDF6Ii8+PC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00IDBhMSAxIDAgMCAwLTEgMXYySDFhMSAxIDAgMSAwIDAgMmgydjJhMSAxIDAgMCAwIDIgMFY1aDJhMSAxIDAgMCAwIDAtMkg1VjFhMSAxIDAgMCAwLTEtMXoiLz48L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik01IDFhMSAxIDAgMCAwLTIgMHYzLjU4NmwtLjI5My0uMjkzYTEgMSAwIDAgMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMCAwIDEuNDE0IDBsMi0yYTEgMSAwIDAgMC0xLjQxNC0xLjQxNEw1IDQuNTg2VjF6Ii8+PC9zdmc+\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNLjI5MyAyLjI5M2ExIDEgMCAwIDEgMS40MTQgMEw0IDQuNTg2bDIuMjkzLTIuMjkzYTEgMSAwIDAgMSAxLjQxNCAxLjQxNGwtMyAzYTEgMSAwIDAgMS0xLjQxNCAwbC0zLTNhMSAxIDAgMCAxIDAtMS40MTR6Ii8+PC9zdmc+\"","import { ComponentPropsWithoutRef, useRef, useState, useLayoutEffect } from 'react'\nimport styled, { css, keyframes } from 'styled-components'\n\nimport { ReactComponent as CaretDown8 } from '../../../../icons/caret-down-8.svg'\nimport { ReactComponent as Plus8 } from '../../../../icons/plus-8.svg'\nimport { ReactComponent as ArrowDown8 } from '../../../../icons/arrow-down-8.svg'\nimport { ReactComponent as ChevronDown8 } from '../../../../icons/chevron-down-8.svg'\nimport { cssMediaRules } 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","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport ReactPlayer from 'react-player'\nimport {\n BorderRadiusValue,\n ElementIDValue,\n MarginValue,\n VideoValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssBorderRadius, cssMargin, cssWidth } from '../../utils/cssMediaRules'\nimport { placeholders } from '../../utils/placeholders'\nimport { ReactRuntime } from '../../../react'\nimport { Props } from '../../../prop-controllers'\n\ntype Props = {\n id?: ElementIDValue\n video?: VideoValue\n width?: WidthValue\n margin?: MarginValue\n borderRadius?: BorderRadiusValue\n}\n\nconst Container = styled.div<{\n width: Props['width']\n margin: Props['margin']\n borderRadius: Props['borderRadius']\n}>`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n ${cssWidth('560px')}\n ${cssMargin()}\n ${cssBorderRadius()}\n`\n\nconst ASPECT_RATIO = 16 / 9\n\nconst Video = forwardRef(function Video(\n { id, video, width, margin, borderRadius }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const canPlayUrl = video && video.url != null && ReactPlayer.canPlay(video.url)\n\n return (\n <Container ref={ref} id={id} width={width} margin={margin} borderRadius={borderRadius}>\n <div style={{ position: 'relative', paddingTop: `${100 / ASPECT_RATIO}%` }}>\n <div style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>\n {canPlayUrl === true ? (\n <ReactPlayer\n {...video}\n width=\"100%\"\n height=\"100%\"\n config={{\n vimeo: { playerOptions: { background: video != null && !video.controls } },\n wistia: {\n options: {\n endVideoBehavior: video != null && video.loop === true ? 'loop' : 'default',\n },\n },\n }}\n />\n ) : (\n <img width=\"100%\" src={placeholders.video.src} alt=\"Video Placeholder\" />\n )}\n </div>\n </div>\n </Container>\n )\n})\n\nexport default Video\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(Video, {\n type: './components/Video/index.js',\n label: 'Video',\n icon: 'Video40',\n props: {\n id: Props.ElementID(),\n video: Props.Video({ preset: { controls: true } }),\n width: Props.Width({ defaultValue: { value: 560, unit: 'px' } }),\n margin: Props.Margin(),\n borderRadius: Props.BorderRadius(),\n },\n })\n}\n","export * from './Box'\nexport { default as Box } from './Box'\nexport { default as Button } from './Button'\nexport { default as Carousel } from './Carousel'\nexport { default as Countdown } from './Countdown'\nexport { default as Divider } from './Divider'\nexport { default as Embed } from './Embed'\nexport { default as Form } from './Form'\nexport { default as Image } from './Image'\nexport { default as Navigation } from './Navigation'\nexport { default as Root } from './Root'\nexport { default as SocialLinks } from './SocialLinks'\nexport { default as Text } from './Text'\n\nimport { ReactRuntime } from '../../react'\nimport { registerComponent as registerBoxComponent } from './Box'\nimport { registerComponent as registerButtonComponent } from './Button'\nimport { registerComponent as registerCarouselComponent } from './Carousel'\nimport { registerComponent as registerCountdownComponent } from './Countdown'\nimport { registerComponent as registerDividerComponent } from './Divider'\nimport { registerComponent as registerEmbedComponent } from './Embed'\nimport { registerComponent as registerFormComponent } from './Form'\nimport { registerComponent as registerImageComponent } from './Image'\nimport { registerComponent as registerNavigationComponent } from './Navigation'\nimport { registerComponent as registerRootComponent } from './Root'\nimport { registerComponent as registerSocialLinksComponent } from './SocialLinks'\nimport { registerComponent as registerTextComponent } from './Text'\nimport { registerComponent as registerVideoComponent } from './Video'\n\nexport function registerBuiltinComponents(runtime: ReactRuntime) {\n const unregisterBoxComponent = registerBoxComponent(runtime)\n const unregisterButtonComponent = registerButtonComponent(runtime)\n const unregisterCarouselComponent = registerCarouselComponent(runtime)\n const unregisterCountdownComponent = registerCountdownComponent(runtime)\n const unregisterDividerComponent = registerDividerComponent(runtime)\n const unregisterEmbedComponent = registerEmbedComponent(runtime)\n const unregisterFormComponent = registerFormComponent(runtime)\n const unregisterImageComponent = registerImageComponent(runtime)\n const unregisterNavigationComponent = registerNavigationComponent(runtime)\n const unregisterRootComponent = registerRootComponent(runtime)\n const unregisterSocialLinksComponent = registerSocialLinksComponent(runtime)\n const unregisterTextComponent = registerTextComponent(runtime)\n const unregisterVideoComponent = registerVideoComponent(runtime)\n\n return () => {\n unregisterBoxComponent()\n unregisterButtonComponent()\n unregisterCarouselComponent()\n unregisterCountdownComponent()\n unregisterDividerComponent()\n unregisterEmbedComponent()\n unregisterFormComponent()\n unregisterImageComponent()\n unregisterNavigationComponent()\n unregisterRootComponent()\n unregisterSocialLinksComponent()\n unregisterTextComponent()\n unregisterTextComponent()\n unregisterVideoComponent()\n }\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yLjg5ODY0IDE4SDE3LjEwMTRDMTguNDE4MyAxOCAxOS4yNjMzIDE2LjYwMDMgMTguNjUgMTUuNDM0OUwxMS41NDg2IDEuOTQyMzZDMTAuODkyNSAwLjY5NTc3IDkuMTA3NDkgMC42OTU3NjYgOC40NTEzOSAxLjk0MjM2TDEuMzUwMDMgMTUuNDM0OUMwLjczNjY5MiAxNi42MDAzIDEuNTgxNzQgMTggMi44OTg2NCAxOFpNOSA2QzkgNS40NDc3MiA5LjQ0NzcxIDUgMTAgNUMxMC41NTIzIDUgMTEgNS40NDc3MiAxMSA2VjExQzExIDExLjU1MjMgMTAuNTUyMyAxMiAxMCAxMkM5LjQ0NzcxIDEyIDkgMTEuNTUyMyA5IDExVjZaTTExLjI1IDE0Ljc1QzExLjI1IDE1LjQ0MDQgMTAuNjkwNCAxNiAxMCAxNkM5LjMwOTY0IDE2IDguNzUgMTUuNDQwNCA4Ljc1IDE0Ljc1QzguNzUgMTQuMDU5NiA5LjMwOTY0IDEzLjUgMTAgMTMuNUMxMC42OTA0IDEzLjUgMTEuMjUgMTQuMDU5NiAxMS4yNSAxNC43NVoiIC8+Cjwvc3ZnPgo=\"","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport { ReactComponent as Warning20 } from '../../icons/warning-20.svg'\n\nconst ErrorDiv = styled('div')`\n width: 100%;\n height: 54px;\n background-color: #fcedf2;\n border-radius: 6px;\n padding: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #c73e6d;\n fill: currentColor;\n font-family: Heebo, sans-serif;\n font-size: 16px;\n`\n\ntype Props = {\n text: string\n}\n\nexport const FallbackComponent = forwardRef(function FallbackComponent(\n { text }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <ErrorDiv ref={ref}>\n <Warning20 />\n <span>{text}</span>\n </ErrorDiv>\n )\n})\n","import {\n ComponentPropsWithoutRef,\n createContext,\n forwardRef,\n memo,\n ReactNode,\n Ref,\n useContext,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\nimport { gql } from '@apollo/client'\n\nimport * as ReactPage from '../state/react-page'\nimport type * as ReactBuilderPreview from '../state/react-builder-preview'\nimport {\n mountComponentEffect,\n registerComponentEffect,\n registerComponentHandleEffect,\n registerReactComponentEffect,\n} from '../state/actions'\nimport type {\n PropControllerDescriptor,\n PropControllerDescriptorValueType,\n} from '../prop-controllers'\nimport { ComponentIcon } from '../state/modules/components-meta'\nimport { registerBuiltinComponents } from '../components'\nimport { MakeswiftProvider, MakeswiftClient, useQuery } from '../api/react'\nimport { FallbackComponent } from '../components/shared/FallbackComponent'\n\nconst contextDefaultValue = ReactPage.configureStore()\n\nexport interface ReactRuntime {\n registerComponent<\n P extends Record<string, PropControllerDescriptor>,\n C extends ReactPage.ComponentType<{ [K in keyof P]?: PropControllerDescriptorValueType<P[K]> }>,\n >(\n component: C,\n meta: { type: string; label: string; icon?: ComponentIcon; hidden?: boolean; props?: P },\n ): () => void\n}\n\nexport function createReactRuntime(store: ReactPage.Store): ReactRuntime {\n return {\n registerComponent(component, { type, label, icon = 'Cube40', hidden = false, props }) {\n const unregisterComponent = store.dispatch(\n registerComponentEffect(type, { label, icon, hidden }, props ?? {}),\n )\n\n const unregisterReactComponent = store.dispatch(\n registerReactComponentEffect(type, component as unknown as ReactPage.ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n },\n }\n}\n\nexport const ReactRuntime = createReactRuntime(contextDefaultValue)\n\nconst Context = createContext(contextDefaultValue)\n\ntype RuntimeProviderProps = {\n client: MakeswiftClient\n defaultRootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n}\n\nexport function RuntimeProvider({\n client,\n children,\n defaultRootElements,\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\n return store\n })\n\n useEffect(() => {\n return registerBuiltinComponents(createReactRuntime(store))\n }, [store])\n\n useEffect(() => {\n // TODO(miguel): perform a more robust validation.\n const isInBuilder = window.parent !== window\n\n if (isInBuilder) setReactBuilderPreviewStore()\n\n async function setReactBuilderPreviewStore(): Promise<void> {\n const ReactBuilderPreview = await import('../state/react-builder-preview')\n\n setStore(store =>\n ReactBuilderPreview.configureStore({\n preloadedState: store.getState(),\n client: client.apolloClient,\n }),\n )\n }\n }, [client])\n\n useEffect(() => {\n // TODO(miguel): perform a more robust validation.\n const isInBuilder = window.parent !== window\n\n if (!isInBuilder) return\n\n // TODO(miguel): Uncomment the lines below once we figure out how to make it so that we can hide\n // the scrollbar in the builder without preventing scrolling in preview mode.\n // const lastDocumentOverflow = window.document.documentElement.style.overflow\n // window.document.documentElement.style.overflow = 'hidden'\n window.addEventListener('focusin', handleFocusIn)\n window.addEventListener('focusout', handlefocusOut)\n\n return () => {\n // window.document.documentElement.style.overflow = lastDocumentOverflow\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 <MakeswiftProvider client={client}>{children}</MakeswiftProvider>\n </Context.Provider>\n )\n}\n\nconst PageContext = createContext<string | null>(null)\n\nfunction usePageIdOrNull(): string | null {\n return useContext(PageContext)\n}\n\nexport function usePageId(): string {\n const pageIdOrNull = usePageIdOrNull()\n\n if (pageIdOrNull == null) throw new Error('`usePageId` must be used with `<PageProvider>`')\n\n return pageIdOrNull\n}\n\ntype PageProviderProps = {\n id: string\n children: ComponentPropsWithoutRef<typeof PageContext['Provider']>['children']\n}\n\nexport function PageProvider({ id, children }: PageProviderProps) {\n return <PageContext.Provider value={id}>{children}</PageContext.Provider>\n}\n\nconst DocumentContext = createContext<string | null>(null)\n\nfunction useDocumentKey(): string | null {\n return useContext(DocumentContext)\n}\n\ntype State = ReactPage.State | ReactBuilderPreview.State\n\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 useDocument(documentKey: string): ReactPage.Document | null {\n return useSelector(state => ReactPage.getDocument(state, documentKey))\n}\n\nexport function useIsInBuilder(): boolean {\n return useSelector(state => ReactPage.getIsInBuilder(state))\n}\n\ntype Dispatch = ReactPage.Dispatch & ReactBuilderPreview.Dispatch\n\nfunction useDispatch(): Dispatch {\n const store = useContext(Context)\n\n return store.dispatch\n}\n\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 <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Component not found\" />\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 const { error, data } = useQuery(\n gql`\n query ElementReferenceGlobalElement($id: ID!) {\n globalElement(id: $id) {\n id\n data\n }\n }\n `,\n { variables: { id: elementReference.value } },\n )\n const globalElementData = data?.globalElement?.data as ReactPage.ElementData | undefined\n const elementReferenceDocument = useDocument(elementReference.key)\n\n if (error != null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Something went wrong!\" />\n }\n\n if (globalElementData == null) {\n return (\n <FallbackComponent\n ref={ref as Ref<HTMLDivElement>}\n text=\"This global component doesn't exist\"\n />\n )\n }\n\n return elementReferenceDocument != null ? (\n <Document document={elementReferenceDocument} ref={ref} />\n ) : (\n <ElementData elementData={globalElementData} ref={ref} />\n )\n }),\n)\n\ntype ElementProps = {\n element: ReactPage.Element\n}\n\nexport const Element = memo(\n forwardRef(function Element({ element }: ElementProps, ref: Ref<unknown>): JSX.Element {\n const elementKey = element.key\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n const [handle, setHandle] = useState<unknown>(null)\n\n useImperativeHandle(ref, () => handle, [handle])\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)\n\ntype DocumentProps = {\n document: ReactPage.Document\n}\n\nconst Document = memo(\n forwardRef(function Document({ document }: DocumentProps, ref: Ref<unknown>): JSX.Element {\n return (\n <DocumentContext.Provider value={document.key}>\n <Element ref={ref} element={document.rootElement} />\n </DocumentContext.Provider>\n )\n }),\n)\n\ntype DocumentReferenceProps = {\n documentReference: ReactPage.DocumentReference\n}\n\nexport const DocumentReference = memo(\n forwardRef(function DocumentReference(\n { documentReference }: DocumentReferenceProps,\n ref: Ref<unknown>,\n ): JSX.Element {\n const document = useDocument(documentReference.key)\n\n if (document == null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Document not found\" />\n }\n\n return <Document ref={ref} document={document} />\n }),\n)\n"],"names":["PlaceholderBase","styled","div","hide","forwardRef","ref","restOfProps","overflow","typePolicies","Query","fields","swatches","existingData","args","toReference","ids","map","id","__typename","file","files","typographies","pagePathnamesById","globalElement","table","PrefetchContext","createContext","useContext","uri","cacheData","cache","InMemoryCache","restore","ApolloClient","MakeswiftClient","constructor","apolloClient","createApolloClient","prefetch","element","uuid","getDataFromTree","_jsx","Map","createDocumentReference","extract","Context","undefined","query","options","client","useApolloQuery","mutation","useApolloMutation","children","defaultExitedProps","opacity","x","y","scale","boxAnimations","none","entered","exited","transition","fadeIn","fadeLeft","type","ease","fadeRight","fadeUp","fadeDown","blurIn","filter","scaleDown","scaleUp","mergeCustomTransitionWithDefault","transitions","props","Object","keys","reduce","a","c","useElementOnScreen","isVisible","setIsVisible","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","set","playSequence","start","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","isPrefetching","useIsPrefetching","value","deviceId","v","reverse","bg","payload","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","property","animateIn","isHiddenBasedOnBoxAnimation","isHiddenBasedOnAnimationType","isHiddenBasedOnItemAnimation","registerComponent","label","Props","icon","defaultValue","preset","unit","hidden","labelOrientation","device","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","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","maxWidth","baseWidth","findDeviceOverride","baseWidthSize","override","sourceSizes","sourceSize","ImageContainer","dimensions","UnoptimizedImage","img","ImageComponent","altText","placeholders","className","fileData","useFile","imageSrc","dataDimensions","measuredDimensions","setMeasuredDimensions","isInBuilder","useIsInBuilder","cleanedUp","then","naturalWidth","naturalHeight","catch","console","imageSizes","LeftChevron","RightChevron","Wrapper","Arrow","Slop","Slide","pageSize","Reel","gap","Page","LeftSlop","RightSlop","ClipMask","Dots","Dot","active","SWIPE_THRESHOLD","swipePower","dx","velocity","Carousel","images","responsivePageSize","responsiveStep","slideAlignment","showDots","showArrows","arrowPosition","arrowColor","arrowBackground","dotColor","autoplay","slideBorder","slideBorderRadius","setIndex","swipe","startIndex","wrap","endIndex","pageCount","ceil","pageIndex","isFirstPage","isLastPage","paginate","pageDistance","direction","abs","remaining","slice","distance","animation","stiffness","bindPage","useGesture","onDrag","movement","mx","delta","onDragEnd","drag","axis","bounds","rubberband","intervalId","setInterval","clearInterval","_jsxs","imageProps","Array","from","_","i","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","getContrastColor","Sizes","SMALL","MEDIUM","LARGE","Base","input","cssField","getSizeHeight","form","contrast","brandColor","useFormContext","Input","display","flexDirection","justifyContent","Contrasts","LIGHT","DARK","labelTextStyle","labelTextColor","hideLabel","textarea","h","s","l","Color","isLight","getSize","FakeCheckbox","getContrastBorderColor","getContrastBackgroundColor","HiddenCheckbox","getCheckmarkColor","StyledLabel","getInputSizeHeight","CheckboxContainer","span","handleChange","setFieldValue","checked","MainLabel","tableColumn","required","onChange","validity","valueMissing","typeMismatch","option","includes","FakeRadioButton","HiddenRadioButton","attrs","RadioButtonContainer","getSizeHorizontalPadding","Select","select","getLabelSizeHeight","Shapes","ROUNDED","getShapeBorderRadius","SingleLineTextTableField","LongTextTableField","CheckboxTableField","MultipleSelectTableField","SingleSelectTableField","PhoneNumberTableField","EmailTableField","URLTableField","NumberTableField","tableFormField","TableColumnField","getTableColumnField","errorMessage","getTypeMismatchErrorMessage","FormikField","field","getIn","touched","errors","spin","keyframes","Icon","Spinner20","LOCAL_STORAGE_NAMESPACE","Alignments","LEFT","CENTER","RIGHT","GridForm","getSizeFontSize","alignment","getAlignmentMargin","ErrorContainer","IconContainer","ErrorMessage","CREATE_TABLE_RECORD","gql","Form","tableId","fieldsProp","submitLabel","submitLink","submitTextStyle","submitVariant","submitTextColor","submitWidth","submitAlignment","useMemo","grid","data","useTable","createTableRecord","useMutation","refEl","setRefEl","propControllers","setPropControllers","initialValues","setInitialValues","acc","formField","tableColumnId","getTableColumnDefaultValue","controller","items","useTableFormFieldRefs","fieldsCount","isDone","setIsDone","linkRef","getBox","timeoutId","setTimeout","clearTimeout","values","setSubmitting","resetForm","setStatus","getTableColumn","columnId","autofill","setItem","JSON","stringify","variables","prev","click","storedValue","localStorage","getItem","brandColorData","FormContextProvider","handleSubmit","formik","status","message","handleReset","isSubmitting","Check12","PILL","SQUARE","GutterContainer","gutter","first","last","PlaceholderLink","button","links","DROP_DOWN_MENU_WIDTH","DropDownMenu","dropIn","DropDownContainer","StyledDropDownItem","fontWeight","fontStyle","letterSpacing","textTransform","caret","setPosition","innerWidth","offsetLeft","fill","CaretDown8","Plus8","ArrowDown8","ChevronDown8","DropDownItem","open","ButtonLink","StyledLink","onClose","isOpen","setIsOpen","coverRight","coverLeft","CloseIconContainer","closeIconColor","Times16","flexShrink","Fragment","DropDownButton","nav","LinksContainer","mobileMenuAnimation","OpenIconContainer","Navigation","linkTextStyle","showLogo","logoFile","logoWidth","logoAltText","logoLink","mobileMenuOpenIconColor","mobileMenuCloseIconColor","mobileMenuBackgroundColor","flexGrow","MobileMenu28","Normalize","createGlobalStyle","normalize","Root","SocialLinksOptions","LogoAngellist20","LogoCodepen20","LogoDribbble20","LogoFacebook20","LogoGithub20","LogoInstagram20","LogoLinkedin20","LogoMedium20","LogoPinterest20","LogoReddit20","LogoRss20","LogoSnapchat20","LogoSoundcloud20","LogoSpotify20","LogoTelegram20","LogoTumblr20","LogoTwitch20","LogoTwitter20","LogoWhatsapp20","LogoVimeo20","LogoYelp20","LogoYoutube20","hoverStyle","circle","naked","grow","shrink","fade","SocialLinks","fillData","backgroundColorData","o","Span","typographyStyle","fontFamily","lineHeight","uppercase","underline","strikethrough","italic","Boolean","shallowMergeFallbacks","useTypographyMark","TYPOGRAPHY_TYPE","renderMark","mark","_editor","next","get","StyledBlock","textAlign","as","renderBlock","blockProps","renderInline","toJS","RichTextEditor","plugins","Lists","Inlines","DeviceOverridesBlocks","DeviceOverridesMarks","SlateEditor","StyledRichTextEditor","defaultText","object","COMMIT_DEBOUNCE_DELAY","Text","text","editor","setEditor","el","findDOMNode","setSlateEditor","setValue","selection","textWithoutSelection","Value","fromJSON","shouldCommit","setShouldCommit","nextValue","currentValue","isBlurred","toJSON","preserveSelection","window","change","lastController","handleFocus","focus","handleKeyDown","Hotkeys","isUndo","undo","isRedo","redo","ipsum","marks","ASPECT_RATIO","Video","video","canPlayUrl","controls","loop","registerBoxComponent","registerButtonComponent","registerCarouselComponent","registerCountdownComponent","registerDividerComponent","registerEmbedComponent","registerFormComponent","registerImageComponent","registerNavigationComponent","registerRootComponent","registerSocialLinksComponent","registerTextComponent","registerVideoComponent","ErrorDiv","FallbackComponent","Warning20","contextDefaultValue","ReactPage","store","component","unregisterComponent","dispatch","registerComponentEffect","unregisterReactComponent","registerReactComponentEffect","ReactRuntime","createReactRuntime","defaultRootElements","setStore","preloadedState","getState","rootElements","registerBuiltinComponents","ReactBuilderPreview","configureStore","handleFocusIn","handlefocusOut","HTMLElement","relatedTarget","PageContext","pageIdOrNull","usePageIdOrNull","DocumentContext","selector","useSyncExternalStoreWithSelector","subscribe","useSelector","state","documentKey","useDocumentKey","ElementData","memo","elementData","Component","useComponent","ElementReference","elementReference","useQuery","globalElementData","elementReferenceDocument","useDocument","useDispatch","registerComponentHandleEffect","mountComponentEffect","Document","rootElement","DocumentReference","documentReference"],"mappings":"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"}