@makeswift/runtime 0.8.9 → 0.8.11

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 (519) hide show
  1. package/dist/Box.cjs.js +6 -6
  2. package/dist/Box.es.js +6 -6
  3. package/dist/Button.cjs.js +5 -6
  4. package/dist/Button.cjs.js.map +1 -1
  5. package/dist/Button.es.js +5 -6
  6. package/dist/Button.es.js.map +1 -1
  7. package/dist/Carousel.cjs.js +7 -8
  8. package/dist/Carousel.cjs.js.map +1 -1
  9. package/dist/Carousel.es.js +7 -8
  10. package/dist/Carousel.es.js.map +1 -1
  11. package/dist/Countdown.cjs.js +5 -6
  12. package/dist/Countdown.cjs.js.map +1 -1
  13. package/dist/Countdown.es.js +5 -6
  14. package/dist/Countdown.es.js.map +1 -1
  15. package/dist/Divider.cjs.js +5 -6
  16. package/dist/Divider.cjs.js.map +1 -1
  17. package/dist/Divider.es.js +5 -6
  18. package/dist/Divider.es.js.map +1 -1
  19. package/dist/Embed.cjs.js +7 -7
  20. package/dist/Embed.cjs.js.map +1 -1
  21. package/dist/Embed.es.js +7 -7
  22. package/dist/Form.cjs.js +5 -6
  23. package/dist/Form.cjs.js.map +1 -1
  24. package/dist/Form.es.js +6 -7
  25. package/dist/Form.es.js.map +1 -1
  26. package/dist/Image.cjs.js +4 -5
  27. package/dist/Image.cjs.js.map +1 -1
  28. package/dist/Image.es.js +5 -6
  29. package/dist/Image.es.js.map +1 -1
  30. package/dist/LiveProvider.cjs.js +8 -9
  31. package/dist/LiveProvider.cjs.js.map +1 -1
  32. package/dist/LiveProvider.es.js +8 -9
  33. package/dist/LiveProvider.es.js.map +1 -1
  34. package/dist/Navigation.cjs.js +7 -7
  35. package/dist/Navigation.cjs.js.map +1 -1
  36. package/dist/Navigation.es.js +7 -7
  37. package/dist/PreviewProvider.cjs.js +34 -35
  38. package/dist/PreviewProvider.cjs.js.map +1 -1
  39. package/dist/PreviewProvider.es.js +6 -7
  40. package/dist/PreviewProvider.es.js.map +1 -1
  41. package/dist/ReadOnlyText.cjs.js +72 -66
  42. package/dist/ReadOnlyText.cjs.js.map +1 -1
  43. package/dist/ReadOnlyText.es.js +18 -12
  44. package/dist/ReadOnlyText.es.js.map +1 -1
  45. package/dist/ReadOnlyTextV2.cjs.js +362 -0
  46. package/dist/ReadOnlyTextV2.cjs.js.map +1 -0
  47. package/dist/ReadOnlyTextV2.es.js +358 -0
  48. package/dist/ReadOnlyTextV2.es.js.map +1 -0
  49. package/dist/Root.cjs.js +6 -6
  50. package/dist/Root.es.js +6 -6
  51. package/dist/SocialLinks.cjs.js +5 -6
  52. package/dist/SocialLinks.cjs.js.map +1 -1
  53. package/dist/SocialLinks.es.js +5 -6
  54. package/dist/SocialLinks.es.js.map +1 -1
  55. package/dist/Text.cjs.js +6 -7
  56. package/dist/Text.cjs.js.map +1 -1
  57. package/dist/Text.es.js +7 -8
  58. package/dist/Text.es.js.map +1 -1
  59. package/dist/Video.cjs.js +5 -6
  60. package/dist/Video.cjs.js.map +1 -1
  61. package/dist/Video.es.js +5 -6
  62. package/dist/Video.es.js.map +1 -1
  63. package/dist/actions.cjs.js.map +1 -1
  64. package/dist/actions.es.js.map +1 -1
  65. package/dist/builder.cjs.js +6 -2
  66. package/dist/builder.cjs.js.map +1 -1
  67. package/dist/builder.es.js +6 -2
  68. package/dist/builder.es.js.map +1 -1
  69. package/dist/components.cjs.js +9 -9
  70. package/dist/components.es.js +9 -9
  71. package/dist/constants.cjs.js +0 -408
  72. package/dist/constants.cjs.js.map +1 -1
  73. package/dist/constants.es.js +1 -372
  74. package/dist/constants.es.js.map +1 -1
  75. package/dist/control-serialization.cjs.js +82 -41
  76. package/dist/control-serialization.cjs.js.map +1 -1
  77. package/dist/control-serialization.es.js +42 -1
  78. package/dist/control-serialization.es.js.map +1 -1
  79. package/dist/controls.cjs.js +58 -53
  80. package/dist/controls.cjs.js.map +1 -1
  81. package/dist/controls.es.js +8 -3
  82. package/dist/controls.es.js.map +1 -1
  83. package/dist/index.cjs.js +315 -394
  84. package/dist/index.cjs.js.map +1 -1
  85. package/dist/index.cjs10.js +371 -0
  86. package/dist/index.cjs10.js.map +1 -0
  87. package/dist/index.cjs2.js +11 -10
  88. package/dist/index.cjs2.js.map +1 -1
  89. package/dist/index.cjs5.js +108 -98
  90. package/dist/index.cjs5.js.map +1 -1
  91. package/dist/index.cjs6.js +41 -42
  92. package/dist/index.cjs6.js.map +1 -1
  93. package/dist/index.cjs7.js +65 -362
  94. package/dist/index.cjs7.js.map +1 -1
  95. package/dist/index.cjs8.js +43 -0
  96. package/dist/index.cjs8.js.map +1 -0
  97. package/dist/index.cjs9.js +257 -0
  98. package/dist/index.cjs9.js.map +1 -0
  99. package/dist/index.es.js +77 -158
  100. package/dist/index.es.js.map +1 -1
  101. package/dist/index.es10.js +364 -0
  102. package/dist/index.es10.js.map +1 -0
  103. package/dist/index.es2.js +5 -4
  104. package/dist/index.es2.js.map +1 -1
  105. package/dist/index.es3.js +1 -1
  106. package/dist/index.es5.js +72 -63
  107. package/dist/index.es5.js.map +1 -1
  108. package/dist/index.es6.js +36 -40
  109. package/dist/index.es6.js.map +1 -1
  110. package/dist/index.es7.js +66 -358
  111. package/dist/index.es7.js.map +1 -1
  112. package/dist/index.es8.js +40 -0
  113. package/dist/index.es8.js.map +1 -0
  114. package/dist/index.es9.js +250 -0
  115. package/dist/index.es9.js.map +1 -0
  116. package/dist/leaf.cjs.js +4 -4
  117. package/dist/leaf.cjs.js.map +1 -1
  118. package/dist/leaf.es.js +2 -2
  119. package/dist/leaf.es.js.map +1 -1
  120. package/dist/main.cjs.js +4 -4
  121. package/dist/main.es.js +4 -4
  122. package/dist/next.cjs.js +5 -6
  123. package/dist/next.cjs.js.map +1 -1
  124. package/dist/next.es.js +6 -7
  125. package/dist/next.es.js.map +1 -1
  126. package/dist/prop-controllers.cjs.js +10 -7
  127. package/dist/prop-controllers.cjs.js.map +1 -1
  128. package/dist/prop-controllers.es.js +6 -3
  129. package/dist/prop-controllers.es.js.map +1 -1
  130. package/dist/{descriptors.cjs.js → react-page.cjs.js} +865 -93
  131. package/dist/react-page.cjs.js.map +1 -0
  132. package/dist/{descriptors.es.js → react-page.es.js} +811 -92
  133. package/dist/react-page.es.js.map +1 -0
  134. package/dist/react.cjs.js +5 -6
  135. package/dist/react.cjs.js.map +1 -1
  136. package/dist/react.es.js +5 -6
  137. package/dist/react.es.js.map +1 -1
  138. package/dist/select.cjs.js +8 -0
  139. package/dist/select.cjs.js.map +1 -0
  140. package/dist/select.es.js +6 -0
  141. package/dist/select.es.js.map +1 -0
  142. package/dist/slate.cjs.js +19 -6
  143. package/dist/slate.cjs.js.map +1 -1
  144. package/dist/slate.es.js +9 -4
  145. package/dist/slate.es.js.map +1 -1
  146. package/dist/state/breakpoints.cjs.js.map +1 -1
  147. package/dist/state/breakpoints.es.js.map +1 -1
  148. package/dist/text-input.cjs.js +0 -6
  149. package/dist/text-input.cjs.js.map +1 -1
  150. package/dist/text-input.es.js +1 -5
  151. package/dist/text-input.es.js.map +1 -1
  152. package/dist/types/src/api/graphql/generated/types.d.ts +36 -36
  153. package/dist/types/src/api/graphql/generated/types.d.ts.map +1 -1
  154. package/dist/types/src/api/graphql/types.d.ts +2 -2
  155. package/dist/types/src/api/graphql/types.d.ts.map +1 -1
  156. package/dist/types/src/api/react.d.ts +3 -3
  157. package/dist/types/src/api/react.d.ts.map +1 -1
  158. package/dist/types/src/builder/serialization/control-serialization.d.ts +66 -66
  159. package/dist/types/src/builder/serialization/control-serialization.d.ts.map +1 -1
  160. package/dist/types/src/builder/serialization/controls/rich-text-v2.d.ts +5 -0
  161. package/dist/types/src/builder/serialization/controls/rich-text-v2.d.ts.map +1 -0
  162. package/dist/types/src/builder/serialization/controls/types.d.ts +3 -3
  163. package/dist/types/src/builder/serialization/controls/types.d.ts.map +1 -1
  164. package/dist/types/src/builder/serialization/function-serialization.d.ts +4 -4
  165. package/dist/types/src/builder/serialization/function-serialization.d.ts.map +1 -1
  166. package/dist/types/src/components/builtin/Box/animations.d.ts +1 -1
  167. package/dist/types/src/components/builtin/Box/animations.d.ts.map +1 -1
  168. package/dist/types/src/components/builtin/Box/components/Placeholder/index.d.ts +1 -1
  169. package/dist/types/src/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -1
  170. package/dist/types/src/components/builtin/Box/constants.d.ts +1 -1
  171. package/dist/types/src/components/builtin/Box/constants.d.ts.map +1 -1
  172. package/dist/types/src/components/builtin/Button/Button.d.ts +3 -3
  173. package/dist/types/src/components/builtin/Button/Button.d.ts.map +1 -1
  174. package/dist/types/src/components/builtin/Button/contants.d.ts +1 -1
  175. package/dist/types/src/components/builtin/Button/contants.d.ts.map +1 -1
  176. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts +1 -1
  177. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  178. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts +1 -1
  179. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  180. package/dist/types/src/components/builtin/Divider/Divider.d.ts +2 -2
  181. package/dist/types/src/components/builtin/Divider/Divider.d.ts.map +1 -1
  182. package/dist/types/src/components/builtin/Embed/Embed.d.ts +1 -1
  183. package/dist/types/src/components/builtin/Embed/Embed.d.ts.map +1 -1
  184. package/dist/types/src/components/builtin/Form/Form.d.ts +2 -2
  185. package/dist/types/src/components/builtin/Form/Form.d.ts.map +1 -1
  186. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +2 -2
  187. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -1
  188. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +1 -1
  189. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -1
  190. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +1 -1
  191. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -1
  192. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts +1 -1
  193. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
  194. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts +2 -2
  195. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -1
  196. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +1 -1
  197. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -1
  198. package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts +1 -1
  199. package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -1
  200. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +1 -1
  201. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -1
  202. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +1 -1
  203. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -1
  204. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +1 -1
  205. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
  206. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +1 -1
  207. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -1
  208. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts +1 -1
  209. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -1
  210. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +1 -1
  211. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
  212. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts +1 -1
  213. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +1 -1
  214. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts +1 -1
  215. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
  216. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +1 -1
  217. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -1
  218. package/dist/types/src/components/builtin/Form/components/Field/index.d.ts +2 -2
  219. package/dist/types/src/components/builtin/Form/components/Field/index.d.ts.map +1 -1
  220. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts +1 -1
  221. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
  222. package/dist/types/src/components/builtin/Form/context/FormContext.d.ts +5 -5
  223. package/dist/types/src/components/builtin/Form/context/FormContext.d.ts.map +1 -1
  224. package/dist/types/src/components/builtin/Form/types.d.ts +13 -13
  225. package/dist/types/src/components/builtin/Form/types.d.ts.map +1 -1
  226. package/dist/types/src/components/builtin/Image/Image.d.ts +1 -1
  227. package/dist/types/src/components/builtin/Image/Image.d.ts.map +1 -1
  228. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts +1 -1
  229. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  230. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts +3 -3
  231. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -1
  232. package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +1 -1
  233. package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
  234. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +3 -3
  235. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -1
  236. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts +1 -1
  237. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  238. package/dist/types/src/components/builtin/Root/Root.d.ts +1 -1
  239. package/dist/types/src/components/builtin/Root/Root.d.ts.map +1 -1
  240. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts +1 -1
  241. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  242. package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +1 -1
  243. package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -1
  244. package/dist/types/src/components/builtin/Text/EditableText/editable-text.d.ts +1 -1
  245. package/dist/types/src/components/builtin/Text/EditableText/editable-text.d.ts.map +1 -1
  246. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts +4 -3
  247. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +1 -1
  248. package/dist/types/src/components/builtin/Text/Text.d.ts +1 -1
  249. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -1
  250. package/dist/types/src/components/builtin/Text/components/Element/block.d.ts +2 -2
  251. package/dist/types/src/components/builtin/Text/components/Element/block.d.ts.map +1 -1
  252. package/dist/types/src/components/builtin/Text/components/Element/inline.d.ts +1 -1
  253. package/dist/types/src/components/builtin/Text/components/Element/inline.d.ts.map +1 -1
  254. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts +5 -5
  255. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts.map +1 -1
  256. package/dist/types/src/components/builtin/Video/Video.d.ts +1 -1
  257. package/dist/types/src/components/builtin/Video/Video.d.ts.map +1 -1
  258. package/dist/types/src/components/hooks/useBackgrounds.d.ts +8 -8
  259. package/dist/types/src/components/hooks/useBackgrounds.d.ts.map +1 -1
  260. package/dist/types/src/components/hooks/useBorder.d.ts +3 -3
  261. package/dist/types/src/components/hooks/useBorder.d.ts.map +1 -1
  262. package/dist/types/src/components/hooks/useBoxShadow.d.ts +3 -3
  263. package/dist/types/src/components/hooks/useBoxShadow.d.ts.map +1 -1
  264. package/dist/types/src/components/page/BodySnippet.d.ts +1 -1
  265. package/dist/types/src/components/page/BodySnippet.d.ts.map +1 -1
  266. package/dist/types/src/components/page/Page.d.ts +1 -1
  267. package/dist/types/src/components/page/Page.d.ts.map +1 -1
  268. package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +1 -1
  269. package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
  270. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +1 -1
  271. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  272. package/dist/types/src/components/shared/BackgroundsContainer/components/Parallax/index.d.ts +1 -1
  273. package/dist/types/src/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -1
  274. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts +1 -1
  275. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  276. package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts +1 -1
  277. package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -1
  278. package/dist/types/src/components/shared/GutterContainer/index.d.ts +2 -2
  279. package/dist/types/src/components/shared/GutterContainer/index.d.ts.map +1 -1
  280. package/dist/types/src/components/shared/Link/index.d.ts +1 -1
  281. package/dist/types/src/components/shared/Link/index.d.ts.map +1 -1
  282. package/dist/types/src/components/shared/grid-item.d.ts +2 -2
  283. package/dist/types/src/components/shared/grid-item.d.ts.map +1 -1
  284. package/dist/types/src/components/utils/drop-first.d.ts +1 -1
  285. package/dist/types/src/components/utils/drop-first.d.ts.map +1 -1
  286. package/dist/types/src/components/utils/types.d.ts +2 -2
  287. package/dist/types/src/components/utils/types.d.ts.map +1 -1
  288. package/dist/types/src/controls/checkbox.d.ts +3 -3
  289. package/dist/types/src/controls/checkbox.d.ts.map +1 -1
  290. package/dist/types/src/controls/color.d.ts +3 -3
  291. package/dist/types/src/controls/color.d.ts.map +1 -1
  292. package/dist/types/src/controls/combobox.d.ts +5 -5
  293. package/dist/types/src/controls/combobox.d.ts.map +1 -1
  294. package/dist/types/src/controls/control.d.ts +6 -4
  295. package/dist/types/src/controls/control.d.ts.map +1 -1
  296. package/dist/types/src/controls/image.d.ts +4 -4
  297. package/dist/types/src/controls/image.d.ts.map +1 -1
  298. package/dist/types/src/controls/link.d.ts +8 -8
  299. package/dist/types/src/controls/link.d.ts.map +1 -1
  300. package/dist/types/src/controls/list.d.ts +8 -7
  301. package/dist/types/src/controls/list.d.ts.map +1 -1
  302. package/dist/types/src/controls/number.d.ts +3 -3
  303. package/dist/types/src/controls/number.d.ts.map +1 -1
  304. package/dist/types/src/controls/rich-text/dto-types.d.ts +4 -4
  305. package/dist/types/src/controls/rich-text/dto-types.d.ts.map +1 -1
  306. package/dist/types/src/controls/rich-text/index.d.ts +0 -1
  307. package/dist/types/src/controls/rich-text/index.d.ts.map +1 -1
  308. package/dist/types/src/controls/rich-text/rich-text.d.ts +12 -12
  309. package/dist/types/src/controls/rich-text/rich-text.d.ts.map +1 -1
  310. package/dist/types/src/controls/rich-text/translation.d.ts +1 -1
  311. package/dist/types/src/controls/rich-text/translation.d.ts.map +1 -1
  312. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts +55 -13
  313. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  314. package/dist/types/src/controls/select.d.ts +5 -5
  315. package/dist/types/src/controls/select.d.ts.map +1 -1
  316. package/dist/types/src/controls/shape.d.ts +7 -6
  317. package/dist/types/src/controls/shape.d.ts.map +1 -1
  318. package/dist/types/src/controls/slot.d.ts +18 -9
  319. package/dist/types/src/controls/slot.d.ts.map +1 -1
  320. package/dist/types/src/controls/style.d.ts +20 -19
  321. package/dist/types/src/controls/style.d.ts.map +1 -1
  322. package/dist/types/src/controls/text-area.d.ts +3 -3
  323. package/dist/types/src/controls/text-area.d.ts.map +1 -1
  324. package/dist/types/src/controls/text-input.d.ts +3 -3
  325. package/dist/types/src/controls/text-input.d.ts.map +1 -1
  326. package/dist/types/src/controls/types.d.ts +5 -5
  327. package/dist/types/src/controls/types.d.ts.map +1 -1
  328. package/dist/types/src/css/border-radius.d.ts +2 -2
  329. package/dist/types/src/css/border-radius.d.ts.map +1 -1
  330. package/dist/types/src/css/border.d.ts +2 -2
  331. package/dist/types/src/css/border.d.ts.map +1 -1
  332. package/dist/types/src/css/length-percentage.d.ts +2 -2
  333. package/dist/types/src/css/length-percentage.d.ts.map +1 -1
  334. package/dist/types/src/css/length.d.ts +1 -1
  335. package/dist/types/src/css/length.d.ts.map +1 -1
  336. package/dist/types/src/css/margin.d.ts +2 -2
  337. package/dist/types/src/css/margin.d.ts.map +1 -1
  338. package/dist/types/src/css/padding.d.ts +2 -2
  339. package/dist/types/src/css/padding.d.ts.map +1 -1
  340. package/dist/types/src/next/api-handler/handlers/element-tree.d.ts +3 -3
  341. package/dist/types/src/next/api-handler/handlers/element-tree.d.ts.map +1 -1
  342. package/dist/types/src/next/api-handler/handlers/fonts.d.ts +5 -5
  343. package/dist/types/src/next/api-handler/handlers/fonts.d.ts.map +1 -1
  344. package/dist/types/src/next/api-handler/handlers/manifest.d.ts +3 -3
  345. package/dist/types/src/next/api-handler/handlers/manifest.d.ts.map +1 -1
  346. package/dist/types/src/next/api-handler/handlers/proxy-preview-mode.d.ts +2 -2
  347. package/dist/types/src/next/api-handler/handlers/proxy-preview-mode.d.ts.map +1 -1
  348. package/dist/types/src/next/api-handler/handlers/revalidate.d.ts +3 -3
  349. package/dist/types/src/next/api-handler/handlers/revalidate.d.ts.map +1 -1
  350. package/dist/types/src/next/api-handler/index.d.ts +3 -3
  351. package/dist/types/src/next/api-handler/index.d.ts.map +1 -1
  352. package/dist/types/src/next/client.d.ts +8 -8
  353. package/dist/types/src/next/client.d.ts.map +1 -1
  354. package/dist/types/src/next/dynamic.d.ts +4 -4
  355. package/dist/types/src/next/dynamic.d.ts.map +1 -1
  356. package/dist/types/src/next/index.d.ts +2 -2
  357. package/dist/types/src/next/index.d.ts.map +1 -1
  358. package/dist/types/src/next/preview-mode.d.ts +2 -2
  359. package/dist/types/src/next/preview-mode.d.ts.map +1 -1
  360. package/dist/types/src/prop-controllers/base.d.ts +7 -0
  361. package/dist/types/src/prop-controllers/base.d.ts.map +1 -0
  362. package/dist/types/src/prop-controllers/descriptors.d.ts +179 -179
  363. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  364. package/dist/types/src/prop-controllers/instances.d.ts +18 -22
  365. package/dist/types/src/prop-controllers/instances.d.ts.map +1 -1
  366. package/dist/types/src/runtimes/react/components/LiveProvider.d.ts +1 -1
  367. package/dist/types/src/runtimes/react/components/LiveProvider.d.ts.map +1 -1
  368. package/dist/types/src/runtimes/react/components/PreviewProvider.d.ts +1 -1
  369. package/dist/types/src/runtimes/react/components/PreviewProvider.d.ts.map +1 -1
  370. package/dist/types/src/runtimes/react/components/render-hook.d.ts +1 -1
  371. package/dist/types/src/runtimes/react/components/render-hook.d.ts.map +1 -1
  372. package/dist/types/src/runtimes/react/controls/checkbox.d.ts +1 -1
  373. package/dist/types/src/runtimes/react/controls/checkbox.d.ts.map +1 -1
  374. package/dist/types/src/runtimes/react/controls/color.d.ts +1 -1
  375. package/dist/types/src/runtimes/react/controls/color.d.ts.map +1 -1
  376. package/dist/types/src/runtimes/react/controls/combobox.d.ts +1 -1
  377. package/dist/types/src/runtimes/react/controls/combobox.d.ts.map +1 -1
  378. package/dist/types/src/runtimes/react/controls/control.d.ts +2 -2
  379. package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -1
  380. package/dist/types/src/runtimes/react/controls/image.d.ts +3 -3
  381. package/dist/types/src/runtimes/react/controls/image.d.ts.map +1 -1
  382. package/dist/types/src/runtimes/react/controls/link.d.ts +2 -2
  383. package/dist/types/src/runtimes/react/controls/link.d.ts.map +1 -1
  384. package/dist/types/src/runtimes/react/controls/list.d.ts +3 -3
  385. package/dist/types/src/runtimes/react/controls/list.d.ts.map +1 -1
  386. package/dist/types/src/runtimes/react/controls/number.d.ts +1 -1
  387. package/dist/types/src/runtimes/react/controls/number.d.ts.map +1 -1
  388. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts +13 -0
  389. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -0
  390. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts +4 -0
  391. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts.map +1 -0
  392. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.d.ts +9 -0
  393. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.d.ts.map +1 -0
  394. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +24 -0
  395. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -0
  396. package/dist/types/src/runtimes/react/controls/rich-text-v2/index.d.ts +2 -0
  397. package/dist/types/src/runtimes/react/controls/rich-text-v2/index.d.ts.map +1 -0
  398. package/dist/types/src/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts +8 -0
  399. package/dist/types/src/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -0
  400. package/dist/types/src/runtimes/react/controls/rich-text.d.ts +2 -2
  401. package/dist/types/src/runtimes/react/controls/rich-text.d.ts.map +1 -1
  402. package/dist/types/src/runtimes/react/controls/select.d.ts +1 -1
  403. package/dist/types/src/runtimes/react/controls/select.d.ts.map +1 -1
  404. package/dist/types/src/runtimes/react/controls/shape.d.ts +2 -2
  405. package/dist/types/src/runtimes/react/controls/shape.d.ts.map +1 -1
  406. package/dist/types/src/runtimes/react/controls/slot.d.ts +4 -4
  407. package/dist/types/src/runtimes/react/controls/slot.d.ts.map +1 -1
  408. package/dist/types/src/runtimes/react/controls/style.d.ts +1 -1
  409. package/dist/types/src/runtimes/react/controls/style.d.ts.map +1 -1
  410. package/dist/types/src/runtimes/react/controls/text-area.d.ts +1 -1
  411. package/dist/types/src/runtimes/react/controls/text-area.d.ts.map +1 -1
  412. package/dist/types/src/runtimes/react/controls/text-input.d.ts +1 -1
  413. package/dist/types/src/runtimes/react/controls/text-input.d.ts.map +1 -1
  414. package/dist/types/src/runtimes/react/controls.d.ts +8 -8
  415. package/dist/types/src/runtimes/react/controls.d.ts.map +1 -1
  416. package/dist/types/src/runtimes/react/element-imperative-handle.d.ts +1 -1
  417. package/dist/types/src/runtimes/react/element-imperative-handle.d.ts.map +1 -1
  418. package/dist/types/src/runtimes/react/find-dom-node.d.ts +1 -1
  419. package/dist/types/src/runtimes/react/find-dom-node.d.ts.map +1 -1
  420. package/dist/types/src/runtimes/react/index.d.ts +7 -7
  421. package/dist/types/src/runtimes/react/index.d.ts.map +1 -1
  422. package/dist/types/src/slate/BlockPlugin/index.d.ts +33 -2
  423. package/dist/types/src/slate/BlockPlugin/index.d.ts.map +1 -1
  424. package/dist/types/src/slate/BlockPlugin/setBlockKeyForDevice.d.ts +1 -1
  425. package/dist/types/src/slate/BlockPlugin/setBlockKeyForDevice.d.ts.map +1 -1
  426. package/dist/types/src/slate/BlockPlugin/types.d.ts +3 -3
  427. package/dist/types/src/slate/BlockPlugin/types.d.ts.map +1 -1
  428. package/dist/types/src/slate/BlockPlugin/unwrapInline.d.ts +1 -1
  429. package/dist/types/src/slate/BlockPlugin/unwrapInline.d.ts.map +1 -1
  430. package/dist/types/src/slate/BlockPlugin/wrapInline.d.ts +1 -1
  431. package/dist/types/src/slate/BlockPlugin/wrapInline.d.ts.map +1 -1
  432. package/dist/types/src/slate/BuilderPlugin/index.d.ts +7 -0
  433. package/dist/types/src/slate/BuilderPlugin/index.d.ts.map +1 -0
  434. package/dist/types/src/slate/InlineModePlugin/index.d.ts +9 -0
  435. package/dist/types/src/slate/InlineModePlugin/index.d.ts.map +1 -0
  436. package/dist/types/src/slate/ListPlugin/index.d.ts +2 -2
  437. package/dist/types/src/slate/ListPlugin/index.d.ts.map +1 -1
  438. package/dist/types/src/slate/ListPlugin/toggleList.d.ts +2 -2
  439. package/dist/types/src/slate/ListPlugin/toggleList.d.ts.map +1 -1
  440. package/dist/types/src/slate/ListPlugin/unwrapList.d.ts +1 -1
  441. package/dist/types/src/slate/ListPlugin/unwrapList.d.ts.map +1 -1
  442. package/dist/types/src/slate/ListPlugin/wrapList.d.ts +2 -2
  443. package/dist/types/src/slate/ListPlugin/wrapList.d.ts.map +1 -1
  444. package/dist/types/src/slate/TypographyPlugin/clearActiveTypographyStyle.d.ts +1 -1
  445. package/dist/types/src/slate/TypographyPlugin/clearActiveTypographyStyle.d.ts.map +1 -1
  446. package/dist/types/src/slate/TypographyPlugin/clearDeviceActiveTypography.d.ts +1 -1
  447. package/dist/types/src/slate/TypographyPlugin/clearDeviceActiveTypography.d.ts.map +1 -1
  448. package/dist/types/src/slate/TypographyPlugin/detachActiveTypography.d.ts +2 -2
  449. package/dist/types/src/slate/TypographyPlugin/detachActiveTypography.d.ts.map +1 -1
  450. package/dist/types/src/slate/TypographyPlugin/index.d.ts +2 -2
  451. package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
  452. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyId.d.ts +1 -1
  453. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyId.d.ts.map +1 -1
  454. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyStyle.d.ts +1 -1
  455. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyStyle.d.ts.map +1 -1
  456. package/dist/types/src/slate/index.d.ts +3 -0
  457. package/dist/types/src/slate/index.d.ts.map +1 -1
  458. package/dist/types/src/slate/selectors.d.ts +1 -1
  459. package/dist/types/src/slate/selectors.d.ts.map +1 -1
  460. package/dist/types/src/{controls/rich-text → slate}/types.d.ts +56 -46
  461. package/dist/types/src/slate/types.d.ts.map +1 -0
  462. package/dist/types/src/slate/utils/editor.d.ts +1 -1
  463. package/dist/types/src/slate/utils/editor.d.ts.map +1 -1
  464. package/dist/types/src/slate/utils/element.d.ts +1 -1
  465. package/dist/types/src/slate/utils/element.d.ts.map +1 -1
  466. package/dist/types/src/state/actions.d.ts +43 -42
  467. package/dist/types/src/state/actions.d.ts.map +1 -1
  468. package/dist/types/src/state/makeswift-api-client.d.ts +5 -5
  469. package/dist/types/src/state/makeswift-api-client.d.ts.map +1 -1
  470. package/dist/types/src/state/modules/api-resources.d.ts +2 -2
  471. package/dist/types/src/state/modules/api-resources.d.ts.map +1 -1
  472. package/dist/types/src/state/modules/box-models.d.ts +2 -2
  473. package/dist/types/src/state/modules/box-models.d.ts.map +1 -1
  474. package/dist/types/src/state/modules/breakpoints.d.ts +9 -9
  475. package/dist/types/src/state/modules/breakpoints.d.ts.map +1 -1
  476. package/dist/types/src/state/modules/builder-edit-mode.d.ts +2 -2
  477. package/dist/types/src/state/modules/builder-edit-mode.d.ts.map +1 -1
  478. package/dist/types/src/state/modules/components-meta.d.ts +3 -3
  479. package/dist/types/src/state/modules/components-meta.d.ts.map +1 -1
  480. package/dist/types/src/state/modules/element-imperative-handles.d.ts +1 -1
  481. package/dist/types/src/state/modules/element-imperative-handles.d.ts.map +1 -1
  482. package/dist/types/src/state/modules/is-in-builder.d.ts +1 -1
  483. package/dist/types/src/state/modules/is-in-builder.d.ts.map +1 -1
  484. package/dist/types/src/state/modules/is-preview.d.ts +1 -1
  485. package/dist/types/src/state/modules/is-preview.d.ts.map +1 -1
  486. package/dist/types/src/state/modules/pointer.d.ts +2 -2
  487. package/dist/types/src/state/modules/pointer.d.ts.map +1 -1
  488. package/dist/types/src/state/modules/prop-controller-handles.d.ts +3 -2
  489. package/dist/types/src/state/modules/prop-controller-handles.d.ts.map +1 -1
  490. package/dist/types/src/state/modules/prop-controllers.d.ts +1 -1
  491. package/dist/types/src/state/modules/prop-controllers.d.ts.map +1 -1
  492. package/dist/types/src/state/modules/react-components.d.ts +2 -2
  493. package/dist/types/src/state/modules/react-components.d.ts.map +1 -1
  494. package/dist/types/src/state/modules/read-only-documents.d.ts +7 -7
  495. package/dist/types/src/state/modules/read-only-documents.d.ts.map +1 -1
  496. package/dist/types/src/state/modules/read-write-documents.d.ts +1 -1
  497. package/dist/types/src/state/modules/read-write-documents.d.ts.map +1 -1
  498. package/dist/types/src/state/react-builder-preview.d.ts +5 -6
  499. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  500. package/dist/types/src/state/react-page.d.ts +11 -7
  501. package/dist/types/src/state/react-page.d.ts.map +1 -1
  502. package/dist/types/src/state/react-page.test.d.ts +3 -0
  503. package/dist/types/src/state/react-page.test.d.ts.map +1 -0
  504. package/dist/types/src/utils/isErrorWithMessage.d.ts +1 -1
  505. package/dist/types/src/utils/isErrorWithMessage.d.ts.map +1 -1
  506. package/dist/useIsomorphicLayoutEffect.cjs.js +6 -0
  507. package/dist/useIsomorphicLayoutEffect.cjs.js.map +1 -0
  508. package/dist/useIsomorphicLayoutEffect.es.js +5 -0
  509. package/dist/useIsomorphicLayoutEffect.es.js.map +1 -0
  510. package/package.json +4 -3
  511. package/dist/descriptors.cjs.js.map +0 -1
  512. package/dist/descriptors.es.js.map +0 -1
  513. package/dist/introspection.cjs.js +0 -331
  514. package/dist/introspection.cjs.js.map +0 -1
  515. package/dist/introspection.es.js +0 -317
  516. package/dist/introspection.es.js.map +0 -1
  517. package/dist/types/src/controls/rich-text/types.d.ts.map +0 -1
  518. package/dist/types/src/runtimes/react/controls/rich-text-v2.d.ts +0 -15
  519. package/dist/types/src/runtimes/react/controls/rich-text-v2.d.ts.map +0 -1
@@ -25,10 +25,9 @@ var redux = require("redux");
25
25
  var thunk = require("redux-thunk");
26
26
  var Router = require("next/router");
27
27
  var immutable = require("immutable");
28
- var constants = require("./constants.cjs.js");
28
+ var reactPage = require("./react-page.cjs.js");
29
29
  var actions = require("./actions.cjs.js");
30
30
  var boxModels = require("./box-models.cjs.js");
31
- var descriptors = require("./descriptors.cjs.js");
32
31
  var state_breakpoints = require("./state/breakpoints.cjs.js");
33
32
  var controlSerialization = require("./control-serialization.cjs.js");
34
33
  var jsxRuntime = require("react/jsx-runtime");
@@ -37,17 +36,16 @@ require("next/dynamic");
37
36
  require("@emotion/css");
38
37
  require("@emotion/serialize");
39
38
  require("@emotion/utils");
40
- require("slate");
41
39
  require("./text-input.cjs.js");
42
40
  require("./combobox.cjs.js");
41
+ require("./select.cjs.js");
42
+ require("slate");
43
+ require("is-hotkey");
43
44
  require("slate-react");
44
45
  require("use-sync-external-store/shim");
45
46
  require("./types.cjs.js");
46
- require("./introspection.cjs.js");
47
47
  require("color");
48
48
  require("scroll-into-view-if-needed");
49
- require("is-hotkey");
50
- require("slate-history");
51
49
  require("react-dom");
52
50
  require("html-react-parser");
53
51
  require("next/head");
@@ -58,6 +56,7 @@ require("path-to-regexp");
58
56
  require("cookie");
59
57
  require("http-proxy");
60
58
  require("set-cookie-parser");
59
+ require("./constants.cjs.js");
61
60
  require("uuid");
62
61
  require("corporate-ipsum");
63
62
  require("css-box-model");
@@ -83,24 +82,24 @@ function apply(data, operation) {
83
82
  function getInitialState$2({
84
83
  rootElements
85
84
  } = {}) {
86
- return constants.getInitialState({ rootElements });
85
+ return reactPage.getInitialState({ rootElements });
87
86
  }
88
87
  function getReadOnlyDocumentsStateSlice(state) {
89
88
  return state;
90
89
  }
91
90
  function getDocument(state, documentKey) {
92
- return constants.getDocument$1(getReadOnlyDocumentsStateSlice(state), documentKey);
91
+ return reactPage.getDocument$1(getReadOnlyDocumentsStateSlice(state), documentKey);
93
92
  }
94
93
  function reducer$3(state = getInitialState$2(), action) {
95
94
  var _a;
96
- const nextState = constants.reducer(state, action);
95
+ const nextState = reactPage.reducer(state, action);
97
96
  switch (action.type) {
98
97
  case actions.ActionTypes.CHANGE_DOCUMENT: {
99
98
  const currentRootElement = (_a = getDocument(nextState, action.payload.documentKey)) == null ? void 0 : _a.rootElement;
100
99
  if (currentRootElement == null)
101
100
  return nextState;
102
101
  const nextRootElement = apply(currentRootElement, action.payload.operation);
103
- return currentRootElement === nextRootElement ? nextState : new Map(nextState).set(action.payload.documentKey, constants.createDocument(action.payload.documentKey, nextRootElement));
102
+ return currentRootElement === nextRootElement ? nextState : new Map(nextState).set(action.payload.documentKey, reactPage.createDocument(action.payload.documentKey, nextRootElement));
104
103
  }
105
104
  default:
106
105
  return nextState;
@@ -144,14 +143,14 @@ function reducer$1(state = getInitialState(), action) {
144
143
  }
145
144
  const reducer = redux.combineReducers({
146
145
  documents: reducer$3,
147
- reactComponents: constants.reducer$1,
146
+ reactComponents: reactPage.reducer$1,
148
147
  boxModels: boxModels.reducer,
149
- componentsMeta: constants.reducer$2,
150
- propControllers: constants.reducer$3,
151
- propControllerHandles: constants.reducer$4,
152
- isInBuilder: constants.reducer$5,
153
- isPreview: constants.reducer$6,
154
- builderEditMode: descriptors.reducer,
148
+ componentsMeta: reactPage.reducer$2,
149
+ propControllers: reactPage.reducer$3,
150
+ propControllerHandles: reactPage.reducer$4,
151
+ isInBuilder: reactPage.reducer$5,
152
+ isPreview: reactPage.reducer$6,
153
+ builderEditMode: reactPage.reducer$7,
155
154
  pointer: reducer$2,
156
155
  elementImperativeHandles: reducer$1,
157
156
  breakpoints: state_breakpoints.reducer
@@ -172,13 +171,13 @@ function getComponentsMetaStateSlice(state) {
172
171
  return state.componentsMeta;
173
172
  }
174
173
  function getComponentsMeta(state) {
175
- return constants.getComponentsMeta(getComponentsMetaStateSlice(state));
174
+ return reactPage.getComponentsMeta(getComponentsMetaStateSlice(state));
176
175
  }
177
176
  function getPropControllersStateSlice(state) {
178
177
  return state.propControllers;
179
178
  }
180
179
  function getComponentPropControllerDescriptors(state, componentType) {
181
- return constants.getComponentPropControllerDescriptors$1(getPropControllersStateSlice(state), componentType);
180
+ return reactPage.getComponentPropControllerDescriptors$1(getPropControllersStateSlice(state), componentType);
182
181
  }
183
182
  function getPropControllerHandlesStateSlice(state) {
184
183
  return state.propControllerHandles;
@@ -309,7 +308,7 @@ function startHandlingFocusEvents() {
309
308
  window.removeEventListener("focusout", handleFocusOut);
310
309
  };
311
310
  function handleFocusIn(event) {
312
- if (constants.getBuilderEditMode(getState()) === descriptors.BuilderEditMode.INTERACT) {
311
+ if (reactPage.getBuilderEditMode(getState()) === reactPage.BuilderEditMode.INTERACT) {
313
312
  return;
314
313
  }
315
314
  if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {
@@ -317,7 +316,7 @@ function startHandlingFocusEvents() {
317
316
  }
318
317
  }
319
318
  function handleFocusOut(event) {
320
- if (constants.getBuilderEditMode(getState()) === descriptors.BuilderEditMode.INTERACT) {
319
+ if (reactPage.getBuilderEditMode(getState()) === reactPage.BuilderEditMode.INTERACT) {
321
320
  return;
322
321
  }
323
322
  if (!(event.relatedTarget instanceof window.HTMLElement) || !event.relatedTarget.isContentEditable) {
@@ -348,7 +347,7 @@ function elementKeysFromElementFromPoint(elementFromPoint) {
348
347
  if (elementFromPoint == null)
349
348
  return null;
350
349
  const elementImperativeHandles = getElementImperativeHandlesContainingElement(getState(), elementFromPoint);
351
- const acendingDepthDocumentKeys = constants.getDocumentKeysSortedByDepth(getState());
350
+ const acendingDepthDocumentKeys = reactPage.getDocumentKeysSortedByDepth(getState());
352
351
  const descendingDepthDocumentKeys = acendingDepthDocumentKeys.slice().reverse();
353
352
  let currentElement = elementFromPoint;
354
353
  let keys = null;
@@ -443,7 +442,7 @@ function messageChannelMiddleware() {
443
442
  messageChannel.port1.postMessage(actions.registerBuilderComponent(componentType, componentMeta, serializedControls), transferables);
444
443
  }
445
444
  });
446
- const breakpoints = constants.getBreakpoints(state);
445
+ const breakpoints = reactPage.getBreakpoints(state);
447
446
  messageChannel.port1.postMessage(actions.setBreakpoints(breakpoints));
448
447
  Router__default["default"].events.on("routeChangeStart", () => {
449
448
  messageChannel.port1.postMessage(actions.changePathnameStart());
@@ -503,11 +502,11 @@ function messageChannelMiddleware() {
503
502
  }
504
503
  function createAndRegisterPropControllers(documentKey, elementKey) {
505
504
  return (dispatch, getState) => {
506
- const descriptors$1 = constants.getElementPropControllerDescriptors(getState(), documentKey, elementKey);
507
- if (descriptors$1 == null)
505
+ const descriptors = reactPage.getElementPropControllerDescriptors(getState(), documentKey, elementKey);
506
+ if (descriptors == null)
508
507
  return null;
509
- const propControllers = Object.entries(descriptors$1).reduce((acc, [propName, descriptor]) => {
510
- const propController = descriptors.createPropController(descriptor, (message) => dispatch(actions.messageBuilderPropController(documentKey, elementKey, propName, message)));
508
+ const propControllers = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {
509
+ const propController = reactPage.createPropController(descriptor, (message) => dispatch(actions.messageBuilderPropController(documentKey, elementKey, propName, message)));
511
510
  return __spreadProps(__spreadValues({}, acc), { [propName]: propController });
512
511
  }, {});
513
512
  dispatch(actions.registerPropControllers(documentKey, elementKey, propControllers));
@@ -520,9 +519,9 @@ function propControllerHandlesMiddleware() {
520
519
  switch (action.type) {
521
520
  case actions.ActionTypes.REGISTER_COMPONENT_HANDLE: {
522
521
  const { documentKey, elementKey, componentHandle } = action.payload;
523
- const element = constants.getElement(getState(), documentKey, elementKey);
522
+ const element = reactPage.getElement(getState(), documentKey, elementKey);
524
523
  const propControllers = dispatch(createAndRegisterPropControllers(documentKey, elementKey));
525
- if (element != null && !constants.isElementReference(element) && constants.isPropControllersHandle(componentHandle)) {
524
+ if (element != null && !reactPage.isElementReference(element) && reactPage.isPropControllersHandle(componentHandle)) {
526
525
  dispatch(actions.registerPropControllersHandle(documentKey, elementKey, componentHandle));
527
526
  componentHandle.setPropControllers(propControllers);
528
527
  }
@@ -530,13 +529,13 @@ function propControllerHandlesMiddleware() {
530
529
  }
531
530
  case actions.ActionTypes.UNREGISTER_COMPONENT_HANDLE: {
532
531
  const { documentKey, elementKey } = action.payload;
533
- const handle = constants.getPropControllersHandle(getPropControllerHandlesStateSlice(getState()), documentKey, elementKey);
532
+ const handle = reactPage.getPropControllersHandle(getPropControllerHandlesStateSlice(getState()), documentKey, elementKey);
534
533
  handle == null ? void 0 : handle.setPropControllers(null);
535
534
  dispatch(actions.unregisterPropControllers(documentKey, elementKey));
536
535
  break;
537
536
  }
538
537
  case actions.ActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {
539
- const propController = constants.getPropController(getPropControllerHandlesStateSlice(getState()), action.payload.documentKey, action.payload.elementKey, action.payload.propName);
538
+ const propController = reactPage.getPropController(getPropControllerHandlesStateSlice(getState()), action.payload.documentKey, action.payload.elementKey, action.payload.propName);
540
539
  if (propController)
541
540
  propController.recv(action.payload.message);
542
541
  }
@@ -555,7 +554,7 @@ if (void 0) {
555
554
  const setPropControllers = fn();
556
555
  const handle = new next.ElementImperativeHandle();
557
556
  handle.callback(() => ({ setPropControllers }));
558
- store.dispatch(actions.registerDocument(constants.createDocument(documentKey, element)));
557
+ store.dispatch(actions.registerDocument(reactPage.createDocument(documentKey, element)));
559
558
  store.dispatch(actions.registerComponentHandle(documentKey, element.key, handle));
560
559
  expect(setPropControllers).toHaveBeenCalled();
561
560
  });
@@ -566,7 +565,7 @@ if (void 0) {
566
565
  const setPropControllers = fn();
567
566
  const handle = new next.ElementImperativeHandle();
568
567
  handle.callback(() => ({ setPropControllers }));
569
- store.dispatch(actions.registerDocument(constants.createDocument(documentKey, element)));
568
+ store.dispatch(actions.registerDocument(reactPage.createDocument(documentKey, element)));
570
569
  store.dispatch(actions.registerComponentHandle(documentKey, element.key, handle));
571
570
  expect(setPropControllers).not.toHaveBeenCalled();
572
571
  });
@@ -587,7 +586,7 @@ function configureStore({
587
586
  }) {
588
587
  const initialState = __spreadProps(__spreadValues({}, preloadedState), {
589
588
  documents: getInitialState$2({ rootElements }),
590
- isPreview: constants.getInitialState$1(true)
589
+ isPreview: reactPage.getInitialState$1(true)
591
590
  });
592
591
  return redux.createStore(reducer, initialState, redux.applyMiddleware(thunk__default["default"], measureBoxModelsMiddleware(), messageChannelMiddleware(), propControllerHandlesMiddleware(), makeswiftApiClientSyncMiddleware(client)));
593
592
  }
@@ -604,7 +603,7 @@ function PreviewProvider({
604
603
  }), [client, rootElements, runtime]);
605
604
  React.useEffect(() => {
606
605
  var _a;
607
- const unregisterDocuments = Array.from((_a = rootElements == null ? void 0 : rootElements.entries()) != null ? _a : []).map(([documentKey, rootElement]) => store.dispatch(actions.registerDocumentEffect(constants.createDocument(documentKey, rootElement))));
606
+ const unregisterDocuments = Array.from((_a = rootElements == null ? void 0 : rootElements.entries()) != null ? _a : []).map(([documentKey, rootElement]) => store.dispatch(actions.registerDocumentEffect(reactPage.createDocument(documentKey, rootElement))));
608
607
  return () => {
609
608
  unregisterDocuments.forEach((unregisterDocument) => {
610
609
  unregisterDocument();
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewProvider.cjs.js","sources":["../src/state/modules/read-write-documents.ts","../src/state/modules/pointer.ts","../src/state/modules/element-imperative-handles.ts","../src/state/react-builder-preview.ts","../src/runtimes/react/components/PreviewProvider.tsx"],"sourcesContent":["import { Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from './read-only-documents'\nimport { Action, ActionTypes } from '../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from './read-only-documents'\nexport { isElementReference } from './read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n rootElements,\n}: {\n rootElements?: Map<string, ReadOnlyDocuments.Element>\n} = {}): State {\n return ReadOnlyDocuments.getInitialState({ rootElements })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const currentRootElement = getDocument(nextState, action.payload.documentKey)?.rootElement\n\n if (currentRootElement == null) return nextState\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(\n action.payload.documentKey,\n ReadOnlyDocuments.createDocument(action.payload.documentKey, nextRootElement),\n )\n }\n\n default:\n return nextState\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type Point = { x: number; y: number }\n\ntype State = {\n pointer: Point | null\n}\n\nfunction getInitialState(): State {\n return { pointer: null }\n}\n\nexport function getPointer(state: State): Point | null {\n return state.pointer\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.BUILDER_POINTER_MOVE:\n return { ...state, pointer: action.payload.pointer }\n\n default:\n return state\n }\n}\n","import { ElementImperativeHandle } from '../../runtimes/react/element-imperative-handle'\nimport { Action, ActionTypes } from '../actions'\n\ntype State = Map<string, Map<string, ElementImperativeHandle>>\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return state\n}\n\nfunction getInitialState(): State {\n return new Map()\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE:\n return new Map(state).set(\n action.payload.documentKey,\n new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const byElementKey = new Map(state.get(action.payload.documentKey) ?? [])\n\n const deleted = byElementKey.delete(action.payload.elementKey)\n\n if (!deleted) return state\n\n return new Map(state).set(action.payload.documentKey, byElementKey)\n }\n\n default:\n return state\n }\n}\n","import {\n applyMiddleware,\n combineReducers,\n createStore,\n Dispatch as ReduxDispatch,\n Middleware,\n MiddlewareAPI,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkAction, ThunkDispatch } from 'redux-thunk'\nimport Router from 'next/router'\n\nimport deepEqual from '../utils/deepEqual'\n\nimport * as Documents from './modules/read-write-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as BoxModels from './modules/box-models'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsPreview from './modules/is-preview'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Pointer from './modules/pointer'\nimport * as ElementImperativeHandles from './modules/element-imperative-handles'\nimport * as Breakpoints from './modules/breakpoints'\nimport * as ReactPage from './react-page'\nimport {\n Action,\n changeDocumentElementSize,\n changeElementBoxModels,\n messageBuilderPropController,\n registerBuilderComponent,\n registerMeasurable,\n registerPropControllers,\n registerPropControllersHandle,\n registerDocument,\n registerComponentHandle,\n unregisterBuilderComponent,\n unregisterMeasurable,\n unregisterPropControllers,\n setIsInBuilder,\n handleWheel,\n handlePointerMove,\n changePathnameStart,\n changePathnameComplete,\n elementFromPointChange,\n setBreakpoints,\n} from './actions'\nimport { ActionTypes } from './actions'\nimport { createPropController, PropController } from '../prop-controllers/instances'\nimport { serializeControls } from '../builder'\nimport { MakeswiftClient } from '../api/react'\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\n\nexport type { Operation } from './modules/read-write-documents'\nexport type { BoxModelHandle } from './modules/box-models'\nexport { createBox, getBox, parse } from './modules/box-models'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n boxModels: BoxModels.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n isPreview: IsPreview.reducer,\n builderEditMode: BuilderEditMode.reducer,\n pointer: Pointer.reducer,\n elementImperativeHandles: ElementImperativeHandles.reducer,\n breakpoints: Breakpoints.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getBoxModelsStateSlice(state: State): BoxModels.State {\n return state.boxModels\n}\n\nfunction getMeasurables(state: State): Map<string, Map<string, BoxModels.Measurable>> {\n return BoxModels.getMeasurables(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModels(state: State): Map<string, Map<string, BoxModels.BoxModel>> {\n return BoxModels.getBoxModels(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModels.BoxModel | null {\n return BoxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nfunction getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\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 getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nfunction getPointer(state: State): Pointer.Point | null {\n return Pointer.getPointer(state.pointer)\n}\n\nfunction getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return ElementImperativeHandles.getElementImperativeHandles(state.elementImperativeHandles)\n}\n\nfunction getElementImperativeHandlesContainingElement(\n state: State,\n element: Element,\n): Map<string, Map<string, ElementImperativeHandle>> {\n const elementImperativeHandles = getElementImperativeHandles(state)\n const filteredElementImperativeHandles = new Map<string, Map<string, ElementImperativeHandle>>()\n\n for (const [documentKey, byElementKey] of elementImperativeHandles) {\n const filteredByElementKey = new Map<string, ElementImperativeHandle>()\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n const handleElement = elementImperativeHandle.getDomNode()\n\n if (handleElement?.contains(element)) {\n filteredByElementKey.set(elementKey, elementImperativeHandle)\n }\n }\n\n if (filteredByElementKey.size > 0) {\n filteredElementImperativeHandles.set(documentKey, filteredByElementKey)\n }\n }\n\n return filteredElementImperativeHandles\n}\n\nfunction measureElements(): ThunkAction<void, State, unknown, Action> {\n return (dispatch, getState) => {\n const measurables = getMeasurables(getState())\n const currentBoxModels = getBoxModels(getState())\n const measuredBoxModels = new Map<string, Map<string, BoxModels.BoxModel>>()\n\n measurables.forEach((documentMeasurables, documentKey) => {\n const measuredDocumentBoxModels = new Map<string, BoxModels.BoxModel>()\n\n documentMeasurables.forEach((measurable, elementKey) => {\n const boxModel = BoxModels.measure(measurable)\n\n if (boxModel != null) measuredDocumentBoxModels.set(elementKey, boxModel)\n })\n\n if (measuredDocumentBoxModels.size > 0) {\n measuredBoxModels.set(documentKey, measuredDocumentBoxModels)\n }\n })\n\n const changedBoxModels = new Map<string, Map<string, BoxModels.BoxModel | null>>()\n\n currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n currentDocumentBoxModels.forEach((_boxModel, elementKey) => {\n if (!measuredBoxModels.get(documentKey)?.has(elementKey)) {\n changedDocumentBoxModels.set(elementKey, null)\n }\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n })\n\n measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {\n const currentBoxModel = getBoxModel(getState(), documentKey, elementKey)\n\n if (currentBoxModel == null || !deepEqual(currentBoxModel, measuredBoxModel)) {\n changedDocumentBoxModels.set(elementKey, measuredBoxModel)\n }\n })\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n\n if (changedBoxModels.size > 0) dispatch(changeElementBoxModels(changedBoxModels))\n }\n}\n\nexport function startMeasuringElements(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n dispatch(measureElements())\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport type Size = {\n offsetWidth: number\n offsetHeight: number\n clientWidth: number\n clientHeight: number\n scrollWidth: number\n scrollHeight: number\n scrollTop: number\n scrollLeft: number\n}\n\nfunction getElementSize(element: HTMLElement): Size {\n return {\n offsetWidth: element.offsetWidth,\n offsetHeight: element.offsetHeight,\n clientWidth: element.clientWidth,\n clientHeight: element.clientHeight,\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n scrollTop: element.scrollTop,\n scrollLeft: element.scrollLeft,\n }\n}\n\nfunction lockDocumentScroll(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const lastDocumentOverflow = window.document.documentElement.style.overflow\n window.document.documentElement.style.overflow = 'hidden'\n\n window.document.documentElement.addEventListener('wheel', handleWheelEvent)\n\n return () => {\n window.document.documentElement.style.overflow = lastDocumentOverflow\n window.document.documentElement.removeEventListener('wheel', handleWheelEvent)\n }\n\n function handleWheelEvent({ deltaX, deltaY }: WheelEvent) {\n dispatch(handleWheel({ deltaX, deltaY }))\n }\n }\n}\n\nfunction startHandlingPointerMoveEvent(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n window.document.documentElement.addEventListener('pointermove', handlePointerMoveEvent)\n\n return () => {\n window.document.documentElement.removeEventListener('pointermove', handlePointerMoveEvent)\n }\n\n function handlePointerMoveEvent({ clientX, clientY }: PointerEvent) {\n dispatch(handlePointerMove({ clientX, clientY }))\n }\n }\n}\n\nfunction startHandlingFocusEvents(): ThunkAction<() => void, State, unknown, Action> {\n return (_dispatch, getState) => {\n window.addEventListener('focusin', handleFocusIn)\n window.addEventListener('focusout', handleFocusOut)\n\n return () => {\n window.removeEventListener('focusin', handleFocusIn)\n window.removeEventListener('focusout', handleFocusOut)\n }\n\n function handleFocusIn(event: FocusEvent) {\n if (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\n return\n }\n\n if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\n return\n }\n\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\n }\n }\n }\n}\n\nfunction startMeasuringDocumentElement(): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n let lastSize: Size\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n const nextSize = getElementSize(window.document.documentElement)\n\n if (!deepEqual(lastSize, nextSize)) {\n lastSize = nextSize\n\n dispatch(changeDocumentElementSize(nextSize))\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nfunction elementKeysFromElementFromPoint(\n elementFromPoint: Element | null,\n): ThunkAction<{ documentKey: string; elementKey: string } | null, State, unknown, Action> {\n return (_dispatch, getState) => {\n if (elementFromPoint == null) return null\n\n const elementImperativeHandles = getElementImperativeHandlesContainingElement(\n getState(),\n elementFromPoint,\n )\n const acendingDepthDocumentKeys = ReactPage.getDocumentKeysSortedByDepth(getState())\n const descendingDepthDocumentKeys = acendingDepthDocumentKeys.slice().reverse()\n\n let currentElement: Element | null = elementFromPoint\n let keys = null\n\n while (currentElement != null) {\n for (const documentKey of descendingDepthDocumentKeys) {\n const byElementKey = elementImperativeHandles.get(documentKey)\n\n if (byElementKey == null) continue\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n if (elementImperativeHandle.getDomNode() === currentElement) {\n return { documentKey, elementKey }\n }\n }\n }\n\n currentElement = currentElement.parentElement\n }\n\n return keys\n }\n}\n\nfunction startPollingElementFromPoint(): ThunkAction<() => void, State, unknown, Action> {\n return (dispatch, getState) => {\n let lastElementFromPoint: Element | null = null\n let animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameRequestId)\n }\n\n function handleAnimationFrameRequest() {\n const pointer = getPointer(getState())\n const elementFromPoint =\n pointer == null ? null : document.elementFromPoint(pointer.x, pointer.y)\n\n if (elementFromPoint !== lastElementFromPoint) {\n lastElementFromPoint = elementFromPoint\n\n const keys = dispatch(elementKeysFromElementFromPoint(elementFromPoint))\n\n dispatch(elementFromPointChange(keys))\n }\n\n animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport function initialize(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = dispatch(startHandlingFocusEvents())\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent())\n const stopPollingElementFromPoint = dispatch(startPollingElementFromPoint())\n dispatch(setIsInBuilder(true))\n\n return () => {\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\n stopHandlingPointerMoveEvent()\n stopPollingElementFromPoint()\n dispatch(setIsInBuilder(false))\n }\n }\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction measureBoxModelsMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch }: MiddlewareAPI<Dispatch>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n if (BoxModels.isMeasurable(action.payload.componentHandle)) {\n dispatch(\n registerMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE:\n dispatch(unregisterMeasurable(action.payload.documentKey, action.payload.elementKey))\n break\n }\n\n return next(action)\n }\n }\n}\n\nexport function messageChannelMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n let cleanUp = () => {}\n\n if (typeof window === 'undefined') return cleanUp\n\n const messageChannel = new window.MessageChannel()\n\n window.parent.postMessage(messageChannel.port2, '*', [messageChannel.port2])\n\n messageChannel.port1.onmessage = (event: MessageEvent<Action>) => dispatch(event.data)\n\n const state = getState()\n const registeredComponentsMeta = getComponentsMeta(state)\n\n registeredComponentsMeta.forEach((componentMeta, componentType) => {\n const propControllerDescriptors = getComponentPropControllerDescriptors(\n state,\n componentType,\n )\n\n if (propControllerDescriptors != null) {\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n messageChannel.port1.postMessage(\n registerBuilderComponent(componentType, componentMeta, serializedControls),\n transferables,\n )\n }\n })\n\n const breakpoints = ReactPage.getBreakpoints(state)\n messageChannel.port1.postMessage(setBreakpoints(breakpoints))\n\n Router.events.on('routeChangeStart', () => {\n messageChannel.port1.postMessage(changePathnameStart())\n })\n\n Router.events.on('routeChangeComplete', () => {\n messageChannel.port1.postMessage(changePathnameComplete())\n })\n\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.CHANGE_ELEMENT_BOX_MODELS:\n case ActionTypes.MOUNT_COMPONENT:\n case ActionTypes.UNMOUNT_COMPONENT:\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:\n case ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:\n case ActionTypes.HANDLE_WHEEL:\n case ActionTypes.HANDLE_POINTER_MOVE:\n case ActionTypes.ELEMENT_FROM_POINT_CHANGE:\n messageChannel.port1.postMessage(action)\n break\n\n case ActionTypes.REGISTER_COMPONENT: {\n const { type, meta, propControllerDescriptors } = action.payload\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n messageChannel.port1.postMessage(\n registerBuilderComponent(type, meta, serializedControls),\n transferables,\n )\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT:\n messageChannel.port1.postMessage(unregisterBuilderComponent(action.payload.type))\n break\n\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:\n window.document.documentElement.scrollTop = action.payload.scrollTop\n break\n\n case ActionTypes.SCROLL_DOCUMENT_ELEMENT:\n window.document.documentElement.scrollTop += action.payload.scrollTopDelta\n break\n\n case ActionTypes.SET_BUILDER_EDIT_MODE:\n messageChannel.port1.postMessage(action)\n window.getSelection()?.removeAllRanges()\n break\n\n case ActionTypes.CHANGE_PATHNAME: {\n const pathname = action.payload.pathname.replace(/^\\//, '/')\n const currentPathname = Router.asPath.replace(/^\\//, '/')\n\n if (pathname !== currentPathname) Router.push(pathname)\n break\n }\n\n case ActionTypes.INIT:\n cleanUp = dispatch(initialize())\n break\n\n case ActionTypes.CLEAN_UP:\n cleanUp()\n break\n }\n\n return next(action)\n }\n }\n}\n\nfunction createAndRegisterPropControllers(\n documentKey: string,\n elementKey: string,\n): ThunkAction<Record<string, PropController> | null, State, unknown, Action> {\n return (dispatch, getState) => {\n const descriptors = ReactPage.getElementPropControllerDescriptors(\n getState(),\n documentKey,\n elementKey,\n )\n\n if (descriptors == null) return null\n\n const propControllers = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n const propController = createPropController(descriptor, message =>\n dispatch(messageBuilderPropController(documentKey, elementKey, propName, message)),\n ) as PropController\n\n return { ...acc, [propName]: propController }\n }, {} as Record<string, PropController>)\n\n dispatch(registerPropControllers(documentKey, elementKey, propControllers))\n\n return propControllers\n }\n}\n\nfunction propControllerHandlesMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey, componentHandle } = action.payload\n const element = ReactPage.getElement(getState(), documentKey, elementKey)\n const propControllers = dispatch(\n createAndRegisterPropControllers(documentKey, elementKey),\n )\n\n if (\n element != null &&\n !ReactPage.isElementReference(element) &&\n PropControllerHandles.isPropControllersHandle(componentHandle)\n ) {\n dispatch(registerPropControllersHandle(documentKey, elementKey, componentHandle))\n componentHandle.setPropControllers(propControllers)\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const handle = PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(getState()),\n documentKey,\n elementKey,\n )\n\n handle?.setPropControllers(null)\n\n dispatch(unregisterPropControllers(documentKey, elementKey))\n\n break\n }\n\n case ActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {\n const propController = PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(getState()),\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.propName,\n )\n\n if (propController) propController.recv(action.payload.message)\n }\n }\n\n return next(action)\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, it, fn, expect } = import.meta.vitest\n\n describe('propControllerHandlesMiddleware', () => {\n it('registers prop controllers for element data', () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { key: 'elementKey', type: 'type', props: {} }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const setPropControllers = fn()\n const handle = new ElementImperativeHandle()\n\n handle.callback(() => ({ setPropControllers }))\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(setPropControllers).toHaveBeenCalled()\n })\n\n it(\"doesn't register prop controllers for element references\", () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { type: 'reference', key: 'elementKey', value: 'value' }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const setPropControllers = fn()\n const handle = new ElementImperativeHandle()\n\n handle.callback(() => ({ setPropControllers }))\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(setPropControllers).not.toHaveBeenCalled()\n })\n })\n}\n\nfunction makeswiftApiClientSyncMiddleware(\n client: MakeswiftClient,\n): Middleware<Dispatch, State, Dispatch> {\n return () => (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n client.makeswiftApiClient.dispatch(action)\n\n return next(action)\n }\n }\n}\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n client,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n client: MakeswiftClient\n}): Store {\n const initialState: PreloadedState<State> = {\n ...preloadedState,\n documents: Documents.getInitialState({ rootElements }),\n isPreview: IsPreview.getInitialState(true),\n }\n\n return createStore(\n reducer,\n initialState,\n applyMiddleware(\n thunk,\n measureBoxModelsMiddleware(),\n messageChannelMiddleware(),\n propControllerHandlesMiddleware(),\n makeswiftApiClientSyncMiddleware(client),\n ),\n )\n}\n","import { ReactNode, useEffect, useMemo } from 'react'\n\nimport { StoreContext, ReactRuntime } from '..'\nimport * as ReactBuilderPreview from '../../../state/react-builder-preview'\nimport * as ReactPage from '../../../state/react-page'\nimport { MakeswiftProvider, MakeswiftClient } from '../../../api/react'\nimport { registerDocumentEffect } from '../../../state/actions'\n\ntype Props = {\n client: MakeswiftClient\n rootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n runtime?: ReactRuntime\n}\n\nexport default function PreviewProvider({\n client,\n children,\n rootElements,\n runtime,\n}: Props): JSX.Element {\n const store = useMemo(\n () =>\n ReactBuilderPreview.configureStore({\n preloadedState: runtime ? runtime.store.getState() : ReactRuntime.store.getState(),\n rootElements,\n client,\n }),\n [client, rootElements, runtime],\n )\n\n useEffect(() => {\n const unregisterDocuments = Array.from(rootElements?.entries() ?? []).map(\n ([documentKey, rootElement]) =>\n store.dispatch(registerDocumentEffect(ReactPage.createDocument(documentKey, rootElement))),\n )\n\n return () => {\n unregisterDocuments.forEach(unregisterDocument => {\n unregisterDocument()\n })\n }\n }, [store, rootElements])\n\n return (\n <StoreContext.Provider value={store}>\n <MakeswiftProvider client={client}>{children}</MakeswiftProvider>\n </StoreContext.Provider>\n )\n}\n"],"names":["removeIn","setIn","ReadOnlyDocuments.getInitialState","ReadOnlyDocuments.getDocument","getInitialState","ReadOnlyDocuments.reducer","ActionTypes","ReadOnlyDocuments.createDocument","combineReducers","Documents.reducer","ReactComponents.reducer","BoxModels.reducer","ComponentsMeta.reducer","PropControllers.reducer","PropControllerHandles.reducer","IsInBuilder.reducer","IsPreview.reducer","BuilderEditMode.reducer","Pointer.reducer","ElementImperativeHandles.reducer","Breakpoints.reducer","BoxModels.getMeasurables","BoxModels.getBoxModels","BoxModels.getBoxModel","ComponentsMeta.getComponentsMeta","PropControllers.getComponentPropControllerDescriptors","Pointer.getPointer","ElementImperativeHandles.getElementImperativeHandles","BoxModels.measure","deepEqual","changeElementBoxModels","handleWheel","handlePointerMove","ReactPage.getBuilderEditMode","BuilderEditMode.BuilderEditMode","changeDocumentElementSize","ReactPage.getDocumentKeysSortedByDepth","elementFromPointChange","setIsInBuilder","BoxModels.isMeasurable","registerMeasurable","unregisterMeasurable","serializeControls","registerBuilderComponent","ReactPage.getBreakpoints","setBreakpoints","Router","changePathnameStart","changePathnameComplete","unregisterBuilderComponent","descriptors","ReactPage.getElementPropControllerDescriptors","createPropController","messageBuilderPropController","registerPropControllers","ReactPage.getElement","ReactPage.isElementReference","PropControllerHandles.isPropControllersHandle","registerPropControllersHandle","PropControllerHandles.getPropControllersHandle","unregisterPropControllers","PropControllerHandles.getPropController","createStore","applyMiddleware","thunk","ElementImperativeHandle","registerDocument","ReactPage.createDocument","registerComponentHandle","Documents.getInitialState","IsPreview.getInitialState","client","children","rootElements","runtime","store","useMemo","ReactBuilderPreview","preloadedState","getState","ReactRuntime","useEffect","unregisterDocuments","Array","from","entries","map","documentKey","rootElement","dispatch","registerDocumentEffect","ReactPage","forEach","unregisterDocument","_jsx","StoreContext","MakeswiftProvider"],"mappings":"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"}
1
+ {"version":3,"file":"PreviewProvider.cjs.js","sources":["../src/state/modules/read-write-documents.ts","../src/state/modules/pointer.ts","../src/state/modules/element-imperative-handles.ts","../src/state/react-builder-preview.ts","../src/runtimes/react/components/PreviewProvider.tsx"],"sourcesContent":["import { Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from './read-only-documents'\nimport { Action, ActionTypes } from '../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from './read-only-documents'\nexport { isElementReference } from './read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n rootElements,\n}: {\n rootElements?: Map<string, ReadOnlyDocuments.Element>\n} = {}): State {\n return ReadOnlyDocuments.getInitialState({ rootElements })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const currentRootElement = getDocument(nextState, action.payload.documentKey)?.rootElement\n\n if (currentRootElement == null) return nextState\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(\n action.payload.documentKey,\n ReadOnlyDocuments.createDocument(action.payload.documentKey, nextRootElement),\n )\n }\n\n default:\n return nextState\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type Point = { x: number; y: number }\n\ntype State = {\n pointer: Point | null\n}\n\nfunction getInitialState(): State {\n return { pointer: null }\n}\n\nexport function getPointer(state: State): Point | null {\n return state.pointer\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.BUILDER_POINTER_MOVE:\n return { ...state, pointer: action.payload.pointer }\n\n default:\n return state\n }\n}\n","import { ElementImperativeHandle } from '../../runtimes/react/element-imperative-handle'\nimport { Action, ActionTypes } from '../actions'\n\ntype State = Map<string, Map<string, ElementImperativeHandle>>\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return state\n}\n\nfunction getInitialState(): State {\n return new Map()\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE:\n return new Map(state).set(\n action.payload.documentKey,\n new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const byElementKey = new Map(state.get(action.payload.documentKey) ?? [])\n\n const deleted = byElementKey.delete(action.payload.elementKey)\n\n if (!deleted) return state\n\n return new Map(state).set(action.payload.documentKey, byElementKey)\n }\n\n default:\n return state\n }\n}\n","import {\n applyMiddleware,\n combineReducers,\n createStore,\n Dispatch as ReduxDispatch,\n Middleware,\n MiddlewareAPI,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkAction, ThunkDispatch } from 'redux-thunk'\nimport Router from 'next/router'\n\nimport deepEqual from '../utils/deepEqual'\n\nimport * as Documents from './modules/read-write-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as BoxModels from './modules/box-models'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsPreview from './modules/is-preview'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Pointer from './modules/pointer'\nimport * as ElementImperativeHandles from './modules/element-imperative-handles'\nimport * as Breakpoints from './modules/breakpoints'\nimport * as ReactPage from './react-page'\nimport {\n Action,\n changeDocumentElementSize,\n changeElementBoxModels,\n messageBuilderPropController,\n registerBuilderComponent,\n registerMeasurable,\n registerPropControllers,\n registerPropControllersHandle,\n registerDocument,\n registerComponentHandle,\n unregisterBuilderComponent,\n unregisterMeasurable,\n unregisterPropControllers,\n setIsInBuilder,\n handleWheel,\n handlePointerMove,\n changePathnameStart,\n changePathnameComplete,\n elementFromPointChange,\n setBreakpoints,\n} from './actions'\nimport { ActionTypes } from './actions'\nimport { createPropController } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { serializeControls } from '../builder'\nimport { MakeswiftClient } from '../api/react'\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\n\nexport type { Operation } from './modules/read-write-documents'\nexport type { BoxModelHandle } from './modules/box-models'\nexport { createBox, getBox, parse } from './modules/box-models'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n boxModels: BoxModels.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n isPreview: IsPreview.reducer,\n builderEditMode: BuilderEditMode.reducer,\n pointer: Pointer.reducer,\n elementImperativeHandles: ElementImperativeHandles.reducer,\n breakpoints: Breakpoints.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getBoxModelsStateSlice(state: State): BoxModels.State {\n return state.boxModels\n}\n\nfunction getMeasurables(state: State): Map<string, Map<string, BoxModels.Measurable>> {\n return BoxModels.getMeasurables(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModels(state: State): Map<string, Map<string, BoxModels.BoxModel>> {\n return BoxModels.getBoxModels(getBoxModelsStateSlice(state))\n}\n\nfunction getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModels.BoxModel | null {\n return BoxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nfunction getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\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 getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nfunction getPointer(state: State): Pointer.Point | null {\n return Pointer.getPointer(state.pointer)\n}\n\nfunction getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return ElementImperativeHandles.getElementImperativeHandles(state.elementImperativeHandles)\n}\n\nfunction getElementImperativeHandlesContainingElement(\n state: State,\n element: Element,\n): Map<string, Map<string, ElementImperativeHandle>> {\n const elementImperativeHandles = getElementImperativeHandles(state)\n const filteredElementImperativeHandles = new Map<string, Map<string, ElementImperativeHandle>>()\n\n for (const [documentKey, byElementKey] of elementImperativeHandles) {\n const filteredByElementKey = new Map<string, ElementImperativeHandle>()\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n const handleElement = elementImperativeHandle.getDomNode()\n\n if (handleElement?.contains(element)) {\n filteredByElementKey.set(elementKey, elementImperativeHandle)\n }\n }\n\n if (filteredByElementKey.size > 0) {\n filteredElementImperativeHandles.set(documentKey, filteredByElementKey)\n }\n }\n\n return filteredElementImperativeHandles\n}\n\nfunction measureElements(): ThunkAction<void, State, unknown, Action> {\n return (dispatch, getState) => {\n const measurables = getMeasurables(getState())\n const currentBoxModels = getBoxModels(getState())\n const measuredBoxModels = new Map<string, Map<string, BoxModels.BoxModel>>()\n\n measurables.forEach((documentMeasurables, documentKey) => {\n const measuredDocumentBoxModels = new Map<string, BoxModels.BoxModel>()\n\n documentMeasurables.forEach((measurable, elementKey) => {\n const boxModel = BoxModels.measure(measurable)\n\n if (boxModel != null) measuredDocumentBoxModels.set(elementKey, boxModel)\n })\n\n if (measuredDocumentBoxModels.size > 0) {\n measuredBoxModels.set(documentKey, measuredDocumentBoxModels)\n }\n })\n\n const changedBoxModels = new Map<string, Map<string, BoxModels.BoxModel | null>>()\n\n currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n currentDocumentBoxModels.forEach((_boxModel, elementKey) => {\n if (!measuredBoxModels.get(documentKey)?.has(elementKey)) {\n changedDocumentBoxModels.set(elementKey, null)\n }\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n })\n\n measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {\n const changedDocumentBoxModels = new Map<string, BoxModels.BoxModel | null>()\n\n measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {\n const currentBoxModel = getBoxModel(getState(), documentKey, elementKey)\n\n if (currentBoxModel == null || !deepEqual(currentBoxModel, measuredBoxModel)) {\n changedDocumentBoxModels.set(elementKey, measuredBoxModel)\n }\n })\n\n if (changedDocumentBoxModels.size > 0) {\n changedBoxModels.set(documentKey, changedDocumentBoxModels)\n }\n })\n\n if (changedBoxModels.size > 0) dispatch(changeElementBoxModels(changedBoxModels))\n }\n}\n\nexport function startMeasuringElements(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n dispatch(measureElements())\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport type Size = {\n offsetWidth: number\n offsetHeight: number\n clientWidth: number\n clientHeight: number\n scrollWidth: number\n scrollHeight: number\n scrollTop: number\n scrollLeft: number\n}\n\nfunction getElementSize(element: HTMLElement): Size {\n return {\n offsetWidth: element.offsetWidth,\n offsetHeight: element.offsetHeight,\n clientWidth: element.clientWidth,\n clientHeight: element.clientHeight,\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n scrollTop: element.scrollTop,\n scrollLeft: element.scrollLeft,\n }\n}\n\nfunction lockDocumentScroll(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const lastDocumentOverflow = window.document.documentElement.style.overflow\n window.document.documentElement.style.overflow = 'hidden'\n\n window.document.documentElement.addEventListener('wheel', handleWheelEvent)\n\n return () => {\n window.document.documentElement.style.overflow = lastDocumentOverflow\n window.document.documentElement.removeEventListener('wheel', handleWheelEvent)\n }\n\n function handleWheelEvent({ deltaX, deltaY }: WheelEvent) {\n dispatch(handleWheel({ deltaX, deltaY }))\n }\n }\n}\n\nfunction startHandlingPointerMoveEvent(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n window.document.documentElement.addEventListener('pointermove', handlePointerMoveEvent)\n\n return () => {\n window.document.documentElement.removeEventListener('pointermove', handlePointerMoveEvent)\n }\n\n function handlePointerMoveEvent({ clientX, clientY }: PointerEvent) {\n dispatch(handlePointerMove({ clientX, clientY }))\n }\n }\n}\n\nfunction startHandlingFocusEvents(): ThunkAction<() => void, State, unknown, Action> {\n return (_dispatch, getState) => {\n window.addEventListener('focusin', handleFocusIn)\n window.addEventListener('focusout', handleFocusOut)\n\n return () => {\n window.removeEventListener('focusin', handleFocusIn)\n window.removeEventListener('focusout', handleFocusOut)\n }\n\n function handleFocusIn(event: FocusEvent) {\n if (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\n return\n }\n\n if (!(event.target instanceof window.HTMLElement) || !event.target.isContentEditable) {\n window.parent.focus()\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (ReactPage.getBuilderEditMode(getState()) === BuilderEditMode.BuilderEditMode.INTERACT) {\n return\n }\n\n if (\n !(event.relatedTarget instanceof window.HTMLElement) ||\n !event.relatedTarget.isContentEditable\n ) {\n window.parent.focus()\n }\n }\n }\n}\n\nfunction startMeasuringDocumentElement(): ThunkAction<() => void, unknown, unknown, Action> {\n return dispatch => {\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n let lastSize: Size\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n const nextSize = getElementSize(window.document.documentElement)\n\n if (!deepEqual(lastSize, nextSize)) {\n lastSize = nextSize\n\n dispatch(changeDocumentElementSize(nextSize))\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nfunction elementKeysFromElementFromPoint(\n elementFromPoint: Element | null,\n): ThunkAction<{ documentKey: string; elementKey: string } | null, State, unknown, Action> {\n return (_dispatch, getState) => {\n if (elementFromPoint == null) return null\n\n const elementImperativeHandles = getElementImperativeHandlesContainingElement(\n getState(),\n elementFromPoint,\n )\n const acendingDepthDocumentKeys = ReactPage.getDocumentKeysSortedByDepth(getState())\n const descendingDepthDocumentKeys = acendingDepthDocumentKeys.slice().reverse()\n\n let currentElement: Element | null = elementFromPoint\n let keys = null\n\n while (currentElement != null) {\n for (const documentKey of descendingDepthDocumentKeys) {\n const byElementKey = elementImperativeHandles.get(documentKey)\n\n if (byElementKey == null) continue\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n if (elementImperativeHandle.getDomNode() === currentElement) {\n return { documentKey, elementKey }\n }\n }\n }\n\n currentElement = currentElement.parentElement\n }\n\n return keys\n }\n}\n\nfunction startPollingElementFromPoint(): ThunkAction<() => void, State, unknown, Action> {\n return (dispatch, getState) => {\n let lastElementFromPoint: Element | null = null\n let animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameRequestId)\n }\n\n function handleAnimationFrameRequest() {\n const pointer = getPointer(getState())\n const elementFromPoint =\n pointer == null ? null : document.elementFromPoint(pointer.x, pointer.y)\n\n if (elementFromPoint !== lastElementFromPoint) {\n lastElementFromPoint = elementFromPoint\n\n const keys = dispatch(elementKeysFromElementFromPoint(elementFromPoint))\n\n dispatch(elementFromPointChange(keys))\n }\n\n animationFrameRequestId = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }\n}\n\nexport function initialize(): ThunkAction<() => void, State, unknown, Action> {\n return dispatch => {\n const stopMeasuringElements = dispatch(startMeasuringElements())\n const stopMeasuringDocumentElement = dispatch(startMeasuringDocumentElement())\n const stopHandlingFocusEvent = dispatch(startHandlingFocusEvents())\n const unlockDocumentScroll = dispatch(lockDocumentScroll())\n const stopHandlingPointerMoveEvent = dispatch(startHandlingPointerMoveEvent())\n const stopPollingElementFromPoint = dispatch(startPollingElementFromPoint())\n dispatch(setIsInBuilder(true))\n\n return () => {\n stopMeasuringElements()\n stopMeasuringDocumentElement()\n stopHandlingFocusEvent()\n unlockDocumentScroll()\n stopHandlingPointerMoveEvent()\n stopPollingElementFromPoint()\n dispatch(setIsInBuilder(false))\n }\n }\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction measureBoxModelsMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch }: MiddlewareAPI<Dispatch>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n if (BoxModels.isMeasurable(action.payload.componentHandle)) {\n dispatch(\n registerMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE:\n dispatch(unregisterMeasurable(action.payload.documentKey, action.payload.elementKey))\n break\n }\n\n return next(action)\n }\n }\n}\n\nexport function messageChannelMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n let cleanUp = () => {}\n\n if (typeof window === 'undefined') return cleanUp\n\n const messageChannel = new window.MessageChannel()\n\n window.parent.postMessage(messageChannel.port2, '*', [messageChannel.port2])\n\n messageChannel.port1.onmessage = (event: MessageEvent<Action>) => dispatch(event.data)\n\n const state = getState()\n const registeredComponentsMeta = getComponentsMeta(state)\n\n registeredComponentsMeta.forEach((componentMeta, componentType) => {\n const propControllerDescriptors = getComponentPropControllerDescriptors(\n state,\n componentType,\n )\n\n if (propControllerDescriptors != null) {\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n messageChannel.port1.postMessage(\n registerBuilderComponent(componentType, componentMeta, serializedControls),\n transferables,\n )\n }\n })\n\n const breakpoints = ReactPage.getBreakpoints(state)\n messageChannel.port1.postMessage(setBreakpoints(breakpoints))\n\n Router.events.on('routeChangeStart', () => {\n messageChannel.port1.postMessage(changePathnameStart())\n })\n\n Router.events.on('routeChangeComplete', () => {\n messageChannel.port1.postMessage(changePathnameComplete())\n })\n\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.CHANGE_ELEMENT_BOX_MODELS:\n case ActionTypes.MOUNT_COMPONENT:\n case ActionTypes.UNMOUNT_COMPONENT:\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:\n case ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:\n case ActionTypes.HANDLE_WHEEL:\n case ActionTypes.HANDLE_POINTER_MOVE:\n case ActionTypes.ELEMENT_FROM_POINT_CHANGE:\n messageChannel.port1.postMessage(action)\n break\n\n case ActionTypes.REGISTER_COMPONENT: {\n const { type, meta, propControllerDescriptors } = action.payload\n const [serializedControls, transferables] = serializeControls(propControllerDescriptors)\n\n messageChannel.port1.postMessage(\n registerBuilderComponent(type, meta, serializedControls),\n transferables,\n )\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT:\n messageChannel.port1.postMessage(unregisterBuilderComponent(action.payload.type))\n break\n\n case ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:\n window.document.documentElement.scrollTop = action.payload.scrollTop\n break\n\n case ActionTypes.SCROLL_DOCUMENT_ELEMENT:\n window.document.documentElement.scrollTop += action.payload.scrollTopDelta\n break\n\n case ActionTypes.SET_BUILDER_EDIT_MODE:\n messageChannel.port1.postMessage(action)\n window.getSelection()?.removeAllRanges()\n break\n\n case ActionTypes.CHANGE_PATHNAME: {\n const pathname = action.payload.pathname.replace(/^\\//, '/')\n const currentPathname = Router.asPath.replace(/^\\//, '/')\n\n if (pathname !== currentPathname) Router.push(pathname)\n break\n }\n\n case ActionTypes.INIT:\n cleanUp = dispatch(initialize())\n break\n\n case ActionTypes.CLEAN_UP:\n cleanUp()\n break\n }\n\n return next(action)\n }\n }\n}\n\nfunction createAndRegisterPropControllers(\n documentKey: string,\n elementKey: string,\n): ThunkAction<Record<string, PropController> | null, State, unknown, Action> {\n return (dispatch, getState) => {\n const descriptors = ReactPage.getElementPropControllerDescriptors(\n getState(),\n documentKey,\n elementKey,\n )\n\n if (descriptors == null) return null\n\n const propControllers = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n const propController = createPropController(descriptor, message =>\n dispatch(messageBuilderPropController(documentKey, elementKey, propName, message)),\n ) as PropController\n\n return { ...acc, [propName]: propController }\n }, {} as Record<string, PropController>)\n\n dispatch(registerPropControllers(documentKey, elementKey, propControllers))\n\n return propControllers\n }\n}\n\nfunction propControllerHandlesMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return ({ dispatch, getState }: MiddlewareAPI<Dispatch, State>) =>\n (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey, componentHandle } = action.payload\n const element = ReactPage.getElement(getState(), documentKey, elementKey)\n const propControllers = dispatch(\n createAndRegisterPropControllers(documentKey, elementKey),\n )\n\n if (\n element != null &&\n !ReactPage.isElementReference(element) &&\n PropControllerHandles.isPropControllersHandle(componentHandle)\n ) {\n dispatch(registerPropControllersHandle(documentKey, elementKey, componentHandle))\n componentHandle.setPropControllers(propControllers)\n }\n\n break\n }\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const handle = PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(getState()),\n documentKey,\n elementKey,\n )\n\n handle?.setPropControllers(null)\n\n dispatch(unregisterPropControllers(documentKey, elementKey))\n\n break\n }\n\n case ActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {\n const propController = PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(getState()),\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.propName,\n )\n\n if (propController) propController.recv(action.payload.message)\n }\n }\n\n return next(action)\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, it, fn, expect } = import.meta.vitest\n\n describe('propControllerHandlesMiddleware', () => {\n it('registers prop controllers for element data', () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { key: 'elementKey', type: 'type', props: {} }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const setPropControllers = fn()\n const handle = new ElementImperativeHandle()\n\n handle.callback(() => ({ setPropControllers }))\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(setPropControllers).toHaveBeenCalled()\n })\n\n it(\"doesn't register prop controllers for element references\", () => {\n // Arrange\n const documentKey = 'documentKey'\n const element: ReactPage.Element = { type: 'reference', key: 'elementKey', value: 'value' }\n const store = createStore(reducer, applyMiddleware(thunk, propControllerHandlesMiddleware()))\n const setPropControllers = fn()\n const handle = new ElementImperativeHandle()\n\n handle.callback(() => ({ setPropControllers }))\n\n store.dispatch(registerDocument(ReactPage.createDocument(documentKey, element)))\n\n // Act\n store.dispatch(registerComponentHandle(documentKey, element.key, handle))\n\n // Assert\n expect(setPropControllers).not.toHaveBeenCalled()\n })\n })\n}\n\nfunction makeswiftApiClientSyncMiddleware(\n client: MakeswiftClient,\n): Middleware<Dispatch, State, Dispatch> {\n return () => (next: ReduxDispatch<Action>) => {\n return (action: Action): Action => {\n client.makeswiftApiClient.dispatch(action)\n\n return next(action)\n }\n }\n}\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n client,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n client: MakeswiftClient\n}): Store {\n const initialState: PreloadedState<State> = {\n ...preloadedState,\n documents: Documents.getInitialState({ rootElements }),\n isPreview: IsPreview.getInitialState(true),\n }\n\n return createStore(\n reducer,\n initialState,\n applyMiddleware(\n thunk,\n measureBoxModelsMiddleware(),\n messageChannelMiddleware(),\n propControllerHandlesMiddleware(),\n makeswiftApiClientSyncMiddleware(client),\n ),\n )\n}\n","import { ReactNode, useEffect, useMemo } from 'react'\n\nimport { StoreContext, ReactRuntime } from '..'\nimport * as ReactBuilderPreview from '../../../state/react-builder-preview'\nimport * as ReactPage from '../../../state/react-page'\nimport { MakeswiftProvider, MakeswiftClient } from '../../../api/react'\nimport { registerDocumentEffect } from '../../../state/actions'\n\ntype Props = {\n client: MakeswiftClient\n rootElements?: Map<string, ReactPage.Element>\n children?: ReactNode\n runtime?: ReactRuntime\n}\n\nexport default function PreviewProvider({\n client,\n children,\n rootElements,\n runtime,\n}: Props): JSX.Element {\n const store = useMemo(\n () =>\n ReactBuilderPreview.configureStore({\n preloadedState: runtime ? runtime.store.getState() : ReactRuntime.store.getState(),\n rootElements,\n client,\n }),\n [client, rootElements, runtime],\n )\n\n useEffect(() => {\n const unregisterDocuments = Array.from(rootElements?.entries() ?? []).map(\n ([documentKey, rootElement]) =>\n store.dispatch(registerDocumentEffect(ReactPage.createDocument(documentKey, rootElement))),\n )\n\n return () => {\n unregisterDocuments.forEach(unregisterDocument => {\n unregisterDocument()\n })\n }\n }, [store, rootElements])\n\n return (\n <StoreContext.Provider value={store}>\n <MakeswiftProvider client={client}>{children}</MakeswiftProvider>\n </StoreContext.Provider>\n )\n}\n"],"names":["removeIn","setIn","ReadOnlyDocuments.getInitialState","ReadOnlyDocuments.getDocument","getInitialState","ReadOnlyDocuments.reducer","ActionTypes","ReadOnlyDocuments.createDocument","combineReducers","Documents.reducer","ReactComponents.reducer","BoxModels.reducer","ComponentsMeta.reducer","PropControllers.reducer","PropControllerHandles.reducer","IsInBuilder.reducer","IsPreview.reducer","BuilderEditMode.reducer","Pointer.reducer","ElementImperativeHandles.reducer","Breakpoints.reducer","BoxModels.getMeasurables","BoxModels.getBoxModels","BoxModels.getBoxModel","ComponentsMeta.getComponentsMeta","PropControllers.getComponentPropControllerDescriptors","Pointer.getPointer","ElementImperativeHandles.getElementImperativeHandles","BoxModels.measure","deepEqual","changeElementBoxModels","handleWheel","handlePointerMove","ReactPage.getBuilderEditMode","BuilderEditMode.BuilderEditMode","changeDocumentElementSize","ReactPage.getDocumentKeysSortedByDepth","elementFromPointChange","setIsInBuilder","BoxModels.isMeasurable","registerMeasurable","unregisterMeasurable","serializeControls","registerBuilderComponent","ReactPage.getBreakpoints","setBreakpoints","Router","changePathnameStart","changePathnameComplete","unregisterBuilderComponent","ReactPage.getElementPropControllerDescriptors","createPropController","messageBuilderPropController","registerPropControllers","ReactPage.getElement","ReactPage.isElementReference","PropControllerHandles.isPropControllersHandle","registerPropControllersHandle","PropControllerHandles.getPropControllersHandle","unregisterPropControllers","PropControllerHandles.getPropController","createStore","applyMiddleware","thunk","ElementImperativeHandle","registerDocument","ReactPage.createDocument","registerComponentHandle","Documents.getInitialState","IsPreview.getInitialState","client","children","rootElements","runtime","store","useMemo","ReactBuilderPreview","preloadedState","getState","ReactRuntime","useEffect","unregisterDocuments","Array","from","entries","map","documentKey","rootElement","dispatch","registerDocumentEffect","ReactPage","forEach","unregisterDocument","_jsx","StoreContext","MakeswiftProvider"],"mappings":"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"}
@@ -19,15 +19,14 @@ var __spreadValues = (a, b) => {
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  const import_meta = {};
21
21
  import { useMemo, useEffect } from "react";
22
- import { M as deepEqual, N as ElementImperativeHandle, a as ReactRuntime, O as StoreContext, Q as MakeswiftProvider } from "./index.es.js";
22
+ import { L as deepEqual, M as ElementImperativeHandle, a as ReactRuntime, N as StoreContext, O as MakeswiftProvider } from "./index.es.js";
23
23
  import { createStore, applyMiddleware, combineReducers } from "redux";
24
24
  import thunk from "redux-thunk";
25
25
  import Router from "next/router";
26
26
  import { removeIn, setIn } from "immutable";
27
- import { q as getInitialState$3, r as reducer$4, s as getDocument$1, c as createDocument, t as getComponentsMeta$1, u as getComponentPropControllerDescriptors$1, j as getBreakpoints, p as getBuilderEditMode, v as getDocumentKeysSortedByDepth, w as getPropController, x as getPropControllersHandle, y as getElement, z as getElementPropControllerDescriptors, i as isElementReference, b as isPropControllersHandle, A as reducer$5, B as reducer$7, C as reducer$8, D as reducer$9, E as reducer$a, F as reducer$b, G as getInitialState$4 } from "./constants.es.js";
27
+ import { b7 as getInitialState$3, b8 as reducer$4, b9 as getDocument$1, c as createDocument, ba as getComponentsMeta$1, bb as getComponentPropControllerDescriptors$1, ak as getBreakpoints, aq as getBuilderEditMode, bc as BuilderEditMode, bd as getDocumentKeysSortedByDepth, be as getPropController, bf as getPropControllersHandle, bg as getElement, bh as getElementPropControllerDescriptors, bi as createPropController, b as isElementReference, a2 as isPropControllersHandle, bj as reducer$5, bk as reducer$7, bl as reducer$8, bm as reducer$9, bn as reducer$a, bo as reducer$b, bp as reducer$c, bq as getInitialState$4 } from "./react-page.es.js";
28
28
  import { A as ActionTypes, q as unregisterMeasurable, t as registerMeasurable, v as registerBuilderComponent, j as setBreakpoints, w as changePathnameStart, x as changePathnameComplete, y as changeElementBoxModels, z as changeDocumentElementSize, B as handleWheel, C as handlePointerMove, D as elementFromPointChange, E as setIsInBuilder, F as unregisterBuilderComponent, G as unregisterPropControllers, H as registerPropControllers, I as registerPropControllersHandle, r as registerDocument, J as registerComponentHandle, K as messageBuilderPropController, L as registerDocumentEffect } from "./actions.es.js";
29
29
  import { i as isMeasurable, a as getMeasurables$1, b as getBoxModels$1, m as measure, d as getBoxModel$1, r as reducer$6 } from "./box-models.es.js";
30
- import { U as BuilderEditMode, aF as createPropController, r as reducer$c } from "./descriptors.es.js";
31
30
  import { reducer as reducer$d } from "./state/breakpoints.es.js";
32
31
  import { a as serializeControls } from "./control-serialization.es.js";
33
32
  import { jsx } from "react/jsx-runtime";
@@ -36,17 +35,16 @@ import "next/dynamic";
36
35
  import "@emotion/css";
37
36
  import "@emotion/serialize";
38
37
  import "@emotion/utils";
39
- import "slate";
40
38
  import "./text-input.es.js";
41
39
  import "./combobox.es.js";
40
+ import "./select.es.js";
41
+ import "slate";
42
+ import "is-hotkey";
42
43
  import "slate-react";
43
44
  import "use-sync-external-store/shim";
44
45
  import "./types.es.js";
45
- import "./introspection.es.js";
46
46
  import "color";
47
47
  import "scroll-into-view-if-needed";
48
- import "is-hotkey";
49
- import "slate-history";
50
48
  import "react-dom";
51
49
  import "html-react-parser";
52
50
  import "next/head";
@@ -57,6 +55,7 @@ import "path-to-regexp";
57
55
  import "cookie";
58
56
  import "http-proxy";
59
57
  import "set-cookie-parser";
58
+ import "./constants.es.js";
60
59
  import "uuid";
61
60
  import "corporate-ipsum";
62
61
  import "css-box-model";