@makeswift/runtime 0.0.0-55b44ab → 0.0.0-5c3c3d6

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 (316) hide show
  1. package/api.js +1 -0
  2. package/box-model.js +1 -0
  3. package/components.js +1 -0
  4. package/dist/actions.cjs.js +88 -16
  5. package/dist/actions.cjs.js.map +1 -1
  6. package/dist/actions.es.js +79 -16
  7. package/dist/actions.es.js.map +1 -1
  8. package/dist/api.cjs.js +6 -0
  9. package/dist/api.cjs.js.map +1 -0
  10. package/dist/api.es.js +2 -0
  11. package/dist/api.es.js.map +1 -0
  12. package/dist/box-models.cjs.js +24 -14
  13. package/dist/box-models.cjs.js.map +1 -1
  14. package/dist/box-models.es.js +24 -14
  15. package/dist/box-models.es.js.map +1 -1
  16. package/dist/components.cjs.js +38 -6898
  17. package/dist/components.cjs.js.map +1 -1
  18. package/dist/components.es.js +10 -6866
  19. package/dist/components.es.js.map +1 -1
  20. package/dist/constants.cjs.js +146 -0
  21. package/dist/constants.cjs.js.map +1 -0
  22. package/dist/constants.es.js +145 -0
  23. package/dist/constants.es.js.map +1 -0
  24. package/dist/deepEqual.cjs.js +40 -0
  25. package/dist/deepEqual.cjs.js.map +1 -0
  26. package/dist/deepEqual.es.js +39 -0
  27. package/dist/deepEqual.es.js.map +1 -0
  28. package/dist/descriptors.cjs.js +216 -0
  29. package/dist/descriptors.cjs.js.map +1 -0
  30. package/dist/descriptors.es.js +184 -0
  31. package/dist/descriptors.es.js.map +1 -0
  32. package/dist/immutable.es.cjs.js +4459 -0
  33. package/dist/immutable.es.cjs.js.map +1 -0
  34. package/dist/immutable.es.es.js +4450 -0
  35. package/dist/immutable.es.es.js.map +1 -0
  36. package/dist/instances.cjs.js +89 -0
  37. package/dist/instances.cjs.js.map +1 -0
  38. package/dist/instances.es.js +87 -0
  39. package/dist/instances.es.js.map +1 -0
  40. package/dist/main.cjs.js +4 -0
  41. package/dist/main.cjs.js.map +1 -1
  42. package/dist/main.es.js +1 -1
  43. package/dist/prop-controllers.cjs.js +4 -173
  44. package/dist/prop-controllers.cjs.js.map +1 -1
  45. package/dist/prop-controllers.es.js +2 -173
  46. package/dist/prop-controllers.es.js.map +1 -1
  47. package/dist/react-builder-preview.cjs.js +208 -35
  48. package/dist/react-builder-preview.cjs.js.map +1 -1
  49. package/dist/react-builder-preview.es.js +215 -42
  50. package/dist/react-builder-preview.es.js.map +1 -1
  51. package/dist/react.cjs.js +9 -0
  52. package/dist/react.cjs.js.map +1 -1
  53. package/dist/react.cjs2.js +33707 -583
  54. package/dist/react.cjs2.js.map +1 -1
  55. package/dist/react.es.js +9 -1
  56. package/dist/react.es.js.map +1 -1
  57. package/dist/react.es2.js +33638 -565
  58. package/dist/react.es2.js.map +1 -1
  59. package/dist/shallowEqual.cjs.js +24 -0
  60. package/dist/shallowEqual.cjs.js.map +1 -0
  61. package/dist/shallowEqual.es.js +23 -0
  62. package/dist/shallowEqual.es.js.map +1 -0
  63. package/dist/types/api/constants.d.ts +4 -0
  64. package/dist/types/api/constants.d.ts.map +1 -0
  65. package/dist/types/api/generated/graphql.d.ts +61 -0
  66. package/dist/types/api/generated/graphql.d.ts.map +1 -0
  67. package/dist/types/api/getFragment.d.ts +4 -0
  68. package/dist/types/api/getFragment.d.ts.map +1 -0
  69. package/dist/types/api/index.d.ts +3 -0
  70. package/dist/types/api/index.d.ts.map +1 -0
  71. package/dist/types/api/react.d.ts +6 -0
  72. package/dist/types/api/react.d.ts.map +1 -0
  73. package/dist/types/api/types.d.ts +4 -0
  74. package/dist/types/api/types.d.ts.map +1 -0
  75. package/dist/types/codegen-loader.d.ts +2 -0
  76. package/dist/types/codegen-loader.d.ts.map +1 -0
  77. package/dist/types/components/BackgroundsContainer/components/BackgroundVideo/index.d.ts +11 -0
  78. package/dist/types/components/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -0
  79. package/dist/types/components/BackgroundsContainer/components/Backgrounds/index.d.ts +8 -0
  80. package/dist/types/components/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -0
  81. package/dist/types/components/BackgroundsContainer/components/Parallax/index.d.ts +11 -0
  82. package/dist/types/components/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -0
  83. package/dist/types/components/BackgroundsContainer/index.d.ts +11 -0
  84. package/dist/types/components/BackgroundsContainer/index.d.ts.map +1 -0
  85. package/dist/types/components/Box/Box.d.ts +4 -1
  86. package/dist/types/components/Box/Box.d.ts.map +1 -1
  87. package/dist/types/components/Carousel/Carousel.d.ts +25 -0
  88. package/dist/types/components/Carousel/Carousel.d.ts.map +1 -0
  89. package/dist/types/components/Carousel/index.d.ts +2 -0
  90. package/dist/types/components/Carousel/index.d.ts.map +1 -0
  91. package/dist/types/components/Countdown/Countdown.d.ts +24 -0
  92. package/dist/types/components/Countdown/Countdown.d.ts.map +1 -0
  93. package/dist/types/components/Countdown/index.d.ts +2 -0
  94. package/dist/types/components/Countdown/index.d.ts.map +1 -0
  95. package/dist/types/components/Divider/Divider.d.ts +14 -0
  96. package/dist/types/components/Divider/Divider.d.ts.map +1 -0
  97. package/dist/types/components/Divider/index.d.ts +2 -0
  98. package/dist/types/components/Divider/index.d.ts.map +1 -0
  99. package/dist/types/components/Embed/Embed.d.ts +11 -0
  100. package/dist/types/components/Embed/Embed.d.ts.map +1 -0
  101. package/dist/types/components/Embed/index.d.ts +2 -0
  102. package/dist/types/components/Embed/index.d.ts.map +1 -0
  103. package/dist/types/components/Image/Image.d.ts +26 -0
  104. package/dist/types/components/Image/Image.d.ts.map +1 -0
  105. package/dist/types/components/Image/index.d.ts +2 -0
  106. package/dist/types/components/Image/index.d.ts.map +1 -0
  107. package/dist/types/components/Link/index.d.ts +9 -0
  108. package/dist/types/components/Link/index.d.ts.map +1 -0
  109. package/dist/types/components/RichText/index.d.ts +5 -0
  110. package/dist/types/components/RichText/index.d.ts.map +1 -0
  111. package/dist/types/components/Root/Root.d.ts.map +1 -1
  112. package/dist/types/components/builtin/Box/Box.d.ts +33 -0
  113. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -0
  114. package/dist/types/components/builtin/Box/animations.d.ts +69 -0
  115. package/dist/types/components/builtin/Box/animations.d.ts.map +1 -0
  116. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts +7 -0
  117. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -0
  118. package/dist/types/components/builtin/Box/index.d.ts +3 -0
  119. package/dist/types/components/builtin/Box/index.d.ts.map +1 -0
  120. package/dist/types/components/builtin/Button/Button.d.ts +118 -0
  121. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -0
  122. package/dist/types/components/builtin/Button/index.d.ts +2 -0
  123. package/dist/types/components/builtin/Button/index.d.ts.map +1 -0
  124. package/dist/types/components/builtin/Carousel/Carousel.d.ts +28 -0
  125. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -0
  126. package/dist/types/components/builtin/Carousel/index.d.ts +2 -0
  127. package/dist/types/components/builtin/Carousel/index.d.ts.map +1 -0
  128. package/dist/types/components/builtin/Countdown/Countdown.d.ts +27 -0
  129. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -0
  130. package/dist/types/components/builtin/Countdown/index.d.ts +2 -0
  131. package/dist/types/components/builtin/Countdown/index.d.ts.map +1 -0
  132. package/dist/types/components/builtin/Divider/Divider.d.ts +17 -0
  133. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -0
  134. package/dist/types/components/builtin/Divider/index.d.ts +2 -0
  135. package/dist/types/components/builtin/Divider/index.d.ts.map +1 -0
  136. package/dist/types/components/builtin/Embed/Embed.d.ts +14 -0
  137. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -0
  138. package/dist/types/components/builtin/Embed/index.d.ts +2 -0
  139. package/dist/types/components/builtin/Embed/index.d.ts.map +1 -0
  140. package/dist/types/components/builtin/Image/Image.d.ts +29 -0
  141. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -0
  142. package/dist/types/components/builtin/Image/index.d.ts +2 -0
  143. package/dist/types/components/builtin/Image/index.d.ts.map +1 -0
  144. package/dist/types/components/builtin/Navigation/Navigation.d.ts +26 -0
  145. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -0
  146. package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts +100 -0
  147. package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -0
  148. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +8 -0
  149. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -0
  150. package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +101 -0
  151. package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -0
  152. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +13 -0
  153. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -0
  154. package/dist/types/components/builtin/Navigation/index.d.ts +2 -0
  155. package/dist/types/components/builtin/Navigation/index.d.ts.map +1 -0
  156. package/dist/types/components/builtin/Root/Root.d.ts +14 -0
  157. package/dist/types/components/builtin/Root/Root.d.ts.map +1 -0
  158. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts +5 -0
  159. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -0
  160. package/dist/types/components/builtin/Root/index.d.ts +2 -0
  161. package/dist/types/components/builtin/Root/index.d.ts.map +1 -0
  162. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +21 -0
  163. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -0
  164. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +8 -0
  165. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -0
  166. package/dist/types/components/builtin/SocialLinks/index.d.ts +2 -0
  167. package/dist/types/components/builtin/SocialLinks/index.d.ts.map +1 -0
  168. package/dist/types/components/builtin/SocialLinks/options.d.ts +113 -0
  169. package/dist/types/components/builtin/SocialLinks/options.d.ts.map +1 -0
  170. package/dist/types/components/builtin/Text/Text.d.ts +19 -0
  171. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -0
  172. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +24 -0
  173. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
  174. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Link/index.d.ts +9 -0
  175. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Link/index.d.ts.map +1 -0
  176. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +25 -0
  177. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  178. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +13 -0
  179. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  180. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts +5 -0
  181. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
  182. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  183. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  184. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  185. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  186. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +3 -0
  187. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  188. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +3 -0
  189. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
  190. package/dist/types/components/builtin/Text/hooks/useRichText.d.ts +1 -0
  191. package/dist/types/components/builtin/Text/hooks/useRichText.d.ts.map +1 -0
  192. package/dist/types/components/builtin/Text/index.d.ts +2 -0
  193. package/dist/types/components/builtin/Text/index.d.ts.map +1 -0
  194. package/dist/types/components/builtin/Text/prop-controllers.d.ts +286 -0
  195. package/dist/types/components/builtin/Text/prop-controllers.d.ts.map +1 -0
  196. package/dist/types/components/builtin/index.d.ts +15 -0
  197. package/dist/types/components/builtin/index.d.ts.map +1 -0
  198. package/dist/types/components/hooks/index.d.ts +6 -0
  199. package/dist/types/components/hooks/index.d.ts.map +1 -1
  200. package/dist/types/components/hooks/useBackgrounds.d.ts +59 -0
  201. package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -0
  202. package/dist/types/components/hooks/useBorder.d.ts +19 -0
  203. package/dist/types/components/hooks/useBorder.d.ts.map +1 -0
  204. package/dist/types/components/hooks/useBoxShadow.d.ts +19 -0
  205. package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -0
  206. package/dist/types/components/hooks/useColor.d.ts +7 -0
  207. package/dist/types/components/hooks/useColor.d.ts.map +1 -0
  208. package/dist/types/components/hooks/useFile.d.ts +13 -0
  209. package/dist/types/components/hooks/useFile.d.ts.map +1 -0
  210. package/dist/types/components/hooks/usePage.d.ts +7 -0
  211. package/dist/types/components/hooks/usePage.d.ts.map +1 -0
  212. package/dist/types/components/hooks/useRichText.d.ts +18 -0
  213. package/dist/types/components/hooks/useRichText.d.ts.map +1 -0
  214. package/dist/types/components/hooks/useTypography.d.ts +24 -0
  215. package/dist/types/components/hooks/useTypography.d.ts.map +1 -0
  216. package/dist/types/components/index.d.ts +2 -3
  217. package/dist/types/components/index.d.ts.map +1 -1
  218. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +11 -0
  219. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -0
  220. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +8 -0
  221. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -0
  222. package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts +11 -0
  223. package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -0
  224. package/dist/types/components/shared/BackgroundsContainer/index.d.ts +11 -0
  225. package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -0
  226. package/dist/types/components/shared/GutterContainer/index.d.ts +8 -0
  227. package/dist/types/components/shared/GutterContainer/index.d.ts.map +1 -0
  228. package/dist/types/components/shared/Link/index.d.ts +9 -0
  229. package/dist/types/components/shared/Link/index.d.ts.map +1 -0
  230. package/dist/types/components/shared/RichTextEditor/components/Block/index.d.ts +24 -0
  231. package/dist/types/components/shared/RichTextEditor/components/Block/index.d.ts.map +1 -0
  232. package/dist/types/components/shared/RichTextEditor/components/Link/index.d.ts +9 -0
  233. package/dist/types/components/shared/RichTextEditor/components/Link/index.d.ts.map +1 -0
  234. package/dist/types/components/shared/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +23 -0
  235. package/dist/types/components/shared/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  236. package/dist/types/components/shared/RichTextEditor/components/Mark/index.d.ts +13 -0
  237. package/dist/types/components/shared/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  238. package/dist/types/components/shared/RichTextEditor/index.d.ts +5 -0
  239. package/dist/types/components/shared/RichTextEditor/index.d.ts.map +1 -0
  240. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  241. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  242. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  243. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  244. package/dist/types/components/shared/RichTextEditor/plugins/Inlines.d.ts +3 -0
  245. package/dist/types/components/shared/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  246. package/dist/types/components/shared/RichTextEditor/plugins/Link.d.ts +3 -0
  247. package/dist/types/components/shared/RichTextEditor/plugins/Link.d.ts.map +1 -0
  248. package/dist/types/components/utils/colorToString.d.ts +3 -0
  249. package/dist/types/components/utils/colorToString.d.ts.map +1 -0
  250. package/dist/types/components/utils/contants.d.ts +5 -0
  251. package/dist/types/components/utils/contants.d.ts.map +1 -0
  252. package/dist/types/components/utils/cssMediaRules.d.ts +23 -1
  253. package/dist/types/components/utils/cssMediaRules.d.ts.map +1 -1
  254. package/dist/types/components/utils/devices.d.ts +1 -0
  255. package/dist/types/components/utils/devices.d.ts.map +1 -1
  256. package/dist/types/components/utils/intersection.d.ts +4 -0
  257. package/dist/types/components/utils/intersection.d.ts.map +1 -0
  258. package/dist/types/components/utils/isNonNullable.d.ts +2 -0
  259. package/dist/types/components/utils/isNonNullable.d.ts.map +1 -0
  260. package/dist/types/components/utils/keys.d.ts +5 -0
  261. package/dist/types/components/utils/keys.d.ts.map +1 -0
  262. package/dist/types/components/utils/placeholders.d.ts +10 -0
  263. package/dist/types/components/utils/placeholders.d.ts.map +1 -0
  264. package/dist/types/components/utils/queries.d.ts +7 -0
  265. package/dist/types/components/utils/queries.d.ts.map +1 -0
  266. package/dist/types/components/utils/types.d.ts +11 -0
  267. package/dist/types/components/utils/types.d.ts.map +1 -0
  268. package/dist/types/generated/graphql.d.ts +20 -0
  269. package/dist/types/generated/graphql.d.ts.map +1 -0
  270. package/dist/types/index.d.ts +2 -1
  271. package/dist/types/index.d.ts.map +1 -1
  272. package/dist/types/prop-controllers/descriptors.d.ts +38 -2
  273. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  274. package/dist/types/prop-controllers/index.d.ts +3 -1
  275. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  276. package/dist/types/prop-controllers/instances.d.ts +69 -0
  277. package/dist/types/prop-controllers/instances.d.ts.map +1 -0
  278. package/dist/types/prop-controllers/introspection.d.ts +5 -0
  279. package/dist/types/prop-controllers/introspection.d.ts.map +1 -0
  280. package/dist/types/react.d.ts +1 -1
  281. package/dist/types/react.d.ts.map +1 -1
  282. package/dist/types/runtimes/react.d.ts +15 -7
  283. package/dist/types/runtimes/react.d.ts.map +1 -1
  284. package/dist/types/state/actions.d.ts +107 -13
  285. package/dist/types/state/actions.d.ts.map +1 -1
  286. package/dist/types/state/modules/box-models.d.ts +5 -5
  287. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  288. package/dist/types/state/modules/makeswift-api-client.d.ts +17 -0
  289. package/dist/types/state/modules/makeswift-api-client.d.ts.map +1 -0
  290. package/dist/types/state/modules/prop-controller-handles.d.ts +16 -0
  291. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -0
  292. package/dist/types/state/modules/prop-controllers.d.ts +1 -0
  293. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  294. package/dist/types/state/react-builder-preview.d.ts +16 -11
  295. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  296. package/dist/types/state/react-page.d.ts +5 -0
  297. package/dist/types/state/react-page.d.ts.map +1 -1
  298. package/dist/types/types.d.ts +2 -0
  299. package/dist/types/types.d.ts.map +1 -0
  300. package/dist/types/utils/clamp.d.ts +3 -0
  301. package/dist/types/utils/clamp.d.ts.map +1 -0
  302. package/dist/types/utils/coalesce.d.ts +3 -0
  303. package/dist/types/utils/coalesce.d.ts.map +1 -0
  304. package/dist/types/utils/constants.d.ts +6 -0
  305. package/dist/types/utils/constants.d.ts.map +1 -0
  306. package/dist/types/utils/deepEqual.d.ts.map +1 -1
  307. package/dist/types/utils/intersection.d.ts +4 -0
  308. package/dist/types/utils/intersection.d.ts.map +1 -0
  309. package/dist/types/utils/keys.d.ts +5 -0
  310. package/dist/types/utils/keys.d.ts.map +1 -0
  311. package/dist/types/utils/shallowEqual.d.ts.map +1 -1
  312. package/dist/types/utils/shallowMerge.d.ts +2 -0
  313. package/dist/types/utils/shallowMerge.d.ts.map +1 -0
  314. package/package.json +66 -28
  315. package/prop-controllers.js +1 -0
  316. package/react.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"prop-controllers.es.js","sources":["../src/prop-controllers/descriptors.ts"],"sourcesContent":["import type * as Slate from 'slate'\nimport type { Element, Data } from '../state/react-page'\n\n// See https://github.com/microsoft/TypeScript/issues/15300\nexport type IndexSignatureHack<T> = T extends Record<string, any>\n ? { [K in keyof T]: IndexSignatureHack<T[K]> }\n : T\n\nexport type Device = 'desktop' | 'tablet' | 'mobile'\n\nexport type DeviceOverride<T> = { deviceId: Device; value: T }\n\nexport type ResponsiveValue<T> = DeviceOverride<T>[]\n\nexport type ResponsiveValueType<T> = T extends ResponsiveValue<infer U> ? U : never\n\ntype Color = { swatchId: string; alpha: number }\n\ntype IconName =\n | 'HeightAuto16'\n | 'HeightMatch16'\n | 'VerticalAlignStart16'\n | 'VerticalAlignMiddle16'\n | 'VerticalAlignEnd16'\n | 'VerticalAlignSpaceBetween16'\n | 'ButtonPill16'\n | 'ButtonRounded16'\n | 'ButtonSquare16'\n | 'SizeSmall16'\n | 'SizeMedium16'\n | 'SizeLarge16'\n | 'ArrowInside16'\n | 'ArrowCenter16'\n | 'ArrowOutside16'\n | 'CountdownSolid16'\n | 'CountdownSolidSplit16'\n | 'CountdownOutline16'\n | 'CountdownOutlineSplit16'\n | 'CountdownNaked16'\n | 'Sun16'\n | 'Moon16'\n | 'AlignLeft16'\n | 'AlignCenter16'\n | 'AlignRight16'\n | 'Star16'\n | 'StarCircle16'\n | 'StarRoundedSquare16'\n | 'StarSquare16'\n\ntype Gap = { value: number; unit: 'px' }\n\nexport type Length = { value: number; unit: 'px' | '%' }\n\ntype OpenPageLink = {\n type: 'OPEN_PAGE'\n payload: { pageId: string | null | undefined; openInNewTab: boolean }\n}\n\ntype OpenURLLink = { type: 'OPEN_URL'; payload: { url: string; openInNewTab: boolean } }\n\ntype SendEmailLink = {\n type: 'SEND_EMAIL'\n payload: { to: string; subject?: string; body?: string }\n}\n\ntype CallPhoneLink = { type: 'CALL_PHONE'; payload: { phoneNumber: string } }\n\ntype ScrollToElementLink = {\n type: 'SCROLL_TO_ELEMENT'\n payload: {\n elementIdConfig: { elementKey: string; propName: string } | null | undefined\n block: 'start' | 'center' | 'end'\n }\n}\n\ntype Link = OpenPageLink | OpenURLLink | SendEmailLink | CallPhoneLink | ScrollToElementLink\n\ntype TextStyle = {\n fontFamily?: string | null | undefined\n letterSpacing: number | null | undefined\n fontSize: { value: number; unit: 'px' } | null | undefined\n fontWeight: number | null | undefined\n textTransform: 'uppercase'[]\n fontStyle: 'italic'[]\n}\n\nexport const Types = {\n Backgrounds: 'Backgrounds',\n Border: 'Border',\n BorderRadius: 'BorderRadius',\n Checkbox: 'Checkbox',\n Date: 'Date',\n ElementID: 'ElementID',\n Font: 'Font',\n GapX: 'GapX',\n GapY: 'GapY',\n Grid: 'Grid',\n Image: 'Image',\n Images: 'Images',\n Link: 'Link',\n Margin: 'Margin',\n NavigationLinks: 'NavigationLinks',\n Number: 'Number',\n Padding: 'Padding',\n ResponsiveColor: 'ResponsiveColor',\n ResponsiveIconRadioGroup: 'ResponsiveIconRadioGroup',\n ResponsiveLength: 'ResponsiveLength',\n ResponsiveNumber: 'ResponsiveNumber',\n ResponsiveOpacity: 'ResponsiveOpacity',\n ResponsiveSelect: 'ResponsiveSelect',\n RichText: 'RichText',\n Shadows: 'Shadows',\n SocialLinks: 'SocialLinks',\n Table: 'Table',\n TableFormFields: 'TableFormFields',\n TextArea: 'TextArea',\n TextInput: 'TextInput',\n TextStyle: 'TextStyle',\n Video: 'Video',\n Width: 'Width',\n} as const\n\ntype Options<T> = T | ((props: Record<string, unknown>, decideMode: Device) => T)\n\ntype ColorBackground = { type: 'color'; id: string; payload: Color | null }\n\ntype GradientStop = { id: string; location: number; color: Color | null }\n\ntype Gradient = { angle?: number; isRadial?: boolean; stops: GradientStop[] }\n\ntype GradientBackground = { type: 'gradient'; id: string; payload: Gradient }\n\ntype BackgroundImagePosition = { x: number; y: number }\n\ntype BackgroundImageSize = 'cover' | 'contain' | 'auto'\n\ntype BackgroundImageRepeat = 'no-repeat' | 'repeat-x' | 'repeat-y' | 'repeat'\n\ntype BackgroundImage = {\n imageId: string\n position: BackgroundImagePosition\n size?: BackgroundImageSize\n repeat?: BackgroundImageRepeat\n opacity?: number\n parallax?: number\n}\n\ntype ImageBackground = { type: 'image'; id: string; payload: BackgroundImage }\n\ntype BackgroundVideoAspectRatio = 'wide' | 'standard'\n\ntype BackgroundVideo = {\n url?: string\n maskColor?: Color | null\n opacity?: number\n zoom?: number\n aspectRatio?: BackgroundVideoAspectRatio\n parallax?: number\n}\n\ntype VideoBackground = { type: 'video'; id: string; payload: BackgroundVideo }\n\ntype Background = ColorBackground | GradientBackground | ImageBackground | VideoBackground\n\nexport type BackgroundsValue = ResponsiveValue<Background[]>\n\ntype BackgroundsOptions = Options<Record<string, never>>\n\ntype BackgroundsDescriptor<_T = BackgroundsValue> = {\n type: typeof Types.Backgrounds\n options: BackgroundsOptions\n}\n\nexport function Backgrounds(options: BackgroundsOptions = {}): BackgroundsDescriptor {\n return { type: Types.Backgrounds, options }\n}\n\ntype BorderSideStyle = 'dashed' | 'dotted' | 'solid'\n\ntype BorderSide = { width: number | null | undefined; style: BorderSideStyle; color?: Color | null }\n\ntype Border = {\n [K in 'top' | 'right' | 'bottom' | 'left' as `border${Capitalize<K>}`]:\n | BorderSide\n | null\n | undefined\n}\n\nexport type BorderValue = ResponsiveValue<Border>\n\ntype BorderOptions = Options<Record<string, never>>\n\ntype BorderDescriptor<_T = BorderValue> = { type: typeof Types.Border; options: BorderOptions }\n\nexport function Border(options: BorderOptions = {}): BorderDescriptor {\n return { type: Types.Border, options }\n}\n\ntype BorderRadius = {\n [K in 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' as `border${Capitalize<K>}Radius`]:\n | Length\n | null\n | undefined\n}\n\nexport type BorderRadiusValue = ResponsiveValue<BorderRadius>\n\ntype BorderRadiusOptions = Options<Record<string, never>>\n\ntype BorderRadiusDescriptor<_T = BorderRadiusValue> = {\n type: typeof Types.BorderRadius\n options: BorderRadiusOptions\n}\n\nexport function BorderRadius(options: BorderRadiusOptions = {}): BorderRadiusDescriptor {\n return { type: Types.BorderRadius, options }\n}\n\nexport type CheckboxValue = boolean\n\ntype CheckboxOptions = Options<{\n preset?: CheckboxValue\n label: string\n hidden?: boolean\n}>\n\ntype CheckboxDescriptor<_T = CheckboxValue> = {\n type: typeof Types.Checkbox\n options: CheckboxOptions\n}\n\nexport function Checkbox(options: CheckboxOptions): CheckboxDescriptor {\n return { type: Types.Checkbox, options }\n}\n\nexport type DateValue = string\n\ntype DateOptions = Options<{ preset?: DateValue }>\n\ntype DateDescriptor<_T = DateValue> = { type: typeof Types.Date; options: DateOptions }\n\nexport function Date(options: DateOptions = {}): DateDescriptor {\n return { type: Types.Date, options }\n}\n\nexport type ElementIDValue = string\n\ntype ElementIDOptions = Options<Record<string, never>>\n\ntype ElementIDDescriptor<_T = ElementIDValue> = {\n type: typeof Types.ElementID\n options: ElementIDOptions\n}\n\nexport function ElementID(options: ElementIDOptions = {}): ElementIDDescriptor {\n return { type: Types.ElementID, options }\n}\n\nexport type FontValue = ResponsiveValue<string>\n\ntype FontOptions = Options<{ preset?: FontValue; label?: string }>\n\ntype FontDescriptor<_T = FontValue> = { type: typeof Types.Font; options: FontOptions }\n\nexport function Font(options: FontOptions = {}): FontDescriptor {\n return { type: Types.Font, options }\n}\n\nexport type GapXValue = ResponsiveValue<Gap>\n\ntype GapXOptions = Options<{\n preset?: GapXValue\n label?: string\n defaultValue?: Gap\n min?: number\n max?: number\n step?: number\n hidden?: boolean\n}>\n\ntype GapXDescriptor<_T = GapXValue> = { type: typeof Types.GapX; options: GapXOptions }\n\nexport function GapX(options: GapXOptions = {}): GapXDescriptor {\n return { type: Types.GapX, options }\n}\n\nexport type GapYValue = ResponsiveValue<Gap>\n\ntype GapYOptions = Options<{\n preset?: GapYValue\n label?: string\n defaultValue?: Gap\n step?: number\n min?: number\n max?: number\n hidden?: boolean\n}>\n\ntype GapYDescriptor<_T = GapYValue> = { type: typeof Types.GapY; options: GapYOptions }\n\nexport function GapY(options: GapYOptions = {}): GapYDescriptor {\n return { type: Types.GapY, options }\n}\n\ntype GridColumn = { count: number; spans: number[][] }\n\nexport type GridValue = { elements: Element[]; columns: ResponsiveValue<GridColumn> }\n\ntype GridOptions = Options<Record<string, never>>\n\ntype GridDescriptor<_T = GridValue> = { type: typeof Types.Grid; options: GridOptions }\n\nexport function Grid(options: GridOptions = {}): GridDescriptor {\n return { type: Types.Grid, options }\n}\n\nexport type ImageValue = string\n\ntype ImageOptions = Options<{ label?: string; hidden?: boolean }>\n\ntype ImageDescriptor<_T = ImageValue> = { type: typeof Types.Image; options: ImageOptions }\n\nexport function Image(options: ImageOptions = {}): ImageDescriptor {\n return { type: Types.Image, options }\n}\n\nexport type ImagesValue = { key: string; props: { link?: Link; file?: string; altText?: string } }[]\n\ntype ImagesOptions = Options<{ preset?: ImagesValue }>\n\ntype ImagesDescriptor<_T = ImagesValue> = { type: typeof Types.Images; options: ImagesOptions }\n\nexport function Images(options: ImagesOptions = {}): ImagesDescriptor {\n return { type: Types.Images, options }\n}\n\nexport type LinkValue = Link\n\ntype LinkOptions = Options<{\n preset?: LinkValue\n label?: string\n defaultValue?: Link\n options?: { value: Link['type']; label: string }[]\n hidden?: boolean\n}>\n\ntype LinkDescriptor<_T = LinkValue> = { type: typeof Types.Link; options: LinkOptions }\n\nexport function Link(options: LinkOptions = {}): LinkDescriptor {\n return { type: Types.Link, options }\n}\n\ntype MarginSide = { value: number; unit: 'px' } | 'auto'\n\ntype Margin = {\n [K in 'top' | 'right' | 'bottom' | 'left' as `margin${Capitalize<K>}`]:\n | MarginSide\n | null\n | undefined\n}\n\nexport type MarginValue = ResponsiveValue<Margin>\n\ntype MarginOptions = Options<{ preset?: MarginValue }>\n\ntype MarginDescriptor<_T = MarginValue> = { type: typeof Types.Margin; options: MarginOptions }\n\nexport function Margin(options: MarginOptions = {}): MarginDescriptor {\n return { type: Types.Margin, options }\n}\n\ntype ButtonVariant = 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n\ntype ButtonShape = 'pill' | 'rounded' | 'square'\n\ntype ButtonSize = 'small' | 'medium' | 'large'\n\ntype NavigationButton = {\n id: string\n type: 'button'\n payload: {\n label: string\n link?: Link\n variant?: ResponsiveValue<ButtonVariant>\n shape?: ResponsiveValue<ButtonShape>\n size?: ResponsiveValue<ButtonSize>\n textColor?: ResponsiveValue<Color>\n color?: ResponsiveValue<Color>\n textStyle?: ResponsiveValue<TextStyle>\n }\n}\n\ntype NavigationDropdownCaretType = 'caret' | 'plus' | 'arrow-down' | 'chevron-down'\n\ntype NavigationDropdownLink = {\n id: string\n payload: {\n label: string\n link?: Link\n color?: ResponsiveValue<Color>\n textStyle?: ResponsiveValue<TextStyle>\n }\n}\n\ntype NavigationDropdown = {\n id: string\n type: 'dropdown'\n payload: {\n label: string\n caret?: NavigationDropdownCaretType\n links?: NavigationDropdownLink[]\n variant?: ResponsiveValue<ButtonVariant>\n shape?: ResponsiveValue<ButtonShape>\n size?: ResponsiveValue<ButtonSize>\n textColor?: ResponsiveValue<Color>\n color?: ResponsiveValue<Color>\n textStyle?: ResponsiveValue<TextStyle>\n }\n}\n\nexport type NavigationLinksValue = (NavigationButton | NavigationDropdown)[]\n\ntype NavigationLinksOptions = Options<Record<string, never>>\n\ntype NavigationLinksDescriptor<_T = NavigationLinksValue> = {\n type: typeof Types.NavigationLinks\n options: NavigationLinksOptions\n}\n\nexport function NavigationLinks(options: NavigationLinksOptions = {}): NavigationLinksDescriptor {\n return { type: Types.NavigationLinks, options }\n}\n\nexport type NumberValue = number\n\ntype NumberOptions = Options<{\n preset?: NumberValue\n label?: string\n defaultValue?: number\n min?: number\n max?: number\n step?: number\n suffix?: string\n hidden?: boolean\n}>\n\ntype NumberDescriptor<_T = NumberValue> = { type: typeof Types.Number; options: NumberOptions }\n\nexport function Number(options: NumberOptions = {}): NumberDescriptor {\n return { type: Types.Number, options }\n}\n\ntype PaddingSide = { value: number; unit: 'px' }\n\ntype Padding = {\n [K in 'top' | 'right' | 'bottom' | 'left' as `padding${Capitalize<K>}`]:\n | PaddingSide\n | null\n | undefined\n}\n\nexport type PaddingValue = ResponsiveValue<Padding>\n\ntype PaddingOptions = Options<{ preset?: PaddingValue }>\n\ntype PaddingDescriptor<_T = PaddingValue> = { type: typeof Types.Padding; options: PaddingOptions }\n\nexport function Padding(options: PaddingOptions = {}): PaddingDescriptor {\n return { type: Types.Padding, options }\n}\n\nexport type ResponsiveColorValue = ResponsiveValue<Color>\n\ntype ResponsiveColorOptions = Options<{ label?: string; placeholder?: string; hidden?: boolean }>\n\ntype ResponsiveColorDescriptor<_T = ResponsiveColorValue> = {\n type: typeof Types.ResponsiveColor\n options: ResponsiveColorOptions\n}\n\nexport function ResponsiveColor(options: ResponsiveColorOptions = {}): ResponsiveColorDescriptor {\n return { type: Types.ResponsiveColor, options }\n}\n\ntype IconRadioGroupOption<T extends string> = { value: T; label: string; icon: IconName }\n\nexport type ResponsiveIconRadioGroupValue<T extends string> = ResponsiveValue<T>\n\ntype ResponsiveIconRadioGroupOptions<T extends string, U extends T = T> = Options<{\n label?: string\n options: IconRadioGroupOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}>\n\ntype ResponsiveIconRadioGroupDescriptor<T extends ResponsiveIconRadioGroupValue<string>> = {\n type: typeof Types.ResponsiveIconRadioGroup\n options: ResponsiveIconRadioGroupOptions<ResponsiveValueType<T>>\n}\n\n// HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n// values provided would undergo type widening. For some reason, the extra layer of indirection\n// reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n// function is passed to another as an argument, which is common with the `registerComponent` API.\nexport function ResponsiveIconRadioGroup<_T extends string, T extends _T, U extends T>(\n options: ResponsiveIconRadioGroupOptions<T, U>,\n): ResponsiveIconRadioGroupDescriptor<ResponsiveIconRadioGroupValue<T>> {\n return { type: Types.ResponsiveIconRadioGroup, options }\n}\n\nexport type ResponsiveLengthValue = ResponsiveValue<Length>\n\ntype LengthOption =\n | { value: 'px'; label: 'Pixels'; icon: 'Px16' }\n | { value: '%'; label: 'Percentage'; icon: 'Percent16' }\n\ntype ResponsiveLengthOptions = Options<{\n label?: string\n options?: LengthOption[]\n defaultValue?: Length\n hidden?: boolean\n}>\n\ntype ResponsiveLengthDescriptor<_T = ResponsiveLengthValue> = {\n type: typeof Types.ResponsiveLength\n options: ResponsiveLengthOptions\n}\n\nexport function ResponsiveLength(\n options: ResponsiveLengthOptions = {},\n): ResponsiveLengthDescriptor {\n return { type: Types.ResponsiveLength, options }\n}\n\nexport type ResponsiveNumberValue = ResponsiveValue<number>\n\ntype ResponsiveNumberOptions = Options<{\n label?: string\n defaultValue?: number\n min?: number\n max?: number\n step?: number\n suffix?: string\n hidden?: boolean\n}>\n\ntype ResponsiveNumberDescriptor<_T = ResponsiveNumberValue> = {\n type: typeof Types.ResponsiveNumber\n options: ResponsiveNumberOptions\n}\n\nexport function ResponsiveNumber(\n options: ResponsiveNumberOptions = {},\n): ResponsiveNumberDescriptor {\n return { type: Types.ResponsiveNumber, options }\n}\n\nexport type ResponsiveOpacityValue = ResponsiveValue<number>\n\ntype ResponsiveOpacityOptions = Options<Record<string, never>>\n\ntype ResponsiveOpacityDescriptor<_T = ResponsiveOpacityValue> = {\n type: typeof Types.ResponsiveOpacity\n options: ResponsiveOpacityOptions\n}\n\nexport function ResponsiveOpacity(\n options: ResponsiveOpacityOptions = {},\n): ResponsiveOpacityDescriptor {\n return { type: Types.ResponsiveOpacity, options }\n}\n\nexport type ResponsiveSelectValue<T extends string> = ResponsiveValue<T>\n\ntype SelectLabelOrientation = 'vertical' | 'horizontal'\n\ntype SelectOption<T extends string> = { value: T; label: string }\n\ntype ResponsiveSelectOptions<T extends string, U extends T = T> = Options<{\n label?: string\n labelOrientation?: SelectLabelOrientation\n options: SelectOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}>\n\ntype ResponsiveSelectDescriptor<T extends ResponsiveSelectValue<string>> = {\n type: typeof Types.ResponsiveSelect\n options: ResponsiveSelectOptions<ResponsiveValueType<T>>\n}\n\n// HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n// values provided would undergo type widening. For some reason, the extra layer of indirection\n// reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n// function is passed to another as an argument, which is common with the `registerComponent` API.\nexport function ResponsiveSelect<_T extends string, T extends _T, U extends T>(\n options: ResponsiveSelectOptions<T, U>,\n): ResponsiveSelectDescriptor<ResponsiveSelectValue<T>> {\n return { type: Types.ResponsiveSelect, options }\n}\n\nexport type RichTextValue = IndexSignatureHack<Slate.ValueJSON>\n\ntype RichTextOptions = Options<{ preset?: RichTextValue }>\n\ntype RichTextDescriptor<_T extends Data = RichTextValue> = {\n type: typeof Types.RichText\n options: RichTextOptions\n}\n\nexport function RichText(options: RichTextOptions = {}): RichTextDescriptor {\n return { type: Types.RichText, options }\n}\n\ntype Shadow = {\n color?: Color | null\n blurRadius?: number\n spreadRadius?: number\n offsetX?: number\n offsetY?: number\n inset?: boolean\n}\n\ntype Shadows = { id: string; payload: Shadow }[]\n\nexport type ShadowsValue = ResponsiveValue<Shadows>\n\ntype ShadowsOptions = Options<Record<string, never>>\n\ntype ShadowsDescriptor<_T = ShadowsValue> = { type: typeof Types.Shadows; options: ShadowsOptions }\n\nexport function Shadows(options: ShadowsOptions = {}): ShadowsDescriptor {\n return { type: Types.Shadows, options }\n}\n\ntype SocialLinkType =\n | 'angellist'\n | 'codepen'\n | 'dribbble'\n | 'facebook'\n | 'github'\n | 'instagram'\n | 'linkedin'\n | 'medium'\n | 'pinterest'\n | 'reddit'\n | 'rss'\n | 'snapchat'\n | 'soundcloud'\n | 'spotify'\n | 'telegram'\n | 'tumblr'\n | 'twitch'\n | 'twitter'\n | 'vimeo'\n | 'whatsapp'\n | 'yelp'\n | 'youtube'\n\ntype SocialLink = { type: SocialLinkType; url: string }\n\ntype SocialLinksLink = { id: string; payload: SocialLink }\n\nexport type SocialLinksValue = { links: SocialLinksLink[]; openInNewTab: boolean }\n\ntype SocialLinksOptions = Options<{ preset?: SocialLinksValue }>\n\ntype SocialLinksDescriptor<_T = SocialLinksValue> = {\n type: typeof Types.SocialLinks\n options: SocialLinksOptions\n}\n\nexport function SocialLinks(options: SocialLinksOptions = {}): SocialLinksDescriptor {\n return { type: Types.SocialLinks, options }\n}\n\nexport type TableValue = string\n\ntype TableOptions = Options<{ preset?: TableValue }>\n\ntype TableDescriptor<_T = TableValue> = { type: typeof Types.Table; options: TableOptions }\n\nexport function Table(options: TableOptions = {}): TableDescriptor {\n return { type: Types.Table, options }\n}\n\ntype TableFormField = {\n id: string\n tableColumnId: string\n label?: string\n placeholder?: string\n defaultValue?: string | boolean | string[]\n required?: boolean\n hidden?: boolean\n type?: 'select' | 'radio'\n hideLabel?: boolean\n autofill?: boolean\n}\n\ntype Grid = { count: number; spans: number[][] }\n\nexport type TableFormFieldsValue = { fields: TableFormField[]; grid: ResponsiveValue<Grid> }\n\ntype TableFormFieldsOptions = Options<{ preset?: TableFormFieldsValue }>\n\ntype TableFormFieldsDescriptor<_T = TableFormFieldsValue> = {\n type: typeof Types.TableFormFields\n options: TableFormFieldsOptions\n}\n\nexport function TableFormFields(options: TableFormFieldsOptions = {}): TableFormFieldsDescriptor {\n return { type: Types.TableFormFields, options }\n}\n\nexport type TextAreaValue = string\n\ntype TextAreaOptions = Options<{ preset?: TextAreaValue; label?: string; rows?: number }>\n\ntype TextAreaDescriptor<_T = TextAreaValue> = {\n type: typeof Types.TextArea\n options: TextAreaOptions\n}\n\nexport function TextArea(options: TextAreaOptions = {}): TextAreaDescriptor {\n return { type: Types.TextArea, options }\n}\n\nexport type TextInputValue = string\n\ntype TextInputOptions = Options<{ label?: string; placeholder?: string; hidden?: boolean }>\n\ntype TextInputDescriptor<_T = TextInputValue> = {\n type: typeof Types.TextInput\n options: TextInputOptions\n}\n\nexport function TextInput(options: TextInputOptions = {}): TextInputDescriptor {\n return { type: Types.TextInput, options }\n}\n\nexport type TextStyleValue = ResponsiveValue<TextStyle>\n\ntype TextStyleOptions = Options<{ preset?: TextStyleValue; label?: string; hidden?: boolean }>\n\ntype TextStyleDescriptor<_T = TextStyleValue> = {\n type: typeof Types.TextStyle\n options: TextStyleOptions\n}\n\nexport function TextStyle(options: TextStyleOptions = {}): TextStyleDescriptor {\n return { type: Types.TextStyle, options }\n}\n\ntype Video = {\n url?: string\n muted?: boolean\n playing?: boolean\n loop?: boolean\n controls?: boolean\n}\n\nexport type VideoValue = Video\n\ntype VideoOptions = Options<{ preset?: VideoValue }>\n\ntype VideoDescriptor<_T = VideoValue> = { type: typeof Types.Video; options: VideoOptions }\n\nexport function Video(options: VideoOptions = {}): VideoDescriptor {\n return { type: Types.Video, options }\n}\n\nexport type WidthValue = ResponsiveValue<Length>\n\ntype WidthOptions = Options<{ preset?: WidthValue; defaultValue?: Length }>\n\ntype WidthDescriptor<_T = WidthValue> = { type: typeof Types.Width; options: WidthOptions }\n\nexport function Width(options: WidthOptions = {}): WidthDescriptor {\n return { type: Types.Width, options }\n}\n\nexport type Descriptor<T extends Data = Data> =\n | BackgroundsDescriptor<T>\n | BorderDescriptor<T>\n | BorderRadiusDescriptor<T>\n | CheckboxDescriptor<T>\n | DateDescriptor<T>\n | ElementIDDescriptor<T>\n | FontDescriptor<T>\n | GapXDescriptor<T>\n | GapYDescriptor<T>\n | GridDescriptor<T>\n | ImageDescriptor<T>\n | ImagesDescriptor<T>\n | LinkDescriptor<T>\n | MarginDescriptor<T>\n | NavigationLinksDescriptor<T>\n | NumberDescriptor<T>\n | PaddingDescriptor<T>\n | ResponsiveColorDescriptor<T>\n | ResponsiveIconRadioGroupDescriptor<\n T extends ResponsiveIconRadioGroupValue<string> ? T : ResponsiveIconRadioGroupValue<string>\n >\n | ResponsiveLengthDescriptor<T>\n | ResponsiveNumberDescriptor<T>\n | ResponsiveOpacityDescriptor<T>\n | ResponsiveSelectDescriptor<\n T extends ResponsiveSelectValue<string> ? T : ResponsiveSelectValue<string>\n >\n | RichTextDescriptor<T>\n | ShadowsDescriptor<T>\n | SocialLinksDescriptor<T>\n | TableDescriptor<T>\n | TableFormFieldsDescriptor<T>\n | TextAreaDescriptor<T>\n | TextInputDescriptor<T>\n | TextStyleDescriptor<T>\n | VideoDescriptor<T>\n | WidthDescriptor<T>\n\nexport type DescriptorValueType<T extends Descriptor> = T extends Descriptor<infer U> ? U : never\n"],"names":[],"mappings":"MAsFa,QAAQ;AAAA,EACnB,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,0BAA0B;AAAA,EAC1B,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,aAAa;AAAA,EACb,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP,OAAO;AAAA;qBAsDmB,UAA8B,IAA2B;SAC5E,EAAE,MAAM,MAAM,aAAa;AAAA;gBAoBb,UAAyB,IAAsB;SAC7D,EAAE,MAAM,MAAM,QAAQ;AAAA;sBAmBF,UAA+B,IAA4B;SAC/E,EAAE,MAAM,MAAM,cAAc;AAAA;kBAgBZ,SAA8C;SAC9D,EAAE,MAAM,MAAM,UAAU;AAAA;cASZ,UAAuB,IAAoB;SACvD,EAAE,MAAM,MAAM,MAAM;AAAA;mBAYH,UAA4B,IAAyB;SACtE,EAAE,MAAM,MAAM,WAAW;AAAA;cASb,UAAuB,IAAoB;SACvD,EAAE,MAAM,MAAM,MAAM;AAAA;cAiBR,UAAuB,IAAoB;SACvD,EAAE,MAAM,MAAM,MAAM;AAAA;cAiBR,UAAuB,IAAoB;SACvD,EAAE,MAAM,MAAM,MAAM;AAAA;cAWR,UAAuB,IAAoB;SACvD,EAAE,MAAM,MAAM,MAAM;AAAA;eASP,UAAwB,IAAqB;SAC1D,EAAE,MAAM,MAAM,OAAO;AAAA;gBASP,UAAyB,IAAsB;SAC7D,EAAE,MAAM,MAAM,QAAQ;AAAA;cAeV,UAAuB,IAAoB;SACvD,EAAE,MAAM,MAAM,MAAM;AAAA;gBAkBN,UAAyB,IAAsB;SAC7D,EAAE,MAAM,MAAM,QAAQ;AAAA;yBA6DC,UAAkC,IAA+B;SACxF,EAAE,MAAM,MAAM,iBAAiB;AAAA;gBAkBjB,UAAyB,IAAsB;SAC7D,EAAE,MAAM,MAAM,QAAQ;AAAA;iBAkBP,UAA0B,IAAuB;SAChE,EAAE,MAAM,MAAM,SAAS;AAAA;yBAYA,UAAkC,IAA+B;SACxF,EAAE,MAAM,MAAM,iBAAiB;AAAA;kCAwBtC,SACsE;SAC/D,EAAE,MAAM,MAAM,0BAA0B;AAAA;0BAsB/C,UAAmC,IACP;SACrB,EAAE,MAAM,MAAM,kBAAkB;AAAA;0BAqBvC,UAAmC,IACP;SACrB,EAAE,MAAM,MAAM,kBAAkB;AAAA;2BAavC,UAAoC,IACP;SACtB,EAAE,MAAM,MAAM,mBAAmB;AAAA;0BA2BxC,SACsD;SAC/C,EAAE,MAAM,MAAM,kBAAkB;AAAA;kBAYhB,UAA2B,IAAwB;SACnE,EAAE,MAAM,MAAM,UAAU;AAAA;iBAoBT,UAA0B,IAAuB;SAChE,EAAE,MAAM,MAAM,SAAS;AAAA;qBAwCJ,UAA8B,IAA2B;SAC5E,EAAE,MAAM,MAAM,aAAa;AAAA;eASd,UAAwB,IAAqB;SAC1D,EAAE,MAAM,MAAM,OAAO;AAAA;yBA2BE,UAAkC,IAA+B;SACxF,EAAE,MAAM,MAAM,iBAAiB;AAAA;kBAYf,UAA2B,IAAwB;SACnE,EAAE,MAAM,MAAM,UAAU;AAAA;mBAYP,UAA4B,IAAyB;SACtE,EAAE,MAAM,MAAM,WAAW;AAAA;mBAYR,UAA4B,IAAyB;SACtE,EAAE,MAAM,MAAM,WAAW;AAAA;eAiBZ,UAAwB,IAAqB;SAC1D,EAAE,MAAM,MAAM,OAAO;AAAA;eASR,UAAwB,IAAqB;SAC1D,EAAE,MAAM,MAAM,OAAO;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"prop-controllers.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,9 +1,37 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2
21
  exports[Symbol.toStringTag] = "Module";
3
22
  var react = require("./react.cjs2.js");
4
23
  var actions = require("./actions.cjs.js");
5
24
  var boxModels = require("./box-models.cjs.js");
25
+ var instances = require("./instances.cjs.js");
26
+ var constants = require("./constants.cjs.js");
6
27
  require("react");
28
+ require("./descriptors.cjs.js");
29
+ require("styled-components");
30
+ require("react/jsx-runtime");
31
+ require("next/image");
32
+ require("next/link");
33
+ require("slate");
34
+ require("slate-react");
7
35
  function is$1(x, y) {
8
36
  if (x === y)
9
37
  return x !== 0 || y !== 0 || 1 / x === 1 / y;
@@ -4102,7 +4130,7 @@ function apply(data, operation) {
4102
4130
  });
4103
4131
  return applied;
4104
4132
  }
4105
- function getInitialState({
4133
+ function getInitialState$1({
4106
4134
  rootElements
4107
4135
  } = {}) {
4108
4136
  return react.getInitialState({ rootElements });
@@ -4113,7 +4141,7 @@ function getReadOnlyDocumentsStateSlice(state) {
4113
4141
  function getDocumentRootElement(state, documentKey) {
4114
4142
  return react.getDocumentRootElement(getReadOnlyDocumentsStateSlice(state), documentKey);
4115
4143
  }
4116
- function reducer$1(state = getInitialState(), action) {
4144
+ function reducer$2(state = getInitialState$1(), action) {
4117
4145
  switch (action.type) {
4118
4146
  case actions.ActionTypes.CHANGE_DOCUMENT: {
4119
4147
  const currentRootElement = getDocumentRootElement(state, action.payload.documentKey);
@@ -4126,12 +4154,62 @@ function reducer$1(state = getInitialState(), action) {
4126
4154
  return state;
4127
4155
  }
4128
4156
  }
4157
+ function isPropControllersHandle(value) {
4158
+ if (typeof value === "object" && value !== null && "setPropControllers" in value && typeof value.setPropControllers === "function") {
4159
+ return true;
4160
+ }
4161
+ return false;
4162
+ }
4163
+ function getInitialState() {
4164
+ return { handles: /* @__PURE__ */ new Map(), instances: /* @__PURE__ */ new Map() };
4165
+ }
4166
+ function getPropControllersHandle(state, documentKey, elementKey) {
4167
+ var _a, _b;
4168
+ return (_b = (_a = state.handles.get(documentKey)) == null ? void 0 : _a.get(elementKey)) != null ? _b : null;
4169
+ }
4170
+ function getPropController(state, documentKey, elementKey, propName) {
4171
+ var _a, _b, _c;
4172
+ return (_c = (_b = (_a = state.instances.get(documentKey)) == null ? void 0 : _a.get(elementKey)) == null ? void 0 : _b[propName]) != null ? _c : null;
4173
+ }
4174
+ function reducer$1(state = getInitialState(), action) {
4175
+ var _a, _b, _c, _d;
4176
+ switch (action.type) {
4177
+ case actions.ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE: {
4178
+ const { documentKey, elementKey, handle } = action.payload;
4179
+ return __spreadProps(__spreadValues({}, state), {
4180
+ handles: new Map(state.handles).set(documentKey, new Map((_a = state.handles.get(documentKey)) != null ? _a : []).set(elementKey, handle))
4181
+ });
4182
+ }
4183
+ case actions.ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE: {
4184
+ const { documentKey, elementKey } = action.payload;
4185
+ const nextHandles = new Map((_b = state.handles.get(documentKey)) != null ? _b : []);
4186
+ const deleted = nextHandles.delete(elementKey);
4187
+ return deleted ? __spreadProps(__spreadValues({}, state), { handles: new Map(state.handles).set(documentKey, nextHandles) }) : state;
4188
+ }
4189
+ case actions.ActionTypes.REGISTER_PROP_CONTROLLERS: {
4190
+ const { documentKey, elementKey, propControllers } = action.payload;
4191
+ return __spreadProps(__spreadValues({}, state), {
4192
+ instances: new Map(state.instances).set(documentKey, new Map((_c = state.instances.get(documentKey)) != null ? _c : []).set(elementKey, propControllers))
4193
+ });
4194
+ }
4195
+ case actions.ActionTypes.UNREGISTER_PROP_CONTROLLERS: {
4196
+ const { documentKey, elementKey } = action.payload;
4197
+ const nextInstances = new Map((_d = state.instances.get(documentKey)) != null ? _d : []);
4198
+ const deleted = nextInstances.delete(elementKey);
4199
+ return deleted ? __spreadProps(__spreadValues({}, state), { instances: new Map(state.instances).set(documentKey, nextInstances) }) : state;
4200
+ }
4201
+ default:
4202
+ return state;
4203
+ }
4204
+ }
4129
4205
  const reducer = react.combineReducers({
4130
- documents: reducer$1,
4206
+ documents: reducer$2,
4131
4207
  reactComponents: react.reducer,
4132
4208
  boxModels: boxModels.reducer,
4133
4209
  componentsMeta: react.reducer$1,
4134
- propControllers: react.reducer$2
4210
+ propControllers: react.reducer$2,
4211
+ propControllerHandles: reducer$1,
4212
+ isInBuilder: (_state = true, _action) => true
4135
4213
  });
4136
4214
  function getBoxModelsStateSlice(state) {
4137
4215
  return state.boxModels;
@@ -4142,8 +4220,8 @@ function getMeasurables(state) {
4142
4220
  function getBoxModels(state) {
4143
4221
  return boxModels.getBoxModels(getBoxModelsStateSlice(state));
4144
4222
  }
4145
- function getBoxModel(state, elementKey) {
4146
- return boxModels.getBoxModel(getBoxModelsStateSlice(state), elementKey);
4223
+ function getBoxModel(state, documentKey, elementKey) {
4224
+ return boxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey);
4147
4225
  }
4148
4226
  function getComponentsMetaStateSlice(state) {
4149
4227
  return state.componentsMeta;
@@ -4157,31 +4235,52 @@ function getPropControllersStateSlice(state) {
4157
4235
  function getComponentPropControllerDescriptors(state, componentType) {
4158
4236
  return react.getComponentPropControllerDescriptors(getPropControllersStateSlice(state), componentType);
4159
4237
  }
4238
+ function getPropControllerHandlesStateSlice(state) {
4239
+ return state.propControllerHandles;
4240
+ }
4160
4241
  function measureElements() {
4161
4242
  return (dispatch, getState) => {
4162
4243
  const measurables = getMeasurables(getState());
4163
4244
  const currentBoxModels = getBoxModels(getState());
4164
- const measuredBoxModels = new Map(Array.from(measurables.entries()).map(([elementKey, measurable]) => {
4165
- const boxModel = boxModels.measure(measurable);
4166
- return boxModel ? [elementKey, boxModel] : null;
4167
- }).filter((entry) => entry != null));
4245
+ const measuredBoxModels = /* @__PURE__ */ new Map();
4246
+ measurables.forEach((documentMeasurables, documentKey) => {
4247
+ const measuredDocumentBoxModels = /* @__PURE__ */ new Map();
4248
+ documentMeasurables.forEach((measurable, elementKey) => {
4249
+ const boxModel = boxModels.measure(measurable);
4250
+ if (boxModel != null)
4251
+ measuredDocumentBoxModels.set(elementKey, boxModel);
4252
+ });
4253
+ if (measuredDocumentBoxModels.size > 0) {
4254
+ measuredBoxModels.set(documentKey, measuredDocumentBoxModels);
4255
+ }
4256
+ });
4168
4257
  const changedBoxModels = /* @__PURE__ */ new Map();
4169
- currentBoxModels.forEach((_boxModel, elementKey) => {
4170
- if (!measuredBoxModels.has(elementKey))
4171
- changedBoxModels.set(elementKey, null);
4258
+ currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {
4259
+ currentDocumentBoxModels.forEach((_boxModel, elementKey) => {
4260
+ var _a;
4261
+ const changedDocumentBoxModels = /* @__PURE__ */ new Map();
4262
+ if (!((_a = measuredBoxModels.get(documentKey)) == null ? void 0 : _a.has(elementKey))) {
4263
+ changedDocumentBoxModels.set(elementKey, null);
4264
+ }
4265
+ if (changedDocumentBoxModels.size > 0) {
4266
+ changedBoxModels.set(documentKey, changedDocumentBoxModels);
4267
+ }
4268
+ });
4172
4269
  });
4173
- measuredBoxModels.forEach((measuredBoxModel, elementKey) => {
4174
- const currentBoxModel = getBoxModel(getState(), elementKey);
4175
- if (currentBoxModel == null || !deepEqual$1(currentBoxModel, measuredBoxModel)) {
4176
- changedBoxModels.set(elementKey, measuredBoxModel);
4270
+ measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {
4271
+ const changedDocumentBoxModels = /* @__PURE__ */ new Map();
4272
+ measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {
4273
+ const currentBoxModel = getBoxModel(getState(), documentKey, elementKey);
4274
+ if (currentBoxModel == null || !deepEqual$1(currentBoxModel, measuredBoxModel)) {
4275
+ changedDocumentBoxModels.set(elementKey, measuredBoxModel);
4276
+ }
4277
+ });
4278
+ if (changedDocumentBoxModels.size > 0) {
4279
+ changedBoxModels.set(documentKey, changedDocumentBoxModels);
4177
4280
  }
4178
4281
  });
4179
- if (changedBoxModels.size > 0) {
4180
- dispatch({
4181
- type: actions.ActionTypes.CHANGE_ELEMENT_BOX_MODELS,
4182
- payload: { changedElementBoxModels: changedBoxModels }
4183
- });
4184
- }
4282
+ if (changedBoxModels.size > 0)
4283
+ dispatch(actions.changeElementBoxModels(changedBoxModels));
4185
4284
  };
4186
4285
  }
4187
4286
  function startMeasuringElements() {
@@ -4239,16 +4338,14 @@ function measureBoxModelsMiddleware() {
4239
4338
  return ({ dispatch }) => (next) => {
4240
4339
  return (action) => {
4241
4340
  switch (action.type) {
4242
- case actions.ActionTypes.CHANGE_COMPONENT_HANDLE: {
4341
+ case actions.ActionTypes.REGISTER_COMPONENT_HANDLE: {
4243
4342
  if (boxModels.isMeasurable(action.payload.componentHandle)) {
4244
- dispatch(actions.registerMeasurable(action.payload.elementKey, action.payload.componentHandle));
4245
- } else {
4246
- dispatch(actions.unregisterMeasurable(action.payload.elementKey));
4343
+ dispatch(actions.registerMeasurable(action.payload.documentKey, action.payload.elementKey, action.payload.componentHandle));
4247
4344
  }
4248
4345
  break;
4249
4346
  }
4250
- case actions.ActionTypes.UNMOUNT_COMPONENT:
4251
- dispatch(actions.unregisterMeasurable(action.payload.elementKey));
4347
+ case actions.ActionTypes.UNREGISTER_COMPONENT_HANDLE:
4348
+ dispatch(actions.unregisterMeasurable(action.payload.documentKey, action.payload.elementKey));
4252
4349
  break;
4253
4350
  }
4254
4351
  return next(action);
@@ -4258,9 +4355,9 @@ function measureBoxModelsMiddleware() {
4258
4355
  function messageChannelMiddleware() {
4259
4356
  return ({ dispatch, getState }) => (next) => {
4260
4357
  const messageChannel = new MessageChannel();
4261
- window.parent.postMessage(messageChannel.port2, "*", [
4262
- messageChannel.port2
4263
- ]);
4358
+ let cleanUp = () => {
4359
+ };
4360
+ window.parent.postMessage(messageChannel.port2, "*", [messageChannel.port2]);
4264
4361
  messageChannel.port1.onmessage = (event) => dispatch(event.data);
4265
4362
  const state = getState();
4266
4363
  const registeredComponentsMeta = getComponentsMeta(state);
@@ -4278,20 +4375,96 @@ function messageChannelMiddleware() {
4278
4375
  case actions.ActionTypes.REGISTER_COMPONENT:
4279
4376
  case actions.ActionTypes.UNREGISTER_COMPONENT:
4280
4377
  case actions.ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:
4378
+ case actions.ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:
4281
4379
  messageChannel.port1.postMessage(action);
4282
4380
  break;
4283
4381
  case actions.ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:
4284
4382
  window.document.documentElement.scrollTop = action.payload.scrollTop;
4285
4383
  break;
4384
+ case actions.ActionTypes.INIT:
4385
+ cleanUp = dispatch(initialize());
4386
+ break;
4387
+ case actions.ActionTypes.CLEAN_UP:
4388
+ cleanUp();
4389
+ break;
4390
+ }
4391
+ return next(action);
4392
+ };
4393
+ };
4394
+ }
4395
+ function createAndRegisterPropControllers(documentKey, elementKey) {
4396
+ return (dispatch, getState) => {
4397
+ const descriptors = react.getElementPropControllerDescriptors(getState(), documentKey, elementKey);
4398
+ if (descriptors == null)
4399
+ return null;
4400
+ const propControllers = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {
4401
+ const propController = instances.createPropController(descriptor, (message) => dispatch(actions.messageBuilderPropController(documentKey, elementKey, propName, message)));
4402
+ return __spreadProps(__spreadValues({}, acc), { [propName]: propController });
4403
+ }, {});
4404
+ dispatch(actions.registerPropControllers(documentKey, elementKey, propControllers));
4405
+ return propControllers;
4406
+ };
4407
+ }
4408
+ function registerAndSetPropControllersHandle(documentKey, elementKey, handle) {
4409
+ return (dispatch) => {
4410
+ dispatch(actions.registerPropControllersHandle(documentKey, elementKey, handle));
4411
+ const propControllers = dispatch(createAndRegisterPropControllers(documentKey, elementKey));
4412
+ handle.setPropControllers(propControllers);
4413
+ };
4414
+ }
4415
+ function unregisterAndUnsetPropControllersHandle(documentKey, elementKey) {
4416
+ return (dispatch, getState) => {
4417
+ const handle = getPropControllersHandle(getPropControllerHandlesStateSlice(getState()), documentKey, elementKey);
4418
+ handle == null ? void 0 : handle.setPropControllers(null);
4419
+ dispatch(actions.unregisterPropControllers(documentKey, elementKey));
4420
+ };
4421
+ }
4422
+ function propControllerHandlesMiddleware() {
4423
+ return ({ dispatch, getState }) => (next) => {
4424
+ return (action) => {
4425
+ switch (action.type) {
4426
+ case actions.ActionTypes.REGISTER_COMPONENT_HANDLE: {
4427
+ if (isPropControllersHandle(action.payload.componentHandle)) {
4428
+ dispatch(registerAndSetPropControllersHandle(action.payload.documentKey, action.payload.elementKey, action.payload.componentHandle));
4429
+ }
4430
+ break;
4431
+ }
4432
+ case actions.ActionTypes.UNREGISTER_COMPONENT_HANDLE:
4433
+ dispatch(unregisterAndUnsetPropControllersHandle(action.payload.documentKey, action.payload.elementKey));
4434
+ break;
4435
+ case actions.ActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {
4436
+ const propController = getPropController(getPropControllerHandlesStateSlice(getState()), action.payload.documentKey, action.payload.elementKey, action.payload.propName);
4437
+ if (propController)
4438
+ propController.recv(action.payload.message);
4439
+ }
4440
+ }
4441
+ return next(action);
4442
+ };
4443
+ };
4444
+ }
4445
+ function apolloClientCacheSyncMiddleware(client) {
4446
+ return () => (next) => {
4447
+ return (action) => {
4448
+ switch (action.type) {
4449
+ case actions.ActionTypes.CHANGE_API_RESOURCE: {
4450
+ const { resource } = action.payload;
4451
+ client.cache.writeFragment({
4452
+ id: client.cache.identify(resource),
4453
+ fragment: constants.Fragments[resource.__typename],
4454
+ data: resource
4455
+ });
4456
+ break;
4457
+ }
4286
4458
  }
4287
4459
  return next(action);
4288
4460
  };
4289
4461
  };
4290
4462
  }
4291
4463
  function configureStore({
4292
- preloadedState
4293
- } = {}) {
4294
- return react.createStore(reducer, preloadedState, react.applyMiddleware(react.thunk, measureBoxModelsMiddleware(), messageChannelMiddleware()));
4464
+ preloadedState,
4465
+ client
4466
+ }) {
4467
+ return react.createStore(reducer, preloadedState, react.applyMiddleware(react.thunk, measureBoxModelsMiddleware(), messageChannelMiddleware(), propControllerHandlesMiddleware(), apolloClientCacheSyncMiddleware(client)));
4295
4468
  }
4296
4469
  exports.createBox = boxModels.createBox;
4297
4470
  exports.getBox = boxModels.getBox;