@makeswift/runtime 0.25.4-canary.3 → 0.25.4

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 (655) hide show
  1. package/dist/cjs/api/api-resources-client.js +160 -0
  2. package/dist/cjs/api/api-resources-client.js.map +1 -0
  3. package/dist/cjs/api/client.js +90 -0
  4. package/dist/cjs/api/client.js.map +1 -0
  5. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  6. package/dist/cjs/api-handler/handlers/webhook/diff-projection.js +62 -0
  7. package/dist/cjs/api-handler/handlers/webhook/diff-projection.js.map +1 -0
  8. package/dist/cjs/builder/breakpoints/index.js +31 -0
  9. package/dist/cjs/builder/breakpoints/index.js.map +1 -0
  10. package/dist/cjs/builder/core/index.js +57 -0
  11. package/dist/cjs/builder/core/index.js.map +1 -0
  12. package/dist/cjs/builder/host-api.js +56 -0
  13. package/dist/cjs/builder/host-api.js.map +1 -0
  14. package/dist/cjs/builder/host-to-builder-actions.js +41 -0
  15. package/dist/cjs/builder/host-to-builder-actions.js.map +1 -0
  16. package/dist/cjs/builder/serialization.js +78 -0
  17. package/dist/cjs/builder/serialization.js.map +1 -0
  18. package/dist/cjs/components/builtin/Carousel/Carousel.js +2 -5
  19. package/dist/cjs/components/builtin/Carousel/Carousel.js.map +1 -1
  20. package/dist/cjs/controls/control.js +1 -3
  21. package/dist/cjs/controls/control.js.map +1 -1
  22. package/dist/cjs/controls/rich-text-v2/rich-text-v2.js +15 -2
  23. package/dist/cjs/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  24. package/dist/cjs/controls/rich-text-v2/translation.js +187 -0
  25. package/dist/cjs/controls/rich-text-v2/translation.js.map +1 -0
  26. package/dist/cjs/controls/serialization/base/index.js +78 -0
  27. package/dist/cjs/controls/serialization/base/index.js.map +1 -0
  28. package/dist/cjs/controls/serialization/base/visitor.js +59 -0
  29. package/dist/cjs/controls/serialization/base/visitor.js.map +1 -0
  30. package/dist/cjs/controls/serialization/index.js +55 -0
  31. package/dist/cjs/controls/serialization/index.js.map +1 -0
  32. package/dist/cjs/controls/serialization/message-port/function-serialization.js +79 -0
  33. package/dist/cjs/controls/serialization/message-port/function-serialization.js.map +1 -0
  34. package/dist/cjs/controls/serialization/message-port/index.js +25 -0
  35. package/dist/cjs/controls/serialization/message-port/index.js.map +1 -0
  36. package/dist/cjs/controls/serialization/message-port/visitor.js +48 -0
  37. package/dist/cjs/controls/serialization/message-port/visitor.js.map +1 -0
  38. package/dist/cjs/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js +72 -0
  39. package/dist/cjs/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js.map +1 -0
  40. package/dist/cjs/controls/visitors/message-port-serializer/function-serialization.js +79 -0
  41. package/dist/cjs/controls/visitors/message-port-serializer/function-serialization.js.map +1 -0
  42. package/dist/cjs/controls/visitors/message-port-serializer/index.js +36 -0
  43. package/dist/cjs/controls/visitors/message-port-serializer/index.js.map +1 -0
  44. package/dist/cjs/next/api-handler/config/pages-router.js +1 -1
  45. package/dist/cjs/next/api-handler/config/pages-router.js.map +1 -1
  46. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js +101 -0
  47. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js.map +1 -0
  48. package/dist/cjs/next/fetch.js +30 -0
  49. package/dist/cjs/next/fetch.js.map +1 -0
  50. package/dist/cjs/next/runtime.js +35 -0
  51. package/dist/cjs/next/runtime.js.map +1 -0
  52. package/dist/cjs/next/testing/react-runtime.js +29 -0
  53. package/dist/cjs/next/testing/react-runtime.js.map +1 -0
  54. package/dist/cjs/prop-controllers/serialization.js +355 -0
  55. package/dist/cjs/prop-controllers/serialization.js.map +1 -0
  56. package/dist/cjs/react/builtins/box.js +42 -0
  57. package/dist/cjs/react/builtins/box.js.map +1 -0
  58. package/dist/cjs/react/builtins/button.js +42 -0
  59. package/dist/cjs/react/builtins/button.js.map +1 -0
  60. package/dist/cjs/react/builtins/carousel.js +42 -0
  61. package/dist/cjs/react/builtins/carousel.js.map +1 -0
  62. package/dist/cjs/react/builtins/countdown.js +42 -0
  63. package/dist/cjs/react/builtins/countdown.js.map +1 -0
  64. package/dist/cjs/react/builtins/divider.js +42 -0
  65. package/dist/cjs/react/builtins/divider.js.map +1 -0
  66. package/dist/cjs/react/builtins/embed.js +42 -0
  67. package/dist/cjs/react/builtins/embed.js.map +1 -0
  68. package/dist/cjs/react/builtins/form.js +42 -0
  69. package/dist/cjs/react/builtins/form.js.map +1 -0
  70. package/dist/cjs/react/builtins/image.js +42 -0
  71. package/dist/cjs/react/builtins/image.js.map +1 -0
  72. package/dist/cjs/react/builtins/index.js +29 -0
  73. package/dist/cjs/react/builtins/index.js.map +1 -0
  74. package/dist/cjs/react/builtins/navigation.js +42 -0
  75. package/dist/cjs/react/builtins/navigation.js.map +1 -0
  76. package/dist/cjs/react/builtins/root.js +42 -0
  77. package/dist/cjs/react/builtins/root.js.map +1 -0
  78. package/dist/cjs/react/builtins/slot.js +42 -0
  79. package/dist/cjs/react/builtins/slot.js.map +1 -0
  80. package/dist/cjs/react/builtins/social-links.js +42 -0
  81. package/dist/cjs/react/builtins/social-links.js.map +1 -0
  82. package/dist/cjs/react/builtins/text.js +42 -0
  83. package/dist/cjs/react/builtins/text.js.map +1 -0
  84. package/dist/cjs/react/builtins/video.js +42 -0
  85. package/dist/cjs/react/builtins/video.js.map +1 -0
  86. package/dist/cjs/react/core/index.js +29 -0
  87. package/dist/cjs/react/core/index.js.map +1 -0
  88. package/dist/cjs/react/index.js +29 -0
  89. package/dist/cjs/react/index.js.map +1 -0
  90. package/dist/cjs/runtimes/react/components/GoogleFontLink.js +55 -0
  91. package/dist/cjs/runtimes/react/components/GoogleFontLink.js.map +1 -0
  92. package/dist/cjs/runtimes/react/components/MakeswiftFonts.js +33 -0
  93. package/dist/cjs/runtimes/react/components/MakeswiftFonts.js.map +1 -0
  94. package/dist/cjs/runtimes/react/components/activity-with-fallback.js +54 -0
  95. package/dist/cjs/runtimes/react/components/activity-with-fallback.js.map +1 -0
  96. package/dist/cjs/runtimes/react/components/page/index.js +13 -3
  97. package/dist/cjs/runtimes/react/components/page/index.js.map +1 -1
  98. package/dist/cjs/runtimes/react/hooks/use-async-effect.js +55 -0
  99. package/dist/cjs/runtimes/react/hooks/use-async-effect.js.map +1 -0
  100. package/dist/cjs/runtimes/react/hooks/use-builtin-suspense.js +33 -0
  101. package/dist/cjs/runtimes/react/hooks/use-builtin-suspense.js.map +1 -0
  102. package/dist/cjs/runtimes/react/hooks/use-current-breakpoint.js +39 -0
  103. package/dist/cjs/runtimes/react/hooks/use-current-breakpoint.js.map +1 -0
  104. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js +33 -0
  105. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  106. package/dist/cjs/runtimes/react/lib/resolved-style-to-css.js +59 -0
  107. package/dist/cjs/runtimes/react/lib/resolved-style-to-css.js.map +1 -0
  108. package/dist/cjs/runtimes/react/react-runtime-core.js +72 -0
  109. package/dist/cjs/runtimes/react/react-runtime-core.js.map +1 -0
  110. package/dist/cjs/runtimes/react/resource-resolver.js +52 -0
  111. package/dist/cjs/runtimes/react/resource-resolver.js.map +1 -0
  112. package/dist/cjs/runtimes/react/testing/react-runtime.js +33 -0
  113. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -0
  114. package/dist/cjs/runtimes/react/utils/google-fonts-url.js +49 -0
  115. package/dist/cjs/runtimes/react/utils/google-fonts-url.js.map +1 -0
  116. package/dist/cjs/state/actions/index.js +42 -0
  117. package/dist/cjs/state/actions/index.js.map +1 -0
  118. package/dist/cjs/state/actions/internal/index.js +34 -0
  119. package/dist/cjs/state/actions/internal/index.js.map +1 -0
  120. package/dist/cjs/state/actions/internal/read-only-actions.js +195 -0
  121. package/dist/cjs/state/actions/internal/read-only-actions.js.map +1 -0
  122. package/dist/cjs/state/actions/internal/read-write-actions.js +76 -0
  123. package/dist/cjs/state/actions/internal/read-write-actions.js.map +1 -0
  124. package/dist/cjs/state/actions/internal.js +205 -0
  125. package/dist/cjs/state/actions/internal.js.map +1 -0
  126. package/dist/cjs/state/api-client/client-store.js +81 -0
  127. package/dist/cjs/state/api-client/client-store.js.map +1 -0
  128. package/dist/cjs/state/api-client/fetch-api-resource.js +125 -0
  129. package/dist/cjs/state/api-client/fetch-api-resource.js.map +1 -0
  130. package/dist/cjs/state/api-client/state.js +89 -0
  131. package/dist/cjs/state/api-client/state.js.map +1 -0
  132. package/dist/cjs/state/api-client/store.js +36 -0
  133. package/dist/cjs/state/api-client/store.js.map +1 -0
  134. package/dist/cjs/state/builder-api/actions.js +161 -0
  135. package/dist/cjs/state/builder-api/actions.js.map +1 -0
  136. package/dist/cjs/state/builder-api/api.js +17 -0
  137. package/dist/cjs/state/builder-api/api.js.map +1 -0
  138. package/dist/cjs/state/builder-api/message-channel.js +98 -0
  139. package/dist/cjs/state/builder-api/message-channel.js.map +1 -0
  140. package/dist/cjs/state/builder-api/navigation-listener.js +110 -0
  141. package/dist/cjs/state/builder-api/navigation-listener.js.map +1 -0
  142. package/dist/cjs/state/builder-api/proxy.js +72 -0
  143. package/dist/cjs/state/builder-api/proxy.js.map +1 -0
  144. package/dist/cjs/state/host-api.js +117 -0
  145. package/dist/cjs/state/host-api.js.map +1 -0
  146. package/dist/cjs/state/middleware/makeswift-api-client-sync.js +37 -0
  147. package/dist/cjs/state/middleware/makeswift-api-client-sync.js.map +1 -0
  148. package/dist/cjs/state/middleware/read-only-element-tree.js +52 -0
  149. package/dist/cjs/state/middleware/read-only-element-tree.js.map +1 -0
  150. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js +40 -0
  151. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  152. package/dist/cjs/state/middleware/read-write/builder-api/index.js +85 -0
  153. package/dist/cjs/state/middleware/read-write/builder-api/index.js.map +1 -0
  154. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js +281 -0
  155. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  156. package/dist/cjs/state/middleware/read-write/index.js +40 -0
  157. package/dist/cjs/state/middleware/read-write/index.js.map +1 -0
  158. package/dist/cjs/state/middleware/read-write/measure-box-models.js +71 -0
  159. package/dist/cjs/state/middleware/read-write/measure-box-models.js.map +1 -0
  160. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js +114 -0
  161. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  162. package/dist/cjs/state/middleware/read-write/update-element-tree.js +59 -0
  163. package/dist/cjs/state/middleware/read-write/update-element-tree.js.map +1 -0
  164. package/dist/cjs/state/mixins/breakpoint-watch.js +72 -0
  165. package/dist/cjs/state/mixins/breakpoint-watch.js.map +1 -0
  166. package/dist/cjs/state/modules/is-read-only.js +50 -0
  167. package/dist/cjs/state/modules/is-read-only.js.map +1 -0
  168. package/dist/cjs/state/modules/locale.js +50 -0
  169. package/dist/cjs/state/modules/locale.js.map +1 -0
  170. package/dist/cjs/state/modules/read-write/box-models.js +144 -0
  171. package/dist/cjs/state/modules/read-write/box-models.js.map +1 -0
  172. package/dist/cjs/state/modules/read-write/element-imperative-handles.js +61 -0
  173. package/dist/cjs/state/modules/read-write/element-imperative-handles.js.map +1 -0
  174. package/dist/cjs/state/modules/read-write/pointer.js +48 -0
  175. package/dist/cjs/state/modules/read-write/pointer.js.map +1 -0
  176. package/dist/cjs/state/modules/read-write/read-write-documents.js +98 -0
  177. package/dist/cjs/state/modules/read-write/read-write-documents.js.map +1 -0
  178. package/dist/cjs/state/modules/site-version.js +47 -0
  179. package/dist/cjs/state/modules/site-version.js.map +1 -0
  180. package/dist/cjs/state/ops/copy-element-tree.js +67 -0
  181. package/dist/cjs/state/ops/copy-element-tree.js.map +1 -0
  182. package/dist/cjs/state/ops/merge-element.js +73 -0
  183. package/dist/cjs/state/ops/merge-element.js.map +1 -0
  184. package/dist/cjs/state/read-only-state.js +231 -0
  185. package/dist/cjs/state/read-only-state.js.map +1 -0
  186. package/dist/cjs/state/read-write-state.js +128 -0
  187. package/dist/cjs/state/read-write-state.js.map +1 -0
  188. package/dist/cjs/state/shared-api.js +63 -0
  189. package/dist/cjs/state/shared-api.js.map +1 -0
  190. package/dist/cjs/state/store.js +219 -0
  191. package/dist/cjs/state/store.js.map +1 -0
  192. package/dist/cjs/state/translations/get.js +61 -0
  193. package/dist/cjs/state/translations/get.js.map +1 -0
  194. package/dist/cjs/state/translations/merge.js +91 -0
  195. package/dist/cjs/state/translations/merge.js.map +1 -0
  196. package/dist/cjs/state/unified-state.js +17 -0
  197. package/dist/cjs/state/unified-state.js.map +1 -0
  198. package/dist/cjs/translations/index.js +32 -0
  199. package/dist/cjs/translations/index.js.map +1 -0
  200. package/dist/cjs/utils/deferred.js +39 -0
  201. package/dist/cjs/utils/deferred.js.map +1 -0
  202. package/dist/cjs/utils/ref-counted-map.js +120 -0
  203. package/dist/cjs/utils/ref-counted-map.js.map +1 -0
  204. package/dist/esm/api/api-resources-client.js +127 -0
  205. package/dist/esm/api/api-resources-client.js.map +1 -0
  206. package/dist/esm/api/client.js +67 -0
  207. package/dist/esm/api/client.js.map +1 -0
  208. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  209. package/dist/esm/api-handler/handlers/webhook/diff-projection.js +38 -0
  210. package/dist/esm/api-handler/handlers/webhook/diff-projection.js.map +1 -0
  211. package/dist/esm/builder/breakpoints/index.js +9 -0
  212. package/dist/esm/builder/breakpoints/index.js.map +1 -0
  213. package/dist/esm/builder/core/index.js +35 -0
  214. package/dist/esm/builder/core/index.js.map +1 -0
  215. package/dist/esm/builder/host-api.js +31 -0
  216. package/dist/esm/builder/host-api.js.map +1 -0
  217. package/dist/esm/builder/host-to-builder-actions.js +18 -0
  218. package/dist/esm/builder/host-to-builder-actions.js.map +1 -0
  219. package/dist/esm/builder/serialization.js +59 -0
  220. package/dist/esm/builder/serialization.js.map +1 -0
  221. package/dist/esm/components/builtin/Carousel/Carousel.js +1 -4
  222. package/dist/esm/components/builtin/Carousel/Carousel.js.map +1 -1
  223. package/dist/esm/controls/control.js +1 -3
  224. package/dist/esm/controls/control.js.map +1 -1
  225. package/dist/esm/controls/rich-text-v2/rich-text-v2.js +17 -1
  226. package/dist/esm/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  227. package/dist/esm/controls/rich-text-v2/translation.js +152 -0
  228. package/dist/esm/controls/rich-text-v2/translation.js.map +1 -0
  229. package/dist/esm/controls/serialization/base/index.js +78 -0
  230. package/dist/esm/controls/serialization/base/index.js.map +1 -0
  231. package/dist/esm/controls/serialization/base/visitor.js +39 -0
  232. package/dist/esm/controls/serialization/base/visitor.js.map +1 -0
  233. package/dist/esm/controls/serialization/index.js +30 -0
  234. package/dist/esm/controls/serialization/index.js.map +1 -0
  235. package/dist/esm/controls/serialization/message-port/function-serialization.js +52 -0
  236. package/dist/esm/controls/serialization/message-port/function-serialization.js.map +1 -0
  237. package/dist/esm/controls/serialization/message-port/index.js +3 -0
  238. package/dist/esm/controls/serialization/message-port/index.js.map +1 -0
  239. package/dist/esm/controls/serialization/message-port/visitor.js +24 -0
  240. package/dist/esm/controls/serialization/message-port/visitor.js.map +1 -0
  241. package/dist/esm/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js +53 -0
  242. package/dist/esm/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js.map +1 -0
  243. package/dist/esm/controls/visitors/message-port-serializer/function-serialization.js +52 -0
  244. package/dist/esm/controls/visitors/message-port-serializer/function-serialization.js.map +1 -0
  245. package/dist/esm/controls/visitors/message-port-serializer/index.js +13 -0
  246. package/dist/esm/controls/visitors/message-port-serializer/index.js.map +1 -0
  247. package/dist/esm/next/api-handler/config/pages-router.js +1 -1
  248. package/dist/esm/next/api-handler/config/pages-router.js.map +1 -1
  249. package/dist/esm/next/components/tests/makeswift-component/fixtures.js +60 -0
  250. package/dist/esm/next/components/tests/makeswift-component/fixtures.js.map +1 -0
  251. package/dist/esm/next/fetch.js +6 -0
  252. package/dist/esm/next/fetch.js.map +1 -0
  253. package/dist/esm/next/runtime.js +11 -0
  254. package/dist/esm/next/runtime.js.map +1 -0
  255. package/dist/esm/next/testing/react-runtime.js +5 -0
  256. package/dist/esm/next/testing/react-runtime.js.map +1 -0
  257. package/dist/esm/prop-controllers/serialization.js +338 -0
  258. package/dist/esm/prop-controllers/serialization.js.map +1 -0
  259. package/dist/esm/react/builtins/box.js +7 -0
  260. package/dist/esm/react/builtins/box.js.map +1 -0
  261. package/dist/esm/react/builtins/button.js +7 -0
  262. package/dist/esm/react/builtins/button.js.map +1 -0
  263. package/dist/esm/react/builtins/carousel.js +7 -0
  264. package/dist/esm/react/builtins/carousel.js.map +1 -0
  265. package/dist/esm/react/builtins/countdown.js +7 -0
  266. package/dist/esm/react/builtins/countdown.js.map +1 -0
  267. package/dist/esm/react/builtins/divider.js +7 -0
  268. package/dist/esm/react/builtins/divider.js.map +1 -0
  269. package/dist/esm/react/builtins/embed.js +7 -0
  270. package/dist/esm/react/builtins/embed.js.map +1 -0
  271. package/dist/esm/react/builtins/form.js +7 -0
  272. package/dist/esm/react/builtins/form.js.map +1 -0
  273. package/dist/esm/react/builtins/image.js +7 -0
  274. package/dist/esm/react/builtins/image.js.map +1 -0
  275. package/dist/esm/react/builtins/index.js +5 -0
  276. package/dist/esm/react/builtins/index.js.map +1 -0
  277. package/dist/esm/react/builtins/navigation.js +7 -0
  278. package/dist/esm/react/builtins/navigation.js.map +1 -0
  279. package/dist/esm/react/builtins/root.js +7 -0
  280. package/dist/esm/react/builtins/root.js.map +1 -0
  281. package/dist/esm/react/builtins/slot.js +7 -0
  282. package/dist/esm/react/builtins/slot.js.map +1 -0
  283. package/dist/esm/react/builtins/social-links.js +7 -0
  284. package/dist/esm/react/builtins/social-links.js.map +1 -0
  285. package/dist/esm/react/builtins/text.js +7 -0
  286. package/dist/esm/react/builtins/text.js.map +1 -0
  287. package/dist/esm/react/builtins/video.js +7 -0
  288. package/dist/esm/react/builtins/video.js.map +1 -0
  289. package/dist/esm/react/core/index.js +5 -0
  290. package/dist/esm/react/core/index.js.map +1 -0
  291. package/dist/esm/react/index.js +5 -0
  292. package/dist/esm/react/index.js.map +1 -0
  293. package/dist/esm/runtimes/react/components/GoogleFontLink.js +35 -0
  294. package/dist/esm/runtimes/react/components/GoogleFontLink.js.map +1 -0
  295. package/dist/esm/runtimes/react/components/MakeswiftFonts.js +9 -0
  296. package/dist/esm/runtimes/react/components/MakeswiftFonts.js.map +1 -0
  297. package/dist/esm/runtimes/react/components/activity-with-fallback.js +19 -0
  298. package/dist/esm/runtimes/react/components/activity-with-fallback.js.map +1 -0
  299. package/dist/esm/runtimes/react/components/page/index.js +16 -4
  300. package/dist/esm/runtimes/react/components/page/index.js.map +1 -1
  301. package/dist/esm/runtimes/react/hooks/use-async-effect.js +31 -0
  302. package/dist/esm/runtimes/react/hooks/use-async-effect.js.map +1 -0
  303. package/dist/esm/runtimes/react/hooks/use-builtin-suspense.js +9 -0
  304. package/dist/esm/runtimes/react/hooks/use-builtin-suspense.js.map +1 -0
  305. package/dist/esm/runtimes/react/hooks/use-current-breakpoint.js +15 -0
  306. package/dist/esm/runtimes/react/hooks/use-current-breakpoint.js.map +1 -0
  307. package/dist/esm/runtimes/react/hooks/use-is-read-only.js +9 -0
  308. package/dist/esm/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  309. package/dist/esm/runtimes/react/lib/resolved-style-to-css.js +38 -0
  310. package/dist/esm/runtimes/react/lib/resolved-style-to-css.js.map +1 -0
  311. package/dist/esm/runtimes/react/react-runtime-core.js +51 -0
  312. package/dist/esm/runtimes/react/react-runtime-core.js.map +1 -0
  313. package/dist/esm/runtimes/react/resource-resolver.js +28 -0
  314. package/dist/esm/runtimes/react/resource-resolver.js.map +1 -0
  315. package/dist/esm/runtimes/react/testing/react-runtime.js +9 -0
  316. package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -0
  317. package/dist/esm/runtimes/react/utils/google-fonts-url.js +23 -0
  318. package/dist/esm/runtimes/react/utils/google-fonts-url.js.map +1 -0
  319. package/dist/esm/state/actions/index.js +17 -0
  320. package/dist/esm/state/actions/index.js.map +1 -0
  321. package/dist/esm/state/actions/internal/index.js +10 -0
  322. package/dist/esm/state/actions/internal/index.js.map +1 -0
  323. package/dist/esm/state/actions/internal/read-only-actions.js +153 -0
  324. package/dist/esm/state/actions/internal/read-only-actions.js.map +1 -0
  325. package/dist/esm/state/actions/internal/read-write-actions.js +46 -0
  326. package/dist/esm/state/actions/internal/read-write-actions.js.map +1 -0
  327. package/dist/esm/state/actions/internal.js +162 -0
  328. package/dist/esm/state/actions/internal.js.map +1 -0
  329. package/dist/esm/state/api-client/client-store.js +49 -0
  330. package/dist/esm/state/api-client/client-store.js.map +1 -0
  331. package/dist/esm/state/api-client/fetch-api-resource.js +93 -0
  332. package/dist/esm/state/api-client/fetch-api-resource.js.map +1 -0
  333. package/dist/esm/state/api-client/state.js +52 -0
  334. package/dist/esm/state/api-client/state.js.map +1 -0
  335. package/dist/esm/state/api-client/store.js +12 -0
  336. package/dist/esm/state/api-client/store.js.map +1 -0
  337. package/dist/esm/state/builder-api/actions.js +119 -0
  338. package/dist/esm/state/builder-api/actions.js.map +1 -0
  339. package/dist/esm/state/builder-api/api.js +1 -0
  340. package/dist/esm/state/builder-api/api.js.map +1 -0
  341. package/dist/esm/state/builder-api/message-channel.js +74 -0
  342. package/dist/esm/state/builder-api/message-channel.js.map +1 -0
  343. package/dist/esm/state/builder-api/navigation-listener.js +86 -0
  344. package/dist/esm/state/builder-api/navigation-listener.js.map +1 -0
  345. package/dist/esm/state/builder-api/proxy.js +48 -0
  346. package/dist/esm/state/builder-api/proxy.js.map +1 -0
  347. package/dist/esm/state/host-api.js +81 -0
  348. package/dist/esm/state/host-api.js.map +1 -0
  349. package/dist/esm/state/middleware/makeswift-api-client-sync.js +13 -0
  350. package/dist/esm/state/middleware/makeswift-api-client-sync.js.map +1 -0
  351. package/dist/esm/state/middleware/read-only-element-tree.js +28 -0
  352. package/dist/esm/state/middleware/read-only-element-tree.js.map +1 -0
  353. package/dist/esm/state/middleware/read-write/builder-api/element-size.js +16 -0
  354. package/dist/esm/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  355. package/dist/esm/state/middleware/read-write/builder-api/index.js +61 -0
  356. package/dist/esm/state/middleware/read-write/builder-api/index.js.map +1 -0
  357. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js +254 -0
  358. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  359. package/dist/esm/state/middleware/read-write/index.js +16 -0
  360. package/dist/esm/state/middleware/read-write/index.js.map +1 -0
  361. package/dist/esm/state/middleware/read-write/measure-box-models.js +37 -0
  362. package/dist/esm/state/middleware/read-write/measure-box-models.js.map +1 -0
  363. package/dist/esm/state/middleware/read-write/prop-controller-handles.js +80 -0
  364. package/dist/esm/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  365. package/dist/esm/state/middleware/read-write/update-element-tree.js +35 -0
  366. package/dist/esm/state/middleware/read-write/update-element-tree.js.map +1 -0
  367. package/dist/esm/state/mixins/breakpoint-watch.js +48 -0
  368. package/dist/esm/state/mixins/breakpoint-watch.js.map +1 -0
  369. package/dist/esm/state/modules/is-read-only.js +24 -0
  370. package/dist/esm/state/modules/is-read-only.js.map +1 -0
  371. package/dist/esm/state/modules/locale.js +24 -0
  372. package/dist/esm/state/modules/locale.js.map +1 -0
  373. package/dist/esm/state/modules/read-write/box-models.js +114 -0
  374. package/dist/esm/state/modules/read-write/box-models.js.map +1 -0
  375. package/dist/esm/state/modules/read-write/element-imperative-handles.js +36 -0
  376. package/dist/esm/state/modules/read-write/element-imperative-handles.js.map +1 -0
  377. package/dist/esm/state/modules/read-write/pointer.js +23 -0
  378. package/dist/esm/state/modules/read-write/pointer.js.map +1 -0
  379. package/dist/esm/state/modules/read-write/read-write-documents.js +60 -0
  380. package/dist/esm/state/modules/read-write/read-write-documents.js.map +1 -0
  381. package/dist/esm/state/modules/site-version.js +21 -0
  382. package/dist/esm/state/modules/site-version.js.map +1 -0
  383. package/dist/esm/state/ops/copy-element-tree.js +37 -0
  384. package/dist/esm/state/ops/copy-element-tree.js.map +1 -0
  385. package/dist/esm/state/ops/merge-element.js +39 -0
  386. package/dist/esm/state/ops/merge-element.js.map +1 -0
  387. package/dist/esm/state/read-only-state.js +176 -0
  388. package/dist/esm/state/read-only-state.js.map +1 -0
  389. package/dist/esm/state/read-write-state.js +82 -0
  390. package/dist/esm/state/read-write-state.js.map +1 -0
  391. package/dist/esm/state/shared-api.js +35 -0
  392. package/dist/esm/state/shared-api.js.map +1 -0
  393. package/dist/esm/state/store.js +188 -0
  394. package/dist/esm/state/store.js.map +1 -0
  395. package/dist/esm/state/translations/get.js +27 -0
  396. package/dist/esm/state/translations/get.js.map +1 -0
  397. package/dist/esm/state/translations/merge.js +59 -0
  398. package/dist/esm/state/translations/merge.js.map +1 -0
  399. package/dist/esm/state/unified-state.js +1 -0
  400. package/dist/esm/state/unified-state.js.map +1 -0
  401. package/dist/esm/translations/index.js +7 -0
  402. package/dist/esm/translations/index.js.map +1 -0
  403. package/dist/esm/utils/deferred.js +15 -0
  404. package/dist/esm/utils/deferred.js.map +1 -0
  405. package/dist/esm/utils/ref-counted-map.js +96 -0
  406. package/dist/esm/utils/ref-counted-map.js.map +1 -0
  407. package/dist/types/api/api-resources-client.d.ts +57 -0
  408. package/dist/types/api/api-resources-client.d.ts.map +1 -0
  409. package/dist/types/api/client.d.ts +49 -0
  410. package/dist/types/api/client.d.ts.map +1 -0
  411. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts +201 -0
  412. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts.map +1 -0
  413. package/dist/types/builder/breakpoints/index.d.ts +2 -0
  414. package/dist/types/builder/breakpoints/index.d.ts.map +1 -0
  415. package/dist/types/builder/core/index.d.ts +2 -0
  416. package/dist/types/builder/core/index.d.ts.map +1 -0
  417. package/dist/types/builder/host-api.d.ts +3 -0
  418. package/dist/types/builder/host-api.d.ts.map +1 -0
  419. package/dist/types/builder/host-to-builder-actions.d.ts +28 -0
  420. package/dist/types/builder/host-to-builder-actions.d.ts.map +1 -0
  421. package/dist/types/builder/serialization.d.ts +23 -0
  422. package/dist/types/builder/serialization.d.ts.map +1 -0
  423. package/dist/types/builder/serialization.test.d.ts +2 -0
  424. package/dist/types/builder/serialization.test.d.ts.map +1 -0
  425. package/dist/types/client/index.d.ts +11 -11
  426. package/dist/types/client/tests/client.get-component-snapshots.test.d.ts +2 -0
  427. package/dist/types/client/tests/client.get-component-snapshots.test.d.ts.map +1 -0
  428. package/dist/types/client/tests/client.get-fonts.test.d.ts +2 -0
  429. package/dist/types/client/tests/client.get-fonts.test.d.ts.map +1 -0
  430. package/dist/types/client/tests/client.introspect-many.test.d.ts +2 -0
  431. package/dist/types/client/tests/client.introspect-many.test.d.ts.map +1 -0
  432. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  433. package/dist/types/components/hooks/__tests__/useMediaQuery.test.d.ts +3 -0
  434. package/dist/types/components/hooks/__tests__/useMediaQuery.test.d.ts.map +1 -0
  435. package/dist/types/controls/control.d.ts.map +1 -1
  436. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +12 -11
  437. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  438. package/dist/types/controls/rich-text-v2/translation.d.ts +6 -0
  439. package/dist/types/controls/rich-text-v2/translation.d.ts.map +1 -0
  440. package/dist/types/controls/serialization/base/index.d.ts +10 -0
  441. package/dist/types/controls/serialization/base/index.d.ts.map +1 -0
  442. package/dist/types/controls/serialization/base/visitor.d.ts +7 -0
  443. package/dist/types/controls/serialization/base/visitor.d.ts.map +1 -0
  444. package/dist/types/controls/serialization/index.d.ts +10 -0
  445. package/dist/types/controls/serialization/index.d.ts.map +1 -0
  446. package/dist/types/controls/serialization/message-port/function-serialization.d.ts +16 -0
  447. package/dist/types/controls/serialization/message-port/function-serialization.d.ts.map +1 -0
  448. package/dist/types/controls/serialization/message-port/function-serialization.test.d.ts +2 -0
  449. package/dist/types/controls/serialization/message-port/function-serialization.test.d.ts.map +1 -0
  450. package/dist/types/controls/serialization/message-port/index.d.ts +3 -0
  451. package/dist/types/controls/serialization/message-port/index.d.ts.map +1 -0
  452. package/dist/types/controls/serialization/message-port/visitor.d.ts +7 -0
  453. package/dist/types/controls/serialization/message-port/visitor.d.ts.map +1 -0
  454. package/dist/types/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.d.ts +9 -0
  455. package/dist/types/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.d.ts.map +1 -0
  456. package/dist/types/controls/visitors/message-port-serializer/function-serialization.d.ts +16 -0
  457. package/dist/types/controls/visitors/message-port-serializer/function-serialization.d.ts.map +1 -0
  458. package/dist/types/controls/visitors/message-port-serializer/function-serialization.test.d.ts +2 -0
  459. package/dist/types/controls/visitors/message-port-serializer/function-serialization.test.d.ts.map +1 -0
  460. package/dist/types/controls/visitors/message-port-serializer/index.d.ts +3 -0
  461. package/dist/types/controls/visitors/message-port-serializer/index.d.ts.map +1 -0
  462. package/dist/types/next/api-handler/config/pages-router.test.d.ts +2 -0
  463. package/dist/types/next/api-handler/config/pages-router.test.d.ts.map +1 -0
  464. package/dist/types/next/components/tests/controls/code-control.test.d.ts +2 -0
  465. package/dist/types/next/components/tests/controls/code-control.test.d.ts.map +1 -0
  466. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts +27 -0
  467. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts.map +1 -0
  468. package/dist/types/next/components/tests/makeswift-component/rendering.react18.test.d.ts +3 -0
  469. package/dist/types/next/components/tests/makeswift-component/rendering.react18.test.d.ts.map +1 -0
  470. package/dist/types/next/components/tests/makeswift-component/rendering.test.d.ts +3 -0
  471. package/dist/types/next/components/tests/makeswift-component/rendering.test.d.ts.map +1 -0
  472. package/dist/types/next/fetch.d.ts +3 -0
  473. package/dist/types/next/fetch.d.ts.map +1 -0
  474. package/dist/types/next/runtime.d.ts +10 -0
  475. package/dist/types/next/runtime.d.ts.map +1 -0
  476. package/dist/types/next/testing/react-runtime.d.ts +2 -0
  477. package/dist/types/next/testing/react-runtime.d.ts.map +1 -0
  478. package/dist/types/prop-controllers/serialization.d.ts +228 -0
  479. package/dist/types/prop-controllers/serialization.d.ts.map +1 -0
  480. package/dist/types/react/builtins/box.d.ts +3 -0
  481. package/dist/types/react/builtins/box.d.ts.map +1 -0
  482. package/dist/types/react/builtins/button.d.ts +3 -0
  483. package/dist/types/react/builtins/button.d.ts.map +1 -0
  484. package/dist/types/react/builtins/carousel.d.ts +3 -0
  485. package/dist/types/react/builtins/carousel.d.ts.map +1 -0
  486. package/dist/types/react/builtins/countdown.d.ts +3 -0
  487. package/dist/types/react/builtins/countdown.d.ts.map +1 -0
  488. package/dist/types/react/builtins/divider.d.ts +3 -0
  489. package/dist/types/react/builtins/divider.d.ts.map +1 -0
  490. package/dist/types/react/builtins/embed.d.ts +3 -0
  491. package/dist/types/react/builtins/embed.d.ts.map +1 -0
  492. package/dist/types/react/builtins/form.d.ts +3 -0
  493. package/dist/types/react/builtins/form.d.ts.map +1 -0
  494. package/dist/types/react/builtins/image.d.ts +3 -0
  495. package/dist/types/react/builtins/image.d.ts.map +1 -0
  496. package/dist/types/react/builtins/index.d.ts +2 -0
  497. package/dist/types/react/builtins/index.d.ts.map +1 -0
  498. package/dist/types/react/builtins/navigation.d.ts +3 -0
  499. package/dist/types/react/builtins/navigation.d.ts.map +1 -0
  500. package/dist/types/react/builtins/root.d.ts +3 -0
  501. package/dist/types/react/builtins/root.d.ts.map +1 -0
  502. package/dist/types/react/builtins/slot.d.ts +3 -0
  503. package/dist/types/react/builtins/slot.d.ts.map +1 -0
  504. package/dist/types/react/builtins/social-links.d.ts +3 -0
  505. package/dist/types/react/builtins/social-links.d.ts.map +1 -0
  506. package/dist/types/react/builtins/text.d.ts +3 -0
  507. package/dist/types/react/builtins/text.d.ts.map +1 -0
  508. package/dist/types/react/builtins/video.d.ts +3 -0
  509. package/dist/types/react/builtins/video.d.ts.map +1 -0
  510. package/dist/types/react/core/index.d.ts +2 -0
  511. package/dist/types/react/core/index.d.ts.map +1 -0
  512. package/dist/types/react/index.d.ts +2 -0
  513. package/dist/types/react/index.d.ts.map +1 -0
  514. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts +14 -0
  515. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts.map +1 -0
  516. package/dist/types/runtimes/react/components/MakeswiftFonts.d.ts +7 -0
  517. package/dist/types/runtimes/react/components/MakeswiftFonts.d.ts.map +1 -0
  518. package/dist/types/runtimes/react/components/activity-with-fallback.d.ts +13 -0
  519. package/dist/types/runtimes/react/components/activity-with-fallback.d.ts.map +1 -0
  520. package/dist/types/runtimes/react/components/page/index.d.ts.map +1 -1
  521. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts +2 -0
  522. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts.map +1 -0
  523. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts +3 -0
  524. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts.map +1 -0
  525. package/dist/types/runtimes/react/hooks/use-builtin-suspense.d.ts +2 -0
  526. package/dist/types/runtimes/react/hooks/use-builtin-suspense.d.ts.map +1 -0
  527. package/dist/types/runtimes/react/hooks/use-current-breakpoint.d.ts +3 -0
  528. package/dist/types/runtimes/react/hooks/use-current-breakpoint.d.ts.map +1 -0
  529. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts +2 -0
  530. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts.map +1 -0
  531. package/dist/types/runtimes/react/lib/resolved-style-to-css.d.ts +4 -0
  532. package/dist/types/runtimes/react/lib/resolved-style-to-css.d.ts.map +1 -0
  533. package/dist/types/runtimes/react/react-runtime-core.d.ts +24 -0
  534. package/dist/types/runtimes/react/react-runtime-core.d.ts.map +1 -0
  535. package/dist/types/runtimes/react/resource-resolver.d.ts +10 -0
  536. package/dist/types/runtimes/react/resource-resolver.d.ts.map +1 -0
  537. package/dist/types/runtimes/react/testing/react-runtime.d.ts +6 -0
  538. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -0
  539. package/dist/types/runtimes/react/utils/google-fonts-url.d.ts +6 -0
  540. package/dist/types/runtimes/react/utils/google-fonts-url.d.ts.map +1 -0
  541. package/dist/types/slate/BlockPlugin/index.d.ts +13 -1
  542. package/dist/types/slate/BlockPlugin/index.d.ts.map +1 -1
  543. package/dist/types/slate/InlinePlugin/index.d.ts +13 -1
  544. package/dist/types/slate/InlinePlugin/index.d.ts.map +1 -1
  545. package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -1
  546. package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
  547. package/dist/types/slate/TextAlignPlugin/index.d.ts +13 -1
  548. package/dist/types/slate/TextAlignPlugin/index.d.ts.map +1 -1
  549. package/dist/types/slate/TypographyPlugin/getValue.d.ts.map +1 -1
  550. package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
  551. package/dist/types/state/__tests__/fixtures/serialized-descriptors-from-builder.d.ts +5 -0
  552. package/dist/types/state/__tests__/fixtures/serialized-descriptors-from-builder.d.ts.map +1 -0
  553. package/dist/types/state/__tests__/fixtures/translatable-content-sample.d.ts +3 -0
  554. package/dist/types/state/__tests__/fixtures/translatable-content-sample.d.ts.map +1 -0
  555. package/dist/types/state/__tests__/get-translatable-content.test.d.ts +2 -0
  556. package/dist/types/state/__tests__/get-translatable-content.test.d.ts.map +1 -0
  557. package/dist/types/state/__tests__/merge-element-tree-translated-data.test.d.ts +2 -0
  558. package/dist/types/state/__tests__/merge-element-tree-translated-data.test.d.ts.map +1 -0
  559. package/dist/types/state/__tests__/merge-element.test.d.ts +2 -0
  560. package/dist/types/state/__tests__/merge-element.test.d.ts.map +1 -0
  561. package/dist/types/state/__tests__/store.read-write-state.test.d.ts +2 -0
  562. package/dist/types/state/__tests__/store.read-write-state.test.d.ts.map +1 -0
  563. package/dist/types/state/__tests__/test-store.d.ts +31 -0
  564. package/dist/types/state/__tests__/test-store.d.ts.map +1 -0
  565. package/dist/types/state/actions/index.d.ts +61 -0
  566. package/dist/types/state/actions/index.d.ts.map +1 -0
  567. package/dist/types/state/actions/internal/index.d.ts +29 -0
  568. package/dist/types/state/actions/internal/index.d.ts.map +1 -0
  569. package/dist/types/state/actions/internal/read-only-actions.d.ts +171 -0
  570. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +1 -0
  571. package/dist/types/state/actions/internal/read-write-actions.d.ts +53 -0
  572. package/dist/types/state/actions/internal/read-write-actions.d.ts.map +1 -0
  573. package/dist/types/state/actions/internal.d.ts +181 -0
  574. package/dist/types/state/actions/internal.d.ts.map +1 -0
  575. package/dist/types/state/api-client/client-store.d.ts +6 -0
  576. package/dist/types/state/api-client/client-store.d.ts.map +1 -0
  577. package/dist/types/state/api-client/fetch-api-resource.d.ts +11 -0
  578. package/dist/types/state/api-client/fetch-api-resource.d.ts.map +1 -0
  579. package/dist/types/state/api-client/state.d.ts +30 -0
  580. package/dist/types/state/api-client/state.d.ts.map +1 -0
  581. package/dist/types/state/api-client/store.d.ts +18 -0
  582. package/dist/types/state/api-client/store.d.ts.map +1 -0
  583. package/dist/types/state/builder-api/actions.d.ts +156 -0
  584. package/dist/types/state/builder-api/actions.d.ts.map +1 -0
  585. package/dist/types/state/builder-api/api.d.ts +9 -0
  586. package/dist/types/state/builder-api/api.d.ts.map +1 -0
  587. package/dist/types/state/builder-api/message-channel.d.ts +14 -0
  588. package/dist/types/state/builder-api/message-channel.d.ts.map +1 -0
  589. package/dist/types/state/builder-api/navigation-listener.d.ts +3 -0
  590. package/dist/types/state/builder-api/navigation-listener.d.ts.map +1 -0
  591. package/dist/types/state/builder-api/proxy.d.ts +16 -0
  592. package/dist/types/state/builder-api/proxy.d.ts.map +1 -0
  593. package/dist/types/state/host-api.d.ts +109 -0
  594. package/dist/types/state/host-api.d.ts.map +1 -0
  595. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts +5 -0
  596. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts.map +1 -0
  597. package/dist/types/state/middleware/read-only-element-tree.d.ts +4 -0
  598. package/dist/types/state/middleware/read-only-element-tree.d.ts.map +1 -0
  599. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts +12 -0
  600. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts.map +1 -0
  601. package/dist/types/state/middleware/read-write/builder-api/index.d.ts +5 -0
  602. package/dist/types/state/middleware/read-write/builder-api/index.d.ts.map +1 -0
  603. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts +6 -0
  604. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts.map +1 -0
  605. package/dist/types/state/middleware/read-write/index.d.ts +5 -0
  606. package/dist/types/state/middleware/read-write/index.d.ts.map +1 -0
  607. package/dist/types/state/middleware/read-write/measure-box-models.d.ts +4 -0
  608. package/dist/types/state/middleware/read-write/measure-box-models.d.ts.map +1 -0
  609. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts +4 -0
  610. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts.map +1 -0
  611. package/dist/types/state/middleware/read-write/update-element-tree.d.ts +4 -0
  612. package/dist/types/state/middleware/read-write/update-element-tree.d.ts.map +1 -0
  613. package/dist/types/state/mixins/breakpoint-watch.d.ts +11 -0
  614. package/dist/types/state/mixins/breakpoint-watch.d.ts.map +1 -0
  615. package/dist/types/state/modules/is-read-only.d.ts +6 -0
  616. package/dist/types/state/modules/is-read-only.d.ts.map +1 -0
  617. package/dist/types/state/modules/locale.d.ts +6 -0
  618. package/dist/types/state/modules/locale.d.ts.map +1 -0
  619. package/dist/types/state/modules/read-write/box-models.d.ts +26 -0
  620. package/dist/types/state/modules/read-write/box-models.d.ts.map +1 -0
  621. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts +6 -0
  622. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts.map +1 -0
  623. package/dist/types/state/modules/read-write/pointer.d.ts +11 -0
  624. package/dist/types/state/modules/read-write/pointer.d.ts.map +1 -0
  625. package/dist/types/state/modules/read-write/read-write-documents.d.ts +14 -0
  626. package/dist/types/state/modules/read-write/read-write-documents.d.ts.map +1 -0
  627. package/dist/types/state/modules/site-version.d.ts +7 -0
  628. package/dist/types/state/modules/site-version.d.ts.map +1 -0
  629. package/dist/types/state/ops/copy-element-tree.d.ts +37 -0
  630. package/dist/types/state/ops/copy-element-tree.d.ts.map +1 -0
  631. package/dist/types/state/ops/merge-element.d.ts +4 -0
  632. package/dist/types/state/ops/merge-element.d.ts.map +1 -0
  633. package/dist/types/state/read-only-state.d.ts +131 -0
  634. package/dist/types/state/read-only-state.d.ts.map +1 -0
  635. package/dist/types/state/read-write-state.d.ts +62 -0
  636. package/dist/types/state/read-write-state.d.ts.map +1 -0
  637. package/dist/types/state/shared-api.d.ts +50 -0
  638. package/dist/types/state/shared-api.d.ts.map +1 -0
  639. package/dist/types/state/store.d.ts +86 -0
  640. package/dist/types/state/store.d.ts.map +1 -0
  641. package/dist/types/state/translations/get.d.ts +4 -0
  642. package/dist/types/state/translations/get.d.ts.map +1 -0
  643. package/dist/types/state/translations/merge.d.ts +7 -0
  644. package/dist/types/state/translations/merge.d.ts.map +1 -0
  645. package/dist/types/state/unified-state.d.ts +9 -0
  646. package/dist/types/state/unified-state.d.ts.map +1 -0
  647. package/dist/types/translations/index.d.ts +6 -0
  648. package/dist/types/translations/index.d.ts.map +1 -0
  649. package/dist/types/utils/__tests__/ref-counted-map.test.d.ts +2 -0
  650. package/dist/types/utils/__tests__/ref-counted-map.test.d.ts.map +1 -0
  651. package/dist/types/utils/deferred.d.ts +7 -0
  652. package/dist/types/utils/deferred.d.ts.map +1 -0
  653. package/dist/types/utils/ref-counted-map.d.ts +32 -0
  654. package/dist/types/utils/ref-counted-map.d.ts.map +1 -0
  655. package/package.json +8 -7
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/api-client/fetch-api-resource.ts"],"sourcesContent":["import { type ThunkAction } from '@reduxjs/toolkit'\n\nimport { type SiteVersion, ApiHandlerHeaders, serializeSiteVersion } from '../../api/site-version'\n\nimport * as SiteVersionState from '../modules/site-version'\n\nimport { type Action } from '../actions'\nimport { apiResourceFulfilled } from '../actions/internal/read-only-actions'\nimport { setLocalizedResourceId } from '../host-api'\n\nimport {\n APIResourceType,\n type APIResource,\n type Swatch,\n type File,\n type Typography,\n type GlobalElement,\n type PagePathnameSlice,\n type Table,\n type LocalizedGlobalElement,\n type APIResourceLocale,\n} from '../../api'\n\nimport { type State, getHasAPIResource, getAPIResource, getLocalizedResourceId } from './state'\n\nexport type HttpFetch = (url: string | URL, init?: RequestInit) => Promise<Response>\n\ntype Thunk<ReturnType> = ThunkAction<ReturnType, State, unknown, Action>\n\nexport function fetchAPIResource<T extends APIResourceType>(\n resourceType: T,\n resourceId: string,\n fetch: HttpFetch,\n locale?: APIResourceLocale<T>,\n): Thunk<Promise<Extract<APIResource, { __typename: T }> | null>> {\n const fetchVersioned = async <T>(url: string, version: SiteVersion | null): Promise<T | null> => {\n const response = await fetch(url, {\n headers: {\n 'Content-Type': 'application/json',\n ...(version != null\n ? { [ApiHandlerHeaders.SiteVersion]: serializeSiteVersion(version) }\n : {}),\n },\n })\n\n if (response.status === 404) return null\n if (!response.ok) throw new Error(response.statusText)\n\n if (response.headers.get('content-type')?.includes('application/json') !== true) {\n throw new Error(\n `Expected JSON response from \"${url}\" but got \"${response.headers.get('content-type')}\"`,\n )\n }\n\n return response.json()\n }\n\n return async (dispatch, getState) => {\n const state = getState()\n const version = SiteVersionState.getSiteVersion(state.siteVersion)\n\n if (getHasAPIResource(state, resourceType, resourceId, locale)) {\n return getAPIResource(state, resourceType, resourceId, locale)\n }\n\n let resource: APIResource | null\n\n switch (resourceType) {\n case APIResourceType.Swatch:\n resource = await fetchVersioned<Swatch>(`/api/makeswift/swatches/${resourceId}`, version)\n break\n\n case APIResourceType.File:\n resource = await fetchVersioned<File>(`/api/makeswift/files/${resourceId}`, version)\n break\n\n case APIResourceType.Typography:\n resource = await fetchVersioned<Typography>(\n `/api/makeswift/typographies/${resourceId}`,\n version,\n )\n break\n\n case APIResourceType.GlobalElement:\n resource = await fetchVersioned<GlobalElement>(\n `/api/makeswift/global-elements/${resourceId}`,\n version,\n )\n break\n\n case APIResourceType.LocalizedGlobalElement: {\n if (locale == null) throw new Error('Locale is required to fetch LocalizedGlobalElement')\n\n // If `getLocalizedResourceId` returns null, it means we have tried to fetch the resource,\n // but the resource is not available. If we haven't fetched it yet, it'll return undefined.\n if (getLocalizedResourceId(state, locale, resourceId) === null) {\n return null\n }\n\n resource = await fetchVersioned<LocalizedGlobalElement>(\n `/api/makeswift/localized-global-elements/${resourceId}/${locale}`,\n version,\n )\n\n dispatch(\n setLocalizedResourceId({\n locale,\n resourceId,\n localizedResourceId: resource?.id ?? null,\n }),\n )\n\n break\n }\n\n case APIResourceType.PagePathnameSlice: {\n const url = new URL(`/api/makeswift/page-pathname-slices/${resourceId}`, 'http://n')\n\n if (locale != null) url.searchParams.set('locale', locale)\n\n resource = await fetchVersioned<PagePathnameSlice>(url.pathname + url.search, version)\n break\n }\n\n case APIResourceType.Table:\n resource = await fetchVersioned<Table>(`/api/makeswift/tables/${resourceId}`, version)\n break\n\n default:\n resource = null\n }\n\n dispatch(apiResourceFulfilled(resourceType, resourceId, resource, locale))\n\n return resource as Extract<APIResource, { __typename: T }> | null\n }\n}\n"],"mappings":"AAEA,SAA2B,mBAAmB,4BAA4B;AAE1E,YAAY,sBAAsB;AAGlC,SAAS,4BAA4B;AACrC,SAAS,8BAA8B;AAEvC;AAAA,EACE;AAAA,OAUK;AAEP,SAAqB,mBAAmB,gBAAgB,8BAA8B;AAM/E,SAAS,iBACd,cACA,YACA,OACA,QACgE;AAChE,QAAM,iBAAiB,OAAU,KAAa,YAAmD;AAC/F,UAAM,WAAW,MAAM,MAAM,KAAK;AAAA,MAChC,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,GAAI,WAAW,OACX,EAAE,CAAC,kBAAkB,WAAW,GAAG,qBAAqB,OAAO,EAAE,IACjE,CAAC;AAAA,MACP;AAAA,IACF,CAAC;AAED,QAAI,SAAS,WAAW;AAAK,aAAO;AACpC,QAAI,CAAC,SAAS;AAAI,YAAM,IAAI,MAAM,SAAS,UAAU;AAErD,QAAI,SAAS,QAAQ,IAAI,cAAc,GAAG,SAAS,kBAAkB,MAAM,MAAM;AAC/E,YAAM,IAAI;AAAA,QACR,gCAAgC,GAAG,cAAc,SAAS,QAAQ,IAAI,cAAc,CAAC;AAAA,MACvF;AAAA,IACF;AAEA,WAAO,SAAS,KAAK;AAAA,EACvB;AAEA,SAAO,OAAO,UAAU,aAAa;AACnC,UAAM,QAAQ,SAAS;AACvB,UAAM,UAAU,iBAAiB,eAAe,MAAM,WAAW;AAEjE,QAAI,kBAAkB,OAAO,cAAc,YAAY,MAAM,GAAG;AAC9D,aAAO,eAAe,OAAO,cAAc,YAAY,MAAM;AAAA,IAC/D;AAEA,QAAI;AAEJ,YAAQ,cAAc;AAAA,MACpB,KAAK,gBAAgB;AACnB,mBAAW,MAAM,eAAuB,2BAA2B,UAAU,IAAI,OAAO;AACxF;AAAA,MAEF,KAAK,gBAAgB;AACnB,mBAAW,MAAM,eAAqB,wBAAwB,UAAU,IAAI,OAAO;AACnF;AAAA,MAEF,KAAK,gBAAgB;AACnB,mBAAW,MAAM;AAAA,UACf,+BAA+B,UAAU;AAAA,UACzC;AAAA,QACF;AACA;AAAA,MAEF,KAAK,gBAAgB;AACnB,mBAAW,MAAM;AAAA,UACf,kCAAkC,UAAU;AAAA,UAC5C;AAAA,QACF;AACA;AAAA,MAEF,KAAK,gBAAgB,wBAAwB;AAC3C,YAAI,UAAU;AAAM,gBAAM,IAAI,MAAM,oDAAoD;AAIxF,YAAI,uBAAuB,OAAO,QAAQ,UAAU,MAAM,MAAM;AAC9D,iBAAO;AAAA,QACT;AAEA,mBAAW,MAAM;AAAA,UACf,4CAA4C,UAAU,IAAI,MAAM;AAAA,UAChE;AAAA,QACF;AAEA;AAAA,UACE,uBAAuB;AAAA,YACrB;AAAA,YACA;AAAA,YACA,qBAAqB,UAAU,MAAM;AAAA,UACvC,CAAC;AAAA,QACH;AAEA;AAAA,MACF;AAAA,MAEA,KAAK,gBAAgB,mBAAmB;AACtC,cAAM,MAAM,IAAI,IAAI,uCAAuC,UAAU,IAAI,UAAU;AAEnF,YAAI,UAAU;AAAM,cAAI,aAAa,IAAI,UAAU,MAAM;AAEzD,mBAAW,MAAM,eAAkC,IAAI,WAAW,IAAI,QAAQ,OAAO;AACrF;AAAA,MACF;AAAA,MAEA,KAAK,gBAAgB;AACnB,mBAAW,MAAM,eAAsB,yBAAyB,UAAU,IAAI,OAAO;AACrF;AAAA,MAEF;AACE,mBAAW;AAAA,IACf;AAEA,aAAS,qBAAqB,cAAc,YAAY,UAAU,MAAM,CAAC;AAEzE,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -0,0 +1,52 @@
1
+ import { combineReducers } from "@reduxjs/toolkit";
2
+ import * as SiteVersionState from "../modules/site-version";
3
+ import * as LocaleState from "../modules/locale";
4
+ import * as APIResources from "../modules/api-resources";
5
+ import * as LocalizedResourcesMap from "../modules/localized-resources-map";
6
+ import { APIResourceType } from "../../api";
7
+ const reducer = combineReducers({
8
+ siteVersion: SiteVersionState.reducer,
9
+ locale: LocaleState.reducer,
10
+ apiResources: APIResources.reducer,
11
+ localizedResourcesMap: LocalizedResourcesMap.reducer
12
+ });
13
+ function getLocalizedResourceId(state, locale, resourceId) {
14
+ return LocalizedResourcesMap.getLocalizedResourceId(
15
+ state.localizedResourcesMap,
16
+ locale,
17
+ resourceId
18
+ );
19
+ }
20
+ function getHasAPIResource(state, resourceType, resourceId, locale) {
21
+ switch (resourceType) {
22
+ case APIResourceType.LocalizedGlobalElement:
23
+ if (locale == null) {
24
+ console.error(`Attempt to access ${resourceType} ${resourceId} without a locale`);
25
+ return false;
26
+ }
27
+ const localizedId = getLocalizedResourceId(state, locale, resourceId);
28
+ return localizedId != null && APIResources.getHasAPIResource(state.apiResources, resourceType, localizedId, locale);
29
+ default:
30
+ return APIResources.getHasAPIResource(state.apiResources, resourceType, resourceId, locale);
31
+ }
32
+ }
33
+ function getAPIResource(state, resourceType, resourceId, locale) {
34
+ switch (resourceType) {
35
+ case APIResourceType.LocalizedGlobalElement:
36
+ if (locale == null) {
37
+ console.error(`Attempt to access ${resourceType} ${resourceId} without a locale`);
38
+ return null;
39
+ }
40
+ const localizedId = getLocalizedResourceId(state, locale, resourceId);
41
+ return localizedId != null ? APIResources.getAPIResource(state.apiResources, resourceType, localizedId, locale) : null;
42
+ default:
43
+ return APIResources.getAPIResource(state.apiResources, resourceType, resourceId, locale);
44
+ }
45
+ }
46
+ export {
47
+ getAPIResource,
48
+ getHasAPIResource,
49
+ getLocalizedResourceId,
50
+ reducer
51
+ };
52
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/api-client/state.ts"],"sourcesContent":["import { combineReducers, type ThunkDispatch } from '@reduxjs/toolkit'\n\nimport * as SiteVersionState from '../modules/site-version'\nimport * as LocaleState from '../modules/locale'\nimport * as APIResources from '../modules/api-resources'\nimport * as LocalizedResourcesMap from '../modules/localized-resources-map'\n\nimport { type Action } from '../actions'\n\nimport { APIResourceType, type APIResource, type APIResourceLocale } from '../../api'\n\nexport const reducer = combineReducers({\n siteVersion: SiteVersionState.reducer,\n locale: LocaleState.reducer,\n apiResources: APIResources.reducer,\n localizedResourcesMap: LocalizedResourcesMap.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nexport type SerializedState = {\n apiResources: APIResources.SerializedState\n localizedResourcesMap: LocalizedResourcesMap.SerializedState\n}\n\nexport function getLocalizedResourceId(\n state: State,\n locale: string,\n resourceId: string,\n): string | undefined | null {\n return LocalizedResourcesMap.getLocalizedResourceId(\n state.localizedResourcesMap,\n locale,\n resourceId,\n )\n}\n\nexport function getHasAPIResource<T extends APIResourceType>(\n state: State,\n resourceType: APIResourceType,\n resourceId: string,\n locale?: APIResourceLocale<T>,\n): boolean {\n switch (resourceType) {\n case APIResourceType.LocalizedGlobalElement:\n if (locale == null) {\n console.error(`Attempt to access ${resourceType} ${resourceId} without a locale`)\n return false\n }\n\n const localizedId = getLocalizedResourceId(state, locale, resourceId)\n return (\n localizedId != null &&\n APIResources.getHasAPIResource(state.apiResources, resourceType, localizedId, locale)\n )\n\n default:\n return APIResources.getHasAPIResource(state.apiResources, resourceType, resourceId, locale)\n }\n}\n\nexport function getAPIResource<T extends APIResourceType>(\n state: State,\n resourceType: T,\n resourceId: string,\n locale?: APIResourceLocale<T>,\n): Extract<APIResource, { __typename: T }> | null {\n switch (resourceType) {\n case APIResourceType.LocalizedGlobalElement:\n if (locale == null) {\n console.error(`Attempt to access ${resourceType} ${resourceId} without a locale`)\n return null\n }\n\n const localizedId = getLocalizedResourceId(state, locale, resourceId)\n return localizedId != null\n ? APIResources.getAPIResource(state.apiResources, resourceType, localizedId, locale)\n : null\n\n default:\n return APIResources.getAPIResource(state.apiResources, resourceType, resourceId, locale)\n }\n}\n"],"mappings":"AAAA,SAAS,uBAA2C;AAEpD,YAAY,sBAAsB;AAClC,YAAY,iBAAiB;AAC7B,YAAY,kBAAkB;AAC9B,YAAY,2BAA2B;AAIvC,SAAS,uBAAiE;AAEnE,MAAM,UAAU,gBAAgB;AAAA,EACrC,aAAa,iBAAiB;AAAA,EAC9B,QAAQ,YAAY;AAAA,EACpB,cAAc,aAAa;AAAA,EAC3B,uBAAuB,sBAAsB;AAC/C,CAAC;AAUM,SAAS,uBACd,OACA,QACA,YAC2B;AAC3B,SAAO,sBAAsB;AAAA,IAC3B,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,kBACd,OACA,cACA,YACA,QACS;AACT,UAAQ,cAAc;AAAA,IACpB,KAAK,gBAAgB;AACnB,UAAI,UAAU,MAAM;AAClB,gBAAQ,MAAM,qBAAqB,YAAY,IAAI,UAAU,mBAAmB;AAChF,eAAO;AAAA,MACT;AAEA,YAAM,cAAc,uBAAuB,OAAO,QAAQ,UAAU;AACpE,aACE,eAAe,QACf,aAAa,kBAAkB,MAAM,cAAc,cAAc,aAAa,MAAM;AAAA,IAGxF;AACE,aAAO,aAAa,kBAAkB,MAAM,cAAc,cAAc,YAAY,MAAM;AAAA,EAC9F;AACF;AAEO,SAAS,eACd,OACA,cACA,YACA,QACgD;AAChD,UAAQ,cAAc;AAAA,IACpB,KAAK,gBAAgB;AACnB,UAAI,UAAU,MAAM;AAClB,gBAAQ,MAAM,qBAAqB,YAAY,IAAI,UAAU,mBAAmB;AAChF,eAAO;AAAA,MACT;AAEA,YAAM,cAAc,uBAAuB,OAAO,QAAQ,UAAU;AACpE,aAAO,eAAe,OAClB,aAAa,eAAe,MAAM,cAAc,cAAc,aAAa,MAAM,IACjF;AAAA,IAEN;AACE,aAAO,aAAa,eAAe,MAAM,cAAc,cAAc,YAAY,MAAM;AAAA,EAC3F;AACF;","names":[]}
@@ -0,0 +1,12 @@
1
+ import { configureStore as configureReduxStore } from "@reduxjs/toolkit";
2
+ import { reducer } from "./state";
3
+ function configureStore({ preloadedState }) {
4
+ return configureReduxStore({
5
+ reducer,
6
+ preloadedState
7
+ });
8
+ }
9
+ export {
10
+ configureStore
11
+ };
12
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/api-client/store.ts"],"sourcesContent":["import { configureStore as configureReduxStore } from '@reduxjs/toolkit'\n\nimport { type State, reducer } from './state'\n\nexport function configureStore({ preloadedState }: { preloadedState: Partial<State> }) {\n return configureReduxStore({\n reducer,\n preloadedState,\n })\n}\n\nexport type Store = ReturnType<typeof configureStore>\n"],"mappings":"AAAA,SAAS,kBAAkB,2BAA2B;AAEtD,SAAqB,eAAe;AAE7B,SAAS,eAAe,EAAE,eAAe,GAAuC;AACrF,SAAO,oBAAoB;AAAA,IACzB;AAAA,IACA;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,119 @@
1
+ import { SharedActionTypes } from "../shared-api";
2
+ import {
3
+ ReadOnlyActionTypes
4
+ } from "../actions/internal/read-only-actions";
5
+ export * from "../shared-api";
6
+ import { setBreakpoints } from "../actions/internal/read-only-actions";
7
+ import { setLocale } from "../actions/internal/read-only-actions";
8
+ const BuilderActionTypes = {
9
+ ...SharedActionTypes,
10
+ SET_BREAKPOINTS: ReadOnlyActionTypes.SET_BREAKPOINTS,
11
+ SET_LOCALE: ReadOnlyActionTypes.SET_LOCALE,
12
+ MAKESWIFT_CONNECTION_CHECK: "MAKESWIFT_CONNECTION_CHECK",
13
+ MOUNT_COMPONENT: "MOUNT_COMPONENT",
14
+ UNMOUNT_COMPONENT: "UNMOUNT_COMPONENT",
15
+ CHANGE_DOCUMENT_ELEMENT_SIZE: "CHANGE_DOCUMENT_ELEMENT_SIZE",
16
+ CHANGE_ELEMENT_BOX_MODELS: "CHANGE_ELEMENT_BOX_MODELS",
17
+ MESSAGE_BUILDER_PROP_CONTROLLER: "MESSAGE_BUILDER_PROP_CONTROLLER",
18
+ HANDLE_WHEEL: "HANDLE_WHEEL",
19
+ HANDLE_POINTER_MOVE: "HANDLE_POINTER_MOVE",
20
+ ELEMENT_FROM_POINT_CHANGE: "ELEMENT_FROM_POINT_CHANGE",
21
+ REGISTER_BUILDER_DOCUMENT: "REGISTER_BUILDER_DOCUMENT",
22
+ UNREGISTER_BUILDER_DOCUMENT: "UNREGISTER_BUILDER_DOCUMENT",
23
+ REGISTER_BUILDER_COMPONENT: "REGISTER_BUILDER_COMPONENT",
24
+ UNREGISTER_BUILDER_COMPONENT: "UNREGISTER_BUILDER_COMPONENT",
25
+ HANDLE_HOST_NAVIGATE: "HANDLE_HOST_NAVIGATE"
26
+ };
27
+ function makeswiftConnectionCheck() {
28
+ return { type: BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK };
29
+ }
30
+ function mountComponent(documentKey, elementKey) {
31
+ return { type: BuilderActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } };
32
+ }
33
+ function unmountComponent(documentKey, elementKey) {
34
+ return { type: BuilderActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } };
35
+ }
36
+ function mountComponentEffect(documentKey, elementKey) {
37
+ return (dispatch) => {
38
+ dispatch(mountComponent(documentKey, elementKey));
39
+ return () => {
40
+ dispatch(unmountComponent(documentKey, elementKey));
41
+ };
42
+ };
43
+ }
44
+ function changeDocumentElementSize(size) {
45
+ return { type: BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } };
46
+ }
47
+ function changeElementBoxModels(changedElementBoxModels) {
48
+ return {
49
+ type: BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS,
50
+ payload: { changedElementBoxModels }
51
+ };
52
+ }
53
+ function messageBuilderPropController(documentKey, elementKey, propName, message) {
54
+ return {
55
+ type: BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,
56
+ payload: { documentKey, elementKey, propName, message }
57
+ };
58
+ }
59
+ function handleWheel(payload) {
60
+ return { type: BuilderActionTypes.HANDLE_WHEEL, payload };
61
+ }
62
+ function handlePointerMove(payload) {
63
+ return { type: BuilderActionTypes.HANDLE_POINTER_MOVE, payload };
64
+ }
65
+ function elementFromPointChange(keys) {
66
+ return { type: BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE, payload: { keys } };
67
+ }
68
+ function registerBuilderDocument(document) {
69
+ return {
70
+ type: BuilderActionTypes.REGISTER_BUILDER_DOCUMENT,
71
+ payload: { documentKey: document.key, document }
72
+ };
73
+ }
74
+ function unregisterBuilderDocument(documentKey) {
75
+ return { type: BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT, payload: { documentKey } };
76
+ }
77
+ function registerBuilderDocumentsEffect(documents) {
78
+ return (dispatch) => {
79
+ documents.forEach((document) => dispatch(registerBuilderDocument(document)));
80
+ return () => {
81
+ documents.forEach((document) => dispatch(unregisterBuilderDocument(document.key)));
82
+ };
83
+ };
84
+ }
85
+ function registerBuilderComponent(payload, transferables) {
86
+ return {
87
+ type: BuilderActionTypes.REGISTER_BUILDER_COMPONENT,
88
+ payload,
89
+ transferables
90
+ };
91
+ }
92
+ function unregisterBuilderComponent(payload) {
93
+ return { type: BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT, payload };
94
+ }
95
+ function hasTransferables(action) {
96
+ return "transferables" in action && Array.isArray(action.transferables);
97
+ }
98
+ export {
99
+ BuilderActionTypes,
100
+ changeDocumentElementSize,
101
+ changeElementBoxModels,
102
+ elementFromPointChange,
103
+ handlePointerMove,
104
+ handleWheel,
105
+ hasTransferables,
106
+ makeswiftConnectionCheck,
107
+ messageBuilderPropController,
108
+ mountComponent,
109
+ mountComponentEffect,
110
+ registerBuilderComponent,
111
+ registerBuilderDocument,
112
+ registerBuilderDocumentsEffect,
113
+ setBreakpoints,
114
+ setLocale,
115
+ unmountComponent,
116
+ unregisterBuilderComponent,
117
+ unregisterBuilderDocument
118
+ };
119
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/builder-api/actions.ts"],"sourcesContent":["import { type ThunkAction } from '@reduxjs/toolkit'\n\nimport { type SerializedControl } from '../../builder'\nimport { type PropControllerMessage } from '../../prop-controllers/instances'\n\nimport { type Document } from '../modules/read-only-documents'\nimport { type ComponentMeta } from '../modules/components-meta'\nimport { type BoxDisplayModel } from '../modules/read-write/box-models'\n\nimport { type ElementSize } from '../middleware/read-write/builder-api/element-size'\nimport { type DocumentPayload, type SharedAction, SharedActionTypes } from '../shared-api'\n\nimport { type HostNavigationEvent } from './api'\nimport {\n type SetBreakpointsAction,\n type SetLocaleAction,\n ReadOnlyActionTypes,\n} from '../actions/internal/read-only-actions'\n\nexport * from '../shared-api'\nexport { setBreakpoints } from '../actions/internal/read-only-actions'\nexport { setLocale } from '../actions/internal/read-only-actions'\n\n// actions dispatched by the host to the builder (\"Builder API\")\n// note that some of these actions (SET_BREAKPOINTS, SET_LOCALE), in addition to\n// being dispatched to the builder, are also internally intercepted by the host\n// as a part of maintaining the runtime's own state\nexport const BuilderActionTypes = {\n ...SharedActionTypes,\n SET_BREAKPOINTS: ReadOnlyActionTypes.SET_BREAKPOINTS,\n SET_LOCALE: ReadOnlyActionTypes.SET_LOCALE,\n\n MAKESWIFT_CONNECTION_CHECK: 'MAKESWIFT_CONNECTION_CHECK',\n\n MOUNT_COMPONENT: 'MOUNT_COMPONENT',\n UNMOUNT_COMPONENT: 'UNMOUNT_COMPONENT',\n\n CHANGE_DOCUMENT_ELEMENT_SIZE: 'CHANGE_DOCUMENT_ELEMENT_SIZE',\n CHANGE_ELEMENT_BOX_MODELS: 'CHANGE_ELEMENT_BOX_MODELS',\n\n MESSAGE_BUILDER_PROP_CONTROLLER: 'MESSAGE_BUILDER_PROP_CONTROLLER',\n\n HANDLE_WHEEL: 'HANDLE_WHEEL',\n HANDLE_POINTER_MOVE: 'HANDLE_POINTER_MOVE',\n\n ELEMENT_FROM_POINT_CHANGE: 'ELEMENT_FROM_POINT_CHANGE',\n\n REGISTER_BUILDER_DOCUMENT: 'REGISTER_BUILDER_DOCUMENT',\n UNREGISTER_BUILDER_DOCUMENT: 'UNREGISTER_BUILDER_DOCUMENT',\n\n REGISTER_BUILDER_COMPONENT: 'REGISTER_BUILDER_COMPONENT',\n UNREGISTER_BUILDER_COMPONENT: 'UNREGISTER_BUILDER_COMPONENT',\n\n HANDLE_HOST_NAVIGATE: 'HANDLE_HOST_NAVIGATE',\n} as const\n\ntype ActionWithTransferables<A> = A & {\n transferables?: Transferable[]\n}\n\ntype MakeswiftConnectionCheckAction = {\n type: typeof BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK\n}\n\ntype MountComponentAction = {\n type: typeof BuilderActionTypes.MOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof BuilderActionTypes.UNMOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype ChangeDocumentElementSizeAction = {\n type: typeof BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE\n payload: { size: ElementSize }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: Map<string, Map<string, BoxDisplayModel | null>> }\n}\n\ntype MessageBuilderPropControllerAction<T = PropControllerMessage> = {\n type: typeof BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype HandleWheelAction = {\n type: typeof BuilderActionTypes.HANDLE_WHEEL\n payload: { deltaX: number; deltaY: number }\n}\n\ntype HandlePointerMoveAction = {\n type: typeof BuilderActionTypes.HANDLE_POINTER_MOVE\n payload: { clientX: number; clientY: number }\n}\n\ntype ElementFromPointChangeAction = {\n type: typeof BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE\n payload: { keys: { documentKey: string; elementKey: string } | null }\n}\n\ntype RegisterBuilderDocumentAction = {\n type: typeof BuilderActionTypes.REGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string; document: DocumentPayload }\n}\n\ntype UnregisterBuilderDocumentAction = {\n type: typeof BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype RegisterBuilderComponentAction = {\n type: typeof BuilderActionTypes.REGISTER_BUILDER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n serializedControls: Record<string, SerializedControl>\n }\n}\n\ntype UnregisterBuilderComponentAction = {\n type: typeof BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT\n payload: { type: string }\n}\n\ntype HandleHostNavigateAction = {\n type: typeof BuilderActionTypes.HANDLE_HOST_NAVIGATE\n payload: HostNavigationEvent\n}\n\nexport type BuilderAction =\n | SharedAction\n | SetBreakpointsAction\n | SetLocaleAction\n | MakeswiftConnectionCheckAction\n | MountComponentAction\n | UnmountComponentAction\n | ChangeDocumentElementSizeAction\n | ChangeElementBoxModelsAction\n | MessageBuilderPropControllerAction\n | HandleWheelAction\n | HandlePointerMoveAction\n | ElementFromPointChangeAction\n | RegisterBuilderDocumentAction\n | UnregisterBuilderDocumentAction\n | RegisterBuilderComponentAction\n | UnregisterBuilderComponentAction\n | HandleHostNavigateAction\n\nexport function makeswiftConnectionCheck(): MakeswiftConnectionCheckAction {\n return { type: BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK }\n}\n\nexport function mountComponent(documentKey: string, elementKey: string): MountComponentAction {\n return { type: BuilderActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function unmountComponent(documentKey: string, elementKey: string): UnmountComponentAction {\n return { type: BuilderActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function mountComponentEffect(\n documentKey: string,\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, BuilderAction> {\n return dispatch => {\n dispatch(mountComponent(documentKey, elementKey))\n\n return () => {\n dispatch(unmountComponent(documentKey, elementKey))\n }\n }\n}\n\nexport function changeDocumentElementSize(size: ElementSize): ChangeDocumentElementSizeAction {\n return { type: BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: Map<string, Map<string, BoxDisplayModel | null>>,\n): ChangeElementBoxModelsAction {\n return {\n type: BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS,\n payload: { changedElementBoxModels },\n }\n}\n\nexport function messageBuilderPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageBuilderPropControllerAction<T> {\n return {\n type: BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function handleWheel(payload: { deltaX: number; deltaY: number }): HandleWheelAction {\n return { type: BuilderActionTypes.HANDLE_WHEEL, payload }\n}\n\nexport function handlePointerMove(payload: {\n clientX: number\n clientY: number\n}): HandlePointerMoveAction {\n return { type: BuilderActionTypes.HANDLE_POINTER_MOVE, payload }\n}\n\nexport function elementFromPointChange(\n keys: {\n documentKey: string\n elementKey: string\n } | null,\n): ElementFromPointChangeAction {\n return { type: BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE, payload: { keys } }\n}\n\nexport function registerBuilderDocument(document: Document): RegisterBuilderDocumentAction {\n return {\n type: BuilderActionTypes.REGISTER_BUILDER_DOCUMENT,\n payload: { documentKey: document.key, document },\n }\n}\n\nexport function unregisterBuilderDocument(documentKey: string): UnregisterBuilderDocumentAction {\n return { type: BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerBuilderDocumentsEffect(\n documents: Document[],\n): ThunkAction<() => void, unknown, unknown, BuilderAction> {\n return dispatch => {\n documents.forEach(document => dispatch(registerBuilderDocument(document)))\n\n return () => {\n documents.forEach(document => dispatch(unregisterBuilderDocument(document.key)))\n }\n }\n}\n\nexport function registerBuilderComponent(\n payload: RegisterBuilderComponentAction['payload'],\n transferables?: Transferable[],\n): ActionWithTransferables<RegisterBuilderComponentAction> {\n return {\n type: BuilderActionTypes.REGISTER_BUILDER_COMPONENT,\n payload,\n transferables,\n }\n}\n\nexport function unregisterBuilderComponent(\n payload: UnregisterBuilderComponentAction['payload'],\n): UnregisterBuilderComponentAction {\n return { type: BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT, payload }\n}\n\nexport function hasTransferables<A extends BuilderAction>(\n action: A,\n): action is ActionWithTransferables<A> {\n return 'transferables' in action && Array.isArray(action.transferables)\n}\n"],"mappings":"AAUA,SAAkD,yBAAyB;AAG3E;AAAA,EAGE;AAAA,OACK;AAEP,cAAc;AACd,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAMnB,MAAM,qBAAqB;AAAA,EAChC,GAAG;AAAA,EACH,iBAAiB,oBAAoB;AAAA,EACrC,YAAY,oBAAoB;AAAA,EAEhC,4BAA4B;AAAA,EAE5B,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EAEnB,8BAA8B;AAAA,EAC9B,2BAA2B;AAAA,EAE3B,iCAAiC;AAAA,EAEjC,cAAc;AAAA,EACd,qBAAqB;AAAA,EAErB,2BAA2B;AAAA,EAE3B,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAE7B,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAE9B,sBAAsB;AACxB;AAkGO,SAAS,2BAA2D;AACzE,SAAO,EAAE,MAAM,mBAAmB,2BAA2B;AAC/D;AAEO,SAAS,eAAe,aAAqB,YAA0C;AAC5F,SAAO,EAAE,MAAM,mBAAmB,iBAAiB,SAAS,EAAE,aAAa,WAAW,EAAE;AAC1F;AAEO,SAAS,iBAAiB,aAAqB,YAA4C;AAChG,SAAO,EAAE,MAAM,mBAAmB,mBAAmB,SAAS,EAAE,aAAa,WAAW,EAAE;AAC5F;AAEO,SAAS,qBACd,aACA,YAC0D;AAC1D,SAAO,cAAY;AACjB,aAAS,eAAe,aAAa,UAAU,CAAC;AAEhD,WAAO,MAAM;AACX,eAAS,iBAAiB,aAAa,UAAU,CAAC;AAAA,IACpD;AAAA,EACF;AACF;AAEO,SAAS,0BAA0B,MAAoD;AAC5F,SAAO,EAAE,MAAM,mBAAmB,8BAA8B,SAAS,EAAE,KAAK,EAAE;AACpF;AAEO,SAAS,uBACd,yBAC8B;AAC9B,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,wBAAwB;AAAA,EACrC;AACF;AAEO,SAAS,6BACd,aACA,YACA,UACA,SACuC;AACvC,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,aAAa,YAAY,UAAU,QAAQ;AAAA,EACxD;AACF;AAEO,SAAS,YAAY,SAAgE;AAC1F,SAAO,EAAE,MAAM,mBAAmB,cAAc,QAAQ;AAC1D;AAEO,SAAS,kBAAkB,SAGN;AAC1B,SAAO,EAAE,MAAM,mBAAmB,qBAAqB,QAAQ;AACjE;AAEO,SAAS,uBACd,MAI8B;AAC9B,SAAO,EAAE,MAAM,mBAAmB,2BAA2B,SAAS,EAAE,KAAK,EAAE;AACjF;AAEO,SAAS,wBAAwB,UAAmD;AACzF,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,aAAa,SAAS,KAAK,SAAS;AAAA,EACjD;AACF;AAEO,SAAS,0BAA0B,aAAsD;AAC9F,SAAO,EAAE,MAAM,mBAAmB,6BAA6B,SAAS,EAAE,YAAY,EAAE;AAC1F;AAEO,SAAS,+BACd,WAC0D;AAC1D,SAAO,cAAY;AACjB,cAAU,QAAQ,cAAY,SAAS,wBAAwB,QAAQ,CAAC,CAAC;AAEzE,WAAO,MAAM;AACX,gBAAU,QAAQ,cAAY,SAAS,0BAA0B,SAAS,GAAG,CAAC,CAAC;AAAA,IACjF;AAAA,EACF;AACF;AAEO,SAAS,yBACd,SACA,eACyD;AACzD,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,2BACd,SACkC;AAClC,SAAO,EAAE,MAAM,mBAAmB,8BAA8B,QAAQ;AAC1E;AAEO,SAAS,iBACd,QACsC;AACtC,SAAO,mBAAmB,UAAU,MAAM,QAAQ,OAAO,aAAa;AACxE;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,74 @@
1
+ import { SharedActionTypes, makeswiftConnectionInit } from "../shared-api";
2
+ import { makeswiftConnectionCheck } from "./actions";
3
+ const CONNECTION_PING_INTERVAL_MS = 20;
4
+ class MessageChannel {
5
+ appOrigin;
6
+ channel = null;
7
+ bufferedMessages = [];
8
+ constructor({ appOrigin }) {
9
+ this.appOrigin = appOrigin;
10
+ }
11
+ postMessage(message, transferables) {
12
+ if (this.channel) {
13
+ this.channel.postMessage(message, transferables ?? []);
14
+ } else {
15
+ this.bufferedMessages.push([message, transferables]);
16
+ }
17
+ }
18
+ setup({ onMessage }) {
19
+ const cleanupConnectionCheck = setupConnectionCheck(this.appOrigin);
20
+ const channel = new window.MessageChannel();
21
+ channel.port1.onmessage = onMessage;
22
+ window.parent.postMessage(channel.port2, this.appOrigin, [channel.port2]);
23
+ this.channel = channel.port1;
24
+ return () => {
25
+ cleanupConnectionCheck();
26
+ if (this.channel) {
27
+ this.channel.onmessage = null;
28
+ this.channel.close();
29
+ this.channel = null;
30
+ }
31
+ };
32
+ }
33
+ dispatchBuffered() {
34
+ console.assert(this.channel != null, "channel is not setup");
35
+ this.bufferedMessages.forEach(([message, transferables]) => {
36
+ this.channel?.postMessage(message, transferables ?? []);
37
+ });
38
+ this.bufferedMessages = [];
39
+ }
40
+ }
41
+ function setupConnectionCheck(appOrigin) {
42
+ class Interval {
43
+ id = null;
44
+ setInterval(callback, delay) {
45
+ this.clear();
46
+ this.id = window.setInterval(callback, delay);
47
+ }
48
+ clear() {
49
+ if (this.id != null) {
50
+ window.clearInterval(this.id);
51
+ this.id = null;
52
+ }
53
+ }
54
+ }
55
+ const connectionCheckInterval = new Interval();
56
+ function connectionCheckHandler(event) {
57
+ if (event.origin === appOrigin && event.data.type === SharedActionTypes.MAKESWIFT_CONNECTION_INIT) {
58
+ connectionCheckInterval.setInterval(
59
+ () => window.parent.postMessage(makeswiftConnectionCheck(), { targetOrigin: appOrigin }),
60
+ CONNECTION_PING_INTERVAL_MS
61
+ );
62
+ }
63
+ }
64
+ window.addEventListener("message", connectionCheckHandler);
65
+ window.parent.postMessage(makeswiftConnectionInit(), { targetOrigin: appOrigin });
66
+ return () => {
67
+ window.removeEventListener("message", connectionCheckHandler);
68
+ connectionCheckInterval.clear();
69
+ };
70
+ }
71
+ export {
72
+ MessageChannel
73
+ };
74
+ //# sourceMappingURL=message-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/builder-api/message-channel.ts"],"sourcesContent":["import { SharedActionTypes, makeswiftConnectionInit } from '../shared-api'\nimport { makeswiftConnectionCheck } from './actions'\n\nconst CONNECTION_PING_INTERVAL_MS = 20\n\nexport class MessageChannel {\n private readonly appOrigin: string\n private channel: MessagePort | null = null\n private bufferedMessages: [any, Transferable[]?][] = []\n\n constructor({ appOrigin }: { appOrigin: string }) {\n this.appOrigin = appOrigin\n }\n\n public postMessage(message: any, transferables?: Transferable[]) {\n if (this.channel) {\n this.channel.postMessage(message, transferables ?? [])\n } else {\n this.bufferedMessages.push([message, transferables])\n }\n }\n\n public setup({ onMessage }: { onMessage: (event: MessageEvent) => void }): VoidFunction {\n const cleanupConnectionCheck = setupConnectionCheck(this.appOrigin)\n\n const channel = new window.MessageChannel()\n channel.port1.onmessage = onMessage\n\n // connect channel to the parent window, see\n // https://developer.mozilla.org/en-US/docs/Web/API/Channel_Messaging_API\n window.parent.postMessage(channel.port2, this.appOrigin, [channel.port2])\n\n this.channel = channel.port1\n\n return () => {\n cleanupConnectionCheck()\n\n if (this.channel) {\n this.channel.onmessage = null\n this.channel.close()\n this.channel = null\n }\n }\n }\n\n public dispatchBuffered() {\n console.assert(this.channel != null, 'channel is not setup')\n\n this.bufferedMessages.forEach(([message, transferables]) => {\n this.channel?.postMessage(message, transferables ?? [])\n })\n\n this.bufferedMessages = []\n }\n}\n\n// FIXME: instead of `window.parent.postMessage`, the connection check should\n// probably use the message channel itself: after all, it's meant to check\n// the health of the builder <> host connection, and whether we can reach the\n// builder through `window.parent.postMessage` is not indicative of the health\n// of the message channel itself, which is what the builder <> host\n// communication relies on.\nfunction setupConnectionCheck(appOrigin: string): VoidFunction {\n class Interval {\n private id: number | null = null\n\n setInterval(callback: () => void, delay: number) {\n this.clear()\n this.id = window.setInterval(callback, delay)\n }\n\n clear() {\n if (this.id != null) {\n window.clearInterval(this.id)\n this.id = null\n }\n }\n }\n\n const connectionCheckInterval = new Interval()\n\n function connectionCheckHandler(event: MessageEvent) {\n if (\n event.origin === appOrigin &&\n event.data.type === SharedActionTypes.MAKESWIFT_CONNECTION_INIT\n ) {\n connectionCheckInterval.setInterval(\n () => window.parent.postMessage(makeswiftConnectionCheck(), { targetOrigin: appOrigin }),\n CONNECTION_PING_INTERVAL_MS,\n )\n }\n }\n\n window.addEventListener('message', connectionCheckHandler)\n window.parent.postMessage(makeswiftConnectionInit(), { targetOrigin: appOrigin })\n\n return () => {\n window.removeEventListener('message', connectionCheckHandler)\n connectionCheckInterval.clear()\n }\n}\n"],"mappings":"AAAA,SAAS,mBAAmB,+BAA+B;AAC3D,SAAS,gCAAgC;AAEzC,MAAM,8BAA8B;AAE7B,MAAM,eAAe;AAAA,EACT;AAAA,EACT,UAA8B;AAAA,EAC9B,mBAA6C,CAAC;AAAA,EAEtD,YAAY,EAAE,UAAU,GAA0B;AAChD,SAAK,YAAY;AAAA,EACnB;AAAA,EAEO,YAAY,SAAc,eAAgC;AAC/D,QAAI,KAAK,SAAS;AAChB,WAAK,QAAQ,YAAY,SAAS,iBAAiB,CAAC,CAAC;AAAA,IACvD,OAAO;AACL,WAAK,iBAAiB,KAAK,CAAC,SAAS,aAAa,CAAC;AAAA,IACrD;AAAA,EACF;AAAA,EAEO,MAAM,EAAE,UAAU,GAA+D;AACtF,UAAM,yBAAyB,qBAAqB,KAAK,SAAS;AAElE,UAAM,UAAU,IAAI,OAAO,eAAe;AAC1C,YAAQ,MAAM,YAAY;AAI1B,WAAO,OAAO,YAAY,QAAQ,OAAO,KAAK,WAAW,CAAC,QAAQ,KAAK,CAAC;AAExE,SAAK,UAAU,QAAQ;AAEvB,WAAO,MAAM;AACX,6BAAuB;AAEvB,UAAI,KAAK,SAAS;AAChB,aAAK,QAAQ,YAAY;AACzB,aAAK,QAAQ,MAAM;AACnB,aAAK,UAAU;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EAEO,mBAAmB;AACxB,YAAQ,OAAO,KAAK,WAAW,MAAM,sBAAsB;AAE3D,SAAK,iBAAiB,QAAQ,CAAC,CAAC,SAAS,aAAa,MAAM;AAC1D,WAAK,SAAS,YAAY,SAAS,iBAAiB,CAAC,CAAC;AAAA,IACxD,CAAC;AAED,SAAK,mBAAmB,CAAC;AAAA,EAC3B;AACF;AAQA,SAAS,qBAAqB,WAAiC;AAAA,EAC7D,MAAM,SAAS;AAAA,IACL,KAAoB;AAAA,IAE5B,YAAY,UAAsB,OAAe;AAC/C,WAAK,MAAM;AACX,WAAK,KAAK,OAAO,YAAY,UAAU,KAAK;AAAA,IAC9C;AAAA,IAEA,QAAQ;AACN,UAAI,KAAK,MAAM,MAAM;AACnB,eAAO,cAAc,KAAK,EAAE;AAC5B,aAAK,KAAK;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAEA,QAAM,0BAA0B,IAAI,SAAS;AAE7C,WAAS,uBAAuB,OAAqB;AACnD,QACE,MAAM,WAAW,aACjB,MAAM,KAAK,SAAS,kBAAkB,2BACtC;AACA,8BAAwB;AAAA,QACtB,MAAM,OAAO,OAAO,YAAY,yBAAyB,GAAG,EAAE,cAAc,UAAU,CAAC;AAAA,QACvF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,iBAAiB,WAAW,sBAAsB;AACzD,SAAO,OAAO,YAAY,wBAAwB,GAAG,EAAE,cAAc,UAAU,CAAC;AAEhF,SAAO,MAAM;AACX,WAAO,oBAAoB,WAAW,sBAAsB;AAC5D,4BAAwB,MAAM;AAAA,EAChC;AACF;","names":[]}
@@ -0,0 +1,86 @@
1
+ const CLICK_NAVIGATION_THRESHOLD_MS = 100;
2
+ const CLICK_NAVIGATION_CHECK_INTERVAL_MS = 200;
3
+ const CLICK_NAVIGATION_MAX_CHECKS = 20;
4
+ function setupNavigationListener(callback) {
5
+ let previousLocation = null;
6
+ const handleNavigate = (event) => {
7
+ if (!event.navigationCompleted && event.url === previousLocation)
8
+ return;
9
+ callback(event);
10
+ previousLocation = event.url;
11
+ };
12
+ handleNavigate({ url: windowLocation(), navigationCompleted: "initial-page-load" });
13
+ if (typeof window === "undefined") {
14
+ return () => {
15
+ };
16
+ }
17
+ const unsubscribes = [];
18
+ if ("navigation" in window && window.navigation) {
19
+ const navigation = window.navigation;
20
+ const navigateHandler = ({ destination }) => handleNavigate({ url: destination.url });
21
+ const navigateSuccessHandler = () => {
22
+ handleNavigate({
23
+ url: navigation.currentEntry.url,
24
+ navigationCompleted: "client-side-navigation"
25
+ });
26
+ };
27
+ navigation.addEventListener("navigate", navigateHandler);
28
+ navigation.addEventListener("navigatesuccess", navigateSuccessHandler);
29
+ unsubscribes.push(() => navigation.removeEventListener("navigate", navigateHandler));
30
+ unsubscribes.push(
31
+ () => navigation.removeEventListener("navigatesuccess", navigateSuccessHandler)
32
+ );
33
+ return () => {
34
+ unsubscribes.forEach((u) => u());
35
+ };
36
+ }
37
+ let lastClickEvent = null;
38
+ const clickHandler = (e) => {
39
+ const a = e.composedPath?.()?.find((n) => n instanceof HTMLAnchorElement) ?? (e.target instanceof Element && e.target.closest?.("a"));
40
+ if (!a)
41
+ return;
42
+ lastClickEvent = { href: a.href, timestamp: Date.now() };
43
+ const pageUrlBeforeClick = windowLocation();
44
+ let navigationCheckCounter = 0;
45
+ const checkIfNavigationOccurred = () => {
46
+ const url = windowLocation();
47
+ if (url !== pageUrlBeforeClick) {
48
+ handleNavigate({ url, polyfilled: true });
49
+ return;
50
+ }
51
+ if (++navigationCheckCounter < CLICK_NAVIGATION_MAX_CHECKS) {
52
+ window.setTimeout(checkIfNavigationOccurred, CLICK_NAVIGATION_CHECK_INTERVAL_MS);
53
+ }
54
+ };
55
+ window.setTimeout(checkIfNavigationOccurred, CLICK_NAVIGATION_CHECK_INTERVAL_MS);
56
+ };
57
+ window.document.addEventListener(
58
+ "click",
59
+ clickHandler,
60
+ { capture: true }
61
+ // run before bubbling to fortify against `stopPropagation()` calls
62
+ );
63
+ unsubscribes.push(
64
+ () => window.document.removeEventListener("click", clickHandler, { capture: true })
65
+ );
66
+ const unloadHandler = () => {
67
+ if (!lastClickEvent)
68
+ return;
69
+ const msSinceLastClick = Date.now() - lastClickEvent.timestamp;
70
+ handleNavigate({
71
+ url: msSinceLastClick < CLICK_NAVIGATION_THRESHOLD_MS ? lastClickEvent.href ?? null : null,
72
+ polyfilled: true
73
+ });
74
+ lastClickEvent = null;
75
+ };
76
+ window.addEventListener("beforeunload", unloadHandler);
77
+ unsubscribes.push(() => window.removeEventListener("beforeunload", unloadHandler));
78
+ return () => {
79
+ unsubscribes.forEach((u) => u());
80
+ };
81
+ }
82
+ const windowLocation = () => typeof window !== "undefined" ? window.location.href : null;
83
+ export {
84
+ setupNavigationListener
85
+ };
86
+ //# sourceMappingURL=navigation-listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/builder-api/navigation-listener.ts"],"sourcesContent":["import { type HostNavigationEvent } from './api'\n\ntype ClickEvent = {\n href: string\n timestamp: number\n}\n\nconst CLICK_NAVIGATION_THRESHOLD_MS = 100\nconst CLICK_NAVIGATION_CHECK_INTERVAL_MS = 200\nconst CLICK_NAVIGATION_MAX_CHECKS = 20\n\nexport function setupNavigationListener(\n callback: (args: HostNavigationEvent) => void,\n): VoidFunction {\n let previousLocation: string | null = null\n\n const handleNavigate = (event: HostNavigationEvent) => {\n if (!event.navigationCompleted && event.url === previousLocation) return\n\n callback(event)\n previousLocation = event.url\n }\n\n // trigger navigation callback on initial page load\n handleNavigate({ url: windowLocation(), navigationCompleted: 'initial-page-load' })\n\n if (typeof window === 'undefined') {\n return () => {}\n }\n\n const unsubscribes: (() => void)[] = []\n\n // check for availability of the Navigation API (baseline feature since January 2026),\n // see https://developer.mozilla.org/en-US/docs/Web/API/Navigation_API\n if ('navigation' in window && window.navigation) {\n const navigation = window.navigation\n\n const navigateHandler = ({ destination }: NavigateEvent) =>\n handleNavigate({ url: destination.url })\n\n const navigateSuccessHandler = () => {\n handleNavigate({\n url: navigation.currentEntry.url,\n navigationCompleted: 'client-side-navigation',\n })\n }\n\n // note that in order to capture destination URLs that might not be Makeswift-enabled,\n // we send a `SiteNavigationEvent` at the start of navigation, but do not track whether\n // the navigation was successful or not (possible future improvement)\n navigation.addEventListener('navigate', navigateHandler)\n navigation.addEventListener('navigatesuccess', navigateSuccessHandler)\n unsubscribes.push(() => navigation.removeEventListener('navigate', navigateHandler))\n unsubscribes.push(() =>\n navigation.removeEventListener('navigatesuccess', navigateSuccessHandler),\n )\n\n return () => {\n unsubscribes.forEach(u => u())\n }\n }\n\n // for browsers lacking Navigation API support, we manually track:\n // - link clicks to capture destination URLs\n // - page unload events to detect cross-page navigation\n //\n // this works well enough to keep this polyfill in place for now, but not nearly as\n // reliably as the Navigation API\n let lastClickEvent: ClickEvent | null = null\n\n const clickHandler = (e: MouseEvent) => {\n const a =\n e.composedPath?.()?.find(n => n instanceof HTMLAnchorElement) ??\n (e.target instanceof Element && e.target.closest?.('a'))\n\n if (!a) return\n\n lastClickEvent = { href: a.href, timestamp: Date.now() }\n\n const pageUrlBeforeClick = windowLocation()\n let navigationCheckCounter = 0\n\n // handle navigation between pages in the host; note that we intentionally are\n // not cancelling the timer on cleanup to ensure we report the navigation\n const checkIfNavigationOccurred = () => {\n const url = windowLocation()\n\n if (url !== pageUrlBeforeClick) {\n // the host navigated to a different page, report the new URL to the builder\n handleNavigate({ url, polyfilled: true })\n return\n }\n\n // we're still on the same page, recheck until the max number of checks is reached\n if (++navigationCheckCounter < CLICK_NAVIGATION_MAX_CHECKS) {\n window.setTimeout(checkIfNavigationOccurred, CLICK_NAVIGATION_CHECK_INTERVAL_MS)\n }\n }\n\n window.setTimeout(checkIfNavigationOccurred, CLICK_NAVIGATION_CHECK_INTERVAL_MS)\n }\n\n window.document.addEventListener(\n 'click',\n clickHandler,\n { capture: true }, // run before bubbling to fortify against `stopPropagation()` calls\n )\n\n unsubscribes.push(() =>\n window.document.removeEventListener('click', clickHandler, { capture: true }),\n )\n\n // handle external navigation\n const unloadHandler = () => {\n if (!lastClickEvent) return\n\n const msSinceLastClick = Date.now() - lastClickEvent.timestamp\n handleNavigate({\n url: msSinceLastClick < CLICK_NAVIGATION_THRESHOLD_MS ? (lastClickEvent.href ?? null) : null,\n polyfilled: true,\n })\n\n lastClickEvent = null\n }\n\n window.addEventListener('beforeunload', unloadHandler)\n unsubscribes.push(() => window.removeEventListener('beforeunload', unloadHandler))\n\n return () => {\n unsubscribes.forEach(u => u())\n }\n}\n\nconst windowLocation = (): string | null =>\n typeof window !== 'undefined' ? window.location.href : null\n"],"mappings":"AAOA,MAAM,gCAAgC;AACtC,MAAM,qCAAqC;AAC3C,MAAM,8BAA8B;AAE7B,SAAS,wBACd,UACc;AACd,MAAI,mBAAkC;AAEtC,QAAM,iBAAiB,CAAC,UAA+B;AACrD,QAAI,CAAC,MAAM,uBAAuB,MAAM,QAAQ;AAAkB;AAElE,aAAS,KAAK;AACd,uBAAmB,MAAM;AAAA,EAC3B;AAGA,iBAAe,EAAE,KAAK,eAAe,GAAG,qBAAqB,oBAAoB,CAAC;AAElF,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AAEA,QAAM,eAA+B,CAAC;AAItC,MAAI,gBAAgB,UAAU,OAAO,YAAY;AAC/C,UAAM,aAAa,OAAO;AAE1B,UAAM,kBAAkB,CAAC,EAAE,YAAY,MACrC,eAAe,EAAE,KAAK,YAAY,IAAI,CAAC;AAEzC,UAAM,yBAAyB,MAAM;AACnC,qBAAe;AAAA,QACb,KAAK,WAAW,aAAa;AAAA,QAC7B,qBAAqB;AAAA,MACvB,CAAC;AAAA,IACH;AAKA,eAAW,iBAAiB,YAAY,eAAe;AACvD,eAAW,iBAAiB,mBAAmB,sBAAsB;AACrE,iBAAa,KAAK,MAAM,WAAW,oBAAoB,YAAY,eAAe,CAAC;AACnF,iBAAa;AAAA,MAAK,MAChB,WAAW,oBAAoB,mBAAmB,sBAAsB;AAAA,IAC1E;AAEA,WAAO,MAAM;AACX,mBAAa,QAAQ,OAAK,EAAE,CAAC;AAAA,IAC/B;AAAA,EACF;AAQA,MAAI,iBAAoC;AAExC,QAAM,eAAe,CAAC,MAAkB;AACtC,UAAM,IACJ,EAAE,eAAe,GAAG,KAAK,OAAK,aAAa,iBAAiB,MAC3D,EAAE,kBAAkB,WAAW,EAAE,OAAO,UAAU,GAAG;AAExD,QAAI,CAAC;AAAG;AAER,qBAAiB,EAAE,MAAM,EAAE,MAAM,WAAW,KAAK,IAAI,EAAE;AAEvD,UAAM,qBAAqB,eAAe;AAC1C,QAAI,yBAAyB;AAI7B,UAAM,4BAA4B,MAAM;AACtC,YAAM,MAAM,eAAe;AAE3B,UAAI,QAAQ,oBAAoB;AAE9B,uBAAe,EAAE,KAAK,YAAY,KAAK,CAAC;AACxC;AAAA,MACF;AAGA,UAAI,EAAE,yBAAyB,6BAA6B;AAC1D,eAAO,WAAW,2BAA2B,kCAAkC;AAAA,MACjF;AAAA,IACF;AAEA,WAAO,WAAW,2BAA2B,kCAAkC;AAAA,EACjF;AAEA,SAAO,SAAS;AAAA,IACd;AAAA,IACA;AAAA,IACA,EAAE,SAAS,KAAK;AAAA;AAAA,EAClB;AAEA,eAAa;AAAA,IAAK,MAChB,OAAO,SAAS,oBAAoB,SAAS,cAAc,EAAE,SAAS,KAAK,CAAC;AAAA,EAC9E;AAGA,QAAM,gBAAgB,MAAM;AAC1B,QAAI,CAAC;AAAgB;AAErB,UAAM,mBAAmB,KAAK,IAAI,IAAI,eAAe;AACrD,mBAAe;AAAA,MACb,KAAK,mBAAmB,gCAAiC,eAAe,QAAQ,OAAQ;AAAA,MACxF,YAAY;AAAA,IACd,CAAC;AAED,qBAAiB;AAAA,EACnB;AAEA,SAAO,iBAAiB,gBAAgB,aAAa;AACrD,eAAa,KAAK,MAAM,OAAO,oBAAoB,gBAAgB,aAAa,CAAC;AAEjF,SAAO,MAAM;AACX,iBAAa,QAAQ,OAAK,EAAE,CAAC;AAAA,EAC/B;AACF;AAEA,MAAM,iBAAiB,MACrB,OAAO,WAAW,cAAc,OAAO,SAAS,OAAO;","names":[]}
@@ -0,0 +1,48 @@
1
+ import { isHostAction } from "../host-api";
2
+ import { BuilderActionTypes, hasTransferables } from "./actions";
3
+ import { MessageChannel } from "./message-channel";
4
+ import { setupNavigationListener } from "./navigation-listener";
5
+ class BuilderAPIProxy {
6
+ messageChannel;
7
+ constructor({ appOrigin }) {
8
+ this.messageChannel = new MessageChannel({ appOrigin });
9
+ }
10
+ handleHostNavigate(event) {
11
+ this.execute({ type: BuilderActionTypes.HANDLE_HOST_NAVIGATE, payload: event });
12
+ }
13
+ // low-level, action-based API
14
+ setup({ onHostAction }) {
15
+ const channelCleanup = this.messageChannel.setup({
16
+ onMessage: (event) => {
17
+ const action = event.data;
18
+ if (!isHostAction(action)) {
19
+ console.warn("Unexpected host action", action);
20
+ return;
21
+ }
22
+ onHostAction(action);
23
+ }
24
+ });
25
+ const navigationListenerCleanup = setupNavigationListener(
26
+ (event) => this.handleHostNavigate(event)
27
+ );
28
+ return () => {
29
+ channelCleanup();
30
+ navigationListenerCleanup();
31
+ };
32
+ }
33
+ execute(action) {
34
+ if (hasTransferables(action)) {
35
+ const { transferables, ...forwardedAction } = action;
36
+ this.messageChannel.postMessage(forwardedAction, transferables);
37
+ return;
38
+ }
39
+ this.messageChannel.postMessage(action);
40
+ }
41
+ dispatchBuffered() {
42
+ this.messageChannel.dispatchBuffered();
43
+ }
44
+ }
45
+ export {
46
+ BuilderAPIProxy
47
+ };
48
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/builder-api/proxy.ts"],"sourcesContent":["import { type HostAction, isHostAction } from '../host-api'\n\nimport { type BuilderAction, BuilderActionTypes, hasTransferables } from './actions'\nimport { MessageChannel } from './message-channel'\nimport { setupNavigationListener } from './navigation-listener'\nimport { type BuilderApi, type HostNavigationEvent } from './api'\n\nexport class BuilderAPIProxy implements BuilderApi {\n private messageChannel: MessageChannel\n\n constructor({ appOrigin }: { appOrigin: string }) {\n this.messageChannel = new MessageChannel({ appOrigin })\n }\n\n handleHostNavigate(event: HostNavigationEvent) {\n this.execute({ type: BuilderActionTypes.HANDLE_HOST_NAVIGATE, payload: event })\n }\n\n // low-level, action-based API\n\n setup({ onHostAction }: { onHostAction: (action: HostAction) => void }): VoidFunction {\n const channelCleanup = this.messageChannel.setup({\n onMessage: (event: MessageEvent) => {\n const action = event.data\n\n if (!isHostAction(action)) {\n console.warn('Unexpected host action', action)\n return\n }\n\n onHostAction(action)\n },\n })\n\n const navigationListenerCleanup = setupNavigationListener(event =>\n this.handleHostNavigate(event),\n )\n\n return () => {\n channelCleanup()\n navigationListenerCleanup()\n }\n }\n\n execute(action: BuilderAction): void {\n if (hasTransferables(action)) {\n const { transferables, ...forwardedAction } = action\n this.messageChannel.postMessage(forwardedAction, transferables)\n return\n }\n\n this.messageChannel.postMessage(action)\n }\n\n dispatchBuffered(): void {\n this.messageChannel.dispatchBuffered()\n }\n}\n"],"mappings":"AAAA,SAA0B,oBAAoB;AAE9C,SAA6B,oBAAoB,wBAAwB;AACzE,SAAS,sBAAsB;AAC/B,SAAS,+BAA+B;AAGjC,MAAM,gBAAsC;AAAA,EACzC;AAAA,EAER,YAAY,EAAE,UAAU,GAA0B;AAChD,SAAK,iBAAiB,IAAI,eAAe,EAAE,UAAU,CAAC;AAAA,EACxD;AAAA,EAEA,mBAAmB,OAA4B;AAC7C,SAAK,QAAQ,EAAE,MAAM,mBAAmB,sBAAsB,SAAS,MAAM,CAAC;AAAA,EAChF;AAAA;AAAA,EAIA,MAAM,EAAE,aAAa,GAAiE;AACpF,UAAM,iBAAiB,KAAK,eAAe,MAAM;AAAA,MAC/C,WAAW,CAAC,UAAwB;AAClC,cAAM,SAAS,MAAM;AAErB,YAAI,CAAC,aAAa,MAAM,GAAG;AACzB,kBAAQ,KAAK,0BAA0B,MAAM;AAC7C;AAAA,QACF;AAEA,qBAAa,MAAM;AAAA,MACrB;AAAA,IACF,CAAC;AAED,UAAM,4BAA4B;AAAA,MAAwB,WACxD,KAAK,mBAAmB,KAAK;AAAA,IAC/B;AAEA,WAAO,MAAM;AACX,qBAAe;AACf,gCAA0B;AAAA,IAC5B;AAAA,EACF;AAAA,EAEA,QAAQ,QAA6B;AACnC,QAAI,iBAAiB,MAAM,GAAG;AAC5B,YAAM,EAAE,eAAe,GAAG,gBAAgB,IAAI;AAC9C,WAAK,eAAe,YAAY,iBAAiB,aAAa;AAC9D;AAAA,IACF;AAEA,SAAK,eAAe,YAAY,MAAM;AAAA,EACxC;AAAA,EAEA,mBAAyB;AACvB,SAAK,eAAe,iBAAiB;AAAA,EACvC;AACF;","names":[]}
@@ -0,0 +1,81 @@
1
+ import { isAction } from "@reduxjs/toolkit";
2
+ import { SharedActionTypes } from "./shared-api";
3
+ const HostActionTypes = {
4
+ ...SharedActionTypes,
5
+ INIT: "INIT",
6
+ CLEAN_UP: "CLEAN_UP",
7
+ CHANGE_DOCUMENT: "CHANGE_DOCUMENT",
8
+ CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: "CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP",
9
+ SCROLL_DOCUMENT_ELEMENT: "SCROLL_DOCUMENT_ELEMENT",
10
+ MESSAGE_HOST_PROP_CONTROLLER: "MESSAGE_HOST_PROP_CONTROLLER",
11
+ CHANGE_API_RESOURCE: "CHANGE_API_RESOURCE",
12
+ EVICT_API_RESOURCE: "EVICT_API_RESOURCE",
13
+ SET_BUILDER_EDIT_MODE: "SET_BUILDER_EDIT_MODE",
14
+ SET_LOCALIZED_RESOURCE_ID: "SET_LOCALIZED_RESOURCE_ID",
15
+ BUILDER_POINTER_MOVE: "BUILDER_POINTER_MOVE"
16
+ };
17
+ function init() {
18
+ return { type: HostActionTypes.INIT };
19
+ }
20
+ function cleanUp() {
21
+ return { type: HostActionTypes.CLEAN_UP };
22
+ }
23
+ function changeDocument(documentKey, operation) {
24
+ return { type: HostActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } };
25
+ }
26
+ function changeDocumentElementScrollTop(scrollTop) {
27
+ return { type: HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } };
28
+ }
29
+ function scrollDocumentElement(scrollTopDelta) {
30
+ return { type: HostActionTypes.SCROLL_DOCUMENT_ELEMENT, payload: { scrollTopDelta } };
31
+ }
32
+ function messageHostPropController(documentKey, elementKey, propName, message) {
33
+ return {
34
+ type: HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER,
35
+ payload: { documentKey, elementKey, propName, message }
36
+ };
37
+ }
38
+ function changeApiResource(resource, locale) {
39
+ return { type: HostActionTypes.CHANGE_API_RESOURCE, payload: { resource, locale } };
40
+ }
41
+ function evictApiResource(id, locale) {
42
+ return { type: HostActionTypes.EVICT_API_RESOURCE, payload: { id, locale } };
43
+ }
44
+ function setBuilderEditMode(editMode) {
45
+ return {
46
+ type: HostActionTypes.SET_BUILDER_EDIT_MODE,
47
+ payload: { editMode }
48
+ };
49
+ }
50
+ function setLocalizedResourceId({
51
+ resourceId,
52
+ localizedResourceId,
53
+ locale
54
+ }) {
55
+ return {
56
+ type: HostActionTypes.SET_LOCALIZED_RESOURCE_ID,
57
+ payload: { resourceId, localizedResourceId, locale }
58
+ };
59
+ }
60
+ function builderPointerMove(pointer) {
61
+ return { type: HostActionTypes.BUILDER_POINTER_MOVE, payload: { pointer } };
62
+ }
63
+ function isHostAction(action) {
64
+ return isAction(action) && Object.hasOwn(HostActionTypes, action.type);
65
+ }
66
+ export {
67
+ HostActionTypes,
68
+ builderPointerMove,
69
+ changeApiResource,
70
+ changeDocument,
71
+ changeDocumentElementScrollTop,
72
+ cleanUp,
73
+ evictApiResource,
74
+ init,
75
+ isHostAction,
76
+ messageHostPropController,
77
+ scrollDocumentElement,
78
+ setBuilderEditMode,
79
+ setLocalizedResourceId
80
+ };
81
+ //# sourceMappingURL=host-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/state/host-api.ts"],"sourcesContent":["import { isAction } from '@reduxjs/toolkit'\n\nimport { type Operation } from 'ot-json0'\n\nimport { type PropControllerMessage } from '../prop-controllers/instances'\nimport { type APIResource, APIResourceLocale } from '../api/types'\n\nimport { BuilderEditMode } from './modules/builder-edit-mode'\nimport { type Point } from './modules/read-write/pointer'\n\nimport { type SharedAction, SharedActionTypes } from './shared-api'\n\n// actions dispatched by the builder to the host (\"Host API\")\nexport const HostActionTypes = {\n ...SharedActionTypes,\n\n INIT: 'INIT',\n CLEAN_UP: 'CLEAN_UP',\n\n CHANGE_DOCUMENT: 'CHANGE_DOCUMENT',\n\n CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP: 'CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP',\n SCROLL_DOCUMENT_ELEMENT: 'SCROLL_DOCUMENT_ELEMENT',\n\n MESSAGE_HOST_PROP_CONTROLLER: 'MESSAGE_HOST_PROP_CONTROLLER',\n\n CHANGE_API_RESOURCE: 'CHANGE_API_RESOURCE',\n EVICT_API_RESOURCE: 'EVICT_API_RESOURCE',\n\n SET_BUILDER_EDIT_MODE: 'SET_BUILDER_EDIT_MODE',\n SET_LOCALIZED_RESOURCE_ID: 'SET_LOCALIZED_RESOURCE_ID',\n\n BUILDER_POINTER_MOVE: 'BUILDER_POINTER_MOVE',\n} as const\n\ntype InitAction = { type: typeof HostActionTypes.INIT }\n\ntype CleanUpAction = { type: typeof HostActionTypes.CLEAN_UP }\n\ntype ChangeDocumentAction = {\n type: typeof HostActionTypes.CHANGE_DOCUMENT\n payload: { documentKey: string; operation: Operation }\n}\n\ntype ChangeDocumentElementScrollTopAction = {\n type: typeof HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP\n payload: { scrollTop: number }\n}\n\ntype ScrollDocumentElementAction = {\n type: typeof HostActionTypes.SCROLL_DOCUMENT_ELEMENT\n payload: { scrollTopDelta: number }\n}\n\ntype MessageHostPropControllerAction<T = PropControllerMessage> = {\n type: typeof HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype ChangeAPIResourceAction = {\n type: typeof HostActionTypes.CHANGE_API_RESOURCE\n payload: { resource: APIResource; locale?: string | null }\n}\n\ntype EvictAPIResourceAction = {\n type: typeof HostActionTypes.EVICT_API_RESOURCE\n payload: { id: string; locale?: string | null }\n}\n\ntype SetBuilderEditModeAction = {\n type: typeof HostActionTypes.SET_BUILDER_EDIT_MODE\n payload: { editMode: BuilderEditMode }\n}\n\ntype SetLocalizedResourceIdAction = {\n type: typeof HostActionTypes.SET_LOCALIZED_RESOURCE_ID\n // TODO: make `locale` required once we've upgraded the builder to always provide it\n payload: { locale?: string; resourceId: string; localizedResourceId: string | null }\n}\n\ntype BuilderPointerMoveAction = {\n type: typeof HostActionTypes.BUILDER_POINTER_MOVE\n payload: { pointer: Point | null }\n}\n\nexport type HostAction =\n | SharedAction\n | InitAction\n | CleanUpAction\n | ChangeDocumentAction\n | ChangeDocumentElementScrollTopAction\n | ScrollDocumentElementAction\n | MessageHostPropControllerAction\n | ChangeAPIResourceAction\n | EvictAPIResourceAction\n | SetBuilderEditModeAction\n | SetLocalizedResourceIdAction\n | BuilderPointerMoveAction\n\nexport function init(): InitAction {\n return { type: HostActionTypes.INIT }\n}\n\nexport function cleanUp(): CleanUpAction {\n return { type: HostActionTypes.CLEAN_UP }\n}\n\nexport function changeDocument(documentKey: string, operation: Operation): ChangeDocumentAction {\n return { type: HostActionTypes.CHANGE_DOCUMENT, payload: { documentKey, operation } }\n}\n\nexport function changeDocumentElementScrollTop(\n scrollTop: number,\n): ChangeDocumentElementScrollTopAction {\n return { type: HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP, payload: { scrollTop } }\n}\n\nexport function scrollDocumentElement(scrollTopDelta: number): ScrollDocumentElementAction {\n return { type: HostActionTypes.SCROLL_DOCUMENT_ELEMENT, payload: { scrollTopDelta } }\n}\n\nexport function messageHostPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageHostPropControllerAction<T> {\n return {\n type: HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function changeApiResource<R extends APIResource>(\n resource: R,\n locale?: APIResourceLocale<R>,\n): ChangeAPIResourceAction {\n return { type: HostActionTypes.CHANGE_API_RESOURCE, payload: { resource, locale } }\n}\n\nexport function evictApiResource(id: string, locale?: string | null): EvictAPIResourceAction {\n return { type: HostActionTypes.EVICT_API_RESOURCE, payload: { id, locale } }\n}\n\nexport function setBuilderEditMode(editMode: BuilderEditMode): SetBuilderEditModeAction {\n return {\n type: HostActionTypes.SET_BUILDER_EDIT_MODE,\n payload: { editMode },\n }\n}\n\nexport function setLocalizedResourceId({\n resourceId,\n localizedResourceId,\n locale,\n}: {\n resourceId: string\n localizedResourceId: string | null\n locale?: string\n}): SetLocalizedResourceIdAction {\n return {\n type: HostActionTypes.SET_LOCALIZED_RESOURCE_ID,\n payload: { resourceId, localizedResourceId, locale },\n }\n}\n\nexport function builderPointerMove(pointer: Point | null): BuilderPointerMoveAction {\n return { type: HostActionTypes.BUILDER_POINTER_MOVE, payload: { pointer } }\n}\n\nexport function isHostAction(action: unknown): action is HostAction {\n return isAction(action) && Object.hasOwn(HostActionTypes, action.type)\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAUzB,SAA4B,yBAAyB;AAG9C,MAAM,kBAAkB;AAAA,EAC7B,GAAG;AAAA,EAEH,MAAM;AAAA,EACN,UAAU;AAAA,EAEV,iBAAiB;AAAA,EAEjB,oCAAoC;AAAA,EACpC,yBAAyB;AAAA,EAEzB,8BAA8B;AAAA,EAE9B,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EAEpB,uBAAuB;AAAA,EACvB,2BAA2B;AAAA,EAE3B,sBAAsB;AACxB;AAkEO,SAAS,OAAmB;AACjC,SAAO,EAAE,MAAM,gBAAgB,KAAK;AACtC;AAEO,SAAS,UAAyB;AACvC,SAAO,EAAE,MAAM,gBAAgB,SAAS;AAC1C;AAEO,SAAS,eAAe,aAAqB,WAA4C;AAC9F,SAAO,EAAE,MAAM,gBAAgB,iBAAiB,SAAS,EAAE,aAAa,UAAU,EAAE;AACtF;AAEO,SAAS,+BACd,WACsC;AACtC,SAAO,EAAE,MAAM,gBAAgB,oCAAoC,SAAS,EAAE,UAAU,EAAE;AAC5F;AAEO,SAAS,sBAAsB,gBAAqD;AACzF,SAAO,EAAE,MAAM,gBAAgB,yBAAyB,SAAS,EAAE,eAAe,EAAE;AACtF;AAEO,SAAS,0BACd,aACA,YACA,UACA,SACoC;AACpC,SAAO;AAAA,IACL,MAAM,gBAAgB;AAAA,IACtB,SAAS,EAAE,aAAa,YAAY,UAAU,QAAQ;AAAA,EACxD;AACF;AAEO,SAAS,kBACd,UACA,QACyB;AACzB,SAAO,EAAE,MAAM,gBAAgB,qBAAqB,SAAS,EAAE,UAAU,OAAO,EAAE;AACpF;AAEO,SAAS,iBAAiB,IAAY,QAAgD;AAC3F,SAAO,EAAE,MAAM,gBAAgB,oBAAoB,SAAS,EAAE,IAAI,OAAO,EAAE;AAC7E;AAEO,SAAS,mBAAmB,UAAqD;AACtF,SAAO;AAAA,IACL,MAAM,gBAAgB;AAAA,IACtB,SAAS,EAAE,SAAS;AAAA,EACtB;AACF;AAEO,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AACF,GAIiC;AAC/B,SAAO;AAAA,IACL,MAAM,gBAAgB;AAAA,IACtB,SAAS,EAAE,YAAY,qBAAqB,OAAO;AAAA,EACrD;AACF;AAEO,SAAS,mBAAmB,SAAiD;AAClF,SAAO,EAAE,MAAM,gBAAgB,sBAAsB,SAAS,EAAE,QAAQ,EAAE;AAC5E;AAEO,SAAS,aAAa,QAAuC;AAClE,SAAO,SAAS,MAAM,KAAK,OAAO,OAAO,iBAAiB,OAAO,IAAI;AACvE;","names":[]}
@@ -0,0 +1,13 @@
1
+ import { actionMiddleware } from "../toolkit";
2
+ function makeswiftApiClientSyncMiddleware(client) {
3
+ return actionMiddleware(() => (next) => {
4
+ return (action) => {
5
+ client.store.dispatch(action);
6
+ return next(action);
7
+ };
8
+ });
9
+ }
10
+ export {
11
+ makeswiftApiClientSyncMiddleware
12
+ };
13
+ //# sourceMappingURL=makeswift-api-client-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/middleware/makeswift-api-client-sync.ts"],"sourcesContent":["import { type Middleware } from '@reduxjs/toolkit'\n\nimport { MakeswiftHostApiClient } from '../../api/client'\n\nimport { type Action } from '../actions'\nimport { actionMiddleware } from '../toolkit'\nimport { type State, type Dispatch } from '../unified-state'\n\nexport function makeswiftApiClientSyncMiddleware(\n client: MakeswiftHostApiClient,\n): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(() => next => {\n return (action: Action) => {\n client.store.dispatch(action)\n\n return next(action)\n }\n })\n}\n"],"mappings":"AAKA,SAAS,wBAAwB;AAG1B,SAAS,iCACd,QACuC;AACvC,SAAO,iBAAiB,MAAM,UAAQ;AACpC,WAAO,CAAC,WAAmB;AACzB,aAAO,MAAM,SAAS,MAAM;AAE5B,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,28 @@
1
+ import { ActionTypes } from "../actions";
2
+ import { createElementTree, deleteElementTree } from "../actions/internal/read-only-actions";
3
+ import { actionMiddleware } from "../toolkit";
4
+ import { getPropControllerDescriptors } from "../read-only-state";
5
+ function readOnlyElementTreeMiddleware() {
6
+ return actionMiddleware(({ dispatch, getState }) => (next) => {
7
+ return (action) => {
8
+ switch (action.type) {
9
+ case ActionTypes.REGISTER_DOCUMENT:
10
+ dispatch(
11
+ createElementTree({
12
+ document: action.payload.document,
13
+ descriptors: getPropControllerDescriptors(getState())
14
+ })
15
+ );
16
+ break;
17
+ case ActionTypes.UNREGISTER_DOCUMENT:
18
+ dispatch(deleteElementTree(action.payload));
19
+ break;
20
+ }
21
+ return next(action);
22
+ };
23
+ });
24
+ }
25
+ export {
26
+ readOnlyElementTreeMiddleware
27
+ };
28
+ //# sourceMappingURL=read-only-element-tree.js.map