@makeswift/runtime 0.28.8-canary.9 → 0.28.9-canary.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 (514) hide show
  1. package/dist/cjs/api/api-resources-client.js +3 -0
  2. package/dist/cjs/api/api-resources-client.js.map +1 -1
  3. package/dist/cjs/api/graphql-api-client.js +1 -1
  4. package/dist/cjs/api/ky.js +862 -0
  5. package/dist/cjs/api/ky.js.map +1 -0
  6. package/dist/cjs/api/rest-api-client.js +85 -43
  7. package/dist/cjs/api/rest-api-client.js.map +1 -1
  8. package/dist/cjs/api/types.js.map +1 -1
  9. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  10. package/dist/cjs/builder/host-to-builder-actions.js +5 -5
  11. package/dist/cjs/builder/host-to-builder-actions.js.map +1 -1
  12. package/dist/cjs/client/index.js +40 -44
  13. package/dist/cjs/client/index.js.map +1 -1
  14. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  15. package/dist/cjs/controls/rich-text/control.js +16 -3
  16. package/dist/cjs/controls/rich-text/control.js.map +1 -1
  17. package/dist/cjs/controls/rich-text/rich-text.js +2 -2
  18. package/dist/cjs/controls/rich-text/rich-text.js.map +1 -1
  19. package/dist/cjs/controls/rich-text-v2/control.js +15 -2
  20. package/dist/cjs/controls/rich-text-v2/control.js.map +1 -1
  21. package/dist/cjs/controls/rich-text-v2/rich-text-v2.js +2 -2
  22. package/dist/cjs/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  23. package/dist/cjs/controls/slot.js.map +1 -1
  24. package/dist/cjs/next/testing/breakpoints.js +3 -15
  25. package/dist/cjs/next/testing/breakpoints.js.map +1 -1
  26. package/dist/cjs/next/testing/element-data.js +3 -82
  27. package/dist/cjs/next/testing/element-data.js.map +1 -1
  28. package/dist/cjs/next/testing/react-runtime.js.map +1 -1
  29. package/dist/cjs/prop-controllers/instances.js +20 -4
  30. package/dist/cjs/prop-controllers/instances.js.map +1 -1
  31. package/dist/cjs/runtimes/react/components/Element.js +53 -24
  32. package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
  33. package/dist/cjs/runtimes/react/components/ElementRegistration.js +32 -11
  34. package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -1
  35. package/dist/cjs/runtimes/react/components/control-instances-context.js +38 -0
  36. package/dist/cjs/runtimes/react/components/control-instances-context.js.map +1 -0
  37. package/dist/cjs/runtimes/react/components/framework-context.js +1 -0
  38. package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
  39. package/dist/cjs/runtimes/react/components/resolve-props.js +5 -1
  40. package/dist/cjs/runtimes/react/components/resolve-props.js.map +1 -1
  41. package/dist/cjs/runtimes/react/controls/node-value/editable-node-value.js +42 -0
  42. package/dist/cjs/runtimes/react/controls/node-value/editable-node-value.js.map +1 -0
  43. package/dist/cjs/runtimes/react/controls/node-value/index.js +51 -0
  44. package/dist/cjs/runtimes/react/controls/node-value/index.js.map +1 -0
  45. package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
  46. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js +2 -2
  47. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  48. package/dist/cjs/runtimes/react/controls/slot/index.js +29 -0
  49. package/dist/cjs/runtimes/react/controls/slot/index.js.map +1 -0
  50. package/dist/cjs/runtimes/react/controls/slot/render-slot.js +37 -0
  51. package/dist/cjs/runtimes/react/controls/slot/render-slot.js.map +1 -0
  52. package/dist/cjs/runtimes/react/controls/{slot.js → slot/slot-value.js} +31 -26
  53. package/dist/cjs/runtimes/react/controls/slot/slot-value.js.map +1 -0
  54. package/dist/cjs/runtimes/react/element-imperative-handle.js +2 -2
  55. package/dist/cjs/runtimes/react/element-imperative-handle.js.map +1 -1
  56. package/dist/cjs/runtimes/react/hooks/use-control-instance.js +88 -0
  57. package/dist/cjs/runtimes/react/hooks/use-control-instance.js.map +1 -0
  58. package/dist/cjs/runtimes/react/hooks/use-control-instances.js +2 -12
  59. package/dist/cjs/runtimes/react/hooks/use-control-instances.js.map +1 -1
  60. package/dist/cjs/runtimes/react/hooks/use-disable-register-element.js +3 -3
  61. package/dist/cjs/runtimes/react/hooks/use-disable-register-element.js.map +1 -1
  62. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +10 -9
  63. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  64. package/dist/cjs/runtimes/react/hooks/use-resolved-value-override.js +58 -0
  65. package/dist/cjs/runtimes/react/hooks/use-resolved-value-override.js.map +1 -0
  66. package/dist/cjs/runtimes/react/hooks/use-selector.js +8 -2
  67. package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -1
  68. package/dist/cjs/runtimes/react/testing/index.js +25 -0
  69. package/dist/cjs/runtimes/react/testing/index.js.map +1 -0
  70. package/dist/cjs/runtimes/react/testing/react-provider.js +38 -0
  71. package/dist/cjs/runtimes/react/testing/react-provider.js.map +1 -0
  72. package/dist/cjs/state/actions/index.js +4 -4
  73. package/dist/cjs/state/actions/index.js.map +1 -1
  74. package/dist/cjs/state/actions/internal/action-types.js +34 -0
  75. package/dist/cjs/state/actions/internal/action-types.js.map +1 -0
  76. package/dist/cjs/state/actions/internal/index.js +0 -17
  77. package/dist/cjs/state/actions/internal/index.js.map +1 -1
  78. package/dist/cjs/state/actions/internal/read-only-action-types.js +44 -0
  79. package/dist/cjs/state/actions/internal/read-only-action-types.js.map +1 -0
  80. package/dist/cjs/state/actions/internal/read-only-actions.js +13 -92
  81. package/dist/cjs/state/actions/internal/read-only-actions.js.map +1 -1
  82. package/dist/cjs/state/actions/internal/read-write-action-types.js +44 -0
  83. package/dist/cjs/state/actions/internal/read-write-action-types.js.map +1 -0
  84. package/dist/cjs/state/actions/internal/read-write-actions.js +135 -14
  85. package/dist/cjs/state/actions/internal/read-write-actions.js.map +1 -1
  86. package/dist/cjs/state/api-client/state.js +8 -0
  87. package/dist/cjs/state/api-client/state.js.map +1 -1
  88. package/dist/cjs/state/builder-api/action-types.js +49 -0
  89. package/dist/cjs/state/builder-api/action-types.js.map +1 -0
  90. package/dist/cjs/state/builder-api/actions.js +14 -36
  91. package/dist/cjs/state/builder-api/actions.js.map +1 -1
  92. package/dist/cjs/state/builder-api/proxy.js +2 -1
  93. package/dist/cjs/state/builder-api/proxy.js.map +1 -1
  94. package/dist/cjs/state/host-api/action-types.js +43 -0
  95. package/dist/cjs/state/host-api/action-types.js.map +1 -0
  96. package/dist/cjs/state/{host-api.js → host-api/actions.js} +17 -33
  97. package/dist/cjs/state/host-api/actions.js.map +1 -0
  98. package/dist/cjs/state/host-api/index.js +25 -0
  99. package/dist/cjs/state/host-api/index.js.map +1 -0
  100. package/dist/cjs/state/middleware/read-write/builder-api/index.js +2 -58
  101. package/dist/cjs/state/middleware/read-write/builder-api/index.js.map +1 -1
  102. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js +3 -0
  103. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -1
  104. package/dist/cjs/state/middleware/read-write/builder-api/middleware.js +89 -0
  105. package/dist/cjs/state/middleware/read-write/builder-api/middleware.js.map +1 -0
  106. package/dist/cjs/state/middleware/read-write/builder-api/mount-change-action-buffer.js +72 -0
  107. package/dist/cjs/state/middleware/read-write/builder-api/mount-change-action-buffer.js.map +1 -0
  108. package/dist/cjs/state/middleware/read-write/measure-box-models.js +3 -3
  109. package/dist/cjs/state/middleware/read-write/measure-box-models.js.map +1 -1
  110. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js +10 -47
  111. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js.map +1 -1
  112. package/dist/cjs/state/modules/api-resources.js +5 -5
  113. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  114. package/dist/cjs/state/modules/breakpoints.js +4 -4
  115. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  116. package/dist/cjs/state/modules/components-meta.js +3 -3
  117. package/dist/cjs/state/modules/components-meta.js.map +1 -1
  118. package/dist/cjs/state/modules/element-trees.js +5 -5
  119. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  120. package/dist/cjs/state/modules/is-in-builder.js +2 -2
  121. package/dist/cjs/state/modules/is-in-builder.js.map +1 -1
  122. package/dist/cjs/state/modules/is-read-only.js +2 -2
  123. package/dist/cjs/state/modules/is-read-only.js.map +1 -1
  124. package/dist/cjs/state/modules/locale.js +2 -2
  125. package/dist/cjs/state/modules/locale.js.map +1 -1
  126. package/dist/cjs/state/modules/localized-resources-map.js +3 -3
  127. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -1
  128. package/dist/cjs/state/modules/{prop-controllers.js → prop-controller-descriptors.js} +7 -7
  129. package/dist/cjs/state/modules/prop-controller-descriptors.js.map +1 -0
  130. package/dist/cjs/state/modules/react-components.js +3 -3
  131. package/dist/cjs/state/modules/react-components.js.map +1 -1
  132. package/dist/cjs/state/modules/read-write/box-models.js +5 -5
  133. package/dist/cjs/state/modules/read-write/box-models.js.map +1 -1
  134. package/dist/cjs/state/modules/read-write/element-imperative-handles.js +3 -3
  135. package/dist/cjs/state/modules/read-write/element-imperative-handles.js.map +1 -1
  136. package/dist/cjs/state/modules/{prop-controller-handles.js → read-write/prop-controllers.js} +5 -5
  137. package/dist/cjs/state/modules/read-write/prop-controllers.js.map +1 -0
  138. package/dist/cjs/state/modules/read-write/resolved-value-overrides.js +70 -0
  139. package/dist/cjs/state/modules/read-write/resolved-value-overrides.js.map +1 -0
  140. package/dist/cjs/state/read-only-state.js +9 -44
  141. package/dist/cjs/state/read-only-state.js.map +1 -1
  142. package/dist/cjs/state/read-write-state.js +61 -1
  143. package/dist/cjs/state/read-write-state.js.map +1 -1
  144. package/dist/cjs/state/shared-api/action-types.js +33 -0
  145. package/dist/cjs/state/shared-api/action-types.js.map +1 -0
  146. package/dist/cjs/state/{shared-api.js → shared-api/actions.js} +8 -14
  147. package/dist/cjs/state/shared-api/actions.js.map +1 -0
  148. package/dist/cjs/state/shared-api/index.js +25 -0
  149. package/dist/cjs/state/shared-api/index.js.map +1 -0
  150. package/dist/cjs/state/store.js +5 -3
  151. package/dist/cjs/state/store.js.map +1 -1
  152. package/dist/cjs/state/translations/get.js.map +1 -1
  153. package/dist/cjs/state/translations/merge.js.map +1 -1
  154. package/dist/cjs/state/unified-state.js +12 -0
  155. package/dist/cjs/state/unified-state.js.map +1 -1
  156. package/dist/cjs/testing/breakpoints.js +35 -0
  157. package/dist/cjs/testing/breakpoints.js.map +1 -0
  158. package/dist/cjs/testing/element-data.js +102 -0
  159. package/dist/cjs/testing/element-data.js.map +1 -0
  160. package/dist/cjs/testing/read-write-state.js +32 -0
  161. package/dist/cjs/testing/read-write-state.js.map +1 -0
  162. package/dist/cjs/translations/index.js.map +1 -1
  163. package/dist/esm/api/api-resources-client.js +3 -0
  164. package/dist/esm/api/api-resources-client.js.map +1 -1
  165. package/dist/esm/api/graphql-api-client.js +1 -1
  166. package/dist/esm/api/ky.js +7 -0
  167. package/dist/esm/api/ky.js.map +1 -0
  168. package/dist/esm/api/rest-api-client.js +84 -43
  169. package/dist/esm/api/rest-api-client.js.map +1 -1
  170. package/dist/esm/api/types.js.map +1 -1
  171. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  172. package/dist/esm/builder/host-to-builder-actions.js +2 -4
  173. package/dist/esm/builder/host-to-builder-actions.js.map +1 -1
  174. package/dist/esm/client/index.js +45 -45
  175. package/dist/esm/client/index.js.map +1 -1
  176. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  177. package/dist/esm/controls/rich-text/control.js +16 -3
  178. package/dist/esm/controls/rich-text/control.js.map +1 -1
  179. package/dist/esm/controls/rich-text/rich-text.js +2 -2
  180. package/dist/esm/controls/rich-text/rich-text.js.map +1 -1
  181. package/dist/esm/controls/rich-text-v2/control.js +15 -2
  182. package/dist/esm/controls/rich-text-v2/control.js.map +1 -1
  183. package/dist/esm/controls/rich-text-v2/rich-text-v2.js +2 -2
  184. package/dist/esm/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  185. package/dist/esm/controls/slot.js.map +1 -1
  186. package/dist/esm/next/testing/breakpoints.js +1 -8
  187. package/dist/esm/next/testing/breakpoints.js.map +1 -1
  188. package/dist/esm/next/testing/element-data.js +1 -75
  189. package/dist/esm/next/testing/element-data.js.map +1 -1
  190. package/dist/esm/next/testing/react-runtime.js.map +1 -1
  191. package/dist/esm/prop-controllers/instances.js +20 -4
  192. package/dist/esm/prop-controllers/instances.js.map +1 -1
  193. package/dist/esm/runtimes/react/components/Element.js +51 -25
  194. package/dist/esm/runtimes/react/components/Element.js.map +1 -1
  195. package/dist/esm/runtimes/react/components/ElementRegistration.js +37 -12
  196. package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -1
  197. package/dist/esm/runtimes/react/components/control-instances-context.js +13 -0
  198. package/dist/esm/runtimes/react/components/control-instances-context.js.map +1 -0
  199. package/dist/esm/runtimes/react/components/framework-context.js +1 -0
  200. package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
  201. package/dist/esm/runtimes/react/components/resolve-props.js +5 -1
  202. package/dist/esm/runtimes/react/components/resolve-props.js.map +1 -1
  203. package/dist/esm/runtimes/react/controls/node-value/editable-node-value.js +21 -0
  204. package/dist/esm/runtimes/react/controls/node-value/editable-node-value.js.map +1 -0
  205. package/dist/esm/runtimes/react/controls/node-value/index.js +17 -0
  206. package/dist/esm/runtimes/react/controls/node-value/index.js.map +1 -0
  207. package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
  208. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js +1 -1
  209. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  210. package/dist/esm/runtimes/react/controls/slot/index.js +5 -0
  211. package/dist/esm/runtimes/react/controls/slot/index.js.map +1 -0
  212. package/dist/esm/runtimes/react/controls/slot/render-slot.js +13 -0
  213. package/dist/esm/runtimes/react/controls/slot/render-slot.js.map +1 -0
  214. package/dist/esm/runtimes/react/controls/{slot.js → slot/slot-value.js} +34 -23
  215. package/dist/esm/runtimes/react/controls/slot/slot-value.js.map +1 -0
  216. package/dist/esm/runtimes/react/element-imperative-handle.js +1 -1
  217. package/dist/esm/runtimes/react/element-imperative-handle.js.map +1 -1
  218. package/dist/esm/runtimes/react/hooks/use-control-instance.js +62 -0
  219. package/dist/esm/runtimes/react/hooks/use-control-instance.js.map +1 -0
  220. package/dist/esm/runtimes/react/hooks/use-control-instances.js +1 -11
  221. package/dist/esm/runtimes/react/hooks/use-control-instances.js.map +1 -1
  222. package/dist/esm/runtimes/react/hooks/use-disable-register-element.js +2 -2
  223. package/dist/esm/runtimes/react/hooks/use-disable-register-element.js.map +1 -1
  224. package/dist/esm/runtimes/react/hooks/use-resolved-props.js +10 -9
  225. package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  226. package/dist/esm/runtimes/react/hooks/use-resolved-value-override.js +35 -0
  227. package/dist/esm/runtimes/react/hooks/use-resolved-value-override.js.map +1 -0
  228. package/dist/esm/runtimes/react/hooks/use-selector.js +8 -2
  229. package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -1
  230. package/dist/esm/runtimes/react/testing/index.js +3 -0
  231. package/dist/esm/runtimes/react/testing/index.js.map +1 -0
  232. package/dist/esm/runtimes/react/testing/react-provider.js +14 -0
  233. package/dist/esm/runtimes/react/testing/react-provider.js.map +1 -0
  234. package/dist/esm/state/actions/index.js +2 -2
  235. package/dist/esm/state/actions/index.js.map +1 -1
  236. package/dist/esm/state/actions/internal/action-types.js +10 -0
  237. package/dist/esm/state/actions/internal/action-types.js.map +1 -0
  238. package/dist/esm/state/actions/internal/index.js +0 -9
  239. package/dist/esm/state/actions/internal/index.js.map +1 -1
  240. package/dist/esm/state/actions/internal/read-only-action-types.js +20 -0
  241. package/dist/esm/state/actions/internal/read-only-action-types.js.map +1 -0
  242. package/dist/esm/state/actions/internal/read-only-actions.js +1 -73
  243. package/dist/esm/state/actions/internal/read-only-actions.js.map +1 -1
  244. package/dist/esm/state/actions/internal/read-write-action-types.js +20 -0
  245. package/dist/esm/state/actions/internal/read-write-action-types.js.map +1 -0
  246. package/dist/esm/state/actions/internal/read-write-actions.js +108 -8
  247. package/dist/esm/state/actions/internal/read-write-actions.js.map +1 -1
  248. package/dist/esm/state/api-client/state.js +7 -0
  249. package/dist/esm/state/api-client/state.js.map +1 -1
  250. package/dist/esm/state/builder-api/action-types.js +25 -0
  251. package/dist/esm/state/builder-api/action-types.js.map +1 -0
  252. package/dist/esm/state/builder-api/actions.js +1 -24
  253. package/dist/esm/state/builder-api/actions.js.map +1 -1
  254. package/dist/esm/state/builder-api/proxy.js +2 -1
  255. package/dist/esm/state/builder-api/proxy.js.map +1 -1
  256. package/dist/esm/state/host-api/action-types.js +19 -0
  257. package/dist/esm/state/host-api/action-types.js.map +1 -0
  258. package/dist/esm/state/{host-api.js → host-api/actions.js} +2 -17
  259. package/dist/esm/state/host-api/actions.js.map +1 -0
  260. package/dist/esm/state/host-api/index.js +3 -0
  261. package/dist/esm/state/host-api/index.js.map +1 -0
  262. package/dist/esm/state/middleware/read-write/builder-api/index.js +1 -57
  263. package/dist/esm/state/middleware/read-write/builder-api/index.js.map +1 -1
  264. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js +3 -0
  265. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -1
  266. package/dist/esm/state/middleware/read-write/builder-api/middleware.js +65 -0
  267. package/dist/esm/state/middleware/read-write/builder-api/middleware.js.map +1 -0
  268. package/dist/esm/state/middleware/read-write/builder-api/mount-change-action-buffer.js +48 -0
  269. package/dist/esm/state/middleware/read-write/builder-api/mount-change-action-buffer.js.map +1 -0
  270. package/dist/esm/state/middleware/read-write/measure-box-models.js +3 -3
  271. package/dist/esm/state/middleware/read-write/measure-box-models.js.map +1 -1
  272. package/dist/esm/state/middleware/read-write/prop-controller-handles.js +13 -47
  273. package/dist/esm/state/middleware/read-write/prop-controller-handles.js.map +1 -1
  274. package/dist/esm/state/modules/api-resources.js +2 -2
  275. package/dist/esm/state/modules/api-resources.js.map +1 -1
  276. package/dist/esm/state/modules/breakpoints.js +2 -2
  277. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  278. package/dist/esm/state/modules/components-meta.js +1 -1
  279. package/dist/esm/state/modules/components-meta.js.map +1 -1
  280. package/dist/esm/state/modules/element-trees.js +2 -2
  281. package/dist/esm/state/modules/element-trees.js.map +1 -1
  282. package/dist/esm/state/modules/is-in-builder.js +1 -1
  283. package/dist/esm/state/modules/is-in-builder.js.map +1 -1
  284. package/dist/esm/state/modules/is-read-only.js +1 -1
  285. package/dist/esm/state/modules/is-read-only.js.map +1 -1
  286. package/dist/esm/state/modules/locale.js +1 -1
  287. package/dist/esm/state/modules/locale.js.map +1 -1
  288. package/dist/esm/state/modules/localized-resources-map.js +1 -1
  289. package/dist/esm/state/modules/localized-resources-map.js.map +1 -1
  290. package/dist/esm/state/modules/{prop-controllers.js → prop-controller-descriptors.js} +2 -2
  291. package/dist/esm/state/modules/prop-controller-descriptors.js.map +1 -0
  292. package/dist/esm/state/modules/react-components.js +1 -1
  293. package/dist/esm/state/modules/react-components.js.map +1 -1
  294. package/dist/esm/state/modules/read-write/box-models.js +2 -2
  295. package/dist/esm/state/modules/read-write/box-models.js.map +1 -1
  296. package/dist/esm/state/modules/read-write/element-imperative-handles.js +3 -3
  297. package/dist/esm/state/modules/read-write/element-imperative-handles.js.map +1 -1
  298. package/dist/esm/state/modules/{prop-controller-handles.js → read-write/prop-controllers.js} +2 -2
  299. package/dist/esm/state/modules/read-write/prop-controllers.js.map +1 -0
  300. package/dist/esm/state/modules/read-write/resolved-value-overrides.js +43 -0
  301. package/dist/esm/state/modules/read-write/resolved-value-overrides.js.map +1 -0
  302. package/dist/esm/state/read-only-state.js +9 -41
  303. package/dist/esm/state/read-only-state.js.map +1 -1
  304. package/dist/esm/state/read-write-state.js +56 -1
  305. package/dist/esm/state/read-write-state.js.map +1 -1
  306. package/dist/esm/state/shared-api/action-types.js +9 -0
  307. package/dist/esm/state/shared-api/action-types.js.map +1 -0
  308. package/dist/esm/state/{shared-api.js → shared-api/actions.js} +2 -7
  309. package/dist/esm/state/shared-api/actions.js.map +1 -0
  310. package/dist/esm/state/shared-api/index.js +3 -0
  311. package/dist/esm/state/shared-api/index.js.map +1 -0
  312. package/dist/esm/state/store.js +3 -1
  313. package/dist/esm/state/store.js.map +1 -1
  314. package/dist/esm/state/translations/get.js.map +1 -1
  315. package/dist/esm/state/translations/merge.js +3 -1
  316. package/dist/esm/state/translations/merge.js.map +1 -1
  317. package/dist/esm/state/unified-state.js +4 -0
  318. package/dist/esm/state/unified-state.js.map +1 -1
  319. package/dist/esm/testing/breakpoints.js +9 -0
  320. package/dist/esm/testing/breakpoints.js.map +1 -0
  321. package/dist/esm/testing/element-data.js +76 -0
  322. package/dist/esm/testing/element-data.js.map +1 -0
  323. package/dist/esm/testing/read-write-state.js +8 -0
  324. package/dist/esm/testing/read-write-state.js.map +1 -0
  325. package/dist/esm/translations/index.js.map +1 -1
  326. package/dist/types/api/__tests__/rest-api-client.retries.test.d.ts +2 -0
  327. package/dist/types/api/__tests__/rest-api-client.retries.test.d.ts.map +1 -0
  328. package/dist/types/api/api-resources-client.d.ts +1 -0
  329. package/dist/types/api/api-resources-client.d.ts.map +1 -1
  330. package/dist/types/api/ky.d.ts +3 -0
  331. package/dist/types/api/ky.d.ts.map +1 -0
  332. package/dist/types/api/rest-api-client.d.ts +4 -0
  333. package/dist/types/api/rest-api-client.d.ts.map +1 -1
  334. package/dist/types/api/schema/page-pathname-slice.d.ts +2 -2
  335. package/dist/types/api/types.d.ts +1 -1
  336. package/dist/types/api/types.d.ts.map +1 -1
  337. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts +6 -6
  338. package/dist/types/api-handler/handlers/webhook/types.d.ts +20 -20
  339. package/dist/types/builder/host-to-builder-actions.d.ts.map +1 -1
  340. package/dist/types/client/index.d.ts.map +1 -1
  341. package/dist/types/components/builtin/Form/Form.d.ts +1 -1
  342. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  343. package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  344. package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -1
  345. package/dist/types/controls/__tests__/slot.test.d.ts +3 -0
  346. package/dist/types/controls/__tests__/slot.test.d.ts.map +1 -0
  347. package/dist/types/controls/rich-text/control.d.ts +5 -1
  348. package/dist/types/controls/rich-text/control.d.ts.map +1 -1
  349. package/dist/types/controls/rich-text/rich-text.d.ts +2 -2
  350. package/dist/types/controls/rich-text/rich-text.d.ts.map +1 -1
  351. package/dist/types/controls/rich-text-v2/control.d.ts +6 -2
  352. package/dist/types/controls/rich-text-v2/control.d.ts.map +1 -1
  353. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +2 -2
  354. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  355. package/dist/types/controls/slot.d.ts +1 -1
  356. package/dist/types/controls/slot.d.ts.map +1 -1
  357. package/dist/types/locale.d.ts +1 -1
  358. package/dist/types/next/testing/breakpoints.d.ts +1 -3
  359. package/dist/types/next/testing/breakpoints.d.ts.map +1 -1
  360. package/dist/types/next/testing/element-data.d.ts +1 -54
  361. package/dist/types/next/testing/element-data.d.ts.map +1 -1
  362. package/dist/types/next/testing/react-runtime.d.ts.map +1 -1
  363. package/dist/types/prop-controllers/instances.d.ts +9 -3
  364. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  365. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  366. package/dist/types/runtimes/react/components/ElementRegistration.d.ts +4 -4
  367. package/dist/types/runtimes/react/components/ElementRegistration.d.ts.map +1 -1
  368. package/dist/types/runtimes/react/components/__tests__/element-registration.test.d.ts +3 -0
  369. package/dist/types/runtimes/react/components/__tests__/element-registration.test.d.ts.map +1 -0
  370. package/dist/types/runtimes/react/components/control-instances-context.d.ts +9 -0
  371. package/dist/types/runtimes/react/components/control-instances-context.d.ts.map +1 -0
  372. package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
  373. package/dist/types/runtimes/react/components/resolve-props.d.ts.map +1 -1
  374. package/dist/types/runtimes/react/controls/node-value/editable-node-value.d.ts +7 -0
  375. package/dist/types/runtimes/react/controls/node-value/editable-node-value.d.ts.map +1 -0
  376. package/dist/types/runtimes/react/controls/node-value/index.d.ts +6 -0
  377. package/dist/types/runtimes/react/controls/node-value/index.d.ts.map +1 -0
  378. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts +1 -1
  379. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -1
  380. package/dist/types/runtimes/react/controls/slot/index.d.ts +2 -0
  381. package/dist/types/runtimes/react/controls/slot/index.d.ts.map +1 -0
  382. package/dist/types/runtimes/react/controls/slot/render-slot.d.ts +9 -0
  383. package/dist/types/runtimes/react/controls/slot/render-slot.d.ts.map +1 -0
  384. package/dist/types/runtimes/react/controls/{slot.d.ts → slot/slot-value.d.ts} +7 -7
  385. package/dist/types/runtimes/react/controls/slot/slot-value.d.ts.map +1 -0
  386. package/dist/types/runtimes/react/element-imperative-handle.d.ts +1 -1
  387. package/dist/types/runtimes/react/element-imperative-handle.d.ts.map +1 -1
  388. package/dist/types/runtimes/react/hooks/__tests__/use-control-instance.test.d.ts +3 -0
  389. package/dist/types/runtimes/react/hooks/__tests__/use-control-instance.test.d.ts.map +1 -0
  390. package/dist/types/runtimes/react/hooks/use-control-instance.d.ts +7 -0
  391. package/dist/types/runtimes/react/hooks/use-control-instance.d.ts.map +1 -0
  392. package/dist/types/runtimes/react/hooks/use-control-instances.d.ts +1 -2
  393. package/dist/types/runtimes/react/hooks/use-control-instances.d.ts.map +1 -1
  394. package/dist/types/runtimes/react/hooks/use-disable-register-element.d.ts +1 -1
  395. package/dist/types/runtimes/react/hooks/use-disable-register-element.d.ts.map +1 -1
  396. package/dist/types/runtimes/react/hooks/use-resolved-props.d.ts +4 -3
  397. package/dist/types/runtimes/react/hooks/use-resolved-props.d.ts.map +1 -1
  398. package/dist/types/runtimes/react/hooks/use-resolved-value-override.d.ts +5 -0
  399. package/dist/types/runtimes/react/hooks/use-resolved-value-override.d.ts.map +1 -0
  400. package/dist/types/runtimes/react/hooks/use-selector.d.ts +2 -5
  401. package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -1
  402. package/dist/types/runtimes/react/hooks/use-store.d.ts +2 -4
  403. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  404. package/dist/types/runtimes/react/testing/index.d.ts +3 -0
  405. package/dist/types/runtimes/react/testing/index.d.ts.map +1 -0
  406. package/dist/types/runtimes/react/testing/react-provider.d.ts +8 -0
  407. package/dist/types/runtimes/react/testing/react-provider.d.ts.map +1 -0
  408. package/dist/types/slate/InlineModePlugin/index.d.ts +1 -1
  409. package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -1
  410. package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
  411. package/dist/types/slate/TypographyPlugin/getValue.d.ts.map +1 -1
  412. package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
  413. package/dist/types/state/__tests__/test-store.d.ts +2 -4
  414. package/dist/types/state/__tests__/test-store.d.ts.map +1 -1
  415. package/dist/types/state/actions/index.d.ts +9 -6
  416. package/dist/types/state/actions/index.d.ts.map +1 -1
  417. package/dist/types/state/actions/internal/action-types.d.ts +29 -0
  418. package/dist/types/state/actions/internal/action-types.d.ts.map +1 -0
  419. package/dist/types/state/actions/internal/index.d.ts +0 -25
  420. package/dist/types/state/actions/internal/index.d.ts.map +1 -1
  421. package/dist/types/state/actions/internal/read-only-action-types.d.ts +15 -0
  422. package/dist/types/state/actions/internal/read-only-action-types.d.ts.map +1 -0
  423. package/dist/types/state/actions/internal/read-only-actions.d.ts +3 -76
  424. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +1 -1
  425. package/dist/types/state/actions/internal/read-write-action-types.d.ts +17 -0
  426. package/dist/types/state/actions/internal/read-write-action-types.d.ts.map +1 -0
  427. package/dist/types/state/actions/internal/read-write-actions.d.ts +89 -8
  428. package/dist/types/state/actions/internal/read-write-actions.d.ts.map +1 -1
  429. package/dist/types/state/api-client/state.d.ts +1 -0
  430. package/dist/types/state/api-client/state.d.ts.map +1 -1
  431. package/dist/types/state/builder-api/action-types.d.ts +22 -0
  432. package/dist/types/state/builder-api/action-types.d.ts.map +1 -0
  433. package/dist/types/state/builder-api/actions.d.ts +3 -23
  434. package/dist/types/state/builder-api/actions.d.ts.map +1 -1
  435. package/dist/types/state/builder-api/proxy.d.ts.map +1 -1
  436. package/dist/types/state/host-api/action-types.d.ts +17 -0
  437. package/dist/types/state/host-api/action-types.d.ts.map +1 -0
  438. package/dist/types/state/{host-api.d.ts → host-api/actions.d.ts} +7 -22
  439. package/dist/types/state/host-api/actions.d.ts.map +1 -0
  440. package/dist/types/state/host-api/index.d.ts +3 -0
  441. package/dist/types/state/host-api/index.d.ts.map +1 -0
  442. package/dist/types/state/middleware/read-write/__tests__/fixtures/operations.d.ts.map +1 -0
  443. package/dist/types/state/middleware/read-write/__tests__/fixtures/root-elements.d.ts.map +1 -0
  444. package/dist/types/state/middleware/read-write/__tests__/prop-controller-handles.test.d.ts +2 -0
  445. package/dist/types/state/middleware/read-write/__tests__/prop-controller-handles.test.d.ts.map +1 -0
  446. package/dist/types/state/middleware/read-write/__tests__/update-element-tree.test.d.ts +2 -0
  447. package/dist/types/state/middleware/read-write/__tests__/update-element-tree.test.d.ts.map +1 -0
  448. package/dist/types/state/middleware/read-write/builder-api/__tests__/middleware.test.d.ts +2 -0
  449. package/dist/types/state/middleware/read-write/builder-api/__tests__/middleware.test.d.ts.map +1 -0
  450. package/dist/types/state/middleware/read-write/builder-api/__tests__/mount-change-action-buffer.test.d.ts +2 -0
  451. package/dist/types/state/middleware/read-write/builder-api/__tests__/mount-change-action-buffer.test.d.ts.map +1 -0
  452. package/dist/types/state/middleware/read-write/builder-api/index.d.ts +1 -4
  453. package/dist/types/state/middleware/read-write/builder-api/index.d.ts.map +1 -1
  454. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts.map +1 -1
  455. package/dist/types/state/middleware/read-write/builder-api/middleware.d.ts +5 -0
  456. package/dist/types/state/middleware/read-write/builder-api/middleware.d.ts.map +1 -0
  457. package/dist/types/state/middleware/read-write/builder-api/mount-change-action-buffer.d.ts +28 -0
  458. package/dist/types/state/middleware/read-write/builder-api/mount-change-action-buffer.d.ts.map +1 -0
  459. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts.map +1 -1
  460. package/dist/types/state/modules/element-trees.d.ts +1 -1
  461. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  462. package/dist/types/state/modules/{prop-controllers.d.ts → prop-controller-descriptors.d.ts} +1 -1
  463. package/dist/types/state/modules/prop-controller-descriptors.d.ts.map +1 -0
  464. package/dist/types/state/modules/{prop-controller-handles.d.ts → read-write/prop-controllers.d.ts} +4 -4
  465. package/dist/types/state/modules/{prop-controller-handles.d.ts.map → read-write/prop-controllers.d.ts.map} +1 -1
  466. package/dist/types/state/modules/read-write/resolved-value-overrides.d.ts +15 -0
  467. package/dist/types/state/modules/read-write/resolved-value-overrides.d.ts.map +1 -0
  468. package/dist/types/state/read-only-state.d.ts +6 -70
  469. package/dist/types/state/read-only-state.d.ts.map +1 -1
  470. package/dist/types/state/read-write-state.d.ts +74 -4
  471. package/dist/types/state/read-write-state.d.ts.map +1 -1
  472. package/dist/types/state/shared-api/action-types.d.ts +6 -0
  473. package/dist/types/state/shared-api/action-types.d.ts.map +1 -0
  474. package/dist/types/state/{shared-api.d.ts → shared-api/actions.d.ts} +3 -7
  475. package/dist/types/state/shared-api/actions.d.ts.map +1 -0
  476. package/dist/types/state/shared-api/index.d.ts +3 -0
  477. package/dist/types/state/shared-api/index.d.ts.map +1 -0
  478. package/dist/types/state/store.d.ts +4 -8
  479. package/dist/types/state/store.d.ts.map +1 -1
  480. package/dist/types/state/translations/get.d.ts +1 -1
  481. package/dist/types/state/translations/get.d.ts.map +1 -1
  482. package/dist/types/state/translations/merge.d.ts +1 -1
  483. package/dist/types/state/translations/merge.d.ts.map +1 -1
  484. package/dist/types/state/unified-state.d.ts +2 -0
  485. package/dist/types/state/unified-state.d.ts.map +1 -1
  486. package/dist/types/testing/breakpoints.d.ts +4 -0
  487. package/dist/types/testing/breakpoints.d.ts.map +1 -0
  488. package/dist/types/testing/element-data.d.ts +59 -0
  489. package/dist/types/testing/element-data.d.ts.map +1 -0
  490. package/dist/types/testing/read-write-state.d.ts +3 -0
  491. package/dist/types/testing/read-write-state.d.ts.map +1 -0
  492. package/dist/types/translations/index.d.ts +1 -1
  493. package/dist/types/translations/index.d.ts.map +1 -1
  494. package/package.json +7 -5
  495. package/dist/cjs/runtimes/react/controls/slot.js.map +0 -1
  496. package/dist/cjs/state/host-api.js.map +0 -1
  497. package/dist/cjs/state/modules/prop-controller-handles.js.map +0 -1
  498. package/dist/cjs/state/modules/prop-controllers.js.map +0 -1
  499. package/dist/cjs/state/shared-api.js.map +0 -1
  500. package/dist/esm/runtimes/react/controls/slot.js.map +0 -1
  501. package/dist/esm/state/host-api.js.map +0 -1
  502. package/dist/esm/state/modules/prop-controller-handles.js.map +0 -1
  503. package/dist/esm/state/modules/prop-controllers.js.map +0 -1
  504. package/dist/esm/state/shared-api.js.map +0 -1
  505. package/dist/types/runtimes/react/controls/slot.d.ts.map +0 -1
  506. package/dist/types/state/__tests__/fixtures/operations.d.ts.map +0 -1
  507. package/dist/types/state/__tests__/fixtures/root-elements.d.ts.map +0 -1
  508. package/dist/types/state/__tests__/react-builder-preview.test.d.ts +0 -2
  509. package/dist/types/state/__tests__/react-builder-preview.test.d.ts.map +0 -1
  510. package/dist/types/state/host-api.d.ts.map +0 -1
  511. package/dist/types/state/modules/prop-controllers.d.ts.map +0 -1
  512. package/dist/types/state/shared-api.d.ts.map +0 -1
  513. /package/dist/types/state/{__tests__ → middleware/read-write/__tests__}/fixtures/operations.d.ts +0 -0
  514. /package/dist/types/state/{__tests__ → middleware/read-write/__tests__}/fixtures/root-elements.d.ts +0 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var middleware_exports = {};
20
+ __export(middleware_exports, {
21
+ builderAPIMiddleware: () => builderAPIMiddleware
22
+ });
23
+ module.exports = __toCommonJS(middleware_exports);
24
+ var import_action_types = require("../../../builder-api/action-types");
25
+ var import_toolkit2 = require("../../../toolkit");
26
+ var import_host_api = require("../../../host-api");
27
+ var import_initialize_connection = require("./initialize-connection");
28
+ var import_mount_change_action_buffer = require("./mount-change-action-buffer");
29
+ function builderAPIMiddleware(builderProxy) {
30
+ const mountChangeBuffer = new import_mount_change_action_buffer.MountChangeActionBuffer((action) => builderProxy.execute(action));
31
+ return (0, import_toolkit2.actionMiddleware)(({ dispatch }) => (next) => {
32
+ if (typeof window === "undefined")
33
+ return (action) => next(action);
34
+ let cleanUp = () => {
35
+ };
36
+ return (action) => {
37
+ switch (action.type) {
38
+ case import_action_types.BuilderActionTypes.MOUNT_COMPONENT:
39
+ case import_action_types.BuilderActionTypes.UNMOUNT_COMPONENT:
40
+ mountChangeBuffer.schedule(action);
41
+ break;
42
+ case import_action_types.BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS:
43
+ case import_action_types.BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:
44
+ case import_action_types.BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:
45
+ case import_action_types.BuilderActionTypes.HANDLE_WHEEL:
46
+ case import_action_types.BuilderActionTypes.HANDLE_POINTER_MOVE:
47
+ case import_action_types.BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE:
48
+ case import_action_types.BuilderActionTypes.SET_LOCALE:
49
+ case import_action_types.BuilderActionTypes.SET_BREAKPOINTS:
50
+ case import_action_types.BuilderActionTypes.REGISTER_BUILDER_DOCUMENT:
51
+ case import_action_types.BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT:
52
+ case import_action_types.BuilderActionTypes.REGISTER_BUILDER_COMPONENT:
53
+ case import_action_types.BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT:
54
+ builderProxy.execute(action);
55
+ break;
56
+ case import_host_api.HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:
57
+ window.document.documentElement.scrollTo({
58
+ top: action.payload.scrollTop,
59
+ behavior: "instant"
60
+ });
61
+ break;
62
+ case import_host_api.HostActionTypes.SCROLL_DOCUMENT_ELEMENT:
63
+ window.document.documentElement.scrollBy({
64
+ top: action.payload.scrollTopDelta,
65
+ behavior: "instant"
66
+ });
67
+ break;
68
+ case import_host_api.HostActionTypes.SET_BUILDER_EDIT_MODE:
69
+ window.getSelection()?.removeAllRanges();
70
+ break;
71
+ case import_host_api.HostActionTypes.INIT:
72
+ cleanUp();
73
+ cleanUp = dispatch((0, import_initialize_connection.initializeBuilderConnection)(builderProxy));
74
+ break;
75
+ case import_host_api.HostActionTypes.CLEAN_UP:
76
+ cleanUp();
77
+ cleanUp = () => {
78
+ };
79
+ break;
80
+ }
81
+ return next(action);
82
+ };
83
+ });
84
+ }
85
+ // Annotate the CommonJS export names for ESM import in node:
86
+ 0 && (module.exports = {
87
+ builderAPIMiddleware
88
+ });
89
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/state/middleware/read-write/builder-api/middleware.ts"],"sourcesContent":["import { type Middleware } from '@reduxjs/toolkit'\n\nimport { type Action } from '../../../actions'\n\nimport { BuilderActionTypes } from '../../../builder-api/action-types'\n\nimport { actionMiddleware } from '../../../toolkit'\n\nimport { type BuilderAPIProxy } from '../../../builder-api/proxy'\nimport { HostActionTypes } from '../../../host-api'\n\nimport { type State, type Dispatch } from '../../../read-write-state'\nimport { initializeBuilderConnection } from './initialize-connection'\nimport { MountChangeActionBuffer } from './mount-change-action-buffer'\n\nexport function builderAPIMiddleware(\n builderProxy: BuilderAPIProxy,\n): Middleware<Dispatch, State, Dispatch> {\n const mountChangeBuffer = new MountChangeActionBuffer(action => builderProxy.execute(action))\n\n return actionMiddleware(({ dispatch }) => next => {\n if (typeof window === 'undefined') return (action: Action) => next(action)\n\n let cleanUp = () => {}\n return (action: Action) => {\n switch (action.type) {\n case BuilderActionTypes.MOUNT_COMPONENT:\n case BuilderActionTypes.UNMOUNT_COMPONENT:\n mountChangeBuffer.schedule(action)\n break\n\n case BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS:\n case BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:\n case BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:\n case BuilderActionTypes.HANDLE_WHEEL:\n case BuilderActionTypes.HANDLE_POINTER_MOVE:\n case BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE:\n case BuilderActionTypes.SET_LOCALE:\n case BuilderActionTypes.SET_BREAKPOINTS:\n case BuilderActionTypes.REGISTER_BUILDER_DOCUMENT:\n case BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT:\n case BuilderActionTypes.REGISTER_BUILDER_COMPONENT:\n case BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT:\n builderProxy.execute(action)\n break\n\n case HostActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:\n window.document.documentElement.scrollTo({\n top: action.payload.scrollTop,\n behavior: 'instant',\n })\n break\n\n case HostActionTypes.SCROLL_DOCUMENT_ELEMENT:\n window.document.documentElement.scrollBy({\n top: action.payload.scrollTopDelta,\n behavior: 'instant',\n })\n break\n\n case HostActionTypes.SET_BUILDER_EDIT_MODE:\n window.getSelection()?.removeAllRanges()\n break\n\n case HostActionTypes.INIT:\n // dispatched by the parent window after establishing the connection\n // and in response to host's client-side navigation\n cleanUp() // cleanup existing connection setup, if any\n cleanUp = dispatch(initializeBuilderConnection(builderProxy))\n break\n\n case HostActionTypes.CLEAN_UP:\n // dispatched by the parent window on disconnect\n cleanUp()\n cleanUp = () => {}\n break\n }\n\n return next(action)\n }\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,0BAAmC;AAEnC,IAAAA,kBAAiC;AAGjC,sBAAgC;AAGhC,mCAA4C;AAC5C,wCAAwC;AAEjC,SAAS,qBACd,cACuC;AACvC,QAAM,oBAAoB,IAAI,0DAAwB,YAAU,aAAa,QAAQ,MAAM,CAAC;AAE5F,aAAO,kCAAiB,CAAC,EAAE,SAAS,MAAM,UAAQ;AAChD,QAAI,OAAO,WAAW;AAAa,aAAO,CAAC,WAAmB,KAAK,MAAM;AAEzE,QAAI,UAAU,MAAM;AAAA,IAAC;AACrB,WAAO,CAAC,WAAmB;AACzB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AACtB,4BAAkB,SAAS,MAAM;AACjC;AAAA,QAEF,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AAAA,QACxB,KAAK,uCAAmB;AACtB,uBAAa,QAAQ,MAAM;AAC3B;AAAA,QAEF,KAAK,gCAAgB;AACnB,iBAAO,SAAS,gBAAgB,SAAS;AAAA,YACvC,KAAK,OAAO,QAAQ;AAAA,YACpB,UAAU;AAAA,UACZ,CAAC;AACD;AAAA,QAEF,KAAK,gCAAgB;AACnB,iBAAO,SAAS,gBAAgB,SAAS;AAAA,YACvC,KAAK,OAAO,QAAQ;AAAA,YACpB,UAAU;AAAA,UACZ,CAAC;AACD;AAAA,QAEF,KAAK,gCAAgB;AACnB,iBAAO,aAAa,GAAG,gBAAgB;AACvC;AAAA,QAEF,KAAK,gCAAgB;AAGnB,kBAAQ;AACR,oBAAU,aAAS,0DAA4B,YAAY,CAAC;AAC5D;AAAA,QAEF,KAAK,gCAAgB;AAEnB,kBAAQ;AACR,oBAAU,MAAM;AAAA,UAAC;AACjB;AAAA,MACJ;AAEA,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":["import_toolkit"]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key2 of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key2) && key2 !== except)
14
+ __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var mount_change_action_buffer_exports = {};
20
+ __export(mount_change_action_buffer_exports, {
21
+ MountChangeActionBuffer: () => MountChangeActionBuffer
22
+ });
23
+ module.exports = __toCommonJS(mount_change_action_buffer_exports);
24
+ var import_action_types = require("../../../builder-api/action-types");
25
+ class MountChangeActionBuffer {
26
+ constructor(execute) {
27
+ this.execute = execute;
28
+ this.scheduledActions = [];
29
+ this.flushScheduled = false;
30
+ }
31
+ scheduledActions;
32
+ flushScheduled;
33
+ schedule(action) {
34
+ this.scheduledActions.push(action);
35
+ if (!this.flushScheduled) {
36
+ this.scheduleFlush();
37
+ }
38
+ }
39
+ scheduleFlush() {
40
+ this.flushScheduled = true;
41
+ queueMicrotask(() => {
42
+ this.flushScheduled = false;
43
+ const batch = this.scheduledActions;
44
+ this.scheduledActions = [];
45
+ const coalescedBatch = coalesceMountChangeActions(batch);
46
+ coalescedBatch.forEach((action) => this.execute(action));
47
+ });
48
+ }
49
+ }
50
+ function key(a) {
51
+ return `${a.payload.documentKey}:${a.payload.elementKey}`;
52
+ }
53
+ function coalesceMountChangeActions(batch) {
54
+ const mountsPerElement = /* @__PURE__ */ new Map();
55
+ batch.forEach((action) => {
56
+ const actionKey = key(action);
57
+ const currentCount = mountsPerElement.get(actionKey)?.count ?? 0;
58
+ mountsPerElement.set(actionKey, {
59
+ count: action.type === import_action_types.BuilderActionTypes.MOUNT_COMPONENT ? currentCount + 1 : currentCount - 1,
60
+ payload: action.payload
61
+ });
62
+ });
63
+ return [...mountsPerElement.values()].filter(({ count }) => count != 0).map(({ count, payload }) => ({
64
+ type: count > 0 ? import_action_types.BuilderActionTypes.MOUNT_COMPONENT : import_action_types.BuilderActionTypes.UNMOUNT_COMPONENT,
65
+ payload
66
+ }));
67
+ }
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ MountChangeActionBuffer
71
+ });
72
+ //# sourceMappingURL=mount-change-action-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/state/middleware/read-write/builder-api/mount-change-action-buffer.ts"],"sourcesContent":["import { BuilderActionTypes } from '../../../builder-api/action-types'\nimport type { MountComponentAction, UnmountComponentAction } from '../../../builder-api/actions'\n\ntype MountChangeAction = UnmountComponentAction | MountComponentAction\n\n/**\n * Allows for queuing MountChangeActions dispatched via React effects into a buffer\n * processed after the completion of the current React commit (scheduled using queueMicrotask).\n *\n * Before executing the actions in the buffer, the buffer is processed removing any\n * pairs of MOUNT_COMPONENT and UNMOUNT_COMPONENT actions corresponding to the same\n * element.\n *\n * Without this buffer, moved elements will result in separate UNMOUNT and MOUNT\n * actions being sent to the builder at the time of the elements unmount at its original\n * location and remount at its new location. This causes a flicker in the builder as\n * the element is considered unmounted in the time between its UNMOUNT and MOUNT actions.\n *\n * Note that it is safe to remove these actions pairs as these actions do not communicate\n * the location of a component's mount but simply whether it is currently mounted.\n */\nexport class MountChangeActionBuffer {\n private scheduledActions: MountChangeAction[]\n private flushScheduled: boolean\n\n constructor(private readonly execute: (action: MountChangeAction) => void) {\n this.scheduledActions = []\n this.flushScheduled = false\n }\n\n schedule(action: MountChangeAction) {\n this.scheduledActions.push(action)\n\n if (!this.flushScheduled) {\n this.scheduleFlush()\n }\n }\n\n private scheduleFlush() {\n this.flushScheduled = true\n\n queueMicrotask(() => {\n this.flushScheduled = false\n const batch = this.scheduledActions\n this.scheduledActions = []\n\n const coalescedBatch = coalesceMountChangeActions(batch)\n coalescedBatch.forEach(action => this.execute(action))\n })\n }\n}\n\n/**\n * Provides a key for the target of a MountChangeAction. elementKey on its own is\n * not enough as it is not unique across documents.\n */\nfunction key(a: { payload: { documentKey: string; elementKey: string } }) {\n return `${a.payload.documentKey}:${a.payload.elementKey}`\n}\n\n/**\n * Removes pairs of MOUNT_COMPONENT and UNMOUNT_COMPONENT actions, if there are actions leftover it returns a single\n * action corresponding to the leftover type.\n */\nfunction coalesceMountChangeActions(batch: MountChangeAction[]): MountChangeAction[] {\n const mountsPerElement = new Map<\n string,\n { count: number; payload: MountChangeAction['payload'] }\n >()\n\n batch.forEach(action => {\n const actionKey = key(action)\n const currentCount = mountsPerElement.get(actionKey)?.count ?? 0\n mountsPerElement.set(actionKey, {\n count:\n action.type === BuilderActionTypes.MOUNT_COMPONENT ? currentCount + 1 : currentCount - 1,\n payload: action.payload,\n })\n })\n\n return [...mountsPerElement.values()]\n .filter(({ count }) => count != 0)\n .map(({ count, payload }) => ({\n type: count > 0 ? BuilderActionTypes.MOUNT_COMPONENT : BuilderActionTypes.UNMOUNT_COMPONENT,\n payload,\n }))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAmC;AAqB5B,MAAM,wBAAwB;AAAA,EAInC,YAA6B,SAA8C;AAA9C;AAC3B,SAAK,mBAAmB,CAAC;AACzB,SAAK,iBAAiB;AAAA,EACxB;AAAA,EANQ;AAAA,EACA;AAAA,EAOR,SAAS,QAA2B;AAClC,SAAK,iBAAiB,KAAK,MAAM;AAEjC,QAAI,CAAC,KAAK,gBAAgB;AACxB,WAAK,cAAc;AAAA,IACrB;AAAA,EACF;AAAA,EAEQ,gBAAgB;AACtB,SAAK,iBAAiB;AAEtB,mBAAe,MAAM;AACnB,WAAK,iBAAiB;AACtB,YAAM,QAAQ,KAAK;AACnB,WAAK,mBAAmB,CAAC;AAEzB,YAAM,iBAAiB,2BAA2B,KAAK;AACvD,qBAAe,QAAQ,YAAU,KAAK,QAAQ,MAAM,CAAC;AAAA,IACvD,CAAC;AAAA,EACH;AACF;AAMA,SAAS,IAAI,GAA6D;AACxE,SAAO,GAAG,EAAE,QAAQ,WAAW,IAAI,EAAE,QAAQ,UAAU;AACzD;AAMA,SAAS,2BAA2B,OAAiD;AACnF,QAAM,mBAAmB,oBAAI,IAG3B;AAEF,QAAM,QAAQ,YAAU;AACtB,UAAM,YAAY,IAAI,MAAM;AAC5B,UAAM,eAAe,iBAAiB,IAAI,SAAS,GAAG,SAAS;AAC/D,qBAAiB,IAAI,WAAW;AAAA,MAC9B,OACE,OAAO,SAAS,uCAAmB,kBAAkB,eAAe,IAAI,eAAe;AAAA,MACzF,SAAS,OAAO;AAAA,IAClB,CAAC;AAAA,EACH,CAAC;AAED,SAAO,CAAC,GAAG,iBAAiB,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,MAAM,SAAS,CAAC,EAChC,IAAI,CAAC,EAAE,OAAO,QAAQ,OAAO;AAAA,IAC5B,MAAM,QAAQ,IAAI,uCAAmB,kBAAkB,uCAAmB;AAAA,IAC1E;AAAA,EACF,EAAE;AACN;","names":[]}
@@ -32,14 +32,14 @@ __export(measure_box_models_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(measure_box_models_exports);
34
34
  var BoxModels = __toESM(require("../../modules/read-write/box-models"));
35
- var import_read_only_actions = require("../../actions/internal/read-only-actions");
35
+ var import_read_write_action_types = require("../../actions/internal/read-write-action-types");
36
36
  var ReadWriteActions = __toESM(require("../../actions/internal/read-write-actions"));
37
37
  var import_toolkit2 = require("../../toolkit");
38
38
  function measureBoxModelsMiddleware() {
39
39
  return (0, import_toolkit2.actionMiddleware)(({ dispatch }) => (next) => {
40
40
  return (action) => {
41
41
  switch (action.type) {
42
- case import_read_only_actions.ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE: {
42
+ case import_read_write_action_types.ReadWriteActionTypes.REGISTER_COMPONENT_HANDLE: {
43
43
  if (BoxModels.isMeasurable(action.payload.componentHandle)) {
44
44
  dispatch(
45
45
  ReadWriteActions.registerMeasurable(
@@ -51,7 +51,7 @@ function measureBoxModelsMiddleware() {
51
51
  }
52
52
  break;
53
53
  }
54
- case import_read_only_actions.ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE:
54
+ case import_read_write_action_types.ReadWriteActionTypes.UNREGISTER_COMPONENT_HANDLE:
55
55
  dispatch(
56
56
  ReadWriteActions.unregisterMeasurable(
57
57
  action.payload.documentKey,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/state/middleware/read-write/measure-box-models.ts"],"sourcesContent":["import { type Middleware } from '@reduxjs/toolkit'\n\nimport * as BoxModels from '../../modules/read-write/box-models'\nimport { type Action } from '../../actions'\n\nimport { ReadOnlyActionTypes } from '../../actions/internal/read-only-actions'\nimport * as ReadWriteActions from '../../actions/internal/read-write-actions'\n\nimport { actionMiddleware } from '../../toolkit'\n\nimport { type State, type Dispatch } from '../../read-write-state'\n\nexport function measureBoxModelsMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(({ dispatch }) => next => {\n return (action: Action) => {\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE: {\n if (BoxModels.isMeasurable(action.payload.componentHandle)) {\n dispatch(\n ReadWriteActions.registerMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n }\n\n break\n }\n\n case ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE:\n dispatch(\n ReadWriteActions.unregisterMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n ),\n )\n break\n }\n\n return next(action)\n }\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,gBAA2B;AAG3B,+BAAoC;AACpC,uBAAkC;AAElC,IAAAA,kBAAiC;AAI1B,SAAS,6BAAoE;AAClF,aAAO,kCAAiB,CAAC,EAAE,SAAS,MAAM,UAAQ;AAChD,WAAO,CAAC,WAAmB;AACzB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK,6CAAoB,2BAA2B;AAClD,cAAI,UAAU,aAAa,OAAO,QAAQ,eAAe,GAAG;AAC1D;AAAA,cACE,iBAAiB;AAAA,gBACf,OAAO,QAAQ;AAAA,gBACf,OAAO,QAAQ;AAAA,gBACf,OAAO,QAAQ;AAAA,cACjB;AAAA,YACF;AAAA,UACF;AAEA;AAAA,QACF;AAAA,QAEA,KAAK,6CAAoB;AACvB;AAAA,YACE,iBAAiB;AAAA,cACf,OAAO,QAAQ;AAAA,cACf,OAAO,QAAQ;AAAA,YACjB;AAAA,UACF;AACA;AAAA,MACJ;AAEA,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":["import_toolkit"]}
1
+ {"version":3,"sources":["../../../../../src/state/middleware/read-write/measure-box-models.ts"],"sourcesContent":["import { type Middleware } from '@reduxjs/toolkit'\n\nimport * as BoxModels from '../../modules/read-write/box-models'\nimport { type Action } from '../../actions'\n\nimport { ReadWriteActionTypes } from '../../actions/internal/read-write-action-types'\nimport * as ReadWriteActions from '../../actions/internal/read-write-actions'\n\nimport { actionMiddleware } from '../../toolkit'\n\nimport { type State, type Dispatch } from '../../read-write-state'\n\nexport function measureBoxModelsMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(({ dispatch }) => next => {\n return (action: Action) => {\n switch (action.type) {\n case ReadWriteActionTypes.REGISTER_COMPONENT_HANDLE: {\n if (BoxModels.isMeasurable(action.payload.componentHandle)) {\n dispatch(\n ReadWriteActions.registerMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n }\n\n break\n }\n\n case ReadWriteActionTypes.UNREGISTER_COMPONENT_HANDLE:\n dispatch(\n ReadWriteActions.unregisterMeasurable(\n action.payload.documentKey,\n action.payload.elementKey,\n ),\n )\n break\n }\n\n return next(action)\n }\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,gBAA2B;AAG3B,qCAAqC;AACrC,uBAAkC;AAElC,IAAAA,kBAAiC;AAI1B,SAAS,6BAAoE;AAClF,aAAO,kCAAiB,CAAC,EAAE,SAAS,MAAM,UAAQ;AAChD,WAAO,CAAC,WAAmB;AACzB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK,oDAAqB,2BAA2B;AACnD,cAAI,UAAU,aAAa,OAAO,QAAQ,eAAe,GAAG;AAC1D;AAAA,cACE,iBAAiB;AAAA,gBACf,OAAO,QAAQ;AAAA,gBACf,OAAO,QAAQ;AAAA,gBACf,OAAO,QAAQ;AAAA,cACjB;AAAA,YACF;AAAA,UACF;AAEA;AAAA,QACF;AAAA,QAEA,KAAK,oDAAqB;AACxB;AAAA,YACE,iBAAiB;AAAA,cACf,OAAO,QAAQ;AAAA,cACf,OAAO,QAAQ;AAAA,YACjB;AAAA,UACF;AACA;AAAA,MACJ;AAEA,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":["import_toolkit"]}
@@ -31,70 +31,33 @@ __export(prop_controller_handles_exports, {
31
31
  propControllerHandlesMiddleware: () => propControllerHandlesMiddleware
32
32
  });
33
33
  module.exports = __toCommonJS(prop_controller_handles_exports);
34
- var PropControllerHandles = __toESM(require("../../modules/prop-controller-handles"));
35
- var Builder = __toESM(require("../../builder-api/actions"));
36
- var import_read_only_actions = require("../../actions/internal/read-only-actions");
37
- var ReadOnly = __toESM(require("../../actions/internal/read-only-actions"));
34
+ var PropControllers = __toESM(require("../../modules/read-write/prop-controllers"));
35
+ var import_read_write_action_types = require("../../actions/internal/read-write-action-types");
38
36
  var import_toolkit2 = require("../../toolkit");
39
- var import_instances = require("../../../prop-controllers/instances");
40
37
  var import_host_api = require("../../host-api");
41
38
  var ReadOnlyState = __toESM(require("../../read-only-state"));
42
- function createAndRegisterPropControllers(documentKey, elementKey) {
43
- return (dispatch, getState) => {
44
- const descriptors = ReadOnlyState.getElementPropControllerDescriptors(
45
- getState(),
46
- documentKey,
47
- elementKey
48
- );
49
- if (descriptors == null)
50
- return null;
51
- const propControllers = Object.entries(descriptors).reduce(
52
- (acc, [propName, descriptor]) => {
53
- const propController = (0, import_instances.createPropController)(
54
- descriptor,
55
- (message) => dispatch(
56
- Builder.messageBuilderPropController(documentKey, elementKey, propName, message)
57
- )
58
- );
59
- return { ...acc, [propName]: propController };
60
- },
61
- {}
62
- );
63
- dispatch(ReadOnly.registerPropControllers(documentKey, elementKey, propControllers));
64
- return propControllers;
65
- };
66
- }
39
+ var import_read_write_state = require("../../read-write-state");
40
+ var import_read_write_actions = require("../../actions/internal/read-write-actions");
67
41
  function propControllerHandlesMiddleware() {
68
42
  return (0, import_toolkit2.actionMiddleware)(({ dispatch, getState }) => (next) => {
69
43
  return (action) => {
70
44
  switch (action.type) {
71
- case import_read_only_actions.ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE: {
45
+ case import_read_write_action_types.ReadWriteActionTypes.REGISTER_COMPONENT_HANDLE: {
72
46
  const { documentKey, elementKey, componentHandle } = action.payload;
73
47
  const element = ReadOnlyState.getElement(getState(), documentKey, elementKey);
74
- const propControllers = dispatch(
75
- createAndRegisterPropControllers(documentKey, elementKey)
76
- );
77
- if (element != null && !ReadOnlyState.isElementReference(element) && PropControllerHandles.isPropControllersHandle(componentHandle)) {
78
- dispatch(
79
- ReadOnly.registerPropControllersHandle(documentKey, elementKey, componentHandle)
80
- );
81
- componentHandle.setPropControllers(propControllers);
48
+ if (element != null && !ReadOnlyState.isElementReference(element) && PropControllers.isPropControllersHandle(componentHandle)) {
49
+ dispatch((0, import_read_write_actions.registerPropControllersHandle)(documentKey, elementKey, componentHandle));
82
50
  }
83
51
  break;
84
52
  }
85
- case import_read_only_actions.ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE: {
53
+ case import_read_write_action_types.ReadWriteActionTypes.UNREGISTER_COMPONENT_HANDLE: {
86
54
  const { documentKey, elementKey } = action.payload;
87
- const handle = ReadOnlyState.getPropControllersHandle(getState(), {
88
- documentKey,
89
- elementKey
90
- });
91
- handle?.setPropControllers(null);
92
- dispatch(ReadOnly.unregisterPropControllers(documentKey, elementKey));
55
+ dispatch((0, import_read_write_actions.unregisterPropControllersHandle)(documentKey, elementKey));
93
56
  break;
94
57
  }
95
58
  case import_host_api.HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {
96
59
  const { documentKey, elementKey, propName, message } = action.payload;
97
- const propController = ReadOnlyState.getPropController(getState(), {
60
+ const propController = (0, import_read_write_state.getPropController)(getState(), {
98
61
  documentKey,
99
62
  elementKey,
100
63
  propName
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/state/middleware/read-write/prop-controller-handles.ts"],"sourcesContent":["import { type Middleware, type ThunkAction } from '@reduxjs/toolkit'\n\nimport { ControlInstance } from '@makeswift/controls'\n\nimport * as PropControllerHandles from '../../modules/prop-controller-handles'\n\nimport { type Action } from '../../actions'\n\nimport * as Builder from '../../builder-api/actions'\n\nimport { ReadOnlyActionTypes } from '../../actions/internal/read-only-actions'\nimport * as ReadOnly from '../../actions/internal/read-only-actions'\n\nimport { actionMiddleware } from '../../toolkit'\n\nimport { createPropController } from '../../../prop-controllers/instances'\nimport { HostActionTypes } from '../../host-api'\n\nimport * as ReadOnlyState from '../../read-only-state'\nimport { type State, type Dispatch } from '../../read-write-state'\n\nfunction createAndRegisterPropControllers(\n documentKey: string,\n elementKey: string,\n): ThunkAction<Record<string, ControlInstance> | null, State, unknown, Action> {\n return (dispatch, getState) => {\n const descriptors = ReadOnlyState.getElementPropControllerDescriptors(\n getState(),\n documentKey,\n elementKey,\n )\n\n if (descriptors == null) return null\n\n const propControllers = Object.entries(descriptors).reduce(\n (acc, [propName, descriptor]) => {\n const propController = createPropController(descriptor, message =>\n dispatch(\n Builder.messageBuilderPropController(documentKey, elementKey, propName, message),\n ),\n ) as ControlInstance\n\n return { ...acc, [propName]: propController }\n },\n {} as Record<string, ControlInstance>,\n )\n\n dispatch(ReadOnly.registerPropControllers(documentKey, elementKey, propControllers))\n\n return propControllers\n }\n}\n\nexport function propControllerHandlesMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(({ dispatch, getState }) => next => {\n return (action: Action) => {\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey, componentHandle } = action.payload\n const element = ReadOnlyState.getElement(getState(), documentKey, elementKey)\n const propControllers = dispatch(\n createAndRegisterPropControllers(documentKey, elementKey),\n )\n\n if (\n element != null &&\n !ReadOnlyState.isElementReference(element) &&\n PropControllerHandles.isPropControllersHandle(componentHandle)\n ) {\n dispatch(\n ReadOnly.registerPropControllersHandle(documentKey, elementKey, componentHandle),\n )\n componentHandle.setPropControllers(propControllers)\n }\n\n break\n }\n\n case ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const handle = ReadOnlyState.getPropControllersHandle(getState(), {\n documentKey,\n elementKey,\n })\n\n handle?.setPropControllers(null)\n\n dispatch(ReadOnly.unregisterPropControllers(documentKey, elementKey))\n\n break\n }\n\n case HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {\n const { documentKey, elementKey, propName, message } = action.payload\n const propController = ReadOnlyState.getPropController(getState(), {\n documentKey,\n elementKey,\n propName,\n })\n\n if (propController) propController.recv(message)\n }\n }\n\n return next(action)\n }\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,4BAAuC;AAIvC,cAAyB;AAEzB,+BAAoC;AACpC,eAA0B;AAE1B,IAAAA,kBAAiC;AAEjC,uBAAqC;AACrC,sBAAgC;AAEhC,oBAA+B;AAG/B,SAAS,iCACP,aACA,YAC6E;AAC7E,SAAO,CAAC,UAAU,aAAa;AAC7B,UAAM,cAAc,cAAc;AAAA,MAChC,SAAS;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAEA,QAAI,eAAe;AAAM,aAAO;AAEhC,UAAM,kBAAkB,OAAO,QAAQ,WAAW,EAAE;AAAA,MAClD,CAAC,KAAK,CAAC,UAAU,UAAU,MAAM;AAC/B,cAAM,qBAAiB;AAAA,UAAqB;AAAA,UAAY,aACtD;AAAA,YACE,QAAQ,6BAA6B,aAAa,YAAY,UAAU,OAAO;AAAA,UACjF;AAAA,QACF;AAEA,eAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,GAAG,eAAe;AAAA,MAC9C;AAAA,MACA,CAAC;AAAA,IACH;AAEA,aAAS,SAAS,wBAAwB,aAAa,YAAY,eAAe,CAAC;AAEnF,WAAO;AAAA,EACT;AACF;AAEO,SAAS,kCAAyE;AACvF,aAAO,kCAAiB,CAAC,EAAE,UAAU,SAAS,MAAM,UAAQ;AAC1D,WAAO,CAAC,WAAmB;AACzB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK,6CAAoB,2BAA2B;AAClD,gBAAM,EAAE,aAAa,YAAY,gBAAgB,IAAI,OAAO;AAC5D,gBAAM,UAAU,cAAc,WAAW,SAAS,GAAG,aAAa,UAAU;AAC5E,gBAAM,kBAAkB;AAAA,YACtB,iCAAiC,aAAa,UAAU;AAAA,UAC1D;AAEA,cACE,WAAW,QACX,CAAC,cAAc,mBAAmB,OAAO,KACzC,sBAAsB,wBAAwB,eAAe,GAC7D;AACA;AAAA,cACE,SAAS,8BAA8B,aAAa,YAAY,eAAe;AAAA,YACjF;AACA,4BAAgB,mBAAmB,eAAe;AAAA,UACpD;AAEA;AAAA,QACF;AAAA,QAEA,KAAK,6CAAoB,6BAA6B;AACpD,gBAAM,EAAE,aAAa,WAAW,IAAI,OAAO;AAC3C,gBAAM,SAAS,cAAc,yBAAyB,SAAS,GAAG;AAAA,YAChE;AAAA,YACA;AAAA,UACF,CAAC;AAED,kBAAQ,mBAAmB,IAAI;AAE/B,mBAAS,SAAS,0BAA0B,aAAa,UAAU,CAAC;AAEpE;AAAA,QACF;AAAA,QAEA,KAAK,gCAAgB,8BAA8B;AACjD,gBAAM,EAAE,aAAa,YAAY,UAAU,QAAQ,IAAI,OAAO;AAC9D,gBAAM,iBAAiB,cAAc,kBAAkB,SAAS,GAAG;AAAA,YACjE;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AAED,cAAI;AAAgB,2BAAe,KAAK,OAAO;AAAA,QACjD;AAAA,MACF;AAEA,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":["import_toolkit"]}
1
+ {"version":3,"sources":["../../../../../src/state/middleware/read-write/prop-controller-handles.ts"],"sourcesContent":["import { type Middleware } from '@reduxjs/toolkit'\n\nimport * as PropControllers from '../../modules/read-write/prop-controllers'\n\nimport { type Action } from '../../actions'\n\nimport { ReadWriteActionTypes } from '../../actions/internal/read-write-action-types'\n\nimport { actionMiddleware } from '../../toolkit'\nimport { HostActionTypes } from '../../host-api'\n\nimport * as ReadOnlyState from '../../read-only-state'\n\nimport { type State, type Dispatch, getPropController } from '../../read-write-state'\n\nimport {\n registerPropControllersHandle,\n unregisterPropControllersHandle,\n} from '../../actions/internal/read-write-actions'\n\nexport function propControllerHandlesMiddleware(): Middleware<Dispatch, State, Dispatch> {\n return actionMiddleware(({ dispatch, getState }) => next => {\n return (action: Action) => {\n switch (action.type) {\n case ReadWriteActionTypes.REGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey, componentHandle } = action.payload\n const element = ReadOnlyState.getElement(getState(), documentKey, elementKey)\n\n if (\n element != null &&\n !ReadOnlyState.isElementReference(element) &&\n PropControllers.isPropControllersHandle(componentHandle)\n ) {\n dispatch(registerPropControllersHandle(documentKey, elementKey, componentHandle))\n }\n\n break\n }\n\n case ReadWriteActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const { documentKey, elementKey } = action.payload\n dispatch(unregisterPropControllersHandle(documentKey, elementKey))\n break\n }\n\n case HostActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {\n const { documentKey, elementKey, propName, message } = action.payload\n const propController = getPropController(getState(), {\n documentKey,\n elementKey,\n propName,\n })\n\n if (propController) propController.recv(message)\n }\n }\n\n return next(action)\n }\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAAiC;AAIjC,qCAAqC;AAErC,IAAAA,kBAAiC;AACjC,sBAAgC;AAEhC,oBAA+B;AAE/B,8BAA6D;AAE7D,gCAGO;AAEA,SAAS,kCAAyE;AACvF,aAAO,kCAAiB,CAAC,EAAE,UAAU,SAAS,MAAM,UAAQ;AAC1D,WAAO,CAAC,WAAmB;AACzB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK,oDAAqB,2BAA2B;AACnD,gBAAM,EAAE,aAAa,YAAY,gBAAgB,IAAI,OAAO;AAC5D,gBAAM,UAAU,cAAc,WAAW,SAAS,GAAG,aAAa,UAAU;AAE5E,cACE,WAAW,QACX,CAAC,cAAc,mBAAmB,OAAO,KACzC,gBAAgB,wBAAwB,eAAe,GACvD;AACA,yBAAS,yDAA8B,aAAa,YAAY,eAAe,CAAC;AAAA,UAClF;AAEA;AAAA,QACF;AAAA,QAEA,KAAK,oDAAqB,6BAA6B;AACrD,gBAAM,EAAE,aAAa,WAAW,IAAI,OAAO;AAC3C,uBAAS,2DAAgC,aAAa,UAAU,CAAC;AACjE;AAAA,QACF;AAAA,QAEA,KAAK,gCAAgB,8BAA8B;AACjD,gBAAM,EAAE,aAAa,YAAY,UAAU,QAAQ,IAAI,OAAO;AAC9D,gBAAM,qBAAiB,2CAAkB,SAAS,GAAG;AAAA,YACnD;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AAED,cAAI;AAAgB,2BAAe,KAAK,OAAO;AAAA,QACjD;AAAA,MACF;AAEA,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":["import_toolkit"]}
@@ -38,8 +38,8 @@ module.exports = __toCommonJS(api_resources_exports);
38
38
  var import_api = require("../../api");
39
39
  var import_deepEqual = __toESM(require("../../utils/deepEqual"));
40
40
  var import_actions = require("../actions");
41
- var import_read_only_actions = require("../actions/internal/read-only-actions");
42
- var import_read_write_actions = require("../actions/internal/read-write-actions");
41
+ var import_read_only_action_types = require("../actions/internal/read-only-action-types");
42
+ var import_read_write_action_types = require("../actions/internal/read-write-action-types");
43
43
  var import_host_api = require("../host-api");
44
44
  function isValidAPIResourceType(resourceType) {
45
45
  return resourceType in import_api.APIResourceType;
@@ -119,7 +119,7 @@ function reducer(state = getInitialState(), action) {
119
119
  if (!(0, import_actions.isKnownAction)(action))
120
120
  return state;
121
121
  switch (action.type) {
122
- case import_read_write_actions.ReadWriteActionTypes.UPDATE_API_CLIENT_CACHE: {
122
+ case import_read_write_action_types.ReadWriteActionTypes.UPDATE_API_CLIENT_CACHE: {
123
123
  const { apiResources } = action.payload;
124
124
  return Object.entries(apiResources).reduce((state2, [resourceType, cachedResources]) => {
125
125
  const resType = resourceType;
@@ -132,10 +132,10 @@ function reducer(state = getInitialState(), action) {
132
132
  return updated == null || updated === existing ? state2 : new Map(state2).set(resType, updated);
133
133
  }, state);
134
134
  }
135
- case import_read_write_actions.ReadWriteActionTypes.CLEAR_API_CLIENT_CACHE: {
135
+ case import_read_write_action_types.ReadWriteActionTypes.CLEAR_API_CLIENT_CACHE: {
136
136
  return getInitialState();
137
137
  }
138
- case import_read_only_actions.ReadOnlyActionTypes.API_RESOURCE_FULFILLED: {
138
+ case import_read_only_action_types.ReadOnlyActionTypes.API_RESOURCE_FULFILLED: {
139
139
  const { resourceType, resourceId, resource, locale } = action.payload;
140
140
  return new Map(state).set(
141
141
  resourceType,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/api-resources.ts"],"sourcesContent":["import {\n APIResourceType,\n APIResourceLocale,\n LocalizableAPIResourceType,\n type APIResource,\n} from '../../api'\n\nimport deepEqual from '../../utils/deepEqual'\nimport { Branded } from '../../utils/branded'\n\nimport { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\nimport { ReadWriteActionTypes } from '../actions/internal/read-write-actions'\nimport { HostActionTypes } from '../host-api'\n\ntype CompositeResourceId = Branded<string, 'CompositeResourceId'>\n\nfunction isValidAPIResourceType(resourceType: string): resourceType is APIResourceType {\n return resourceType in APIResourceType\n}\n\nfunction isLocalizableAPIResourceType(\n resourceType: APIResourceType,\n): resourceType is LocalizableAPIResourceType {\n return resourceType in LocalizableAPIResourceType\n}\n\nfunction compositeId(\n resourceId: string,\n resourceType: APIResourceType,\n locale?: string | null,\n): CompositeResourceId {\n return (\n locale != null && isLocalizableAPIResourceType(resourceType)\n ? `${resourceId}@${locale}`\n : resourceId\n ) as CompositeResourceId\n}\n\nfunction parseCompositeId(compositeId: CompositeResourceId): [string, string | null] {\n const [resourceId, locale] = compositeId.split('@')\n return [resourceId, locale ?? null]\n}\n\nexport type State = Map<APIResourceType, Map<CompositeResourceId, APIResource | null>>\n\nexport type SerializedState = {\n [key in APIResourceType]?: {\n id: string\n value: Extract<APIResource, { __typename: key }> | null\n locale?: APIResourceLocale<key>\n }[]\n}\n\nexport function getInitialState(\n serializedState: SerializedState = {\n Swatch: [],\n File: [],\n Typography: [],\n PagePathnameSlice: [],\n GlobalElement: [],\n Table: [],\n Snippet: [],\n Page: [],\n Site: [],\n LocalizedGlobalElement: [],\n },\n): State {\n return new Map(\n Object.entries(serializedState).map(([resourceType, resources]) => [\n resourceType,\n new Map(\n resources.map(({ id, value, locale }) => [\n compositeId(id, resourceType as APIResourceType, locale),\n value,\n ]),\n ),\n ]),\n ) as State\n}\n\nexport function getSerializedState(state: State): SerializedState {\n const resourceMap: SerializedState = {\n Swatch: [],\n File: [],\n Typography: [],\n PagePathnameSlice: [],\n GlobalElement: [],\n Table: [],\n Snippet: [],\n Page: [],\n Site: [],\n LocalizedGlobalElement: [],\n }\n\n Array.from(state.entries()).forEach(([resourceType, resources]) => {\n const particularResourceMap: { id: string; value: any; locale?: any }[] = []\n\n Array.from(resources.entries()).forEach(([compositeId, value]) => {\n if (value != null) {\n const [id, locale] = parseCompositeId(compositeId)\n console.assert(\n locale == null || isLocalizableAPIResourceType(resourceType),\n `Unexpected locale for non-localizable resource type ${resourceType}`,\n { id, locale },\n )\n\n particularResourceMap.push(locale != null ? { id, value, locale } : { id, value })\n }\n })\n\n resourceMap[resourceType] = particularResourceMap\n })\n\n return resourceMap\n}\n\nexport function getHasAPIResource<T extends APIResourceType>(\n state: State,\n resourceType: T,\n resourceId: string,\n locale?: APIResourceLocale<T>,\n): boolean {\n return state.get(resourceType)?.has(compositeId(resourceId, resourceType, locale)) ?? false\n}\n\nexport function getAPIResource<T extends APIResourceType>(\n state: State,\n resourceType: T,\n resourceId: string,\n locale?: APIResourceLocale<T>,\n): Extract<APIResource, { __typename: T }> | null {\n const resource = state.get(resourceType)?.get(compositeId(resourceId, resourceType, locale))\n\n return resource?.__typename === resourceType\n ? (resource as Extract<typeof resource, { __typename: T }>)\n : 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 ReadWriteActionTypes.UPDATE_API_CLIENT_CACHE: {\n const { apiResources } = action.payload\n\n return Object.entries(apiResources).reduce((state, [resourceType, cachedResources]) => {\n const resType = resourceType as APIResourceType\n const cached:\n | { id: string; value: APIResource | null; locale?: string | null }[]\n | undefined = cachedResources\n\n const existing = state.get(resType) ?? new Map<CompositeResourceId, APIResource | null>()\n const updated = cached?.reduce((r, { id, value, locale }) => {\n const cid = compositeId(id, resType, locale)\n return deepEqual(r.get(cid), value) ? r : new Map(r).set(cid, value)\n }, existing)\n\n return updated == null || updated === existing\n ? state\n : new Map(state).set(resType, updated)\n }, state)\n }\n\n case ReadWriteActionTypes.CLEAR_API_CLIENT_CACHE: {\n return getInitialState()\n }\n\n case ReadOnlyActionTypes.API_RESOURCE_FULFILLED: {\n const { resourceType, resourceId, resource, locale } = action.payload\n return new Map(state).set(\n resourceType,\n new Map(state.get(resourceType)!).set(\n compositeId(resourceId, resourceType, locale),\n resource,\n ),\n )\n }\n\n case HostActionTypes.CHANGE_API_RESOURCE: {\n const { resource, locale } = action.payload\n const existingApiResource = getAPIResource(state, resource.__typename, resource.id, locale)\n\n if (deepEqual(existingApiResource, resource)) return state\n\n return new Map(state).set(\n resource.__typename,\n new Map(state.get(resource.__typename)!).set(\n compositeId(resource.id, resource.__typename, locale),\n resource,\n ),\n )\n }\n\n case HostActionTypes.EVICT_API_RESOURCE: {\n const { id, locale } = action.payload\n const [resourceType, resourceId] = id.split(':')\n\n if (!isValidAPIResourceType(resourceType)) return state\n\n const resources = new Map(state.get(resourceType as APIResourceType)!)\n\n const deleted = resources.delete(compositeId(resourceId, resourceType, locale))\n\n return deleted ? new Map(state).set(resourceType as APIResourceType, resources) : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":"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","names":["compositeId","state","deepEqual"]}
1
+ {"version":3,"sources":["../../../../src/state/modules/api-resources.ts"],"sourcesContent":["import {\n APIResourceType,\n APIResourceLocale,\n LocalizableAPIResourceType,\n type APIResource,\n} from '../../api'\n\nimport deepEqual from '../../utils/deepEqual'\nimport { Branded } from '../../utils/branded'\n\nimport { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-action-types'\nimport { ReadWriteActionTypes } from '../actions/internal/read-write-action-types'\nimport { HostActionTypes } from '../host-api'\n\ntype CompositeResourceId = Branded<string, 'CompositeResourceId'>\n\nfunction isValidAPIResourceType(resourceType: string): resourceType is APIResourceType {\n return resourceType in APIResourceType\n}\n\nfunction isLocalizableAPIResourceType(\n resourceType: APIResourceType,\n): resourceType is LocalizableAPIResourceType {\n return resourceType in LocalizableAPIResourceType\n}\n\nfunction compositeId(\n resourceId: string,\n resourceType: APIResourceType,\n locale?: string | null,\n): CompositeResourceId {\n return (\n locale != null && isLocalizableAPIResourceType(resourceType)\n ? `${resourceId}@${locale}`\n : resourceId\n ) as CompositeResourceId\n}\n\nfunction parseCompositeId(compositeId: CompositeResourceId): [string, string | null] {\n const [resourceId, locale] = compositeId.split('@')\n return [resourceId, locale ?? null]\n}\n\nexport type State = Map<APIResourceType, Map<CompositeResourceId, APIResource | null>>\n\nexport type SerializedState = {\n [key in APIResourceType]?: {\n id: string\n value: Extract<APIResource, { __typename: key }> | null\n locale?: APIResourceLocale<key>\n }[]\n}\n\nexport function getInitialState(\n serializedState: SerializedState = {\n Swatch: [],\n File: [],\n Typography: [],\n PagePathnameSlice: [],\n GlobalElement: [],\n Table: [],\n Snippet: [],\n Page: [],\n Site: [],\n LocalizedGlobalElement: [],\n },\n): State {\n return new Map(\n Object.entries(serializedState).map(([resourceType, resources]) => [\n resourceType,\n new Map(\n resources.map(({ id, value, locale }) => [\n compositeId(id, resourceType as APIResourceType, locale),\n value,\n ]),\n ),\n ]),\n ) as State\n}\n\nexport function getSerializedState(state: State): SerializedState {\n const resourceMap: SerializedState = {\n Swatch: [],\n File: [],\n Typography: [],\n PagePathnameSlice: [],\n GlobalElement: [],\n Table: [],\n Snippet: [],\n Page: [],\n Site: [],\n LocalizedGlobalElement: [],\n }\n\n Array.from(state.entries()).forEach(([resourceType, resources]) => {\n const particularResourceMap: { id: string; value: any; locale?: any }[] = []\n\n Array.from(resources.entries()).forEach(([compositeId, value]) => {\n if (value != null) {\n const [id, locale] = parseCompositeId(compositeId)\n console.assert(\n locale == null || isLocalizableAPIResourceType(resourceType),\n `Unexpected locale for non-localizable resource type ${resourceType}`,\n { id, locale },\n )\n\n particularResourceMap.push(locale != null ? { id, value, locale } : { id, value })\n }\n })\n\n resourceMap[resourceType] = particularResourceMap\n })\n\n return resourceMap\n}\n\nexport function getHasAPIResource<T extends APIResourceType>(\n state: State,\n resourceType: T,\n resourceId: string,\n locale?: APIResourceLocale<T>,\n): boolean {\n return state.get(resourceType)?.has(compositeId(resourceId, resourceType, locale)) ?? false\n}\n\nexport function getAPIResource<T extends APIResourceType>(\n state: State,\n resourceType: T,\n resourceId: string,\n locale?: APIResourceLocale<T>,\n): Extract<APIResource, { __typename: T }> | null {\n const resource = state.get(resourceType)?.get(compositeId(resourceId, resourceType, locale))\n\n return resource?.__typename === resourceType\n ? (resource as Extract<typeof resource, { __typename: T }>)\n : 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 ReadWriteActionTypes.UPDATE_API_CLIENT_CACHE: {\n const { apiResources } = action.payload\n\n return Object.entries(apiResources).reduce((state, [resourceType, cachedResources]) => {\n const resType = resourceType as APIResourceType\n const cached:\n | { id: string; value: APIResource | null; locale?: string | null }[]\n | undefined = cachedResources\n\n const existing = state.get(resType) ?? new Map<CompositeResourceId, APIResource | null>()\n const updated = cached?.reduce((r, { id, value, locale }) => {\n const cid = compositeId(id, resType, locale)\n return deepEqual(r.get(cid), value) ? r : new Map(r).set(cid, value)\n }, existing)\n\n return updated == null || updated === existing\n ? state\n : new Map(state).set(resType, updated)\n }, state)\n }\n\n case ReadWriteActionTypes.CLEAR_API_CLIENT_CACHE: {\n return getInitialState()\n }\n\n case ReadOnlyActionTypes.API_RESOURCE_FULFILLED: {\n const { resourceType, resourceId, resource, locale } = action.payload\n return new Map(state).set(\n resourceType,\n new Map(state.get(resourceType)!).set(\n compositeId(resourceId, resourceType, locale),\n resource,\n ),\n )\n }\n\n case HostActionTypes.CHANGE_API_RESOURCE: {\n const { resource, locale } = action.payload\n const existingApiResource = getAPIResource(state, resource.__typename, resource.id, locale)\n\n if (deepEqual(existingApiResource, resource)) return state\n\n return new Map(state).set(\n resource.__typename,\n new Map(state.get(resource.__typename)!).set(\n compositeId(resource.id, resource.__typename, locale),\n resource,\n ),\n )\n }\n\n case HostActionTypes.EVICT_API_RESOURCE: {\n const { id, locale } = action.payload\n const [resourceType, resourceId] = id.split(':')\n\n if (!isValidAPIResourceType(resourceType)) return state\n\n const resources = new Map(state.get(resourceType as APIResourceType)!)\n\n const deleted = resources.delete(compositeId(resourceId, resourceType, locale))\n\n return deleted ? new Map(state).set(resourceType as APIResourceType, resources) : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":"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","names":["compositeId","state","deepEqual"]}
@@ -30,8 +30,8 @@ __export(breakpoints_exports, {
30
30
  module.exports = __toCommonJS(breakpoints_exports);
31
31
  var import_controls = require("@makeswift/controls");
32
32
  var import_actions = require("../actions");
33
- var import_internal = require("../actions/internal");
34
- var import_actions2 = require("../builder-api/actions");
33
+ var import_action_types = require("../actions/internal/action-types");
34
+ var import_action_types2 = require("../builder-api/action-types");
35
35
  var import_is_server = require("../../utils/is-server");
36
36
  var import_controls2 = require("@makeswift/controls");
37
37
  const DefaultBreakpointID = {
@@ -84,7 +84,7 @@ function reducer(state = getInitialState(), action) {
84
84
  if (!(0, import_actions.isKnownAction)(action))
85
85
  return state;
86
86
  switch (action.type) {
87
- case import_actions2.BuilderActionTypes.SET_BREAKPOINTS: {
87
+ case import_action_types2.BuilderActionTypes.SET_BREAKPOINTS: {
88
88
  const breakpoints = action.payload.breakpoints;
89
89
  if (breakpoints.length === 0)
90
90
  throw new Error("Breakpoints cannot be empty.");
@@ -94,7 +94,7 @@ function reducer(state = getInitialState(), action) {
94
94
  clientBreakpoint: getMatchingMediaBreakpointId(breakpoints)
95
95
  };
96
96
  }
97
- case import_internal.InternalActionTypes.UPDATE_CLIENT_BREAKPOINT: {
97
+ case import_action_types.InternalActionTypes.UPDATE_CLIENT_BREAKPOINT: {
98
98
  const clientBreakpoint = getMatchingMediaBreakpointId(state.breakpoints);
99
99
  if (clientBreakpoint === state.clientBreakpoint)
100
100
  return state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/breakpoints.ts"],"sourcesContent":["import {\n type Breakpoint,\n type BreakpointId,\n type Breakpoints,\n getBaseBreakpoint,\n getBreakpointMediaQuery,\n} from '@makeswift/controls'\n\nimport { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { InternalActionTypes } from '../actions/internal'\nimport { BuilderActionTypes } from '../builder-api/actions'\nimport { isServer } from '../../utils/is-server'\n\nexport {\n getBreakpoint,\n type Breakpoint,\n type BreakpointId,\n type Breakpoints,\n} from '@makeswift/controls'\n\nexport type State = {\n breakpoints: Breakpoints\n baseBreakpoint: BreakpointId\n clientBreakpoint: BreakpointId\n}\n\nexport const DefaultBreakpointID = {\n Desktop: 'desktop',\n Tablet: 'tablet',\n Mobile: 'mobile',\n} as const\n\ntype DefaultBreakpointID = (typeof DefaultBreakpointID)[keyof typeof DefaultBreakpointID]\n\nexport const DEFAULT_BREAKPOINTS: Breakpoints = [\n {\n id: DefaultBreakpointID.Desktop,\n label: 'Desktop',\n minWidth: 769,\n },\n {\n id: DefaultBreakpointID.Tablet,\n label: 'Tablet',\n minWidth: 576,\n maxWidth: 768,\n viewportWidth: 760,\n },\n {\n id: DefaultBreakpointID.Mobile,\n label: 'Mobile',\n maxWidth: 575,\n viewportWidth: 390,\n },\n]\n\nexport const getDeviceQueries = (breakpoints: Breakpoints) =>\n breakpoints.map(device => ({\n id: device.id,\n query: getBreakpointMediaQuery(device).replace('@media', ''),\n }))\n\nconst getBaseBreakpointId = (breakpoints: Breakpoints): BreakpointId =>\n getBaseBreakpoint(breakpoints).id\n\n// Intentional impurity in the reducer buys us several practical upsides here:\n//\n// - We can keep `SET_BREAKPOINTS` atomic by recalculating the client breakpoint\n// state when we update the set of available breakpoints; if we don't do that\n// here, we'll have to do it from the outside, and the state will temporarily\n// hold a stale client breakpoint value in between\n//\n// - We can have a valid, internally consistent *initial* state for the client\n// breakpoint; if we move the client breakpoint calculation out of the reducer,\n// we'll be forced to start with a stale initial state, which will introduce\n// implicit coupling and potential timing issues between the\n// `useCurrentBreakpoint` hook and the client breakpoint synchronization code\n// in `BreakpointWatch`\n//\n// - `UPDATE_CLIENT_BREAKPOINT` can compute the client breakpoint from browser\n// state using the current breakpoint set instead of having to validate and\n// handle external payload\n\nexport function getMatchingMediaBreakpointId(breakpoints: Breakpoints): BreakpointId {\n const baseBreakpoint = getBaseBreakpointId(breakpoints)\n if (isServer()) return baseBreakpoint\n\n // using `findLast` to preserve the legacy behavior; might not be necessary\n const matchingBreakpoint = getDeviceQueries(breakpoints).findLast(\n ({ query }) => window.matchMedia(query).matches,\n )\n\n return matchingBreakpoint?.id ?? baseBreakpoint\n}\n\nexport function getInitialState(breakpoints = DEFAULT_BREAKPOINTS): State {\n return {\n breakpoints,\n baseBreakpoint: getBaseBreakpointId(breakpoints),\n clientBreakpoint: getMatchingMediaBreakpointId(breakpoints),\n }\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 BuilderActionTypes.SET_BREAKPOINTS: {\n const breakpoints = action.payload.breakpoints\n\n if (breakpoints.length === 0) throw new Error('Breakpoints cannot be empty.')\n\n return {\n breakpoints,\n baseBreakpoint: getBaseBreakpointId(breakpoints),\n clientBreakpoint: getMatchingMediaBreakpointId(breakpoints),\n }\n }\n\n case InternalActionTypes.UPDATE_CLIENT_BREAKPOINT: {\n const clientBreakpoint = getMatchingMediaBreakpointId(state.breakpoints)\n if (clientBreakpoint === state.clientBreakpoint) return state\n\n return { ...state, clientBreakpoint }\n }\n\n default:\n return state\n }\n}\n\nexport type BreakpointsInput = Record<string, { width: number; label?: string; viewport?: number }>\n\nexport function parseBreakpointsInput(input: BreakpointsInput): Breakpoints {\n validateBreakpointsInput(input)\n\n const sorted = Object.entries(input)\n .map(([id, value]) => ({ ...value, id }))\n .sort((a, b) => b.width - a.width) // Sort by width in descending order\n\n const transformed = sorted.reduce(\n (prev, curr, index, array) => {\n const { width, viewport, id, label } = curr\n const next = array[index + 1]\n\n const breakpoint: Breakpoint = {\n id,\n ...(label && { label }),\n ...(next && { minWidth: next.width + 1 }),\n maxWidth: width,\n viewportWidth: viewport ?? width,\n }\n\n return [...prev, breakpoint]\n },\n [\n { id: DefaultBreakpointID.Desktop, label: 'Desktop', minWidth: sorted[0].width + 1 },\n ] as Breakpoints,\n )\n\n return transformed\n}\n\nfunction validateBreakpointsInput(input: BreakpointsInput) {\n if (DefaultBreakpointID.Desktop in input) {\n throw new Error(\n `Cannot change the base breakpoint. \"${DefaultBreakpointID.Desktop}\" is reserved as the base breakpoint.`,\n )\n }\n\n if (Object.keys(input).length === 0) {\n throw new Error(`Breakpoints cannot be empty. You must provide at least one breakpoint.`)\n }\n\n const sorted = Object.entries(input)\n .map(([id, value]) => ({ ...value, id }))\n .sort((a, b) => b.width - a.width) // Sort by width in descending order\n\n sorted.forEach(({ id, width, viewport }, index, array) => {\n // This is only valid for desktop-first. We need to check the inverse for mobile-first.\n if (viewport && viewport > width) {\n throw new Error(\n `Error on breakpoint \"${id}\". Viewport cannot be greater than its width.\n \"${id}\" has a viewport of ${viewport}px and a width of ${width}px.`,\n )\n }\n\n const next = array[index + 1]\n\n if (viewport && next && viewport < next.width) {\n throw new Error(\n `Error on breakpoint \"${id}\". Viewport cannot be smaller than the next breakpoint's width.\n \"${id}\" has a viewport of ${viewport}px and the next breakpoint \"${next.id}\" has a width of ${next.width}px.`,\n )\n }\n\n if (next && width === next.width) {\n throw new Error(\n `Breakpoints cannot have the same width. \"${id}\" and \"${next.id}\" have the same width`,\n )\n }\n })\n}\n"],"mappings":"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","names":["import_actions","import_controls"]}
1
+ {"version":3,"sources":["../../../../src/state/modules/breakpoints.ts"],"sourcesContent":["import {\n type Breakpoint,\n type BreakpointId,\n type Breakpoints,\n getBaseBreakpoint,\n getBreakpointMediaQuery,\n} from '@makeswift/controls'\n\nimport { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { InternalActionTypes } from '../actions/internal/action-types'\nimport { BuilderActionTypes } from '../builder-api/action-types'\nimport { isServer } from '../../utils/is-server'\n\nexport {\n getBreakpoint,\n type Breakpoint,\n type BreakpointId,\n type Breakpoints,\n} from '@makeswift/controls'\n\nexport type State = {\n breakpoints: Breakpoints\n baseBreakpoint: BreakpointId\n clientBreakpoint: BreakpointId\n}\n\nexport const DefaultBreakpointID = {\n Desktop: 'desktop',\n Tablet: 'tablet',\n Mobile: 'mobile',\n} as const\n\ntype DefaultBreakpointID = (typeof DefaultBreakpointID)[keyof typeof DefaultBreakpointID]\n\nexport const DEFAULT_BREAKPOINTS: Breakpoints = [\n {\n id: DefaultBreakpointID.Desktop,\n label: 'Desktop',\n minWidth: 769,\n },\n {\n id: DefaultBreakpointID.Tablet,\n label: 'Tablet',\n minWidth: 576,\n maxWidth: 768,\n viewportWidth: 760,\n },\n {\n id: DefaultBreakpointID.Mobile,\n label: 'Mobile',\n maxWidth: 575,\n viewportWidth: 390,\n },\n]\n\nexport const getDeviceQueries = (breakpoints: Breakpoints) =>\n breakpoints.map(device => ({\n id: device.id,\n query: getBreakpointMediaQuery(device).replace('@media', ''),\n }))\n\nconst getBaseBreakpointId = (breakpoints: Breakpoints): BreakpointId =>\n getBaseBreakpoint(breakpoints).id\n\n// Intentional impurity in the reducer buys us several practical upsides here:\n//\n// - We can keep `SET_BREAKPOINTS` atomic by recalculating the client breakpoint\n// state when we update the set of available breakpoints; if we don't do that\n// here, we'll have to do it from the outside, and the state will temporarily\n// hold a stale client breakpoint value in between\n//\n// - We can have a valid, internally consistent *initial* state for the client\n// breakpoint; if we move the client breakpoint calculation out of the reducer,\n// we'll be forced to start with a stale initial state, which will introduce\n// implicit coupling and potential timing issues between the\n// `useCurrentBreakpoint` hook and the client breakpoint synchronization code\n// in `BreakpointWatch`\n//\n// - `UPDATE_CLIENT_BREAKPOINT` can compute the client breakpoint from browser\n// state using the current breakpoint set instead of having to validate and\n// handle external payload\n\nexport function getMatchingMediaBreakpointId(breakpoints: Breakpoints): BreakpointId {\n const baseBreakpoint = getBaseBreakpointId(breakpoints)\n if (isServer()) return baseBreakpoint\n\n // using `findLast` to preserve the legacy behavior; might not be necessary\n const matchingBreakpoint = getDeviceQueries(breakpoints).findLast(\n ({ query }) => window.matchMedia(query).matches,\n )\n\n return matchingBreakpoint?.id ?? baseBreakpoint\n}\n\nexport function getInitialState(breakpoints = DEFAULT_BREAKPOINTS): State {\n return {\n breakpoints,\n baseBreakpoint: getBaseBreakpointId(breakpoints),\n clientBreakpoint: getMatchingMediaBreakpointId(breakpoints),\n }\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 BuilderActionTypes.SET_BREAKPOINTS: {\n const breakpoints = action.payload.breakpoints\n\n if (breakpoints.length === 0) throw new Error('Breakpoints cannot be empty.')\n\n return {\n breakpoints,\n baseBreakpoint: getBaseBreakpointId(breakpoints),\n clientBreakpoint: getMatchingMediaBreakpointId(breakpoints),\n }\n }\n\n case InternalActionTypes.UPDATE_CLIENT_BREAKPOINT: {\n const clientBreakpoint = getMatchingMediaBreakpointId(state.breakpoints)\n if (clientBreakpoint === state.clientBreakpoint) return state\n\n return { ...state, clientBreakpoint }\n }\n\n default:\n return state\n }\n}\n\nexport type BreakpointsInput = Record<string, { width: number; label?: string; viewport?: number }>\n\nexport function parseBreakpointsInput(input: BreakpointsInput): Breakpoints {\n validateBreakpointsInput(input)\n\n const sorted = Object.entries(input)\n .map(([id, value]) => ({ ...value, id }))\n .sort((a, b) => b.width - a.width) // Sort by width in descending order\n\n const transformed = sorted.reduce(\n (prev, curr, index, array) => {\n const { width, viewport, id, label } = curr\n const next = array[index + 1]\n\n const breakpoint: Breakpoint = {\n id,\n ...(label && { label }),\n ...(next && { minWidth: next.width + 1 }),\n maxWidth: width,\n viewportWidth: viewport ?? width,\n }\n\n return [...prev, breakpoint]\n },\n [\n { id: DefaultBreakpointID.Desktop, label: 'Desktop', minWidth: sorted[0].width + 1 },\n ] as Breakpoints,\n )\n\n return transformed\n}\n\nfunction validateBreakpointsInput(input: BreakpointsInput) {\n if (DefaultBreakpointID.Desktop in input) {\n throw new Error(\n `Cannot change the base breakpoint. \"${DefaultBreakpointID.Desktop}\" is reserved as the base breakpoint.`,\n )\n }\n\n if (Object.keys(input).length === 0) {\n throw new Error(`Breakpoints cannot be empty. You must provide at least one breakpoint.`)\n }\n\n const sorted = Object.entries(input)\n .map(([id, value]) => ({ ...value, id }))\n .sort((a, b) => b.width - a.width) // Sort by width in descending order\n\n sorted.forEach(({ id, width, viewport }, index, array) => {\n // This is only valid for desktop-first. We need to check the inverse for mobile-first.\n if (viewport && viewport > width) {\n throw new Error(\n `Error on breakpoint \"${id}\". Viewport cannot be greater than its width.\n \"${id}\" has a viewport of ${viewport}px and a width of ${width}px.`,\n )\n }\n\n const next = array[index + 1]\n\n if (viewport && next && viewport < next.width) {\n throw new Error(\n `Error on breakpoint \"${id}\". Viewport cannot be smaller than the next breakpoint's width.\n \"${id}\" has a viewport of ${viewport}px and the next breakpoint \"${next.id}\" has a width of ${next.width}px.`,\n )\n }\n\n if (next && width === next.width) {\n throw new Error(\n `Breakpoints cannot have the same width. \"${id}\" and \"${next.id}\" have the same width`,\n )\n }\n })\n}\n"],"mappings":"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","names":["import_action_types","import_controls"]}
@@ -26,7 +26,7 @@ __export(components_meta_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(components_meta_exports);
28
28
  var import_actions = require("../actions");
29
- var import_read_only_actions = require("../actions/internal/read-only-actions");
29
+ var import_read_only_action_types = require("../actions/internal/read-only-action-types");
30
30
  const ComponentIcon = {
31
31
  Accordion: "accordion",
32
32
  Audio: "audio",
@@ -75,9 +75,9 @@ function reducer(state = getInitialState(), action) {
75
75
  if (!(0, import_actions.isKnownAction)(action))
76
76
  return state;
77
77
  switch (action.type) {
78
- case import_read_only_actions.ReadOnlyActionTypes.REGISTER_COMPONENT:
78
+ case import_read_only_action_types.ReadOnlyActionTypes.REGISTER_COMPONENT:
79
79
  return new Map(state).set(action.payload.type, action.payload.meta);
80
- case import_read_only_actions.ReadOnlyActionTypes.UNREGISTER_COMPONENT: {
80
+ case import_read_only_action_types.ReadOnlyActionTypes.UNREGISTER_COMPONENT: {
81
81
  const nextState = new Map(state);
82
82
  const deleted = nextState.delete(action.payload.type);
83
83
  return deleted ? nextState : state;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/state/modules/components-meta.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\n\nexport const ComponentIcon = {\n Accordion: 'accordion',\n Audio: 'audio',\n Billing: 'billing',\n Bolt: 'bolt',\n Button: 'button',\n Card: 'card',\n Cards: 'cards',\n Carousel: 'carousel',\n Chats: 'chats',\n Code: 'code',\n Countdown: 'countdown',\n Cube: 'cube',\n Database: 'database',\n Divider: 'divider',\n Form: 'form',\n Gallery: 'gallery',\n Grid: 'grid',\n Help: 'help',\n Image: 'image',\n Layout: 'layout',\n Lock: 'lock',\n Marker: 'marker',\n Navigation: 'navigation',\n Palette: 'palette',\n SocialLinks: 'social-links',\n Star: 'star',\n Table: 'table',\n Tabs: 'tabs',\n Text: 'text',\n Users: 'users',\n Video: 'video',\n} as const\n\nexport type ComponentIcon = (typeof ComponentIcon)[keyof typeof ComponentIcon]\n\nexport type ComponentMeta = {\n label: string\n icon: ComponentIcon\n hidden: boolean\n description?: string\n builtinSuspense?: boolean\n unstable_migration?: {\n replacementType: string\n }\n}\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function getComponentMeta(state: State, type: string): ComponentMeta | null {\n return getComponentsMeta(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ReadOnlyActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+D;AAC/D,+BAAoC;AAE7B,MAAM,gBAAgB;AAAA,EAC3B,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AACT;AAiBO,SAAS,gBAAgB;AAAA,EAC9B,iBAAiB,oBAAI,IAAI;AAC3B,IAAqD,CAAC,GAAU;AAC9D,SAAO;AACT;AAEO,SAAS,kBAAkB,OAA0C;AAC1E,SAAO;AACT;AAEO,SAAS,iBAAiB,OAAc,MAAoC;AACjF,SAAO,kBAAkB,KAAK,EAAE,IAAI,IAAI,KAAK;AAC/C;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,6CAAoB;AACvB,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,MAAM,OAAO,QAAQ,IAAI;AAAA,IAEpE,KAAK,6CAAoB,sBAAsB;AAC7C,YAAM,YAAY,IAAI,IAAI,KAAK;AAE/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,IAAI;AAEpD,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/state/modules/components-meta.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-action-types'\n\nexport const ComponentIcon = {\n Accordion: 'accordion',\n Audio: 'audio',\n Billing: 'billing',\n Bolt: 'bolt',\n Button: 'button',\n Card: 'card',\n Cards: 'cards',\n Carousel: 'carousel',\n Chats: 'chats',\n Code: 'code',\n Countdown: 'countdown',\n Cube: 'cube',\n Database: 'database',\n Divider: 'divider',\n Form: 'form',\n Gallery: 'gallery',\n Grid: 'grid',\n Help: 'help',\n Image: 'image',\n Layout: 'layout',\n Lock: 'lock',\n Marker: 'marker',\n Navigation: 'navigation',\n Palette: 'palette',\n SocialLinks: 'social-links',\n Star: 'star',\n Table: 'table',\n Tabs: 'tabs',\n Text: 'text',\n Users: 'users',\n Video: 'video',\n} as const\n\nexport type ComponentIcon = (typeof ComponentIcon)[keyof typeof ComponentIcon]\n\nexport type ComponentMeta = {\n label: string\n icon: ComponentIcon\n hidden: boolean\n description?: string\n builtinSuspense?: boolean\n unstable_migration?: {\n replacementType: string\n }\n}\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function getComponentMeta(state: State, type: string): ComponentMeta | null {\n return getComponentsMeta(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ReadOnlyActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+D;AAC/D,oCAAoC;AAE7B,MAAM,gBAAgB;AAAA,EAC3B,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AACT;AAiBO,SAAS,gBAAgB;AAAA,EAC9B,iBAAiB,oBAAI,IAAI;AAC3B,IAAqD,CAAC,GAAU;AAC9D,SAAO;AACT;AAEO,SAAS,kBAAkB,OAA0C;AAC1E,SAAO;AACT;AAEO,SAAS,iBAAiB,OAAc,MAAoC;AACjF,SAAO,kBAAkB,KAAK,EAAE,IAAI,IAAI,KAAK;AAC/C;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,KAAC,8BAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,kDAAoB;AACvB,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,MAAM,OAAO,QAAQ,IAAI;AAAA,IAEpE,KAAK,kDAAoB,sBAAsB;AAC7C,YAAM,YAAY,IAAI,IAAI,KAAK;AAE/B,YAAM,UAAU,UAAU,OAAO,OAAO,QAAQ,IAAI;AAEpD,aAAO,UAAU,YAAY;AAAA,IAC/B;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -43,8 +43,8 @@ var import_immutable = require("immutable");
43
43
  var import_controls = require("@makeswift/controls");
44
44
  var Introspection = __toESM(require("../../prop-controllers/introspection"));
45
45
  var import_actions = require("../actions");
46
- var import_read_only_actions = require("../actions/internal/read-only-actions");
47
- var import_read_write_actions = require("../actions/internal/read-write-actions");
46
+ var import_read_only_action_types = require("../actions/internal/read-only-action-types");
47
+ var import_read_write_action_types = require("../actions/internal/read-write-action-types");
48
48
  var import_read_only_documents = require("./read-only-documents");
49
49
  function getInitialState(documents, descriptors) {
50
50
  const state = /* @__PURE__ */ new Map();
@@ -74,19 +74,19 @@ function reducer(state = getInitialState(), action) {
74
74
  if (!(0, import_actions.isKnownAction)(action))
75
75
  return state;
76
76
  switch (action.type) {
77
- case import_read_only_actions.ReadOnlyActionTypes.CREATE_ELEMENT_TREE: {
77
+ case import_read_only_action_types.ReadOnlyActionTypes.CREATE_ELEMENT_TREE: {
78
78
  const { document, descriptors } = action.payload;
79
79
  return new Map(state).set(
80
80
  document.key,
81
81
  buildElementTree((0, import_read_only_documents.getRootElement)(document), descriptors)
82
82
  );
83
83
  }
84
- case import_read_only_actions.ReadOnlyActionTypes.DELETE_ELEMENT_TREE: {
84
+ case import_read_only_action_types.ReadOnlyActionTypes.DELETE_ELEMENT_TREE: {
85
85
  const nextState = new Map(state);
86
86
  const deleted = nextState.delete(action.payload.documentKey);
87
87
  return deleted ? nextState : state;
88
88
  }
89
- case import_read_write_actions.ReadWriteActionTypes.CHANGE_ELEMENT_TREE: {
89
+ case import_read_write_action_types.ReadWriteActionTypes.CHANGE_ELEMENT_TREE: {
90
90
  const { oldDocument, newDocument, descriptors, operation } = action.payload;
91
91
  const documentKey = oldDocument.key;
92
92
  console.assert(