@makeswift/runtime 0.25.0-canary.8 → 0.25.0

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 (777) hide show
  1. package/dist/cjs/api/react.js +10 -14
  2. package/dist/cjs/api/react.js.map +1 -1
  3. package/dist/cjs/api/site-version/index.js +103 -0
  4. package/dist/cjs/api/site-version/index.js.map +1 -0
  5. package/dist/cjs/api-handler/handlers/manifest.js +3 -4
  6. package/dist/cjs/api-handler/handlers/manifest.js.map +1 -1
  7. package/dist/cjs/api-handler/handlers/redirect-live.js +52 -0
  8. package/dist/cjs/api-handler/handlers/redirect-live.js.map +1 -0
  9. package/dist/cjs/api-handler/index.js +6 -5
  10. package/dist/cjs/api-handler/index.js.map +1 -1
  11. package/dist/cjs/api-handler/node-request-response.js +99 -0
  12. package/dist/cjs/api-handler/node-request-response.js.map +1 -0
  13. package/dist/cjs/{next/preview-mode.js → api-handler/preview.js} +12 -18
  14. package/dist/cjs/api-handler/preview.js.map +1 -0
  15. package/dist/cjs/api-handler/request-response.js +9 -0
  16. package/dist/cjs/api-handler/request-response.js.map +1 -1
  17. package/dist/cjs/client/index.js +67 -59
  18. package/dist/cjs/client/index.js.map +1 -1
  19. package/dist/cjs/components/builtin/Box/animations.js.map +1 -1
  20. package/dist/cjs/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -1
  21. package/dist/cjs/components/builtin/Image/Image.js +4 -26
  22. package/dist/cjs/components/builtin/Image/Image.js.map +1 -1
  23. package/dist/cjs/components/builtin/Root/Root.js +4 -4
  24. package/dist/cjs/components/builtin/Root/Root.js.map +1 -1
  25. package/dist/cjs/components/builtin/Slot/Slot.js +1 -1
  26. package/dist/cjs/components/builtin/Slot/Slot.js.map +1 -1
  27. package/dist/cjs/components/builtin/Video/Video.js +3 -13
  28. package/dist/cjs/components/builtin/Video/Video.js.map +1 -1
  29. package/dist/cjs/components/hooks/useMediaQuery.js +1 -2
  30. package/dist/cjs/components/hooks/useMediaQuery.js.map +1 -1
  31. package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +3 -13
  32. package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
  33. package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js +4 -14
  34. package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
  35. package/dist/cjs/components/shared/Link/index.js +15 -40
  36. package/dist/cjs/components/shared/Link/index.js.map +1 -1
  37. package/dist/cjs/{next/components/Slot.js → components/shared/react-player.js} +9 -18
  38. package/dist/cjs/components/shared/react-player.js.map +1 -0
  39. package/dist/cjs/components/utils/responsive-style.js.map +1 -1
  40. package/dist/cjs/css/border-radius.js.map +1 -1
  41. package/dist/cjs/css/border.js.map +1 -1
  42. package/dist/cjs/css/margin.js.map +1 -1
  43. package/dist/cjs/css/padding.js.map +1 -1
  44. package/dist/cjs/next/api-handler/config/app-router.js +12 -10
  45. package/dist/cjs/next/api-handler/config/app-router.js.map +1 -1
  46. package/dist/cjs/next/api-handler/config/pages-router.js +9 -69
  47. package/dist/cjs/next/api-handler/config/pages-router.js.map +1 -1
  48. package/dist/cjs/next/api-handler/handlers/{redirect-draft.js → app-router-redirect-preview.js} +30 -26
  49. package/dist/cjs/next/api-handler/handlers/app-router-redirect-preview.js.map +1 -0
  50. package/dist/cjs/next/api-handler/handlers/{redirect-preview.js → pages-router-redirect-preview.js} +29 -22
  51. package/dist/cjs/next/api-handler/handlers/pages-router-redirect-preview.js.map +1 -0
  52. package/dist/cjs/next/api-handler/index.js +4 -3
  53. package/dist/cjs/next/api-handler/index.js.map +1 -1
  54. package/dist/cjs/next/api-handler/{draft.js → preview.js} +13 -11
  55. package/dist/cjs/next/api-handler/preview.js.map +1 -0
  56. package/dist/cjs/next/app-router-site-version.js +40 -0
  57. package/dist/cjs/next/app-router-site-version.js.map +1 -0
  58. package/dist/cjs/next/client.js +9 -3
  59. package/dist/cjs/next/client.js.map +1 -1
  60. package/dist/cjs/next/components/framework-provider/app-router/index.js.map +1 -1
  61. package/dist/cjs/next/components/framework-provider/index.js +20 -2
  62. package/dist/cjs/next/components/framework-provider/index.js.map +1 -1
  63. package/dist/cjs/next/components/framework-provider/link.js +69 -0
  64. package/dist/cjs/next/components/framework-provider/link.js.map +1 -0
  65. package/dist/cjs/next/components/framework-provider/pages-router/index.js.map +1 -1
  66. package/dist/cjs/next/components/page.js +1 -1
  67. package/dist/cjs/next/components/page.js.map +1 -1
  68. package/dist/cjs/next/components/tests/__fixtures__/element-data/box-component.js +124 -0
  69. package/dist/cjs/next/components/tests/__fixtures__/element-data/box-component.js.map +1 -0
  70. package/dist/cjs/next/components/tests/__fixtures__/element-data/button-component.js +109 -0
  71. package/dist/cjs/next/components/tests/__fixtures__/element-data/button-component.js.map +1 -0
  72. package/dist/cjs/next/components/tests/__fixtures__/element-data/image-component.js +193 -0
  73. package/dist/cjs/next/components/tests/__fixtures__/element-data/image-component.js.map +1 -0
  74. package/dist/cjs/{api-handler/handlers/clear-draft.js → next/components/tests/__fixtures__/resources/files.js} +17 -19
  75. package/dist/cjs/next/components/tests/__fixtures__/resources/files.js.map +1 -0
  76. package/dist/cjs/next/components/tests/__fixtures__/resources/index.js +27 -0
  77. package/dist/cjs/next/components/tests/__fixtures__/resources/index.js.map +1 -0
  78. package/dist/cjs/next/components/tests/__fixtures__/resources/page-pathname-slices.js +33 -0
  79. package/dist/cjs/next/components/tests/__fixtures__/resources/page-pathname-slices.js.map +1 -0
  80. package/dist/cjs/next/components/tests/__fixtures__/resources/swatches.js +35 -0
  81. package/dist/cjs/next/components/tests/__fixtures__/resources/swatches.js.map +1 -0
  82. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +1 -1
  83. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  84. package/dist/cjs/next/document.js +2 -1
  85. package/dist/cjs/next/document.js.map +1 -1
  86. package/dist/cjs/next/index.js +2 -2
  87. package/dist/cjs/next/index.js.map +1 -1
  88. package/dist/cjs/next/middleware/request-utils.js +11 -17
  89. package/dist/cjs/next/middleware/request-utils.js.map +1 -1
  90. package/dist/cjs/next/root-style-registry.js +10 -25
  91. package/dist/cjs/next/root-style-registry.js.map +1 -1
  92. package/dist/cjs/next/server.js +2 -2
  93. package/dist/cjs/next/server.js.map +1 -1
  94. package/dist/cjs/next/testing/page-rendering.js +16 -3
  95. package/dist/cjs/next/testing/page-rendering.js.map +1 -1
  96. package/dist/cjs/next/testing/react-provider.js +2 -2
  97. package/dist/cjs/next/testing/react-provider.js.map +1 -1
  98. package/dist/cjs/next/tests/test-utils.js +7 -5
  99. package/dist/cjs/next/tests/test-utils.js.map +1 -1
  100. package/dist/cjs/{next → runtimes/react}/components/MakeswiftComponent.js +4 -4
  101. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js.map +1 -0
  102. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +9 -7
  103. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  104. package/dist/cjs/runtimes/react/components/Slot.js +38 -0
  105. package/dist/cjs/runtimes/react/components/Slot.js.map +1 -0
  106. package/dist/cjs/{next → runtimes/react}/components/SlotProvider.js +3 -3
  107. package/dist/cjs/runtimes/react/components/SlotProvider.js.map +1 -0
  108. package/dist/cjs/runtimes/react/components/framework-context.js +38 -3
  109. package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
  110. package/dist/cjs/runtimes/react/components/page/index.js +18 -16
  111. package/dist/cjs/runtimes/react/components/page/index.js.map +1 -1
  112. package/dist/cjs/runtimes/react/components/{draft-switcher/draft-switcher.js → preview-switcher/preview-switcher.js} +12 -22
  113. package/dist/cjs/runtimes/react/components/preview-switcher/preview-switcher.js.map +1 -0
  114. package/dist/cjs/runtimes/react/components/{draft-switcher/draft-toolbar.js → preview-switcher/preview-toolbar.js} +17 -9
  115. package/dist/cjs/runtimes/react/components/preview-switcher/preview-toolbar.js.map +1 -0
  116. package/dist/cjs/runtimes/react/controls/style.js.map +1 -1
  117. package/dist/cjs/runtimes/react/hooks/makeswift-api.js +9 -10
  118. package/dist/cjs/runtimes/react/hooks/makeswift-api.js.map +1 -1
  119. package/dist/cjs/runtimes/react/hooks/use-selector.js +1 -1
  120. package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -1
  121. package/dist/cjs/runtimes/react/hooks/use-stylesheet-factory.js +1 -1
  122. package/dist/cjs/runtimes/react/hooks/use-stylesheet-factory.js.map +1 -1
  123. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  124. package/dist/cjs/runtimes/react/host-api-client.js +7 -2
  125. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -1
  126. package/dist/cjs/runtimes/react/root-style-registry.js +39 -13
  127. package/dist/cjs/runtimes/react/root-style-registry.js.map +1 -1
  128. package/dist/cjs/runtimes/react/use-global-style.js +1 -1
  129. package/dist/cjs/runtimes/react/use-global-style.js.map +1 -1
  130. package/dist/cjs/runtimes/react/use-style.js +3 -3
  131. package/dist/cjs/runtimes/react/use-style.js.map +1 -1
  132. package/dist/cjs/state/actions.js +6 -0
  133. package/dist/cjs/state/actions.js.map +1 -1
  134. package/dist/cjs/state/makeswift-api-client.js +42 -57
  135. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  136. package/dist/cjs/state/mixins/setup-teardown.js.map +1 -1
  137. package/dist/cjs/state/modules/api-resources.js +2 -0
  138. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  139. package/dist/cjs/state/modules/box-models.js +2 -0
  140. package/dist/cjs/state/modules/box-models.js.map +1 -1
  141. package/dist/cjs/state/modules/breakpoints.js +3 -1
  142. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  143. package/dist/cjs/state/modules/builder-edit-mode.js +2 -0
  144. package/dist/cjs/state/modules/builder-edit-mode.js.map +1 -1
  145. package/dist/cjs/state/modules/components-meta.js +2 -0
  146. package/dist/cjs/state/modules/components-meta.js.map +1 -1
  147. package/dist/cjs/state/modules/element-imperative-handles.js +2 -0
  148. package/dist/cjs/state/modules/element-imperative-handles.js.map +1 -1
  149. package/dist/cjs/state/modules/element-trees.js +2 -0
  150. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  151. package/dist/cjs/state/modules/is-in-builder.js +2 -0
  152. package/dist/cjs/state/modules/is-in-builder.js.map +1 -1
  153. package/dist/cjs/state/modules/is-preview.js +3 -0
  154. package/dist/cjs/state/modules/is-preview.js.map +1 -1
  155. package/dist/cjs/state/modules/localized-resources-map.js +2 -0
  156. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -1
  157. package/dist/cjs/state/modules/pointer.js +2 -0
  158. package/dist/cjs/state/modules/pointer.js.map +1 -1
  159. package/dist/cjs/state/modules/prop-controller-handles.js +2 -0
  160. package/dist/cjs/state/modules/prop-controller-handles.js.map +1 -1
  161. package/dist/cjs/state/modules/prop-controllers.js +2 -0
  162. package/dist/cjs/state/modules/prop-controllers.js.map +1 -1
  163. package/dist/cjs/state/modules/react-components.js +2 -0
  164. package/dist/cjs/state/modules/react-components.js.map +1 -1
  165. package/dist/cjs/state/modules/read-only-documents.js +2 -0
  166. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  167. package/dist/cjs/state/modules/read-write-documents.js +2 -0
  168. package/dist/cjs/state/modules/read-write-documents.js.map +1 -1
  169. package/dist/cjs/state/react-builder-preview.js +32 -38
  170. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  171. package/dist/cjs/state/react-page.js +15 -19
  172. package/dist/cjs/state/react-page.js.map +1 -1
  173. package/dist/cjs/state/toolkit.js +54 -0
  174. package/dist/cjs/state/toolkit.js.map +1 -0
  175. package/dist/cjs/testing/fixtures.js +38 -0
  176. package/dist/cjs/testing/fixtures.js.map +1 -0
  177. package/dist/cjs/utils/esm-compat.js +29 -0
  178. package/dist/cjs/utils/esm-compat.js.map +1 -0
  179. package/dist/esm/api/react.js +10 -14
  180. package/dist/esm/api/react.js.map +1 -1
  181. package/dist/esm/api/site-version/index.js +75 -0
  182. package/dist/esm/api/site-version/index.js.map +1 -0
  183. package/dist/esm/api-handler/handlers/manifest.js +3 -4
  184. package/dist/esm/api-handler/handlers/manifest.js.map +1 -1
  185. package/dist/esm/api-handler/handlers/redirect-live.js +27 -0
  186. package/dist/esm/api-handler/handlers/redirect-live.js.map +1 -0
  187. package/dist/esm/api-handler/index.js +7 -6
  188. package/dist/esm/api-handler/index.js.map +1 -1
  189. package/dist/esm/api-handler/node-request-response.js +73 -0
  190. package/dist/esm/api-handler/node-request-response.js.map +1 -0
  191. package/dist/esm/api-handler/preview.js +9 -0
  192. package/dist/esm/api-handler/preview.js.map +1 -0
  193. package/dist/esm/api-handler/request-response.js +9 -0
  194. package/dist/esm/api-handler/request-response.js.map +1 -1
  195. package/dist/esm/client/index.js +65 -58
  196. package/dist/esm/client/index.js.map +1 -1
  197. package/dist/esm/components/builtin/Box/animations.js.map +1 -1
  198. package/dist/esm/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -1
  199. package/dist/esm/components/builtin/Image/Image.js +4 -16
  200. package/dist/esm/components/builtin/Image/Image.js.map +1 -1
  201. package/dist/esm/components/builtin/Root/Root.js +4 -4
  202. package/dist/esm/components/builtin/Root/Root.js.map +1 -1
  203. package/dist/esm/components/builtin/Slot/Slot.js +1 -1
  204. package/dist/esm/components/builtin/Slot/Slot.js.map +1 -1
  205. package/dist/esm/components/builtin/Video/Video.js +1 -1
  206. package/dist/esm/components/builtin/Video/Video.js.map +1 -1
  207. package/dist/esm/components/hooks/useMediaQuery.js +1 -2
  208. package/dist/esm/components/hooks/useMediaQuery.js.map +1 -1
  209. package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +1 -1
  210. package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
  211. package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js +4 -14
  212. package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
  213. package/dist/esm/components/shared/Link/index.js +13 -28
  214. package/dist/esm/components/shared/Link/index.js.map +1 -1
  215. package/dist/esm/components/shared/react-player.js +7 -0
  216. package/dist/esm/components/shared/react-player.js.map +1 -0
  217. package/dist/esm/components/utils/responsive-style.js.map +1 -1
  218. package/dist/esm/css/border-radius.js.map +1 -1
  219. package/dist/esm/css/border.js.map +1 -1
  220. package/dist/esm/css/margin.js.map +1 -1
  221. package/dist/esm/css/padding.js.map +1 -1
  222. package/dist/esm/next/api-handler/config/app-router.js +12 -10
  223. package/dist/esm/next/api-handler/config/app-router.js.map +1 -1
  224. package/dist/esm/next/api-handler/config/pages-router.js +9 -69
  225. package/dist/esm/next/api-handler/config/pages-router.js.map +1 -1
  226. package/dist/esm/next/api-handler/handlers/app-router-redirect-preview.js +64 -0
  227. package/dist/esm/next/api-handler/handlers/app-router-redirect-preview.js.map +1 -0
  228. package/dist/esm/next/api-handler/handlers/pages-router-redirect-preview.js +52 -0
  229. package/dist/esm/next/api-handler/handlers/pages-router-redirect-preview.js.map +1 -0
  230. package/dist/esm/next/api-handler/index.js +4 -3
  231. package/dist/esm/next/api-handler/index.js.map +1 -1
  232. package/dist/esm/next/api-handler/preview.js +15 -0
  233. package/dist/esm/next/api-handler/preview.js.map +1 -0
  234. package/dist/esm/next/app-router-site-version.js +16 -0
  235. package/dist/esm/next/app-router-site-version.js.map +1 -0
  236. package/dist/esm/next/client.js +10 -4
  237. package/dist/esm/next/client.js.map +1 -1
  238. package/dist/esm/next/components/framework-provider/app-router/index.js.map +1 -1
  239. package/dist/esm/next/components/framework-provider/index.js +13 -2
  240. package/dist/esm/next/components/framework-provider/index.js.map +1 -1
  241. package/dist/esm/next/components/framework-provider/link.js +35 -0
  242. package/dist/esm/next/components/framework-provider/link.js.map +1 -0
  243. package/dist/esm/next/components/framework-provider/pages-router/index.js.map +1 -1
  244. package/dist/esm/next/components/page.js +2 -4
  245. package/dist/esm/next/components/page.js.map +1 -1
  246. package/dist/esm/next/components/tests/__fixtures__/element-data/box-component.js +99 -0
  247. package/dist/esm/next/components/tests/__fixtures__/element-data/box-component.js.map +1 -0
  248. package/dist/esm/next/components/tests/__fixtures__/element-data/button-component.js +83 -0
  249. package/dist/esm/next/components/tests/__fixtures__/element-data/button-component.js.map +1 -0
  250. package/dist/esm/next/components/tests/__fixtures__/element-data/image-component.js +169 -0
  251. package/dist/esm/next/components/tests/__fixtures__/element-data/image-component.js.map +1 -0
  252. package/dist/esm/next/components/tests/__fixtures__/resources/files.js +15 -0
  253. package/dist/esm/next/components/tests/__fixtures__/resources/files.js.map +1 -0
  254. package/dist/esm/next/components/tests/__fixtures__/resources/index.js +4 -0
  255. package/dist/esm/next/components/tests/__fixtures__/resources/index.js.map +1 -0
  256. package/dist/esm/next/components/tests/__fixtures__/resources/page-pathname-slices.js +9 -0
  257. package/dist/esm/next/components/tests/__fixtures__/resources/page-pathname-slices.js.map +1 -0
  258. package/dist/esm/next/components/tests/__fixtures__/resources/swatches.js +11 -0
  259. package/dist/esm/next/components/tests/__fixtures__/resources/swatches.js.map +1 -0
  260. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +1 -1
  261. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  262. package/dist/esm/next/document.js +2 -1
  263. package/dist/esm/next/document.js.map +1 -1
  264. package/dist/esm/next/index.js +2 -2
  265. package/dist/esm/next/index.js.map +1 -1
  266. package/dist/esm/next/middleware/request-utils.js +14 -17
  267. package/dist/esm/next/middleware/request-utils.js.map +1 -1
  268. package/dist/esm/next/root-style-registry.js +11 -23
  269. package/dist/esm/next/root-style-registry.js.map +1 -1
  270. package/dist/esm/next/server.js +1 -1
  271. package/dist/esm/next/server.js.map +1 -1
  272. package/dist/esm/next/testing/page-rendering.js +14 -2
  273. package/dist/esm/next/testing/page-rendering.js.map +1 -1
  274. package/dist/esm/next/testing/react-provider.js +2 -2
  275. package/dist/esm/next/testing/react-provider.js.map +1 -1
  276. package/dist/esm/next/tests/test-utils.js +7 -5
  277. package/dist/esm/next/tests/test-utils.js.map +1 -1
  278. package/dist/esm/{next → runtimes/react}/components/MakeswiftComponent.js +6 -4
  279. package/dist/esm/runtimes/react/components/MakeswiftComponent.js.map +1 -0
  280. package/dist/esm/runtimes/react/components/RuntimeProvider.js +9 -7
  281. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  282. package/dist/esm/{next → runtimes/react}/components/Slot.js +3 -5
  283. package/dist/esm/runtimes/react/components/Slot.js.map +1 -0
  284. package/dist/esm/{next → runtimes/react}/components/SlotProvider.js +1 -2
  285. package/dist/esm/runtimes/react/components/SlotProvider.js.map +1 -0
  286. package/dist/esm/runtimes/react/components/framework-context.js +41 -3
  287. package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
  288. package/dist/esm/runtimes/react/components/page/index.js +19 -17
  289. package/dist/esm/runtimes/react/components/page/index.js.map +1 -1
  290. package/dist/esm/runtimes/react/components/{draft-switcher/draft-switcher.js → preview-switcher/preview-switcher.js} +8 -18
  291. package/dist/esm/runtimes/react/components/preview-switcher/preview-switcher.js.map +1 -0
  292. package/dist/esm/runtimes/react/components/{draft-switcher/draft-toolbar.js → preview-switcher/preview-toolbar.js} +13 -5
  293. package/dist/esm/runtimes/react/components/preview-switcher/preview-toolbar.js.map +1 -0
  294. package/dist/esm/runtimes/react/controls/style.js.map +1 -1
  295. package/dist/esm/runtimes/react/hooks/makeswift-api.js +1 -2
  296. package/dist/esm/runtimes/react/hooks/makeswift-api.js.map +1 -1
  297. package/dist/esm/runtimes/react/hooks/use-selector.js +1 -1
  298. package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -1
  299. package/dist/esm/runtimes/react/hooks/use-stylesheet-factory.js +1 -1
  300. package/dist/esm/runtimes/react/hooks/use-stylesheet-factory.js.map +1 -1
  301. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  302. package/dist/esm/runtimes/react/host-api-client.js +7 -2
  303. package/dist/esm/runtimes/react/host-api-client.js.map +1 -1
  304. package/dist/esm/runtimes/react/root-style-registry.js +37 -13
  305. package/dist/esm/runtimes/react/root-style-registry.js.map +1 -1
  306. package/dist/esm/runtimes/react/use-global-style.js +1 -1
  307. package/dist/esm/runtimes/react/use-global-style.js.map +1 -1
  308. package/dist/esm/runtimes/react/use-style.js +1 -1
  309. package/dist/esm/runtimes/react/use-style.js.map +1 -1
  310. package/dist/esm/state/actions.js +5 -0
  311. package/dist/esm/state/actions.js.map +1 -1
  312. package/dist/esm/state/makeswift-api-client.js +42 -58
  313. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  314. package/dist/esm/state/mixins/setup-teardown.js.map +1 -1
  315. package/dist/esm/state/modules/api-resources.js +3 -1
  316. package/dist/esm/state/modules/api-resources.js.map +1 -1
  317. package/dist/esm/state/modules/box-models.js +3 -1
  318. package/dist/esm/state/modules/box-models.js.map +1 -1
  319. package/dist/esm/state/modules/breakpoints.js +4 -2
  320. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  321. package/dist/esm/state/modules/builder-edit-mode.js +3 -1
  322. package/dist/esm/state/modules/builder-edit-mode.js.map +1 -1
  323. package/dist/esm/state/modules/components-meta.js +3 -1
  324. package/dist/esm/state/modules/components-meta.js.map +1 -1
  325. package/dist/esm/state/modules/element-imperative-handles.js +3 -1
  326. package/dist/esm/state/modules/element-imperative-handles.js.map +1 -1
  327. package/dist/esm/state/modules/element-trees.js +3 -1
  328. package/dist/esm/state/modules/element-trees.js.map +1 -1
  329. package/dist/esm/state/modules/is-in-builder.js +3 -1
  330. package/dist/esm/state/modules/is-in-builder.js.map +1 -1
  331. package/dist/esm/state/modules/is-preview.js +3 -0
  332. package/dist/esm/state/modules/is-preview.js.map +1 -1
  333. package/dist/esm/state/modules/localized-resources-map.js +3 -1
  334. package/dist/esm/state/modules/localized-resources-map.js.map +1 -1
  335. package/dist/esm/state/modules/pointer.js +3 -1
  336. package/dist/esm/state/modules/pointer.js.map +1 -1
  337. package/dist/esm/state/modules/prop-controller-handles.js +3 -1
  338. package/dist/esm/state/modules/prop-controller-handles.js.map +1 -1
  339. package/dist/esm/state/modules/prop-controllers.js +3 -1
  340. package/dist/esm/state/modules/prop-controllers.js.map +1 -1
  341. package/dist/esm/state/modules/react-components.js +3 -1
  342. package/dist/esm/state/modules/react-components.js.map +1 -1
  343. package/dist/esm/state/modules/read-only-documents.js +6 -1
  344. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  345. package/dist/esm/state/modules/read-write-documents.js +3 -1
  346. package/dist/esm/state/modules/read-write-documents.js.map +1 -1
  347. package/dist/esm/state/react-builder-preview.js +33 -40
  348. package/dist/esm/state/react-builder-preview.js.map +1 -1
  349. package/dist/esm/state/react-page.js +16 -21
  350. package/dist/esm/state/react-page.js.map +1 -1
  351. package/dist/esm/state/toolkit.js +28 -0
  352. package/dist/esm/state/toolkit.js.map +1 -0
  353. package/dist/esm/testing/fixtures.js +13 -0
  354. package/dist/esm/testing/fixtures.js.map +1 -0
  355. package/dist/esm/utils/esm-compat.js +5 -0
  356. package/dist/esm/utils/esm-compat.js.map +1 -0
  357. package/dist/types/api/graphql/documents/queries.d.ts +7 -7
  358. package/dist/types/api/graphql/documents/queries.d.ts.map +1 -1
  359. package/dist/types/api/graphql/generated/fragment-document-nodes.d.ts.map +1 -1
  360. package/dist/types/api/react.d.ts +3 -4
  361. package/dist/types/api/react.d.ts.map +1 -1
  362. package/dist/types/api/site-version/index.d.ts +19 -0
  363. package/dist/types/api/site-version/index.d.ts.map +1 -0
  364. package/dist/types/api/site-version/site-version.test.d.ts +2 -0
  365. package/dist/types/api/site-version/site-version.test.d.ts.map +1 -0
  366. package/dist/types/api-handler/handlers/manifest.d.ts +1 -3
  367. package/dist/types/api-handler/handlers/manifest.d.ts.map +1 -1
  368. package/dist/types/api-handler/handlers/redirect-live.d.ts +6 -0
  369. package/dist/types/api-handler/handlers/redirect-live.d.ts.map +1 -0
  370. package/dist/types/api-handler/index.d.ts +5 -5
  371. package/dist/types/api-handler/index.d.ts.map +1 -1
  372. package/dist/types/api-handler/node-request-response.d.ts +8 -0
  373. package/dist/types/api-handler/node-request-response.d.ts.map +1 -0
  374. package/dist/types/api-handler/node-request-response.test.d.ts +2 -0
  375. package/dist/types/api-handler/node-request-response.test.d.ts.map +1 -0
  376. package/dist/types/api-handler/preview.d.ts +5 -0
  377. package/dist/types/api-handler/preview.d.ts.map +1 -0
  378. package/dist/types/api-handler/request-response.d.ts +1 -0
  379. package/dist/types/api-handler/request-response.d.ts.map +1 -1
  380. package/dist/types/client/index.d.ts +174 -165
  381. package/dist/types/client/index.d.ts.map +1 -1
  382. package/dist/types/components/builtin/Box/Box.d.ts +15 -147
  383. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  384. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts +0 -1
  385. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -1
  386. package/dist/types/components/builtin/Button/Button.d.ts +4 -70
  387. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
  388. package/dist/types/components/builtin/Carousel/Carousel.d.ts +0 -1
  389. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  390. package/dist/types/components/builtin/Countdown/Countdown.d.ts +0 -1
  391. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  392. package/dist/types/components/builtin/Divider/Divider.d.ts +0 -1
  393. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
  394. package/dist/types/components/builtin/Embed/Embed.d.ts +0 -1
  395. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
  396. package/dist/types/components/builtin/Form/Form.d.ts +0 -1
  397. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  398. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  399. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -1
  400. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +0 -1
  401. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -1
  402. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +0 -1
  403. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -1
  404. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts +0 -1
  405. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
  406. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +0 -1
  407. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -1
  408. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +0 -1
  409. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -1
  410. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +0 -1
  411. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -1
  412. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +0 -1
  413. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -1
  414. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +1 -1
  415. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
  416. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +0 -1
  417. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -1
  418. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +0 -1
  419. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
  420. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts +0 -1
  421. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
  422. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +0 -1
  423. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -1
  424. package/dist/types/components/builtin/Form/components/Field/index.d.ts +0 -1
  425. package/dist/types/components/builtin/Form/components/Field/index.d.ts.map +1 -1
  426. package/dist/types/components/builtin/Form/components/Field/services/responsiveField.d.ts +1 -1
  427. package/dist/types/components/builtin/Form/components/Field/services/responsiveField.d.ts.map +1 -1
  428. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts +0 -1
  429. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
  430. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts +0 -1
  431. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -1
  432. package/dist/types/components/builtin/Form/context/FormContext.d.ts +0 -1
  433. package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -1
  434. package/dist/types/components/builtin/Image/Image.d.ts +0 -1
  435. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
  436. package/dist/types/components/builtin/Navigation/Navigation.d.ts +0 -1
  437. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  438. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +0 -1
  439. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
  440. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +0 -1
  441. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  442. package/dist/types/components/builtin/Root/Root.d.ts +1 -2
  443. package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
  444. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts +0 -1
  445. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -1
  446. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +0 -1
  447. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  448. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +0 -1
  449. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -1
  450. package/dist/types/components/builtin/Text/Text.d.ts +0 -1
  451. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -1
  452. package/dist/types/components/builtin/Video/Video.d.ts +0 -1
  453. package/dist/types/components/builtin/Video/Video.d.ts.map +1 -1
  454. package/dist/types/components/hooks/useMediaQuery.d.ts.map +1 -1
  455. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +0 -1
  456. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
  457. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +0 -1
  458. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  459. package/dist/types/components/shared/ErrorBoundary.d.ts +0 -1
  460. package/dist/types/components/shared/ErrorBoundary.d.ts.map +1 -1
  461. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts +0 -1
  462. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -1
  463. package/dist/types/components/shared/Link/index.d.ts.map +1 -1
  464. package/dist/types/components/shared/react-player.d.ts +3 -0
  465. package/dist/types/components/shared/react-player.d.ts.map +1 -0
  466. package/dist/types/components/utils/columns.d.ts.map +1 -1
  467. package/dist/types/components/utils/responsive-style.d.ts +1 -1
  468. package/dist/types/components/utils/responsive-style.d.ts.map +1 -1
  469. package/dist/types/controls/control.d.ts +1 -25
  470. package/dist/types/controls/control.d.ts.map +1 -1
  471. package/dist/types/controls/link.d.ts +3 -3
  472. package/dist/types/controls/link.d.ts.map +1 -1
  473. package/dist/types/controls/rich-text/control.d.ts.map +1 -1
  474. package/dist/types/controls/rich-text-v2/control.d.ts +13 -13
  475. package/dist/types/controls/rich-text-v2/control.d.ts.map +1 -1
  476. package/dist/types/controls/rich-text-v2/plugin.d.ts +2 -2
  477. package/dist/types/controls/rich-text-v2/plugin.d.ts.map +1 -1
  478. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +556 -12
  479. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  480. package/dist/types/css/border-radius.d.ts +1 -1
  481. package/dist/types/css/border-radius.d.ts.map +1 -1
  482. package/dist/types/css/border.d.ts +1 -1
  483. package/dist/types/css/border.d.ts.map +1 -1
  484. package/dist/types/css/margin.d.ts +1 -1
  485. package/dist/types/css/margin.d.ts.map +1 -1
  486. package/dist/types/css/padding.d.ts +1 -1
  487. package/dist/types/css/padding.d.ts.map +1 -1
  488. package/dist/types/next/api-handler/config/app-router.d.ts +10 -8
  489. package/dist/types/next/api-handler/config/app-router.d.ts.map +1 -1
  490. package/dist/types/next/api-handler/config/pages-router.d.ts +3 -2
  491. package/dist/types/next/api-handler/config/pages-router.d.ts.map +1 -1
  492. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.d.ts +5 -0
  493. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.d.ts.map +1 -0
  494. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.test.d.ts +2 -0
  495. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.test.d.ts.map +1 -0
  496. package/dist/types/next/api-handler/handlers/pages-router-redirect-preview.d.ts +4 -0
  497. package/dist/types/next/api-handler/handlers/pages-router-redirect-preview.d.ts.map +1 -0
  498. package/dist/types/next/api-handler/index.d.ts +1 -1
  499. package/dist/types/next/api-handler/index.d.ts.map +1 -1
  500. package/dist/types/next/api-handler/preview.d.ts +8 -0
  501. package/dist/types/next/api-handler/preview.d.ts.map +1 -0
  502. package/dist/types/next/app-router-site-version.d.ts +3 -0
  503. package/dist/types/next/app-router-site-version.d.ts.map +1 -0
  504. package/dist/types/next/client.d.ts +3 -3
  505. package/dist/types/next/client.d.ts.map +1 -1
  506. package/dist/types/next/components/framework-provider/app-router/index.d.ts +1 -1
  507. package/dist/types/next/components/framework-provider/app-router/index.d.ts.map +1 -1
  508. package/dist/types/next/components/framework-provider/index.d.ts.map +1 -1
  509. package/dist/types/next/components/framework-provider/link.d.ts +2 -0
  510. package/dist/types/next/components/framework-provider/link.d.ts.map +1 -0
  511. package/dist/types/next/components/framework-provider/pages-router/index.d.ts +1 -1
  512. package/dist/types/next/components/framework-provider/pages-router/index.d.ts.map +1 -1
  513. package/dist/types/next/components/page.d.ts +2 -7
  514. package/dist/types/next/components/page.d.ts.map +1 -1
  515. package/dist/types/next/components/tests/__fixtures__/element-data/box-component.d.ts +8 -0
  516. package/dist/types/next/components/tests/__fixtures__/element-data/box-component.d.ts.map +1 -0
  517. package/dist/types/next/components/tests/__fixtures__/element-data/button-component.d.ts +9 -0
  518. package/dist/types/next/components/tests/__fixtures__/element-data/button-component.d.ts.map +1 -0
  519. package/dist/types/next/components/tests/__fixtures__/element-data/image-component.d.ts +7 -0
  520. package/dist/types/next/components/tests/__fixtures__/element-data/image-component.d.ts.map +1 -0
  521. package/dist/types/next/components/tests/__fixtures__/resources/files.d.ts +3 -0
  522. package/dist/types/next/components/tests/__fixtures__/resources/files.d.ts.map +1 -0
  523. package/dist/types/next/components/tests/__fixtures__/resources/index.d.ts +4 -0
  524. package/dist/types/next/components/tests/__fixtures__/resources/index.d.ts.map +1 -0
  525. package/dist/types/next/components/tests/__fixtures__/resources/page-pathname-slices.d.ts +3 -0
  526. package/dist/types/next/components/tests/__fixtures__/resources/page-pathname-slices.d.ts.map +1 -0
  527. package/dist/types/next/components/tests/__fixtures__/resources/swatches.d.ts +3 -0
  528. package/dist/types/next/components/tests/__fixtures__/resources/swatches.d.ts.map +1 -0
  529. package/dist/types/next/components/tests/components/box-component-rendering.test.d.ts +3 -0
  530. package/dist/types/next/components/tests/components/box-component-rendering.test.d.ts.map +1 -0
  531. package/dist/types/next/components/tests/components/button-component-rendering.test.d.ts +3 -0
  532. package/dist/types/next/components/tests/components/button-component-rendering.test.d.ts.map +1 -0
  533. package/dist/types/next/components/tests/components/image-component-rendering.test.d.ts +3 -0
  534. package/dist/types/next/components/tests/components/image-component-rendering.test.d.ts.map +1 -0
  535. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts.map +1 -1
  536. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts.map +1 -1
  537. package/dist/types/next/components/tests/controls/style-control/fixtures.d.ts.map +1 -1
  538. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts +3 -16
  539. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts.map +1 -1
  540. package/dist/types/next/document.d.ts.map +1 -1
  541. package/dist/types/next/index.d.ts +3 -3
  542. package/dist/types/next/index.d.ts.map +1 -1
  543. package/dist/types/next/middleware/request-utils.d.ts +1 -0
  544. package/dist/types/next/middleware/request-utils.d.ts.map +1 -1
  545. package/dist/types/next/root-style-registry.d.ts +3 -12
  546. package/dist/types/next/root-style-registry.d.ts.map +1 -1
  547. package/dist/types/next/server.d.ts +1 -1
  548. package/dist/types/next/server.d.ts.map +1 -1
  549. package/dist/types/next/testing/element-data.d.ts +13 -13
  550. package/dist/types/next/testing/page-rendering.d.ts +3 -0
  551. package/dist/types/next/testing/page-rendering.d.ts.map +1 -1
  552. package/dist/types/next/testing/react-provider.d.ts +3 -3
  553. package/dist/types/next/testing/react-provider.d.ts.map +1 -1
  554. package/dist/types/next/tests/server.api-handler-app-router-redirect-preview.test.d.ts +2 -0
  555. package/dist/types/next/tests/server.api-handler-app-router-redirect-preview.test.d.ts.map +1 -0
  556. package/dist/types/next/tests/server.api-handler-pages-router-redirect-preview.test.d.ts +2 -0
  557. package/dist/types/next/tests/server.api-handler-pages-router-redirect-preview.test.d.ts.map +1 -0
  558. package/dist/types/next/tests/server.api-handler-redirect-live.test.d.ts +2 -0
  559. package/dist/types/next/tests/server.api-handler-redirect-live.test.d.ts.map +1 -0
  560. package/dist/types/next/tests/test-utils.d.ts.map +1 -1
  561. package/dist/types/runtimes/react/components/Document.d.ts +0 -1
  562. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  563. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +0 -1
  564. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -1
  565. package/dist/types/runtimes/react/components/Element.d.ts +0 -1
  566. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  567. package/dist/types/runtimes/react/components/ElementData.d.ts +0 -1
  568. package/dist/types/runtimes/react/components/ElementData.d.ts.map +1 -1
  569. package/dist/types/runtimes/react/components/ElementReference.d.ts +0 -1
  570. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  571. package/dist/types/{next → runtimes/react}/components/MakeswiftComponent.d.ts +1 -2
  572. package/dist/types/runtimes/react/components/MakeswiftComponent.d.ts.map +1 -0
  573. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +3 -2
  574. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  575. package/dist/types/{next → runtimes/react}/components/Slot.d.ts +2 -2
  576. package/dist/types/runtimes/react/components/Slot.d.ts.map +1 -0
  577. package/dist/types/{next → runtimes/react}/components/SlotProvider.d.ts +1 -2
  578. package/dist/types/runtimes/react/components/SlotProvider.d.ts.map +1 -0
  579. package/dist/types/runtimes/react/components/framework-context.d.ts +25 -1
  580. package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
  581. package/dist/types/runtimes/react/components/page/HeadSnippet.d.ts +0 -1
  582. package/dist/types/runtimes/react/components/page/HeadSnippet.d.ts.map +1 -1
  583. package/dist/types/runtimes/react/components/page/Page.d.ts +0 -1
  584. package/dist/types/runtimes/react/components/page/Page.d.ts.map +1 -1
  585. package/dist/types/runtimes/react/components/page/PageHead.d.ts +0 -1
  586. package/dist/types/runtimes/react/components/page/PageHead.d.ts.map +1 -1
  587. package/dist/types/runtimes/react/components/page/index.d.ts +23 -3
  588. package/dist/types/runtimes/react/components/page/index.d.ts.map +1 -1
  589. package/dist/types/runtimes/react/components/preview-switcher/preview-switcher.d.ts +4 -0
  590. package/dist/types/runtimes/react/components/preview-switcher/preview-switcher.d.ts.map +1 -0
  591. package/dist/types/runtimes/react/components/preview-switcher/preview-toolbar.d.ts +2 -0
  592. package/dist/types/runtimes/react/components/preview-switcher/preview-toolbar.d.ts.map +1 -0
  593. package/dist/types/runtimes/react/components/render-hook.d.ts +0 -1
  594. package/dist/types/runtimes/react/components/render-hook.d.ts.map +1 -1
  595. package/dist/types/runtimes/react/controls/control.d.ts +0 -1
  596. package/dist/types/runtimes/react/controls/control.d.ts.map +1 -1
  597. package/dist/types/runtimes/react/controls/group.d.ts +0 -1
  598. package/dist/types/runtimes/react/controls/group.d.ts.map +1 -1
  599. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts +0 -1
  600. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -1
  601. package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts +0 -1
  602. package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -1
  603. package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +0 -1
  604. package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  605. package/dist/types/runtimes/react/controls/style.d.ts +1 -1
  606. package/dist/types/runtimes/react/controls/style.d.ts.map +1 -1
  607. package/dist/types/runtimes/react/controls.d.ts +0 -1
  608. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  609. package/dist/types/runtimes/react/hooks/makeswift-api.d.ts.map +1 -1
  610. package/dist/types/runtimes/react/hooks/use-disable-register-element.d.ts +0 -1
  611. package/dist/types/runtimes/react/hooks/use-disable-register-element.d.ts.map +1 -1
  612. package/dist/types/runtimes/react/hooks/use-document-context.d.ts +0 -1
  613. package/dist/types/runtimes/react/hooks/use-document-context.d.ts.map +1 -1
  614. package/dist/types/runtimes/react/hooks/use-document-cycles.d.ts +0 -1
  615. package/dist/types/runtimes/react/hooks/use-document-cycles.d.ts.map +1 -1
  616. package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts +0 -1
  617. package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts.map +1 -1
  618. package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -1
  619. package/dist/types/runtimes/react/hooks/use-store.d.ts +25 -2
  620. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  621. package/dist/types/runtimes/react/hooks/use-stylesheet-factory.d.ts.map +1 -1
  622. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +1 -1
  623. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -1
  624. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -1
  625. package/dist/types/runtimes/react/legacy-controls.d.ts +0 -1
  626. package/dist/types/runtimes/react/legacy-controls.d.ts.map +1 -1
  627. package/dist/types/runtimes/react/root-style-registry.d.ts +30 -10
  628. package/dist/types/runtimes/react/root-style-registry.d.ts.map +1 -1
  629. package/dist/types/runtimes/react/use-global-style.d.ts.map +1 -1
  630. package/dist/types/runtimes/react/use-style.d.ts +1 -1
  631. package/dist/types/runtimes/react/use-style.d.ts.map +1 -1
  632. package/dist/types/slate/BlockPlugin/index.d.ts +5 -5
  633. package/dist/types/slate/BlockPlugin/utils/location.d.ts.map +1 -1
  634. package/dist/types/slate/InlineModePlugin/index.d.ts +41 -41
  635. package/dist/types/slate/InlinePlugin/getValue.d.ts.map +1 -1
  636. package/dist/types/slate/InlinePlugin/index.d.ts +5 -6
  637. package/dist/types/slate/InlinePlugin/index.d.ts.map +1 -1
  638. package/dist/types/slate/InlinePlugin/onChange.d.ts.map +1 -1
  639. package/dist/types/slate/LinkPlugin/getValue.d.ts +1 -1
  640. package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -1
  641. package/dist/types/slate/LinkPlugin/index.d.ts +3 -4
  642. package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
  643. package/dist/types/slate/LinkPlugin/onChange.d.ts.map +1 -1
  644. package/dist/types/slate/TextAlignPlugin/index.d.ts +5 -6
  645. package/dist/types/slate/TextAlignPlugin/index.d.ts.map +1 -1
  646. package/dist/types/slate/TypographyPlugin/getValue.d.ts.map +1 -1
  647. package/dist/types/slate/TypographyPlugin/index.d.ts +2 -3
  648. package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
  649. package/dist/types/slate/test-helpers/editor-v1.d.ts +0 -1
  650. package/dist/types/slate/test-helpers/editor-v1.d.ts.map +1 -1
  651. package/dist/types/slate/test-helpers/editor-v2-inline.d.ts +0 -1
  652. package/dist/types/slate/test-helpers/editor-v2-inline.d.ts.map +1 -1
  653. package/dist/types/slate/test-helpers/editor-v2.d.ts +0 -1
  654. package/dist/types/slate/test-helpers/editor-v2.d.ts.map +1 -1
  655. package/dist/types/slate/test-helpers/slate-test-helper.d.ts +4 -4
  656. package/dist/types/slate/test-helpers/slate-test-helper.d.ts.map +1 -1
  657. package/dist/types/slate/test-helpers/test-elements.d.ts +8 -64
  658. package/dist/types/slate/test-helpers/test-elements.d.ts.map +1 -1
  659. package/dist/types/slate/utils/editor.d.ts.map +1 -1
  660. package/dist/types/slate/utils/element.d.ts.map +1 -1
  661. package/dist/types/slate/utils/location.d.ts.map +1 -1
  662. package/dist/types/slate/utils/responsive.d.ts.map +1 -1
  663. package/dist/types/state/__tests__/actions.test.d.ts +2 -0
  664. package/dist/types/state/__tests__/actions.test.d.ts.map +1 -0
  665. package/dist/types/state/actions.d.ts +3 -2
  666. package/dist/types/state/actions.d.ts.map +1 -1
  667. package/dist/types/state/makeswift-api-client.d.ts +19 -11
  668. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  669. package/dist/types/state/mixins/setup-teardown.d.ts +1 -1
  670. package/dist/types/state/mixins/setup-teardown.d.ts.map +1 -1
  671. package/dist/types/state/modules/api-resources.d.ts +2 -2
  672. package/dist/types/state/modules/api-resources.d.ts.map +1 -1
  673. package/dist/types/state/modules/box-models.d.ts +2 -2
  674. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  675. package/dist/types/state/modules/breakpoints.d.ts +2 -2
  676. package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
  677. package/dist/types/state/modules/builder-edit-mode.d.ts +2 -2
  678. package/dist/types/state/modules/builder-edit-mode.d.ts.map +1 -1
  679. package/dist/types/state/modules/components-meta.d.ts +2 -2
  680. package/dist/types/state/modules/components-meta.d.ts.map +1 -1
  681. package/dist/types/state/modules/element-imperative-handles.d.ts +2 -2
  682. package/dist/types/state/modules/element-imperative-handles.d.ts.map +1 -1
  683. package/dist/types/state/modules/element-trees.d.ts +2 -2
  684. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  685. package/dist/types/state/modules/is-in-builder.d.ts +2 -2
  686. package/dist/types/state/modules/is-in-builder.d.ts.map +1 -1
  687. package/dist/types/state/modules/is-preview.d.ts +2 -2
  688. package/dist/types/state/modules/is-preview.d.ts.map +1 -1
  689. package/dist/types/state/modules/localized-resources-map.d.ts +2 -2
  690. package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -1
  691. package/dist/types/state/modules/pointer.d.ts +2 -2
  692. package/dist/types/state/modules/pointer.d.ts.map +1 -1
  693. package/dist/types/state/modules/prop-controller-handles.d.ts +2 -2
  694. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -1
  695. package/dist/types/state/modules/prop-controllers.d.ts +2 -2
  696. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  697. package/dist/types/state/modules/react-components.d.ts +2 -2
  698. package/dist/types/state/modules/react-components.d.ts.map +1 -1
  699. package/dist/types/state/modules/read-only-documents.d.ts +2 -2
  700. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  701. package/dist/types/state/modules/read-write-documents.d.ts +2 -2
  702. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
  703. package/dist/types/state/react-builder-preview.d.ts +57 -10
  704. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  705. package/dist/types/state/react-page.d.ts +67 -36
  706. package/dist/types/state/react-page.d.ts.map +1 -1
  707. package/dist/types/state/toolkit.d.ts +11 -0
  708. package/dist/types/state/toolkit.d.ts.map +1 -0
  709. package/dist/types/testing/fixtures.d.ts +7 -0
  710. package/dist/types/testing/fixtures.d.ts.map +1 -0
  711. package/dist/types/utils/clamp.d.ts.map +1 -1
  712. package/dist/types/utils/esm-compat.d.ts +2 -0
  713. package/dist/types/utils/esm-compat.d.ts.map +1 -0
  714. package/dist/types/utils/keys.d.ts.map +1 -1
  715. package/package.json +14 -15
  716. package/dist/cjs/api/site-version.js +0 -42
  717. package/dist/cjs/api/site-version.js.map +0 -1
  718. package/dist/cjs/api-handler/handlers/clear-draft.js.map +0 -1
  719. package/dist/cjs/next/api-handler/draft.js.map +0 -1
  720. package/dist/cjs/next/api-handler/handlers/redirect-draft.js.map +0 -1
  721. package/dist/cjs/next/api-handler/handlers/redirect-preview.js.map +0 -1
  722. package/dist/cjs/next/components/MakeswiftComponent.js.map +0 -1
  723. package/dist/cjs/next/components/Slot.js.map +0 -1
  724. package/dist/cjs/next/components/SlotProvider.js.map +0 -1
  725. package/dist/cjs/next/draft-mode/index.js +0 -56
  726. package/dist/cjs/next/draft-mode/index.js.map +0 -1
  727. package/dist/cjs/next/preview-mode.js.map +0 -1
  728. package/dist/cjs/runtimes/react/components/draft-switcher/draft-switcher.js.map +0 -1
  729. package/dist/cjs/runtimes/react/components/draft-switcher/draft-toolbar.js.map +0 -1
  730. package/dist/esm/api/site-version.js +0 -15
  731. package/dist/esm/api/site-version.js.map +0 -1
  732. package/dist/esm/api-handler/handlers/clear-draft.js +0 -17
  733. package/dist/esm/api-handler/handlers/clear-draft.js.map +0 -1
  734. package/dist/esm/next/api-handler/draft.js +0 -14
  735. package/dist/esm/next/api-handler/draft.js.map +0 -1
  736. package/dist/esm/next/api-handler/handlers/redirect-draft.js +0 -52
  737. package/dist/esm/next/api-handler/handlers/redirect-draft.js.map +0 -1
  738. package/dist/esm/next/api-handler/handlers/redirect-preview.js +0 -37
  739. package/dist/esm/next/api-handler/handlers/redirect-preview.js.map +0 -1
  740. package/dist/esm/next/components/MakeswiftComponent.js.map +0 -1
  741. package/dist/esm/next/components/Slot.js.map +0 -1
  742. package/dist/esm/next/components/SlotProvider.js.map +0 -1
  743. package/dist/esm/next/draft-mode/index.js +0 -30
  744. package/dist/esm/next/draft-mode/index.js.map +0 -1
  745. package/dist/esm/next/preview-mode.js +0 -16
  746. package/dist/esm/next/preview-mode.js.map +0 -1
  747. package/dist/esm/runtimes/react/components/draft-switcher/draft-switcher.js.map +0 -1
  748. package/dist/esm/runtimes/react/components/draft-switcher/draft-toolbar.js.map +0 -1
  749. package/dist/types/api/site-version.d.ts +0 -7
  750. package/dist/types/api/site-version.d.ts.map +0 -1
  751. package/dist/types/api-handler/handlers/clear-draft.d.ts +0 -7
  752. package/dist/types/api-handler/handlers/clear-draft.d.ts.map +0 -1
  753. package/dist/types/next/api-handler/draft.d.ts +0 -8
  754. package/dist/types/next/api-handler/draft.d.ts.map +0 -1
  755. package/dist/types/next/api-handler/handlers/redirect-draft.d.ts +0 -6
  756. package/dist/types/next/api-handler/handlers/redirect-draft.d.ts.map +0 -1
  757. package/dist/types/next/api-handler/handlers/redirect-draft.test.d.ts +0 -2
  758. package/dist/types/next/api-handler/handlers/redirect-draft.test.d.ts.map +0 -1
  759. package/dist/types/next/api-handler/handlers/redirect-preview.d.ts +0 -5
  760. package/dist/types/next/api-handler/handlers/redirect-preview.d.ts.map +0 -1
  761. package/dist/types/next/components/MakeswiftComponent.d.ts.map +0 -1
  762. package/dist/types/next/components/Slot.d.ts.map +0 -1
  763. package/dist/types/next/components/SlotProvider.d.ts.map +0 -1
  764. package/dist/types/next/draft-mode/index.d.ts +0 -15
  765. package/dist/types/next/draft-mode/index.d.ts.map +0 -1
  766. package/dist/types/next/preview-mode.d.ts +0 -17
  767. package/dist/types/next/preview-mode.d.ts.map +0 -1
  768. package/dist/types/next/tests/server.api-handler-clear-draft.test.d.ts +0 -2
  769. package/dist/types/next/tests/server.api-handler-clear-draft.test.d.ts.map +0 -1
  770. package/dist/types/next/tests/server.api-handler-redirect-draft.test.d.ts +0 -2
  771. package/dist/types/next/tests/server.api-handler-redirect-draft.test.d.ts.map +0 -1
  772. package/dist/types/next/tests/server.api-handler-redirect-preview.test.d.ts +0 -2
  773. package/dist/types/next/tests/server.api-handler-redirect-preview.test.d.ts.map +0 -1
  774. package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts +0 -4
  775. package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts.map +0 -1
  776. package/dist/types/runtimes/react/components/draft-switcher/draft-toolbar.d.ts +0 -6
  777. package/dist/types/runtimes/react/components/draft-switcher/draft-toolbar.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/element-imperative-handles.ts"],"sourcesContent":["import { ElementImperativeHandle } from '../../runtimes/react/element-imperative-handle'\nimport { Action, ActionTypes } from '../actions'\n\ntype State = Map<string, Map<string, ElementImperativeHandle>>\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return state\n}\n\nfunction getInitialState(): State {\n return new Map()\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT_HANDLE:\n return new Map(state).set(\n action.payload.documentKey,\n new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n\n case ActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const byElementKey = new Map(state.get(action.payload.documentKey) ?? [])\n\n const deleted = byElementKey.delete(action.payload.elementKey)\n\n if (!deleted) return state\n\n return new Map(state).set(action.payload.documentKey, byElementKey)\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAoC;AAI7B,SAAS,4BACd,OACmD;AACnD,SAAO;AACT;AAEA,SAAS,kBAAyB;AAChC,SAAO,oBAAI,IAAI;AACjB;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuB;AAC/E,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":[]}
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":[]}
@@ -59,6 +59,8 @@ function getElementId(state, documentKey, elementKey) {
59
59
  return getElementIds(state, documentKey).get(elementKey) ?? null;
60
60
  }
61
61
  function reducer(state = getInitialState(), action) {
62
+ if (!(0, import_actions.isKnownAction)(action))
63
+ return state;
62
64
  switch (action.type) {
63
65
  case import_actions.ActionTypes.CREATE_ELEMENT_TREE: {
64
66
  const { document, descriptors } = action.payload;
@@ -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 { Introspection } from '../../prop-controllers'\n\nimport { type Action, ActionTypes } 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): State {\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":"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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 { Introspection } from '../../prop-controllers'\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":"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","names":["i"]}
@@ -31,6 +31,8 @@ function getIsInBuilder(state) {
31
31
  return state;
32
32
  }
33
33
  function reducer(state = getInitialState(), action) {
34
+ if (!(0, import_actions.isKnownAction)(action))
35
+ return state;
34
36
  switch (action.type) {
35
37
  case import_actions.ActionTypes.SET_IS_IN_BUILDER:
36
38
  return action.payload;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/is-in-builder.ts"],"sourcesContent":["import { Action, ActionTypes } 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): State {\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,qBAAoC;AAI7B,SAAS,kBAAyB;AACvC,SAAO;AACT;AAEO,SAAS,eAAe,OAAuB;AACpD,SAAO;AACT;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuB;AAC/E,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY;AACf,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":[]}
@@ -23,6 +23,7 @@ __export(is_preview_exports, {
23
23
  reducer: () => reducer
24
24
  });
25
25
  module.exports = __toCommonJS(is_preview_exports);
26
+ var import_actions = require("../actions");
26
27
  function getInitialState(isPreview = false) {
27
28
  return isPreview;
28
29
  }
@@ -30,6 +31,8 @@ function getIsPreview(state) {
30
31
  return state;
31
32
  }
32
33
  function reducer(state = getInitialState(), action) {
34
+ if (!(0, import_actions.isKnownAction)(action))
35
+ return state;
33
36
  switch (action.type) {
34
37
  default:
35
38
  return state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/is-preview.ts"],"sourcesContent":["import { Action } 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): State {\n switch (action.type) {\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,SAAS,gBAAgB,YAAY,OAAc;AACxD,SAAO;AACT;AAEO,SAAS,aAAa,OAAuB;AAClD,SAAO;AACT;AAEO,SAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAuB;AACxE,UAAQ,OAAO,MAAM;AAAA,IACnB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
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":[]}
@@ -41,6 +41,8 @@ function getLocalizedResourceId(state, locale, resourceId) {
41
41
  return state.get(locale)?.get(resourceId);
42
42
  }
43
43
  function reducer(state = getInitialState(), action) {
44
+ if (!(0, import_actions.isKnownAction)(action))
45
+ return state;
44
46
  switch (action.type) {
45
47
  case import_actions.ActionTypes.SET_LOCALIZED_RESOURCE_ID: {
46
48
  const { resourceId, localizedResourceId, locale } = action.payload;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/localized-resources-map.ts"],"sourcesContent":["import { mapValues } from '@makeswift/controls'\nimport { Action, ActionTypes } 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): State {\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,qBAAoC;AAU7B,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,QAAuB;AAC/E,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"]}
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"]}
@@ -30,6 +30,8 @@ function getPointer(state) {
30
30
  return state.pointer;
31
31
  }
32
32
  function reducer(state = getInitialState(), action) {
33
+ if (!(0, import_actions.isKnownAction)(action))
34
+ return state;
33
35
  switch (action.type) {
34
36
  case import_actions.ActionTypes.BUILDER_POINTER_MOVE:
35
37
  return { ...state, pointer: action.payload.pointer };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/pointer.ts"],"sourcesContent":["import { Action, ActionTypes } from '../actions'\n\nexport type Point = { x: number; y: number }\n\ntype State = {\n pointer: Point | null\n}\n\nfunction getInitialState(): State {\n return { pointer: null }\n}\n\nexport function getPointer(state: State): Point | null {\n return state.pointer\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.BUILDER_POINTER_MOVE:\n return { ...state, pointer: action.payload.pointer }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC;AAQpC,SAAS,kBAAyB;AAChC,SAAO,EAAE,SAAS,KAAK;AACzB;AAEO,SAAS,WAAW,OAA4B;AACrD,SAAO,MAAM;AACf;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuB;AAC/E,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY;AACf,aAAO,EAAE,GAAG,OAAO,SAAS,OAAO,QAAQ,QAAQ;AAAA,IAErD;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
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":[]}
@@ -46,6 +46,8 @@ function getPropController(state, documentKey, elementKey, propName) {
46
46
  return getPropControllers(state, documentKey, elementKey)?.[propName] ?? null;
47
47
  }
48
48
  function reducer(state = getInitialState(), action) {
49
+ if (!(0, import_actions.isKnownAction)(action))
50
+ return state;
49
51
  switch (action.type) {
50
52
  case import_actions.ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE: {
51
53
  const { documentKey, elementKey, handle } = action.payload;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/prop-controller-handles.ts"],"sourcesContent":["import { ControlInstance } from '@makeswift/controls'\nimport { Action, ActionTypes } from '../actions'\nimport type { DescriptorsPropControllers } from '../../prop-controllers/instances'\nimport type { Descriptor } from '../../prop-controllers/descriptors'\n\nexport interface PropControllersHandle<\n T extends Record<string, Descriptor> = Record<string, Descriptor>,\n> {\n setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void\n}\n\nexport function isPropControllersHandle(value: unknown): value is PropControllersHandle {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'setPropControllers' in value &&\n typeof (value as { setPropControllers: unknown }).setPropControllers === 'function'\n ) {\n return true\n }\n\n return false\n}\n\nexport type State = {\n handles: Map<string, Map<string, PropControllersHandle>>\n instances: Map<string, Map<string, Record<string, ControlInstance>>>\n}\n\nexport function getInitialState(): State {\n return { handles: new Map(), instances: new Map() }\n}\n\nexport function getPropControllersHandle(\n state: State,\n documentKey: string,\n elementKey: string,\n): PropControllersHandle | null {\n return state.handles.get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function getPropControllers(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, ControlInstance> | null {\n return state.instances.get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function getPropController(\n state: State,\n documentKey: string,\n elementKey: string,\n propName: string,\n): ControlInstance | null {\n return getPropControllers(state, documentKey, elementKey)?.[propName] ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE: {\n const { documentKey, elementKey, handle } = action.payload\n\n return {\n ...state,\n handles: new Map(state.handles).set(\n documentKey,\n new Map(state.handles.get(documentKey) ?? []).set(elementKey, handle),\n ),\n }\n }\n\n case ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const nextHandles = new Map(state.handles.get(documentKey) ?? [])\n\n const deleted = nextHandles.delete(elementKey)\n\n return deleted\n ? { ...state, handles: new Map(state.handles).set(documentKey, nextHandles) }\n : state\n }\n\n case ActionTypes.REGISTER_PROP_CONTROLLERS: {\n const { documentKey, elementKey, propControllers } = action.payload\n\n return {\n ...state,\n instances: new Map(state.instances).set(\n documentKey,\n new Map(state.instances.get(documentKey) ?? []).set(elementKey, propControllers),\n ),\n }\n }\n\n case ActionTypes.UNREGISTER_PROP_CONTROLLERS: {\n const { documentKey, elementKey } = action.payload\n const nextInstances = new Map(state.instances.get(documentKey) ?? [])\n\n const deleted = nextInstances.delete(elementKey)\n\n return deleted\n ? { ...state, instances: new Map(state.instances).set(documentKey, nextInstances) }\n : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAoC;AAU7B,SAAS,wBAAwB,OAAgD;AACtF,MACE,OAAO,UAAU,YACjB,UAAU,QACV,wBAAwB,SACxB,OAAQ,MAA0C,uBAAuB,YACzE;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAOO,SAAS,kBAAyB;AACvC,SAAO,EAAE,SAAS,oBAAI,IAAI,GAAG,WAAW,oBAAI,IAAI,EAAE;AACpD;AAEO,SAAS,yBACd,OACA,aACA,YAC8B;AAC9B,SAAO,MAAM,QAAQ,IAAI,WAAW,GAAG,IAAI,UAAU,KAAK;AAC5D;AAEO,SAAS,mBACd,OACA,aACA,YACwC;AACxC,SAAO,MAAM,UAAU,IAAI,WAAW,GAAG,IAAI,UAAU,KAAK;AAC9D;AAEO,SAAS,kBACd,OACA,aACA,YACA,UACwB;AACxB,SAAO,mBAAmB,OAAO,aAAa,UAAU,IAAI,QAAQ,KAAK;AAC3E;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuB;AAC/E,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY,kCAAkC;AACjD,YAAM,EAAE,aAAa,YAAY,OAAO,IAAI,OAAO;AAEnD,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS,IAAI,IAAI,MAAM,OAAO,EAAE;AAAA,UAC9B;AAAA,UACA,IAAI,IAAI,MAAM,QAAQ,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,IAAI,YAAY,MAAM;AAAA,QACtE;AAAA,MACF;AAAA,IACF;AAAA,IAEA,KAAK,2BAAY,oCAAoC;AACnD,YAAM,EAAE,aAAa,WAAW,IAAI,OAAO;AAC3C,YAAM,cAAc,IAAI,IAAI,MAAM,QAAQ,IAAI,WAAW,KAAK,CAAC,CAAC;AAEhE,YAAM,UAAU,YAAY,OAAO,UAAU;AAE7C,aAAO,UACH,EAAE,GAAG,OAAO,SAAS,IAAI,IAAI,MAAM,OAAO,EAAE,IAAI,aAAa,WAAW,EAAE,IAC1E;AAAA,IACN;AAAA,IAEA,KAAK,2BAAY,2BAA2B;AAC1C,YAAM,EAAE,aAAa,YAAY,gBAAgB,IAAI,OAAO;AAE5D,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAW,IAAI,IAAI,MAAM,SAAS,EAAE;AAAA,UAClC;AAAA,UACA,IAAI,IAAI,MAAM,UAAU,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,IAAI,YAAY,eAAe;AAAA,QACjF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,KAAK,2BAAY,6BAA6B;AAC5C,YAAM,EAAE,aAAa,WAAW,IAAI,OAAO;AAC3C,YAAM,gBAAgB,IAAI,IAAI,MAAM,UAAU,IAAI,WAAW,KAAK,CAAC,CAAC;AAEpE,YAAM,UAAU,cAAc,OAAO,UAAU;AAE/C,aAAO,UACH,EAAE,GAAG,OAAO,WAAW,IAAI,IAAI,MAAM,SAAS,EAAE,IAAI,aAAa,aAAa,EAAE,IAChF;AAAA,IACN;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/state/modules/prop-controller-handles.ts"],"sourcesContent":["import { ControlInstance } from '@makeswift/controls'\nimport { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\nimport type { DescriptorsPropControllers } from '../../prop-controllers/instances'\nimport type { Descriptor } from '../../prop-controllers/descriptors'\n\nexport interface PropControllersHandle<\n T extends Record<string, Descriptor> = Record<string, Descriptor>,\n> {\n setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void\n}\n\nexport function isPropControllersHandle(value: unknown): value is PropControllersHandle {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'setPropControllers' in value &&\n typeof (value as { setPropControllers: unknown }).setPropControllers === 'function'\n ) {\n return true\n }\n\n return false\n}\n\nexport type State = {\n handles: Map<string, Map<string, PropControllersHandle>>\n instances: Map<string, Map<string, Record<string, ControlInstance>>>\n}\n\nexport function getInitialState(): State {\n return { handles: new Map(), instances: new Map() }\n}\n\nexport function getPropControllersHandle(\n state: State,\n documentKey: string,\n elementKey: string,\n): PropControllersHandle | null {\n return state.handles.get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function getPropControllers(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, ControlInstance> | null {\n return state.instances.get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function getPropController(\n state: State,\n documentKey: string,\n elementKey: string,\n propName: string,\n): ControlInstance | null {\n return getPropControllers(state, documentKey, elementKey)?.[propName] ?? 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_PROP_CONTROLLERS_HANDLE: {\n const { documentKey, elementKey, handle } = action.payload\n\n return {\n ...state,\n handles: new Map(state.handles).set(\n documentKey,\n new Map(state.handles.get(documentKey) ?? []).set(elementKey, handle),\n ),\n }\n }\n\n case ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const nextHandles = new Map(state.handles.get(documentKey) ?? [])\n\n const deleted = nextHandles.delete(elementKey)\n\n return deleted\n ? { ...state, handles: new Map(state.handles).set(documentKey, nextHandles) }\n : state\n }\n\n case ActionTypes.REGISTER_PROP_CONTROLLERS: {\n const { documentKey, elementKey, propControllers } = action.payload\n\n return {\n ...state,\n instances: new Map(state.instances).set(\n documentKey,\n new Map(state.instances.get(documentKey) ?? []).set(elementKey, propControllers),\n ),\n }\n }\n\n case ActionTypes.UNREGISTER_PROP_CONTROLLERS: {\n const { documentKey, elementKey } = action.payload\n const nextInstances = new Map(state.instances.get(documentKey) ?? [])\n\n const deleted = nextInstances.delete(elementKey)\n\n return deleted\n ? { ...state, instances: new Map(state.instances).set(documentKey, nextInstances) }\n : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAA4E;AAUrE,SAAS,wBAAwB,OAAgD;AACtF,MACE,OAAO,UAAU,YACjB,UAAU,QACV,wBAAwB,SACxB,OAAQ,MAA0C,uBAAuB,YACzE;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAOO,SAAS,kBAAyB;AACvC,SAAO,EAAE,SAAS,oBAAI,IAAI,GAAG,WAAW,oBAAI,IAAI,EAAE;AACpD;AAEO,SAAS,yBACd,OACA,aACA,YAC8B;AAC9B,SAAO,MAAM,QAAQ,IAAI,WAAW,GAAG,IAAI,UAAU,KAAK;AAC5D;AAEO,SAAS,mBACd,OACA,aACA,YACwC;AACxC,SAAO,MAAM,UAAU,IAAI,WAAW,GAAG,IAAI,UAAU,KAAK;AAC9D;AAEO,SAAS,kBACd,OACA,aACA,YACA,UACwB;AACxB,SAAO,mBAAmB,OAAO,aAAa,UAAU,IAAI,QAAQ,KAAK;AAC3E;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,2BAAY,kCAAkC;AACjD,YAAM,EAAE,aAAa,YAAY,OAAO,IAAI,OAAO;AAEnD,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS,IAAI,IAAI,MAAM,OAAO,EAAE;AAAA,UAC9B;AAAA,UACA,IAAI,IAAI,MAAM,QAAQ,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,IAAI,YAAY,MAAM;AAAA,QACtE;AAAA,MACF;AAAA,IACF;AAAA,IAEA,KAAK,2BAAY,oCAAoC;AACnD,YAAM,EAAE,aAAa,WAAW,IAAI,OAAO;AAC3C,YAAM,cAAc,IAAI,IAAI,MAAM,QAAQ,IAAI,WAAW,KAAK,CAAC,CAAC;AAEhE,YAAM,UAAU,YAAY,OAAO,UAAU;AAE7C,aAAO,UACH,EAAE,GAAG,OAAO,SAAS,IAAI,IAAI,MAAM,OAAO,EAAE,IAAI,aAAa,WAAW,EAAE,IAC1E;AAAA,IACN;AAAA,IAEA,KAAK,2BAAY,2BAA2B;AAC1C,YAAM,EAAE,aAAa,YAAY,gBAAgB,IAAI,OAAO;AAE5D,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAW,IAAI,IAAI,MAAM,SAAS,EAAE;AAAA,UAClC;AAAA,UACA,IAAI,IAAI,MAAM,UAAU,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,IAAI,YAAY,eAAe;AAAA,QACjF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,KAAK,2BAAY,6BAA6B;AAC5C,YAAM,EAAE,aAAa,WAAW,IAAI,OAAO;AAC3C,YAAM,gBAAgB,IAAI,IAAI,MAAM,UAAU,IAAI,WAAW,KAAK,CAAC,CAAC;AAEpE,YAAM,UAAU,cAAc,OAAO,UAAU;AAE/C,aAAO,UACH,EAAE,GAAG,OAAO,WAAW,IAAI,IAAI,MAAM,SAAS,EAAE,IAAI,aAAa,aAAa,EAAE,IAChF;AAAA,IACN;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -37,6 +37,8 @@ function getComponentPropControllerDescriptors(state, componentType) {
37
37
  return getPropControllerDescriptors(state).get(componentType) ?? null;
38
38
  }
39
39
  function reducer(state = getInitialState(), action) {
40
+ if (!(0, import_actions.isKnownAction)(action))
41
+ return state;
40
42
  switch (action.type) {
41
43
  case import_actions.ActionTypes.REGISTER_COMPONENT:
42
44
  return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/prop-controllers.ts"],"sourcesContent":["import { Action, ActionTypes } from '../actions'\nimport { PropControllerDescriptor } from '../../prop-controllers'\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): State {\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,qBAAoC;AAS7B,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,QAAuB;AAC/E,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":[]}
1
+ {"version":3,"sources":["../../../../src/state/modules/prop-controllers.ts"],"sourcesContent":["import { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../actions'\nimport { PropControllerDescriptor } from '../../prop-controllers'\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":[]}
@@ -36,6 +36,8 @@ function getReactComponent(state, type) {
36
36
  return getReactComponents(state).get(type) ?? null;
37
37
  }
38
38
  function reducer(state = getInitialState(), action) {
39
+ if (!(0, import_actions.isKnownAction)(action))
40
+ return state;
39
41
  switch (action.type) {
40
42
  case import_actions.ActionTypes.REGISTER_REACT_COMPONENT:
41
43
  return new Map(state).set(action.payload.type, action.payload.component);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/react-components.tsx"],"sourcesContent":["import type { Component, PropsWithoutRef, ReactNode, RefAttributes } from 'react'\n\nimport { Action, ActionTypes } 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) {\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,qBAAoC;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,QAAgB;AACxE,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":[]}
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":[]}
@@ -51,6 +51,8 @@ function getDocument(state, documentKey) {
51
51
  return getDocuments(state).get(documentKey) ?? null;
52
52
  }
53
53
  function reducer(state = getInitialState(), action) {
54
+ if (!(0, import_actions.isKnownAction)(action))
55
+ return state;
54
56
  switch (action.type) {
55
57
  case import_actions.ActionTypes.REGISTER_DOCUMENT:
56
58
  const { documentKey, document } = action.payload;
@@ -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 DocumentPayload, ActionTypes } 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): State {\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,qBAA+D;AAE/D,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,QAAuB;AAC/E,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"]}
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"]}
@@ -69,6 +69,8 @@ function getDocuments(state) {
69
69
  }
70
70
  function reducer(state = getInitialState(), action) {
71
71
  const nextState = ReadOnlyDocuments.reducer(state, action);
72
+ if (!(0, import_actions.isKnownAction)(action))
73
+ return state;
72
74
  switch (action.type) {
73
75
  case import_actions.ActionTypes.CHANGE_DOCUMENT: {
74
76
  const document = getDocument(nextState, action.payload.documentKey);
@@ -1 +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, ActionTypes } from '../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from './read-only-documents'\nexport { isElementReference } from './read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n 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): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\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,qBAAyC;AAGzC,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,QAAuB;AAC/E,QAAM,YAAY,kBAAkB,QAAQ,OAAO,MAAM;AAEzD,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":[]}
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":[]}
@@ -39,11 +39,8 @@ __export(react_builder_preview_exports, {
39
39
  startMeasuringElements: () => startMeasuringElements
40
40
  });
41
41
  module.exports = __toCommonJS(react_builder_preview_exports);
42
- var import_redux = require("redux");
43
- var import_redux_thunk = __toESM(require("redux-thunk"));
44
- var import_extension = require("@redux-devtools/extension");
42
+ var import_toolkit = require("@reduxjs/toolkit");
45
43
  var import_deepEqual = __toESM(require("../utils/deepEqual"));
46
- var import_serializeState = require("../utils/serializeState");
47
44
  var Documents = __toESM(require("./modules/read-write-documents"));
48
45
  var ElementTrees = __toESM(require("./modules/element-trees"));
49
46
  var ReactComponents = __toESM(require("./modules/react-components"));
@@ -60,10 +57,11 @@ var Breakpoints = __toESM(require("./modules/breakpoints"));
60
57
  var import_setup_teardown = require("./mixins/setup-teardown");
61
58
  var ReactPage = __toESM(require("./react-page"));
62
59
  var import_actions = require("./actions");
60
+ var import_toolkit2 = require("./toolkit");
63
61
  var import_instances = require("../prop-controllers/instances");
64
62
  var import_builder = require("../builder");
65
63
  var import_box_models = require("./modules/box-models");
66
- const reducer = (0, import_redux.combineReducers)({
64
+ const reducer = (0, import_toolkit.combineReducers)({
67
65
  documents: Documents.reducer,
68
66
  elementTrees: ElementTrees.reducer,
69
67
  reactComponents: ReactComponents.reducer,
@@ -376,7 +374,7 @@ function initialize(channel) {
376
374
  };
377
375
  }
378
376
  function measureBoxModelsMiddleware() {
379
- return ({ dispatch }) => (next) => {
377
+ return (0, import_toolkit2.actionMiddleware)(({ dispatch }) => (next) => {
380
378
  return (action) => {
381
379
  switch (action.type) {
382
380
  case import_actions.ActionTypes.REGISTER_COMPONENT_HANDLE: {
@@ -397,13 +395,12 @@ function measureBoxModelsMiddleware() {
397
395
  }
398
396
  return next(action);
399
397
  };
400
- };
398
+ });
401
399
  }
402
400
  function messageChannelMiddleware(channel) {
403
- return ({ dispatch }) => (next) => {
401
+ return (0, import_toolkit2.actionMiddleware)(({ dispatch }) => (next) => {
404
402
  if (typeof window === "undefined")
405
- return () => {
406
- };
403
+ return (action) => next(action);
407
404
  let cleanUp = () => {
408
405
  };
409
406
  return (action) => {
@@ -449,7 +446,7 @@ function messageChannelMiddleware(channel) {
449
446
  }
450
447
  return next(action);
451
448
  };
452
- };
449
+ });
453
450
  }
454
451
  function createAndRegisterPropControllers(documentKey, elementKey) {
455
452
  return (dispatch, getState) => {
@@ -475,7 +472,7 @@ function createAndRegisterPropControllers(documentKey, elementKey) {
475
472
  };
476
473
  }
477
474
  function propControllerHandlesMiddleware() {
478
- return ({ dispatch, getState }) => (next) => {
475
+ return (0, import_toolkit2.actionMiddleware)(({ dispatch, getState }) => (next) => {
479
476
  return (action) => {
480
477
  switch (action.type) {
481
478
  case import_actions.ActionTypes.REGISTER_COMPONENT_HANDLE: {
@@ -514,15 +511,15 @@ function propControllerHandlesMiddleware() {
514
511
  }
515
512
  return next(action);
516
513
  };
517
- };
514
+ });
518
515
  }
519
516
  function makeswiftApiClientSyncMiddleware(client) {
520
- return () => (next) => {
517
+ return (0, import_toolkit2.actionMiddleware)(() => (next) => {
521
518
  return (action) => {
522
519
  client.makeswiftApiClient.dispatch(action);
523
520
  return next(action);
524
521
  };
525
- };
522
+ });
526
523
  }
527
524
  class MessageChannel {
528
525
  channel = null;
@@ -567,38 +564,35 @@ function configureStore({
567
564
  ...preloadedState,
568
565
  isPreview: IsPreview.getInitialState(true)
569
566
  };
570
- const composeEnhancers = (0, import_extension.composeWithDevToolsDevelopmentOnly)({
571
- name: `Host store (${(/* @__PURE__ */ new Date()).toISOString()})`,
572
- serialize: true,
573
- stateSanitizer: (state) => (0, import_serializeState.serializeState)(state),
574
- actionsDenylist: [
575
- import_actions.ActionTypes.BUILDER_POINTER_MOVE,
576
- import_actions.ActionTypes.HANDLE_POINTER_MOVE,
577
- import_actions.ActionTypes.ELEMENT_FROM_POINT_CHANGE
578
- ]
579
- });
580
567
  const channel = new MessageChannel();
581
- const store = (0, import_redux.createStore)(
568
+ const store = (0, import_toolkit.configureStore)({
582
569
  reducer,
583
- initialState,
584
- composeEnhancers(
570
+ preloadedState: initialState,
571
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware(import_toolkit2.middlewareOptions).concat(
572
+ ReactPage.elementTreeMiddleware(),
573
+ measureBoxModelsMiddleware(),
574
+ messageChannelMiddleware(channel),
575
+ propControllerHandlesMiddleware(),
576
+ makeswiftApiClientSyncMiddleware(client)
577
+ ),
578
+ enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat(
585
579
  (0, import_setup_teardown.withSetupTeardown)(
586
580
  () => {
587
581
  const dispatch = store.dispatch;
588
582
  dispatch(setupMessageChannel(channel));
589
583
  },
590
584
  () => channel.teardown()
591
- ),
592
- (0, import_redux.applyMiddleware)(
593
- import_redux_thunk.default,
594
- ReactPage.elementTreeMiddleware(),
595
- measureBoxModelsMiddleware(),
596
- messageChannelMiddleware(channel),
597
- propControllerHandlesMiddleware(),
598
- makeswiftApiClientSyncMiddleware(client)
599
585
  )
600
- )
601
- );
586
+ ),
587
+ devTools: (0, import_toolkit2.devToolsConfig)({
588
+ name: `Host store (${(/* @__PURE__ */ new Date()).toISOString()})`,
589
+ actionsDenylist: [
590
+ import_actions.ActionTypes.BUILDER_POINTER_MOVE,
591
+ import_actions.ActionTypes.HANDLE_POINTER_MOVE,
592
+ import_actions.ActionTypes.ELEMENT_FROM_POINT_CHANGE
593
+ ]
594
+ })
595
+ });
602
596
  return store;
603
597
  }
604
598
  // Annotate the CommonJS export names for ESM import in node: