@makeswift/runtime 0.26.0-canary.9 → 0.26.1-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 (243) hide show
  1. package/README.md +2 -2
  2. package/builder/breakpoints/package.json +5 -0
  3. package/builder/core/package.json +5 -0
  4. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  5. package/dist/cjs/{box-model.js → builder/breakpoints/index.js} +11 -11
  6. package/dist/cjs/builder/breakpoints/index.js.map +1 -0
  7. package/dist/cjs/builder/core/index.js.map +1 -0
  8. package/dist/cjs/builder/index.js +44 -18
  9. package/dist/cjs/builder/index.js.map +1 -1
  10. package/dist/cjs/builder/serialization/control-serialization.js +38 -34
  11. package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
  12. package/dist/cjs/components/builtin/Box/Box.js +14 -14
  13. package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
  14. package/dist/cjs/components/builtin/Box/animations.js.map +1 -1
  15. package/dist/cjs/components/builtin/Form/Form.js +2 -2
  16. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  17. package/dist/cjs/components/hooks/useBackgrounds.js +4 -4
  18. package/dist/cjs/components/hooks/useBackgrounds.js.map +1 -1
  19. package/dist/cjs/components/hooks/useBorder.js +2 -2
  20. package/dist/cjs/components/hooks/useBorder.js.map +1 -1
  21. package/dist/cjs/components/hooks/useBoxShadow.js.map +1 -1
  22. package/dist/cjs/components/hooks/useTableFormFieldRefs.js +3 -3
  23. package/dist/cjs/components/hooks/useTableFormFieldRefs.js.map +1 -1
  24. package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
  25. package/dist/cjs/components/shared/grid-item.js.map +1 -1
  26. package/dist/cjs/controls/control.js +2 -2
  27. package/dist/cjs/controls/control.js.map +1 -1
  28. package/dist/cjs/controls/rich-text-v2/control.js.map +1 -1
  29. package/dist/cjs/controls/rich-text-v2/rich-text-v2.js +0 -21
  30. package/dist/cjs/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  31. package/dist/cjs/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js +72 -0
  32. package/dist/cjs/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js.map +1 -0
  33. package/dist/cjs/controls/visitors/message-port-serializer/function-serialization.js +79 -0
  34. package/dist/cjs/controls/visitors/message-port-serializer/function-serialization.js.map +1 -0
  35. package/dist/cjs/controls/visitors/message-port-serializer/index.js +36 -0
  36. package/dist/cjs/controls/visitors/message-port-serializer/index.js.map +1 -0
  37. package/dist/cjs/next/hooks/use-router-locale-sync.js +2 -2
  38. package/dist/cjs/next/hooks/use-router-locale-sync.js.map +1 -1
  39. package/dist/cjs/react/index.js +5 -2
  40. package/dist/cjs/react/index.js.map +1 -1
  41. package/dist/cjs/runtimes/react/components/ElementRegistration.js +4 -3
  42. package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -1
  43. package/dist/cjs/runtimes/react/components/hooks/use-builder-connection-ping.js +5 -10
  44. package/dist/cjs/runtimes/react/components/hooks/use-builder-connection-ping.js.map +1 -1
  45. package/dist/cjs/runtimes/react/element-imperative-handle.js +2 -2
  46. package/dist/cjs/runtimes/react/element-imperative-handle.js.map +1 -1
  47. package/dist/cjs/runtimes/react/hooks/use-cache-data.js +2 -2
  48. package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -1
  49. package/dist/cjs/runtimes/react/hooks/use-register-document.js +5 -4
  50. package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -1
  51. package/dist/cjs/runtimes/react/react-runtime-core.js +4 -3
  52. package/dist/cjs/runtimes/react/react-runtime-core.js.map +1 -1
  53. package/dist/cjs/state/actions/index.js +42 -0
  54. package/dist/cjs/state/actions/index.js.map +1 -0
  55. package/dist/cjs/state/actions/internal.js +174 -0
  56. package/dist/cjs/state/actions/internal.js.map +1 -0
  57. package/dist/cjs/state/builder-api.js +150 -0
  58. package/dist/cjs/state/builder-api.js.map +1 -0
  59. package/dist/cjs/state/host-api.js +103 -0
  60. package/dist/cjs/state/host-api.js.map +1 -0
  61. package/dist/cjs/state/makeswift-api-client.js +4 -2
  62. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  63. package/dist/cjs/state/modules/element-trees.js +14 -4
  64. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  65. package/dist/cjs/state/modules/prop-controllers.js.map +1 -1
  66. package/dist/cjs/state/react-builder-preview.js +21 -18
  67. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  68. package/dist/cjs/state/react-page.js +5 -4
  69. package/dist/cjs/state/react-page.js.map +1 -1
  70. package/dist/cjs/state/shared-api.js +117 -0
  71. package/dist/cjs/state/shared-api.js.map +1 -0
  72. package/dist/cjs/state/translations/merge.js.map +1 -1
  73. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  74. package/dist/esm/builder/breakpoints/index.js +11 -0
  75. package/dist/esm/builder/breakpoints/index.js.map +1 -0
  76. package/dist/esm/builder/core/index.js.map +1 -0
  77. package/dist/esm/builder/index.js +21 -9
  78. package/dist/esm/builder/index.js.map +1 -1
  79. package/dist/esm/builder/serialization/control-serialization.js +10 -3
  80. package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
  81. package/dist/esm/components/builtin/Box/Box.js +1 -1
  82. package/dist/esm/components/builtin/Box/Box.js.map +1 -1
  83. package/dist/esm/components/builtin/Box/animations.js.map +1 -1
  84. package/dist/esm/components/builtin/Form/Form.js +1 -1
  85. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  86. package/dist/esm/components/hooks/useBackgrounds.js.map +1 -1
  87. package/dist/esm/components/hooks/useBorder.js.map +1 -1
  88. package/dist/esm/components/hooks/useBoxShadow.js.map +1 -1
  89. package/dist/esm/components/hooks/useTableFormFieldRefs.js +1 -1
  90. package/dist/esm/components/hooks/useTableFormFieldRefs.js.map +1 -1
  91. package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
  92. package/dist/esm/components/shared/grid-item.js.map +1 -1
  93. package/dist/esm/controls/control.js +1 -1
  94. package/dist/esm/controls/control.js.map +1 -1
  95. package/dist/esm/controls/rich-text-v2/control.js.map +1 -1
  96. package/dist/esm/controls/rich-text-v2/rich-text-v2.js +0 -22
  97. package/dist/esm/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  98. package/dist/esm/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js +53 -0
  99. package/dist/esm/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.js.map +1 -0
  100. package/dist/esm/controls/visitors/message-port-serializer/function-serialization.js +52 -0
  101. package/dist/esm/controls/visitors/message-port-serializer/function-serialization.js.map +1 -0
  102. package/dist/esm/controls/visitors/message-port-serializer/index.js +13 -0
  103. package/dist/esm/controls/visitors/message-port-serializer/index.js.map +1 -0
  104. package/dist/esm/next/hooks/use-router-locale-sync.js +1 -1
  105. package/dist/esm/next/hooks/use-router-locale-sync.js.map +1 -1
  106. package/dist/esm/react/index.js +3 -1
  107. package/dist/esm/react/index.js.map +1 -1
  108. package/dist/esm/runtimes/react/components/ElementRegistration.js +2 -1
  109. package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -1
  110. package/dist/esm/runtimes/react/components/hooks/use-builder-connection-ping.js +5 -10
  111. package/dist/esm/runtimes/react/components/hooks/use-builder-connection-ping.js.map +1 -1
  112. package/dist/esm/runtimes/react/element-imperative-handle.js.map +1 -1
  113. package/dist/esm/runtimes/react/hooks/use-cache-data.js +1 -1
  114. package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -1
  115. package/dist/esm/runtimes/react/hooks/use-register-document.js +2 -5
  116. package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -1
  117. package/dist/esm/runtimes/react/react-runtime-core.js +2 -1
  118. package/dist/esm/runtimes/react/react-runtime-core.js.map +1 -1
  119. package/dist/esm/state/actions/index.js +17 -0
  120. package/dist/esm/state/actions/index.js.map +1 -0
  121. package/dist/esm/state/actions/internal.js +135 -0
  122. package/dist/esm/state/actions/internal.js.map +1 -0
  123. package/dist/esm/state/builder-api.js +110 -0
  124. package/dist/esm/state/builder-api.js.map +1 -0
  125. package/dist/esm/state/host-api.js +68 -0
  126. package/dist/esm/state/host-api.js.map +1 -0
  127. package/dist/esm/state/makeswift-api-client.js +3 -1
  128. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  129. package/dist/esm/state/modules/element-trees.js +1 -1
  130. package/dist/esm/state/modules/element-trees.js.map +1 -1
  131. package/dist/esm/state/modules/prop-controllers.js.map +1 -1
  132. package/dist/esm/state/react-builder-preview.js +10 -8
  133. package/dist/esm/state/react-builder-preview.js.map +1 -1
  134. package/dist/esm/state/react-page.js +3 -7
  135. package/dist/esm/state/react-page.js.map +1 -1
  136. package/dist/esm/state/shared-api.js +83 -0
  137. package/dist/esm/state/shared-api.js.map +1 -0
  138. package/dist/esm/state/translations/merge.js.map +1 -1
  139. package/dist/types/builder/breakpoints/index.d.ts +2 -0
  140. package/dist/types/builder/breakpoints/index.d.ts.map +1 -0
  141. package/dist/types/builder/core/index.d.ts +2 -0
  142. package/dist/types/builder/core/index.d.ts.map +1 -0
  143. package/dist/types/builder/index.d.ts +10 -2
  144. package/dist/types/builder/index.d.ts.map +1 -1
  145. package/dist/types/builder/serialization/control-serialization.d.ts +2 -2
  146. package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
  147. package/dist/types/client/index.d.ts +27 -27
  148. package/dist/types/components/builtin/Box/Box.d.ts +1 -1
  149. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  150. package/dist/types/components/builtin/Box/animations.d.ts +1 -1
  151. package/dist/types/components/builtin/Box/animations.d.ts.map +1 -1
  152. package/dist/types/components/builtin/Form/Form.d.ts +1 -1
  153. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  154. package/dist/types/components/hooks/useBackgrounds.d.ts +1 -1
  155. package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -1
  156. package/dist/types/components/hooks/useBorder.d.ts +1 -1
  157. package/dist/types/components/hooks/useBorder.d.ts.map +1 -1
  158. package/dist/types/components/hooks/useBoxShadow.d.ts +1 -1
  159. package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -1
  160. package/dist/types/components/shared/grid-item.d.ts +1 -1
  161. package/dist/types/components/shared/grid-item.d.ts.map +1 -1
  162. package/dist/types/controls/control.d.ts +1 -2
  163. package/dist/types/controls/control.d.ts.map +1 -1
  164. package/dist/types/controls/rich-text-v2/control.d.ts +1 -2
  165. package/dist/types/controls/rich-text-v2/control.d.ts.map +1 -1
  166. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +1 -2
  167. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  168. package/dist/types/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.d.ts +9 -0
  169. package/dist/types/controls/visitors/message-port-serializer/client-message-port-serialization-visitor.d.ts.map +1 -0
  170. package/dist/types/controls/visitors/message-port-serializer/function-serialization.d.ts +16 -0
  171. package/dist/types/controls/visitors/message-port-serializer/function-serialization.d.ts.map +1 -0
  172. package/dist/types/controls/visitors/message-port-serializer/function-serialization.test.d.ts +2 -0
  173. package/dist/types/controls/visitors/message-port-serializer/function-serialization.test.d.ts.map +1 -0
  174. package/dist/types/controls/visitors/message-port-serializer/index.d.ts +3 -0
  175. package/dist/types/controls/visitors/message-port-serializer/index.d.ts.map +1 -0
  176. package/dist/types/locale.d.ts +1 -1
  177. package/dist/types/react/index.d.ts +1 -0
  178. package/dist/types/react/index.d.ts.map +1 -1
  179. package/dist/types/runtimes/react/components/Document.d.ts +1 -1
  180. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  181. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +1 -1
  182. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -1
  183. package/dist/types/runtimes/react/components/Element.d.ts +1 -1
  184. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  185. package/dist/types/runtimes/react/components/ElementReference.d.ts +1 -1
  186. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  187. package/dist/types/runtimes/react/components/ElementRegistration.d.ts.map +1 -1
  188. package/dist/types/runtimes/react/components/hooks/use-builder-connection-ping.d.ts.map +1 -1
  189. package/dist/types/runtimes/react/element-imperative-handle.d.ts +2 -1
  190. package/dist/types/runtimes/react/element-imperative-handle.d.ts.map +1 -1
  191. package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -1
  192. package/dist/types/runtimes/react/hooks/use-store.d.ts +1 -1
  193. package/dist/types/runtimes/react/react-runtime-core.d.ts.map +1 -1
  194. package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -1
  195. package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
  196. package/dist/types/slate/TypographyPlugin/getValue.d.ts.map +1 -1
  197. package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
  198. package/dist/types/state/actions/index.d.ts +58 -0
  199. package/dist/types/state/actions/index.d.ts.map +1 -0
  200. package/dist/types/state/actions/internal.d.ts +154 -0
  201. package/dist/types/state/actions/internal.d.ts.map +1 -0
  202. package/dist/types/state/builder-api.d.ts +163 -0
  203. package/dist/types/state/builder-api.d.ts.map +1 -0
  204. package/dist/types/state/host-api.d.ts +109 -0
  205. package/dist/types/state/host-api.d.ts.map +1 -0
  206. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  207. package/dist/types/state/modules/prop-controllers.d.ts +1 -1
  208. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  209. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  210. package/dist/types/state/react-page.d.ts.map +1 -1
  211. package/dist/types/state/shared-api.d.ts +104 -0
  212. package/dist/types/state/shared-api.d.ts.map +1 -0
  213. package/dist/types/state/translations/merge.d.ts +1 -1
  214. package/dist/types/state/translations/merge.d.ts.map +1 -1
  215. package/package.json +70 -85
  216. package/box-model/package.json +0 -5
  217. package/core/package.json +0 -5
  218. package/dist/cjs/box-model.js.map +0 -1
  219. package/dist/cjs/core/index.js.map +0 -1
  220. package/dist/cjs/prop-controllers/index.js +0 -48
  221. package/dist/cjs/prop-controllers/index.js.map +0 -1
  222. package/dist/cjs/state/actions.js +0 -423
  223. package/dist/cjs/state/actions.js.map +0 -1
  224. package/dist/esm/box-model.js +0 -7
  225. package/dist/esm/box-model.js.map +0 -1
  226. package/dist/esm/core/index.js.map +0 -1
  227. package/dist/esm/prop-controllers/index.js +0 -11
  228. package/dist/esm/prop-controllers/index.js.map +0 -1
  229. package/dist/esm/state/actions.js +0 -349
  230. package/dist/esm/state/actions.js.map +0 -1
  231. package/dist/types/box-model.d.ts +0 -3
  232. package/dist/types/box-model.d.ts.map +0 -1
  233. package/dist/types/core/index.d.ts +0 -2
  234. package/dist/types/core/index.d.ts.map +0 -1
  235. package/dist/types/prop-controllers/index.d.ts +0 -8
  236. package/dist/types/prop-controllers/index.d.ts.map +0 -1
  237. package/dist/types/state/actions.d.ts +0 -461
  238. package/dist/types/state/actions.d.ts.map +0 -1
  239. package/prop-controllers/package.json +0 -5
  240. package/slate/package.json +0 -5
  241. package/state/breakpoints/package.json +0 -5
  242. /package/dist/cjs/{core → builder/core}/index.js +0 -0
  243. /package/dist/esm/{core → builder/core}/index.js +0 -0
@@ -0,0 +1,52 @@
1
+ function isSerializedFunction(value) {
2
+ return value instanceof MessagePort;
3
+ }
4
+ function serializeFunction(func) {
5
+ const messageChannel = new MessageChannel();
6
+ messageChannel.port1.onmessage = ({ data: [callId, args] }) => {
7
+ Promise.resolve().then(() => func.apply(null, args)).then((result) => messageChannel.port1.postMessage([callId, result]));
8
+ };
9
+ return messageChannel.port2;
10
+ }
11
+ function onmessageHandler() {
12
+ let nextCallId = 0;
13
+ const calls = /* @__PURE__ */ new Map();
14
+ const result = ({ data: [callId, result2] }) => {
15
+ calls.get(callId)?.(result2);
16
+ calls.delete(callId);
17
+ };
18
+ result.newCall = (resolve) => {
19
+ const callId = nextCallId++;
20
+ calls.set(callId, resolve);
21
+ return callId;
22
+ };
23
+ return result;
24
+ }
25
+ function deserializeFunction(serializedFunction) {
26
+ if (serializedFunction.onmessage == null) {
27
+ serializedFunction.onmessage = onmessageHandler();
28
+ }
29
+ return function deserializedFunction(...args) {
30
+ return new Promise((resolve) => {
31
+ const { newCall } = serializedFunction.onmessage;
32
+ if (newCall == null) {
33
+ throw new Error(
34
+ `Deserialized function call failed: 'onmessage' handler is missing 'newCall' method`
35
+ );
36
+ }
37
+ const callId = newCall(resolve);
38
+ serializedFunction.postMessage([callId, args]);
39
+ });
40
+ };
41
+ }
42
+ const functionDeserializationPlugin = {
43
+ match: isSerializedFunction,
44
+ deserialize: (value) => deserializeFunction(value)
45
+ };
46
+ export {
47
+ deserializeFunction,
48
+ functionDeserializationPlugin,
49
+ isSerializedFunction,
50
+ serializeFunction
51
+ };
52
+ //# sourceMappingURL=function-serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/controls/visitors/message-port-serializer/function-serialization.ts"],"sourcesContent":["import {\n DeserializationPlugin,\n type AnyFunction,\n type SerializedFunctionReturnType,\n type DeserializedFunction,\n} from '@makeswift/controls'\n\ndeclare const SerializedFunctionTag: unique symbol\n\ntype ResolveCallPromise<T extends AnyFunction> = (value: SerializedFunctionReturnType<T>) => void\n\ntype OnMessageHandler<T extends AnyFunction> = MessagePort['onmessage'] & {\n newCall?(resolve: ResolveCallPromise<T>): number\n}\n\nexport type SerializedFunction<T extends AnyFunction> = MessagePort & {\n onmessage: OnMessageHandler<T>\n readonly [SerializedFunctionTag]: T\n}\n\nexport function isSerializedFunction(value: any): value is SerializedFunction<AnyFunction> {\n return value instanceof MessagePort\n}\n\ntype CallID = number\n\nexport function serializeFunction<T extends AnyFunction>(func: T): SerializedFunction<T> {\n type CallMessageEvent = MessageEvent<[CallID, Parameters<T>]>\n\n const messageChannel = new MessageChannel()\n\n messageChannel.port1.onmessage = ({ data: [callId, args] }: CallMessageEvent) => {\n Promise.resolve()\n .then(() => func.apply(null, args))\n .then(result => messageChannel.port1.postMessage([callId, result]))\n }\n\n return messageChannel.port2 as SerializedFunction<T>\n}\n\nfunction onmessageHandler<T extends AnyFunction>(): OnMessageHandler<T> {\n type ResultMessageEvent = MessageEvent<[CallID, SerializedFunctionReturnType<T>]>\n let nextCallId = 0\n const calls = new Map<CallID, ResolveCallPromise<T>>()\n\n const result: OnMessageHandler<T> = ({ data: [callId, result] }: ResultMessageEvent) => {\n calls.get(callId)?.(result)\n calls.delete(callId)\n }\n\n result.newCall = (resolve: ResolveCallPromise<T>) => {\n const callId = nextCallId++\n calls.set(callId, resolve)\n return callId\n }\n\n return result\n}\n\nexport function deserializeFunction<T extends AnyFunction>(\n serializedFunction: SerializedFunction<T>,\n): DeserializedFunction<T> {\n if (serializedFunction.onmessage == null) {\n serializedFunction.onmessage = onmessageHandler<T>()\n }\n\n return function deserializedFunction(...args) {\n return new Promise(resolve => {\n const { newCall } = serializedFunction.onmessage\n if (newCall == null) {\n throw new Error(\n `Deserialized function call failed: 'onmessage' handler is missing 'newCall' method`,\n )\n }\n\n const callId = newCall(resolve)\n serializedFunction.postMessage([callId, args])\n })\n }\n}\n\nexport const functionDeserializationPlugin: DeserializationPlugin<\n SerializedFunction<AnyFunction>,\n DeserializedFunction<AnyFunction>\n> = {\n match: isSerializedFunction,\n deserialize: value => deserializeFunction(value),\n}\n"],"mappings":"AAoBO,SAAS,qBAAqB,OAAsD;AACzF,SAAO,iBAAiB;AAC1B;AAIO,SAAS,kBAAyC,MAAgC;AAGvF,QAAM,iBAAiB,IAAI,eAAe;AAE1C,iBAAe,MAAM,YAAY,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,MAAwB;AAC/E,YAAQ,QAAQ,EACb,KAAK,MAAM,KAAK,MAAM,MAAM,IAAI,CAAC,EACjC,KAAK,YAAU,eAAe,MAAM,YAAY,CAAC,QAAQ,MAAM,CAAC,CAAC;AAAA,EACtE;AAEA,SAAO,eAAe;AACxB;AAEA,SAAS,mBAA+D;AAEtE,MAAI,aAAa;AACjB,QAAM,QAAQ,oBAAI,IAAmC;AAErD,QAAM,SAA8B,CAAC,EAAE,MAAM,CAAC,QAAQA,OAAM,EAAE,MAA0B;AACtF,UAAM,IAAI,MAAM,IAAIA,OAAM;AAC1B,UAAM,OAAO,MAAM;AAAA,EACrB;AAEA,SAAO,UAAU,CAAC,YAAmC;AACnD,UAAM,SAAS;AACf,UAAM,IAAI,QAAQ,OAAO;AACzB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,SAAS,oBACd,oBACyB;AACzB,MAAI,mBAAmB,aAAa,MAAM;AACxC,uBAAmB,YAAY,iBAAoB;AAAA,EACrD;AAEA,SAAO,SAAS,wBAAwB,MAAM;AAC5C,WAAO,IAAI,QAAQ,aAAW;AAC5B,YAAM,EAAE,QAAQ,IAAI,mBAAmB;AACvC,UAAI,WAAW,MAAM;AACnB,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAEA,YAAM,SAAS,QAAQ,OAAO;AAC9B,yBAAmB,YAAY,CAAC,QAAQ,IAAI,CAAC;AAAA,IAC/C,CAAC;AAAA,EACH;AACF;AAEO,MAAM,gCAGT;AAAA,EACF,OAAO;AAAA,EACP,aAAa,WAAS,oBAAoB,KAAK;AACjD;","names":["result"]}
@@ -0,0 +1,13 @@
1
+ import { ClientMessagePortSerializationVisitor } from "./client-message-port-serialization-visitor";
2
+ import {
3
+ serializeFunction,
4
+ deserializeFunction,
5
+ functionDeserializationPlugin
6
+ } from "./function-serialization";
7
+ export {
8
+ ClientMessagePortSerializationVisitor,
9
+ deserializeFunction,
10
+ functionDeserializationPlugin,
11
+ serializeFunction
12
+ };
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/controls/visitors/message-port-serializer/index.ts"],"sourcesContent":["export { ClientMessagePortSerializationVisitor } from './client-message-port-serialization-visitor'\nexport {\n serializeFunction,\n deserializeFunction,\n functionDeserializationPlugin,\n} from './function-serialization'\n"],"mappings":"AAAA,SAAS,6CAA6C;AACtD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import { useRouter as usePagesRouter } from "next/router";
2
2
  import { P, match } from "ts-pattern";
3
3
  import { useEffect } from "react";
4
- import { setLocale } from "../../state/actions";
4
+ import { setLocale } from "../../state/shared-api";
5
5
  import { useDispatch } from "../../runtimes/react/hooks/use-dispatch";
6
6
  function useRouter() {
7
7
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/next/hooks/use-router-locale-sync.ts"],"sourcesContent":["import { useRouter as usePagesRouter } from 'next/router'\nimport { P, match } from 'ts-pattern'\nimport { useEffect } from 'react'\n\nimport { setLocale } from '../../state/actions'\nimport { useDispatch } from '../../runtimes/react/hooks/use-dispatch'\n\nfunction useRouter() {\n try {\n const router = usePagesRouter()\n\n return router\n } catch (e) {\n return\n }\n}\n\nexport const useRouterLocaleSync = () => {\n const router = useRouter()\n const dispatch = useDispatch()\n\n useEffect(() => {\n match(router)\n .with({ locale: P.string }, ({ locale }) => dispatch(setLocale(new Intl.Locale(locale))))\n .otherwise(() => {})\n }, [router])\n}\n"],"mappings":"AAAA,SAAS,aAAa,sBAAsB;AAC5C,SAAS,GAAG,aAAa;AACzB,SAAS,iBAAiB;AAE1B,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAE5B,SAAS,YAAY;AACnB,MAAI;AACF,UAAM,SAAS,eAAe;AAE9B,WAAO;AAAA,EACT,SAAS,GAAG;AACV;AAAA,EACF;AACF;AAEO,MAAM,sBAAsB,MAAM;AACvC,QAAM,SAAS,UAAU;AACzB,QAAM,WAAW,YAAY;AAE7B,YAAU,MAAM;AACd,UAAM,MAAM,EACT,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,MAAM,SAAS,UAAU,IAAI,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,EACvF,UAAU,MAAM;AAAA,IAAC,CAAC;AAAA,EACvB,GAAG,CAAC,MAAM,CAAC;AACb;","names":[]}
1
+ {"version":3,"sources":["../../../../src/next/hooks/use-router-locale-sync.ts"],"sourcesContent":["import { useRouter as usePagesRouter } from 'next/router'\nimport { P, match } from 'ts-pattern'\nimport { useEffect } from 'react'\n\nimport { setLocale } from '../../state/shared-api'\nimport { useDispatch } from '../../runtimes/react/hooks/use-dispatch'\n\nfunction useRouter() {\n try {\n const router = usePagesRouter()\n\n return router\n } catch (e) {\n return\n }\n}\n\nexport const useRouterLocaleSync = () => {\n const router = useRouter()\n const dispatch = useDispatch()\n\n useEffect(() => {\n match(router)\n .with({ locale: P.string }, ({ locale }) => dispatch(setLocale(new Intl.Locale(locale))))\n .otherwise(() => {})\n }, [router])\n}\n"],"mappings":"AAAA,SAAS,aAAa,sBAAsB;AAC5C,SAAS,GAAG,aAAa;AACzB,SAAS,iBAAiB;AAE1B,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAE5B,SAAS,YAAY;AACnB,MAAI;AACF,UAAM,SAAS,eAAe;AAE9B,WAAO;AAAA,EACT,SAAS,GAAG;AACV;AAAA,EACF;AACF;AAEO,MAAM,sBAAsB,MAAM;AACvC,QAAM,SAAS,UAAU;AACzB,QAAM,WAAW,YAAY;AAE7B,YAAU,MAAM;AACd,UAAM,MAAM,EACT,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,MAAM,SAAS,UAAU,IAAI,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,EACvF,UAAU,MAAM;AAAA,IAAC,CAAC;AAAA,EACvB,GAAG,CAAC,MAAM,CAAC;AACb;","names":[]}
@@ -1,5 +1,7 @@
1
1
  import { ReactRuntime } from "../runtimes/react";
2
+ import { useIsInBuilder } from "../runtimes/react/hooks/use-is-in-builder";
2
3
  export {
3
- ReactRuntime
4
+ ReactRuntime,
5
+ useIsInBuilder
4
6
  };
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/react/index.ts"],"sourcesContent":["export { ReactRuntime } from '../runtimes/react'\n"],"mappings":"AAAA,SAAS,oBAAoB;","names":[]}
1
+ {"version":3,"sources":["../../../src/react/index.ts"],"sourcesContent":["export { ReactRuntime } from '../runtimes/react'\nexport { useIsInBuilder } from '../runtimes/react/hooks/use-is-in-builder'\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;","names":[]}
@@ -4,7 +4,8 @@ import { memo, useEffect } from "react";
4
4
  import { useDispatch } from "../hooks/use-dispatch";
5
5
  import { useDocumentKey } from "../hooks/use-document-context";
6
6
  import { useDisableRegisterElement } from "../hooks/use-disable-register-element";
7
- import { mountComponentEffect, registerComponentHandleEffect } from "../../../state/actions";
7
+ import { mountComponentEffect } from "../../../state/builder-api";
8
+ import { registerComponentHandleEffect } from "../../../state/actions/internal";
8
9
  const ElementRegistration = memo(function ElementRegistration2({
9
10
  elementKey,
10
11
  componentHandle,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/components/ElementRegistration.tsx"],"sourcesContent":["'use client'\n\nimport { ReactNode, memo, useEffect } from 'react'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { useDispatch } from '../hooks/use-dispatch'\nimport { useDocumentKey } from '../hooks/use-document-context'\nimport { useDisableRegisterElement } from '../hooks/use-disable-register-element'\nimport { mountComponentEffect, registerComponentHandleEffect } from '../../../state/actions'\n\ntype RegisterChildrenAsElementProps = {\n elementKey: string\n componentHandle: ElementImperativeHandle\n children?: ReactNode\n}\n\nexport const ElementRegistration = memo(function ElementRegistration({\n elementKey,\n componentHandle,\n children,\n}: RegisterChildrenAsElementProps): JSX.Element {\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n\n const isRegisterElementDisabled = useDisableRegisterElement()\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(registerComponentHandleEffect(documentKey, elementKey, componentHandle))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(mountComponentEffect(documentKey, elementKey))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\n\n return <>{children}</>\n})\n"],"mappings":";AAqCS;AAnCT,SAAoB,MAAM,iBAAiB;AAE3C,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,iCAAiC;AAC1C,SAAS,sBAAsB,qCAAqC;AAQ7D,MAAM,sBAAsB,KAAK,SAASA,qBAAoB;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AACF,GAAgD;AAC9C,QAAM,WAAW,YAAY;AAC7B,QAAM,cAAc,eAAe;AAEnC,QAAM,4BAA4B,0BAA0B;AAE5D,YAAU,MAAM;AACd,QAAI,eAAe,QAAQ;AAA2B;AAEtD,WAAO,SAAS,8BAA8B,aAAa,YAAY,eAAe,CAAC;AAAA,EACzF,GAAG,CAAC,UAAU,aAAa,YAAY,yBAAyB,CAAC;AAEjE,YAAU,MAAM;AACd,QAAI,eAAe,QAAQ;AAA2B;AAEtD,WAAO,SAAS,qBAAqB,aAAa,UAAU,CAAC;AAAA,EAC/D,GAAG,CAAC,UAAU,aAAa,YAAY,yBAAyB,CAAC;AAEjE,SAAO,gCAAG,UAAS;AACrB,CAAC;","names":["ElementRegistration"]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/components/ElementRegistration.tsx"],"sourcesContent":["'use client'\n\nimport { ReactNode, memo, useEffect } from 'react'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { useDispatch } from '../hooks/use-dispatch'\nimport { useDocumentKey } from '../hooks/use-document-context'\nimport { useDisableRegisterElement } from '../hooks/use-disable-register-element'\nimport { mountComponentEffect } from '../../../state/builder-api'\nimport { registerComponentHandleEffect } from '../../../state/actions/internal'\n\ntype RegisterChildrenAsElementProps = {\n elementKey: string\n componentHandle: ElementImperativeHandle\n children?: ReactNode\n}\n\nexport const ElementRegistration = memo(function ElementRegistration({\n elementKey,\n componentHandle,\n children,\n}: RegisterChildrenAsElementProps): JSX.Element {\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n\n const isRegisterElementDisabled = useDisableRegisterElement()\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(registerComponentHandleEffect(documentKey, elementKey, componentHandle))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(mountComponentEffect(documentKey, elementKey))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\n\n return <>{children}</>\n})\n"],"mappings":";AAsCS;AApCT,SAAoB,MAAM,iBAAiB;AAE3C,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,iCAAiC;AAC1C,SAAS,4BAA4B;AACrC,SAAS,qCAAqC;AAQvC,MAAM,sBAAsB,KAAK,SAASA,qBAAoB;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AACF,GAAgD;AAC9C,QAAM,WAAW,YAAY;AAC7B,QAAM,cAAc,eAAe;AAEnC,QAAM,4BAA4B,0BAA0B;AAE5D,YAAU,MAAM;AACd,QAAI,eAAe,QAAQ;AAA2B;AAEtD,WAAO,SAAS,8BAA8B,aAAa,YAAY,eAAe,CAAC;AAAA,EACzF,GAAG,CAAC,UAAU,aAAa,YAAY,yBAAyB,CAAC;AAEjE,YAAU,MAAM;AACd,QAAI,eAAe,QAAQ;AAA2B;AAEtD,WAAO,SAAS,qBAAqB,aAAa,UAAU,CAAC;AAAA,EAC/D,GAAG,CAAC,UAAU,aAAa,YAAY,yBAAyB,CAAC;AAEjE,SAAO,gCAAG,UAAS;AACrB,CAAC;","names":["ElementRegistration"]}
@@ -1,15 +1,13 @@
1
1
  import { useEffect } from "react";
2
- import { ActionTypes } from "../../../../state/actions";
2
+ import { makeswiftConnectionCheck } from "../../../../state/builder-api";
3
+ import { SharedActionTypes, makeswiftConnectionInit } from "../../../../state/shared-api";
3
4
  const CONNECTION_PING_INTERVAL_MS = 20;
4
5
  function useBuilderConnectionPing({ appOrigin }) {
5
6
  useEffect(() => {
6
7
  let connectionInterval;
7
8
  if (window.parent !== window) {
8
9
  window.addEventListener("message", messageHandler);
9
- window.parent.postMessage(
10
- { type: ActionTypes.MAKESWIFT_CONNECTION_INIT },
11
- { targetOrigin: appOrigin }
12
- );
10
+ window.parent.postMessage(makeswiftConnectionInit(), { targetOrigin: appOrigin });
13
11
  }
14
12
  return () => {
15
13
  window.removeEventListener("message", messageHandler);
@@ -19,17 +17,14 @@ function useBuilderConnectionPing({ appOrigin }) {
19
17
  }
20
18
  };
21
19
  function messageHandler(event) {
22
- if (event.origin === appOrigin && event.data.type === ActionTypes.MAKESWIFT_CONNECTION_INIT) {
20
+ if (event.origin === appOrigin && event.data.type === SharedActionTypes.MAKESWIFT_CONNECTION_INIT) {
23
21
  if (connectionInterval != null) {
24
22
  window.clearInterval(connectionInterval);
25
23
  connectionInterval = null;
26
24
  }
27
25
  connectionInterval = window.setInterval(() => {
28
26
  window.parent.postMessage(
29
- {
30
- type: ActionTypes.MAKESWIFT_CONNECTION_CHECK,
31
- payload: { currentUrl: window.location.href }
32
- },
27
+ makeswiftConnectionCheck({ currentUrl: window.location.href }),
33
28
  { targetOrigin: appOrigin }
34
29
  );
35
30
  }, CONNECTION_PING_INTERVAL_MS);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/runtimes/react/components/hooks/use-builder-connection-ping.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { ActionTypes } from '../../../../state/actions'\n\nconst CONNECTION_PING_INTERVAL_MS = 20\n\nexport function useBuilderConnectionPing({ appOrigin }: { appOrigin: string }) {\n useEffect(() => {\n let connectionInterval: number | null\n\n if (window.parent !== window) {\n window.addEventListener('message', messageHandler)\n window.parent.postMessage(\n { type: ActionTypes.MAKESWIFT_CONNECTION_INIT },\n { targetOrigin: appOrigin },\n )\n }\n\n return () => {\n window.removeEventListener('message', messageHandler)\n if (connectionInterval != null) {\n window.clearInterval(connectionInterval)\n connectionInterval = null\n }\n }\n\n function messageHandler(event: MessageEvent): void {\n if (event.origin === appOrigin && event.data.type === ActionTypes.MAKESWIFT_CONNECTION_INIT) {\n if (connectionInterval != null) {\n window.clearInterval(connectionInterval)\n connectionInterval = null\n }\n\n connectionInterval = window.setInterval(() => {\n window.parent.postMessage(\n {\n type: ActionTypes.MAKESWIFT_CONNECTION_CHECK,\n payload: { currentUrl: window.location.href },\n },\n { targetOrigin: appOrigin },\n )\n }, CONNECTION_PING_INTERVAL_MS)\n }\n }\n }, [appOrigin])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAE5B,MAAM,8BAA8B;AAE7B,SAAS,yBAAyB,EAAE,UAAU,GAA0B;AAC7E,YAAU,MAAM;AACd,QAAI;AAEJ,QAAI,OAAO,WAAW,QAAQ;AAC5B,aAAO,iBAAiB,WAAW,cAAc;AACjD,aAAO,OAAO;AAAA,QACZ,EAAE,MAAM,YAAY,0BAA0B;AAAA,QAC9C,EAAE,cAAc,UAAU;AAAA,MAC5B;AAAA,IACF;AAEA,WAAO,MAAM;AACX,aAAO,oBAAoB,WAAW,cAAc;AACpD,UAAI,sBAAsB,MAAM;AAC9B,eAAO,cAAc,kBAAkB;AACvC,6BAAqB;AAAA,MACvB;AAAA,IACF;AAEA,aAAS,eAAe,OAA2B;AACjD,UAAI,MAAM,WAAW,aAAa,MAAM,KAAK,SAAS,YAAY,2BAA2B;AAC3F,YAAI,sBAAsB,MAAM;AAC9B,iBAAO,cAAc,kBAAkB;AACvC,+BAAqB;AAAA,QACvB;AAEA,6BAAqB,OAAO,YAAY,MAAM;AAC5C,iBAAO,OAAO;AAAA,YACZ;AAAA,cACE,MAAM,YAAY;AAAA,cAClB,SAAS,EAAE,YAAY,OAAO,SAAS,KAAK;AAAA,YAC9C;AAAA,YACA,EAAE,cAAc,UAAU;AAAA,UAC5B;AAAA,QACF,GAAG,2BAA2B;AAAA,MAChC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AAChB;","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/runtimes/react/components/hooks/use-builder-connection-ping.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { makeswiftConnectionCheck } from '../../../../state/builder-api'\nimport { SharedActionTypes, makeswiftConnectionInit } from '../../../../state/shared-api'\n\nconst CONNECTION_PING_INTERVAL_MS = 20\n\nexport function useBuilderConnectionPing({ appOrigin }: { appOrigin: string }) {\n useEffect(() => {\n let connectionInterval: number | null\n\n if (window.parent !== window) {\n window.addEventListener('message', messageHandler)\n window.parent.postMessage(makeswiftConnectionInit(), { targetOrigin: appOrigin })\n }\n\n return () => {\n window.removeEventListener('message', messageHandler)\n if (connectionInterval != null) {\n window.clearInterval(connectionInterval)\n connectionInterval = null\n }\n }\n\n function messageHandler(event: MessageEvent): void {\n if (\n event.origin === appOrigin &&\n event.data.type === SharedActionTypes.MAKESWIFT_CONNECTION_INIT\n ) {\n if (connectionInterval != null) {\n window.clearInterval(connectionInterval)\n connectionInterval = null\n }\n\n connectionInterval = window.setInterval(() => {\n window.parent.postMessage(\n makeswiftConnectionCheck({ currentUrl: window.location.href }),\n { targetOrigin: appOrigin },\n )\n }, CONNECTION_PING_INTERVAL_MS)\n }\n }\n }, [appOrigin])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAC1B,SAAS,gCAAgC;AACzC,SAAS,mBAAmB,+BAA+B;AAE3D,MAAM,8BAA8B;AAE7B,SAAS,yBAAyB,EAAE,UAAU,GAA0B;AAC7E,YAAU,MAAM;AACd,QAAI;AAEJ,QAAI,OAAO,WAAW,QAAQ;AAC5B,aAAO,iBAAiB,WAAW,cAAc;AACjD,aAAO,OAAO,YAAY,wBAAwB,GAAG,EAAE,cAAc,UAAU,CAAC;AAAA,IAClF;AAEA,WAAO,MAAM;AACX,aAAO,oBAAoB,WAAW,cAAc;AACpD,UAAI,sBAAsB,MAAM;AAC9B,eAAO,cAAc,kBAAkB;AACvC,6BAAqB;AAAA,MACvB;AAAA,IACF;AAEA,aAAS,eAAe,OAA2B;AACjD,UACE,MAAM,WAAW,aACjB,MAAM,KAAK,SAAS,kBAAkB,2BACtC;AACA,YAAI,sBAAsB,MAAM;AAC9B,iBAAO,cAAc,kBAAkB;AACvC,+BAAqB;AAAA,QACvB;AAEA,6BAAqB,OAAO,YAAY,MAAM;AAC5C,iBAAO,OAAO;AAAA,YACZ,yBAAyB,EAAE,YAAY,OAAO,SAAS,KAAK,CAAC;AAAA,YAC7D,EAAE,cAAc,UAAU;AAAA,UAC5B;AAAA,QACF,GAAG,2BAA2B;AAAA,MAChC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AAChB;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/react/element-imperative-handle.ts"],"sourcesContent":["import { BoxModel, BoxModelHandle } from '../../box-model'\nimport { Descriptor } from '../../prop-controllers/descriptors'\nimport { DescriptorsPropControllers } from '../../prop-controllers/instances'\nimport { isMeasurable, measure } from '../../state/modules/box-models'\nimport {\n isPropControllersHandle,\n PropControllersHandle,\n} from '../../state/modules/prop-controller-handles'\n\nexport class ElementImperativeHandle<\n T extends Record<string, Descriptor> = Record<string, Descriptor>,\n >\n implements BoxModelHandle, PropControllersHandle<T>\n{\n private getCurrent: () => unknown = () => null\n private lastPropControllers: DescriptorsPropControllers<T> | null = null\n\n callback(getCurrent: () => unknown) {\n const current = this.getCurrent()\n\n if (current === null) this.setPropControllers(null)\n\n this.getCurrent = getCurrent\n\n if (this.lastPropControllers !== null) this.setPropControllers(this.lastPropControllers)\n }\n\n getBoxModel(): BoxModel | null {\n const current = this.getCurrent()\n\n return isMeasurable(current) ? measure(current) : null\n }\n\n setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void {\n const current = this.getCurrent()\n\n if (isPropControllersHandle(current)) current.setPropControllers(propControllers)\n\n this.lastPropControllers = propControllers\n }\n\n getDomNode(): Element | null {\n const current = this.getCurrent()\n\n if (isDomNodeHandle(current)) return current.getDomNode()\n\n return current instanceof Element ? current : null\n }\n}\n\ntype DomNodeHandle = {\n getDomNode(): Element | null\n}\n\nexport function isDomNodeHandle(value: unknown): value is DomNodeHandle {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getDomNode' in value &&\n typeof (value as { getDomNode: unknown }).getDomNode === 'function'\n ) {\n return true\n }\n\n return false\n}\n"],"mappings":"AAGA,SAAS,cAAc,eAAe;AACtC;AAAA,EACE;AAAA,OAEK;AAEA,MAAM,wBAIb;AAAA,EACU,aAA4B,MAAM;AAAA,EAClC,sBAA4D;AAAA,EAEpE,SAAS,YAA2B;AAClC,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,YAAY;AAAM,WAAK,mBAAmB,IAAI;AAElD,SAAK,aAAa;AAElB,QAAI,KAAK,wBAAwB;AAAM,WAAK,mBAAmB,KAAK,mBAAmB;AAAA,EACzF;AAAA,EAEA,cAA+B;AAC7B,UAAM,UAAU,KAAK,WAAW;AAEhC,WAAO,aAAa,OAAO,IAAI,QAAQ,OAAO,IAAI;AAAA,EACpD;AAAA,EAEA,mBAAmB,iBAA6D;AAC9E,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,wBAAwB,OAAO;AAAG,cAAQ,mBAAmB,eAAe;AAEhF,SAAK,sBAAsB;AAAA,EAC7B;AAAA,EAEA,aAA6B;AAC3B,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,gBAAgB,OAAO;AAAG,aAAO,QAAQ,WAAW;AAExD,WAAO,mBAAmB,UAAU,UAAU;AAAA,EAChD;AACF;AAMO,SAAS,gBAAgB,OAAwC;AACtE,MACE,OAAO,UAAU,YACjB,UAAU,QACV,gBAAgB,SAChB,OAAQ,MAAkC,eAAe,YACzD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/react/element-imperative-handle.ts"],"sourcesContent":["import { BoxModel } from '@makeswift/controls'\nimport { BoxModelHandle } from '../../state/modules/box-models'\nimport { Descriptor } from '../../prop-controllers/descriptors'\nimport { DescriptorsPropControllers } from '../../prop-controllers/instances'\nimport { isMeasurable, measure } from '../../state/modules/box-models'\nimport {\n isPropControllersHandle,\n PropControllersHandle,\n} from '../../state/modules/prop-controller-handles'\n\nexport class ElementImperativeHandle<\n T extends Record<string, Descriptor> = Record<string, Descriptor>,\n >\n implements BoxModelHandle, PropControllersHandle<T>\n{\n private getCurrent: () => unknown = () => null\n private lastPropControllers: DescriptorsPropControllers<T> | null = null\n\n callback(getCurrent: () => unknown) {\n const current = this.getCurrent()\n\n if (current === null) this.setPropControllers(null)\n\n this.getCurrent = getCurrent\n\n if (this.lastPropControllers !== null) this.setPropControllers(this.lastPropControllers)\n }\n\n getBoxModel(): BoxModel | null {\n const current = this.getCurrent()\n\n return isMeasurable(current) ? measure(current) : null\n }\n\n setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void {\n const current = this.getCurrent()\n\n if (isPropControllersHandle(current)) current.setPropControllers(propControllers)\n\n this.lastPropControllers = propControllers\n }\n\n getDomNode(): Element | null {\n const current = this.getCurrent()\n\n if (isDomNodeHandle(current)) return current.getDomNode()\n\n return current instanceof Element ? current : null\n }\n}\n\ntype DomNodeHandle = {\n getDomNode(): Element | null\n}\n\nexport function isDomNodeHandle(value: unknown): value is DomNodeHandle {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getDomNode' in value &&\n typeof (value as { getDomNode: unknown }).getDomNode === 'function'\n ) {\n return true\n }\n\n return false\n}\n"],"mappings":"AAIA,SAAS,cAAc,eAAe;AACtC;AAAA,EACE;AAAA,OAEK;AAEA,MAAM,wBAIb;AAAA,EACU,aAA4B,MAAM;AAAA,EAClC,sBAA4D;AAAA,EAEpE,SAAS,YAA2B;AAClC,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,YAAY;AAAM,WAAK,mBAAmB,IAAI;AAElD,SAAK,aAAa;AAElB,QAAI,KAAK,wBAAwB;AAAM,WAAK,mBAAmB,KAAK,mBAAmB;AAAA,EACzF;AAAA,EAEA,cAA+B;AAC7B,UAAM,UAAU,KAAK,WAAW;AAEhC,WAAO,aAAa,OAAO,IAAI,QAAQ,OAAO,IAAI;AAAA,EACpD;AAAA,EAEA,mBAAmB,iBAA6D;AAC9E,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,wBAAwB,OAAO;AAAG,cAAQ,mBAAmB,eAAe;AAEhF,SAAK,sBAAsB;AAAA,EAC7B;AAAA,EAEA,aAA6B;AAC3B,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,gBAAgB,OAAO;AAAG,aAAO,QAAQ,WAAW;AAExD,WAAO,mBAAmB,UAAU,UAAU;AAAA,EAChD;AACF;AAMO,SAAS,gBAAgB,OAAwC;AACtE,MACE,OAAO,UAAU,YACjB,UAAU,QACV,gBAAgB,SAChB,OAAQ,MAAkC,eAAe,YACzD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import { useMemo } from "react";
2
- import { updateAPIClientCache } from "../../../state/actions";
2
+ import { updateAPIClientCache } from "../../../state/actions/internal";
3
3
  import { useMakeswiftHostApiClient } from "../host-api-client";
4
4
  function useCacheData(cacheData) {
5
5
  const { makeswiftApiClient: apiStore } = useMakeswiftHostApiClient();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-cache-data.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { type CacheData } from '../../../api/react'\nimport { updateAPIClientCache } from '../../../state/actions'\n\nimport { useMakeswiftHostApiClient } from '../host-api-client'\n\nexport function useCacheData(cacheData: CacheData) {\n const { makeswiftApiClient: apiStore } = useMakeswiftHostApiClient()\n\n // We perform cache hydration immediately on render - this is safe to do per\n // render because updating the API cache is idempotent. For precedence, see:\n //\n // https://github.com/TanStack/query/blob/8f9f183f11df3709a1a38c4efce1452788041f88/packages/react-query/src/HydrationBoundary.tsx#L41\n useMemo(() => apiStore.dispatch(updateAPIClientCache(cacheData)), [cacheData])\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAExB,SAAS,4BAA4B;AAErC,SAAS,iCAAiC;AAEnC,SAAS,aAAa,WAAsB;AACjD,QAAM,EAAE,oBAAoB,SAAS,IAAI,0BAA0B;AAMnE,UAAQ,MAAM,SAAS,SAAS,qBAAqB,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC/E;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-cache-data.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { type CacheData } from '../../../api/react'\nimport { updateAPIClientCache } from '../../../state/actions/internal'\n\nimport { useMakeswiftHostApiClient } from '../host-api-client'\n\nexport function useCacheData(cacheData: CacheData) {\n const { makeswiftApiClient: apiStore } = useMakeswiftHostApiClient()\n\n // We perform cache hydration immediately on render - this is safe to do per\n // render because updating the API cache is idempotent. For precedence, see:\n //\n // https://github.com/TanStack/query/blob/8f9f183f11df3709a1a38c4efce1452788041f88/packages/react-query/src/HydrationBoundary.tsx#L41\n useMemo(() => apiStore.dispatch(updateAPIClientCache(cacheData)), [cacheData])\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAExB,SAAS,4BAA4B;AAErC,SAAS,iCAAiC;AAEnC,SAAS,aAAa,WAAsB;AACjD,QAAM,EAAE,oBAAoB,SAAS,IAAI,0BAA0B;AAMnE,UAAQ,MAAM,SAAS,SAAS,qBAAqB,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC/E;","names":[]}
@@ -1,11 +1,8 @@
1
1
  import { useEffect } from "react";
2
2
  import { useDispatch } from "./use-dispatch";
3
3
  import { useIsInBuilder } from "./use-is-in-builder";
4
- import {
5
- registerBuilderDocumentsEffect,
6
- registerDocument,
7
- registerDocumentsEffect
8
- } from "../../../state/actions";
4
+ import { registerDocument, registerDocumentsEffect } from "../../../state/shared-api";
5
+ import { registerBuilderDocumentsEffect } from "../../../state/builder-api";
9
6
  import { isServer } from "../../../utils/is-server";
10
7
  import { useIsomorphicLayoutEffect } from "../../../components/hooks/useIsomorphicLayoutEffect";
11
8
  function useRegisterDocument(document) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport {\n registerBuilderDocumentsEffect,\n registerDocument,\n registerDocumentsEffect,\n} from '../../../state/actions'\nimport { isServer } from '../../../utils/is-server'\nimport { useIsomorphicLayoutEffect } from '../../../components/hooks/useIsomorphicLayoutEffect'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n if (isServer()) {\n dispatch(registerDocument(document))\n }\n\n /*\n Layout effect is to ensure that the document registration happens prior to the\n attempted creation/registration of prop controllers in child components.\n */\n useIsomorphicLayoutEffect(() => {\n return dispatch(registerDocumentsEffect([document]))\n }, [dispatch, document])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect([document]))\n }, [isInBuilder, document])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAE1B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,gBAAgB;AACzB,SAAS,iCAAiC;AAKnC,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,YAAY;AAE7B,MAAI,SAAS,GAAG;AACd,aAAS,iBAAiB,QAAQ,CAAC;AAAA,EACrC;AAMA,4BAA0B,MAAM;AAC9B,WAAO,SAAS,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AAAA,EACrD,GAAG,CAAC,UAAU,QAAQ,CAAC;AAIvB,YAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,SAAS,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC5D,GAAG,CAAC,aAAa,QAAQ,CAAC;AAC5B;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport { registerDocument, registerDocumentsEffect } from '../../../state/shared-api'\nimport { registerBuilderDocumentsEffect } from '../../../state/builder-api'\n\nimport { isServer } from '../../../utils/is-server'\nimport { useIsomorphicLayoutEffect } from '../../../components/hooks/useIsomorphicLayoutEffect'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n if (isServer()) {\n dispatch(registerDocument(document))\n }\n\n /*\n Layout effect is to ensure that the document registration happens prior to the\n attempted creation/registration of prop controllers in child components.\n */\n useIsomorphicLayoutEffect(() => {\n return dispatch(registerDocumentsEffect([document]))\n }, [dispatch, document])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect([document]))\n }, [isInBuilder, document])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAE1B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB,+BAA+B;AAC1D,SAAS,sCAAsC;AAE/C,SAAS,gBAAgB;AACzB,SAAS,iCAAiC;AAKnC,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,YAAY;AAE7B,MAAI,SAAS,GAAG;AACd,aAAS,iBAAiB,QAAQ,CAAC;AAAA,EACrC;AAMA,4BAA0B,MAAM;AAC9B,WAAO,SAAS,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AAAA,EACrD,GAAG,CAAC,UAAU,QAAQ,CAAC;AAIvB,YAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,SAAS,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC5D,GAAG,CAAC,aAAa,QAAQ,CAAC;AAC5B;","names":[]}
@@ -1,4 +1,5 @@
1
- import { registerComponentEffect, registerReactComponentEffect } from "../../state/actions";
1
+ import { registerComponentEffect } from "../../state/shared-api";
2
+ import { registerReactComponentEffect } from "../../state/actions/internal";
2
3
  import { ComponentIcon } from "../../state/modules/components-meta";
3
4
  import { RuntimeCore } from "./runtime-core";
4
5
  function validateComponentType(type, component) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/react/react-runtime-core.ts"],"sourcesContent":["import { ControlDefinition as UnifiedControlDefinition } from '@makeswift/controls'\n\nimport { type LegacyDescriptor, type DescriptorValueType } from '../../prop-controllers/descriptors'\n\nimport { registerComponentEffect, registerReactComponentEffect } from '../../state/actions'\nimport { BreakpointsInput } from '../../state/modules/breakpoints'\nimport { ComponentIcon } from '../../state/modules/components-meta'\nimport type { ComponentType } from '../../state/react-page'\n\nimport { RuntimeCore } from './runtime-core'\n\nfunction validateComponentType(type: string, component?: ComponentType): void {\n const componentName = component?.name ?? 'Component'\n if (typeof type !== 'string' || type === '') {\n throw new Error(\n `${componentName}: A non-empty string \\`type\\` is required for component registration, got ${type}`,\n )\n }\n}\n\nexport class ReactRuntimeCore extends RuntimeCore {\n registerComponent<\n ControlDef extends UnifiedControlDefinition,\n P extends Record<string, LegacyDescriptor | ControlDef>,\n C extends ComponentType<{ [K in keyof P]: DescriptorValueType<P[K]> }>,\n >(\n component: C,\n {\n type,\n label,\n icon = ComponentIcon.Cube,\n hidden = false,\n description,\n builtinSuspense,\n props,\n }: {\n type: string\n label: string\n icon?: ComponentIcon\n hidden?: boolean\n description?: string\n builtinSuspense?: boolean\n props?: P\n },\n ): () => void {\n validateComponentType(type, component as unknown as ComponentType)\n\n const unregisterComponent = this.store.dispatch(\n registerComponentEffect(\n type,\n { label, icon, hidden, description, builtinSuspense },\n props ?? {},\n ),\n )\n\n const unregisterReactComponent = this.store.dispatch(\n registerReactComponentEffect(type, component as unknown as ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n }\n\n constructor({ breakpoints }: { breakpoints?: BreakpointsInput } = {}) {\n super({ breakpoints })\n }\n}\n"],"mappings":"AAIA,SAAS,yBAAyB,oCAAoC;AAEtE,SAAS,qBAAqB;AAG9B,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB,MAAc,WAAiC;AAC5E,QAAM,gBAAgB,WAAW,QAAQ;AACzC,MAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C,UAAM,IAAI;AAAA,MACR,GAAG,aAAa,6EAA6E,IAAI;AAAA,IACnG;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB,YAAY;AAAA,EAChD,kBAKE,WACA;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO,cAAc;AAAA,IACrB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF,GASY;AACZ,0BAAsB,MAAM,SAAqC;AAEjE,UAAM,sBAAsB,KAAK,MAAM;AAAA,MACrC;AAAA,QACE;AAAA,QACA,EAAE,OAAO,MAAM,QAAQ,aAAa,gBAAgB;AAAA,QACpD,SAAS,CAAC;AAAA,MACZ;AAAA,IACF;AAEA,UAAM,2BAA2B,KAAK,MAAM;AAAA,MAC1C,6BAA6B,MAAM,SAAqC;AAAA,IAC1E;AAEA,WAAO,MAAM;AACX,0BAAoB;AACpB,+BAAyB;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,YAAY,EAAE,YAAY,IAAwC,CAAC,GAAG;AACpE,UAAM,EAAE,YAAY,CAAC;AAAA,EACvB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/react/react-runtime-core.ts"],"sourcesContent":["import { ControlDefinition as UnifiedControlDefinition } from '@makeswift/controls'\n\nimport { type LegacyDescriptor, type DescriptorValueType } from '../../prop-controllers/descriptors'\n\nimport { registerComponentEffect } from '../../state/shared-api'\nimport { registerReactComponentEffect } from '../../state/actions/internal'\n\nimport { BreakpointsInput } from '../../state/modules/breakpoints'\nimport { ComponentIcon } from '../../state/modules/components-meta'\nimport type { ComponentType } from '../../state/react-page'\n\nimport { RuntimeCore } from './runtime-core'\n\nfunction validateComponentType(type: string, component?: ComponentType): void {\n const componentName = component?.name ?? 'Component'\n if (typeof type !== 'string' || type === '') {\n throw new Error(\n `${componentName}: A non-empty string \\`type\\` is required for component registration, got ${type}`,\n )\n }\n}\n\nexport class ReactRuntimeCore extends RuntimeCore {\n registerComponent<\n ControlDef extends UnifiedControlDefinition,\n P extends Record<string, LegacyDescriptor | ControlDef>,\n C extends ComponentType<{ [K in keyof P]: DescriptorValueType<P[K]> }>,\n >(\n component: C,\n {\n type,\n label,\n icon = ComponentIcon.Cube,\n hidden = false,\n description,\n builtinSuspense,\n props,\n }: {\n type: string\n label: string\n icon?: ComponentIcon\n hidden?: boolean\n description?: string\n builtinSuspense?: boolean\n props?: P\n },\n ): () => void {\n validateComponentType(type, component as unknown as ComponentType)\n\n const unregisterComponent = this.store.dispatch(\n registerComponentEffect(\n type,\n { label, icon, hidden, description, builtinSuspense },\n props ?? {},\n ),\n )\n\n const unregisterReactComponent = this.store.dispatch(\n registerReactComponentEffect(type, component as unknown as ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n }\n\n constructor({ breakpoints }: { breakpoints?: BreakpointsInput } = {}) {\n super({ breakpoints })\n }\n}\n"],"mappings":"AAIA,SAAS,+BAA+B;AACxC,SAAS,oCAAoC;AAG7C,SAAS,qBAAqB;AAG9B,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB,MAAc,WAAiC;AAC5E,QAAM,gBAAgB,WAAW,QAAQ;AACzC,MAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C,UAAM,IAAI;AAAA,MACR,GAAG,aAAa,6EAA6E,IAAI;AAAA,IACnG;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB,YAAY;AAAA,EAChD,kBAKE,WACA;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO,cAAc;AAAA,IACrB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF,GASY;AACZ,0BAAsB,MAAM,SAAqC;AAEjE,UAAM,sBAAsB,KAAK,MAAM;AAAA,MACrC;AAAA,QACE;AAAA,QACA,EAAE,OAAO,MAAM,QAAQ,aAAa,gBAAgB;AAAA,QACpD,SAAS,CAAC;AAAA,MACZ;AAAA,IACF;AAEA,UAAM,2BAA2B,KAAK,MAAM;AAAA,MAC1C,6BAA6B,MAAM,SAAqC;AAAA,IAC1E;AAEA,WAAO,MAAM;AACX,0BAAoB;AACpB,+BAAyB;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,YAAY,EAAE,YAAY,IAAwC,CAAC,GAAG;AACpE,UAAM,EAAE,YAAY,CAAC;AAAA,EACvB;AACF;","names":[]}
@@ -0,0 +1,17 @@
1
+ import { isAction } from "@reduxjs/toolkit";
2
+ import { BuilderActionTypes } from "../builder-api";
3
+ import { HostActionTypes } from "../host-api";
4
+ import { InternalActionTypes } from "./internal";
5
+ const ActionTypes = {
6
+ ...HostActionTypes,
7
+ ...BuilderActionTypes,
8
+ ...InternalActionTypes
9
+ };
10
+ function isKnownAction(action) {
11
+ return isAction(action) && Object.hasOwn(ActionTypes, action.type);
12
+ }
13
+ export {
14
+ ActionTypes,
15
+ isKnownAction
16
+ };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/actions/index.ts"],"sourcesContent":["import { isAction } from '@reduxjs/toolkit'\n\nimport { type BuilderAction, BuilderActionTypes } from '../builder-api'\nimport { type HostAction, HostActionTypes } from '../host-api'\n\nimport { type InternalAction, InternalActionTypes } from './internal'\n\nexport { type UnknownAction } from '@reduxjs/toolkit'\nexport { type DocumentPayload } from '../shared-api'\n\nexport const ActionTypes = {\n ...HostActionTypes,\n ...BuilderActionTypes,\n ...InternalActionTypes,\n} as const\n\nexport type Action = HostAction | BuilderAction | InternalAction\n\nexport function isKnownAction(action: unknown): action is Action {\n return isAction(action) && Object.hasOwn(ActionTypes, action.type)\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAEzB,SAA6B,0BAA0B;AACvD,SAA0B,uBAAuB;AAEjD,SAA8B,2BAA2B;AAKlD,MAAM,cAAc;AAAA,EACzB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAIO,SAAS,cAAc,QAAmC;AAC/D,SAAO,SAAS,MAAM,KAAK,OAAO,OAAO,aAAa,OAAO,IAAI;AACnE;","names":[]}
@@ -0,0 +1,135 @@
1
+ const InternalActionTypes = {
2
+ API_RESOURCE_FULFILLED: "API_RESOURCE_FULFILLED",
3
+ CREATE_ELEMENT_TREE: "CREATE_ELEMENT_TREE",
4
+ DELETE_ELEMENT_TREE: "DELETE_ELEMENT_TREE",
5
+ CHANGE_ELEMENT_TREE: "CHANGE_ELEMENT_TREE",
6
+ REGISTER_COMPONENT_HANDLE: "REGISTER_COMPONENT_HANDLE",
7
+ UNREGISTER_COMPONENT_HANDLE: "UNREGISTER_COMPONENT_HANDLE",
8
+ REGISTER_MEASURABLE: "REGISTER_MEASURABLE",
9
+ UNREGISTER_MEASURABLE: "UNREGISTER_MEASURABLE",
10
+ REGISTER_PROP_CONTROLLERS: "REGISTER_PROP_CONTROLLERS",
11
+ UNREGISTER_PROP_CONTROLLERS: "UNREGISTER_PROP_CONTROLLERS",
12
+ REGISTER_PROP_CONTROLLERS_HANDLE: "REGISTER_PROP_CONTROLLERS_HANDLE",
13
+ UNREGISTER_PROP_CONTROLLERS_HANDLE: "UNREGISTER_PROP_CONTROLLERS_HANDLE",
14
+ REGISTER_REACT_COMPONENT: "REGISTER_REACT_COMPONENT",
15
+ UNREGISTER_REACT_COMPONENT: "UNREGISTER_REACT_COMPONENT",
16
+ UPDATE_API_CLIENT_CACHE: "UPDATE_API_CLIENT_CACHE"
17
+ };
18
+ function apiResourceFulfilled(resourceType, resourceId, resource, locale) {
19
+ return {
20
+ type: InternalActionTypes.API_RESOURCE_FULFILLED,
21
+ payload: { resourceType, resourceId, resource, locale }
22
+ };
23
+ }
24
+ function createElementTree(payload) {
25
+ return {
26
+ type: InternalActionTypes.CREATE_ELEMENT_TREE,
27
+ payload
28
+ };
29
+ }
30
+ function deleteElementTree(payload) {
31
+ return { type: InternalActionTypes.DELETE_ELEMENT_TREE, payload };
32
+ }
33
+ function changeElementTree(payload) {
34
+ return {
35
+ type: InternalActionTypes.CHANGE_ELEMENT_TREE,
36
+ payload
37
+ };
38
+ }
39
+ function registerComponentHandle(documentKey, elementKey, componentHandle) {
40
+ return {
41
+ type: InternalActionTypes.REGISTER_COMPONENT_HANDLE,
42
+ payload: { documentKey, elementKey, componentHandle }
43
+ };
44
+ }
45
+ function unregisterComponentHandle(documentKey, elementKey) {
46
+ return {
47
+ type: InternalActionTypes.UNREGISTER_COMPONENT_HANDLE,
48
+ payload: { documentKey, elementKey }
49
+ };
50
+ }
51
+ function registerComponentHandleEffect(documentKey, elementKey, componentHandle) {
52
+ return (dispatch) => {
53
+ dispatch(registerComponentHandle(documentKey, elementKey, componentHandle));
54
+ return () => {
55
+ dispatch(unregisterComponentHandle(documentKey, elementKey));
56
+ };
57
+ };
58
+ }
59
+ function registerMeasurable(documentKey, elementKey, measurable) {
60
+ return {
61
+ type: InternalActionTypes.REGISTER_MEASURABLE,
62
+ payload: { documentKey, elementKey, measurable }
63
+ };
64
+ }
65
+ function unregisterMeasurable(documentKey, elementKey) {
66
+ return { type: InternalActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } };
67
+ }
68
+ function registerMeasurableEffect(documentKey, elementKey, measurable) {
69
+ return (dispatch) => {
70
+ dispatch(registerMeasurable(documentKey, elementKey, measurable));
71
+ return () => {
72
+ dispatch(unregisterMeasurable(documentKey, elementKey));
73
+ };
74
+ };
75
+ }
76
+ function registerPropControllersHandle(documentKey, elementKey, handle) {
77
+ return {
78
+ type: InternalActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE,
79
+ payload: { documentKey, elementKey, handle }
80
+ };
81
+ }
82
+ function unregisterPropControllersHandle(documentKey, elementKey) {
83
+ return {
84
+ type: InternalActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE,
85
+ payload: { documentKey, elementKey }
86
+ };
87
+ }
88
+ function registerPropControllers(documentKey, elementKey, propControllers) {
89
+ return {
90
+ type: InternalActionTypes.REGISTER_PROP_CONTROLLERS,
91
+ payload: { documentKey, elementKey, propControllers }
92
+ };
93
+ }
94
+ function unregisterPropControllers(documentKey, elementKey) {
95
+ return {
96
+ type: InternalActionTypes.UNREGISTER_PROP_CONTROLLERS,
97
+ payload: { documentKey, elementKey }
98
+ };
99
+ }
100
+ function registerReactComponent(type, component) {
101
+ return { type: InternalActionTypes.REGISTER_REACT_COMPONENT, payload: { type, component } };
102
+ }
103
+ function unregisterReactComponent(type) {
104
+ return { type: InternalActionTypes.UNREGISTER_REACT_COMPONENT, payload: { type } };
105
+ }
106
+ function registerReactComponentEffect(type, component) {
107
+ return (dispatch) => {
108
+ dispatch(registerReactComponent(type, component));
109
+ return () => {
110
+ dispatch(unregisterReactComponent(type));
111
+ };
112
+ };
113
+ }
114
+ function updateAPIClientCache(payload) {
115
+ return { type: InternalActionTypes.UPDATE_API_CLIENT_CACHE, payload };
116
+ }
117
+ export {
118
+ InternalActionTypes,
119
+ apiResourceFulfilled,
120
+ changeElementTree,
121
+ createElementTree,
122
+ deleteElementTree,
123
+ registerComponentHandle,
124
+ registerComponentHandleEffect,
125
+ registerMeasurable,
126
+ registerMeasurableEffect,
127
+ registerPropControllers,
128
+ registerPropControllersHandle,
129
+ registerReactComponentEffect,
130
+ unregisterMeasurable,
131
+ unregisterPropControllers,
132
+ unregisterPropControllersHandle,
133
+ updateAPIClientCache
134
+ };
135
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/actions/internal.ts"],"sourcesContent":["import { type Operation } from 'ot-json0'\nimport { type ThunkAction } from '@reduxjs/toolkit'\n\nimport { ControlInstance } from '@makeswift/controls'\n\nimport { ElementImperativeHandle } from '../../runtimes/react/element-imperative-handle'\n\nimport { type APIResource, APIResourceType, APIResourceLocale } from '../../api/types'\n\nimport { type Measurable } from '../modules/box-models'\nimport { type PropControllersHandle } from '../modules/prop-controller-handles'\nimport { type ComponentType } from '../modules/react-components'\nimport { type DescriptorsByComponentType } from '../modules/prop-controllers'\n\nimport { type DocumentPayload } from '../shared-api'\nimport { type SerializedState as APIClientCache } from '../makeswift-api-client'\n\nexport const InternalActionTypes = {\n API_RESOURCE_FULFILLED: 'API_RESOURCE_FULFILLED',\n\n CREATE_ELEMENT_TREE: 'CREATE_ELEMENT_TREE',\n DELETE_ELEMENT_TREE: 'DELETE_ELEMENT_TREE',\n CHANGE_ELEMENT_TREE: 'CHANGE_ELEMENT_TREE',\n\n REGISTER_COMPONENT_HANDLE: 'REGISTER_COMPONENT_HANDLE',\n UNREGISTER_COMPONENT_HANDLE: 'UNREGISTER_COMPONENT_HANDLE',\n\n REGISTER_MEASURABLE: 'REGISTER_MEASURABLE',\n UNREGISTER_MEASURABLE: 'UNREGISTER_MEASURABLE',\n\n REGISTER_PROP_CONTROLLERS: 'REGISTER_PROP_CONTROLLERS',\n UNREGISTER_PROP_CONTROLLERS: 'UNREGISTER_PROP_CONTROLLERS',\n\n REGISTER_PROP_CONTROLLERS_HANDLE: 'REGISTER_PROP_CONTROLLERS_HANDLE',\n UNREGISTER_PROP_CONTROLLERS_HANDLE: 'UNREGISTER_PROP_CONTROLLERS_HANDLE',\n\n REGISTER_REACT_COMPONENT: 'REGISTER_REACT_COMPONENT',\n UNREGISTER_REACT_COMPONENT: 'UNREGISTER_REACT_COMPONENT',\n\n UPDATE_API_CLIENT_CACHE: 'UPDATE_API_CLIENT_CACHE',\n} as const\n\ntype APIResourceFulfilledAction = {\n type: typeof InternalActionTypes.API_RESOURCE_FULFILLED\n payload: {\n resourceType: APIResourceType\n resourceId: string\n resource: APIResource | null\n locale?: string | null\n }\n}\n\nexport function apiResourceFulfilled<T extends APIResourceType>(\n resourceType: T,\n resourceId: string,\n resource: APIResource | null,\n locale?: APIResourceLocale<T>,\n): APIResourceFulfilledAction {\n return {\n type: InternalActionTypes.API_RESOURCE_FULFILLED,\n payload: { resourceType, resourceId, resource, locale },\n }\n}\n\ntype CreateElementTreeAction = {\n type: typeof InternalActionTypes.CREATE_ELEMENT_TREE\n payload: { document: DocumentPayload; descriptors: DescriptorsByComponentType }\n}\n\ntype DeleteElementTreeAction = {\n type: typeof InternalActionTypes.DELETE_ELEMENT_TREE\n payload: { documentKey: string }\n}\n\ntype ChangeElementTreeAction = {\n type: typeof InternalActionTypes.CHANGE_ELEMENT_TREE\n payload: {\n oldDocument: DocumentPayload\n newDocument: DocumentPayload\n descriptors: DescriptorsByComponentType\n operation: Operation\n }\n}\n\ntype RegisterComponentHandleAction = {\n type: typeof InternalActionTypes.REGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string; componentHandle: ElementImperativeHandle }\n}\n\ntype UnregisterComponentHandleAction = {\n type: typeof InternalActionTypes.UNREGISTER_COMPONENT_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterMeasurableAction = {\n type: typeof InternalActionTypes.REGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string; measurable: Measurable }\n}\n\ntype UnregisterMeasurableAction = {\n type: typeof InternalActionTypes.UNREGISTER_MEASURABLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterPropControllersHandleAction = {\n type: typeof InternalActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string; handle: PropControllersHandle }\n}\n\ntype UnregisterPropControllersHandleAction = {\n type: typeof InternalActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterPropControllersAction = {\n type: typeof InternalActionTypes.REGISTER_PROP_CONTROLLERS\n payload: {\n documentKey: string\n elementKey: string\n propControllers: Record<string, ControlInstance>\n }\n}\n\ntype UnregisterPropControllersAction = {\n type: typeof InternalActionTypes.UNREGISTER_PROP_CONTROLLERS\n payload: { documentKey: string; elementKey: string }\n}\n\ntype RegisterReactComponentAction = {\n type: typeof InternalActionTypes.REGISTER_REACT_COMPONENT\n payload: { type: string; component: ComponentType }\n}\n\ntype UnregisterReactComponentAction = {\n type: typeof InternalActionTypes.UNREGISTER_REACT_COMPONENT\n payload: { type: string }\n}\ntype UpdateAPIClientCache = {\n type: typeof InternalActionTypes.UPDATE_API_CLIENT_CACHE\n payload: APIClientCache\n}\n\nexport type InternalAction =\n | APIResourceFulfilledAction\n | CreateElementTreeAction\n | DeleteElementTreeAction\n | ChangeElementTreeAction\n | RegisterComponentHandleAction\n | UnregisterComponentHandleAction\n | RegisterMeasurableAction\n | UnregisterMeasurableAction\n | RegisterPropControllersHandleAction\n | UnregisterPropControllersHandleAction\n | RegisterPropControllersAction\n | UnregisterPropControllersAction\n | RegisterReactComponentAction\n | UnregisterReactComponentAction\n | UpdateAPIClientCache\n\nexport function createElementTree(\n payload: CreateElementTreeAction['payload'],\n): CreateElementTreeAction {\n return {\n type: InternalActionTypes.CREATE_ELEMENT_TREE,\n payload,\n }\n}\n\nexport function deleteElementTree(\n payload: DeleteElementTreeAction['payload'],\n): DeleteElementTreeAction {\n return { type: InternalActionTypes.DELETE_ELEMENT_TREE, payload }\n}\n\nexport function changeElementTree(\n payload: ChangeElementTreeAction['payload'],\n): ChangeElementTreeAction {\n return {\n type: InternalActionTypes.CHANGE_ELEMENT_TREE,\n payload,\n }\n}\n\nexport function registerComponentHandle(\n documentKey: string,\n elementKey: string,\n componentHandle: ElementImperativeHandle,\n): RegisterComponentHandleAction {\n return {\n type: InternalActionTypes.REGISTER_COMPONENT_HANDLE,\n payload: { documentKey, elementKey, componentHandle },\n }\n}\n\nfunction unregisterComponentHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterComponentHandleAction {\n return {\n type: InternalActionTypes.UNREGISTER_COMPONENT_HANDLE,\n payload: { documentKey, elementKey },\n }\n}\n\nexport function registerComponentHandleEffect(\n documentKey: string,\n elementKey: string,\n componentHandle: ElementImperativeHandle,\n): ThunkAction<() => void, unknown, unknown, InternalAction> {\n return dispatch => {\n dispatch(registerComponentHandle(documentKey, elementKey, componentHandle))\n\n return () => {\n dispatch(unregisterComponentHandle(documentKey, elementKey))\n }\n }\n}\n\nexport function registerMeasurable(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): RegisterMeasurableAction {\n return {\n type: InternalActionTypes.REGISTER_MEASURABLE,\n payload: { documentKey, elementKey, measurable },\n }\n}\n\nexport function unregisterMeasurable(\n documentKey: string,\n elementKey: string,\n): UnregisterMeasurableAction {\n return { type: InternalActionTypes.UNREGISTER_MEASURABLE, payload: { documentKey, elementKey } }\n}\n\nexport function registerMeasurableEffect(\n documentKey: string,\n elementKey: string,\n measurable: Measurable,\n): ThunkAction<() => void, unknown, unknown, InternalAction> {\n return dispatch => {\n dispatch(registerMeasurable(documentKey, elementKey, measurable))\n\n return () => {\n dispatch(unregisterMeasurable(documentKey, elementKey))\n }\n }\n}\n\nexport function registerPropControllersHandle(\n documentKey: string,\n elementKey: string,\n handle: PropControllersHandle,\n): RegisterPropControllersHandleAction {\n return {\n type: InternalActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey, handle },\n }\n}\n\nexport function unregisterPropControllersHandle(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersHandleAction {\n return {\n type: InternalActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE,\n payload: { documentKey, elementKey },\n }\n}\n\nexport function registerPropControllers(\n documentKey: string,\n elementKey: string,\n propControllers: Record<string, ControlInstance>,\n): RegisterPropControllersAction {\n return {\n type: InternalActionTypes.REGISTER_PROP_CONTROLLERS,\n payload: { documentKey, elementKey, propControllers },\n }\n}\n\nexport function unregisterPropControllers(\n documentKey: string,\n elementKey: string,\n): UnregisterPropControllersAction {\n return {\n type: InternalActionTypes.UNREGISTER_PROP_CONTROLLERS,\n payload: { documentKey, elementKey },\n }\n}\n\nfunction registerReactComponent(\n type: string,\n component: ComponentType,\n): RegisterReactComponentAction {\n return { type: InternalActionTypes.REGISTER_REACT_COMPONENT, payload: { type, component } }\n}\n\nfunction unregisterReactComponent(type: string): UnregisterReactComponentAction {\n return { type: InternalActionTypes.UNREGISTER_REACT_COMPONENT, payload: { type } }\n}\n\nexport function registerReactComponentEffect(\n type: string,\n component: ComponentType,\n): ThunkAction<() => void, unknown, unknown, InternalAction> {\n return dispatch => {\n dispatch(registerReactComponent(type, component))\n\n return () => {\n dispatch(unregisterReactComponent(type))\n }\n }\n}\n\nexport function updateAPIClientCache(payload: APIClientCache): UpdateAPIClientCache {\n return { type: InternalActionTypes.UPDATE_API_CLIENT_CACHE, payload }\n}\n"],"mappings":"AAiBO,MAAM,sBAAsB;AAAA,EACjC,wBAAwB;AAAA,EAExB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EAErB,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAE7B,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EAEvB,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAE7B,kCAAkC;AAAA,EAClC,oCAAoC;AAAA,EAEpC,0BAA0B;AAAA,EAC1B,4BAA4B;AAAA,EAE5B,yBAAyB;AAC3B;AAYO,SAAS,qBACd,cACA,YACA,UACA,QAC4B;AAC5B,SAAO;AAAA,IACL,MAAM,oBAAoB;AAAA,IAC1B,SAAS,EAAE,cAAc,YAAY,UAAU,OAAO;AAAA,EACxD;AACF;AAiGO,SAAS,kBACd,SACyB;AACzB,SAAO;AAAA,IACL,MAAM,oBAAoB;AAAA,IAC1B;AAAA,EACF;AACF;AAEO,SAAS,kBACd,SACyB;AACzB,SAAO,EAAE,MAAM,oBAAoB,qBAAqB,QAAQ;AAClE;AAEO,SAAS,kBACd,SACyB;AACzB,SAAO;AAAA,IACL,MAAM,oBAAoB;AAAA,IAC1B;AAAA,EACF;AACF;AAEO,SAAS,wBACd,aACA,YACA,iBAC+B;AAC/B,SAAO;AAAA,IACL,MAAM,oBAAoB;AAAA,IAC1B,SAAS,EAAE,aAAa,YAAY,gBAAgB;AAAA,EACtD;AACF;AAEA,SAAS,0BACP,aACA,YACiC;AACjC,SAAO;AAAA,IACL,MAAM,oBAAoB;AAAA,IAC1B,SAAS,EAAE,aAAa,WAAW;AAAA,EACrC;AACF;AAEO,SAAS,8BACd,aACA,YACA,iBAC2D;AAC3D,SAAO,cAAY;AACjB,aAAS,wBAAwB,aAAa,YAAY,eAAe,CAAC;AAE1E,WAAO,MAAM;AACX,eAAS,0BAA0B,aAAa,UAAU,CAAC;AAAA,IAC7D;AAAA,EACF;AACF;AAEO,SAAS,mBACd,aACA,YACA,YAC0B;AAC1B,SAAO;AAAA,IACL,MAAM,oBAAoB;AAAA,IAC1B,SAAS,EAAE,aAAa,YAAY,WAAW;AAAA,EACjD;AACF;AAEO,SAAS,qBACd,aACA,YAC4B;AAC5B,SAAO,EAAE,MAAM,oBAAoB,uBAAuB,SAAS,EAAE,aAAa,WAAW,EAAE;AACjG;AAEO,SAAS,yBACd,aACA,YACA,YAC2D;AAC3D,SAAO,cAAY;AACjB,aAAS,mBAAmB,aAAa,YAAY,UAAU,CAAC;AAEhE,WAAO,MAAM;AACX,eAAS,qBAAqB,aAAa,UAAU,CAAC;AAAA,IACxD;AAAA,EACF;AACF;AAEO,SAAS,8BACd,aACA,YACA,QACqC;AACrC,SAAO;AAAA,IACL,MAAM,oBAAoB;AAAA,IAC1B,SAAS,EAAE,aAAa,YAAY,OAAO;AAAA,EAC7C;AACF;AAEO,SAAS,gCACd,aACA,YACuC;AACvC,SAAO;AAAA,IACL,MAAM,oBAAoB;AAAA,IAC1B,SAAS,EAAE,aAAa,WAAW;AAAA,EACrC;AACF;AAEO,SAAS,wBACd,aACA,YACA,iBAC+B;AAC/B,SAAO;AAAA,IACL,MAAM,oBAAoB;AAAA,IAC1B,SAAS,EAAE,aAAa,YAAY,gBAAgB;AAAA,EACtD;AACF;AAEO,SAAS,0BACd,aACA,YACiC;AACjC,SAAO;AAAA,IACL,MAAM,oBAAoB;AAAA,IAC1B,SAAS,EAAE,aAAa,WAAW;AAAA,EACrC;AACF;AAEA,SAAS,uBACP,MACA,WAC8B;AAC9B,SAAO,EAAE,MAAM,oBAAoB,0BAA0B,SAAS,EAAE,MAAM,UAAU,EAAE;AAC5F;AAEA,SAAS,yBAAyB,MAA8C;AAC9E,SAAO,EAAE,MAAM,oBAAoB,4BAA4B,SAAS,EAAE,KAAK,EAAE;AACnF;AAEO,SAAS,6BACd,MACA,WAC2D;AAC3D,SAAO,cAAY;AACjB,aAAS,uBAAuB,MAAM,SAAS,CAAC;AAEhD,WAAO,MAAM;AACX,eAAS,yBAAyB,IAAI,CAAC;AAAA,IACzC;AAAA,EACF;AACF;AAEO,SAAS,qBAAqB,SAA+C;AAClF,SAAO,EAAE,MAAM,oBAAoB,yBAAyB,QAAQ;AACtE;","names":[]}
@@ -0,0 +1,110 @@
1
+ import { SharedActionTypes } from "./shared-api";
2
+ const BuilderActionTypes = {
3
+ ...SharedActionTypes,
4
+ MAKESWIFT_CONNECTION_CHECK: "MAKESWIFT_CONNECTION_CHECK",
5
+ CHANGE_ELEMENT_BOX_MODELS: "CHANGE_ELEMENT_BOX_MODELS",
6
+ MOUNT_COMPONENT: "MOUNT_COMPONENT",
7
+ UNMOUNT_COMPONENT: "UNMOUNT_COMPONENT",
8
+ CHANGE_DOCUMENT_ELEMENT_SIZE: "CHANGE_DOCUMENT_ELEMENT_SIZE",
9
+ MESSAGE_BUILDER_PROP_CONTROLLER: "MESSAGE_BUILDER_PROP_CONTROLLER",
10
+ HANDLE_WHEEL: "HANDLE_WHEEL",
11
+ HANDLE_POINTER_MOVE: "HANDLE_POINTER_MOVE",
12
+ ELEMENT_FROM_POINT_CHANGE: "ELEMENT_FROM_POINT_CHANGE",
13
+ SET_IS_IN_BUILDER: "SET_IS_IN_BUILDER",
14
+ REGISTER_BUILDER_DOCUMENT: "REGISTER_BUILDER_DOCUMENT",
15
+ UNREGISTER_BUILDER_DOCUMENT: "UNREGISTER_BUILDER_DOCUMENT",
16
+ REGISTER_BUILDER_COMPONENT: "REGISTER_BUILDER_COMPONENT",
17
+ UNREGISTER_BUILDER_COMPONENT: "UNREGISTER_BUILDER_COMPONENT",
18
+ HANDLE_HOST_NAVIGATE: "HANDLE_HOST_NAVIGATE"
19
+ };
20
+ function makeswiftConnectionCheck(payload) {
21
+ return { type: BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK, payload };
22
+ }
23
+ function changeElementBoxModels(changedElementBoxModels) {
24
+ return {
25
+ type: BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS,
26
+ payload: { changedElementBoxModels }
27
+ };
28
+ }
29
+ function mountComponent(documentKey, elementKey) {
30
+ return { type: BuilderActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } };
31
+ }
32
+ function unmountComponent(documentKey, elementKey) {
33
+ return { type: BuilderActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } };
34
+ }
35
+ function mountComponentEffect(documentKey, elementKey) {
36
+ return (dispatch) => {
37
+ dispatch(mountComponent(documentKey, elementKey));
38
+ return () => {
39
+ dispatch(unmountComponent(documentKey, elementKey));
40
+ };
41
+ };
42
+ }
43
+ function changeDocumentElementSize(size) {
44
+ return { type: BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } };
45
+ }
46
+ function messageBuilderPropController(documentKey, elementKey, propName, message) {
47
+ return {
48
+ type: BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,
49
+ payload: { documentKey, elementKey, propName, message }
50
+ };
51
+ }
52
+ function handleWheel(payload) {
53
+ return { type: BuilderActionTypes.HANDLE_WHEEL, payload };
54
+ }
55
+ function handlePointerMove(payload) {
56
+ return { type: BuilderActionTypes.HANDLE_POINTER_MOVE, payload };
57
+ }
58
+ function elementFromPointChange(keys) {
59
+ return { type: BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE, payload: { keys } };
60
+ }
61
+ function setIsInBuilder(isInBuilder) {
62
+ return { type: BuilderActionTypes.SET_IS_IN_BUILDER, payload: isInBuilder };
63
+ }
64
+ function registerBuilderDocument(document) {
65
+ return {
66
+ type: BuilderActionTypes.REGISTER_BUILDER_DOCUMENT,
67
+ payload: { documentKey: document.key, document }
68
+ };
69
+ }
70
+ function unregisterBuilderDocument(documentKey) {
71
+ return { type: BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT, payload: { documentKey } };
72
+ }
73
+ function registerBuilderDocumentsEffect(documents) {
74
+ return (dispatch) => {
75
+ documents.forEach((document) => dispatch(registerBuilderDocument(document)));
76
+ return () => {
77
+ documents.forEach((document) => dispatch(unregisterBuilderDocument(document.key)));
78
+ };
79
+ };
80
+ }
81
+ function registerBuilderComponent(payload, transferables) {
82
+ return {
83
+ type: BuilderActionTypes.REGISTER_BUILDER_COMPONENT,
84
+ payload,
85
+ transferables
86
+ };
87
+ }
88
+ function unregisterBuilderComponent(payload) {
89
+ return { type: BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT, payload };
90
+ }
91
+ export {
92
+ BuilderActionTypes,
93
+ changeDocumentElementSize,
94
+ changeElementBoxModels,
95
+ elementFromPointChange,
96
+ handlePointerMove,
97
+ handleWheel,
98
+ makeswiftConnectionCheck,
99
+ messageBuilderPropController,
100
+ mountComponent,
101
+ mountComponentEffect,
102
+ registerBuilderComponent,
103
+ registerBuilderDocument,
104
+ registerBuilderDocumentsEffect,
105
+ setIsInBuilder,
106
+ unmountComponent,
107
+ unregisterBuilderComponent,
108
+ unregisterBuilderDocument
109
+ };
110
+ //# sourceMappingURL=builder-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/state/builder-api.ts"],"sourcesContent":["import { type ThunkAction } from '@reduxjs/toolkit'\n\nimport { type SerializedControl } from '../builder'\nimport { type PropControllerMessage } from '../prop-controllers/instances'\n\nimport { type Document } from './modules/read-only-documents'\nimport { type BoxModel } from './modules/box-models'\nimport { type ComponentMeta } from './modules/components-meta'\n\nimport { type Size } from './react-builder-preview'\nimport { type DocumentPayload, type SharedAction, SharedActionTypes } from './shared-api'\n\nexport const BuilderActionTypes = {\n ...SharedActionTypes,\n\n MAKESWIFT_CONNECTION_CHECK: 'MAKESWIFT_CONNECTION_CHECK',\n\n CHANGE_ELEMENT_BOX_MODELS: 'CHANGE_ELEMENT_BOX_MODELS',\n\n MOUNT_COMPONENT: 'MOUNT_COMPONENT',\n UNMOUNT_COMPONENT: 'UNMOUNT_COMPONENT',\n\n CHANGE_DOCUMENT_ELEMENT_SIZE: 'CHANGE_DOCUMENT_ELEMENT_SIZE',\n MESSAGE_BUILDER_PROP_CONTROLLER: 'MESSAGE_BUILDER_PROP_CONTROLLER',\n\n HANDLE_WHEEL: 'HANDLE_WHEEL',\n HANDLE_POINTER_MOVE: 'HANDLE_POINTER_MOVE',\n\n ELEMENT_FROM_POINT_CHANGE: 'ELEMENT_FROM_POINT_CHANGE',\n\n SET_IS_IN_BUILDER: 'SET_IS_IN_BUILDER',\n\n REGISTER_BUILDER_DOCUMENT: 'REGISTER_BUILDER_DOCUMENT',\n UNREGISTER_BUILDER_DOCUMENT: 'UNREGISTER_BUILDER_DOCUMENT',\n\n REGISTER_BUILDER_COMPONENT: 'REGISTER_BUILDER_COMPONENT',\n UNREGISTER_BUILDER_COMPONENT: 'UNREGISTER_BUILDER_COMPONENT',\n\n HANDLE_HOST_NAVIGATE: 'HANDLE_HOST_NAVIGATE',\n} as const\n\ntype MakeswiftConnectionCheckAction = {\n type: typeof BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK\n payload: { currentUrl: string }\n}\n\ntype ChangeElementBoxModelsAction = {\n type: typeof BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS\n payload: { changedElementBoxModels: Map<string, Map<string, BoxModel | null>> }\n}\n\ntype MountComponentAction = {\n type: typeof BuilderActionTypes.MOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype UnmountComponentAction = {\n type: typeof BuilderActionTypes.UNMOUNT_COMPONENT\n payload: { documentKey: string; elementKey: string }\n}\n\ntype ChangeDocumentElementSizeAction = {\n type: typeof BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE\n payload: { size: Size }\n}\n\ntype MessageBuilderPropControllerAction<T = PropControllerMessage> = {\n type: typeof BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER\n payload: { documentKey: string; elementKey: string; propName: string; message: T }\n}\n\ntype HandleWheelAction = {\n type: typeof BuilderActionTypes.HANDLE_WHEEL\n payload: { deltaX: number; deltaY: number }\n}\n\ntype HandlePointerMoveAction = {\n type: typeof BuilderActionTypes.HANDLE_POINTER_MOVE\n payload: { clientX: number; clientY: number }\n}\n\ntype ElementFromPointChangeAction = {\n type: typeof BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE\n payload: { keys: { documentKey: string; elementKey: string } | null }\n}\n\ntype SetIsInBuilderAction = {\n type: typeof BuilderActionTypes.SET_IS_IN_BUILDER\n payload: boolean\n}\n\ntype RegisterBuilderDocumentAction = {\n type: typeof BuilderActionTypes.REGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string; document: DocumentPayload }\n}\n\ntype UnregisterBuilderDocumentAction = {\n type: typeof BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT\n payload: { documentKey: string }\n}\n\ntype RegisterBuilderComponentAction = {\n type: typeof BuilderActionTypes.REGISTER_BUILDER_COMPONENT\n payload: {\n type: string\n meta: ComponentMeta\n serializedControls: Record<string, SerializedControl>\n }\n transferables?: Transferable[]\n}\n\ntype UnregisterBuilderComponentAction = {\n type: typeof BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT\n payload: { type: string }\n}\n\ntype HandleHostNavigateAction = {\n type: typeof BuilderActionTypes.HANDLE_HOST_NAVIGATE\n payload: { url: string | null }\n}\n\nexport type BuilderAction =\n | SharedAction\n | MakeswiftConnectionCheckAction\n | ChangeElementBoxModelsAction\n | MountComponentAction\n | UnmountComponentAction\n | ChangeDocumentElementSizeAction\n | MessageBuilderPropControllerAction\n | HandleWheelAction\n | HandlePointerMoveAction\n | ElementFromPointChangeAction\n | SetIsInBuilderAction\n | RegisterBuilderDocumentAction\n | UnregisterBuilderDocumentAction\n | RegisterBuilderComponentAction\n | UnregisterBuilderComponentAction\n | HandleHostNavigateAction\n\nexport function makeswiftConnectionCheck(\n payload: MakeswiftConnectionCheckAction['payload'],\n): MakeswiftConnectionCheckAction {\n return { type: BuilderActionTypes.MAKESWIFT_CONNECTION_CHECK, payload }\n}\n\nexport function changeElementBoxModels(\n changedElementBoxModels: Map<string, Map<string, BoxModel | null>>,\n): ChangeElementBoxModelsAction {\n return {\n type: BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS,\n payload: { changedElementBoxModels },\n }\n}\n\nexport function mountComponent(documentKey: string, elementKey: string): MountComponentAction {\n return { type: BuilderActionTypes.MOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function unmountComponent(documentKey: string, elementKey: string): UnmountComponentAction {\n return { type: BuilderActionTypes.UNMOUNT_COMPONENT, payload: { documentKey, elementKey } }\n}\n\nexport function mountComponentEffect(\n documentKey: string,\n elementKey: string,\n): ThunkAction<() => void, unknown, unknown, BuilderAction> {\n return dispatch => {\n dispatch(mountComponent(documentKey, elementKey))\n\n return () => {\n dispatch(unmountComponent(documentKey, elementKey))\n }\n }\n}\n\nexport function changeDocumentElementSize(size: Size): ChangeDocumentElementSizeAction {\n return { type: BuilderActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE, payload: { size } }\n}\n\nexport function messageBuilderPropController<T>(\n documentKey: string,\n elementKey: string,\n propName: string,\n message: T,\n): MessageBuilderPropControllerAction<T> {\n return {\n type: BuilderActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER,\n payload: { documentKey, elementKey, propName, message },\n }\n}\n\nexport function handleWheel(payload: { deltaX: number; deltaY: number }): HandleWheelAction {\n return { type: BuilderActionTypes.HANDLE_WHEEL, payload }\n}\n\nexport function handlePointerMove(payload: {\n clientX: number\n clientY: number\n}): HandlePointerMoveAction {\n return { type: BuilderActionTypes.HANDLE_POINTER_MOVE, payload }\n}\n\nexport function elementFromPointChange(\n keys: {\n documentKey: string\n elementKey: string\n } | null,\n): ElementFromPointChangeAction {\n return { type: BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE, payload: { keys } }\n}\n\nexport function setIsInBuilder(isInBuilder: boolean): SetIsInBuilderAction {\n return { type: BuilderActionTypes.SET_IS_IN_BUILDER, payload: isInBuilder }\n}\n\nexport function registerBuilderDocument(document: Document): RegisterBuilderDocumentAction {\n return {\n type: BuilderActionTypes.REGISTER_BUILDER_DOCUMENT,\n payload: { documentKey: document.key, document },\n }\n}\n\nexport function unregisterBuilderDocument(documentKey: string): UnregisterBuilderDocumentAction {\n return { type: BuilderActionTypes.UNREGISTER_BUILDER_DOCUMENT, payload: { documentKey } }\n}\n\nexport function registerBuilderDocumentsEffect(\n documents: Document[],\n): ThunkAction<() => void, unknown, unknown, BuilderAction> {\n return dispatch => {\n documents.forEach(document => dispatch(registerBuilderDocument(document)))\n\n return () => {\n documents.forEach(document => dispatch(unregisterBuilderDocument(document.key)))\n }\n }\n}\n\nexport function registerBuilderComponent(\n payload: RegisterBuilderComponentAction['payload'],\n transferables?: Transferable[],\n): RegisterBuilderComponentAction {\n return {\n type: BuilderActionTypes.REGISTER_BUILDER_COMPONENT,\n payload,\n transferables,\n }\n}\n\nexport function unregisterBuilderComponent(\n payload: UnregisterBuilderComponentAction['payload'],\n): UnregisterBuilderComponentAction {\n return { type: BuilderActionTypes.UNREGISTER_BUILDER_COMPONENT, payload }\n}\n"],"mappings":"AAUA,SAAkD,yBAAyB;AAEpE,MAAM,qBAAqB;AAAA,EAChC,GAAG;AAAA,EAEH,4BAA4B;AAAA,EAE5B,2BAA2B;AAAA,EAE3B,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EAEnB,8BAA8B;AAAA,EAC9B,iCAAiC;AAAA,EAEjC,cAAc;AAAA,EACd,qBAAqB;AAAA,EAErB,2BAA2B;AAAA,EAE3B,mBAAmB;AAAA,EAEnB,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAE7B,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAE9B,sBAAsB;AACxB;AAoGO,SAAS,yBACd,SACgC;AAChC,SAAO,EAAE,MAAM,mBAAmB,4BAA4B,QAAQ;AACxE;AAEO,SAAS,uBACd,yBAC8B;AAC9B,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,wBAAwB;AAAA,EACrC;AACF;AAEO,SAAS,eAAe,aAAqB,YAA0C;AAC5F,SAAO,EAAE,MAAM,mBAAmB,iBAAiB,SAAS,EAAE,aAAa,WAAW,EAAE;AAC1F;AAEO,SAAS,iBAAiB,aAAqB,YAA4C;AAChG,SAAO,EAAE,MAAM,mBAAmB,mBAAmB,SAAS,EAAE,aAAa,WAAW,EAAE;AAC5F;AAEO,SAAS,qBACd,aACA,YAC0D;AAC1D,SAAO,cAAY;AACjB,aAAS,eAAe,aAAa,UAAU,CAAC;AAEhD,WAAO,MAAM;AACX,eAAS,iBAAiB,aAAa,UAAU,CAAC;AAAA,IACpD;AAAA,EACF;AACF;AAEO,SAAS,0BAA0B,MAA6C;AACrF,SAAO,EAAE,MAAM,mBAAmB,8BAA8B,SAAS,EAAE,KAAK,EAAE;AACpF;AAEO,SAAS,6BACd,aACA,YACA,UACA,SACuC;AACvC,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,aAAa,YAAY,UAAU,QAAQ;AAAA,EACxD;AACF;AAEO,SAAS,YAAY,SAAgE;AAC1F,SAAO,EAAE,MAAM,mBAAmB,cAAc,QAAQ;AAC1D;AAEO,SAAS,kBAAkB,SAGN;AAC1B,SAAO,EAAE,MAAM,mBAAmB,qBAAqB,QAAQ;AACjE;AAEO,SAAS,uBACd,MAI8B;AAC9B,SAAO,EAAE,MAAM,mBAAmB,2BAA2B,SAAS,EAAE,KAAK,EAAE;AACjF;AAEO,SAAS,eAAe,aAA4C;AACzE,SAAO,EAAE,MAAM,mBAAmB,mBAAmB,SAAS,YAAY;AAC5E;AAEO,SAAS,wBAAwB,UAAmD;AACzF,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,aAAa,SAAS,KAAK,SAAS;AAAA,EACjD;AACF;AAEO,SAAS,0BAA0B,aAAsD;AAC9F,SAAO,EAAE,MAAM,mBAAmB,6BAA6B,SAAS,EAAE,YAAY,EAAE;AAC1F;AAEO,SAAS,+BACd,WAC0D;AAC1D,SAAO,cAAY;AACjB,cAAU,QAAQ,cAAY,SAAS,wBAAwB,QAAQ,CAAC,CAAC;AAEzE,WAAO,MAAM;AACX,gBAAU,QAAQ,cAAY,SAAS,0BAA0B,SAAS,GAAG,CAAC,CAAC;AAAA,IACjF;AAAA,EACF;AACF;AAEO,SAAS,yBACd,SACA,eACgC;AAChC,SAAO;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,2BACd,SACkC;AAClC,SAAO,EAAE,MAAM,mBAAmB,8BAA8B,QAAQ;AAC1E;","names":[]}