@makeswift/runtime 0.26.4-canary.1 → 0.26.5

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 (700) hide show
  1. package/dist/cjs/api/client.js +2 -13
  2. package/dist/cjs/api/client.js.map +1 -1
  3. package/dist/cjs/api/react.js +256 -0
  4. package/dist/cjs/api/react.js.map +1 -0
  5. package/dist/cjs/api-handler/handlers/element-tree.js.map +1 -1
  6. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  7. package/dist/cjs/api-handler/handlers/merge-translated-data.js.map +1 -1
  8. package/dist/cjs/api-handler/handlers/translatable-data.js.map +1 -1
  9. package/dist/cjs/api-handler/handlers/webhook/diff-projection.js +62 -0
  10. package/dist/cjs/api-handler/handlers/webhook/diff-projection.js.map +1 -0
  11. package/dist/cjs/builder/host-to-builder-actions.js +3 -3
  12. package/dist/cjs/builder/host-to-builder-actions.js.map +1 -1
  13. package/dist/cjs/builder/index.js +2 -2
  14. package/dist/cjs/builder/index.js.map +1 -1
  15. package/dist/cjs/builder/serialization.js +78 -0
  16. package/dist/cjs/builder/serialization.js.map +1 -0
  17. package/dist/cjs/client/index.js +8 -8
  18. package/dist/cjs/client/index.js.map +1 -1
  19. package/dist/cjs/components/builtin/Box/Box.js +1 -1
  20. package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
  21. package/dist/cjs/components/builtin/Form/Form.js +1 -1
  22. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  23. package/dist/cjs/components/hooks/useTableFormFieldRefs.js +1 -1
  24. package/dist/cjs/components/hooks/useTableFormFieldRefs.js.map +1 -1
  25. package/dist/cjs/controls/serialization/base/index.js +78 -0
  26. package/dist/cjs/controls/serialization/base/index.js.map +1 -0
  27. package/dist/cjs/controls/serialization/base/visitor.js +59 -0
  28. package/dist/cjs/controls/serialization/base/visitor.js.map +1 -0
  29. package/dist/cjs/controls/serialization/index.js +55 -0
  30. package/dist/cjs/controls/serialization/index.js.map +1 -0
  31. package/dist/cjs/controls/serialization/message-port/function-serialization.js +79 -0
  32. package/dist/cjs/controls/serialization/message-port/function-serialization.js.map +1 -0
  33. package/dist/cjs/controls/serialization/message-port/index.js +25 -0
  34. package/dist/cjs/controls/serialization/message-port/index.js.map +1 -0
  35. package/dist/cjs/controls/serialization/message-port/visitor.js +48 -0
  36. package/dist/cjs/controls/serialization/message-port/visitor.js.map +1 -0
  37. package/dist/cjs/next/api-handler/config/app-router.js +10 -1
  38. package/dist/cjs/next/api-handler/config/app-router.js.map +1 -1
  39. package/dist/cjs/next/api-handler/config/pages-router.js +1 -1
  40. package/dist/cjs/next/api-handler/config/pages-router.js.map +1 -1
  41. package/dist/cjs/next/components/framework-provider/index.js +1 -1
  42. package/dist/cjs/next/components/framework-provider/index.js.map +1 -1
  43. package/dist/cjs/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  44. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +2 -1
  45. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  46. package/dist/cjs/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  47. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js +2 -1
  48. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js.map +1 -1
  49. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js +3 -2
  50. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  51. package/dist/cjs/next/fetch.js +30 -0
  52. package/dist/cjs/next/fetch.js.map +1 -0
  53. package/dist/cjs/next/runtime.js +35 -0
  54. package/dist/cjs/next/runtime.js.map +1 -0
  55. package/dist/cjs/next/testing/element-data.js +3 -3
  56. package/dist/cjs/next/testing/element-data.js.map +1 -1
  57. package/dist/cjs/next/testing/index.js +0 -2
  58. package/dist/cjs/next/testing/index.js.map +1 -1
  59. package/dist/cjs/next/testing/page-rendering.js +3 -3
  60. package/dist/cjs/next/testing/page-rendering.js.map +1 -1
  61. package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
  62. package/dist/cjs/prop-controllers/instances.js.map +1 -1
  63. package/dist/cjs/prop-controllers/serialization.js +355 -0
  64. package/dist/cjs/prop-controllers/serialization.js.map +1 -0
  65. package/dist/cjs/runtimes/react/components/Document.js +2 -2
  66. package/dist/cjs/runtimes/react/components/Document.js.map +1 -1
  67. package/dist/cjs/runtimes/react/components/DocumentRoot.js.map +1 -1
  68. package/dist/cjs/runtimes/react/components/Element.js +2 -2
  69. package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
  70. package/dist/cjs/runtimes/react/components/ElementData.js.map +1 -1
  71. package/dist/cjs/runtimes/react/components/ElementReference.js.map +1 -1
  72. package/dist/cjs/runtimes/react/components/ElementRegistration.js +2 -2
  73. package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -1
  74. package/dist/cjs/runtimes/react/components/GoogleFontLink.js +55 -0
  75. package/dist/cjs/runtimes/react/components/GoogleFontLink.js.map +1 -0
  76. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js +2 -2
  77. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js.map +1 -1
  78. package/dist/cjs/runtimes/react/components/MakeswiftFonts.js +33 -0
  79. package/dist/cjs/runtimes/react/components/MakeswiftFonts.js.map +1 -0
  80. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +5 -6
  81. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  82. package/dist/cjs/runtimes/react/components/framework-context.js +13 -3
  83. package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
  84. package/dist/cjs/runtimes/react/components/page/Page.js.map +1 -1
  85. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js +3 -2
  86. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  87. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  88. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  89. package/dist/cjs/runtimes/react/controls.js +2 -2
  90. package/dist/cjs/runtimes/react/controls.js.map +1 -1
  91. package/dist/cjs/runtimes/react/element-imperative-handle.js +1 -1
  92. package/dist/cjs/runtimes/react/element-imperative-handle.js.map +1 -1
  93. package/dist/cjs/runtimes/react/hooks/use-async-effect.js +55 -0
  94. package/dist/cjs/runtimes/react/hooks/use-async-effect.js.map +1 -0
  95. package/dist/cjs/runtimes/react/hooks/use-breakpoints.js +2 -2
  96. package/dist/cjs/runtimes/react/hooks/use-breakpoints.js.map +1 -1
  97. package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js +2 -2
  98. package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -1
  99. package/dist/cjs/runtimes/react/hooks/use-cache-data.js +2 -2
  100. package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -1
  101. package/dist/cjs/runtimes/react/hooks/use-component.js +3 -3
  102. package/dist/cjs/runtimes/react/hooks/use-component.js.map +1 -1
  103. package/dist/cjs/runtimes/react/hooks/use-current-breakpoint.js +39 -0
  104. package/dist/cjs/runtimes/react/hooks/use-current-breakpoint.js.map +1 -0
  105. package/dist/cjs/runtimes/react/hooks/use-dispatch.js.map +1 -1
  106. package/dist/cjs/runtimes/react/hooks/use-document.js +2 -2
  107. package/dist/cjs/runtimes/react/hooks/use-document.js.map +1 -1
  108. package/dist/cjs/runtimes/react/hooks/use-element-id.js +2 -2
  109. package/dist/cjs/runtimes/react/hooks/use-element-id.js.map +1 -1
  110. package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js +2 -2
  111. package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js.map +1 -1
  112. package/dist/cjs/runtimes/react/hooks/use-is-preview.js +33 -0
  113. package/dist/cjs/runtimes/react/hooks/use-is-preview.js.map +1 -0
  114. package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -1
  115. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +2 -2
  116. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  117. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js +1 -1
  118. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  119. package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -1
  120. package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
  121. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  122. package/dist/cjs/runtimes/react/host-api-client.js +3 -4
  123. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -1
  124. package/dist/cjs/runtimes/react/index.js +3 -3
  125. package/dist/cjs/runtimes/react/index.js.map +1 -1
  126. package/dist/cjs/runtimes/react/lib/resolved-style-to-css.js +59 -0
  127. package/dist/cjs/runtimes/react/lib/resolved-style-to-css.js.map +1 -0
  128. package/dist/cjs/runtimes/react/poll-box-model.js +1 -1
  129. package/dist/cjs/runtimes/react/poll-box-model.js.map +1 -1
  130. package/dist/cjs/runtimes/react/react-runtime-core.js +3 -3
  131. package/dist/cjs/runtimes/react/react-runtime-core.js.map +1 -1
  132. package/dist/cjs/runtimes/react/runtime-core.js +2 -4
  133. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
  134. package/dist/cjs/runtimes/react/testing/react-runtime.js +3 -2
  135. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -1
  136. package/dist/cjs/runtimes/react/utils/can-accept-ref.js.map +1 -1
  137. package/dist/cjs/runtimes/react/utils/google-fonts-url.js +49 -0
  138. package/dist/cjs/runtimes/react/utils/google-fonts-url.js.map +1 -0
  139. package/dist/cjs/state/actions/internal/read-only-actions.js +25 -17
  140. package/dist/cjs/state/actions/internal/read-only-actions.js.map +1 -1
  141. package/dist/cjs/state/actions/internal/read-write-actions.js +7 -1
  142. package/dist/cjs/state/actions/internal/read-write-actions.js.map +1 -1
  143. package/dist/cjs/state/actions/internal.js +205 -0
  144. package/dist/cjs/state/actions/internal.js.map +1 -0
  145. package/dist/cjs/state/builder-api/actions.js +8 -11
  146. package/dist/cjs/state/builder-api/actions.js.map +1 -1
  147. package/dist/cjs/state/builder-api/api.js +17 -0
  148. package/dist/cjs/state/builder-api/api.js.map +1 -0
  149. package/dist/cjs/state/builder-api/navigation-listener.js +110 -0
  150. package/dist/cjs/state/builder-api/navigation-listener.js.map +1 -0
  151. package/dist/cjs/state/host-api.js.map +1 -1
  152. package/dist/cjs/state/makeswift-api-client.js +20 -34
  153. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  154. package/dist/cjs/state/middleware/{read-write/makeswift-api-client-sync.js → makeswift-api-client-sync.js} +1 -1
  155. package/dist/cjs/state/middleware/makeswift-api-client-sync.js.map +1 -0
  156. package/dist/cjs/state/middleware/read-write/builder-api/index.js +11 -2
  157. package/dist/cjs/state/middleware/read-write/builder-api/index.js.map +1 -1
  158. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js +3 -0
  159. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -1
  160. package/dist/cjs/state/middleware/read-write/index.js +40 -0
  161. package/dist/cjs/state/middleware/read-write/index.js.map +1 -0
  162. package/dist/cjs/state/middleware/{prop-controller-handles.js → read-write/prop-controller-handles.js} +8 -8
  163. package/dist/cjs/state/middleware/read-write/prop-controller-handles.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/api-resources.js +4 -7
  167. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  168. package/dist/cjs/state/modules/box-models.js +127 -0
  169. package/dist/cjs/state/modules/box-models.js.map +1 -0
  170. package/dist/cjs/state/modules/breakpoints.js +1 -2
  171. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  172. package/dist/cjs/state/modules/builder-edit-mode.js +1 -2
  173. package/dist/cjs/state/modules/builder-edit-mode.js.map +1 -1
  174. package/dist/cjs/state/modules/components-meta.js +2 -3
  175. package/dist/cjs/state/modules/components-meta.js.map +1 -1
  176. package/dist/cjs/state/modules/element-imperative-handles.js +60 -0
  177. package/dist/cjs/state/modules/element-imperative-handles.js.map +1 -0
  178. package/dist/cjs/state/modules/element-trees.js +3 -5
  179. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  180. package/dist/cjs/state/modules/is-in-builder.js +1 -2
  181. package/dist/cjs/state/modules/is-in-builder.js.map +1 -1
  182. package/dist/cjs/state/modules/is-preview.js +47 -0
  183. package/dist/cjs/state/modules/is-preview.js.map +1 -0
  184. package/dist/cjs/state/modules/locale.js +1 -4
  185. package/dist/cjs/state/modules/locale.js.map +1 -1
  186. package/dist/cjs/state/modules/localized-resources-map.js +2 -4
  187. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -1
  188. package/dist/cjs/state/modules/pointer.js +47 -0
  189. package/dist/cjs/state/modules/pointer.js.map +1 -0
  190. package/dist/cjs/state/modules/prop-controllers.js +2 -3
  191. package/dist/cjs/state/modules/prop-controllers.js.map +1 -1
  192. package/dist/cjs/state/modules/react-components.js +2 -3
  193. package/dist/cjs/state/modules/react-components.js.map +1 -1
  194. package/dist/cjs/state/modules/read-only-documents.js +2 -3
  195. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  196. package/dist/cjs/state/modules/read-write/box-models.js +17 -2
  197. package/dist/cjs/state/modules/read-write/box-models.js.map +1 -1
  198. package/dist/cjs/state/modules/read-write-documents.js +98 -0
  199. package/dist/cjs/state/modules/read-write-documents.js.map +1 -0
  200. package/dist/cjs/state/modules/site-version.js +0 -3
  201. package/dist/cjs/state/modules/site-version.js.map +1 -1
  202. package/dist/cjs/state/react-builder-preview.js +508 -18
  203. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  204. package/dist/cjs/state/react-page.js +250 -6
  205. package/dist/cjs/state/react-page.js.map +1 -1
  206. package/dist/cjs/state/read-only-state.js +23 -1
  207. package/dist/cjs/state/read-only-state.js.map +1 -1
  208. package/dist/cjs/state/read-write-state.js +9 -2
  209. package/dist/cjs/state/read-write-state.js.map +1 -1
  210. package/dist/cjs/state/shared-api.js.map +1 -1
  211. package/dist/cjs/state/store.js +219 -0
  212. package/dist/cjs/state/store.js.map +1 -0
  213. package/dist/cjs/state/translations/get.js +2 -2
  214. package/dist/cjs/state/translations/get.js.map +1 -1
  215. package/dist/cjs/state/translations/merge.js +2 -2
  216. package/dist/cjs/state/translations/merge.js.map +1 -1
  217. package/dist/cjs/state/unified-state.js +17 -0
  218. package/dist/cjs/state/unified-state.js.map +1 -0
  219. package/dist/cjs/translations/index.js +32 -0
  220. package/dist/cjs/translations/index.js.map +1 -0
  221. package/dist/cjs/unstable-framework-support/index.js +4 -2
  222. package/dist/cjs/unstable-framework-support/index.js.map +1 -1
  223. package/dist/cjs/utils/deferred.js +39 -0
  224. package/dist/cjs/utils/deferred.js.map +1 -0
  225. package/dist/cjs/utils/ref-counted-map.js +120 -0
  226. package/dist/cjs/utils/ref-counted-map.js.map +1 -0
  227. package/dist/esm/api/client.js +2 -13
  228. package/dist/esm/api/client.js.map +1 -1
  229. package/dist/esm/api/react.js +223 -0
  230. package/dist/esm/api/react.js.map +1 -0
  231. package/dist/esm/api-handler/handlers/element-tree.js.map +1 -1
  232. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  233. package/dist/esm/api-handler/handlers/merge-translated-data.js.map +1 -1
  234. package/dist/esm/api-handler/handlers/translatable-data.js.map +1 -1
  235. package/dist/esm/api-handler/handlers/webhook/diff-projection.js +38 -0
  236. package/dist/esm/api-handler/handlers/webhook/diff-projection.js.map +1 -0
  237. package/dist/esm/builder/host-to-builder-actions.js +4 -4
  238. package/dist/esm/builder/host-to-builder-actions.js.map +1 -1
  239. package/dist/esm/builder/index.js +1 -1
  240. package/dist/esm/builder/index.js.map +1 -1
  241. package/dist/esm/builder/serialization.js +59 -0
  242. package/dist/esm/builder/serialization.js.map +1 -0
  243. package/dist/esm/client/index.js +5 -5
  244. package/dist/esm/client/index.js.map +1 -1
  245. package/dist/esm/components/builtin/Box/Box.js +1 -1
  246. package/dist/esm/components/builtin/Box/Box.js.map +1 -1
  247. package/dist/esm/components/builtin/Form/Form.js +1 -1
  248. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  249. package/dist/esm/components/hooks/useTableFormFieldRefs.js +1 -1
  250. package/dist/esm/components/hooks/useTableFormFieldRefs.js.map +1 -1
  251. package/dist/esm/controls/serialization/base/index.js +78 -0
  252. package/dist/esm/controls/serialization/base/index.js.map +1 -0
  253. package/dist/esm/controls/serialization/base/visitor.js +39 -0
  254. package/dist/esm/controls/serialization/base/visitor.js.map +1 -0
  255. package/dist/esm/controls/serialization/index.js +30 -0
  256. package/dist/esm/controls/serialization/index.js.map +1 -0
  257. package/dist/esm/controls/serialization/message-port/function-serialization.js +52 -0
  258. package/dist/esm/controls/serialization/message-port/function-serialization.js.map +1 -0
  259. package/dist/esm/controls/serialization/message-port/index.js +3 -0
  260. package/dist/esm/controls/serialization/message-port/index.js.map +1 -0
  261. package/dist/esm/controls/serialization/message-port/visitor.js +24 -0
  262. package/dist/esm/controls/serialization/message-port/visitor.js.map +1 -0
  263. package/dist/esm/next/api-handler/config/app-router.js +10 -1
  264. package/dist/esm/next/api-handler/config/app-router.js.map +1 -1
  265. package/dist/esm/next/api-handler/config/pages-router.js +1 -1
  266. package/dist/esm/next/api-handler/config/pages-router.js.map +1 -1
  267. package/dist/esm/next/components/framework-provider/index.js +5 -2
  268. package/dist/esm/next/components/framework-provider/index.js.map +1 -1
  269. package/dist/esm/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  270. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +2 -1
  271. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  272. package/dist/esm/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  273. package/dist/esm/next/components/tests/makeswift-component/fixtures.js +2 -1
  274. package/dist/esm/next/components/tests/makeswift-component/fixtures.js.map +1 -1
  275. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js +3 -2
  276. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  277. package/dist/esm/next/fetch.js +6 -0
  278. package/dist/esm/next/fetch.js.map +1 -0
  279. package/dist/esm/next/runtime.js +11 -0
  280. package/dist/esm/next/runtime.js.map +1 -0
  281. package/dist/esm/next/testing/element-data.js +1 -1
  282. package/dist/esm/next/testing/element-data.js.map +1 -1
  283. package/dist/esm/next/testing/index.js +0 -1
  284. package/dist/esm/next/testing/index.js.map +1 -1
  285. package/dist/esm/next/testing/page-rendering.js +3 -3
  286. package/dist/esm/next/testing/page-rendering.js.map +1 -1
  287. package/dist/esm/prop-controllers/descriptors.js.map +1 -1
  288. package/dist/esm/prop-controllers/instances.js.map +1 -1
  289. package/dist/esm/prop-controllers/serialization.js +338 -0
  290. package/dist/esm/prop-controllers/serialization.js.map +1 -0
  291. package/dist/esm/runtimes/react/components/Document.js +1 -1
  292. package/dist/esm/runtimes/react/components/Document.js.map +1 -1
  293. package/dist/esm/runtimes/react/components/DocumentRoot.js.map +1 -1
  294. package/dist/esm/runtimes/react/components/Element.js +1 -3
  295. package/dist/esm/runtimes/react/components/Element.js.map +1 -1
  296. package/dist/esm/runtimes/react/components/ElementData.js.map +1 -1
  297. package/dist/esm/runtimes/react/components/ElementReference.js.map +1 -1
  298. package/dist/esm/runtimes/react/components/ElementRegistration.js +1 -1
  299. package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -1
  300. package/dist/esm/runtimes/react/components/GoogleFontLink.js +35 -0
  301. package/dist/esm/runtimes/react/components/GoogleFontLink.js.map +1 -0
  302. package/dist/esm/runtimes/react/components/MakeswiftComponent.js +1 -1
  303. package/dist/esm/runtimes/react/components/MakeswiftComponent.js.map +1 -1
  304. package/dist/esm/runtimes/react/components/MakeswiftFonts.js +9 -0
  305. package/dist/esm/runtimes/react/components/MakeswiftFonts.js.map +1 -0
  306. package/dist/esm/runtimes/react/components/RuntimeProvider.js +4 -5
  307. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  308. package/dist/esm/runtimes/react/components/framework-context.js +14 -2
  309. package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
  310. package/dist/esm/runtimes/react/components/page/Page.js.map +1 -1
  311. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js +3 -2
  312. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  313. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  314. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  315. package/dist/esm/runtimes/react/controls.js +2 -2
  316. package/dist/esm/runtimes/react/controls.js.map +1 -1
  317. package/dist/esm/runtimes/react/element-imperative-handle.js +1 -1
  318. package/dist/esm/runtimes/react/element-imperative-handle.js.map +1 -1
  319. package/dist/esm/runtimes/react/hooks/use-async-effect.js +31 -0
  320. package/dist/esm/runtimes/react/hooks/use-async-effect.js.map +1 -0
  321. package/dist/esm/runtimes/react/hooks/use-breakpoints.js +1 -1
  322. package/dist/esm/runtimes/react/hooks/use-breakpoints.js.map +1 -1
  323. package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js +1 -1
  324. package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -1
  325. package/dist/esm/runtimes/react/hooks/use-cache-data.js +1 -1
  326. package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -1
  327. package/dist/esm/runtimes/react/hooks/use-component.js +1 -1
  328. package/dist/esm/runtimes/react/hooks/use-component.js.map +1 -1
  329. package/dist/esm/runtimes/react/hooks/use-current-breakpoint.js +15 -0
  330. package/dist/esm/runtimes/react/hooks/use-current-breakpoint.js.map +1 -0
  331. package/dist/esm/runtimes/react/hooks/use-dispatch.js.map +1 -1
  332. package/dist/esm/runtimes/react/hooks/use-document.js +1 -1
  333. package/dist/esm/runtimes/react/hooks/use-document.js.map +1 -1
  334. package/dist/esm/runtimes/react/hooks/use-element-id.js +1 -1
  335. package/dist/esm/runtimes/react/hooks/use-element-id.js.map +1 -1
  336. package/dist/esm/runtimes/react/hooks/use-is-in-builder.js +1 -1
  337. package/dist/esm/runtimes/react/hooks/use-is-in-builder.js.map +1 -1
  338. package/dist/esm/runtimes/react/hooks/use-is-preview.js +9 -0
  339. package/dist/esm/runtimes/react/hooks/use-is-preview.js.map +1 -0
  340. package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -1
  341. package/dist/esm/runtimes/react/hooks/use-resolved-props.js +2 -2
  342. package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  343. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js +1 -1
  344. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  345. package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -1
  346. package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
  347. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  348. package/dist/esm/runtimes/react/host-api-client.js +2 -3
  349. package/dist/esm/runtimes/react/host-api-client.js.map +1 -1
  350. package/dist/esm/runtimes/react/index.js +2 -2
  351. package/dist/esm/runtimes/react/index.js.map +1 -1
  352. package/dist/esm/runtimes/react/lib/resolved-style-to-css.js +38 -0
  353. package/dist/esm/runtimes/react/lib/resolved-style-to-css.js.map +1 -0
  354. package/dist/esm/runtimes/react/poll-box-model.js +1 -1
  355. package/dist/esm/runtimes/react/poll-box-model.js.map +1 -1
  356. package/dist/esm/runtimes/react/react-runtime-core.js +1 -4
  357. package/dist/esm/runtimes/react/react-runtime-core.js.map +1 -1
  358. package/dist/esm/runtimes/react/runtime-core.js +5 -3
  359. package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
  360. package/dist/esm/runtimes/react/testing/react-runtime.js +3 -2
  361. package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -1
  362. package/dist/esm/runtimes/react/utils/can-accept-ref.js.map +1 -1
  363. package/dist/esm/runtimes/react/utils/google-fonts-url.js +23 -0
  364. package/dist/esm/runtimes/react/utils/google-fonts-url.js.map +1 -0
  365. package/dist/esm/state/actions/internal/read-only-actions.js +21 -14
  366. package/dist/esm/state/actions/internal/read-only-actions.js.map +1 -1
  367. package/dist/esm/state/actions/internal/read-write-actions.js +6 -1
  368. package/dist/esm/state/actions/internal/read-write-actions.js.map +1 -1
  369. package/dist/esm/state/actions/internal.js +162 -0
  370. package/dist/esm/state/actions/internal.js.map +1 -0
  371. package/dist/esm/state/builder-api/actions.js +7 -8
  372. package/dist/esm/state/builder-api/actions.js.map +1 -1
  373. package/dist/esm/state/builder-api/api.js +1 -0
  374. package/dist/esm/state/builder-api/api.js.map +1 -0
  375. package/dist/esm/state/builder-api/navigation-listener.js +86 -0
  376. package/dist/esm/state/builder-api/navigation-listener.js.map +1 -0
  377. package/dist/esm/state/host-api.js.map +1 -1
  378. package/dist/esm/state/makeswift-api-client.js +19 -33
  379. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  380. package/dist/esm/state/middleware/{read-write/makeswift-api-client-sync.js → makeswift-api-client-sync.js} +1 -1
  381. package/dist/esm/state/middleware/makeswift-api-client-sync.js.map +1 -0
  382. package/dist/esm/state/middleware/read-write/builder-api/index.js +11 -2
  383. package/dist/esm/state/middleware/read-write/builder-api/index.js.map +1 -1
  384. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js +3 -0
  385. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -1
  386. package/dist/esm/state/middleware/read-write/index.js +16 -0
  387. package/dist/esm/state/middleware/read-write/index.js.map +1 -0
  388. package/dist/esm/state/middleware/{prop-controller-handles.js → read-write/prop-controller-handles.js} +8 -8
  389. package/dist/esm/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  390. package/dist/esm/state/mixins/breakpoint-watch.js +48 -0
  391. package/dist/esm/state/mixins/breakpoint-watch.js.map +1 -0
  392. package/dist/esm/state/modules/api-resources.js +5 -8
  393. package/dist/esm/state/modules/api-resources.js.map +1 -1
  394. package/dist/esm/state/modules/box-models.js +98 -0
  395. package/dist/esm/state/modules/box-models.js.map +1 -0
  396. package/dist/esm/state/modules/breakpoints.js +2 -3
  397. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  398. package/dist/esm/state/modules/builder-edit-mode.js +2 -3
  399. package/dist/esm/state/modules/builder-edit-mode.js.map +1 -1
  400. package/dist/esm/state/modules/components-meta.js +3 -4
  401. package/dist/esm/state/modules/components-meta.js.map +1 -1
  402. package/dist/esm/state/modules/element-imperative-handles.js +35 -0
  403. package/dist/esm/state/modules/element-imperative-handles.js.map +1 -0
  404. package/dist/esm/state/modules/element-trees.js +4 -6
  405. package/dist/esm/state/modules/element-trees.js.map +1 -1
  406. package/dist/esm/state/modules/is-in-builder.js +2 -3
  407. package/dist/esm/state/modules/is-in-builder.js.map +1 -1
  408. package/dist/esm/state/modules/is-preview.js +21 -0
  409. package/dist/esm/state/modules/is-preview.js.map +1 -0
  410. package/dist/esm/state/modules/locale.js +1 -4
  411. package/dist/esm/state/modules/locale.js.map +1 -1
  412. package/dist/esm/state/modules/localized-resources-map.js +3 -5
  413. package/dist/esm/state/modules/localized-resources-map.js.map +1 -1
  414. package/dist/esm/state/modules/pointer.js +22 -0
  415. package/dist/esm/state/modules/pointer.js.map +1 -0
  416. package/dist/esm/state/modules/prop-controllers.js +3 -4
  417. package/dist/esm/state/modules/prop-controllers.js.map +1 -1
  418. package/dist/esm/state/modules/react-components.js +3 -4
  419. package/dist/esm/state/modules/react-components.js.map +1 -1
  420. package/dist/esm/state/modules/read-only-documents.js +6 -4
  421. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  422. package/dist/esm/state/modules/read-write/box-models.js +16 -2
  423. package/dist/esm/state/modules/read-write/box-models.js.map +1 -1
  424. package/dist/esm/state/modules/read-write-documents.js +60 -0
  425. package/dist/esm/state/modules/read-write-documents.js.map +1 -0
  426. package/dist/esm/state/modules/site-version.js +0 -3
  427. package/dist/esm/state/modules/site-version.js.map +1 -1
  428. package/dist/esm/state/react-builder-preview.js +500 -15
  429. package/dist/esm/state/react-builder-preview.js.map +1 -1
  430. package/dist/esm/state/react-page.js +240 -7
  431. package/dist/esm/state/react-page.js.map +1 -1
  432. package/dist/esm/state/read-only-state.js +20 -1
  433. package/dist/esm/state/read-only-state.js.map +1 -1
  434. package/dist/esm/state/read-write-state.js +7 -1
  435. package/dist/esm/state/read-write-state.js.map +1 -1
  436. package/dist/esm/state/shared-api.js.map +1 -1
  437. package/dist/esm/state/store.js +188 -0
  438. package/dist/esm/state/store.js.map +1 -0
  439. package/dist/esm/state/translations/get.js +1 -1
  440. package/dist/esm/state/translations/get.js.map +1 -1
  441. package/dist/esm/state/translations/merge.js +1 -1
  442. package/dist/esm/state/translations/merge.js.map +1 -1
  443. package/dist/esm/state/unified-state.js +1 -0
  444. package/dist/esm/state/unified-state.js.map +1 -0
  445. package/dist/esm/translations/index.js +7 -0
  446. package/dist/esm/translations/index.js.map +1 -0
  447. package/dist/esm/unstable-framework-support/index.js +4 -2
  448. package/dist/esm/unstable-framework-support/index.js.map +1 -1
  449. package/dist/esm/utils/deferred.js +15 -0
  450. package/dist/esm/utils/deferred.js.map +1 -0
  451. package/dist/esm/utils/ref-counted-map.js +96 -0
  452. package/dist/esm/utils/ref-counted-map.js.map +1 -0
  453. package/dist/types/api/client.d.ts +2 -5
  454. package/dist/types/api/client.d.ts.map +1 -1
  455. package/dist/types/api/react.d.ts +82 -0
  456. package/dist/types/api/react.d.ts.map +1 -0
  457. package/dist/types/api-handler/handlers/element-tree.d.ts +1 -1
  458. package/dist/types/api-handler/handlers/element-tree.d.ts.map +1 -1
  459. package/dist/types/api-handler/handlers/merge-translated-data.d.ts +1 -1
  460. package/dist/types/api-handler/handlers/merge-translated-data.d.ts.map +1 -1
  461. package/dist/types/api-handler/handlers/translatable-data.d.ts +1 -1
  462. package/dist/types/api-handler/handlers/translatable-data.d.ts.map +1 -1
  463. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts +201 -0
  464. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts.map +1 -0
  465. package/dist/types/api-handler/handlers/webhook/types.d.ts +4 -4
  466. package/dist/types/builder/host-to-builder-actions.d.ts +2 -2
  467. package/dist/types/builder/host-to-builder-actions.d.ts.map +1 -1
  468. package/dist/types/builder/index.d.ts +2 -2
  469. package/dist/types/builder/index.d.ts.map +1 -1
  470. package/dist/types/builder/serialization.d.ts +23 -0
  471. package/dist/types/builder/serialization.d.ts.map +1 -0
  472. package/dist/types/builder/serialization.test.d.ts +2 -0
  473. package/dist/types/builder/serialization.test.d.ts.map +1 -0
  474. package/dist/types/client/index.d.ts +2 -2
  475. package/dist/types/client/index.d.ts.map +1 -1
  476. package/dist/types/client/tests/client.get-component-snapshots.test.d.ts +2 -0
  477. package/dist/types/client/tests/client.get-component-snapshots.test.d.ts.map +1 -0
  478. package/dist/types/client/tests/client.get-fonts.test.d.ts +2 -0
  479. package/dist/types/client/tests/client.get-fonts.test.d.ts.map +1 -0
  480. package/dist/types/client/tests/client.introspect-many.test.d.ts +2 -0
  481. package/dist/types/client/tests/client.introspect-many.test.d.ts.map +1 -0
  482. package/dist/types/components/builtin/Box/Box.d.ts +1 -1
  483. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  484. package/dist/types/components/builtin/Form/Form.d.ts +1 -1
  485. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  486. package/dist/types/components/hooks/__tests__/useMediaQuery.test.d.ts +3 -0
  487. package/dist/types/components/hooks/__tests__/useMediaQuery.test.d.ts.map +1 -0
  488. package/dist/types/controls/serialization/base/index.d.ts +10 -0
  489. package/dist/types/controls/serialization/base/index.d.ts.map +1 -0
  490. package/dist/types/controls/serialization/base/visitor.d.ts +7 -0
  491. package/dist/types/controls/serialization/base/visitor.d.ts.map +1 -0
  492. package/dist/types/controls/serialization/index.d.ts +10 -0
  493. package/dist/types/controls/serialization/index.d.ts.map +1 -0
  494. package/dist/types/controls/serialization/message-port/function-serialization.d.ts +16 -0
  495. package/dist/types/controls/serialization/message-port/function-serialization.d.ts.map +1 -0
  496. package/dist/types/controls/serialization/message-port/function-serialization.test.d.ts +2 -0
  497. package/dist/types/controls/serialization/message-port/function-serialization.test.d.ts.map +1 -0
  498. package/dist/types/controls/serialization/message-port/index.d.ts +3 -0
  499. package/dist/types/controls/serialization/message-port/index.d.ts.map +1 -0
  500. package/dist/types/controls/serialization/message-port/visitor.d.ts +7 -0
  501. package/dist/types/controls/serialization/message-port/visitor.d.ts.map +1 -0
  502. package/dist/types/locale.d.ts +1 -1
  503. package/dist/types/next/api-handler/config/app-router.d.ts.map +1 -1
  504. package/dist/types/next/api-handler/config/pages-router.test.d.ts +2 -0
  505. package/dist/types/next/api-handler/config/pages-router.test.d.ts.map +1 -0
  506. package/dist/types/next/components/framework-provider/index.d.ts.map +1 -1
  507. package/dist/types/next/components/tests/controls/code-control.test.d.ts +2 -0
  508. package/dist/types/next/components/tests/controls/code-control.test.d.ts.map +1 -0
  509. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts +1 -1
  510. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts.map +1 -1
  511. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +3 -3
  512. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  513. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts +1 -1
  514. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts.map +1 -1
  515. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts +1 -1
  516. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts.map +1 -1
  517. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts +1 -1
  518. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts.map +1 -1
  519. package/dist/types/next/fetch.d.ts +3 -0
  520. package/dist/types/next/fetch.d.ts.map +1 -0
  521. package/dist/types/next/runtime.d.ts +10 -0
  522. package/dist/types/next/runtime.d.ts.map +1 -0
  523. package/dist/types/next/testing/element-data.d.ts +1 -1
  524. package/dist/types/next/testing/element-data.d.ts.map +1 -1
  525. package/dist/types/next/testing/index.d.ts +0 -1
  526. package/dist/types/next/testing/index.d.ts.map +1 -1
  527. package/dist/types/next/testing/page-rendering.d.ts.map +1 -1
  528. package/dist/types/prop-controllers/descriptors.d.ts +1 -1
  529. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  530. package/dist/types/prop-controllers/instances.d.ts +1 -1
  531. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  532. package/dist/types/prop-controllers/serialization.d.ts +228 -0
  533. package/dist/types/prop-controllers/serialization.d.ts.map +1 -0
  534. package/dist/types/runtimes/react/components/Document.d.ts +1 -1
  535. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  536. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +1 -1
  537. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -1
  538. package/dist/types/runtimes/react/components/Element.d.ts +1 -1
  539. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  540. package/dist/types/runtimes/react/components/ElementData.d.ts +1 -1
  541. package/dist/types/runtimes/react/components/ElementData.d.ts.map +1 -1
  542. package/dist/types/runtimes/react/components/ElementReference.d.ts +1 -1
  543. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  544. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts +14 -0
  545. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts.map +1 -0
  546. package/dist/types/runtimes/react/components/MakeswiftFonts.d.ts +7 -0
  547. package/dist/types/runtimes/react/components/MakeswiftFonts.d.ts.map +1 -0
  548. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +1 -1
  549. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  550. package/dist/types/runtimes/react/components/framework-context.d.ts +4 -2
  551. package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
  552. package/dist/types/runtimes/react/components/page/Page.d.ts +1 -1
  553. package/dist/types/runtimes/react/components/page/Page.d.ts.map +1 -1
  554. package/dist/types/runtimes/react/controls.d.ts +2 -2
  555. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  556. package/dist/types/runtimes/react/element-imperative-handle.d.ts +1 -1
  557. package/dist/types/runtimes/react/element-imperative-handle.d.ts.map +1 -1
  558. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts +2 -0
  559. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts.map +1 -0
  560. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts +3 -0
  561. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts.map +1 -0
  562. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +1 -1
  563. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -1
  564. package/dist/types/runtimes/react/hooks/use-component.d.ts +1 -1
  565. package/dist/types/runtimes/react/hooks/use-component.d.ts.map +1 -1
  566. package/dist/types/runtimes/react/hooks/use-current-breakpoint.d.ts +3 -0
  567. package/dist/types/runtimes/react/hooks/use-current-breakpoint.d.ts.map +1 -0
  568. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts +3 -3
  569. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts.map +1 -1
  570. package/dist/types/runtimes/react/hooks/use-document.d.ts +1 -1
  571. package/dist/types/runtimes/react/hooks/use-document.d.ts.map +1 -1
  572. package/dist/types/runtimes/react/hooks/use-is-preview.d.ts +2 -0
  573. package/dist/types/runtimes/react/hooks/use-is-preview.d.ts.map +1 -0
  574. package/dist/types/runtimes/react/hooks/use-register-document.d.ts +1 -1
  575. package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -1
  576. package/dist/types/runtimes/react/hooks/use-selector.d.ts +3 -3
  577. package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -1
  578. package/dist/types/runtimes/react/hooks/use-store.d.ts +4 -4
  579. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  580. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +1 -1
  581. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -1
  582. package/dist/types/runtimes/react/host-api-client.d.ts +1 -1
  583. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -1
  584. package/dist/types/runtimes/react/index.d.ts +1 -1
  585. package/dist/types/runtimes/react/index.d.ts.map +1 -1
  586. package/dist/types/runtimes/react/lib/resolved-style-to-css.d.ts +4 -0
  587. package/dist/types/runtimes/react/lib/resolved-style-to-css.d.ts.map +1 -0
  588. package/dist/types/runtimes/react/poll-box-model.d.ts +1 -1
  589. package/dist/types/runtimes/react/poll-box-model.d.ts.map +1 -1
  590. package/dist/types/runtimes/react/react-runtime-core.d.ts +1 -1
  591. package/dist/types/runtimes/react/react-runtime-core.d.ts.map +1 -1
  592. package/dist/types/runtimes/react/runtime-core.d.ts +1 -2
  593. package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
  594. package/dist/types/runtimes/react/testing/react-runtime.d.ts +4 -1
  595. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -1
  596. package/dist/types/runtimes/react/utils/can-accept-ref.d.ts +1 -1
  597. package/dist/types/runtimes/react/utils/can-accept-ref.d.ts.map +1 -1
  598. package/dist/types/runtimes/react/utils/google-fonts-url.d.ts +6 -0
  599. package/dist/types/runtimes/react/utils/google-fonts-url.d.ts.map +1 -0
  600. package/dist/types/state/__tests__/fixtures/serialized-descriptors-from-builder.d.ts +5 -0
  601. package/dist/types/state/__tests__/fixtures/serialized-descriptors-from-builder.d.ts.map +1 -0
  602. package/dist/types/state/__tests__/fixtures/translatable-content-sample.d.ts +3 -0
  603. package/dist/types/state/__tests__/fixtures/translatable-content-sample.d.ts.map +1 -0
  604. package/dist/types/state/__tests__/get-translatable-content.test.d.ts +2 -0
  605. package/dist/types/state/__tests__/get-translatable-content.test.d.ts.map +1 -0
  606. package/dist/types/state/__tests__/react-page.test.d.ts +2 -0
  607. package/dist/types/state/__tests__/react-page.test.d.ts.map +1 -0
  608. package/dist/types/state/__tests__/store.read-write-state.test.d.ts +2 -0
  609. package/dist/types/state/__tests__/store.read-write-state.test.d.ts.map +1 -0
  610. package/dist/types/state/__tests__/test-store.d.ts +31 -0
  611. package/dist/types/state/__tests__/test-store.d.ts.map +1 -0
  612. package/dist/types/state/actions/index.d.ts +5 -8
  613. package/dist/types/state/actions/index.d.ts.map +1 -1
  614. package/dist/types/state/actions/internal/index.d.ts +4 -2
  615. package/dist/types/state/actions/internal/index.d.ts.map +1 -1
  616. package/dist/types/state/actions/internal/read-only-actions.d.ts +25 -13
  617. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +1 -1
  618. package/dist/types/state/actions/internal/read-write-actions.d.ts +6 -1
  619. package/dist/types/state/actions/internal/read-write-actions.d.ts.map +1 -1
  620. package/dist/types/state/actions/internal.d.ts +181 -0
  621. package/dist/types/state/actions/internal.d.ts.map +1 -0
  622. package/dist/types/state/builder-api/actions.d.ts +14 -14
  623. package/dist/types/state/builder-api/actions.d.ts.map +1 -1
  624. package/dist/types/state/builder-api/api.d.ts +9 -0
  625. package/dist/types/state/builder-api/api.d.ts.map +1 -0
  626. package/dist/types/state/builder-api/navigation-listener.d.ts +3 -0
  627. package/dist/types/state/builder-api/navigation-listener.d.ts.map +1 -0
  628. package/dist/types/state/host-api.d.ts +1 -1
  629. package/dist/types/state/host-api.d.ts.map +1 -1
  630. package/dist/types/state/makeswift-api-client.d.ts +2 -11
  631. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  632. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts +5 -0
  633. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts.map +1 -0
  634. package/dist/types/state/middleware/read-write/builder-api/index.d.ts.map +1 -1
  635. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts.map +1 -1
  636. package/dist/types/state/middleware/read-write/index.d.ts +5 -0
  637. package/dist/types/state/middleware/read-write/index.d.ts.map +1 -0
  638. package/dist/types/state/middleware/{prop-controller-handles.d.ts → read-write/prop-controller-handles.d.ts} +1 -1
  639. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts.map +1 -0
  640. package/dist/types/state/mixins/breakpoint-watch.d.ts +11 -0
  641. package/dist/types/state/mixins/breakpoint-watch.d.ts.map +1 -0
  642. package/dist/types/state/modules/api-resources.d.ts.map +1 -1
  643. package/dist/types/state/modules/box-models.d.ts +23 -0
  644. package/dist/types/state/modules/box-models.d.ts.map +1 -0
  645. package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
  646. package/dist/types/state/modules/builder-edit-mode.d.ts.map +1 -1
  647. package/dist/types/state/modules/components-meta.d.ts.map +1 -1
  648. package/dist/types/state/modules/element-imperative-handles.d.ts +7 -0
  649. package/dist/types/state/modules/element-imperative-handles.d.ts.map +1 -0
  650. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  651. package/dist/types/state/modules/is-in-builder.d.ts.map +1 -1
  652. package/dist/types/state/modules/is-preview.d.ts +6 -0
  653. package/dist/types/state/modules/is-preview.d.ts.map +1 -0
  654. package/dist/types/state/modules/locale.d.ts.map +1 -1
  655. package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -1
  656. package/dist/types/state/modules/pointer.d.ts +12 -0
  657. package/dist/types/state/modules/pointer.d.ts.map +1 -0
  658. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  659. package/dist/types/state/modules/react-components.d.ts.map +1 -1
  660. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  661. package/dist/types/state/modules/read-write/box-models.d.ts +12 -9
  662. package/dist/types/state/modules/read-write/box-models.d.ts.map +1 -1
  663. package/dist/types/state/modules/read-write-documents.d.ts +14 -0
  664. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -0
  665. package/dist/types/state/modules/site-version.d.ts.map +1 -1
  666. package/dist/types/state/react-builder-preview.d.ts +93 -26
  667. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  668. package/dist/types/state/react-page.d.ts +136 -20
  669. package/dist/types/state/react-page.d.ts.map +1 -1
  670. package/dist/types/state/read-only-state.d.ts +10 -1
  671. package/dist/types/state/read-only-state.d.ts.map +1 -1
  672. package/dist/types/state/read-write-state.d.ts +12 -6
  673. package/dist/types/state/read-write-state.d.ts.map +1 -1
  674. package/dist/types/state/shared-api.d.ts.map +1 -1
  675. package/dist/types/state/store.d.ts +86 -0
  676. package/dist/types/state/store.d.ts.map +1 -0
  677. package/dist/types/state/translations/get.d.ts +1 -1
  678. package/dist/types/state/translations/get.d.ts.map +1 -1
  679. package/dist/types/state/translations/merge.d.ts +1 -1
  680. package/dist/types/state/translations/merge.d.ts.map +1 -1
  681. package/dist/types/state/unified-state.d.ts +9 -0
  682. package/dist/types/state/unified-state.d.ts.map +1 -0
  683. package/dist/types/translations/index.d.ts +6 -0
  684. package/dist/types/translations/index.d.ts.map +1 -0
  685. package/dist/types/unstable-framework-support/index.d.ts +1 -1
  686. package/dist/types/unstable-framework-support/index.d.ts.map +1 -1
  687. package/dist/types/utils/__tests__/ref-counted-map.test.d.ts +2 -0
  688. package/dist/types/utils/__tests__/ref-counted-map.test.d.ts.map +1 -0
  689. package/dist/types/utils/deferred.d.ts +7 -0
  690. package/dist/types/utils/deferred.d.ts.map +1 -0
  691. package/dist/types/utils/ref-counted-map.d.ts +32 -0
  692. package/dist/types/utils/ref-counted-map.d.ts.map +1 -0
  693. package/package.json +3 -3
  694. package/dist/cjs/state/middleware/prop-controller-handles.js.map +0 -1
  695. package/dist/cjs/state/middleware/read-write/makeswift-api-client-sync.js.map +0 -1
  696. package/dist/esm/state/middleware/prop-controller-handles.js.map +0 -1
  697. package/dist/esm/state/middleware/read-write/makeswift-api-client-sync.js.map +0 -1
  698. package/dist/types/state/middleware/prop-controller-handles.d.ts.map +0 -1
  699. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts +0 -5
  700. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts.map +0 -1
@@ -1,21 +1,231 @@
1
- import { configureStore as configureReduxStore, combineReducers } from "@reduxjs/toolkit";
1
+ import {
2
+ configureStore as configureReduxStore,
3
+ combineReducers
4
+ } from "@reduxjs/toolkit";
5
+ import { createSelector } from "reselect";
6
+ import {
7
+ createReplacementContext,
8
+ replaceResourceIfNeeded,
9
+ ContextResource
10
+ } from "@makeswift/controls";
11
+ import { copy as copyFromControl, merge } from "../controls/control";
12
+ import * as Documents from "./modules/read-only-documents";
13
+ import * as ElementTrees from "./modules/element-trees";
14
+ import * as ReactComponents from "./modules/react-components";
15
+ import * as ComponentsMeta from "./modules/components-meta";
16
+ import * as PropControllers from "./modules/prop-controllers";
17
+ import * as PropControllerHandles from "./modules/prop-controller-handles";
18
+ import * as IsInBuilder from "./modules/is-in-builder";
19
+ import * as IsPreview from "./modules/is-preview";
20
+ import * as BuilderEditMode from "./modules/builder-edit-mode";
2
21
  import * as Breakpoints from "./modules/breakpoints";
3
- import { middlewareOptions, devToolsConfig } from "./toolkit";
22
+ import { ActionTypes } from "./actions";
23
+ import { changeElementTree, createElementTree, deleteElementTree } from "./actions/internal";
24
+ import { actionMiddleware, middlewareOptions, devToolsConfig } from "./toolkit";
4
25
  import { withSetupTeardown } from "./mixins/setup-teardown";
5
- import { readOnlyElementTreeMiddleware } from "./middleware/read-only-element-tree";
6
- import { reducers } from "./read-only-state";
26
+ import {
27
+ createBaseDocument,
28
+ createDocumentReference,
29
+ getRootElement,
30
+ isElementReference
31
+ } from "./modules/read-only-documents";
32
+ const reducer = combineReducers({
33
+ documents: Documents.reducer,
34
+ elementTrees: ElementTrees.reducer,
35
+ reactComponents: ReactComponents.reducer,
36
+ componentsMeta: ComponentsMeta.reducer,
37
+ propControllers: PropControllers.reducer,
38
+ propControllerHandles: PropControllerHandles.reducer,
39
+ isInBuilder: IsInBuilder.reducer,
40
+ isPreview: IsPreview.reducer,
41
+ builderEditMode: BuilderEditMode.reducer,
42
+ breakpoints: Breakpoints.reducer
43
+ });
44
+ function getDocumentsStateSlice(state) {
45
+ return state.documents;
46
+ }
47
+ function getDocument(state, documentKey) {
48
+ return Documents.getDocument(getDocumentsStateSlice(state), documentKey);
49
+ }
50
+ function getElementTreesSlice(state) {
51
+ return state.elementTrees;
52
+ }
53
+ function getElements(state, documentKey) {
54
+ return ElementTrees.getElements(getElementTreesSlice(state), documentKey);
55
+ }
56
+ function getElementIds(state, documentKey) {
57
+ return ElementTrees.getElementIds(getElementTreesSlice(state), documentKey);
58
+ }
59
+ function getReactComponentsStateSlice(state) {
60
+ return state.reactComponents;
61
+ }
62
+ function getReactComponent(state, type) {
63
+ return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type);
64
+ }
65
+ function getComponentsMetaStateSlice(state) {
66
+ return state.componentsMeta;
67
+ }
68
+ function getComponentMeta(state, type) {
69
+ return ComponentsMeta.getComponentMeta(getComponentsMetaStateSlice(state), type);
70
+ }
71
+ function getPropControllersStateSlice(state) {
72
+ return state.propControllers;
73
+ }
74
+ function getPropControllerDescriptors(state) {
75
+ return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state));
76
+ }
77
+ function getComponentPropControllerDescriptors(state, componentType) {
78
+ return PropControllers.getComponentPropControllerDescriptors(
79
+ getPropControllersStateSlice(state),
80
+ componentType
81
+ );
82
+ }
83
+ function getPropControllerHandlesStateSlice(state) {
84
+ return state.propControllerHandles;
85
+ }
86
+ function getPropControllers(state, documentKey, elementKey) {
87
+ return PropControllerHandles.getPropControllers(
88
+ getPropControllerHandlesStateSlice(state),
89
+ documentKey,
90
+ elementKey
91
+ );
92
+ }
93
+ const getDocumentKeysSortedByDepth = createSelector(
94
+ [getDocumentsStateSlice, getElementTreesSlice],
95
+ (documents, elementTrees) => {
96
+ return [...documents.keys()].sort((a, b) => elementTrees.get(a)?.elements.has(b) ? -1 : 1);
97
+ }
98
+ );
99
+ function getElement(state, documentKey, elementKey) {
100
+ return ElementTrees.getElement(getElementTreesSlice(state), documentKey, elementKey);
101
+ }
102
+ function getElementId(state, documentKey, elementKey) {
103
+ return ElementTrees.getElementId(getElementTreesSlice(state), documentKey, elementKey);
104
+ }
105
+ function getElementPropControllerDescriptors(state, documentKey, elementKey) {
106
+ const element = getElement(state, documentKey, elementKey);
107
+ if (element == null || Documents.isElementReference(element))
108
+ return null;
109
+ return getComponentPropControllerDescriptors(state, element.type);
110
+ }
111
+ function copyElementTree(state, elementTree, replacementContext) {
112
+ function copyElementTreeNode(state2, replacementContext2) {
113
+ return function(node) {
114
+ const context = {
115
+ replacementContext: replacementContext2,
116
+ copyElement: copyElementTreeNode(state2, replacementContext2)
117
+ };
118
+ if (Documents.isElementReference(node)) {
119
+ return {
120
+ ...node,
121
+ value: replaceResourceIfNeeded(ContextResource.GlobalElement, node.value, context)
122
+ };
123
+ }
124
+ const descriptors = getComponentPropControllerDescriptors(state2, node.type);
125
+ if (descriptors == null)
126
+ return node;
127
+ for (const [propKey, descriptor] of Object.entries(descriptors)) {
128
+ node.props[propKey] = copyFromControl(descriptor, node.props[propKey], context);
129
+ }
130
+ return node;
131
+ };
132
+ }
133
+ const copy = JSON.parse(JSON.stringify(elementTree));
134
+ return copyElementTreeNode(state, createReplacementContext(replacementContext))(copy);
135
+ }
136
+ function mergeElement(state, baseElement, overrideElement) {
137
+ if (baseElement.type !== overrideElement.type || baseElement.key !== overrideElement.key) {
138
+ throw new Error(`Can't merge elements of different types or keys`);
139
+ }
140
+ if (Documents.isElementReference(overrideElement))
141
+ return overrideElement;
142
+ if (Documents.isElementReference(baseElement))
143
+ return baseElement;
144
+ const elementDescriptors = getPropControllerDescriptors(state);
145
+ const descriptors = elementDescriptors.get(baseElement.type);
146
+ if (descriptors == null) {
147
+ throw new Error(
148
+ `Can't merge element of type "${baseElement.type}" because it has no descriptors`
149
+ );
150
+ }
151
+ const mergedProps = {};
152
+ for (const propName of Object.keys(descriptors)) {
153
+ const descriptor = descriptors[propName];
154
+ const context = {
155
+ mergeElement(base, override) {
156
+ return mergeElement(state, base, override);
157
+ }
158
+ };
159
+ mergedProps[propName] = merge(
160
+ descriptor,
161
+ baseElement.props[propName],
162
+ overrideElement.props[propName],
163
+ context
164
+ );
165
+ }
166
+ return { ...baseElement, props: mergedProps };
167
+ }
168
+ function getIsInBuilder(state) {
169
+ return state.isInBuilder;
170
+ }
171
+ function getIsPreview(state) {
172
+ return IsPreview.getIsPreview(state.isPreview);
173
+ }
174
+ function getBuilderEditMode(state) {
175
+ return state.builderEditMode;
176
+ }
177
+ function getBreakpoints(state) {
178
+ return state.breakpoints;
179
+ }
180
+ function elementTreeMiddleware() {
181
+ return actionMiddleware(({ dispatch, getState }) => (next) => {
182
+ return (action) => {
183
+ switch (action.type) {
184
+ case ActionTypes.REGISTER_DOCUMENT:
185
+ dispatch(
186
+ createElementTree({
187
+ document: action.payload.document,
188
+ descriptors: getPropControllerDescriptors(getState())
189
+ })
190
+ );
191
+ break;
192
+ case ActionTypes.CHANGE_DOCUMENT: {
193
+ const { documentKey, operation } = action.payload;
194
+ const oldDocument = getDocument(getState(), documentKey);
195
+ const result = next(action);
196
+ const newDocument = getDocument(getState(), documentKey);
197
+ if (oldDocument != null && newDocument != null && newDocument !== oldDocument) {
198
+ dispatch(
199
+ changeElementTree({
200
+ oldDocument,
201
+ newDocument,
202
+ descriptors: getPropControllerDescriptors(getState()),
203
+ operation
204
+ })
205
+ );
206
+ }
207
+ return result;
208
+ }
209
+ case ActionTypes.UNREGISTER_DOCUMENT:
210
+ dispatch(deleteElementTree(action.payload));
211
+ break;
212
+ }
213
+ return next(action);
214
+ };
215
+ });
216
+ }
7
217
  function configureStore({
8
218
  name,
9
219
  preloadedState,
10
220
  breakpoints
11
221
  }) {
12
222
  return configureReduxStore({
13
- reducer: combineReducers(reducers),
223
+ reducer,
14
224
  preloadedState: {
15
225
  ...preloadedState,
16
226
  breakpoints: Breakpoints.getInitialState(breakpoints ?? preloadedState?.breakpoints)
17
227
  },
18
- middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareOptions).concat(readOnlyElementTreeMiddleware()),
228
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareOptions).concat(elementTreeMiddleware()),
19
229
  enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat(
20
230
  withSetupTeardown(
21
231
  () => {
@@ -30,6 +240,29 @@ function configureStore({
30
240
  });
31
241
  }
32
242
  export {
33
- configureStore
243
+ configureStore,
244
+ copyElementTree,
245
+ createBaseDocument,
246
+ createDocumentReference,
247
+ elementTreeMiddleware,
248
+ getBreakpoints,
249
+ getBuilderEditMode,
250
+ getComponentMeta,
251
+ getComponentPropControllerDescriptors,
252
+ getDocument,
253
+ getDocumentKeysSortedByDepth,
254
+ getElement,
255
+ getElementId,
256
+ getElementIds,
257
+ getElementPropControllerDescriptors,
258
+ getElements,
259
+ getIsInBuilder,
260
+ getIsPreview,
261
+ getPropControllerDescriptors,
262
+ getPropControllers,
263
+ getReactComponent,
264
+ getRootElement,
265
+ isElementReference,
266
+ mergeElement
34
267
  };
35
268
  //# sourceMappingURL=react-page.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/state/react-page.ts"],"sourcesContent":["import { configureStore as configureReduxStore, combineReducers } from '@reduxjs/toolkit'\n\nimport * as Breakpoints from './modules/breakpoints'\n\nimport { middlewareOptions, devToolsConfig } from './toolkit'\n\nimport { withSetupTeardown } from './mixins/setup-teardown'\nimport { readOnlyElementTreeMiddleware } from './middleware/read-only-element-tree'\n\nimport { type State, reducers } from './read-only-state'\n\nexport function configureStore({\n name,\n preloadedState,\n breakpoints,\n}: {\n name: string\n preloadedState: Partial<State> | null\n breakpoints?: Breakpoints.State\n}) {\n return configureReduxStore({\n reducer: combineReducers(reducers),\n preloadedState: {\n ...preloadedState,\n breakpoints: Breakpoints.getInitialState(breakpoints ?? preloadedState?.breakpoints),\n },\n\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware(middlewareOptions).concat(readOnlyElementTreeMiddleware()),\n\n enhancers: getDefaultEnhancers =>\n getDefaultEnhancers().concat(\n withSetupTeardown(\n () => {},\n () => {},\n ),\n ),\n\n devTools: devToolsConfig({\n name: `${name} (${new Date().toISOString()})`,\n }),\n })\n}\n\nexport type Store = ReturnType<typeof configureStore>\n"],"mappings":"AAAA,SAAS,kBAAkB,qBAAqB,uBAAuB;AAEvE,YAAY,iBAAiB;AAE7B,SAAS,mBAAmB,sBAAsB;AAElD,SAAS,yBAAyB;AAClC,SAAS,qCAAqC;AAE9C,SAAqB,gBAAgB;AAE9B,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SAAO,oBAAoB;AAAA,IACzB,SAAS,gBAAgB,QAAQ;AAAA,IACjC,gBAAgB;AAAA,MACd,GAAG;AAAA,MACH,aAAa,YAAY,gBAAgB,eAAe,gBAAgB,WAAW;AAAA,IACrF;AAAA,IAEA,YAAY,0BACV,qBAAqB,iBAAiB,EAAE,OAAO,8BAA8B,CAAC;AAAA,IAEhF,WAAW,yBACT,oBAAoB,EAAE;AAAA,MACpB;AAAA,QACE,MAAM;AAAA,QAAC;AAAA,QACP,MAAM;AAAA,QAAC;AAAA,MACT;AAAA,IACF;AAAA,IAEF,UAAU,eAAe;AAAA,MACvB,MAAM,GAAG,IAAI,MAAK,oBAAI,KAAK,GAAE,YAAY,CAAC;AAAA,IAC5C,CAAC;AAAA,EACH,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/state/react-page.ts"],"sourcesContent":["import {\n configureStore as configureReduxStore,\n combineReducers,\n type ThunkDispatch,\n type Middleware,\n} from '@reduxjs/toolkit'\n\nimport { createSelector } from 'reselect'\n\nimport {\n createReplacementContext,\n type SerializableReplacementContext,\n type ReplacementContext,\n type MergeContext,\n CopyContext,\n replaceResourceIfNeeded,\n ContextResource,\n} from '@makeswift/controls'\n\nimport { copy as copyFromControl, merge } from '../controls/control'\n\nimport * as Documents from './modules/read-only-documents'\nimport * as ElementTrees from './modules/element-trees'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsPreview from './modules/is-preview'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Breakpoints from './modules/breakpoints'\n\nimport { type Action, ActionTypes } from './actions'\nimport { changeElementTree, createElementTree, deleteElementTree } from './actions/internal'\n\nimport { actionMiddleware, middlewareOptions, devToolsConfig } from './toolkit'\n\nimport { withSetupTeardown } from './mixins/setup-teardown'\n\nexport type {\n Data,\n Document,\n DocumentReference,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\n\nexport {\n createBaseDocument,\n createDocumentReference,\n getRootElement,\n isElementReference,\n} from './modules/read-only-documents'\n\nexport type { ComponentType } from './modules/react-components'\nexport type { ComponentMeta } from './modules/components-meta'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n elementTrees: ElementTrees.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n isPreview: IsPreview.reducer,\n builderEditMode: BuilderEditMode.reducer,\n breakpoints: Breakpoints.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getElementTreesSlice(state: State): ElementTrees.State {\n return state.elementTrees\n}\n\nexport function getElements(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elements'] {\n return ElementTrees.getElements(getElementTreesSlice(state), documentKey)\n}\n\nexport function getElementIds(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elementIds'] {\n return ElementTrees.getElementIds(getElementTreesSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nexport function getComponentMeta(state: State, type: string): ComponentsMeta.ComponentMeta | null {\n return ComponentsMeta.getComponentMeta(getComponentsMetaStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nexport function getPropControllerDescriptors(state: State): PropControllers.State {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): PropControllers.DescriptorsByProp | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nexport function getPropControllers(state: State, documentKey: string, elementKey: string) {\n return PropControllerHandles.getPropControllers(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\n/**\n * Returns all document keys sorted by depth, i.e., parent documents come before child documents.\n */\nexport const getDocumentKeysSortedByDepth: (state: State) => string[] = createSelector(\n [getDocumentsStateSlice, getElementTreesSlice],\n (documents, elementTrees) => {\n return [...documents.keys()].sort((a, b) => (elementTrees.get(a)?.elements.has(b) ? -1 : 1))\n },\n)\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return ElementTrees.getElement(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n return ElementTrees.getElementId(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\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\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\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport function getIsPreview(state: State): boolean {\n return IsPreview.getIsPreview(state.isPreview)\n}\n\nexport function getBuilderEditMode(state: State): BuilderEditMode.State {\n return state.builderEditMode\n}\n\nexport function getBreakpoints(state: State): Breakpoints.State {\n return state.breakpoints\n}\n\nexport function elementTreeMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(({ dispatch, getState }) => next => {\n return action => {\n switch (action.type) {\n case ActionTypes.REGISTER_DOCUMENT:\n dispatch(\n createElementTree({\n document: action.payload.document,\n descriptors: getPropControllerDescriptors(getState()),\n }),\n )\n break\n\n case ActionTypes.CHANGE_DOCUMENT: {\n const { documentKey, operation } = action.payload\n\n const oldDocument = getDocument(getState(), documentKey)\n const result = next(action)\n const newDocument = getDocument(getState(), documentKey)\n\n if (oldDocument != null && newDocument != null && newDocument !== oldDocument) {\n dispatch(\n changeElementTree({\n oldDocument,\n newDocument,\n descriptors: getPropControllerDescriptors(getState()),\n operation,\n }),\n )\n }\n\n return result\n }\n\n case ActionTypes.UNREGISTER_DOCUMENT:\n dispatch(deleteElementTree(action.payload))\n break\n }\n\n return next(action)\n }\n })\n}\n\nexport function configureStore({\n name,\n preloadedState,\n breakpoints,\n}: {\n name: string\n preloadedState: Partial<State> | null\n breakpoints?: Breakpoints.State\n}) {\n return configureReduxStore({\n reducer,\n preloadedState: {\n ...preloadedState,\n breakpoints: Breakpoints.getInitialState(breakpoints ?? preloadedState?.breakpoints),\n },\n\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware(middlewareOptions).concat(elementTreeMiddleware()),\n\n enhancers: getDefaultEnhancers =>\n getDefaultEnhancers().concat(\n withSetupTeardown(\n () => {},\n () => {},\n ),\n ),\n\n devTools: devToolsConfig({\n name: `${name} (${new Date().toISOString()})`,\n }),\n })\n}\n\nexport type Store = ReturnType<typeof configureStore>\n"],"mappings":"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","names":["state","replacementContext"]}
@@ -1,4 +1,6 @@
1
1
  import { createSelector } from "reselect";
2
+ import * as SiteVersion from "./modules/site-version";
3
+ import * as Locale from "./modules/locale";
2
4
  import * as Documents from "./modules/read-only-documents";
3
5
  import * as ElementTrees from "./modules/element-trees";
4
6
  import * as ReactComponents from "./modules/react-components";
@@ -16,7 +18,9 @@ import {
16
18
  isElementReference
17
19
  } from "./modules/read-only-documents";
18
20
  const reducers = {
21
+ siteVersion: SiteVersion.reducer,
19
22
  isReadOnly: IsReadOnly.reducer,
23
+ locale: Locale.reducer,
20
24
  documents: Documents.reducer,
21
25
  elementTrees: ElementTrees.reducer,
22
26
  reactComponents: ReactComponents.reducer,
@@ -125,14 +129,28 @@ function getIsReadOnly(state) {
125
129
  function getBuilderEditMode(state) {
126
130
  return state.builderEditMode;
127
131
  }
128
- function getBreakpoints(state) {
132
+ function getBreakpointsStateSlice(state) {
129
133
  return state.breakpoints;
130
134
  }
135
+ function getBreakpoints(state) {
136
+ return getBreakpointsStateSlice(state).breakpoints;
137
+ }
138
+ function getBaseBreakpoint(state) {
139
+ return getBreakpointsStateSlice(state).baseBreakpoint;
140
+ }
141
+ function getClientBreakpoint(state) {
142
+ return getBreakpointsStateSlice(state).clientBreakpoint;
143
+ }
144
+ function getLocale(state) {
145
+ return state.locale;
146
+ }
131
147
  export {
132
148
  createBaseDocument,
133
149
  createDocumentReference,
150
+ getBaseBreakpoint,
134
151
  getBreakpoints,
135
152
  getBuilderEditMode,
153
+ getClientBreakpoint,
136
154
  getComponentMeta,
137
155
  getComponentPropControllerDescriptors,
138
156
  getComponentsMeta,
@@ -145,6 +163,7 @@ export {
145
163
  getElements,
146
164
  getIsInBuilder,
147
165
  getIsReadOnly,
166
+ getLocale,
148
167
  getPropController,
149
168
  getPropControllerDescriptors,
150
169
  getPropControllers,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/state/read-only-state.ts"],"sourcesContent":["import { type ThunkDispatch } from '@reduxjs/toolkit'\n\nimport { createSelector } from 'reselect'\n\nimport * as Documents from './modules/read-only-documents'\nimport * as ElementTrees from './modules/element-trees'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsReadOnly from './modules/is-read-only'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Breakpoints from './modules/breakpoints'\n\nimport { type Action } from './actions'\n\nexport type {\n Data,\n Document,\n DocumentReference,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\n\nexport {\n createBaseDocument,\n createDocumentReference,\n getRootElement,\n isElementReference,\n} from './modules/read-only-documents'\n\nexport type { ComponentType } from './modules/react-components'\nexport type { ComponentMeta } from './modules/components-meta'\n\nexport const reducers = {\n isReadOnly: IsReadOnly.reducer,\n documents: Documents.reducer,\n elementTrees: ElementTrees.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n builderEditMode: BuilderEditMode.reducer,\n breakpoints: Breakpoints.reducer,\n}\n\nexport type State = {\n isReadOnly: IsReadOnly.State\n documents: Documents.State\n elementTrees: ElementTrees.State\n reactComponents: ReactComponents.State\n componentsMeta: ComponentsMeta.State\n propControllers: PropControllers.State\n propControllerHandles: PropControllerHandles.State\n isInBuilder: IsInBuilder.State\n builderEditMode: BuilderEditMode.State\n breakpoints: Breakpoints.State\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getElementTreesSlice(state: State): ElementTrees.State {\n return state.elementTrees\n}\n\nexport function getElements(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elements'] {\n return ElementTrees.getElements(getElementTreesSlice(state), documentKey)\n}\n\nexport function getElementIds(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elementIds'] {\n return ElementTrees.getElementIds(getElementTreesSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nexport function getComponentMeta(state: State, type: string): ComponentsMeta.ComponentMeta | null {\n return ComponentsMeta.getComponentMeta(getComponentsMetaStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nexport function getPropControllerDescriptors(state: State): PropControllers.State {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): PropControllers.DescriptorsByProp | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nexport function getPropControllers(\n state: State,\n { documentKey, elementKey }: { documentKey: string; elementKey: string },\n) {\n return PropControllerHandles.getPropControllers(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nexport function getPropControllersHandle(\n state: State,\n { documentKey, elementKey }: { documentKey: string; elementKey: string },\n) {\n return PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nexport function getPropController(\n state: State,\n {\n documentKey,\n elementKey,\n propName,\n }: { documentKey: string; elementKey: string; propName: string },\n) {\n return PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n propName,\n )\n}\n\n/**\n * Returns all document keys sorted by depth, i.e., parent documents come before child documents.\n */\nexport const getDocumentKeysSortedByDepth: (state: State) => string[] = createSelector(\n [getDocumentsStateSlice, getElementTreesSlice],\n (documents, elementTrees) => {\n return [...documents.keys()].sort((a, b) => (elementTrees.get(a)?.elements.has(b) ? -1 : 1))\n },\n)\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return ElementTrees.getElement(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n return ElementTrees.getElementId(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport function getIsReadOnly(state: State): boolean {\n return state.isReadOnly\n}\n\nexport function getBuilderEditMode(state: State): BuilderEditMode.State {\n return state.builderEditMode\n}\n\nexport function getBreakpoints(state: State): Breakpoints.State {\n return state.breakpoints\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/state/read-only-state.ts"],"sourcesContent":["import { type ThunkDispatch } from '@reduxjs/toolkit'\n\nimport { createSelector } from 'reselect'\n\nimport * as SiteVersion from './modules/site-version'\nimport * as Locale from './modules/locale'\nimport * as Documents from './modules/read-only-documents'\nimport * as ElementTrees from './modules/element-trees'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsReadOnly from './modules/is-read-only'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Breakpoints from './modules/breakpoints'\n\nimport { type Action } from './actions'\n\nexport type {\n Data,\n Document,\n DocumentReference,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\n\nexport {\n createBaseDocument,\n createDocumentReference,\n getRootElement,\n isElementReference,\n} from './modules/read-only-documents'\n\nexport type { ComponentType } from './modules/react-components'\nexport type { ComponentMeta } from './modules/components-meta'\n\nexport const reducers = {\n siteVersion: SiteVersion.reducer,\n isReadOnly: IsReadOnly.reducer,\n locale: Locale.reducer,\n documents: Documents.reducer,\n elementTrees: ElementTrees.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n builderEditMode: BuilderEditMode.reducer,\n breakpoints: Breakpoints.reducer,\n}\n\nexport type State = {\n siteVersion: SiteVersion.State\n isReadOnly: IsReadOnly.State\n locale: Locale.State\n documents: Documents.State\n elementTrees: ElementTrees.State\n reactComponents: ReactComponents.State\n componentsMeta: ComponentsMeta.State\n propControllers: PropControllers.State\n propControllerHandles: PropControllerHandles.State\n isInBuilder: IsInBuilder.State\n builderEditMode: BuilderEditMode.State\n breakpoints: Breakpoints.State\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getElementTreesSlice(state: State): ElementTrees.State {\n return state.elementTrees\n}\n\nexport function getElements(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elements'] {\n return ElementTrees.getElements(getElementTreesSlice(state), documentKey)\n}\n\nexport function getElementIds(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elementIds'] {\n return ElementTrees.getElementIds(getElementTreesSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nexport function getComponentMeta(state: State, type: string): ComponentsMeta.ComponentMeta | null {\n return ComponentsMeta.getComponentMeta(getComponentsMetaStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nexport function getPropControllerDescriptors(state: State): PropControllers.State {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): PropControllers.DescriptorsByProp | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nexport function getPropControllers(\n state: State,\n { documentKey, elementKey }: { documentKey: string; elementKey: string },\n) {\n return PropControllerHandles.getPropControllers(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nexport function getPropControllersHandle(\n state: State,\n { documentKey, elementKey }: { documentKey: string; elementKey: string },\n) {\n return PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nexport function getPropController(\n state: State,\n {\n documentKey,\n elementKey,\n propName,\n }: { documentKey: string; elementKey: string; propName: string },\n) {\n return PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n propName,\n )\n}\n\n/**\n * Returns all document keys sorted by depth, i.e., parent documents come before child documents.\n */\nexport const getDocumentKeysSortedByDepth: (state: State) => string[] = createSelector(\n [getDocumentsStateSlice, getElementTreesSlice],\n (documents, elementTrees) => {\n return [...documents.keys()].sort((a, b) => (elementTrees.get(a)?.elements.has(b) ? -1 : 1))\n },\n)\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return ElementTrees.getElement(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n return ElementTrees.getElementId(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport function getIsReadOnly(state: State): boolean {\n return state.isReadOnly\n}\n\nexport function getBuilderEditMode(state: State): BuilderEditMode.State {\n return state.builderEditMode\n}\n\nfunction getBreakpointsStateSlice(state: State): Breakpoints.State {\n return state.breakpoints\n}\n\nexport function getBreakpoints(state: State): Breakpoints.Breakpoints {\n return getBreakpointsStateSlice(state).breakpoints\n}\n\nexport function getBaseBreakpoint(state: State): Breakpoints.BreakpointId {\n return getBreakpointsStateSlice(state).baseBreakpoint\n}\n\nexport function getClientBreakpoint(state: State): Breakpoints.BreakpointId {\n return getBreakpointsStateSlice(state).clientBreakpoint\n}\n\nexport function getLocale(state: State): string | null {\n return state.locale\n}\n"],"mappings":"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","names":[]}
@@ -59,6 +59,11 @@ function getElementImperativeHandlesContainingElement(state, element) {
59
59
  }
60
60
  return filteredElementImperativeHandles;
61
61
  }
62
+ function setupBuilderProxy(builderProxy) {
63
+ return (dispatch) => {
64
+ return builderProxy.setup({ onHostAction: (action) => dispatch(action) });
65
+ };
66
+ }
62
67
  export {
63
68
  createBox,
64
69
  createRootReducer,
@@ -71,6 +76,7 @@ export {
71
76
  getElementImperativeHandlesContainingElement,
72
77
  getMeasurables,
73
78
  getPointer,
74
- parse
79
+ parse,
80
+ setupBuilderProxy
75
81
  };
76
82
  //# sourceMappingURL=read-write-state.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/state/read-write-state.ts"],"sourcesContent":["import { combineReducers, type ThunkDispatch } from '@reduxjs/toolkit'\n\nimport * as Documents from './modules/read-write/read-write-documents'\nimport * as BoxModels from './modules/read-write/box-models'\nimport * as Pointer from './modules/read-write/pointer'\nimport * as ElementImperativeHandles from './modules/read-write/element-imperative-handles'\n\nimport { type Action } from './actions'\n\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\n\nimport * as ReadOnlyState from './read-only-state'\n\nexport type { Operation } from './modules/read-write/read-write-documents'\nexport type { BoxModelHandle } from './modules/read-write/box-models'\nexport { createBox, getBox, parse } from './modules/read-write/box-models'\n\nconst reducers = {\n ...ReadOnlyState.reducers,\n documents: Documents.reducer,\n boxModels: BoxModels.reducer,\n pointer: Pointer.reducer,\n elementImperativeHandles: ElementImperativeHandles.reducer,\n}\n\nexport function createRootReducer() {\n return combineReducers(reducers)\n}\n\nexport type State = Omit<ReadOnlyState.State, 'documents'> & {\n documents: Documents.State\n boxModels: BoxModels.State\n pointer: Pointer.State\n elementImperativeHandles: ElementImperativeHandles.State\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocuments(state: State): Documents.State {\n return Documents.getDocuments(getDocumentsStateSlice(state))\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getBoxModelsStateSlice(state: State): BoxModels.State {\n return state.boxModels\n}\n\nexport function getMeasurables(state: State): Map<string, Map<string, BoxModels.Measurable>> {\n return BoxModels.getMeasurables(getBoxModelsStateSlice(state))\n}\n\nexport function getBoxModels(state: State): Map<string, Map<string, BoxModels.BoxModel>> {\n return BoxModels.getBoxModels(getBoxModelsStateSlice(state))\n}\n\nexport function getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModels.BoxModel | null {\n return BoxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey)\n}\n\nexport function getPointer(state: State): Pointer.Point | null {\n return Pointer.getPointer(state.pointer)\n}\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return ElementImperativeHandles.getElementImperativeHandles(state.elementImperativeHandles)\n}\n\nexport function getElementImperativeHandlesContainingElement(\n state: State,\n element: Element,\n): Map<string, Map<string, ElementImperativeHandle>> {\n const elementImperativeHandles = getElementImperativeHandles(state)\n const filteredElementImperativeHandles = new Map<string, Map<string, ElementImperativeHandle>>()\n\n for (const [documentKey, byElementKey] of elementImperativeHandles) {\n const filteredByElementKey = new Map<string, ElementImperativeHandle>()\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n const handleElement = elementImperativeHandle.getDomNode()\n\n if (handleElement?.contains(element)) {\n filteredByElementKey.set(elementKey, elementImperativeHandle)\n }\n }\n\n if (filteredByElementKey.size > 0) {\n filteredElementImperativeHandles.set(documentKey, filteredByElementKey)\n }\n }\n\n return filteredElementImperativeHandles\n}\n"],"mappings":"AAAA,SAAS,uBAA2C;AAEpD,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B,YAAY,aAAa;AACzB,YAAY,8BAA8B;AAM1C,YAAY,mBAAmB;AAI/B,SAAS,WAAW,QAAQ,aAAa;AAEzC,MAAM,WAAW;AAAA,EACf,GAAG,cAAc;AAAA,EACjB,WAAW,UAAU;AAAA,EACrB,WAAW,UAAU;AAAA,EACrB,SAAS,QAAQ;AAAA,EACjB,0BAA0B,yBAAyB;AACrD;AAEO,SAAS,oBAAoB;AAClC,SAAO,gBAAgB,QAAQ;AACjC;AAWA,SAAS,uBAAuB,OAA+B;AAC7D,SAAO,MAAM;AACf;AAEO,SAAS,aAAa,OAA+B;AAC1D,SAAO,UAAU,aAAa,uBAAuB,KAAK,CAAC;AAC7D;AAEO,SAAS,YAAY,OAAc,aAAgD;AACxF,SAAO,UAAU,YAAY,uBAAuB,KAAK,GAAG,WAAW;AACzE;AAEA,SAAS,uBAAuB,OAA+B;AAC7D,SAAO,MAAM;AACf;AAEO,SAAS,eAAe,OAA8D;AAC3F,SAAO,UAAU,eAAe,uBAAuB,KAAK,CAAC;AAC/D;AAEO,SAAS,aAAa,OAA4D;AACvF,SAAO,UAAU,aAAa,uBAAuB,KAAK,CAAC;AAC7D;AAEO,SAAS,YACd,OACA,aACA,YAC2B;AAC3B,SAAO,UAAU,YAAY,uBAAuB,KAAK,GAAG,aAAa,UAAU;AACrF;AAEO,SAAS,WAAW,OAAoC;AAC7D,SAAO,QAAQ,WAAW,MAAM,OAAO;AACzC;AAEO,SAAS,4BACd,OACmD;AACnD,SAAO,yBAAyB,4BAA4B,MAAM,wBAAwB;AAC5F;AAEO,SAAS,6CACd,OACA,SACmD;AACnD,QAAM,2BAA2B,4BAA4B,KAAK;AAClE,QAAM,mCAAmC,oBAAI,IAAkD;AAE/F,aAAW,CAAC,aAAa,YAAY,KAAK,0BAA0B;AAClE,UAAM,uBAAuB,oBAAI,IAAqC;AAEtE,eAAW,CAAC,YAAY,uBAAuB,KAAK,cAAc;AAChE,YAAM,gBAAgB,wBAAwB,WAAW;AAEzD,UAAI,eAAe,SAAS,OAAO,GAAG;AACpC,6BAAqB,IAAI,YAAY,uBAAuB;AAAA,MAC9D;AAAA,IACF;AAEA,QAAI,qBAAqB,OAAO,GAAG;AACjC,uCAAiC,IAAI,aAAa,oBAAoB;AAAA,IACxE;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/state/read-write-state.ts"],"sourcesContent":["import { combineReducers, type ThunkAction, type ThunkDispatch } from '@reduxjs/toolkit'\n\nimport * as Documents from './modules/read-write/read-write-documents'\nimport * as BoxModels from './modules/read-write/box-models'\nimport * as Pointer from './modules/read-write/pointer'\nimport * as ElementImperativeHandles from './modules/read-write/element-imperative-handles'\n\nimport { type Action } from './actions'\n\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\n\nimport { BuilderAPIProxy } from './builder-api/proxy'\nimport * as ReadOnlyState from './read-only-state'\n\nexport type { Operation } from './modules/read-write/read-write-documents'\nexport type { BoxModelHandle } from './modules/read-write/box-models'\nexport { createBox, getBox, parse } from './modules/read-write/box-models'\n\nconst reducers = {\n ...ReadOnlyState.reducers,\n documents: Documents.reducer,\n boxModels: BoxModels.reducer,\n pointer: Pointer.reducer,\n elementImperativeHandles: ElementImperativeHandles.reducer,\n}\n\nexport function createRootReducer() {\n return combineReducers(reducers)\n}\n\nexport type State = Omit<ReadOnlyState.State, 'documents'> & {\n documents: Documents.State\n boxModels: BoxModels.State\n pointer: Pointer.State\n elementImperativeHandles: ElementImperativeHandles.State\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocuments(state: State): Documents.State {\n return Documents.getDocuments(getDocumentsStateSlice(state))\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getBoxModelsStateSlice(state: State): BoxModels.State {\n return state.boxModels\n}\n\nexport function getMeasurables(state: State): Map<string, Map<string, BoxModels.Measurable>> {\n return BoxModels.getMeasurables(getBoxModelsStateSlice(state))\n}\n\nexport function getBoxModels(state: State): Map<string, Map<string, BoxModels.BoxDisplayModel>> {\n return BoxModels.getBoxModels(getBoxModelsStateSlice(state))\n}\n\nexport function getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModels.BoxDisplayModel | null {\n return BoxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey)\n}\n\nexport function getPointer(state: State): Pointer.Point | null {\n return Pointer.getPointer(state.pointer)\n}\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return ElementImperativeHandles.getElementImperativeHandles(state.elementImperativeHandles)\n}\n\nexport function getElementImperativeHandlesContainingElement(\n state: State,\n element: Element,\n): Map<string, Map<string, ElementImperativeHandle>> {\n const elementImperativeHandles = getElementImperativeHandles(state)\n const filteredElementImperativeHandles = new Map<string, Map<string, ElementImperativeHandle>>()\n\n for (const [documentKey, byElementKey] of elementImperativeHandles) {\n const filteredByElementKey = new Map<string, ElementImperativeHandle>()\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n const handleElement = elementImperativeHandle.getDomNode()\n\n if (handleElement?.contains(element)) {\n filteredByElementKey.set(elementKey, elementImperativeHandle)\n }\n }\n\n if (filteredByElementKey.size > 0) {\n filteredElementImperativeHandles.set(documentKey, filteredByElementKey)\n }\n }\n\n return filteredElementImperativeHandles\n}\n\nexport function setupBuilderProxy(\n builderProxy: BuilderAPIProxy,\n): ThunkAction<VoidFunction, State, unknown, Action> {\n return dispatch => {\n return builderProxy.setup({ onHostAction: action => dispatch(action) })\n }\n}\n"],"mappings":"AAAA,SAAS,uBAA6D;AAEtE,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B,YAAY,aAAa;AACzB,YAAY,8BAA8B;AAO1C,YAAY,mBAAmB;AAI/B,SAAS,WAAW,QAAQ,aAAa;AAEzC,MAAM,WAAW;AAAA,EACf,GAAG,cAAc;AAAA,EACjB,WAAW,UAAU;AAAA,EACrB,WAAW,UAAU;AAAA,EACrB,SAAS,QAAQ;AAAA,EACjB,0BAA0B,yBAAyB;AACrD;AAEO,SAAS,oBAAoB;AAClC,SAAO,gBAAgB,QAAQ;AACjC;AAWA,SAAS,uBAAuB,OAA+B;AAC7D,SAAO,MAAM;AACf;AAEO,SAAS,aAAa,OAA+B;AAC1D,SAAO,UAAU,aAAa,uBAAuB,KAAK,CAAC;AAC7D;AAEO,SAAS,YAAY,OAAc,aAAgD;AACxF,SAAO,UAAU,YAAY,uBAAuB,KAAK,GAAG,WAAW;AACzE;AAEA,SAAS,uBAAuB,OAA+B;AAC7D,SAAO,MAAM;AACf;AAEO,SAAS,eAAe,OAA8D;AAC3F,SAAO,UAAU,eAAe,uBAAuB,KAAK,CAAC;AAC/D;AAEO,SAAS,aAAa,OAAmE;AAC9F,SAAO,UAAU,aAAa,uBAAuB,KAAK,CAAC;AAC7D;AAEO,SAAS,YACd,OACA,aACA,YACkC;AAClC,SAAO,UAAU,YAAY,uBAAuB,KAAK,GAAG,aAAa,UAAU;AACrF;AAEO,SAAS,WAAW,OAAoC;AAC7D,SAAO,QAAQ,WAAW,MAAM,OAAO;AACzC;AAEO,SAAS,4BACd,OACmD;AACnD,SAAO,yBAAyB,4BAA4B,MAAM,wBAAwB;AAC5F;AAEO,SAAS,6CACd,OACA,SACmD;AACnD,QAAM,2BAA2B,4BAA4B,KAAK;AAClE,QAAM,mCAAmC,oBAAI,IAAkD;AAE/F,aAAW,CAAC,aAAa,YAAY,KAAK,0BAA0B;AAClE,UAAM,uBAAuB,oBAAI,IAAqC;AAEtE,eAAW,CAAC,YAAY,uBAAuB,KAAK,cAAc;AAChE,YAAM,gBAAgB,wBAAwB,WAAW;AAEzD,UAAI,eAAe,SAAS,OAAO,GAAG;AACpC,6BAAqB,IAAI,YAAY,uBAAuB;AAAA,MAC9D;AAAA,IACF;AAEA,QAAI,qBAAqB,OAAO,GAAG;AACjC,uCAAiC,IAAI,aAAa,oBAAoB;AAAA,IACxE;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,kBACd,cACmD;AACnD,SAAO,cAAY;AACjB,WAAO,aAAa,MAAM,EAAE,cAAc,YAAU,SAAS,MAAM,EAAE,CAAC;AAAA,EACxE;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/state/shared-api.ts"],"sourcesContent":["import { type ThunkAction } from '@reduxjs/toolkit'\n\nimport { type LocaleString, localeStringSchema } from '../locale'\n\nimport { type Breakpoints } from './modules/breakpoints'\nimport { type Element, type Document, EMBEDDED_DOCUMENT_TYPE } from './modules/read-only-documents'\n\ntype DocumentPayloadBaseDocument = {\n key: string\n rootElement: Element\n locale?: string | null // older versions of the runtime may not provide this field\n}\n\ntype DocumentPayloadEmbeddedDocument = {\n key: string\n locale: string | null\n id: string\n type: string\n name: string\n rootElement: Element\n meta: { allowLocaleFallback: boolean; requestedLocale: string | null; description?: string }\n __type: typeof EMBEDDED_DOCUMENT_TYPE\n}\n\nexport type DocumentPayload = DocumentPayloadBaseDocument | DocumentPayloadEmbeddedDocument\n\n// bidirectional action types, both the host and the builder can dispatch these actions\nexport const SharedActionTypes = {\n MAKESWIFT_CONNECTION_INIT: 'MAKESWIFT_CONNECTION_INIT',\n\n REGISTER_DOCUMENT: 'REGISTER_DOCUMENT',\n UNREGISTER_DOCUMENT: 'UNREGISTER_DOCUMENT',\n\n SET_BREAKPOINTS: 'SET_BREAKPOINTS',\n SET_LOCALE: 'SET_LOCALE',\n} as const\n\ntype MakeswiftConnectionInitAction = { type: typeof SharedActionTypes.MAKESWIFT_CONNECTION_INIT }\n\ntype RegisterDocumentAction = {\n type: typeof SharedActionTypes.REGISTER_DOCUMENT\n payload: { documentKey: string; document: DocumentPayload }\n}\n\ntype UnregisterDocumentAction = {\n type: typeof SharedActionTypes.UNREGISTER_DOCUMENT\n payload: { documentKey: string }\n}\n\nexport type SetBreakpointsAction = {\n type: typeof SharedActionTypes.SET_BREAKPOINTS\n payload: { breakpoints: Breakpoints }\n}\n\ntype SetLocaleAction = {\n type: typeof SharedActionTypes.SET_LOCALE\n payload: { locale: LocaleString; pathname?: string }\n}\n\nexport type SharedAction =\n | MakeswiftConnectionInitAction\n | RegisterDocumentAction\n | UnregisterDocumentAction\n | SetBreakpointsAction\n | SetLocaleAction\n\nexport function makeswiftConnectionInit(): MakeswiftConnectionInitAction {\n return {\n type: SharedActionTypes.MAKESWIFT_CONNECTION_INIT,\n }\n}\n\nexport function registerDocument(document: Document): RegisterDocumentAction {\n return {\n type: SharedActionTypes.REGISTER_DOCUMENT,\n payload: { documentKey: document.key, document },\n }\n}\n\nexport function unregisterDocument(documentKey: string): UnregisterDocumentAction {\n return { type: SharedActionTypes.UNREGISTER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerDocumentsEffect(\n documents: Document[],\n): ThunkAction<() => void, unknown, unknown, SharedAction> {\n return dispatch => {\n documents.forEach(document => dispatch(registerDocument(document)))\n\n return () => {\n documents.forEach(document => dispatch(unregisterDocument(document.key)))\n }\n }\n}\n\nexport function setBreakpoints(breakpoints: Breakpoints): SetBreakpointsAction {\n return { type: SharedActionTypes.SET_BREAKPOINTS, payload: { breakpoints } }\n}\n\nexport function setLocale(locale: Intl.Locale, pathname?: string): SetLocaleAction {\n return {\n type: SharedActionTypes.SET_LOCALE,\n payload: { locale: localeStringSchema.parse(locale.toString()), pathname },\n }\n}\n"],"mappings":"AAEA,SAA4B,0BAA0B;AAyB/C,MAAM,oBAAoB;AAAA,EAC/B,2BAA2B;AAAA,EAE3B,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EAErB,iBAAiB;AAAA,EACjB,YAAY;AACd;AA+BO,SAAS,0BAAyD;AACvE,SAAO;AAAA,IACL,MAAM,kBAAkB;AAAA,EAC1B;AACF;AAEO,SAAS,iBAAiB,UAA4C;AAC3E,SAAO;AAAA,IACL,MAAM,kBAAkB;AAAA,IACxB,SAAS,EAAE,aAAa,SAAS,KAAK,SAAS;AAAA,EACjD;AACF;AAEO,SAAS,mBAAmB,aAA+C;AAChF,SAAO,EAAE,MAAM,kBAAkB,qBAAqB,SAAS,EAAE,YAAY,EAAE;AACjF;AAEO,SAAS,wBACd,WACyD;AACzD,SAAO,cAAY;AACjB,cAAU,QAAQ,cAAY,SAAS,iBAAiB,QAAQ,CAAC,CAAC;AAElE,WAAO,MAAM;AACX,gBAAU,QAAQ,cAAY,SAAS,mBAAmB,SAAS,GAAG,CAAC,CAAC;AAAA,IAC1E;AAAA,EACF;AACF;AAEO,SAAS,eAAe,aAAgD;AAC7E,SAAO,EAAE,MAAM,kBAAkB,iBAAiB,SAAS,EAAE,YAAY,EAAE;AAC7E;AAEO,SAAS,UAAU,QAAqB,UAAoC;AACjF,SAAO;AAAA,IACL,MAAM,kBAAkB;AAAA,IACxB,SAAS,EAAE,QAAQ,mBAAmB,MAAM,OAAO,SAAS,CAAC,GAAG,SAAS;AAAA,EAC3E;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/state/shared-api.ts"],"sourcesContent":["import { type ThunkAction } from '@reduxjs/toolkit'\n\nimport { type LocaleString, localeStringSchema } from '../locale'\n\nimport { type Breakpoints } from './modules/breakpoints'\nimport { type Element, type Document, EMBEDDED_DOCUMENT_TYPE } from './modules/read-only-documents'\n\ntype DocumentPayloadBaseDocument = {\n key: string\n rootElement: Element\n locale?: string | null // older versions of the runtime may not provide this field\n}\n\ntype DocumentPayloadEmbeddedDocument = {\n key: string\n locale: string | null\n id: string\n type: string\n name: string\n rootElement: Element\n meta: { allowLocaleFallback: boolean; requestedLocale: string | null; description?: string }\n __type: typeof EMBEDDED_DOCUMENT_TYPE\n}\n\nexport type DocumentPayload = DocumentPayloadBaseDocument | DocumentPayloadEmbeddedDocument\n\nexport const SharedActionTypes = {\n MAKESWIFT_CONNECTION_INIT: 'MAKESWIFT_CONNECTION_INIT',\n\n REGISTER_DOCUMENT: 'REGISTER_DOCUMENT',\n UNREGISTER_DOCUMENT: 'UNREGISTER_DOCUMENT',\n\n SET_BREAKPOINTS: 'SET_BREAKPOINTS',\n SET_LOCALE: 'SET_LOCALE',\n} as const\n\ntype MakeswiftConnectionInitAction = { type: typeof SharedActionTypes.MAKESWIFT_CONNECTION_INIT }\n\ntype RegisterDocumentAction = {\n type: typeof SharedActionTypes.REGISTER_DOCUMENT\n payload: { documentKey: string; document: DocumentPayload }\n}\n\ntype UnregisterDocumentAction = {\n type: typeof SharedActionTypes.UNREGISTER_DOCUMENT\n payload: { documentKey: string }\n}\n\nexport type SetBreakpointsAction = {\n type: typeof SharedActionTypes.SET_BREAKPOINTS\n payload: { breakpoints: Breakpoints }\n}\n\ntype SetLocaleAction = {\n type: typeof SharedActionTypes.SET_LOCALE\n payload: { locale: LocaleString; pathname?: string }\n}\n\nexport type SharedAction =\n | MakeswiftConnectionInitAction\n | RegisterDocumentAction\n | UnregisterDocumentAction\n | SetBreakpointsAction\n | SetLocaleAction\n\nexport function makeswiftConnectionInit(): MakeswiftConnectionInitAction {\n return {\n type: SharedActionTypes.MAKESWIFT_CONNECTION_INIT,\n }\n}\n\nexport function registerDocument(document: Document): RegisterDocumentAction {\n return {\n type: SharedActionTypes.REGISTER_DOCUMENT,\n payload: { documentKey: document.key, document },\n }\n}\n\nexport function unregisterDocument(documentKey: string): UnregisterDocumentAction {\n return { type: SharedActionTypes.UNREGISTER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerDocumentsEffect(\n documents: Document[],\n): ThunkAction<() => void, unknown, unknown, SharedAction> {\n return dispatch => {\n documents.forEach(document => dispatch(registerDocument(document)))\n\n return () => {\n documents.forEach(document => dispatch(unregisterDocument(document.key)))\n }\n }\n}\n\nexport function setBreakpoints(breakpoints: Breakpoints): SetBreakpointsAction {\n return { type: SharedActionTypes.SET_BREAKPOINTS, payload: { breakpoints } }\n}\n\nexport function setLocale(locale: Intl.Locale, pathname?: string): SetLocaleAction {\n return {\n type: SharedActionTypes.SET_LOCALE,\n payload: { locale: localeStringSchema.parse(locale.toString()), pathname },\n }\n}\n"],"mappings":"AAEA,SAA4B,0BAA0B;AAwB/C,MAAM,oBAAoB;AAAA,EAC/B,2BAA2B;AAAA,EAE3B,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EAErB,iBAAiB;AAAA,EACjB,YAAY;AACd;AA+BO,SAAS,0BAAyD;AACvE,SAAO;AAAA,IACL,MAAM,kBAAkB;AAAA,EAC1B;AACF;AAEO,SAAS,iBAAiB,UAA4C;AAC3E,SAAO;AAAA,IACL,MAAM,kBAAkB;AAAA,IACxB,SAAS,EAAE,aAAa,SAAS,KAAK,SAAS;AAAA,EACjD;AACF;AAEO,SAAS,mBAAmB,aAA+C;AAChF,SAAO,EAAE,MAAM,kBAAkB,qBAAqB,SAAS,EAAE,YAAY,EAAE;AACjF;AAEO,SAAS,wBACd,WACyD;AACzD,SAAO,cAAY;AACjB,cAAU,QAAQ,cAAY,SAAS,iBAAiB,QAAQ,CAAC,CAAC;AAElE,WAAO,MAAM;AACX,gBAAU,QAAQ,cAAY,SAAS,mBAAmB,SAAS,GAAG,CAAC,CAAC;AAAA,IAC1E;AAAA,EACF;AACF;AAEO,SAAS,eAAe,aAAgD;AAC7E,SAAO,EAAE,MAAM,kBAAkB,iBAAiB,SAAS,EAAE,YAAY,EAAE;AAC7E;AAEO,SAAS,UAAU,QAAqB,UAAoC;AACjF,SAAO;AAAA,IACL,MAAM,kBAAkB;AAAA,IACxB,SAAS,EAAE,QAAQ,mBAAmB,MAAM,OAAO,SAAS,CAAC,GAAG,SAAS;AAAA,EAC3E;AACF;","names":[]}