@makeswift/runtime 0.26.3 → 0.26.4-canary.1

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 (560) hide show
  1. package/dist/cjs/api/{react.js → client.js} +14 -7
  2. package/dist/cjs/api/client.js.map +1 -0
  3. package/dist/cjs/api-handler/handlers/element-tree.js.map +1 -1
  4. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  5. package/dist/cjs/api-handler/handlers/merge-translated-data.js.map +1 -1
  6. package/dist/cjs/api-handler/handlers/translatable-data.js.map +1 -1
  7. package/dist/cjs/builder/host-to-builder-actions.js +3 -3
  8. package/dist/cjs/builder/host-to-builder-actions.js.map +1 -1
  9. package/dist/cjs/builder/index.js +2 -2
  10. package/dist/cjs/builder/index.js.map +1 -1
  11. package/dist/cjs/client/index.js +8 -8
  12. package/dist/cjs/client/index.js.map +1 -1
  13. package/dist/cjs/components/builtin/Box/Box.js +1 -1
  14. package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
  15. package/dist/cjs/components/builtin/Form/Form.js +1 -1
  16. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  17. package/dist/cjs/components/hooks/useTableFormFieldRefs.js +1 -1
  18. package/dist/cjs/components/hooks/useTableFormFieldRefs.js.map +1 -1
  19. package/dist/cjs/next/components/framework-provider/index.js +1 -1
  20. package/dist/cjs/next/components/framework-provider/index.js.map +1 -1
  21. package/dist/cjs/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  22. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +1 -2
  23. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  24. package/dist/cjs/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  25. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js +1 -2
  26. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js.map +1 -1
  27. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js +2 -3
  28. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  29. package/dist/cjs/next/testing/element-data.js +3 -3
  30. package/dist/cjs/next/testing/element-data.js.map +1 -1
  31. package/dist/cjs/next/testing/index.js +2 -0
  32. package/dist/cjs/next/testing/index.js.map +1 -1
  33. package/dist/cjs/next/testing/page-rendering.js +3 -3
  34. package/dist/cjs/next/testing/page-rendering.js.map +1 -1
  35. package/dist/cjs/next/testing/react-runtime.js +29 -0
  36. package/dist/cjs/next/testing/react-runtime.js.map +1 -0
  37. package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
  38. package/dist/cjs/prop-controllers/instances.js.map +1 -1
  39. package/dist/cjs/runtimes/react/components/Document.js +2 -2
  40. package/dist/cjs/runtimes/react/components/Document.js.map +1 -1
  41. package/dist/cjs/runtimes/react/components/DocumentRoot.js.map +1 -1
  42. package/dist/cjs/runtimes/react/components/Element.js +2 -2
  43. package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
  44. package/dist/cjs/runtimes/react/components/ElementData.js.map +1 -1
  45. package/dist/cjs/runtimes/react/components/ElementReference.js.map +1 -1
  46. package/dist/cjs/runtimes/react/components/ElementRegistration.js +2 -2
  47. package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -1
  48. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js +2 -2
  49. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js.map +1 -1
  50. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +6 -5
  51. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  52. package/dist/cjs/runtimes/react/components/framework-context.js +3 -13
  53. package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
  54. package/dist/cjs/runtimes/react/components/page/Page.js.map +1 -1
  55. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js +2 -3
  56. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  57. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  58. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  59. package/dist/cjs/runtimes/react/controls.js +2 -2
  60. package/dist/cjs/runtimes/react/controls.js.map +1 -1
  61. package/dist/cjs/runtimes/react/element-imperative-handle.js +1 -1
  62. package/dist/cjs/runtimes/react/element-imperative-handle.js.map +1 -1
  63. package/dist/cjs/runtimes/react/hooks/use-breakpoints.js +2 -2
  64. package/dist/cjs/runtimes/react/hooks/use-breakpoints.js.map +1 -1
  65. package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js +2 -2
  66. package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -1
  67. package/dist/cjs/runtimes/react/hooks/use-cache-data.js +2 -2
  68. package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -1
  69. package/dist/cjs/runtimes/react/hooks/use-component.js +3 -3
  70. package/dist/cjs/runtimes/react/hooks/use-component.js.map +1 -1
  71. package/dist/cjs/runtimes/react/hooks/use-dispatch.js.map +1 -1
  72. package/dist/cjs/runtimes/react/hooks/use-document.js +2 -2
  73. package/dist/cjs/runtimes/react/hooks/use-document.js.map +1 -1
  74. package/dist/cjs/runtimes/react/hooks/use-element-id.js +2 -2
  75. package/dist/cjs/runtimes/react/hooks/use-element-id.js.map +1 -1
  76. package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js +2 -2
  77. package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js.map +1 -1
  78. package/dist/cjs/runtimes/react/hooks/{use-is-preview.js → use-is-read-only.js} +9 -9
  79. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  80. package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -1
  81. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +2 -2
  82. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  83. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js +1 -1
  84. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  85. package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -1
  86. package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
  87. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  88. package/dist/cjs/runtimes/react/host-api-client.js +4 -3
  89. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -1
  90. package/dist/cjs/runtimes/react/index.js +3 -3
  91. package/dist/cjs/runtimes/react/index.js.map +1 -1
  92. package/dist/cjs/runtimes/react/poll-box-model.js +1 -1
  93. package/dist/cjs/runtimes/react/poll-box-model.js.map +1 -1
  94. package/dist/cjs/runtimes/react/react-runtime-core.js +3 -3
  95. package/dist/cjs/runtimes/react/react-runtime-core.js.map +1 -1
  96. package/dist/cjs/runtimes/react/runtime-core.js +4 -2
  97. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
  98. package/dist/cjs/runtimes/react/testing/react-runtime.js +32 -0
  99. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -0
  100. package/dist/cjs/runtimes/react/utils/can-accept-ref.js.map +1 -1
  101. package/dist/cjs/state/actions/internal/index.js +34 -0
  102. package/dist/cjs/state/actions/internal/index.js.map +1 -0
  103. package/dist/cjs/state/actions/{internal.js → internal/read-only-actions.js} +44 -62
  104. package/dist/cjs/state/actions/internal/read-only-actions.js.map +1 -0
  105. package/dist/cjs/state/actions/internal/read-write-actions.js +70 -0
  106. package/dist/cjs/state/actions/internal/read-write-actions.js.map +1 -0
  107. package/dist/cjs/state/builder-api/actions.js +11 -8
  108. package/dist/cjs/state/builder-api/actions.js.map +1 -1
  109. package/dist/cjs/state/host-api.js.map +1 -1
  110. package/dist/cjs/state/makeswift-api-client.js +34 -20
  111. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  112. package/dist/cjs/state/middleware/prop-controller-handles.js +114 -0
  113. package/dist/cjs/state/middleware/prop-controller-handles.js.map +1 -0
  114. package/dist/cjs/state/middleware/read-only-element-tree.js +52 -0
  115. package/dist/cjs/state/middleware/read-only-element-tree.js.map +1 -0
  116. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js +40 -0
  117. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  118. package/dist/cjs/state/middleware/read-write/builder-api/index.js +76 -0
  119. package/dist/cjs/state/middleware/read-write/builder-api/index.js.map +1 -0
  120. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js +278 -0
  121. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  122. package/dist/cjs/state/middleware/read-write/makeswift-api-client-sync.js +37 -0
  123. package/dist/cjs/state/middleware/read-write/makeswift-api-client-sync.js.map +1 -0
  124. package/dist/cjs/state/middleware/read-write/measure-box-models.js +71 -0
  125. package/dist/cjs/state/middleware/read-write/measure-box-models.js.map +1 -0
  126. package/dist/cjs/state/middleware/read-write/update-element-tree.js +59 -0
  127. package/dist/cjs/state/middleware/read-write/update-element-tree.js.map +1 -0
  128. package/dist/cjs/state/modules/api-resources.js +7 -4
  129. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  130. package/dist/cjs/state/modules/breakpoints.js +2 -1
  131. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  132. package/dist/cjs/state/modules/builder-edit-mode.js +2 -1
  133. package/dist/cjs/state/modules/builder-edit-mode.js.map +1 -1
  134. package/dist/cjs/state/modules/components-meta.js +3 -2
  135. package/dist/cjs/state/modules/components-meta.js.map +1 -1
  136. package/dist/cjs/state/modules/element-trees.js +5 -3
  137. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  138. package/dist/cjs/state/modules/is-in-builder.js +2 -1
  139. package/dist/cjs/state/modules/is-in-builder.js.map +1 -1
  140. package/dist/cjs/state/modules/{is-preview.js → is-read-only.js} +12 -9
  141. package/dist/cjs/state/modules/is-read-only.js.map +1 -0
  142. package/dist/cjs/state/modules/locale.js +53 -0
  143. package/dist/cjs/state/modules/locale.js.map +1 -0
  144. package/dist/cjs/state/modules/localized-resources-map.js +4 -2
  145. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -1
  146. package/dist/cjs/state/modules/prop-controllers.js +3 -2
  147. package/dist/cjs/state/modules/prop-controllers.js.map +1 -1
  148. package/dist/cjs/state/modules/react-components.js +3 -2
  149. package/dist/cjs/state/modules/react-components.js.map +1 -1
  150. package/dist/cjs/state/modules/read-only-documents.js +3 -2
  151. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  152. package/dist/cjs/state/modules/{box-models.js → read-write/box-models.js} +6 -4
  153. package/dist/cjs/state/modules/read-write/box-models.js.map +1 -0
  154. package/dist/cjs/state/modules/{element-imperative-handles.js → read-write/element-imperative-handles.js} +4 -3
  155. package/dist/cjs/state/modules/read-write/element-imperative-handles.js.map +1 -0
  156. package/dist/cjs/state/modules/{pointer.js → read-write/pointer.js} +3 -2
  157. package/dist/cjs/state/modules/read-write/pointer.js.map +1 -0
  158. package/dist/cjs/state/modules/{read-write-documents.js → read-write/read-write-documents.js} +3 -3
  159. package/dist/cjs/state/modules/read-write/read-write-documents.js.map +1 -0
  160. package/dist/cjs/state/modules/site-version.js +50 -0
  161. package/dist/cjs/state/modules/site-version.js.map +1 -0
  162. package/dist/cjs/state/ops/copy-element-tree.js +67 -0
  163. package/dist/cjs/state/ops/copy-element-tree.js.map +1 -0
  164. package/dist/cjs/state/ops/merge-element.js +73 -0
  165. package/dist/cjs/state/ops/merge-element.js.map +1 -0
  166. package/dist/cjs/state/react-builder-preview.js +18 -508
  167. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  168. package/dist/cjs/state/react-page.js +6 -250
  169. package/dist/cjs/state/react-page.js.map +1 -1
  170. package/dist/cjs/state/read-only-state.js +209 -0
  171. package/dist/cjs/state/read-only-state.js.map +1 -0
  172. package/dist/cjs/state/read-write-state.js +121 -0
  173. package/dist/cjs/state/read-write-state.js.map +1 -0
  174. package/dist/cjs/state/shared-api.js.map +1 -1
  175. package/dist/cjs/state/translations/get.js +2 -2
  176. package/dist/cjs/state/translations/get.js.map +1 -1
  177. package/dist/cjs/state/translations/merge.js +2 -2
  178. package/dist/cjs/state/translations/merge.js.map +1 -1
  179. package/dist/cjs/unstable-framework-support/index.js +2 -4
  180. package/dist/cjs/unstable-framework-support/index.js.map +1 -1
  181. package/dist/esm/api/{react.js → client.js} +11 -4
  182. package/dist/esm/api/client.js.map +1 -0
  183. package/dist/esm/api-handler/handlers/element-tree.js.map +1 -1
  184. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  185. package/dist/esm/api-handler/handlers/merge-translated-data.js.map +1 -1
  186. package/dist/esm/api-handler/handlers/translatable-data.js.map +1 -1
  187. package/dist/esm/builder/host-to-builder-actions.js +4 -4
  188. package/dist/esm/builder/host-to-builder-actions.js.map +1 -1
  189. package/dist/esm/builder/index.js +1 -1
  190. package/dist/esm/builder/index.js.map +1 -1
  191. package/dist/esm/client/index.js +5 -5
  192. package/dist/esm/client/index.js.map +1 -1
  193. package/dist/esm/components/builtin/Box/Box.js +1 -1
  194. package/dist/esm/components/builtin/Box/Box.js.map +1 -1
  195. package/dist/esm/components/builtin/Form/Form.js +1 -1
  196. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  197. package/dist/esm/components/hooks/useTableFormFieldRefs.js +1 -1
  198. package/dist/esm/components/hooks/useTableFormFieldRefs.js.map +1 -1
  199. package/dist/esm/next/components/framework-provider/index.js +2 -5
  200. package/dist/esm/next/components/framework-provider/index.js.map +1 -1
  201. package/dist/esm/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  202. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +1 -2
  203. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  204. package/dist/esm/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  205. package/dist/esm/next/components/tests/makeswift-component/fixtures.js +1 -2
  206. package/dist/esm/next/components/tests/makeswift-component/fixtures.js.map +1 -1
  207. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js +2 -3
  208. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  209. package/dist/esm/next/testing/element-data.js +1 -1
  210. package/dist/esm/next/testing/element-data.js.map +1 -1
  211. package/dist/esm/next/testing/index.js +1 -0
  212. package/dist/esm/next/testing/index.js.map +1 -1
  213. package/dist/esm/next/testing/page-rendering.js +3 -3
  214. package/dist/esm/next/testing/page-rendering.js.map +1 -1
  215. package/dist/esm/next/testing/react-runtime.js +5 -0
  216. package/dist/esm/next/testing/react-runtime.js.map +1 -0
  217. package/dist/esm/prop-controllers/descriptors.js.map +1 -1
  218. package/dist/esm/prop-controllers/instances.js.map +1 -1
  219. package/dist/esm/runtimes/react/components/Document.js +1 -1
  220. package/dist/esm/runtimes/react/components/Document.js.map +1 -1
  221. package/dist/esm/runtimes/react/components/DocumentRoot.js.map +1 -1
  222. package/dist/esm/runtimes/react/components/Element.js +3 -1
  223. package/dist/esm/runtimes/react/components/Element.js.map +1 -1
  224. package/dist/esm/runtimes/react/components/ElementData.js.map +1 -1
  225. package/dist/esm/runtimes/react/components/ElementReference.js.map +1 -1
  226. package/dist/esm/runtimes/react/components/ElementRegistration.js +1 -1
  227. package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -1
  228. package/dist/esm/runtimes/react/components/MakeswiftComponent.js +1 -1
  229. package/dist/esm/runtimes/react/components/MakeswiftComponent.js.map +1 -1
  230. package/dist/esm/runtimes/react/components/RuntimeProvider.js +5 -4
  231. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  232. package/dist/esm/runtimes/react/components/framework-context.js +2 -14
  233. package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
  234. package/dist/esm/runtimes/react/components/page/Page.js.map +1 -1
  235. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js +2 -3
  236. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  237. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  238. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  239. package/dist/esm/runtimes/react/controls.js +2 -2
  240. package/dist/esm/runtimes/react/controls.js.map +1 -1
  241. package/dist/esm/runtimes/react/element-imperative-handle.js +1 -1
  242. package/dist/esm/runtimes/react/element-imperative-handle.js.map +1 -1
  243. package/dist/esm/runtimes/react/hooks/use-breakpoints.js +1 -1
  244. package/dist/esm/runtimes/react/hooks/use-breakpoints.js.map +1 -1
  245. package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js +1 -1
  246. package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -1
  247. package/dist/esm/runtimes/react/hooks/use-cache-data.js +1 -1
  248. package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -1
  249. package/dist/esm/runtimes/react/hooks/use-component.js +1 -1
  250. package/dist/esm/runtimes/react/hooks/use-component.js.map +1 -1
  251. package/dist/esm/runtimes/react/hooks/use-dispatch.js.map +1 -1
  252. package/dist/esm/runtimes/react/hooks/use-document.js +1 -1
  253. package/dist/esm/runtimes/react/hooks/use-document.js.map +1 -1
  254. package/dist/esm/runtimes/react/hooks/use-element-id.js +1 -1
  255. package/dist/esm/runtimes/react/hooks/use-element-id.js.map +1 -1
  256. package/dist/esm/runtimes/react/hooks/use-is-in-builder.js +1 -1
  257. package/dist/esm/runtimes/react/hooks/use-is-in-builder.js.map +1 -1
  258. package/dist/esm/runtimes/react/hooks/use-is-read-only.js +9 -0
  259. package/dist/esm/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  260. package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -1
  261. package/dist/esm/runtimes/react/hooks/use-resolved-props.js +2 -2
  262. package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  263. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js +1 -1
  264. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  265. package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -1
  266. package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
  267. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  268. package/dist/esm/runtimes/react/host-api-client.js +3 -2
  269. package/dist/esm/runtimes/react/host-api-client.js.map +1 -1
  270. package/dist/esm/runtimes/react/index.js +2 -2
  271. package/dist/esm/runtimes/react/index.js.map +1 -1
  272. package/dist/esm/runtimes/react/poll-box-model.js +1 -1
  273. package/dist/esm/runtimes/react/poll-box-model.js.map +1 -1
  274. package/dist/esm/runtimes/react/react-runtime-core.js +4 -1
  275. package/dist/esm/runtimes/react/react-runtime-core.js.map +1 -1
  276. package/dist/esm/runtimes/react/runtime-core.js +3 -5
  277. package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
  278. package/dist/esm/runtimes/react/testing/react-runtime.js +8 -0
  279. package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -0
  280. package/dist/esm/runtimes/react/utils/can-accept-ref.js.map +1 -1
  281. package/dist/esm/state/actions/internal/index.js +10 -0
  282. package/dist/esm/state/actions/internal/index.js.map +1 -0
  283. package/dist/esm/state/actions/{internal.js → internal/read-only-actions.js} +36 -52
  284. package/dist/esm/state/actions/internal/read-only-actions.js.map +1 -0
  285. package/dist/esm/state/actions/internal/read-write-actions.js +41 -0
  286. package/dist/esm/state/actions/internal/read-write-actions.js.map +1 -0
  287. package/dist/esm/state/builder-api/actions.js +8 -7
  288. package/dist/esm/state/builder-api/actions.js.map +1 -1
  289. package/dist/esm/state/host-api.js.map +1 -1
  290. package/dist/esm/state/makeswift-api-client.js +33 -19
  291. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  292. package/dist/esm/state/middleware/prop-controller-handles.js +80 -0
  293. package/dist/esm/state/middleware/prop-controller-handles.js.map +1 -0
  294. package/dist/esm/state/middleware/read-only-element-tree.js +28 -0
  295. package/dist/esm/state/middleware/read-only-element-tree.js.map +1 -0
  296. package/dist/esm/state/middleware/read-write/builder-api/element-size.js +16 -0
  297. package/dist/esm/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  298. package/dist/esm/state/middleware/read-write/builder-api/index.js +52 -0
  299. package/dist/esm/state/middleware/read-write/builder-api/index.js.map +1 -0
  300. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js +251 -0
  301. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  302. package/dist/esm/state/middleware/read-write/makeswift-api-client-sync.js +13 -0
  303. package/dist/esm/state/middleware/read-write/makeswift-api-client-sync.js.map +1 -0
  304. package/dist/esm/state/middleware/read-write/measure-box-models.js +37 -0
  305. package/dist/esm/state/middleware/read-write/measure-box-models.js.map +1 -0
  306. package/dist/esm/state/middleware/read-write/update-element-tree.js +35 -0
  307. package/dist/esm/state/middleware/read-write/update-element-tree.js.map +1 -0
  308. package/dist/esm/state/modules/api-resources.js +8 -5
  309. package/dist/esm/state/modules/api-resources.js.map +1 -1
  310. package/dist/esm/state/modules/breakpoints.js +3 -2
  311. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  312. package/dist/esm/state/modules/builder-edit-mode.js +3 -2
  313. package/dist/esm/state/modules/builder-edit-mode.js.map +1 -1
  314. package/dist/esm/state/modules/components-meta.js +4 -3
  315. package/dist/esm/state/modules/components-meta.js.map +1 -1
  316. package/dist/esm/state/modules/element-trees.js +6 -4
  317. package/dist/esm/state/modules/element-trees.js.map +1 -1
  318. package/dist/esm/state/modules/is-in-builder.js +3 -2
  319. package/dist/esm/state/modules/is-in-builder.js.map +1 -1
  320. package/dist/esm/state/modules/is-read-only.js +24 -0
  321. package/dist/esm/state/modules/is-read-only.js.map +1 -0
  322. package/dist/esm/state/modules/locale.js +27 -0
  323. package/dist/esm/state/modules/locale.js.map +1 -0
  324. package/dist/esm/state/modules/localized-resources-map.js +5 -3
  325. package/dist/esm/state/modules/localized-resources-map.js.map +1 -1
  326. package/dist/esm/state/modules/prop-controllers.js +4 -3
  327. package/dist/esm/state/modules/prop-controllers.js.map +1 -1
  328. package/dist/esm/state/modules/react-components.js +4 -3
  329. package/dist/esm/state/modules/react-components.js.map +1 -1
  330. package/dist/esm/state/modules/read-only-documents.js +4 -6
  331. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  332. package/dist/esm/state/modules/{box-models.js → read-write/box-models.js} +6 -4
  333. package/dist/esm/state/modules/read-write/box-models.js.map +1 -0
  334. package/dist/esm/state/modules/{element-imperative-handles.js → read-write/element-imperative-handles.js} +4 -3
  335. package/dist/esm/state/modules/read-write/element-imperative-handles.js.map +1 -0
  336. package/dist/esm/state/modules/{pointer.js → read-write/pointer.js} +3 -2
  337. package/dist/esm/state/modules/read-write/pointer.js.map +1 -0
  338. package/dist/esm/state/modules/{read-write-documents.js → read-write/read-write-documents.js} +3 -3
  339. package/dist/esm/state/modules/read-write/read-write-documents.js.map +1 -0
  340. package/dist/esm/state/modules/site-version.js +24 -0
  341. package/dist/esm/state/modules/site-version.js.map +1 -0
  342. package/dist/esm/state/ops/copy-element-tree.js +37 -0
  343. package/dist/esm/state/ops/copy-element-tree.js.map +1 -0
  344. package/dist/esm/state/ops/merge-element.js +39 -0
  345. package/dist/esm/state/ops/merge-element.js.map +1 -0
  346. package/dist/esm/state/react-builder-preview.js +15 -500
  347. package/dist/esm/state/react-builder-preview.js.map +1 -1
  348. package/dist/esm/state/react-page.js +7 -240
  349. package/dist/esm/state/react-page.js.map +1 -1
  350. package/dist/esm/state/read-only-state.js +157 -0
  351. package/dist/esm/state/read-only-state.js.map +1 -0
  352. package/dist/esm/state/read-write-state.js +76 -0
  353. package/dist/esm/state/read-write-state.js.map +1 -0
  354. package/dist/esm/state/shared-api.js.map +1 -1
  355. package/dist/esm/state/translations/get.js +1 -1
  356. package/dist/esm/state/translations/get.js.map +1 -1
  357. package/dist/esm/state/translations/merge.js +1 -1
  358. package/dist/esm/state/translations/merge.js.map +1 -1
  359. package/dist/esm/unstable-framework-support/index.js +2 -4
  360. package/dist/esm/unstable-framework-support/index.js.map +1 -1
  361. package/dist/types/api/{react.d.ts → client.d.ts} +4 -2
  362. package/dist/types/api/client.d.ts.map +1 -0
  363. package/dist/types/api-handler/handlers/element-tree.d.ts +1 -1
  364. package/dist/types/api-handler/handlers/element-tree.d.ts.map +1 -1
  365. package/dist/types/api-handler/handlers/merge-translated-data.d.ts +1 -1
  366. package/dist/types/api-handler/handlers/merge-translated-data.d.ts.map +1 -1
  367. package/dist/types/api-handler/handlers/translatable-data.d.ts +1 -1
  368. package/dist/types/api-handler/handlers/translatable-data.d.ts.map +1 -1
  369. package/dist/types/api-handler/handlers/webhook/types.d.ts +4 -4
  370. package/dist/types/builder/host-to-builder-actions.d.ts +2 -2
  371. package/dist/types/builder/host-to-builder-actions.d.ts.map +1 -1
  372. package/dist/types/builder/index.d.ts +2 -2
  373. package/dist/types/builder/index.d.ts.map +1 -1
  374. package/dist/types/client/index.d.ts +2 -2
  375. package/dist/types/client/index.d.ts.map +1 -1
  376. package/dist/types/components/builtin/Box/Box.d.ts +1 -1
  377. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  378. package/dist/types/components/builtin/Form/Form.d.ts +1 -1
  379. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  380. package/dist/types/locale.d.ts +1 -1
  381. package/dist/types/next/components/framework-provider/index.d.ts.map +1 -1
  382. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts +1 -1
  383. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts.map +1 -1
  384. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +3 -3
  385. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  386. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts +1 -1
  387. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts.map +1 -1
  388. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts +1 -1
  389. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts.map +1 -1
  390. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts +1 -1
  391. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts.map +1 -1
  392. package/dist/types/next/testing/element-data.d.ts +1 -1
  393. package/dist/types/next/testing/element-data.d.ts.map +1 -1
  394. package/dist/types/next/testing/index.d.ts +1 -0
  395. package/dist/types/next/testing/index.d.ts.map +1 -1
  396. package/dist/types/next/testing/page-rendering.d.ts.map +1 -1
  397. package/dist/types/next/testing/react-runtime.d.ts +2 -0
  398. package/dist/types/next/testing/react-runtime.d.ts.map +1 -0
  399. package/dist/types/prop-controllers/descriptors.d.ts +1 -1
  400. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  401. package/dist/types/prop-controllers/instances.d.ts +1 -1
  402. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  403. package/dist/types/runtimes/react/components/Document.d.ts +1 -1
  404. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  405. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +1 -1
  406. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -1
  407. package/dist/types/runtimes/react/components/Element.d.ts +1 -1
  408. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  409. package/dist/types/runtimes/react/components/ElementData.d.ts +1 -1
  410. package/dist/types/runtimes/react/components/ElementData.d.ts.map +1 -1
  411. package/dist/types/runtimes/react/components/ElementReference.d.ts +1 -1
  412. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  413. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +1 -1
  414. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  415. package/dist/types/runtimes/react/components/framework-context.d.ts +2 -4
  416. package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
  417. package/dist/types/runtimes/react/components/page/Page.d.ts +1 -1
  418. package/dist/types/runtimes/react/components/page/Page.d.ts.map +1 -1
  419. package/dist/types/runtimes/react/controls.d.ts +2 -2
  420. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  421. package/dist/types/runtimes/react/element-imperative-handle.d.ts +1 -1
  422. package/dist/types/runtimes/react/element-imperative-handle.d.ts.map +1 -1
  423. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +1 -1
  424. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -1
  425. package/dist/types/runtimes/react/hooks/use-component.d.ts +1 -1
  426. package/dist/types/runtimes/react/hooks/use-component.d.ts.map +1 -1
  427. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts +3 -3
  428. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts.map +1 -1
  429. package/dist/types/runtimes/react/hooks/use-document.d.ts +1 -1
  430. package/dist/types/runtimes/react/hooks/use-document.d.ts.map +1 -1
  431. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts +2 -0
  432. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts.map +1 -0
  433. package/dist/types/runtimes/react/hooks/use-register-document.d.ts +1 -1
  434. package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -1
  435. package/dist/types/runtimes/react/hooks/use-selector.d.ts +3 -3
  436. package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -1
  437. package/dist/types/runtimes/react/hooks/use-store.d.ts +4 -4
  438. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  439. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +1 -1
  440. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -1
  441. package/dist/types/runtimes/react/host-api-client.d.ts +1 -1
  442. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -1
  443. package/dist/types/runtimes/react/index.d.ts +1 -1
  444. package/dist/types/runtimes/react/index.d.ts.map +1 -1
  445. package/dist/types/runtimes/react/poll-box-model.d.ts +1 -1
  446. package/dist/types/runtimes/react/poll-box-model.d.ts.map +1 -1
  447. package/dist/types/runtimes/react/react-runtime-core.d.ts +1 -1
  448. package/dist/types/runtimes/react/react-runtime-core.d.ts.map +1 -1
  449. package/dist/types/runtimes/react/runtime-core.d.ts +2 -1
  450. package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
  451. package/dist/types/runtimes/react/testing/react-runtime.d.ts +3 -0
  452. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -0
  453. package/dist/types/runtimes/react/utils/can-accept-ref.d.ts +1 -1
  454. package/dist/types/runtimes/react/utils/can-accept-ref.d.ts.map +1 -1
  455. package/dist/types/state/__tests__/merge-element.test.d.ts +2 -0
  456. package/dist/types/state/__tests__/merge-element.test.d.ts.map +1 -0
  457. package/dist/types/state/actions/index.d.ts +8 -5
  458. package/dist/types/state/actions/index.d.ts.map +1 -1
  459. package/dist/types/state/actions/internal/index.d.ts +27 -0
  460. package/dist/types/state/actions/internal/index.d.ts.map +1 -0
  461. package/dist/types/state/actions/{internal.d.ts → internal/read-only-actions.d.ts} +45 -67
  462. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +1 -0
  463. package/dist/types/state/actions/internal/read-write-actions.d.ts +48 -0
  464. package/dist/types/state/actions/internal/read-write-actions.d.ts.map +1 -0
  465. package/dist/types/state/builder-api/actions.d.ts +14 -14
  466. package/dist/types/state/builder-api/actions.d.ts.map +1 -1
  467. package/dist/types/state/host-api.d.ts +1 -1
  468. package/dist/types/state/host-api.d.ts.map +1 -1
  469. package/dist/types/state/makeswift-api-client.d.ts +11 -2
  470. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  471. package/dist/types/state/middleware/prop-controller-handles.d.ts +4 -0
  472. package/dist/types/state/middleware/prop-controller-handles.d.ts.map +1 -0
  473. package/dist/types/state/middleware/read-only-element-tree.d.ts +4 -0
  474. package/dist/types/state/middleware/read-only-element-tree.d.ts.map +1 -0
  475. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts +12 -0
  476. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts.map +1 -0
  477. package/dist/types/state/middleware/read-write/builder-api/index.d.ts +5 -0
  478. package/dist/types/state/middleware/read-write/builder-api/index.d.ts.map +1 -0
  479. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts +6 -0
  480. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts.map +1 -0
  481. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts +5 -0
  482. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts.map +1 -0
  483. package/dist/types/state/middleware/read-write/measure-box-models.d.ts +4 -0
  484. package/dist/types/state/middleware/read-write/measure-box-models.d.ts.map +1 -0
  485. package/dist/types/state/middleware/read-write/update-element-tree.d.ts +4 -0
  486. package/dist/types/state/middleware/read-write/update-element-tree.d.ts.map +1 -0
  487. package/dist/types/state/modules/api-resources.d.ts.map +1 -1
  488. package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
  489. package/dist/types/state/modules/builder-edit-mode.d.ts.map +1 -1
  490. package/dist/types/state/modules/components-meta.d.ts.map +1 -1
  491. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  492. package/dist/types/state/modules/is-in-builder.d.ts.map +1 -1
  493. package/dist/types/state/modules/{is-preview.d.ts → is-read-only.d.ts} +3 -3
  494. package/dist/types/state/modules/is-read-only.d.ts.map +1 -0
  495. package/dist/types/state/modules/locale.d.ts +6 -0
  496. package/dist/types/state/modules/locale.d.ts.map +1 -0
  497. package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -1
  498. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  499. package/dist/types/state/modules/react-components.d.ts.map +1 -1
  500. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  501. package/dist/types/state/modules/{box-models.d.ts → read-write/box-models.d.ts} +1 -1
  502. package/dist/types/state/modules/read-write/box-models.d.ts.map +1 -0
  503. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts +6 -0
  504. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts.map +1 -0
  505. package/dist/types/state/modules/{pointer.d.ts → read-write/pointer.d.ts} +2 -3
  506. package/dist/types/state/modules/read-write/pointer.d.ts.map +1 -0
  507. package/dist/types/state/modules/{read-write-documents.d.ts → read-write/read-write-documents.d.ts} +4 -4
  508. package/dist/types/state/modules/read-write/read-write-documents.d.ts.map +1 -0
  509. package/dist/types/state/modules/site-version.d.ts +7 -0
  510. package/dist/types/state/modules/site-version.d.ts.map +1 -0
  511. package/dist/types/state/ops/copy-element-tree.d.ts +37 -0
  512. package/dist/types/state/ops/copy-element-tree.d.ts.map +1 -0
  513. package/dist/types/state/ops/merge-element.d.ts +4 -0
  514. package/dist/types/state/ops/merge-element.d.ts.map +1 -0
  515. package/dist/types/state/react-builder-preview.d.ts +26 -93
  516. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  517. package/dist/types/state/react-page.d.ts +20 -136
  518. package/dist/types/state/react-page.d.ts.map +1 -1
  519. package/dist/types/state/read-only-state.d.ts +122 -0
  520. package/dist/types/state/read-only-state.d.ts.map +1 -0
  521. package/dist/types/state/read-write-state.d.ts +56 -0
  522. package/dist/types/state/read-write-state.d.ts.map +1 -0
  523. package/dist/types/state/shared-api.d.ts.map +1 -1
  524. package/dist/types/state/translations/get.d.ts +1 -1
  525. package/dist/types/state/translations/get.d.ts.map +1 -1
  526. package/dist/types/state/translations/merge.d.ts +1 -1
  527. package/dist/types/state/translations/merge.d.ts.map +1 -1
  528. package/dist/types/unstable-framework-support/index.d.ts +1 -1
  529. package/dist/types/unstable-framework-support/index.d.ts.map +1 -1
  530. package/package.json +1 -1
  531. package/dist/cjs/api/react.js.map +0 -1
  532. package/dist/cjs/runtimes/react/hooks/use-is-preview.js.map +0 -1
  533. package/dist/cjs/state/actions/internal.js.map +0 -1
  534. package/dist/cjs/state/modules/box-models.js.map +0 -1
  535. package/dist/cjs/state/modules/element-imperative-handles.js.map +0 -1
  536. package/dist/cjs/state/modules/is-preview.js.map +0 -1
  537. package/dist/cjs/state/modules/pointer.js.map +0 -1
  538. package/dist/cjs/state/modules/read-write-documents.js.map +0 -1
  539. package/dist/esm/api/react.js.map +0 -1
  540. package/dist/esm/runtimes/react/hooks/use-is-preview.js +0 -9
  541. package/dist/esm/runtimes/react/hooks/use-is-preview.js.map +0 -1
  542. package/dist/esm/state/actions/internal.js.map +0 -1
  543. package/dist/esm/state/modules/box-models.js.map +0 -1
  544. package/dist/esm/state/modules/element-imperative-handles.js.map +0 -1
  545. package/dist/esm/state/modules/is-preview.js +0 -21
  546. package/dist/esm/state/modules/is-preview.js.map +0 -1
  547. package/dist/esm/state/modules/pointer.js.map +0 -1
  548. package/dist/esm/state/modules/read-write-documents.js.map +0 -1
  549. package/dist/types/api/react.d.ts.map +0 -1
  550. package/dist/types/runtimes/react/hooks/use-is-preview.d.ts +0 -2
  551. package/dist/types/runtimes/react/hooks/use-is-preview.d.ts.map +0 -1
  552. package/dist/types/state/__tests__/react-page.test.d.ts +0 -2
  553. package/dist/types/state/__tests__/react-page.test.d.ts.map +0 -1
  554. package/dist/types/state/actions/internal.d.ts.map +0 -1
  555. package/dist/types/state/modules/box-models.d.ts.map +0 -1
  556. package/dist/types/state/modules/element-imperative-handles.d.ts +0 -7
  557. package/dist/types/state/modules/element-imperative-handles.d.ts.map +0 -1
  558. package/dist/types/state/modules/is-preview.d.ts.map +0 -1
  559. package/dist/types/state/modules/pointer.d.ts.map +0 -1
  560. package/dist/types/state/modules/read-write-documents.d.ts.map +0 -1
@@ -3,7 +3,9 @@ import {
3
3
  getBox as getBoxWithoutScroll,
4
4
  withScroll
5
5
  } from "css-box-model";
6
- import { ActionTypes, isKnownAction } from "../actions";
6
+ import { isKnownAction } from "../../actions";
7
+ import { ReadWriteActionTypes } from "../../actions/internal/read-write-actions";
8
+ import { BuilderActionTypes } from "../../builder-api/actions";
7
9
  function parse(rawString) {
8
10
  const value = Number(rawString.replace(/px$/, ""));
9
11
  return Number.isFinite(value) ? value : 0;
@@ -43,7 +45,7 @@ function reducer(state = getInitialState(), action) {
43
45
  if (!isKnownAction(action))
44
46
  return state;
45
47
  switch (action.type) {
46
- case ActionTypes.REGISTER_MEASURABLE: {
48
+ case ReadWriteActionTypes.REGISTER_MEASURABLE: {
47
49
  const { documentKey, elementKey, measurable } = action.payload;
48
50
  return {
49
51
  ...state,
@@ -53,13 +55,13 @@ function reducer(state = getInitialState(), action) {
53
55
  )
54
56
  };
55
57
  }
56
- case ActionTypes.UNREGISTER_MEASURABLE: {
58
+ case ReadWriteActionTypes.UNREGISTER_MEASURABLE: {
57
59
  const { documentKey, elementKey } = action.payload;
58
60
  const nextMeasurables = new Map(state.measurables.get(documentKey) ?? []);
59
61
  const deleted = nextMeasurables.delete(elementKey);
60
62
  return deleted ? { ...state, measurables: new Map(state.measurables).set(documentKey, nextMeasurables) } : state;
61
63
  }
62
- case ActionTypes.CHANGE_ELEMENT_BOX_MODELS: {
64
+ case BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS: {
63
65
  const { changedElementBoxModels } = action.payload;
64
66
  if (changedElementBoxModels.size === 0)
65
67
  return state;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/modules/read-write/box-models.ts"],"sourcesContent":["import { type BoxModel } from '@makeswift/controls'\nimport {\n createBox as createBoxWithoutScroll,\n CreateBoxArgs,\n getBox as getBoxWithoutScroll,\n withScroll,\n} from 'css-box-model'\n\nimport { type Action, type UnknownAction, isKnownAction } from '../../actions'\nimport { ReadWriteActionTypes } from '../../actions/internal/read-write-actions'\nimport { BuilderActionTypes } from '../../builder-api/actions'\n\nexport type { BoxModel }\n\nexport function parse(rawString: string): number {\n const value = Number(rawString.replace(/px$/, ''))\n\n return Number.isFinite(value) ? value : 0\n}\n\nexport function createBox(boxArgs: CreateBoxArgs): BoxModel {\n return withScroll(createBoxWithoutScroll(boxArgs))\n}\n\nexport function getBox(element: Element): BoxModel {\n return withScroll(getBoxWithoutScroll(element))\n}\n\nexport interface BoxModelHandle {\n getBoxModel(): BoxModel | null\n}\n\nexport type Measurable = Element | BoxModelHandle\n\nexport function isMeasurable(value: unknown): value is Measurable {\n if (value instanceof Element) return true\n\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getBoxModel' in value &&\n typeof (value as { getBoxModel: unknown }).getBoxModel === 'function'\n ) {\n return true\n }\n\n return false\n}\n\nexport function measure(measurable: Measurable): BoxModel | null {\n if (measurable instanceof Element) return getBox(measurable)\n\n return measurable.getBoxModel()\n}\n\nexport type State = {\n measurables: Map<string, Map<string, Measurable>>\n boxModels: Map<string, Map<string, BoxModel>>\n}\n\nexport function getInitialState(): State {\n return { measurables: new Map(), boxModels: new Map() }\n}\n\nexport function getMeasurables(state: State): Map<string, Map<string, Measurable>> {\n return state.measurables\n}\n\nexport function getBoxModels(state: State): Map<string, Map<string, BoxModel>> {\n return state.boxModels\n}\n\nexport function getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModel | null {\n return getBoxModels(state).get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction) {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadWriteActionTypes.REGISTER_MEASURABLE: {\n const { documentKey, elementKey, measurable } = action.payload\n\n return {\n ...state,\n measurables: new Map(state.measurables).set(\n documentKey,\n new Map(state.measurables.get(documentKey) ?? []).set(elementKey, measurable),\n ),\n }\n }\n\n case ReadWriteActionTypes.UNREGISTER_MEASURABLE: {\n const { documentKey, elementKey } = action.payload\n const nextMeasurables = new Map(state.measurables.get(documentKey) ?? [])\n\n const deleted = nextMeasurables.delete(elementKey)\n\n return deleted\n ? { ...state, measurables: new Map(state.measurables).set(documentKey, nextMeasurables) }\n : state\n }\n\n case BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS: {\n const { changedElementBoxModels } = action.payload\n\n if (changedElementBoxModels.size === 0) return state\n\n const nextBoxModels = new Map(state.boxModels)\n\n changedElementBoxModels.forEach((changedBoxModels, documentKey) => {\n const nextDocumentBoxModels = new Map(nextBoxModels.get(documentKey) ?? [])\n\n changedBoxModels.forEach((changedBoxModel, elementKey) => {\n if (changedBoxModel == null) nextDocumentBoxModels.delete(elementKey)\n else nextDocumentBoxModels.set(elementKey, changedBoxModel)\n })\n\n if (nextDocumentBoxModels.size > 0) nextBoxModels.set(documentKey, nextDocumentBoxModels)\n else nextBoxModels.delete(documentKey)\n })\n\n return { ...state, boxModels: nextBoxModels }\n }\n\n default:\n return state\n }\n}\n"],"mappings":"AACA;AAAA,EACE,aAAa;AAAA,EAEb,UAAU;AAAA,EACV;AAAA,OACK;AAEP,SAA0C,qBAAqB;AAC/D,SAAS,4BAA4B;AACrC,SAAS,0BAA0B;AAI5B,SAAS,MAAM,WAA2B;AAC/C,QAAM,QAAQ,OAAO,UAAU,QAAQ,OAAO,EAAE,CAAC;AAEjD,SAAO,OAAO,SAAS,KAAK,IAAI,QAAQ;AAC1C;AAEO,SAAS,UAAU,SAAkC;AAC1D,SAAO,WAAW,uBAAuB,OAAO,CAAC;AACnD;AAEO,SAAS,OAAO,SAA4B;AACjD,SAAO,WAAW,oBAAoB,OAAO,CAAC;AAChD;AAQO,SAAS,aAAa,OAAqC;AAChE,MAAI,iBAAiB;AAAS,WAAO;AAErC,MACE,OAAO,UAAU,YACjB,UAAU,QACV,iBAAiB,SACjB,OAAQ,MAAmC,gBAAgB,YAC3D;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,SAAS,QAAQ,YAAyC;AAC/D,MAAI,sBAAsB;AAAS,WAAO,OAAO,UAAU;AAE3D,SAAO,WAAW,YAAY;AAChC;AAOO,SAAS,kBAAyB;AACvC,SAAO,EAAE,aAAa,oBAAI,IAAI,GAAG,WAAW,oBAAI,IAAI,EAAE;AACxD;AAEO,SAAS,eAAe,OAAoD;AACjF,SAAO,MAAM;AACf;AAEO,SAAS,aAAa,OAAkD;AAC7E,SAAO,MAAM;AACf;AAEO,SAAS,YACd,OACA,aACA,YACiB;AACjB,SAAO,aAAa,KAAK,EAAE,IAAI,WAAW,GAAG,IAAI,UAAU,KAAK;AAClE;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAgC;AACxF,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,qBAAqB,qBAAqB;AAC7C,YAAM,EAAE,aAAa,YAAY,WAAW,IAAI,OAAO;AAEvD,aAAO;AAAA,QACL,GAAG;AAAA,QACH,aAAa,IAAI,IAAI,MAAM,WAAW,EAAE;AAAA,UACtC;AAAA,UACA,IAAI,IAAI,MAAM,YAAY,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,IAAI,YAAY,UAAU;AAAA,QAC9E;AAAA,MACF;AAAA,IACF;AAAA,IAEA,KAAK,qBAAqB,uBAAuB;AAC/C,YAAM,EAAE,aAAa,WAAW,IAAI,OAAO;AAC3C,YAAM,kBAAkB,IAAI,IAAI,MAAM,YAAY,IAAI,WAAW,KAAK,CAAC,CAAC;AAExE,YAAM,UAAU,gBAAgB,OAAO,UAAU;AAEjD,aAAO,UACH,EAAE,GAAG,OAAO,aAAa,IAAI,IAAI,MAAM,WAAW,EAAE,IAAI,aAAa,eAAe,EAAE,IACtF;AAAA,IACN;AAAA,IAEA,KAAK,mBAAmB,2BAA2B;AACjD,YAAM,EAAE,wBAAwB,IAAI,OAAO;AAE3C,UAAI,wBAAwB,SAAS;AAAG,eAAO;AAE/C,YAAM,gBAAgB,IAAI,IAAI,MAAM,SAAS;AAE7C,8BAAwB,QAAQ,CAAC,kBAAkB,gBAAgB;AACjE,cAAM,wBAAwB,IAAI,IAAI,cAAc,IAAI,WAAW,KAAK,CAAC,CAAC;AAE1E,yBAAiB,QAAQ,CAAC,iBAAiB,eAAe;AACxD,cAAI,mBAAmB;AAAM,kCAAsB,OAAO,UAAU;AAAA;AAC/D,kCAAsB,IAAI,YAAY,eAAe;AAAA,QAC5D,CAAC;AAED,YAAI,sBAAsB,OAAO;AAAG,wBAAc,IAAI,aAAa,qBAAqB;AAAA;AACnF,wBAAc,OAAO,WAAW;AAAA,MACvC,CAAC;AAED,aAAO,EAAE,GAAG,OAAO,WAAW,cAAc;AAAA,IAC9C;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -1,4 +1,5 @@
1
- import { ActionTypes, isKnownAction } from "../actions";
1
+ import { isKnownAction } from "../../actions";
2
+ import { ReadOnlyActionTypes } from "../../actions/internal/read-only-actions";
2
3
  function getElementImperativeHandles(state) {
3
4
  return state;
4
5
  }
@@ -9,7 +10,7 @@ function reducer(state = getInitialState(), action) {
9
10
  if (!isKnownAction(action))
10
11
  return state;
11
12
  switch (action.type) {
12
- case ActionTypes.REGISTER_COMPONENT_HANDLE:
13
+ case ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE:
13
14
  return new Map(state).set(
14
15
  action.payload.documentKey,
15
16
  new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(
@@ -17,7 +18,7 @@ function reducer(state = getInitialState(), action) {
17
18
  action.payload.componentHandle
18
19
  )
19
20
  );
20
- case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {
21
+ case ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE: {
21
22
  const byElementKey = new Map(state.get(action.payload.documentKey) ?? []);
22
23
  const deleted = byElementKey.delete(action.payload.elementKey);
23
24
  if (!deleted)
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/modules/read-write/element-imperative-handles.ts"],"sourcesContent":["import { ElementImperativeHandle } from '../../../runtimes/react/element-imperative-handle'\nimport { type Action, type UnknownAction, isKnownAction } from '../../actions'\nimport { ReadOnlyActionTypes } from '../../actions/internal/read-only-actions'\n\nexport type State = Map<string, Map<string, ElementImperativeHandle>>\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return state\n}\n\nfunction getInitialState(): State {\n return new Map()\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE:\n return new Map(state).set(\n action.payload.documentKey,\n new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n\n case ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const byElementKey = new Map(state.get(action.payload.documentKey) ?? [])\n\n const deleted = byElementKey.delete(action.payload.elementKey)\n\n if (!deleted) return state\n\n return new Map(state).set(action.payload.documentKey, byElementKey)\n }\n\n default:\n return state\n }\n}\n"],"mappings":"AACA,SAA0C,qBAAqB;AAC/D,SAAS,2BAA2B;AAI7B,SAAS,4BACd,OACmD;AACnD,SAAO;AACT;AAEA,SAAS,kBAAyB;AAChC,SAAO,oBAAI,IAAI;AACjB;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,oBAAoB;AACvB,aAAO,IAAI,IAAI,KAAK,EAAE;AAAA,QACpB,OAAO,QAAQ;AAAA,QACf,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,OAAO,QAAQ,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE;AAAA,UAC5D,OAAO,QAAQ;AAAA,UACf,OAAO,QAAQ;AAAA,QACjB;AAAA,MACF;AAAA,IAEF,KAAK,oBAAoB,6BAA6B;AACpD,YAAM,eAAe,IAAI,IAAI,MAAM,IAAI,OAAO,QAAQ,WAAW,KAAK,CAAC,CAAC;AAExE,YAAM,UAAU,aAAa,OAAO,OAAO,QAAQ,UAAU;AAE7D,UAAI,CAAC;AAAS,eAAO;AAErB,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,aAAa,YAAY;AAAA,IACpE;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -1,4 +1,5 @@
1
- import { ActionTypes, isKnownAction } from "../actions";
1
+ import { isKnownAction } from "../../actions";
2
+ import { HostActionTypes } from "../../host-api";
2
3
  function getInitialState() {
3
4
  return { pointer: null };
4
5
  }
@@ -9,7 +10,7 @@ function reducer(state = getInitialState(), action) {
9
10
  if (!isKnownAction(action))
10
11
  return state;
11
12
  switch (action.type) {
12
- case ActionTypes.BUILDER_POINTER_MOVE:
13
+ case HostActionTypes.BUILDER_POINTER_MOVE:
13
14
  return { ...state, pointer: action.payload.pointer };
14
15
  default:
15
16
  return state;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/modules/read-write/pointer.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../../actions'\nimport { HostActionTypes } from '../../host-api'\n\nexport type Point = { x: number; y: number }\n\nexport type State = {\n pointer: Point | null\n}\n\nfunction getInitialState(): State {\n return { pointer: null }\n}\n\nexport function getPointer(state: State): Point | null {\n return state.pointer\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case HostActionTypes.BUILDER_POINTER_MOVE:\n return { ...state, pointer: action.payload.pointer }\n\n default:\n return state\n }\n}\n"],"mappings":"AAAA,SAA0C,qBAAqB;AAC/D,SAAS,uBAAuB;AAQhC,SAAS,kBAAyB;AAChC,SAAO,EAAE,SAAS,KAAK;AACzB;AAEO,SAAS,WAAW,OAA4B;AACrD,SAAO,MAAM;AACf;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,gBAAgB;AACnB,aAAO,EAAE,GAAG,OAAO,SAAS,OAAO,QAAQ,QAAQ;AAAA,IAErD;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import { removeIn, setIn } from "immutable";
2
- import * as ReadOnlyDocuments from "./read-only-documents";
3
- import { ActionTypes, isKnownAction } from "../actions";
4
- import { isElementReference } from "./read-only-documents";
2
+ import * as ReadOnlyDocuments from "../read-only-documents";
3
+ import { ActionTypes, isKnownAction } from "../../actions";
4
+ import { isElementReference } from "../read-only-documents";
5
5
  function apply(data, operation) {
6
6
  let applied = data;
7
7
  operation.forEach((component) => {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/modules/read-write/read-write-documents.ts"],"sourcesContent":["import { type Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from '../read-only-documents'\nimport { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from '../read-only-documents'\nexport { isElementReference } from '../read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n documents = [],\n}: { documents?: ReadOnlyDocuments.Document[] } = {}): State {\n return ReadOnlyDocuments.getInitialState({ documents })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function getDocuments(state: State): ReadOnlyDocuments.State {\n return ReadOnlyDocuments.getDocuments(getReadOnlyDocumentsStateSlice(state))\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const document = getDocument(nextState, action.payload.documentKey)\n if (document == null) return nextState\n\n const currentRootElement = ReadOnlyDocuments.getRootElement(document)\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(action.payload.documentKey, {\n ...document,\n rootElement: nextRootElement,\n })\n }\n\n default:\n return nextState\n }\n}\n"],"mappings":"AACA,SAAS,UAAU,aAAa;AAEhC,YAAY,uBAAuB;AACnC,SAA0C,aAAa,qBAAqB;AAG5E,SAAS,0BAA0B;AAGnC,SAAS,MAAM,MAAiC,WAAiD;AAC/F,MAAI,UAAU;AAEd,YAAU,QAAQ,eAAa;AAE7B,QAAI,UAAU,MAAM;AAAM,gBAAU,SAAS,SAAS,UAAU,CAAC;AAGjE,QAAI,UAAU,MAAM;AAAM,gBAAU,SAAS,SAAS,UAAU,CAAC;AAGjE,QAAI,UAAU,MAAM;AAAM,gBAAU,MAAM,SAAS,UAAU,GAAG,UAAU,EAAE;AAG5E,QAAI,UAAU,MAAM;AAAM,gBAAU,MAAM,SAAS,UAAU,GAAG,UAAU,EAAE;AAAA,EAC9E,CAAC;AAED,SAAO;AACT;AAIO,SAAS,gBAAgB;AAAA,EAC9B,YAAY,CAAC;AACf,IAAkD,CAAC,GAAU;AAC3D,SAAO,kBAAkB,gBAAgB,EAAE,UAAU,CAAC;AACxD;AAEA,SAAS,+BAA+B,OAAuC;AAC7E,SAAO;AACT;AAEO,SAAS,YAAY,OAAc,aAAwD;AAChG,SAAO,kBAAkB,YAAY,+BAA+B,KAAK,GAAG,WAAW;AACzF;AAEO,SAAS,aAAa,OAAuC;AAClE,SAAO,kBAAkB,aAAa,+BAA+B,KAAK,CAAC;AAC7E;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,QAAM,YAAY,kBAAkB,QAAQ,OAAO,MAAM;AAEzD,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,YAAY,iBAAiB;AAChC,YAAM,WAAW,YAAY,WAAW,OAAO,QAAQ,WAAW;AAClE,UAAI,YAAY;AAAM,eAAO;AAE7B,YAAM,qBAAqB,kBAAkB,eAAe,QAAQ;AAEpE,YAAM,kBAAkB,MAAM,oBAAoB,OAAO,QAAQ,SAAS;AAE1E,aAAO,uBAAuB,kBAC1B,YACA,IAAI,IAAI,SAAS,EAAE,IAAI,OAAO,QAAQ,aAAa;AAAA,QACjD,GAAG;AAAA,QACH,aAAa;AAAA,MACf,CAAC;AAAA,IACP;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -0,0 +1,24 @@
1
+ import { isKnownAction } from "../actions";
2
+ import { ReadOnlyActionTypes } from "../actions/internal/read-only-actions";
3
+ function getInitialState(siteVersion = null) {
4
+ return siteVersion;
5
+ }
6
+ function getSiteVersion(state) {
7
+ return state;
8
+ }
9
+ function reducer(state = getInitialState(), action) {
10
+ if (!isKnownAction(action))
11
+ return state;
12
+ switch (action.type) {
13
+ case ReadOnlyActionTypes.SET_SITE_VERSION:
14
+ return action.payload;
15
+ default:
16
+ return state;
17
+ }
18
+ }
19
+ export {
20
+ getInitialState,
21
+ getSiteVersion,
22
+ reducer
23
+ };
24
+ //# sourceMappingURL=site-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/modules/site-version.ts"],"sourcesContent":["import { type SiteVersion } from '../../api/site-version'\nimport { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\n\nexport type State = SiteVersion | null\n\nexport function getInitialState(siteVersion: SiteVersion | null = null): State {\n return siteVersion\n}\n\nexport function getSiteVersion(state: State): SiteVersion | null {\n return state\n}\n\nexport function reducer(state = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.SET_SITE_VERSION:\n return action.payload\n\n default:\n return state\n }\n}\n"],"mappings":"AACA,SAA0C,qBAAqB;AAC/D,SAAS,2BAA2B;AAI7B,SAAS,gBAAgB,cAAkC,MAAa;AAC7E,SAAO;AACT;AAEO,SAAS,eAAe,OAAkC;AAC/D,SAAO;AACT;AAEO,SAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAuC;AACxF,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,oBAAoB;AACvB,aAAO,OAAO;AAAA,IAEhB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -0,0 +1,37 @@
1
+ import {
2
+ createReplacementContext,
3
+ replaceResourceIfNeeded,
4
+ ContextResource
5
+ } from "@makeswift/controls";
6
+ import { copy as copyFromControl } from "../../controls/control";
7
+ import * as Documents from "../modules/read-only-documents";
8
+ import { getComponentPropControllerDescriptors } from "../read-only-state";
9
+ function copyElementTree(state, elementTree, replacementContext) {
10
+ function copyElementTreeNode(state2, replacementContext2) {
11
+ return function(node) {
12
+ const context = {
13
+ replacementContext: replacementContext2,
14
+ copyElement: copyElementTreeNode(state2, replacementContext2)
15
+ };
16
+ if (Documents.isElementReference(node)) {
17
+ return {
18
+ ...node,
19
+ value: replaceResourceIfNeeded(ContextResource.GlobalElement, node.value, context)
20
+ };
21
+ }
22
+ const descriptors = getComponentPropControllerDescriptors(state2, node.type);
23
+ if (descriptors == null)
24
+ return node;
25
+ for (const [propKey, descriptor] of Object.entries(descriptors)) {
26
+ node.props[propKey] = copyFromControl(descriptor, node.props[propKey], context);
27
+ }
28
+ return node;
29
+ };
30
+ }
31
+ const copy = JSON.parse(JSON.stringify(elementTree));
32
+ return copyElementTreeNode(state, createReplacementContext(replacementContext))(copy);
33
+ }
34
+ export {
35
+ copyElementTree
36
+ };
37
+ //# sourceMappingURL=copy-element-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/ops/copy-element-tree.ts"],"sourcesContent":["import {\n createReplacementContext,\n type SerializableReplacementContext,\n type ReplacementContext,\n CopyContext,\n replaceResourceIfNeeded,\n ContextResource,\n} from '@makeswift/controls'\n\nimport { copy as copyFromControl } from '../../controls/control'\n\nimport * as Documents from '../modules/read-only-documents'\n\nimport { type State, getComponentPropControllerDescriptors } from '../read-only-state'\n\nexport function copyElementTree(\n state: State,\n elementTree: Documents.ElementData,\n replacementContext: SerializableReplacementContext,\n) {\n /*\n * This is structured a bit weird.\n *\n * This is done so that we can pass a callable function into some of the copy functions\n * themselves, to enable mutual recursion.\n *\n * Consider the slot control. It has to iterate through its elements, and for each of them,\n * call some version of the below function.\n *\n * That is how the recursing through the tree happens.\n */\n function copyElementTreeNode(state: State, replacementContext: ReplacementContext) {\n return function (node: Documents.Element) {\n const context: CopyContext = {\n replacementContext,\n copyElement: copyElementTreeNode(state, replacementContext),\n }\n\n if (Documents.isElementReference(node)) {\n return {\n ...node,\n value: replaceResourceIfNeeded(ContextResource.GlobalElement, node.value, context),\n }\n }\n\n const descriptors = getComponentPropControllerDescriptors(state, node.type)\n\n if (descriptors == null) return node\n\n for (const [propKey, descriptor] of Object.entries(descriptors)) {\n node.props[propKey] = copyFromControl(descriptor, node.props[propKey], context)\n }\n\n return node\n }\n }\n\n const copy = JSON.parse(JSON.stringify(elementTree)) as Documents.ElementData\n\n return copyElementTreeNode(state, createReplacementContext(replacementContext))(copy)\n}\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EAIA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,QAAQ,uBAAuB;AAExC,YAAY,eAAe;AAE3B,SAAqB,6CAA6C;AAE3D,SAAS,gBACd,OACA,aACA,oBACA;AAYA,WAAS,oBAAoBA,QAAcC,qBAAwC;AACjF,WAAO,SAAU,MAAyB;AACxC,YAAM,UAAuB;AAAA,QAC3B,oBAAAA;AAAA,QACA,aAAa,oBAAoBD,QAAOC,mBAAkB;AAAA,MAC5D;AAEA,UAAI,UAAU,mBAAmB,IAAI,GAAG;AACtC,eAAO;AAAA,UACL,GAAG;AAAA,UACH,OAAO,wBAAwB,gBAAgB,eAAe,KAAK,OAAO,OAAO;AAAA,QACnF;AAAA,MACF;AAEA,YAAM,cAAc,sCAAsCD,QAAO,KAAK,IAAI;AAE1E,UAAI,eAAe;AAAM,eAAO;AAEhC,iBAAW,CAAC,SAAS,UAAU,KAAK,OAAO,QAAQ,WAAW,GAAG;AAC/D,aAAK,MAAM,OAAO,IAAI,gBAAgB,YAAY,KAAK,MAAM,OAAO,GAAG,OAAO;AAAA,MAChF;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,OAAO,KAAK,MAAM,KAAK,UAAU,WAAW,CAAC;AAEnD,SAAO,oBAAoB,OAAO,yBAAyB,kBAAkB,CAAC,EAAE,IAAI;AACtF;","names":["state","replacementContext"]}
@@ -0,0 +1,39 @@
1
+ import { merge } from "../../controls/control";
2
+ import * as Documents from "../modules/read-only-documents";
3
+ import { getPropControllerDescriptors } from "../read-only-state";
4
+ function mergeElement(state, baseElement, overrideElement) {
5
+ if (baseElement.type !== overrideElement.type || baseElement.key !== overrideElement.key) {
6
+ throw new Error(`Can't merge elements of different types or keys`);
7
+ }
8
+ if (Documents.isElementReference(overrideElement))
9
+ return overrideElement;
10
+ if (Documents.isElementReference(baseElement))
11
+ return baseElement;
12
+ const elementDescriptors = getPropControllerDescriptors(state);
13
+ const descriptors = elementDescriptors.get(baseElement.type);
14
+ if (descriptors == null) {
15
+ throw new Error(
16
+ `Can't merge element of type "${baseElement.type}" because it has no descriptors`
17
+ );
18
+ }
19
+ const mergedProps = {};
20
+ for (const propName of Object.keys(descriptors)) {
21
+ const descriptor = descriptors[propName];
22
+ const context = {
23
+ mergeElement(base, override) {
24
+ return mergeElement(state, base, override);
25
+ }
26
+ };
27
+ mergedProps[propName] = merge(
28
+ descriptor,
29
+ baseElement.props[propName],
30
+ overrideElement.props[propName],
31
+ context
32
+ );
33
+ }
34
+ return { ...baseElement, props: mergedProps };
35
+ }
36
+ export {
37
+ mergeElement
38
+ };
39
+ //# sourceMappingURL=merge-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/ops/merge-element.ts"],"sourcesContent":["import { type MergeContext } from '@makeswift/controls'\n\nimport { merge } from '../../controls/control'\n\nimport * as Documents from '../modules/read-only-documents'\n\nimport { type State, getPropControllerDescriptors } from '../read-only-state'\n\nexport function mergeElement(\n state: State,\n baseElement: Documents.Element,\n overrideElement: Documents.Element,\n): Documents.Element {\n if (baseElement.type !== overrideElement.type || baseElement.key !== overrideElement.key) {\n throw new Error(`Can't merge elements of different types or keys`)\n }\n\n if (Documents.isElementReference(overrideElement)) return overrideElement\n\n if (Documents.isElementReference(baseElement)) return baseElement\n\n const elementDescriptors = getPropControllerDescriptors(state)\n const descriptors = elementDescriptors.get(baseElement.type)\n\n if (descriptors == null) {\n throw new Error(\n `Can't merge element of type \"${baseElement.type}\" because it has no descriptors`,\n )\n }\n\n const mergedProps = {} as Record<string, Documents.Data>\n\n for (const propName of Object.keys(descriptors)) {\n const descriptor = descriptors[propName]\n const context: MergeContext = {\n mergeElement(base, override) {\n return mergeElement(state, base, override)\n },\n }\n\n mergedProps[propName] = merge(\n descriptor,\n baseElement.props[propName],\n overrideElement.props[propName],\n context,\n )\n }\n\n return { ...baseElement, props: mergedProps }\n}\n"],"mappings":"AAEA,SAAS,aAAa;AAEtB,YAAY,eAAe;AAE3B,SAAqB,oCAAoC;AAElD,SAAS,aACd,OACA,aACA,iBACmB;AACnB,MAAI,YAAY,SAAS,gBAAgB,QAAQ,YAAY,QAAQ,gBAAgB,KAAK;AACxF,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACnE;AAEA,MAAI,UAAU,mBAAmB,eAAe;AAAG,WAAO;AAE1D,MAAI,UAAU,mBAAmB,WAAW;AAAG,WAAO;AAEtD,QAAM,qBAAqB,6BAA6B,KAAK;AAC7D,QAAM,cAAc,mBAAmB,IAAI,YAAY,IAAI;AAE3D,MAAI,eAAe,MAAM;AACvB,UAAM,IAAI;AAAA,MACR,gCAAgC,YAAY,IAAI;AAAA,IAClD;AAAA,EACF;AAEA,QAAM,cAAc,CAAC;AAErB,aAAW,YAAY,OAAO,KAAK,WAAW,GAAG;AAC/C,UAAM,aAAa,YAAY,QAAQ;AACvC,UAAM,UAAwB;AAAA,MAC5B,aAAa,MAAM,UAAU;AAC3B,eAAO,aAAa,OAAO,MAAM,QAAQ;AAAA,MAC3C;AAAA,IACF;AAEA,gBAAY,QAAQ,IAAI;AAAA,MACtB;AAAA,MACA,YAAY,MAAM,QAAQ;AAAA,MAC1B,gBAAgB,MAAM,QAAQ;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,aAAa,OAAO,YAAY;AAC9C;","names":[]}