@makeswift/runtime 0.26.4-canary.1 → 0.26.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/dist/cjs/api/{client.js → react.js} +7 -14
  2. package/dist/cjs/api/react.js.map +1 -0
  3. package/dist/cjs/api-handler/handlers/element-tree.js.map +1 -1
  4. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  5. package/dist/cjs/api-handler/handlers/merge-translated-data.js.map +1 -1
  6. package/dist/cjs/api-handler/handlers/translatable-data.js.map +1 -1
  7. package/dist/cjs/builder/host-to-builder-actions.js +3 -3
  8. package/dist/cjs/builder/host-to-builder-actions.js.map +1 -1
  9. package/dist/cjs/builder/index.js +2 -2
  10. package/dist/cjs/builder/index.js.map +1 -1
  11. package/dist/cjs/client/index.js +8 -8
  12. package/dist/cjs/client/index.js.map +1 -1
  13. package/dist/cjs/components/builtin/Box/Box.js +1 -1
  14. package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
  15. package/dist/cjs/components/builtin/Form/Form.js +1 -1
  16. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  17. package/dist/cjs/components/hooks/useTableFormFieldRefs.js +1 -1
  18. package/dist/cjs/components/hooks/useTableFormFieldRefs.js.map +1 -1
  19. package/dist/cjs/next/api-handler/config/app-router.js +10 -1
  20. package/dist/cjs/next/api-handler/config/app-router.js.map +1 -1
  21. package/dist/cjs/next/components/framework-provider/index.js +1 -1
  22. package/dist/cjs/next/components/framework-provider/index.js.map +1 -1
  23. package/dist/cjs/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  24. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +2 -1
  25. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  26. package/dist/cjs/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  27. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js +2 -1
  28. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js.map +1 -1
  29. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js +3 -2
  30. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  31. package/dist/cjs/next/testing/element-data.js +3 -3
  32. package/dist/cjs/next/testing/element-data.js.map +1 -1
  33. package/dist/cjs/next/testing/index.js +0 -2
  34. package/dist/cjs/next/testing/index.js.map +1 -1
  35. package/dist/cjs/next/testing/page-rendering.js +3 -3
  36. package/dist/cjs/next/testing/page-rendering.js.map +1 -1
  37. package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
  38. package/dist/cjs/prop-controllers/instances.js.map +1 -1
  39. package/dist/cjs/runtimes/react/components/Document.js +2 -2
  40. package/dist/cjs/runtimes/react/components/Document.js.map +1 -1
  41. package/dist/cjs/runtimes/react/components/DocumentRoot.js.map +1 -1
  42. package/dist/cjs/runtimes/react/components/Element.js +2 -2
  43. package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
  44. package/dist/cjs/runtimes/react/components/ElementData.js.map +1 -1
  45. package/dist/cjs/runtimes/react/components/ElementReference.js.map +1 -1
  46. package/dist/cjs/runtimes/react/components/ElementRegistration.js +2 -2
  47. package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -1
  48. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js +2 -2
  49. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js.map +1 -1
  50. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +5 -6
  51. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  52. package/dist/cjs/runtimes/react/components/framework-context.js +13 -3
  53. package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
  54. package/dist/cjs/runtimes/react/components/page/Page.js.map +1 -1
  55. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js +3 -2
  56. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  57. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  58. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  59. package/dist/cjs/runtimes/react/controls.js +2 -2
  60. package/dist/cjs/runtimes/react/controls.js.map +1 -1
  61. package/dist/cjs/runtimes/react/element-imperative-handle.js +1 -1
  62. package/dist/cjs/runtimes/react/element-imperative-handle.js.map +1 -1
  63. package/dist/cjs/runtimes/react/hooks/use-breakpoints.js +2 -2
  64. package/dist/cjs/runtimes/react/hooks/use-breakpoints.js.map +1 -1
  65. package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js +2 -2
  66. package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -1
  67. package/dist/cjs/runtimes/react/hooks/use-cache-data.js +2 -2
  68. package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -1
  69. package/dist/cjs/runtimes/react/hooks/use-component.js +3 -3
  70. package/dist/cjs/runtimes/react/hooks/use-component.js.map +1 -1
  71. package/dist/cjs/runtimes/react/hooks/use-dispatch.js.map +1 -1
  72. package/dist/cjs/runtimes/react/hooks/use-document.js +2 -2
  73. package/dist/cjs/runtimes/react/hooks/use-document.js.map +1 -1
  74. package/dist/cjs/runtimes/react/hooks/use-element-id.js +2 -2
  75. package/dist/cjs/runtimes/react/hooks/use-element-id.js.map +1 -1
  76. package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js +2 -2
  77. package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js.map +1 -1
  78. package/dist/cjs/runtimes/react/hooks/{use-is-read-only.js → use-is-preview.js} +9 -9
  79. package/dist/cjs/runtimes/react/hooks/use-is-preview.js.map +1 -0
  80. package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -1
  81. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +2 -2
  82. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  83. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js +1 -1
  84. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  85. package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -1
  86. package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
  87. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  88. package/dist/cjs/runtimes/react/host-api-client.js +3 -4
  89. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -1
  90. package/dist/cjs/runtimes/react/index.js +3 -3
  91. package/dist/cjs/runtimes/react/index.js.map +1 -1
  92. package/dist/cjs/runtimes/react/poll-box-model.js +1 -1
  93. package/dist/cjs/runtimes/react/poll-box-model.js.map +1 -1
  94. package/dist/cjs/runtimes/react/react-runtime-core.js +3 -3
  95. package/dist/cjs/runtimes/react/react-runtime-core.js.map +1 -1
  96. package/dist/cjs/runtimes/react/runtime-core.js +2 -4
  97. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
  98. package/dist/cjs/runtimes/react/utils/can-accept-ref.js.map +1 -1
  99. package/dist/cjs/state/actions/{internal/read-only-actions.js → internal.js} +62 -44
  100. package/dist/cjs/state/actions/internal.js.map +1 -0
  101. package/dist/cjs/state/builder-api/actions.js +8 -11
  102. package/dist/cjs/state/builder-api/actions.js.map +1 -1
  103. package/dist/cjs/state/host-api.js.map +1 -1
  104. package/dist/cjs/state/makeswift-api-client.js +20 -34
  105. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  106. package/dist/cjs/state/modules/api-resources.js +4 -7
  107. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  108. package/dist/cjs/state/modules/{read-write/box-models.js → box-models.js} +4 -6
  109. package/dist/cjs/state/modules/box-models.js.map +1 -0
  110. package/dist/cjs/state/modules/breakpoints.js +1 -2
  111. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  112. package/dist/cjs/state/modules/builder-edit-mode.js +1 -2
  113. package/dist/cjs/state/modules/builder-edit-mode.js.map +1 -1
  114. package/dist/cjs/state/modules/components-meta.js +2 -3
  115. package/dist/cjs/state/modules/components-meta.js.map +1 -1
  116. package/dist/cjs/state/modules/{read-write/element-imperative-handles.js → element-imperative-handles.js} +3 -4
  117. package/dist/cjs/state/modules/element-imperative-handles.js.map +1 -0
  118. package/dist/cjs/state/modules/element-trees.js +3 -5
  119. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  120. package/dist/cjs/state/modules/is-in-builder.js +1 -2
  121. package/dist/cjs/state/modules/is-in-builder.js.map +1 -1
  122. package/dist/cjs/state/modules/{is-read-only.js → is-preview.js} +9 -12
  123. package/dist/cjs/state/modules/is-preview.js.map +1 -0
  124. package/dist/cjs/state/modules/localized-resources-map.js +2 -4
  125. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -1
  126. package/dist/cjs/state/modules/{read-write/pointer.js → pointer.js} +2 -3
  127. package/dist/cjs/state/modules/pointer.js.map +1 -0
  128. package/dist/cjs/state/modules/prop-controllers.js +2 -3
  129. package/dist/cjs/state/modules/prop-controllers.js.map +1 -1
  130. package/dist/cjs/state/modules/react-components.js +2 -3
  131. package/dist/cjs/state/modules/react-components.js.map +1 -1
  132. package/dist/cjs/state/modules/read-only-documents.js +2 -3
  133. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  134. package/dist/cjs/state/modules/{read-write/read-write-documents.js → read-write-documents.js} +3 -3
  135. package/dist/cjs/state/modules/read-write-documents.js.map +1 -0
  136. package/dist/cjs/state/react-builder-preview.js +508 -18
  137. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  138. package/dist/cjs/state/react-page.js +250 -6
  139. package/dist/cjs/state/react-page.js.map +1 -1
  140. package/dist/cjs/state/shared-api.js.map +1 -1
  141. package/dist/cjs/state/translations/get.js +2 -2
  142. package/dist/cjs/state/translations/get.js.map +1 -1
  143. package/dist/cjs/state/translations/merge.js +2 -2
  144. package/dist/cjs/state/translations/merge.js.map +1 -1
  145. package/dist/cjs/unstable-framework-support/index.js +4 -2
  146. package/dist/cjs/unstable-framework-support/index.js.map +1 -1
  147. package/dist/esm/api/{client.js → react.js} +4 -11
  148. package/dist/esm/api/react.js.map +1 -0
  149. package/dist/esm/api-handler/handlers/element-tree.js.map +1 -1
  150. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  151. package/dist/esm/api-handler/handlers/merge-translated-data.js.map +1 -1
  152. package/dist/esm/api-handler/handlers/translatable-data.js.map +1 -1
  153. package/dist/esm/builder/host-to-builder-actions.js +4 -4
  154. package/dist/esm/builder/host-to-builder-actions.js.map +1 -1
  155. package/dist/esm/builder/index.js +1 -1
  156. package/dist/esm/builder/index.js.map +1 -1
  157. package/dist/esm/client/index.js +5 -5
  158. package/dist/esm/client/index.js.map +1 -1
  159. package/dist/esm/components/builtin/Box/Box.js +1 -1
  160. package/dist/esm/components/builtin/Box/Box.js.map +1 -1
  161. package/dist/esm/components/builtin/Form/Form.js +1 -1
  162. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  163. package/dist/esm/components/hooks/useTableFormFieldRefs.js +1 -1
  164. package/dist/esm/components/hooks/useTableFormFieldRefs.js.map +1 -1
  165. package/dist/esm/next/api-handler/config/app-router.js +10 -1
  166. package/dist/esm/next/api-handler/config/app-router.js.map +1 -1
  167. package/dist/esm/next/components/framework-provider/index.js +5 -2
  168. package/dist/esm/next/components/framework-provider/index.js.map +1 -1
  169. package/dist/esm/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  170. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +2 -1
  171. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  172. package/dist/esm/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  173. package/dist/esm/next/components/tests/makeswift-component/fixtures.js +2 -1
  174. package/dist/esm/next/components/tests/makeswift-component/fixtures.js.map +1 -1
  175. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js +3 -2
  176. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  177. package/dist/esm/next/testing/element-data.js +1 -1
  178. package/dist/esm/next/testing/element-data.js.map +1 -1
  179. package/dist/esm/next/testing/index.js +0 -1
  180. package/dist/esm/next/testing/index.js.map +1 -1
  181. package/dist/esm/next/testing/page-rendering.js +3 -3
  182. package/dist/esm/next/testing/page-rendering.js.map +1 -1
  183. package/dist/esm/prop-controllers/descriptors.js.map +1 -1
  184. package/dist/esm/prop-controllers/instances.js.map +1 -1
  185. package/dist/esm/runtimes/react/components/Document.js +1 -1
  186. package/dist/esm/runtimes/react/components/Document.js.map +1 -1
  187. package/dist/esm/runtimes/react/components/DocumentRoot.js.map +1 -1
  188. package/dist/esm/runtimes/react/components/Element.js +1 -3
  189. package/dist/esm/runtimes/react/components/Element.js.map +1 -1
  190. package/dist/esm/runtimes/react/components/ElementData.js.map +1 -1
  191. package/dist/esm/runtimes/react/components/ElementReference.js.map +1 -1
  192. package/dist/esm/runtimes/react/components/ElementRegistration.js +1 -1
  193. package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -1
  194. package/dist/esm/runtimes/react/components/MakeswiftComponent.js +1 -1
  195. package/dist/esm/runtimes/react/components/MakeswiftComponent.js.map +1 -1
  196. package/dist/esm/runtimes/react/components/RuntimeProvider.js +4 -5
  197. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  198. package/dist/esm/runtimes/react/components/framework-context.js +14 -2
  199. package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
  200. package/dist/esm/runtimes/react/components/page/Page.js.map +1 -1
  201. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js +3 -2
  202. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  203. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  204. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  205. package/dist/esm/runtimes/react/controls.js +2 -2
  206. package/dist/esm/runtimes/react/controls.js.map +1 -1
  207. package/dist/esm/runtimes/react/element-imperative-handle.js +1 -1
  208. package/dist/esm/runtimes/react/element-imperative-handle.js.map +1 -1
  209. package/dist/esm/runtimes/react/hooks/use-breakpoints.js +1 -1
  210. package/dist/esm/runtimes/react/hooks/use-breakpoints.js.map +1 -1
  211. package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js +1 -1
  212. package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -1
  213. package/dist/esm/runtimes/react/hooks/use-cache-data.js +1 -1
  214. package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -1
  215. package/dist/esm/runtimes/react/hooks/use-component.js +1 -1
  216. package/dist/esm/runtimes/react/hooks/use-component.js.map +1 -1
  217. package/dist/esm/runtimes/react/hooks/use-dispatch.js.map +1 -1
  218. package/dist/esm/runtimes/react/hooks/use-document.js +1 -1
  219. package/dist/esm/runtimes/react/hooks/use-document.js.map +1 -1
  220. package/dist/esm/runtimes/react/hooks/use-element-id.js +1 -1
  221. package/dist/esm/runtimes/react/hooks/use-element-id.js.map +1 -1
  222. package/dist/esm/runtimes/react/hooks/use-is-in-builder.js +1 -1
  223. package/dist/esm/runtimes/react/hooks/use-is-in-builder.js.map +1 -1
  224. package/dist/esm/runtimes/react/hooks/use-is-preview.js +9 -0
  225. package/dist/esm/runtimes/react/hooks/use-is-preview.js.map +1 -0
  226. package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -1
  227. package/dist/esm/runtimes/react/hooks/use-resolved-props.js +2 -2
  228. package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  229. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js +1 -1
  230. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  231. package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -1
  232. package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
  233. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  234. package/dist/esm/runtimes/react/host-api-client.js +2 -3
  235. package/dist/esm/runtimes/react/host-api-client.js.map +1 -1
  236. package/dist/esm/runtimes/react/index.js +2 -2
  237. package/dist/esm/runtimes/react/index.js.map +1 -1
  238. package/dist/esm/runtimes/react/poll-box-model.js +1 -1
  239. package/dist/esm/runtimes/react/poll-box-model.js.map +1 -1
  240. package/dist/esm/runtimes/react/react-runtime-core.js +1 -4
  241. package/dist/esm/runtimes/react/react-runtime-core.js.map +1 -1
  242. package/dist/esm/runtimes/react/runtime-core.js +5 -3
  243. package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
  244. package/dist/esm/runtimes/react/utils/can-accept-ref.js.map +1 -1
  245. package/dist/esm/state/actions/{internal/read-only-actions.js → internal.js} +52 -36
  246. package/dist/esm/state/actions/internal.js.map +1 -0
  247. package/dist/esm/state/builder-api/actions.js +7 -8
  248. package/dist/esm/state/builder-api/actions.js.map +1 -1
  249. package/dist/esm/state/host-api.js.map +1 -1
  250. package/dist/esm/state/makeswift-api-client.js +19 -33
  251. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  252. package/dist/esm/state/modules/api-resources.js +5 -8
  253. package/dist/esm/state/modules/api-resources.js.map +1 -1
  254. package/dist/esm/state/modules/{read-write/box-models.js → box-models.js} +4 -6
  255. package/dist/esm/state/modules/box-models.js.map +1 -0
  256. package/dist/esm/state/modules/breakpoints.js +2 -3
  257. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  258. package/dist/esm/state/modules/builder-edit-mode.js +2 -3
  259. package/dist/esm/state/modules/builder-edit-mode.js.map +1 -1
  260. package/dist/esm/state/modules/components-meta.js +3 -4
  261. package/dist/esm/state/modules/components-meta.js.map +1 -1
  262. package/dist/esm/state/modules/{read-write/element-imperative-handles.js → element-imperative-handles.js} +3 -4
  263. package/dist/esm/state/modules/element-imperative-handles.js.map +1 -0
  264. package/dist/esm/state/modules/element-trees.js +4 -6
  265. package/dist/esm/state/modules/element-trees.js.map +1 -1
  266. package/dist/esm/state/modules/is-in-builder.js +2 -3
  267. package/dist/esm/state/modules/is-in-builder.js.map +1 -1
  268. package/dist/esm/state/modules/is-preview.js +21 -0
  269. package/dist/esm/state/modules/is-preview.js.map +1 -0
  270. package/dist/esm/state/modules/localized-resources-map.js +3 -5
  271. package/dist/esm/state/modules/localized-resources-map.js.map +1 -1
  272. package/dist/esm/state/modules/{read-write/pointer.js → pointer.js} +2 -3
  273. package/dist/esm/state/modules/pointer.js.map +1 -0
  274. package/dist/esm/state/modules/prop-controllers.js +3 -4
  275. package/dist/esm/state/modules/prop-controllers.js.map +1 -1
  276. package/dist/esm/state/modules/react-components.js +3 -4
  277. package/dist/esm/state/modules/react-components.js.map +1 -1
  278. package/dist/esm/state/modules/read-only-documents.js +6 -4
  279. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  280. package/dist/esm/state/modules/{read-write/read-write-documents.js → read-write-documents.js} +3 -3
  281. package/dist/esm/state/modules/read-write-documents.js.map +1 -0
  282. package/dist/esm/state/react-builder-preview.js +500 -15
  283. package/dist/esm/state/react-builder-preview.js.map +1 -1
  284. package/dist/esm/state/react-page.js +240 -7
  285. package/dist/esm/state/react-page.js.map +1 -1
  286. package/dist/esm/state/shared-api.js.map +1 -1
  287. package/dist/esm/state/translations/get.js +1 -1
  288. package/dist/esm/state/translations/get.js.map +1 -1
  289. package/dist/esm/state/translations/merge.js +1 -1
  290. package/dist/esm/state/translations/merge.js.map +1 -1
  291. package/dist/esm/unstable-framework-support/index.js +4 -2
  292. package/dist/esm/unstable-framework-support/index.js.map +1 -1
  293. package/dist/types/api/{client.d.ts → react.d.ts} +2 -4
  294. package/dist/types/api/react.d.ts.map +1 -0
  295. package/dist/types/api-handler/handlers/element-tree.d.ts +1 -1
  296. package/dist/types/api-handler/handlers/element-tree.d.ts.map +1 -1
  297. package/dist/types/api-handler/handlers/merge-translated-data.d.ts +1 -1
  298. package/dist/types/api-handler/handlers/merge-translated-data.d.ts.map +1 -1
  299. package/dist/types/api-handler/handlers/translatable-data.d.ts +1 -1
  300. package/dist/types/api-handler/handlers/translatable-data.d.ts.map +1 -1
  301. package/dist/types/api-handler/handlers/webhook/types.d.ts +4 -4
  302. package/dist/types/builder/host-to-builder-actions.d.ts +2 -2
  303. package/dist/types/builder/host-to-builder-actions.d.ts.map +1 -1
  304. package/dist/types/builder/index.d.ts +2 -2
  305. package/dist/types/builder/index.d.ts.map +1 -1
  306. package/dist/types/client/index.d.ts +2 -2
  307. package/dist/types/client/index.d.ts.map +1 -1
  308. package/dist/types/components/builtin/Box/Box.d.ts +1 -1
  309. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  310. package/dist/types/components/builtin/Form/Form.d.ts +1 -1
  311. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  312. package/dist/types/locale.d.ts +1 -1
  313. package/dist/types/next/api-handler/config/app-router.d.ts.map +1 -1
  314. package/dist/types/next/components/framework-provider/index.d.ts.map +1 -1
  315. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts +1 -1
  316. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts.map +1 -1
  317. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +3 -3
  318. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  319. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts +1 -1
  320. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts.map +1 -1
  321. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts +1 -1
  322. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts.map +1 -1
  323. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts +1 -1
  324. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts.map +1 -1
  325. package/dist/types/next/testing/element-data.d.ts +1 -1
  326. package/dist/types/next/testing/element-data.d.ts.map +1 -1
  327. package/dist/types/next/testing/index.d.ts +0 -1
  328. package/dist/types/next/testing/index.d.ts.map +1 -1
  329. package/dist/types/next/testing/page-rendering.d.ts.map +1 -1
  330. package/dist/types/prop-controllers/descriptors.d.ts +1 -1
  331. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  332. package/dist/types/prop-controllers/instances.d.ts +1 -1
  333. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  334. package/dist/types/runtimes/react/components/Document.d.ts +1 -1
  335. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  336. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +1 -1
  337. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -1
  338. package/dist/types/runtimes/react/components/Element.d.ts +1 -1
  339. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  340. package/dist/types/runtimes/react/components/ElementData.d.ts +1 -1
  341. package/dist/types/runtimes/react/components/ElementData.d.ts.map +1 -1
  342. package/dist/types/runtimes/react/components/ElementReference.d.ts +1 -1
  343. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  344. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +1 -1
  345. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  346. package/dist/types/runtimes/react/components/framework-context.d.ts +4 -2
  347. package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
  348. package/dist/types/runtimes/react/components/page/Page.d.ts +1 -1
  349. package/dist/types/runtimes/react/components/page/Page.d.ts.map +1 -1
  350. package/dist/types/runtimes/react/controls.d.ts +2 -2
  351. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  352. package/dist/types/runtimes/react/element-imperative-handle.d.ts +1 -1
  353. package/dist/types/runtimes/react/element-imperative-handle.d.ts.map +1 -1
  354. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +1 -1
  355. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -1
  356. package/dist/types/runtimes/react/hooks/use-component.d.ts +1 -1
  357. package/dist/types/runtimes/react/hooks/use-component.d.ts.map +1 -1
  358. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts +3 -3
  359. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts.map +1 -1
  360. package/dist/types/runtimes/react/hooks/use-document.d.ts +1 -1
  361. package/dist/types/runtimes/react/hooks/use-document.d.ts.map +1 -1
  362. package/dist/types/runtimes/react/hooks/use-is-preview.d.ts +2 -0
  363. package/dist/types/runtimes/react/hooks/use-is-preview.d.ts.map +1 -0
  364. package/dist/types/runtimes/react/hooks/use-register-document.d.ts +1 -1
  365. package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -1
  366. package/dist/types/runtimes/react/hooks/use-selector.d.ts +3 -3
  367. package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -1
  368. package/dist/types/runtimes/react/hooks/use-store.d.ts +4 -4
  369. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  370. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +1 -1
  371. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -1
  372. package/dist/types/runtimes/react/host-api-client.d.ts +1 -1
  373. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -1
  374. package/dist/types/runtimes/react/index.d.ts +1 -1
  375. package/dist/types/runtimes/react/index.d.ts.map +1 -1
  376. package/dist/types/runtimes/react/poll-box-model.d.ts +1 -1
  377. package/dist/types/runtimes/react/poll-box-model.d.ts.map +1 -1
  378. package/dist/types/runtimes/react/react-runtime-core.d.ts +1 -1
  379. package/dist/types/runtimes/react/react-runtime-core.d.ts.map +1 -1
  380. package/dist/types/runtimes/react/runtime-core.d.ts +1 -2
  381. package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
  382. package/dist/types/runtimes/react/utils/can-accept-ref.d.ts +1 -1
  383. package/dist/types/runtimes/react/utils/can-accept-ref.d.ts.map +1 -1
  384. package/dist/types/state/__tests__/react-page.test.d.ts +2 -0
  385. package/dist/types/state/__tests__/react-page.test.d.ts.map +1 -0
  386. package/dist/types/state/actions/index.d.ts +5 -8
  387. package/dist/types/state/actions/index.d.ts.map +1 -1
  388. package/dist/types/state/actions/{internal/read-only-actions.d.ts → internal.d.ts} +67 -45
  389. package/dist/types/state/actions/internal.d.ts.map +1 -0
  390. package/dist/types/state/builder-api/actions.d.ts +14 -14
  391. package/dist/types/state/builder-api/actions.d.ts.map +1 -1
  392. package/dist/types/state/host-api.d.ts +1 -1
  393. package/dist/types/state/host-api.d.ts.map +1 -1
  394. package/dist/types/state/makeswift-api-client.d.ts +2 -11
  395. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  396. package/dist/types/state/modules/api-resources.d.ts.map +1 -1
  397. package/dist/types/state/modules/{read-write/box-models.d.ts → box-models.d.ts} +1 -1
  398. package/dist/types/state/modules/box-models.d.ts.map +1 -0
  399. package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
  400. package/dist/types/state/modules/builder-edit-mode.d.ts.map +1 -1
  401. package/dist/types/state/modules/components-meta.d.ts.map +1 -1
  402. package/dist/types/state/modules/element-imperative-handles.d.ts +7 -0
  403. package/dist/types/state/modules/element-imperative-handles.d.ts.map +1 -0
  404. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  405. package/dist/types/state/modules/is-in-builder.d.ts.map +1 -1
  406. package/dist/types/state/modules/{is-read-only.d.ts → is-preview.d.ts} +3 -3
  407. package/dist/types/state/modules/is-preview.d.ts.map +1 -0
  408. package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -1
  409. package/dist/types/state/modules/{read-write/pointer.d.ts → pointer.d.ts} +3 -2
  410. package/dist/types/state/modules/pointer.d.ts.map +1 -0
  411. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  412. package/dist/types/state/modules/react-components.d.ts.map +1 -1
  413. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  414. package/dist/types/state/modules/{read-write/read-write-documents.d.ts → read-write-documents.d.ts} +4 -4
  415. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -0
  416. package/dist/types/state/react-builder-preview.d.ts +93 -26
  417. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  418. package/dist/types/state/react-page.d.ts +136 -20
  419. package/dist/types/state/react-page.d.ts.map +1 -1
  420. package/dist/types/state/shared-api.d.ts.map +1 -1
  421. package/dist/types/state/translations/get.d.ts +1 -1
  422. package/dist/types/state/translations/get.d.ts.map +1 -1
  423. package/dist/types/state/translations/merge.d.ts +1 -1
  424. package/dist/types/state/translations/merge.d.ts.map +1 -1
  425. package/dist/types/unstable-framework-support/index.d.ts +1 -1
  426. package/dist/types/unstable-framework-support/index.d.ts.map +1 -1
  427. package/package.json +3 -3
  428. package/dist/cjs/api/client.js.map +0 -1
  429. package/dist/cjs/next/testing/react-runtime.js +0 -29
  430. package/dist/cjs/next/testing/react-runtime.js.map +0 -1
  431. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js.map +0 -1
  432. package/dist/cjs/runtimes/react/testing/react-runtime.js +0 -32
  433. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +0 -1
  434. package/dist/cjs/state/actions/internal/index.js +0 -34
  435. package/dist/cjs/state/actions/internal/index.js.map +0 -1
  436. package/dist/cjs/state/actions/internal/read-only-actions.js.map +0 -1
  437. package/dist/cjs/state/actions/internal/read-write-actions.js +0 -70
  438. package/dist/cjs/state/actions/internal/read-write-actions.js.map +0 -1
  439. package/dist/cjs/state/middleware/prop-controller-handles.js +0 -114
  440. package/dist/cjs/state/middleware/prop-controller-handles.js.map +0 -1
  441. package/dist/cjs/state/middleware/read-only-element-tree.js +0 -52
  442. package/dist/cjs/state/middleware/read-only-element-tree.js.map +0 -1
  443. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js +0 -40
  444. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js.map +0 -1
  445. package/dist/cjs/state/middleware/read-write/builder-api/index.js +0 -76
  446. package/dist/cjs/state/middleware/read-write/builder-api/index.js.map +0 -1
  447. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js +0 -278
  448. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js.map +0 -1
  449. package/dist/cjs/state/middleware/read-write/makeswift-api-client-sync.js +0 -37
  450. package/dist/cjs/state/middleware/read-write/makeswift-api-client-sync.js.map +0 -1
  451. package/dist/cjs/state/middleware/read-write/measure-box-models.js +0 -71
  452. package/dist/cjs/state/middleware/read-write/measure-box-models.js.map +0 -1
  453. package/dist/cjs/state/middleware/read-write/update-element-tree.js +0 -59
  454. package/dist/cjs/state/middleware/read-write/update-element-tree.js.map +0 -1
  455. package/dist/cjs/state/modules/is-read-only.js.map +0 -1
  456. package/dist/cjs/state/modules/locale.js +0 -53
  457. package/dist/cjs/state/modules/locale.js.map +0 -1
  458. package/dist/cjs/state/modules/read-write/box-models.js.map +0 -1
  459. package/dist/cjs/state/modules/read-write/element-imperative-handles.js.map +0 -1
  460. package/dist/cjs/state/modules/read-write/pointer.js.map +0 -1
  461. package/dist/cjs/state/modules/read-write/read-write-documents.js.map +0 -1
  462. package/dist/cjs/state/modules/site-version.js +0 -50
  463. package/dist/cjs/state/modules/site-version.js.map +0 -1
  464. package/dist/cjs/state/ops/copy-element-tree.js +0 -67
  465. package/dist/cjs/state/ops/copy-element-tree.js.map +0 -1
  466. package/dist/cjs/state/ops/merge-element.js +0 -73
  467. package/dist/cjs/state/ops/merge-element.js.map +0 -1
  468. package/dist/cjs/state/read-only-state.js +0 -209
  469. package/dist/cjs/state/read-only-state.js.map +0 -1
  470. package/dist/cjs/state/read-write-state.js +0 -121
  471. package/dist/cjs/state/read-write-state.js.map +0 -1
  472. package/dist/esm/api/client.js.map +0 -1
  473. package/dist/esm/next/testing/react-runtime.js +0 -5
  474. package/dist/esm/next/testing/react-runtime.js.map +0 -1
  475. package/dist/esm/runtimes/react/hooks/use-is-read-only.js +0 -9
  476. package/dist/esm/runtimes/react/hooks/use-is-read-only.js.map +0 -1
  477. package/dist/esm/runtimes/react/testing/react-runtime.js +0 -8
  478. package/dist/esm/runtimes/react/testing/react-runtime.js.map +0 -1
  479. package/dist/esm/state/actions/internal/index.js +0 -10
  480. package/dist/esm/state/actions/internal/index.js.map +0 -1
  481. package/dist/esm/state/actions/internal/read-only-actions.js.map +0 -1
  482. package/dist/esm/state/actions/internal/read-write-actions.js +0 -41
  483. package/dist/esm/state/actions/internal/read-write-actions.js.map +0 -1
  484. package/dist/esm/state/middleware/prop-controller-handles.js +0 -80
  485. package/dist/esm/state/middleware/prop-controller-handles.js.map +0 -1
  486. package/dist/esm/state/middleware/read-only-element-tree.js +0 -28
  487. package/dist/esm/state/middleware/read-only-element-tree.js.map +0 -1
  488. package/dist/esm/state/middleware/read-write/builder-api/element-size.js +0 -16
  489. package/dist/esm/state/middleware/read-write/builder-api/element-size.js.map +0 -1
  490. package/dist/esm/state/middleware/read-write/builder-api/index.js +0 -52
  491. package/dist/esm/state/middleware/read-write/builder-api/index.js.map +0 -1
  492. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js +0 -251
  493. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js.map +0 -1
  494. package/dist/esm/state/middleware/read-write/makeswift-api-client-sync.js +0 -13
  495. package/dist/esm/state/middleware/read-write/makeswift-api-client-sync.js.map +0 -1
  496. package/dist/esm/state/middleware/read-write/measure-box-models.js +0 -37
  497. package/dist/esm/state/middleware/read-write/measure-box-models.js.map +0 -1
  498. package/dist/esm/state/middleware/read-write/update-element-tree.js +0 -35
  499. package/dist/esm/state/middleware/read-write/update-element-tree.js.map +0 -1
  500. package/dist/esm/state/modules/is-read-only.js +0 -24
  501. package/dist/esm/state/modules/is-read-only.js.map +0 -1
  502. package/dist/esm/state/modules/locale.js +0 -27
  503. package/dist/esm/state/modules/locale.js.map +0 -1
  504. package/dist/esm/state/modules/read-write/box-models.js.map +0 -1
  505. package/dist/esm/state/modules/read-write/element-imperative-handles.js.map +0 -1
  506. package/dist/esm/state/modules/read-write/pointer.js.map +0 -1
  507. package/dist/esm/state/modules/read-write/read-write-documents.js.map +0 -1
  508. package/dist/esm/state/modules/site-version.js +0 -24
  509. package/dist/esm/state/modules/site-version.js.map +0 -1
  510. package/dist/esm/state/ops/copy-element-tree.js +0 -37
  511. package/dist/esm/state/ops/copy-element-tree.js.map +0 -1
  512. package/dist/esm/state/ops/merge-element.js +0 -39
  513. package/dist/esm/state/ops/merge-element.js.map +0 -1
  514. package/dist/esm/state/read-only-state.js +0 -157
  515. package/dist/esm/state/read-only-state.js.map +0 -1
  516. package/dist/esm/state/read-write-state.js +0 -76
  517. package/dist/esm/state/read-write-state.js.map +0 -1
  518. package/dist/types/api/client.d.ts.map +0 -1
  519. package/dist/types/next/testing/react-runtime.d.ts +0 -2
  520. package/dist/types/next/testing/react-runtime.d.ts.map +0 -1
  521. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts +0 -2
  522. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts.map +0 -1
  523. package/dist/types/runtimes/react/testing/react-runtime.d.ts +0 -3
  524. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +0 -1
  525. package/dist/types/state/__tests__/merge-element.test.d.ts +0 -2
  526. package/dist/types/state/__tests__/merge-element.test.d.ts.map +0 -1
  527. package/dist/types/state/actions/internal/index.d.ts +0 -27
  528. package/dist/types/state/actions/internal/index.d.ts.map +0 -1
  529. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +0 -1
  530. package/dist/types/state/actions/internal/read-write-actions.d.ts +0 -48
  531. package/dist/types/state/actions/internal/read-write-actions.d.ts.map +0 -1
  532. package/dist/types/state/middleware/prop-controller-handles.d.ts +0 -4
  533. package/dist/types/state/middleware/prop-controller-handles.d.ts.map +0 -1
  534. package/dist/types/state/middleware/read-only-element-tree.d.ts +0 -4
  535. package/dist/types/state/middleware/read-only-element-tree.d.ts.map +0 -1
  536. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts +0 -12
  537. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts.map +0 -1
  538. package/dist/types/state/middleware/read-write/builder-api/index.d.ts +0 -5
  539. package/dist/types/state/middleware/read-write/builder-api/index.d.ts.map +0 -1
  540. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts +0 -6
  541. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts.map +0 -1
  542. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts +0 -5
  543. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts.map +0 -1
  544. package/dist/types/state/middleware/read-write/measure-box-models.d.ts +0 -4
  545. package/dist/types/state/middleware/read-write/measure-box-models.d.ts.map +0 -1
  546. package/dist/types/state/middleware/read-write/update-element-tree.d.ts +0 -4
  547. package/dist/types/state/middleware/read-write/update-element-tree.d.ts.map +0 -1
  548. package/dist/types/state/modules/is-read-only.d.ts.map +0 -1
  549. package/dist/types/state/modules/locale.d.ts +0 -6
  550. package/dist/types/state/modules/locale.d.ts.map +0 -1
  551. package/dist/types/state/modules/read-write/box-models.d.ts.map +0 -1
  552. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts +0 -6
  553. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts.map +0 -1
  554. package/dist/types/state/modules/read-write/pointer.d.ts.map +0 -1
  555. package/dist/types/state/modules/read-write/read-write-documents.d.ts.map +0 -1
  556. package/dist/types/state/modules/site-version.d.ts +0 -7
  557. package/dist/types/state/modules/site-version.d.ts.map +0 -1
  558. package/dist/types/state/ops/copy-element-tree.d.ts +0 -37
  559. package/dist/types/state/ops/copy-element-tree.d.ts.map +0 -1
  560. package/dist/types/state/ops/merge-element.d.ts +0 -4
  561. package/dist/types/state/ops/merge-element.d.ts.map +0 -1
  562. package/dist/types/state/read-only-state.d.ts +0 -122
  563. package/dist/types/state/read-only-state.d.ts.map +0 -1
  564. package/dist/types/state/read-write-state.d.ts +0 -56
  565. package/dist/types/state/read-write-state.d.ts.map +0 -1
@@ -26,7 +26,6 @@ __export(components_meta_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(components_meta_exports);
28
28
  var import_actions = require("../actions");
29
- var import_read_only_actions = require("../actions/internal/read-only-actions");
30
29
  const ComponentIcon = {
31
30
  Billing: "billing",
32
31
  Bolt: "bolt",
@@ -66,9 +65,9 @@ function reducer(state = getInitialState(), action) {
66
65
  if (!(0, import_actions.isKnownAction)(action))
67
66
  return state;
68
67
  switch (action.type) {
69
- case import_read_only_actions.ReadOnlyActionTypes.REGISTER_COMPONENT:
68
+ case import_actions.ActionTypes.REGISTER_COMPONENT:
70
69
  return new Map(state).set(action.payload.type, action.payload.meta);
71
- case import_read_only_actions.ReadOnlyActionTypes.UNREGISTER_COMPONENT: {
70
+ case import_actions.ActionTypes.UNREGISTER_COMPONENT: {
72
71
  const nextState = new Map(state);
73
72
  const deleted = nextState.delete(action.payload.type);
74
73
  return deleted ? nextState : state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/components-meta.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\n\nexport const ComponentIcon = {\n Billing: 'billing',\n Bolt: 'bolt',\n Button: 'button',\n Carousel: 'carousel',\n Chats: 'chats',\n Code: 'code',\n Countdown: 'countdown',\n Cube: 'cube',\n Database: 'database',\n Divider: 'divider',\n Form: 'form',\n Gallery: 'gallery',\n Help: 'help',\n Image: 'image',\n Layout: 'layout',\n Lock: 'lock',\n Navigation: 'navigation',\n SocialLinks: 'social-links',\n Star: 'star',\n Text: 'text',\n Users: 'users',\n Video: 'video',\n} as const\n\nexport type ComponentIcon = (typeof ComponentIcon)[keyof typeof ComponentIcon]\n\nexport type ComponentMeta = {\n label: string\n icon: ComponentIcon\n hidden: boolean\n description?: string\n builtinSuspense?: boolean\n}\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function getComponentMeta(state: State, type: string): ComponentMeta | null {\n return getComponentsMeta(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ReadOnlyActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+D;AAC/D,+BAAoC;AAE7B,MAAM,gBAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AACT;AAcO,SAAS,gBAAgB;AAAA,EAC9B,iBAAiB,oBAAI,IAAI;AAC3B,IAAqD,CAAC,GAAU;AAC9D,SAAO;AACT;AAEO,SAAS,kBAAkB,OAA0C;AAC1E,SAAO;AACT;AAEO,SAAS,iBAAiB,OAAc,MAAoC;AACjF,SAAO,kBAAkB,KAAK,EAAE,IAAI,IAAI,KAAK;AAC/C;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,6CAAoB;AACvB,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,MAAM,OAAO,QAAQ,IAAI;AAAA,IAEpE,KAAK,6CAAoB,sBAAsB;AAC7C,YAAM,YAAY,IAAI,IAAI,KAAK;AAE/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,IAAI;AAEpD,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/state/modules/components-meta.ts"],"sourcesContent":["import { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\n\nexport const ComponentIcon = {\n Billing: 'billing',\n Bolt: 'bolt',\n Button: 'button',\n Carousel: 'carousel',\n Chats: 'chats',\n Code: 'code',\n Countdown: 'countdown',\n Cube: 'cube',\n Database: 'database',\n Divider: 'divider',\n Form: 'form',\n Gallery: 'gallery',\n Help: 'help',\n Image: 'image',\n Layout: 'layout',\n Lock: 'lock',\n Navigation: 'navigation',\n SocialLinks: 'social-links',\n Star: 'star',\n Text: 'text',\n Users: 'users',\n Video: 'video',\n} as const\n\nexport type ComponentIcon = (typeof ComponentIcon)[keyof typeof ComponentIcon]\n\nexport type ComponentMeta = {\n label: string\n icon: ComponentIcon\n hidden: boolean\n description?: string\n builtinSuspense?: boolean\n}\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function getComponentMeta(state: State, type: string): ComponentMeta | null {\n return getComponentsMeta(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4E;AAErE,MAAM,gBAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AACT;AAcO,SAAS,gBAAgB;AAAA,EAC9B,iBAAiB,oBAAI,IAAI;AAC3B,IAAqD,CAAC,GAAU;AAC9D,SAAO;AACT;AAEO,SAAS,kBAAkB,OAA0C;AAC1E,SAAO;AACT;AAEO,SAAS,iBAAiB,OAAc,MAAoC;AACjF,SAAO,kBAAkB,KAAK,EAAE,IAAI,IAAI,KAAK;AAC/C;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY;AACf,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,MAAM,OAAO,QAAQ,IAAI;AAAA,IAEpE,KAAK,2BAAY,sBAAsB;AACrC,YAAM,YAAY,IAAI,IAAI,KAAK;AAE/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,IAAI;AAEpD,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -22,8 +22,7 @@ __export(element_imperative_handles_exports, {
22
22
  reducer: () => reducer
23
23
  });
24
24
  module.exports = __toCommonJS(element_imperative_handles_exports);
25
- var import_actions = require("../../actions");
26
- var import_read_only_actions = require("../../actions/internal/read-only-actions");
25
+ var import_actions = require("../actions");
27
26
  function getElementImperativeHandles(state) {
28
27
  return state;
29
28
  }
@@ -34,7 +33,7 @@ function reducer(state = getInitialState(), action) {
34
33
  if (!(0, import_actions.isKnownAction)(action))
35
34
  return state;
36
35
  switch (action.type) {
37
- case import_read_only_actions.ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE:
36
+ case import_actions.ActionTypes.REGISTER_COMPONENT_HANDLE:
38
37
  return new Map(state).set(
39
38
  action.payload.documentKey,
40
39
  new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(
@@ -42,7 +41,7 @@ function reducer(state = getInitialState(), action) {
42
41
  action.payload.componentHandle
43
42
  )
44
43
  );
45
- case import_read_only_actions.ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE: {
44
+ case import_actions.ActionTypes.UNREGISTER_COMPONENT_HANDLE: {
46
45
  const byElementKey = new Map(state.get(action.payload.documentKey) ?? []);
47
46
  const deleted = byElementKey.delete(action.payload.elementKey);
48
47
  if (!deleted)
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/modules/element-imperative-handles.ts"],"sourcesContent":["import { ElementImperativeHandle } from '../../runtimes/react/element-imperative-handle'\nimport { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\n\ntype State = Map<string, Map<string, ElementImperativeHandle>>\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return state\n}\n\nfunction getInitialState(): State {\n return new Map()\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE:\n return new Map(state).set(\n action.payload.documentKey,\n new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const byElementKey = new Map(state.get(action.payload.documentKey) ?? [])\n\n const deleted = byElementKey.delete(action.payload.elementKey)\n\n if (!deleted) return state\n\n return new Map(state).set(action.payload.documentKey, byElementKey)\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAA4E;AAIrE,SAAS,4BACd,OACmD;AACnD,SAAO;AACT;AAEA,SAAS,kBAAyB;AAChC,SAAO,oBAAI,IAAI;AACjB;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY;AACf,aAAO,IAAI,IAAI,KAAK,EAAE;AAAA,QACpB,OAAO,QAAQ;AAAA,QACf,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,OAAO,QAAQ,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE;AAAA,UAC5D,OAAO,QAAQ;AAAA,UACf,OAAO,QAAQ;AAAA,QACjB;AAAA,MACF;AAAA,IAEF,KAAK,2BAAY,6BAA6B;AAC5C,YAAM,eAAe,IAAI,IAAI,MAAM,IAAI,OAAO,QAAQ,WAAW,KAAK,CAAC,CAAC;AAExE,YAAM,UAAU,aAAa,OAAO,OAAO,QAAQ,UAAU;AAE7D,UAAI,CAAC;AAAS,eAAO;AAErB,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,aAAa,YAAY;AAAA,IACpE;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -43,8 +43,6 @@ var import_immutable = require("immutable");
43
43
  var import_controls = require("@makeswift/controls");
44
44
  var Introspection = __toESM(require("../../prop-controllers/introspection"));
45
45
  var import_actions = require("../actions");
46
- var import_read_only_actions = require("../actions/internal/read-only-actions");
47
- var import_read_write_actions = require("../actions/internal/read-write-actions");
48
46
  var import_read_only_documents = require("./read-only-documents");
49
47
  function getInitialState(documents, descriptors) {
50
48
  const state = /* @__PURE__ */ new Map();
@@ -74,19 +72,19 @@ function reducer(state = getInitialState(), action) {
74
72
  if (!(0, import_actions.isKnownAction)(action))
75
73
  return state;
76
74
  switch (action.type) {
77
- case import_read_only_actions.ReadOnlyActionTypes.CREATE_ELEMENT_TREE: {
75
+ case import_actions.ActionTypes.CREATE_ELEMENT_TREE: {
78
76
  const { document, descriptors } = action.payload;
79
77
  return new Map(state).set(
80
78
  document.key,
81
79
  buildElementTree((0, import_read_only_documents.getRootElement)(document), descriptors)
82
80
  );
83
81
  }
84
- case import_read_only_actions.ReadOnlyActionTypes.DELETE_ELEMENT_TREE: {
82
+ case import_actions.ActionTypes.DELETE_ELEMENT_TREE: {
85
83
  const nextState = new Map(state);
86
84
  const deleted = nextState.delete(action.payload.documentKey);
87
85
  return deleted ? nextState : state;
88
86
  }
89
- case import_read_write_actions.ReadWriteActionTypes.CHANGE_ELEMENT_TREE: {
87
+ case import_actions.ActionTypes.CHANGE_ELEMENT_TREE: {
90
88
  const { oldDocument, newDocument, descriptors, operation } = action.payload;
91
89
  const documentKey = oldDocument.key;
92
90
  console.assert(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/element-trees.ts"],"sourcesContent":["import { type Operation } from 'ot-json0'\nimport { getIn } from 'immutable'\n\nimport { type Element, type ElementData, isElementReference } from '@makeswift/controls'\n\nimport * as Introspection from '../../prop-controllers/introspection'\n\nimport { type Action, type UnknownAction, isKnownAction } from '../actions'\n\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\nimport { ReadWriteActionTypes } from '../actions/internal/read-write-actions'\n\nimport { getRootElement, type Document } from './read-only-documents'\nimport { type DescriptorsByComponentType } from './prop-controllers'\n\nexport type ElementTree = {\n elements: Map<string, Element>\n elementIds: Map<string, string>\n}\n\nexport type State = Map<string, ElementTree>\n\nexport function getInitialState(\n documents?: Map<string, Document>,\n descriptors?: DescriptorsByComponentType,\n): State {\n const state = new Map<string, ElementTree>()\n if (documents == null || descriptors == null) return state\n\n for (const [documentKey, document] of documents) {\n state.set(documentKey, buildElementTree(getRootElement(document), descriptors))\n }\n\n return state\n}\n\nfunction getElementTree(state: State, documentKey: string): ElementTree | null {\n return state.get(documentKey) ?? null\n}\n\nexport function getElements(state: State, documentKey: string): Map<string, Element> {\n return getElementTree(state, documentKey)?.elements ?? new Map()\n}\n\nexport function getElementIds(state: State, documentKey: string): Map<string, string> {\n return getElementTree(state, documentKey)?.elementIds ?? new Map()\n}\n\nexport function getElement(state: State, documentKey: string, elementKey: string): Element | null {\n return getElements(state, documentKey).get(elementKey) ?? null\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n return getElementIds(state, documentKey).get(elementKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.CREATE_ELEMENT_TREE: {\n const { document, descriptors } = action.payload\n return new Map(state).set(\n document.key,\n buildElementTree(getRootElement(document), descriptors),\n )\n }\n\n case ReadOnlyActionTypes.DELETE_ELEMENT_TREE: {\n const nextState = new Map(state)\n const deleted = nextState.delete(action.payload.documentKey)\n return deleted ? nextState : state\n }\n\n case ReadWriteActionTypes.CHANGE_ELEMENT_TREE: {\n const { oldDocument, newDocument, descriptors, operation } = action.payload\n const documentKey = oldDocument.key\n console.assert(\n documentKey === newDocument.key,\n `Mismatching document keys ${documentKey} !== ${newDocument.key}`,\n )\n\n const elementTree = state.get(documentKey)\n if (elementTree == null) return state\n\n const updatedElementTree = applyChanges(\n elementTree,\n descriptors,\n {\n old: getRootElement(oldDocument),\n new: getRootElement(newDocument),\n },\n operation,\n )\n\n return new Map(state).set(documentKey, updatedElementTree)\n }\n\n default:\n return state\n }\n}\n\nexport function* traverseElementTree(\n element: Element,\n descriptors: DescriptorsByComponentType,\n): Generator<Element> {\n yield element\n if (isElementReference(element)) return\n\n const elementDescriptors = descriptors.get(element.type)\n if (elementDescriptors == null) return\n\n for (const [propKey, descriptor] of Object.entries(elementDescriptors)) {\n const children = Introspection.getElementChildren(descriptor, element.props[propKey])\n for (const child of children) {\n yield* traverseElementTree(child, descriptors)\n }\n }\n}\n\nfunction getElementIdProp(\n element: ElementData,\n descriptors: DescriptorsByComponentType,\n): string | null {\n const elementDescriptors = descriptors.get(element.type)\n if (elementDescriptors == null) return null\n\n for (const [propName, descriptor] of Object.entries(elementDescriptors)) {\n const elementId = Introspection.getElementId(descriptor, element.props[propName])\n if (elementId != null) return elementId\n }\n\n return null\n}\n\nexport function buildElementTree(\n rootElement: Element,\n descriptors: DescriptorsByComponentType,\n): ElementTree {\n const elements = new Map<string, Element>()\n const elementIds = new Map<string, string>()\n\n for (const element of traverseElementTree(rootElement, descriptors)) {\n elements.set(element.key, element)\n if (!isElementReference(element)) {\n const elementId = getElementIdProp(element, descriptors)\n if (elementId != null) elementIds.set(element.key, elementId)\n }\n }\n\n return {\n elements,\n elementIds,\n }\n}\n\ntype OperationPath = Operation[number]['p']\n\n// performance-sensitive function, intentionally not using `elementData` schema here\nfunction isElement(item: unknown): item is Element {\n return (\n typeof item === 'object' &&\n item != null &&\n 'key' in item &&\n 'type' in item &&\n typeof item.key === 'string' &&\n typeof item.type === 'string'\n )\n}\n\ntype ElementOperationPath = { elementPath: OperationPath; propName: string | null }\n\nfunction getElementOperationPath(path: OperationPath): ElementOperationPath {\n if (path.length === 0) {\n return { elementPath: [], propName: null }\n }\n\n const i = path.findLastIndex(\n (fragment, i) =>\n typeof fragment === 'number' && (i === path.length - 1 || path[i + 1] === 'props'),\n )\n\n if ((i === -1 && path[0] !== 'props') || path.length - i < 3) {\n console.error('Operation path does not point to an element property', { path })\n return { elementPath: [], propName: null }\n }\n\n return { elementPath: path.slice(0, i + 1), propName: `${path.slice(i + 1).at(1)}` }\n}\n\nexport function getChangedElementsPaths(\n path: OperationPath,\n): [ElementOperationPath, ...ElementOperationPath[]] {\n let elementOp = getElementOperationPath(path)\n const result: [ElementOperationPath, ...ElementOperationPath[]] = [elementOp]\n while (elementOp.elementPath.length > 0) {\n elementOp = getElementOperationPath(elementOp.elementPath.slice(0, -1))\n result.push(elementOp)\n }\n\n return result\n}\n\nfunction getElementByPath(rootElement: Element, elementPath: OperationPath): Element | null {\n const item = getIn(rootElement, elementPath)\n if (!isElement(item)) {\n console.error('Expected an element, got', item, {\n rootElement,\n elementPath,\n })\n\n return null\n }\n\n return item\n}\n\nfunction getElementAndPropName(\n rootElement: Element,\n { elementPath, propName }: ElementOperationPath,\n): [Element, string | null] {\n const element = getElementByPath(rootElement, elementPath)\n return element != null ? [element, propName] : [rootElement, null]\n}\n\nfunction updateParentElements(\n elements: ElementTree['elements'],\n elementPaths: ElementOperationPath[],\n rootElement: Element,\n): void {\n elementPaths.forEach(({ elementPath }) => {\n const element = getElementByPath(rootElement, elementPath)\n if (element != null) elements.set(element.key, element)\n })\n}\n\nfunction hasChildren(\n element: Element,\n propName: string,\n descriptors: DescriptorsByComponentType,\n): boolean {\n if (isElementReference(element)) return false\n\n const propDescriptor = descriptors.get(element.type)?.[propName]\n if (propDescriptor == null) return false\n\n const children = Introspection.getElementChildren(propDescriptor, element.props[propName])\n return children.length > 0\n}\n\nfunction deleteElement(\n { elements, elementIds }: ElementTree,\n deletedElement: Element,\n propName: string | null,\n descriptors: DescriptorsByComponentType,\n) {\n if (propName == null || hasChildren(deletedElement, propName, descriptors)) {\n for (const element of traverseElementTree(deletedElement, descriptors)) {\n elements.delete(element.key)\n elementIds.delete(element.key)\n }\n } else {\n elements.delete(deletedElement.key)\n elementIds.delete(deletedElement.key)\n }\n}\n\nfunction applyDelete(\n elementTree: ElementTree,\n descriptors: DescriptorsByComponentType,\n rootElements: { old: Element; new: Element },\n path: OperationPath,\n): ElementTree {\n const [deleteElementPath, ...parentElementPaths] = getChangedElementsPaths(path)\n const [deletedElement, propName] = getElementAndPropName(rootElements.old, deleteElementPath)\n\n const elements = new Map(elementTree.elements)\n const elementIds = new Map(elementTree.elementIds)\n\n deleteElement({ elements, elementIds }, deletedElement, propName, descriptors)\n updateParentElements(elements, parentElementPaths, rootElements.new)\n\n return {\n elements,\n elementIds,\n }\n}\n\nfunction insertElement(\n { elements, elementIds }: ElementTree,\n insertedElement: Element,\n propName: string | null,\n descriptors: DescriptorsByComponentType,\n) {\n if (propName == null || hasChildren(insertedElement, propName, descriptors)) {\n for (const element of traverseElementTree(insertedElement, descriptors)) {\n elements.set(element.key, element)\n if (!isElementReference(element)) {\n const elementId = getElementIdProp(element, descriptors)\n if (elementId != null) elementIds.set(element.key, elementId)\n }\n }\n } else {\n elements.set(insertedElement.key, insertedElement)\n if (!isElementReference(insertedElement)) {\n const elementId = getElementIdProp(insertedElement, descriptors)\n if (elementId != null) elementIds.set(insertedElement.key, elementId)\n }\n }\n}\n\nfunction applyInsert(\n elementTree: ElementTree,\n descriptors: DescriptorsByComponentType,\n rootElements: { old: Element; new: Element },\n path: OperationPath,\n): ElementTree {\n const [insertedElementPath, ...parentElementPaths] = getChangedElementsPaths(path)\n const [insertedElement, propName] = getElementAndPropName(rootElements.new, insertedElementPath)\n\n const elements = new Map(elementTree.elements)\n const elementIds = new Map(elementTree.elementIds)\n\n insertElement({ elements, elementIds }, insertedElement, propName, descriptors)\n updateParentElements(elements, parentElementPaths, rootElements.new)\n\n return {\n elements,\n elementIds,\n }\n}\n\nfunction applyUpdate(\n elementTree: ElementTree,\n descriptors: DescriptorsByComponentType,\n rootElements: { old: Element; new: Element },\n path: OperationPath,\n): ElementTree {\n const [updateElementPath, ...parentElementPaths] = getChangedElementsPaths(path)\n const [deletedElement, propName] = getElementAndPropName(rootElements.old, updateElementPath)\n const [insertedElement, _] = getElementAndPropName(rootElements.new, updateElementPath)\n\n const elements = new Map(elementTree.elements)\n const elementIds = new Map(elementTree.elementIds)\n\n deleteElement({ elements, elementIds }, deletedElement, propName, descriptors)\n insertElement({ elements, elementIds }, insertedElement, propName, descriptors)\n\n updateParentElements(elements, parentElementPaths, rootElements.new)\n\n return {\n elements,\n elementIds,\n }\n}\n\nfunction applyChanges(\n elementTree: ElementTree,\n descriptors: DescriptorsByComponentType,\n rootElements: { old: Element; new: Element },\n operation: Operation,\n): ElementTree {\n return operation.reduce((tree, op) => {\n const hasDelete = 'ld' in op || 'od' in op\n const hasInsert = 'li' in op || 'oi' in op\n if (hasDelete && hasInsert) {\n return applyUpdate(tree, descriptors, rootElements, op.p)\n }\n\n if (hasDelete) return applyDelete(tree, descriptors, rootElements, op.p)\n if (hasInsert) return applyInsert(tree, descriptors, rootElements, op.p)\n return tree\n }, elementTree)\n}\n"],"mappings":"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","names":["i"]}
1
+ {"version":3,"sources":["../../../../src/state/modules/element-trees.ts"],"sourcesContent":["import { type Operation } from 'ot-json0'\nimport { getIn } from 'immutable'\n\nimport { type Element, type ElementData, isElementReference } from '@makeswift/controls'\n\nimport * as Introspection from '../../prop-controllers/introspection'\n\nimport { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\n\nimport { getRootElement, type Document } from './read-only-documents'\nimport { type DescriptorsByComponentType } from './prop-controllers'\n\nexport type ElementTree = {\n elements: Map<string, Element>\n elementIds: Map<string, string>\n}\n\nexport type State = Map<string, ElementTree>\n\nexport function getInitialState(\n documents?: Map<string, Document>,\n descriptors?: DescriptorsByComponentType,\n): State {\n const state = new Map<string, ElementTree>()\n if (documents == null || descriptors == null) return state\n\n for (const [documentKey, document] of documents) {\n state.set(documentKey, buildElementTree(getRootElement(document), descriptors))\n }\n\n return state\n}\n\nfunction getElementTree(state: State, documentKey: string): ElementTree | null {\n return state.get(documentKey) ?? null\n}\n\nexport function getElements(state: State, documentKey: string): Map<string, Element> {\n return getElementTree(state, documentKey)?.elements ?? new Map()\n}\n\nexport function getElementIds(state: State, documentKey: string): Map<string, string> {\n return getElementTree(state, documentKey)?.elementIds ?? new Map()\n}\n\nexport function getElement(state: State, documentKey: string, elementKey: string): Element | null {\n return getElements(state, documentKey).get(elementKey) ?? null\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n return getElementIds(state, documentKey).get(elementKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.CREATE_ELEMENT_TREE: {\n const { document, descriptors } = action.payload\n return new Map(state).set(\n document.key,\n buildElementTree(getRootElement(document), descriptors),\n )\n }\n\n case ActionTypes.DELETE_ELEMENT_TREE: {\n const nextState = new Map(state)\n const deleted = nextState.delete(action.payload.documentKey)\n return deleted ? nextState : state\n }\n\n case ActionTypes.CHANGE_ELEMENT_TREE: {\n const { oldDocument, newDocument, descriptors, operation } = action.payload\n const documentKey = oldDocument.key\n console.assert(\n documentKey === newDocument.key,\n `Mismatching document keys ${documentKey} !== ${newDocument.key}`,\n )\n\n const elementTree = state.get(documentKey)\n if (elementTree == null) return state\n\n const updatedElementTree = applyChanges(\n elementTree,\n descriptors,\n {\n old: getRootElement(oldDocument),\n new: getRootElement(newDocument),\n },\n operation,\n )\n\n return new Map(state).set(documentKey, updatedElementTree)\n }\n\n default:\n return state\n }\n}\n\nexport function* traverseElementTree(\n element: Element,\n descriptors: DescriptorsByComponentType,\n): Generator<Element> {\n yield element\n if (isElementReference(element)) return\n\n const elementDescriptors = descriptors.get(element.type)\n if (elementDescriptors == null) return\n\n for (const [propKey, descriptor] of Object.entries(elementDescriptors)) {\n const children = Introspection.getElementChildren(descriptor, element.props[propKey])\n for (const child of children) {\n yield* traverseElementTree(child, descriptors)\n }\n }\n}\n\nfunction getElementIdProp(\n element: ElementData,\n descriptors: DescriptorsByComponentType,\n): string | null {\n const elementDescriptors = descriptors.get(element.type)\n if (elementDescriptors == null) return null\n\n for (const [propName, descriptor] of Object.entries(elementDescriptors)) {\n const elementId = Introspection.getElementId(descriptor, element.props[propName])\n if (elementId != null) return elementId\n }\n\n return null\n}\n\nexport function buildElementTree(\n rootElement: Element,\n descriptors: DescriptorsByComponentType,\n): ElementTree {\n const elements = new Map<string, Element>()\n const elementIds = new Map<string, string>()\n\n for (const element of traverseElementTree(rootElement, descriptors)) {\n elements.set(element.key, element)\n if (!isElementReference(element)) {\n const elementId = getElementIdProp(element, descriptors)\n if (elementId != null) elementIds.set(element.key, elementId)\n }\n }\n\n return {\n elements,\n elementIds,\n }\n}\n\ntype OperationPath = Operation[number]['p']\n\n// performance-sensitive function, intentionally not using `elementData` schema here\nfunction isElement(item: unknown): item is Element {\n return (\n typeof item === 'object' &&\n item != null &&\n 'key' in item &&\n 'type' in item &&\n typeof item.key === 'string' &&\n typeof item.type === 'string'\n )\n}\n\ntype ElementOperationPath = { elementPath: OperationPath; propName: string | null }\n\nfunction getElementOperationPath(path: OperationPath): ElementOperationPath {\n if (path.length === 0) {\n return { elementPath: [], propName: null }\n }\n\n const i = path.findLastIndex(\n (fragment, i) =>\n typeof fragment === 'number' && (i === path.length - 1 || path[i + 1] === 'props'),\n )\n\n if ((i === -1 && path[0] !== 'props') || path.length - i < 3) {\n console.error('Operation path does not point to an element property', { path })\n return { elementPath: [], propName: null }\n }\n\n return { elementPath: path.slice(0, i + 1), propName: `${path.slice(i + 1).at(1)}` }\n}\n\nexport function getChangedElementsPaths(\n path: OperationPath,\n): [ElementOperationPath, ...ElementOperationPath[]] {\n let elementOp = getElementOperationPath(path)\n const result: [ElementOperationPath, ...ElementOperationPath[]] = [elementOp]\n while (elementOp.elementPath.length > 0) {\n elementOp = getElementOperationPath(elementOp.elementPath.slice(0, -1))\n result.push(elementOp)\n }\n\n return result\n}\n\nfunction getElementByPath(rootElement: Element, elementPath: OperationPath): Element | null {\n const item = getIn(rootElement, elementPath)\n if (!isElement(item)) {\n console.error('Expected an element, got', item, {\n rootElement,\n elementPath,\n })\n\n return null\n }\n\n return item\n}\n\nfunction getElementAndPropName(\n rootElement: Element,\n { elementPath, propName }: ElementOperationPath,\n): [Element, string | null] {\n const element = getElementByPath(rootElement, elementPath)\n return element != null ? [element, propName] : [rootElement, null]\n}\n\nfunction updateParentElements(\n elements: ElementTree['elements'],\n elementPaths: ElementOperationPath[],\n rootElement: Element,\n): void {\n elementPaths.forEach(({ elementPath }) => {\n const element = getElementByPath(rootElement, elementPath)\n if (element != null) elements.set(element.key, element)\n })\n}\n\nfunction hasChildren(\n element: Element,\n propName: string,\n descriptors: DescriptorsByComponentType,\n): boolean {\n if (isElementReference(element)) return false\n\n const propDescriptor = descriptors.get(element.type)?.[propName]\n if (propDescriptor == null) return false\n\n const children = Introspection.getElementChildren(propDescriptor, element.props[propName])\n return children.length > 0\n}\n\nfunction deleteElement(\n { elements, elementIds }: ElementTree,\n deletedElement: Element,\n propName: string | null,\n descriptors: DescriptorsByComponentType,\n) {\n if (propName == null || hasChildren(deletedElement, propName, descriptors)) {\n for (const element of traverseElementTree(deletedElement, descriptors)) {\n elements.delete(element.key)\n elementIds.delete(element.key)\n }\n } else {\n elements.delete(deletedElement.key)\n elementIds.delete(deletedElement.key)\n }\n}\n\nfunction applyDelete(\n elementTree: ElementTree,\n descriptors: DescriptorsByComponentType,\n rootElements: { old: Element; new: Element },\n path: OperationPath,\n): ElementTree {\n const [deleteElementPath, ...parentElementPaths] = getChangedElementsPaths(path)\n const [deletedElement, propName] = getElementAndPropName(rootElements.old, deleteElementPath)\n\n const elements = new Map(elementTree.elements)\n const elementIds = new Map(elementTree.elementIds)\n\n deleteElement({ elements, elementIds }, deletedElement, propName, descriptors)\n updateParentElements(elements, parentElementPaths, rootElements.new)\n\n return {\n elements,\n elementIds,\n }\n}\n\nfunction insertElement(\n { elements, elementIds }: ElementTree,\n insertedElement: Element,\n propName: string | null,\n descriptors: DescriptorsByComponentType,\n) {\n if (propName == null || hasChildren(insertedElement, propName, descriptors)) {\n for (const element of traverseElementTree(insertedElement, descriptors)) {\n elements.set(element.key, element)\n if (!isElementReference(element)) {\n const elementId = getElementIdProp(element, descriptors)\n if (elementId != null) elementIds.set(element.key, elementId)\n }\n }\n } else {\n elements.set(insertedElement.key, insertedElement)\n if (!isElementReference(insertedElement)) {\n const elementId = getElementIdProp(insertedElement, descriptors)\n if (elementId != null) elementIds.set(insertedElement.key, elementId)\n }\n }\n}\n\nfunction applyInsert(\n elementTree: ElementTree,\n descriptors: DescriptorsByComponentType,\n rootElements: { old: Element; new: Element },\n path: OperationPath,\n): ElementTree {\n const [insertedElementPath, ...parentElementPaths] = getChangedElementsPaths(path)\n const [insertedElement, propName] = getElementAndPropName(rootElements.new, insertedElementPath)\n\n const elements = new Map(elementTree.elements)\n const elementIds = new Map(elementTree.elementIds)\n\n insertElement({ elements, elementIds }, insertedElement, propName, descriptors)\n updateParentElements(elements, parentElementPaths, rootElements.new)\n\n return {\n elements,\n elementIds,\n }\n}\n\nfunction applyUpdate(\n elementTree: ElementTree,\n descriptors: DescriptorsByComponentType,\n rootElements: { old: Element; new: Element },\n path: OperationPath,\n): ElementTree {\n const [updateElementPath, ...parentElementPaths] = getChangedElementsPaths(path)\n const [deletedElement, propName] = getElementAndPropName(rootElements.old, updateElementPath)\n const [insertedElement, _] = getElementAndPropName(rootElements.new, updateElementPath)\n\n const elements = new Map(elementTree.elements)\n const elementIds = new Map(elementTree.elementIds)\n\n deleteElement({ elements, elementIds }, deletedElement, propName, descriptors)\n insertElement({ elements, elementIds }, insertedElement, propName, descriptors)\n\n updateParentElements(elements, parentElementPaths, rootElements.new)\n\n return {\n elements,\n elementIds,\n }\n}\n\nfunction applyChanges(\n elementTree: ElementTree,\n descriptors: DescriptorsByComponentType,\n rootElements: { old: Element; new: Element },\n operation: Operation,\n): ElementTree {\n return operation.reduce((tree, op) => {\n const hasDelete = 'ld' in op || 'od' in op\n const hasInsert = 'li' in op || 'oi' in op\n if (hasDelete && hasInsert) {\n return applyUpdate(tree, descriptors, rootElements, op.p)\n }\n\n if (hasDelete) return applyDelete(tree, descriptors, rootElements, op.p)\n if (hasInsert) return applyInsert(tree, descriptors, rootElements, op.p)\n return tree\n }, elementTree)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAAsB;AAEtB,sBAAmE;AAEnE,oBAA+B;AAE/B,qBAA4E;AAE5E,iCAA8C;AAUvC,SAAS,gBACd,WACA,aACO;AACP,QAAM,QAAQ,oBAAI,IAAyB;AAC3C,MAAI,aAAa,QAAQ,eAAe;AAAM,WAAO;AAErD,aAAW,CAAC,aAAa,QAAQ,KAAK,WAAW;AAC/C,UAAM,IAAI,aAAa,qBAAiB,2CAAe,QAAQ,GAAG,WAAW,CAAC;AAAA,EAChF;AAEA,SAAO;AACT;AAEA,SAAS,eAAe,OAAc,aAAyC;AAC7E,SAAO,MAAM,IAAI,WAAW,KAAK;AACnC;AAEO,SAAS,YAAY,OAAc,aAA2C;AACnF,SAAO,eAAe,OAAO,WAAW,GAAG,YAAY,oBAAI,IAAI;AACjE;AAEO,SAAS,cAAc,OAAc,aAA0C;AACpF,SAAO,eAAe,OAAO,WAAW,GAAG,cAAc,oBAAI,IAAI;AACnE;AAEO,SAAS,WAAW,OAAc,aAAqB,YAAoC;AAChG,SAAO,YAAY,OAAO,WAAW,EAAE,IAAI,UAAU,KAAK;AAC5D;AAEO,SAAS,aAAa,OAAc,aAAqB,YAAmC;AACjG,SAAO,cAAc,OAAO,WAAW,EAAE,IAAI,UAAU,KAAK;AAC9D;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY,qBAAqB;AACpC,YAAM,EAAE,UAAU,YAAY,IAAI,OAAO;AACzC,aAAO,IAAI,IAAI,KAAK,EAAE;AAAA,QACpB,SAAS;AAAA,QACT,qBAAiB,2CAAe,QAAQ,GAAG,WAAW;AAAA,MACxD;AAAA,IACF;AAAA,IAEA,KAAK,2BAAY,qBAAqB;AACpC,YAAM,YAAY,IAAI,IAAI,KAAK;AAC/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,WAAW;AAC3D,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA,KAAK,2BAAY,qBAAqB;AACpC,YAAM,EAAE,aAAa,aAAa,aAAa,UAAU,IAAI,OAAO;AACpE,YAAM,cAAc,YAAY;AAChC,cAAQ;AAAA,QACN,gBAAgB,YAAY;AAAA,QAC5B,6BAA6B,WAAW,QAAQ,YAAY,GAAG;AAAA,MACjE;AAEA,YAAM,cAAc,MAAM,IAAI,WAAW;AACzC,UAAI,eAAe;AAAM,eAAO;AAEhC,YAAM,qBAAqB;AAAA,QACzB;AAAA,QACA;AAAA,QACA;AAAA,UACE,SAAK,2CAAe,WAAW;AAAA,UAC/B,SAAK,2CAAe,WAAW;AAAA,QACjC;AAAA,QACA;AAAA,MACF;AAEA,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,aAAa,kBAAkB;AAAA,IAC3D;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;AAEO,UAAU,oBACf,SACA,aACoB;AACpB,QAAM;AACN,UAAI,oCAAmB,OAAO;AAAG;AAEjC,QAAM,qBAAqB,YAAY,IAAI,QAAQ,IAAI;AACvD,MAAI,sBAAsB;AAAM;AAEhC,aAAW,CAAC,SAAS,UAAU,KAAK,OAAO,QAAQ,kBAAkB,GAAG;AACtE,UAAM,WAAW,cAAc,mBAAmB,YAAY,QAAQ,MAAM,OAAO,CAAC;AACpF,eAAW,SAAS,UAAU;AAC5B,aAAO,oBAAoB,OAAO,WAAW;AAAA,IAC/C;AAAA,EACF;AACF;AAEA,SAAS,iBACP,SACA,aACe;AACf,QAAM,qBAAqB,YAAY,IAAI,QAAQ,IAAI;AACvD,MAAI,sBAAsB;AAAM,WAAO;AAEvC,aAAW,CAAC,UAAU,UAAU,KAAK,OAAO,QAAQ,kBAAkB,GAAG;AACvE,UAAM,YAAY,cAAc,aAAa,YAAY,QAAQ,MAAM,QAAQ,CAAC;AAChF,QAAI,aAAa;AAAM,aAAO;AAAA,EAChC;AAEA,SAAO;AACT;AAEO,SAAS,iBACd,aACA,aACa;AACb,QAAM,WAAW,oBAAI,IAAqB;AAC1C,QAAM,aAAa,oBAAI,IAAoB;AAE3C,aAAW,WAAW,oBAAoB,aAAa,WAAW,GAAG;AACnE,aAAS,IAAI,QAAQ,KAAK,OAAO;AACjC,QAAI,KAAC,oCAAmB,OAAO,GAAG;AAChC,YAAM,YAAY,iBAAiB,SAAS,WAAW;AACvD,UAAI,aAAa;AAAM,mBAAW,IAAI,QAAQ,KAAK,SAAS;AAAA,IAC9D;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAKA,SAAS,UAAU,MAAgC;AACjD,SACE,OAAO,SAAS,YAChB,QAAQ,QACR,SAAS,QACT,UAAU,QACV,OAAO,KAAK,QAAQ,YACpB,OAAO,KAAK,SAAS;AAEzB;AAIA,SAAS,wBAAwB,MAA2C;AAC1E,MAAI,KAAK,WAAW,GAAG;AACrB,WAAO,EAAE,aAAa,CAAC,GAAG,UAAU,KAAK;AAAA,EAC3C;AAEA,QAAM,IAAI,KAAK;AAAA,IACb,CAAC,UAAUA,OACT,OAAO,aAAa,aAAaA,OAAM,KAAK,SAAS,KAAK,KAAKA,KAAI,CAAC,MAAM;AAAA,EAC9E;AAEA,MAAK,MAAM,MAAM,KAAK,CAAC,MAAM,WAAY,KAAK,SAAS,IAAI,GAAG;AAC5D,YAAQ,MAAM,wDAAwD,EAAE,KAAK,CAAC;AAC9E,WAAO,EAAE,aAAa,CAAC,GAAG,UAAU,KAAK;AAAA,EAC3C;AAEA,SAAO,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,UAAU,GAAG,KAAK,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG;AACrF;AAEO,SAAS,wBACd,MACmD;AACnD,MAAI,YAAY,wBAAwB,IAAI;AAC5C,QAAM,SAA4D,CAAC,SAAS;AAC5E,SAAO,UAAU,YAAY,SAAS,GAAG;AACvC,gBAAY,wBAAwB,UAAU,YAAY,MAAM,GAAG,EAAE,CAAC;AACtE,WAAO,KAAK,SAAS;AAAA,EACvB;AAEA,SAAO;AACT;AAEA,SAAS,iBAAiB,aAAsB,aAA4C;AAC1F,QAAM,WAAO,wBAAM,aAAa,WAAW;AAC3C,MAAI,CAAC,UAAU,IAAI,GAAG;AACpB,YAAQ,MAAM,4BAA4B,MAAM;AAAA,MAC9C;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,sBACP,aACA,EAAE,aAAa,SAAS,GACE;AAC1B,QAAM,UAAU,iBAAiB,aAAa,WAAW;AACzD,SAAO,WAAW,OAAO,CAAC,SAAS,QAAQ,IAAI,CAAC,aAAa,IAAI;AACnE;AAEA,SAAS,qBACP,UACA,cACA,aACM;AACN,eAAa,QAAQ,CAAC,EAAE,YAAY,MAAM;AACxC,UAAM,UAAU,iBAAiB,aAAa,WAAW;AACzD,QAAI,WAAW;AAAM,eAAS,IAAI,QAAQ,KAAK,OAAO;AAAA,EACxD,CAAC;AACH;AAEA,SAAS,YACP,SACA,UACA,aACS;AACT,UAAI,oCAAmB,OAAO;AAAG,WAAO;AAExC,QAAM,iBAAiB,YAAY,IAAI,QAAQ,IAAI,IAAI,QAAQ;AAC/D,MAAI,kBAAkB;AAAM,WAAO;AAEnC,QAAM,WAAW,cAAc,mBAAmB,gBAAgB,QAAQ,MAAM,QAAQ,CAAC;AACzF,SAAO,SAAS,SAAS;AAC3B;AAEA,SAAS,cACP,EAAE,UAAU,WAAW,GACvB,gBACA,UACA,aACA;AACA,MAAI,YAAY,QAAQ,YAAY,gBAAgB,UAAU,WAAW,GAAG;AAC1E,eAAW,WAAW,oBAAoB,gBAAgB,WAAW,GAAG;AACtE,eAAS,OAAO,QAAQ,GAAG;AAC3B,iBAAW,OAAO,QAAQ,GAAG;AAAA,IAC/B;AAAA,EACF,OAAO;AACL,aAAS,OAAO,eAAe,GAAG;AAClC,eAAW,OAAO,eAAe,GAAG;AAAA,EACtC;AACF;AAEA,SAAS,YACP,aACA,aACA,cACA,MACa;AACb,QAAM,CAAC,mBAAmB,GAAG,kBAAkB,IAAI,wBAAwB,IAAI;AAC/E,QAAM,CAAC,gBAAgB,QAAQ,IAAI,sBAAsB,aAAa,KAAK,iBAAiB;AAE5F,QAAM,WAAW,IAAI,IAAI,YAAY,QAAQ;AAC7C,QAAM,aAAa,IAAI,IAAI,YAAY,UAAU;AAEjD,gBAAc,EAAE,UAAU,WAAW,GAAG,gBAAgB,UAAU,WAAW;AAC7E,uBAAqB,UAAU,oBAAoB,aAAa,GAAG;AAEnE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,cACP,EAAE,UAAU,WAAW,GACvB,iBACA,UACA,aACA;AACA,MAAI,YAAY,QAAQ,YAAY,iBAAiB,UAAU,WAAW,GAAG;AAC3E,eAAW,WAAW,oBAAoB,iBAAiB,WAAW,GAAG;AACvE,eAAS,IAAI,QAAQ,KAAK,OAAO;AACjC,UAAI,KAAC,oCAAmB,OAAO,GAAG;AAChC,cAAM,YAAY,iBAAiB,SAAS,WAAW;AACvD,YAAI,aAAa;AAAM,qBAAW,IAAI,QAAQ,KAAK,SAAS;AAAA,MAC9D;AAAA,IACF;AAAA,EACF,OAAO;AACL,aAAS,IAAI,gBAAgB,KAAK,eAAe;AACjD,QAAI,KAAC,oCAAmB,eAAe,GAAG;AACxC,YAAM,YAAY,iBAAiB,iBAAiB,WAAW;AAC/D,UAAI,aAAa;AAAM,mBAAW,IAAI,gBAAgB,KAAK,SAAS;AAAA,IACtE;AAAA,EACF;AACF;AAEA,SAAS,YACP,aACA,aACA,cACA,MACa;AACb,QAAM,CAAC,qBAAqB,GAAG,kBAAkB,IAAI,wBAAwB,IAAI;AACjF,QAAM,CAAC,iBAAiB,QAAQ,IAAI,sBAAsB,aAAa,KAAK,mBAAmB;AAE/F,QAAM,WAAW,IAAI,IAAI,YAAY,QAAQ;AAC7C,QAAM,aAAa,IAAI,IAAI,YAAY,UAAU;AAEjD,gBAAc,EAAE,UAAU,WAAW,GAAG,iBAAiB,UAAU,WAAW;AAC9E,uBAAqB,UAAU,oBAAoB,aAAa,GAAG;AAEnE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,YACP,aACA,aACA,cACA,MACa;AACb,QAAM,CAAC,mBAAmB,GAAG,kBAAkB,IAAI,wBAAwB,IAAI;AAC/E,QAAM,CAAC,gBAAgB,QAAQ,IAAI,sBAAsB,aAAa,KAAK,iBAAiB;AAC5F,QAAM,CAAC,iBAAiB,CAAC,IAAI,sBAAsB,aAAa,KAAK,iBAAiB;AAEtF,QAAM,WAAW,IAAI,IAAI,YAAY,QAAQ;AAC7C,QAAM,aAAa,IAAI,IAAI,YAAY,UAAU;AAEjD,gBAAc,EAAE,UAAU,WAAW,GAAG,gBAAgB,UAAU,WAAW;AAC7E,gBAAc,EAAE,UAAU,WAAW,GAAG,iBAAiB,UAAU,WAAW;AAE9E,uBAAqB,UAAU,oBAAoB,aAAa,GAAG;AAEnE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,aACP,aACA,aACA,cACA,WACa;AACb,SAAO,UAAU,OAAO,CAAC,MAAM,OAAO;AACpC,UAAM,YAAY,QAAQ,MAAM,QAAQ;AACxC,UAAM,YAAY,QAAQ,MAAM,QAAQ;AACxC,QAAI,aAAa,WAAW;AAC1B,aAAO,YAAY,MAAM,aAAa,cAAc,GAAG,CAAC;AAAA,IAC1D;AAEA,QAAI;AAAW,aAAO,YAAY,MAAM,aAAa,cAAc,GAAG,CAAC;AACvE,QAAI;AAAW,aAAO,YAAY,MAAM,aAAa,cAAc,GAAG,CAAC;AACvE,WAAO;AAAA,EACT,GAAG,WAAW;AAChB;","names":["i"]}
@@ -24,7 +24,6 @@ __export(is_in_builder_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(is_in_builder_exports);
26
26
  var import_actions = require("../actions");
27
- var import_read_only_actions = require("../actions/internal/read-only-actions");
28
27
  function getInitialState() {
29
28
  return false;
30
29
  }
@@ -35,7 +34,7 @@ function reducer(state = getInitialState(), action) {
35
34
  if (!(0, import_actions.isKnownAction)(action))
36
35
  return state;
37
36
  switch (action.type) {
38
- case import_read_only_actions.ReadOnlyActionTypes.SET_IS_IN_BUILDER:
37
+ case import_actions.ActionTypes.SET_IS_IN_BUILDER:
39
38
  return action.payload;
40
39
  default:
41
40
  return state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/is-in-builder.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\n\nexport type State = boolean\n\nexport function getInitialState(): State {\n return false\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.SET_IS_IN_BUILDER:\n return action.payload\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+D;AAC/D,+BAAoC;AAI7B,SAAS,kBAAyB;AACvC,SAAO;AACT;AAEO,SAAS,eAAe,OAAuB;AACpD,SAAO;AACT;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,6CAAoB;AACvB,aAAO,OAAO;AAAA,IAEhB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/state/modules/is-in-builder.ts"],"sourcesContent":["import { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\n\nexport type State = boolean\n\nexport function getInitialState(): State {\n return false\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.SET_IS_IN_BUILDER:\n return action.payload\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4E;AAIrE,SAAS,kBAAyB;AACvC,SAAO;AACT;AAEO,SAAS,eAAe,OAAuB;AACpD,SAAO;AACT;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY;AACf,aAAO,OAAO;AAAA,IAEhB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -16,27 +16,24 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var is_read_only_exports = {};
20
- __export(is_read_only_exports, {
19
+ var is_preview_exports = {};
20
+ __export(is_preview_exports, {
21
21
  getInitialState: () => getInitialState,
22
- getIsReadOnly: () => getIsReadOnly,
22
+ getIsPreview: () => getIsPreview,
23
23
  reducer: () => reducer
24
24
  });
25
- module.exports = __toCommonJS(is_read_only_exports);
25
+ module.exports = __toCommonJS(is_preview_exports);
26
26
  var import_actions = require("../actions");
27
- var import_read_only_actions = require("../actions/internal/read-only-actions");
28
- function getInitialState(isReadOnly = true) {
29
- return isReadOnly;
27
+ function getInitialState(isPreview = false) {
28
+ return isPreview;
30
29
  }
31
- function getIsReadOnly(state) {
30
+ function getIsPreview(state) {
32
31
  return state;
33
32
  }
34
33
  function reducer(state = getInitialState(), action) {
35
34
  if (!(0, import_actions.isKnownAction)(action))
36
35
  return state;
37
36
  switch (action.type) {
38
- case import_read_only_actions.ReadOnlyActionTypes.SET_IS_READ_ONLY:
39
- return action.payload;
40
37
  default:
41
38
  return state;
42
39
  }
@@ -44,7 +41,7 @@ function reducer(state = getInitialState(), action) {
44
41
  // Annotate the CommonJS export names for ESM import in node:
45
42
  0 && (module.exports = {
46
43
  getInitialState,
47
- getIsReadOnly,
44
+ getIsPreview,
48
45
  reducer
49
46
  });
50
- //# sourceMappingURL=is-read-only.js.map
47
+ //# sourceMappingURL=is-preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/modules/is-preview.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../actions'\n\nexport type State = boolean\n\nexport function getInitialState(isPreview = false): State {\n return isPreview\n}\n\nexport function getIsPreview(state: State): boolean {\n return state\n}\n\nexport function reducer(state = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+D;AAIxD,SAAS,gBAAgB,YAAY,OAAc;AACxD,SAAO;AACT;AAEO,SAAS,aAAa,OAAuB;AAClD,SAAO;AACT;AAEO,SAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAuC;AACxF,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -26,8 +26,6 @@ __export(localized_resources_map_exports, {
26
26
  module.exports = __toCommonJS(localized_resources_map_exports);
27
27
  var import_controls = require("@makeswift/controls");
28
28
  var import_actions = require("../actions");
29
- var import_read_write_actions = require("../actions/internal/read-write-actions");
30
- var import_host_api = require("../host-api");
31
29
  function getInitialState(serializedState = {}) {
32
30
  return new Map(
33
31
  Object.entries((0, import_controls.mapValues)(serializedState, (resources) => new Map(Object.entries(resources))))
@@ -46,7 +44,7 @@ function reducer(state = getInitialState(), action) {
46
44
  if (!(0, import_actions.isKnownAction)(action))
47
45
  return state;
48
46
  switch (action.type) {
49
- case import_host_api.HostActionTypes.SET_LOCALIZED_RESOURCE_ID: {
47
+ case import_actions.ActionTypes.SET_LOCALIZED_RESOURCE_ID: {
50
48
  const { resourceId, localizedResourceId, locale } = action.payload;
51
49
  if (locale == null) {
52
50
  console.error("Attempt to set a localized resource ID for a non-localized page", {
@@ -60,7 +58,7 @@ function reducer(state = getInitialState(), action) {
60
58
  (state.get(locale) ?? /* @__PURE__ */ new Map()).set(resourceId, localizedResourceId)
61
59
  );
62
60
  }
63
- case import_read_write_actions.ReadWriteActionTypes.UPDATE_API_CLIENT_CACHE: {
61
+ case import_actions.ActionTypes.UPDATE_API_CLIENT_CACHE: {
64
62
  const { localizedResourcesMap } = action.payload;
65
63
  return Object.entries(localizedResourcesMap).reduce((state2, [locale, resources]) => {
66
64
  const existing = state2.get(locale) ?? /* @__PURE__ */ new Map();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/localized-resources-map.ts"],"sourcesContent":["import { mapValues } from '@makeswift/controls'\nimport { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadWriteActionTypes } from '../actions/internal/read-write-actions'\nimport { HostActionTypes } from '../host-api'\n\ntype State = Map<string, Map<string, string | null>>\n\nexport type SerializedState = {\n [locale: string]: {\n [resourceId: string]: string | null\n }\n}\n\nexport function getInitialState(serializedState: SerializedState = {}): State {\n return new Map(\n Object.entries(mapValues(serializedState, resources => new Map(Object.entries(resources)))),\n )\n}\n\nexport function getSerializedState(state: State): SerializedState {\n return mapValues(Object.fromEntries(state.entries()), resources =>\n Object.fromEntries(resources.entries()),\n )\n}\n\nexport function getLocalizedResourceId(\n state: State,\n locale: string,\n resourceId: string,\n): string | undefined | null {\n return state.get(locale)?.get(resourceId)\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case HostActionTypes.SET_LOCALIZED_RESOURCE_ID: {\n const { resourceId, localizedResourceId, locale } = action.payload\n\n if (locale == null) {\n console.error('Attempt to set a localized resource ID for a non-localized page', {\n resourceId,\n localizedResourceId,\n })\n\n return state\n }\n\n return new Map(state).set(\n locale,\n (state.get(locale) ?? new Map()).set(resourceId, localizedResourceId),\n )\n }\n\n case ReadWriteActionTypes.UPDATE_API_CLIENT_CACHE: {\n const { localizedResourcesMap } = action.payload\n\n return Object.entries(localizedResourcesMap).reduce((state, [locale, resources]) => {\n const existing = state.get(locale) ?? new Map<string, string | null>()\n const updated = Object.entries(resources).reduce((r, [id, localizedId]) => {\n return r.get(id) != null ? r : new Map(r).set(id, localizedId)\n }, existing)\n\n return updated === existing ? state : new Map(state).set(locale, updated)\n }, state)\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA0B;AAC1B,qBAA+D;AAC/D,gCAAqC;AACrC,sBAAgC;AAUzB,SAAS,gBAAgB,kBAAmC,CAAC,GAAU;AAC5E,SAAO,IAAI;AAAA,IACT,OAAO,YAAQ,2BAAU,iBAAiB,eAAa,IAAI,IAAI,OAAO,QAAQ,SAAS,CAAC,CAAC,CAAC;AAAA,EAC5F;AACF;AAEO,SAAS,mBAAmB,OAA+B;AAChE,aAAO;AAAA,IAAU,OAAO,YAAY,MAAM,QAAQ,CAAC;AAAA,IAAG,eACpD,OAAO,YAAY,UAAU,QAAQ,CAAC;AAAA,EACxC;AACF;AAEO,SAAS,uBACd,OACA,QACA,YAC2B;AAC3B,SAAO,MAAM,IAAI,MAAM,GAAG,IAAI,UAAU;AAC1C;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,gCAAgB,2BAA2B;AAC9C,YAAM,EAAE,YAAY,qBAAqB,OAAO,IAAI,OAAO;AAE3D,UAAI,UAAU,MAAM;AAClB,gBAAQ,MAAM,mEAAmE;AAAA,UAC/E;AAAA,UACA;AAAA,QACF,CAAC;AAED,eAAO;AAAA,MACT;AAEA,aAAO,IAAI,IAAI,KAAK,EAAE;AAAA,QACpB;AAAA,SACC,MAAM,IAAI,MAAM,KAAK,oBAAI,IAAI,GAAG,IAAI,YAAY,mBAAmB;AAAA,MACtE;AAAA,IACF;AAAA,IAEA,KAAK,+CAAqB,yBAAyB;AACjD,YAAM,EAAE,sBAAsB,IAAI,OAAO;AAEzC,aAAO,OAAO,QAAQ,qBAAqB,EAAE,OAAO,CAACA,QAAO,CAAC,QAAQ,SAAS,MAAM;AAClF,cAAM,WAAWA,OAAM,IAAI,MAAM,KAAK,oBAAI,IAA2B;AACrE,cAAM,UAAU,OAAO,QAAQ,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW,MAAM;AACzE,iBAAO,EAAE,IAAI,EAAE,KAAK,OAAO,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,WAAW;AAAA,QAC/D,GAAG,QAAQ;AAEX,eAAO,YAAY,WAAWA,SAAQ,IAAI,IAAIA,MAAK,EAAE,IAAI,QAAQ,OAAO;AAAA,MAC1E,GAAG,KAAK;AAAA,IACV;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":["state"]}
1
+ {"version":3,"sources":["../../../../src/state/modules/localized-resources-map.ts"],"sourcesContent":["import { mapValues } from '@makeswift/controls'\nimport { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\n\ntype State = Map<string, Map<string, string | null>>\n\nexport type SerializedState = {\n [locale: string]: {\n [resourceId: string]: string | null\n }\n}\n\nexport function getInitialState(serializedState: SerializedState = {}): State {\n return new Map(\n Object.entries(mapValues(serializedState, resources => new Map(Object.entries(resources)))),\n )\n}\n\nexport function getSerializedState(state: State): SerializedState {\n return mapValues(Object.fromEntries(state.entries()), resources =>\n Object.fromEntries(resources.entries()),\n )\n}\n\nexport function getLocalizedResourceId(\n state: State,\n locale: string,\n resourceId: string,\n): string | undefined | null {\n return state.get(locale)?.get(resourceId)\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.SET_LOCALIZED_RESOURCE_ID: {\n const { resourceId, localizedResourceId, locale } = action.payload\n\n if (locale == null) {\n console.error('Attempt to set a localized resource ID for a non-localized page', {\n resourceId,\n localizedResourceId,\n })\n\n return state\n }\n\n return new Map(state).set(\n locale,\n (state.get(locale) ?? new Map()).set(resourceId, localizedResourceId),\n )\n }\n\n case ActionTypes.UPDATE_API_CLIENT_CACHE: {\n const { localizedResourcesMap } = action.payload\n\n return Object.entries(localizedResourcesMap).reduce((state, [locale, resources]) => {\n const existing = state.get(locale) ?? new Map<string, string | null>()\n const updated = Object.entries(resources).reduce((r, [id, localizedId]) => {\n return r.get(id) != null ? r : new Map(r).set(id, localizedId)\n }, existing)\n\n return updated === existing ? state : new Map(state).set(locale, updated)\n }, state)\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA0B;AAC1B,qBAA4E;AAUrE,SAAS,gBAAgB,kBAAmC,CAAC,GAAU;AAC5E,SAAO,IAAI;AAAA,IACT,OAAO,YAAQ,2BAAU,iBAAiB,eAAa,IAAI,IAAI,OAAO,QAAQ,SAAS,CAAC,CAAC,CAAC;AAAA,EAC5F;AACF;AAEO,SAAS,mBAAmB,OAA+B;AAChE,aAAO;AAAA,IAAU,OAAO,YAAY,MAAM,QAAQ,CAAC;AAAA,IAAG,eACpD,OAAO,YAAY,UAAU,QAAQ,CAAC;AAAA,EACxC;AACF;AAEO,SAAS,uBACd,OACA,QACA,YAC2B;AAC3B,SAAO,MAAM,IAAI,MAAM,GAAG,IAAI,UAAU;AAC1C;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY,2BAA2B;AAC1C,YAAM,EAAE,YAAY,qBAAqB,OAAO,IAAI,OAAO;AAE3D,UAAI,UAAU,MAAM;AAClB,gBAAQ,MAAM,mEAAmE;AAAA,UAC/E;AAAA,UACA;AAAA,QACF,CAAC;AAED,eAAO;AAAA,MACT;AAEA,aAAO,IAAI,IAAI,KAAK,EAAE;AAAA,QACpB;AAAA,SACC,MAAM,IAAI,MAAM,KAAK,oBAAI,IAAI,GAAG,IAAI,YAAY,mBAAmB;AAAA,MACtE;AAAA,IACF;AAAA,IAEA,KAAK,2BAAY,yBAAyB;AACxC,YAAM,EAAE,sBAAsB,IAAI,OAAO;AAEzC,aAAO,OAAO,QAAQ,qBAAqB,EAAE,OAAO,CAACA,QAAO,CAAC,QAAQ,SAAS,MAAM;AAClF,cAAM,WAAWA,OAAM,IAAI,MAAM,KAAK,oBAAI,IAA2B;AACrE,cAAM,UAAU,OAAO,QAAQ,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW,MAAM;AACzE,iBAAO,EAAE,IAAI,EAAE,KAAK,OAAO,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,WAAW;AAAA,QAC/D,GAAG,QAAQ;AAEX,eAAO,YAAY,WAAWA,SAAQ,IAAI,IAAIA,MAAK,EAAE,IAAI,QAAQ,OAAO;AAAA,MAC1E,GAAG,KAAK;AAAA,IACV;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":["state"]}
@@ -22,8 +22,7 @@ __export(pointer_exports, {
22
22
  reducer: () => reducer
23
23
  });
24
24
  module.exports = __toCommonJS(pointer_exports);
25
- var import_actions = require("../../actions");
26
- var import_host_api = require("../../host-api");
25
+ var import_actions = require("../actions");
27
26
  function getInitialState() {
28
27
  return { pointer: null };
29
28
  }
@@ -34,7 +33,7 @@ function reducer(state = getInitialState(), action) {
34
33
  if (!(0, import_actions.isKnownAction)(action))
35
34
  return state;
36
35
  switch (action.type) {
37
- case import_host_api.HostActionTypes.BUILDER_POINTER_MOVE:
36
+ case import_actions.ActionTypes.BUILDER_POINTER_MOVE:
38
37
  return { ...state, pointer: action.payload.pointer };
39
38
  default:
40
39
  return state;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/modules/pointer.ts"],"sourcesContent":["import { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\n\nexport type Point = { x: number; y: number }\n\ntype State = {\n pointer: Point | null\n}\n\nfunction getInitialState(): State {\n return { pointer: null }\n}\n\nexport function getPointer(state: State): Point | null {\n return state.pointer\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.BUILDER_POINTER_MOVE:\n return { ...state, pointer: action.payload.pointer }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4E;AAQ5E,SAAS,kBAAyB;AAChC,SAAO,EAAE,SAAS,KAAK;AACzB;AAEO,SAAS,WAAW,OAA4B;AACrD,SAAO,MAAM;AACf;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY;AACf,aAAO,EAAE,GAAG,OAAO,SAAS,OAAO,QAAQ,QAAQ;AAAA,IAErD;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -25,7 +25,6 @@ __export(prop_controllers_exports, {
25
25
  });
26
26
  module.exports = __toCommonJS(prop_controllers_exports);
27
27
  var import_actions = require("../actions");
28
- var import_read_only_actions = require("../actions/internal/read-only-actions");
29
28
  function getInitialState({
30
29
  propControllerDescriptors = /* @__PURE__ */ new Map()
31
30
  } = {}) {
@@ -41,9 +40,9 @@ function reducer(state = getInitialState(), action) {
41
40
  if (!(0, import_actions.isKnownAction)(action))
42
41
  return state;
43
42
  switch (action.type) {
44
- case import_read_only_actions.ReadOnlyActionTypes.REGISTER_COMPONENT:
43
+ case import_actions.ActionTypes.REGISTER_COMPONENT:
45
44
  return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors);
46
- case import_read_only_actions.ReadOnlyActionTypes.UNREGISTER_COMPONENT: {
45
+ case import_actions.ActionTypes.UNREGISTER_COMPONENT: {
47
46
  const nextState = new Map(state);
48
47
  const deleted = nextState.delete(action.payload.type);
49
48
  return deleted ? nextState : state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/prop-controllers.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\n\nimport { Descriptor as PropControllerDescriptor } from '../../prop-controllers/descriptors'\n\nexport type { PropControllerDescriptor }\n\nexport type DescriptorsByProp = Record<string, PropControllerDescriptor>\nexport type DescriptorsByComponentType = Map<string, DescriptorsByProp>\nexport type State = DescriptorsByComponentType\n\nexport function getInitialState({\n propControllerDescriptors = new Map(),\n}: {\n propControllerDescriptors?: State\n} = {}): State {\n return propControllerDescriptors\n}\n\nexport function getPropControllerDescriptors(state: State): State {\n return state\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): DescriptorsByProp | null {\n return getPropControllerDescriptors(state).get(componentType) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors)\n\n case ReadOnlyActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n const deleted = nextState.delete(action.payload.type)\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+D;AAC/D,+BAAoC;AAU7B,SAAS,gBAAgB;AAAA,EAC9B,4BAA4B,oBAAI,IAAI;AACtC,IAEI,CAAC,GAAU;AACb,SAAO;AACT;AAEO,SAAS,6BAA6B,OAAqB;AAChE,SAAO;AACT;AAEO,SAAS,sCACd,OACA,eAC0B;AAC1B,SAAO,6BAA6B,KAAK,EAAE,IAAI,aAAa,KAAK;AACnE;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,6CAAoB;AACvB,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,MAAM,OAAO,QAAQ,yBAAyB;AAAA,IAEzF,KAAK,6CAAoB,sBAAsB;AAC7C,YAAM,YAAY,IAAI,IAAI,KAAK;AAC/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,IAAI;AACpD,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/state/modules/prop-controllers.ts"],"sourcesContent":["import { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\nimport { Descriptor as PropControllerDescriptor } from '../../prop-controllers/descriptors'\n\nexport type { PropControllerDescriptor }\n\nexport type DescriptorsByProp = Record<string, PropControllerDescriptor>\nexport type DescriptorsByComponentType = Map<string, DescriptorsByProp>\nexport type State = DescriptorsByComponentType\n\nexport function getInitialState({\n propControllerDescriptors = new Map(),\n}: {\n propControllerDescriptors?: State\n} = {}): State {\n return propControllerDescriptors\n}\n\nexport function getPropControllerDescriptors(state: State): State {\n return state\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): DescriptorsByProp | null {\n return getPropControllerDescriptors(state).get(componentType) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n const deleted = nextState.delete(action.payload.type)\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4E;AASrE,SAAS,gBAAgB;AAAA,EAC9B,4BAA4B,oBAAI,IAAI;AACtC,IAEI,CAAC,GAAU;AACb,SAAO;AACT;AAEO,SAAS,6BAA6B,OAAqB;AAChE,SAAO;AACT;AAEO,SAAS,sCACd,OACA,eAC0B;AAC1B,SAAO,6BAA6B,KAAK,EAAE,IAAI,aAAa,KAAK;AACnE;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY;AACf,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,MAAM,OAAO,QAAQ,yBAAyB;AAAA,IAEzF,KAAK,2BAAY,sBAAsB;AACrC,YAAM,YAAY,IAAI,IAAI,KAAK;AAC/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,IAAI;AACpD,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -24,7 +24,6 @@ __export(react_components_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(react_components_exports);
26
26
  var import_actions = require("../actions");
27
- var import_read_only_actions = require("../actions/internal/read-only-actions");
28
27
  function getInitialState({
29
28
  reactComponents = /* @__PURE__ */ new Map()
30
29
  } = {}) {
@@ -40,9 +39,9 @@ function reducer(state = getInitialState(), action) {
40
39
  if (!(0, import_actions.isKnownAction)(action))
41
40
  return state;
42
41
  switch (action.type) {
43
- case import_read_only_actions.ReadOnlyActionTypes.REGISTER_REACT_COMPONENT:
42
+ case import_actions.ActionTypes.REGISTER_REACT_COMPONENT:
44
43
  return new Map(state).set(action.payload.type, action.payload.component);
45
- case import_read_only_actions.ReadOnlyActionTypes.UNREGISTER_REACT_COMPONENT: {
44
+ case import_actions.ActionTypes.UNREGISTER_REACT_COMPONENT: {
46
45
  const nextState = new Map(state);
47
46
  const deleted = nextState.delete(action.payload.type);
48
47
  return deleted ? nextState : state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/react-components.tsx"],"sourcesContent":["import type { Component, PropsWithoutRef, ReactNode, RefAttributes } from 'react'\n\nimport { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\n\nexport type ComponentType<P = Record<string, any>, T = any> =\n | { new (props: PropsWithoutRef<P> & RefAttributes<T>, context?: any): Component<P> }\n | ((props: PropsWithoutRef<P> & RefAttributes<T>, context?: any) => ReactNode)\n\nexport type State = Map<string, ComponentType>\n\nexport function getInitialState({\n reactComponents = new Map(),\n}: { reactComponents?: Map<string, ComponentType> } = {}): State {\n return reactComponents\n}\n\nfunction getReactComponents(state: State): Map<string, ComponentType> {\n return state\n}\n\nexport function getReactComponent(state: State, type: string): ComponentType | null {\n return getReactComponents(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction) {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_REACT_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.component)\n\n case ReadOnlyActionTypes.UNREGISTER_REACT_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAA+D;AAC/D,+BAAoC;AAQ7B,SAAS,gBAAgB;AAAA,EAC9B,kBAAkB,oBAAI,IAAI;AAC5B,IAAsD,CAAC,GAAU;AAC/D,SAAO;AACT;AAEA,SAAS,mBAAmB,OAA0C;AACpE,SAAO;AACT;AAEO,SAAS,kBAAkB,OAAc,MAAoC;AAClF,SAAO,mBAAmB,KAAK,EAAE,IAAI,IAAI,KAAK;AAChD;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAgC;AACxF,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,6CAAoB;AACvB,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,MAAM,OAAO,QAAQ,SAAS;AAAA,IAEzE,KAAK,6CAAoB,4BAA4B;AACnD,YAAM,YAAY,IAAI,IAAI,KAAK;AAE/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,IAAI;AAEpD,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/state/modules/react-components.tsx"],"sourcesContent":["import type { Component, PropsWithoutRef, ReactNode, RefAttributes } from 'react'\n\nimport { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\n\nexport type ComponentType<P = Record<string, any>, T = any> =\n | { new (props: PropsWithoutRef<P> & RefAttributes<T>, context?: any): Component<P> }\n | ((props: PropsWithoutRef<P> & RefAttributes<T>, context?: any) => ReactNode)\n\nexport type State = Map<string, ComponentType>\n\nexport function getInitialState({\n reactComponents = new Map(),\n}: { reactComponents?: Map<string, ComponentType> } = {}): State {\n return reactComponents\n}\n\nfunction getReactComponents(state: State): Map<string, ComponentType> {\n return state\n}\n\nexport function getReactComponent(state: State, type: string): ComponentType | null {\n return getReactComponents(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction) {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.REGISTER_REACT_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.component)\n\n case ActionTypes.UNREGISTER_REACT_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAA4E;AAQrE,SAAS,gBAAgB;AAAA,EAC9B,kBAAkB,oBAAI,IAAI;AAC5B,IAAsD,CAAC,GAAU;AAC/D,SAAO;AACT;AAEA,SAAS,mBAAmB,OAA0C;AACpE,SAAO;AACT;AAEO,SAAS,kBAAkB,OAAc,MAAoC;AAClF,SAAO,mBAAmB,KAAK,EAAE,IAAI,IAAI,KAAK;AAChD;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAgC;AACxF,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY;AACf,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,MAAM,OAAO,QAAQ,SAAS;AAAA,IAEzE,KAAK,2BAAY,4BAA4B;AAC3C,YAAM,YAAY,IAAI,IAAI,KAAK;AAE/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,IAAI;AAEpD,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -30,7 +30,6 @@ __export(read_only_documents_exports, {
30
30
  });
31
31
  module.exports = __toCommonJS(read_only_documents_exports);
32
32
  var import_actions = require("../actions");
33
- var import_shared_api = require("../shared-api");
34
33
  var import_controls2 = require("@makeswift/controls");
35
34
  function createDocumentReference(key) {
36
35
  return { key };
@@ -55,10 +54,10 @@ function reducer(state = getInitialState(), action) {
55
54
  if (!(0, import_actions.isKnownAction)(action))
56
55
  return state;
57
56
  switch (action.type) {
58
- case import_shared_api.SharedActionTypes.REGISTER_DOCUMENT:
57
+ case import_actions.ActionTypes.REGISTER_DOCUMENT:
59
58
  const { documentKey, document } = action.payload;
60
59
  return new Map(state).set(documentKey, { ...document, locale: document.locale ?? null });
61
- case import_shared_api.SharedActionTypes.UNREGISTER_DOCUMENT: {
60
+ case import_actions.ActionTypes.UNREGISTER_DOCUMENT: {
62
61
  const nextState = new Map(state);
63
62
  const deleted = nextState.delete(action.payload.documentKey);
64
63
  return deleted ? nextState : state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/read-only-documents.ts"],"sourcesContent":["import { type Element } from '@makeswift/controls'\n\nimport { type Action, type UnknownAction, type DocumentPayload, isKnownAction } from '../actions'\n\nimport { SharedActionTypes } from '../shared-api'\n\nexport {\n type Data,\n type ElementData,\n type ElementReference,\n type Element,\n isElementReference,\n} from '@makeswift/controls'\n\nexport type DocumentReference = {\n key: string\n}\n\nexport function createDocumentReference(key: string): DocumentReference {\n return { key }\n}\n\ntype BaseDocument = {\n key: string\n rootElement: Element\n locale: string | null\n}\n\nexport const EMBEDDED_DOCUMENT_TYPE = 'EMBEDDED_DOCUMENT' as const\n\nexport type EmbeddedDocument = {\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 Document = BaseDocument | EmbeddedDocument\n\nexport function getRootElement(document: Document | DocumentPayload): Element {\n return document.rootElement\n}\n\nexport function createBaseDocument(\n key: string,\n rootElement: Element,\n locale: string | null,\n): Document {\n return { key, rootElement, locale }\n}\n\nexport type State = Map<string, Document>\n\nexport function getInitialState({ documents = [] }: { documents?: Document[] } = {}): State {\n return new Map(documents.map(document => [document.key, document]))\n}\n\nexport function getDocuments(state: State): State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): Document | null {\n return getDocuments(state).get(documentKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case SharedActionTypes.REGISTER_DOCUMENT:\n const { documentKey, document } = action.payload\n return new Map(state).set(documentKey, { ...document, locale: document.locale ?? null })\n\n case SharedActionTypes.UNREGISTER_DOCUMENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.documentKey)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAAqF;AAErF,wBAAkC;AAElC,IAAAA,mBAMO;AAMA,SAAS,wBAAwB,KAAgC;AACtE,SAAO,EAAE,IAAI;AACf;AAQO,MAAM,yBAAyB;AAe/B,SAAS,eAAe,UAA+C;AAC5E,SAAO,SAAS;AAClB;AAEO,SAAS,mBACd,KACA,aACA,QACU;AACV,SAAO,EAAE,KAAK,aAAa,OAAO;AACpC;AAIO,SAAS,gBAAgB,EAAE,YAAY,CAAC,EAAE,IAAgC,CAAC,GAAU;AAC1F,SAAO,IAAI,IAAI,UAAU,IAAI,cAAY,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;AACpE;AAEO,SAAS,aAAa,OAAqB;AAChD,SAAO;AACT;AAEO,SAAS,YAAY,OAAc,aAAsC;AAC9E,SAAO,aAAa,KAAK,EAAE,IAAI,WAAW,KAAK;AACjD;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,oCAAkB;AACrB,YAAM,EAAE,aAAa,SAAS,IAAI,OAAO;AACzC,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,aAAa,EAAE,GAAG,UAAU,QAAQ,SAAS,UAAU,KAAK,CAAC;AAAA,IAEzF,KAAK,oCAAkB,qBAAqB;AAC1C,YAAM,YAAY,IAAI,IAAI,KAAK;AAE/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,WAAW;AAE3D,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":["import_controls"]}
1
+ {"version":3,"sources":["../../../../src/state/modules/read-only-documents.ts"],"sourcesContent":["import { type Element } from '@makeswift/controls'\n\nimport {\n type Action,\n type UnknownAction,\n type DocumentPayload,\n ActionTypes,\n isKnownAction,\n} from '../actions'\n\nexport {\n type Data,\n type ElementData,\n type ElementReference,\n type Element,\n isElementReference,\n} from '@makeswift/controls'\n\nexport type DocumentReference = {\n key: string\n}\n\nexport function createDocumentReference(key: string): DocumentReference {\n return { key }\n}\n\ntype BaseDocument = {\n key: string\n rootElement: Element\n locale: string | null\n}\n\nexport const EMBEDDED_DOCUMENT_TYPE = 'EMBEDDED_DOCUMENT' as const\n\nexport type EmbeddedDocument = {\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 Document = BaseDocument | EmbeddedDocument\n\nexport function getRootElement(document: Document | DocumentPayload): Element {\n return document.rootElement\n}\n\nexport function createBaseDocument(\n key: string,\n rootElement: Element,\n locale: string | null,\n): Document {\n return { key, rootElement, locale }\n}\n\nexport type State = Map<string, Document>\n\nexport function getInitialState({ documents = [] }: { documents?: Document[] } = {}): State {\n return new Map(documents.map(document => [document.key, document]))\n}\n\nexport function getDocuments(state: State): State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): Document | null {\n return getDocuments(state).get(documentKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.REGISTER_DOCUMENT:\n const { documentKey, document } = action.payload\n return new Map(state).set(documentKey, { ...document, locale: document.locale ?? null })\n\n case ActionTypes.UNREGISTER_DOCUMENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.documentKey)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAMO;AAEP,IAAAA,mBAMO;AAMA,SAAS,wBAAwB,KAAgC;AACtE,SAAO,EAAE,IAAI;AACf;AAQO,MAAM,yBAAyB;AAe/B,SAAS,eAAe,UAA+C;AAC5E,SAAO,SAAS;AAClB;AAEO,SAAS,mBACd,KACA,aACA,QACU;AACV,SAAO,EAAE,KAAK,aAAa,OAAO;AACpC;AAIO,SAAS,gBAAgB,EAAE,YAAY,CAAC,EAAE,IAAgC,CAAC,GAAU;AAC1F,SAAO,IAAI,IAAI,UAAU,IAAI,cAAY,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;AACpE;AAEO,SAAS,aAAa,OAAqB;AAChD,SAAO;AACT;AAEO,SAAS,YAAY,OAAc,aAAsC;AAC9E,SAAO,aAAa,KAAK,EAAE,IAAI,WAAW,KAAK;AACjD;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY;AACf,YAAM,EAAE,aAAa,SAAS,IAAI,OAAO;AACzC,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,aAAa,EAAE,GAAG,UAAU,QAAQ,SAAS,UAAU,KAAK,CAAC;AAAA,IAEzF,KAAK,2BAAY,qBAAqB;AACpC,YAAM,YAAY,IAAI,IAAI,KAAK;AAE/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,WAAW;AAE3D,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":["import_controls"]}
@@ -36,9 +36,9 @@ __export(read_write_documents_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(read_write_documents_exports);
38
38
  var import_immutable = require("immutable");
39
- var ReadOnlyDocuments = __toESM(require("../read-only-documents"));
40
- var import_actions = require("../../actions");
41
- var import_read_only_documents = require("../read-only-documents");
39
+ var ReadOnlyDocuments = __toESM(require("./read-only-documents"));
40
+ var import_actions = require("../actions");
41
+ var import_read_only_documents = require("./read-only-documents");
42
42
  function apply(data, operation) {
43
43
  let applied = data;
44
44
  operation.forEach((component) => {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/modules/read-write-documents.ts"],"sourcesContent":["import { type Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from './read-only-documents'\nimport { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from './read-only-documents'\nexport { isElementReference } from './read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n documents = [],\n}: { documents?: ReadOnlyDocuments.Document[] } = {}): State {\n return ReadOnlyDocuments.getInitialState({ documents })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function getDocuments(state: State): ReadOnlyDocuments.State {\n return ReadOnlyDocuments.getDocuments(getReadOnlyDocumentsStateSlice(state))\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const document = getDocument(nextState, action.payload.documentKey)\n if (document == null) return nextState\n\n const currentRootElement = ReadOnlyDocuments.getRootElement(document)\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(action.payload.documentKey, {\n ...document,\n rootElement: nextRootElement,\n })\n }\n\n default:\n return nextState\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAAgC;AAEhC,wBAAmC;AACnC,qBAA4E;AAG5E,iCAAmC;AAGnC,SAAS,MAAM,MAAiC,WAAiD;AAC/F,MAAI,UAAU;AAEd,YAAU,QAAQ,eAAa;AAE7B,QAAI,UAAU,MAAM;AAAM,oBAAU,2BAAS,SAAS,UAAU,CAAC;AAGjE,QAAI,UAAU,MAAM;AAAM,oBAAU,2BAAS,SAAS,UAAU,CAAC;AAGjE,QAAI,UAAU,MAAM;AAAM,oBAAU,wBAAM,SAAS,UAAU,GAAG,UAAU,EAAE;AAG5E,QAAI,UAAU,MAAM;AAAM,oBAAU,wBAAM,SAAS,UAAU,GAAG,UAAU,EAAE;AAAA,EAC9E,CAAC;AAED,SAAO;AACT;AAIO,SAAS,gBAAgB;AAAA,EAC9B,YAAY,CAAC;AACf,IAAkD,CAAC,GAAU;AAC3D,SAAO,kBAAkB,gBAAgB,EAAE,UAAU,CAAC;AACxD;AAEA,SAAS,+BAA+B,OAAuC;AAC7E,SAAO;AACT;AAEO,SAAS,YAAY,OAAc,aAAwD;AAChG,SAAO,kBAAkB,YAAY,+BAA+B,KAAK,GAAG,WAAW;AACzF;AAEO,SAAS,aAAa,OAAuC;AAClE,SAAO,kBAAkB,aAAa,+BAA+B,KAAK,CAAC;AAC7E;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,QAAM,YAAY,kBAAkB,QAAQ,OAAO,MAAM;AAEzD,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY,iBAAiB;AAChC,YAAM,WAAW,YAAY,WAAW,OAAO,QAAQ,WAAW;AAClE,UAAI,YAAY;AAAM,eAAO;AAE7B,YAAM,qBAAqB,kBAAkB,eAAe,QAAQ;AAEpE,YAAM,kBAAkB,MAAM,oBAAoB,OAAO,QAAQ,SAAS;AAE1E,aAAO,uBAAuB,kBAC1B,YACA,IAAI,IAAI,SAAS,EAAE,IAAI,OAAO,QAAQ,aAAa;AAAA,QACjD,GAAG;AAAA,QACH,aAAa;AAAA,MACf,CAAC;AAAA,IACP;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}