@makeswift/runtime 0.0.0-af7286d → 0.0.0-d8554fe

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 (223) hide show
  1. package/api.js +1 -0
  2. package/box-model.js +1 -0
  3. package/components.js +1 -0
  4. package/dist/actions.cjs.js +78 -16
  5. package/dist/actions.cjs.js.map +1 -1
  6. package/dist/actions.es.js +71 -16
  7. package/dist/actions.es.js.map +1 -1
  8. package/dist/api.cjs.js +6 -0
  9. package/dist/api.cjs.js.map +1 -0
  10. package/dist/api.es.js +2 -0
  11. package/dist/api.es.js.map +1 -0
  12. package/dist/box-models.cjs.js +24 -14
  13. package/dist/box-models.cjs.js.map +1 -1
  14. package/dist/box-models.es.js +24 -14
  15. package/dist/box-models.es.js.map +1 -1
  16. package/dist/components.cjs.js +37 -19946
  17. package/dist/components.cjs.js.map +1 -1
  18. package/dist/components.es.js +9 -19911
  19. package/dist/components.es.js.map +1 -1
  20. package/dist/constants.cjs.js +146 -0
  21. package/dist/constants.cjs.js.map +1 -0
  22. package/dist/constants.es.js +145 -0
  23. package/dist/constants.es.js.map +1 -0
  24. package/dist/deepEqual.cjs.js +40 -0
  25. package/dist/deepEqual.cjs.js.map +1 -0
  26. package/dist/deepEqual.es.js +39 -0
  27. package/dist/deepEqual.es.js.map +1 -0
  28. package/dist/descriptors.cjs.js +30 -0
  29. package/dist/descriptors.cjs.js.map +1 -1
  30. package/dist/descriptors.es.js +1 -1
  31. package/dist/descriptors.es.js.map +1 -1
  32. package/dist/immutable.es.cjs.js +4459 -0
  33. package/dist/immutable.es.cjs.js.map +1 -0
  34. package/dist/immutable.es.es.js +4450 -0
  35. package/dist/immutable.es.es.js.map +1 -0
  36. package/dist/instances.cjs.js +89 -0
  37. package/dist/instances.cjs.js.map +1 -0
  38. package/dist/instances.es.js +87 -0
  39. package/dist/instances.es.js.map +1 -0
  40. package/dist/main.cjs.js +2 -0
  41. package/dist/main.cjs.js.map +1 -1
  42. package/dist/main.es.js +1 -1
  43. package/dist/prop-controllers.cjs.js +2 -0
  44. package/dist/prop-controllers.cjs.js.map +1 -1
  45. package/dist/prop-controllers.es.js +1 -0
  46. package/dist/prop-controllers.es.js.map +1 -1
  47. package/dist/react-builder-preview.cjs.js +196 -32
  48. package/dist/react-builder-preview.cjs.js.map +1 -1
  49. package/dist/react-builder-preview.es.js +204 -40
  50. package/dist/react-builder-preview.es.js.map +1 -1
  51. package/dist/react.cjs.js +6 -0
  52. package/dist/react.cjs.js.map +1 -1
  53. package/dist/react.cjs2.js +33595 -518
  54. package/dist/react.cjs2.js.map +1 -1
  55. package/dist/react.es.js +6 -0
  56. package/dist/react.es.js.map +1 -1
  57. package/dist/react.es2.js +33539 -514
  58. package/dist/react.es2.js.map +1 -1
  59. package/dist/shallowEqual.cjs.js +24 -0
  60. package/dist/shallowEqual.cjs.js.map +1 -0
  61. package/dist/shallowEqual.es.js +23 -0
  62. package/dist/shallowEqual.es.js.map +1 -0
  63. package/dist/types/api/constants.d.ts +4 -0
  64. package/dist/types/api/constants.d.ts.map +1 -0
  65. package/dist/types/api/generated/graphql.d.ts +61 -0
  66. package/dist/types/api/generated/graphql.d.ts.map +1 -0
  67. package/dist/types/api/getFragment.d.ts +4 -0
  68. package/dist/types/api/getFragment.d.ts.map +1 -0
  69. package/dist/types/api/index.d.ts +3 -0
  70. package/dist/types/api/index.d.ts.map +1 -0
  71. package/dist/types/api/react.d.ts +6 -0
  72. package/dist/types/api/react.d.ts.map +1 -0
  73. package/dist/types/api/types.d.ts +4 -0
  74. package/dist/types/api/types.d.ts.map +1 -0
  75. package/dist/types/codegen-loader.d.ts +2 -0
  76. package/dist/types/codegen-loader.d.ts.map +1 -0
  77. package/dist/types/components/builtin/Box/Box.d.ts +5 -2
  78. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  79. package/dist/types/components/builtin/Box/index.d.ts +1 -1
  80. package/dist/types/components/builtin/Box/index.d.ts.map +1 -1
  81. package/dist/types/components/builtin/Button/Button.d.ts +5 -2
  82. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
  83. package/dist/types/components/builtin/Button/index.d.ts +1 -1
  84. package/dist/types/components/builtin/Button/index.d.ts.map +1 -1
  85. package/dist/types/components/builtin/Carousel/Carousel.d.ts +5 -2
  86. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  87. package/dist/types/components/builtin/Carousel/index.d.ts +1 -1
  88. package/dist/types/components/builtin/Carousel/index.d.ts.map +1 -1
  89. package/dist/types/components/builtin/Countdown/Countdown.d.ts +5 -2
  90. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  91. package/dist/types/components/builtin/Countdown/index.d.ts +1 -1
  92. package/dist/types/components/builtin/Countdown/index.d.ts.map +1 -1
  93. package/dist/types/components/builtin/Divider/Divider.d.ts +5 -2
  94. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
  95. package/dist/types/components/builtin/Divider/index.d.ts +1 -1
  96. package/dist/types/components/builtin/Divider/index.d.ts.map +1 -1
  97. package/dist/types/components/builtin/Embed/Embed.d.ts +5 -2
  98. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
  99. package/dist/types/components/builtin/Embed/index.d.ts +1 -1
  100. package/dist/types/components/builtin/Embed/index.d.ts.map +1 -1
  101. package/dist/types/components/builtin/Image/Image.d.ts +5 -2
  102. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
  103. package/dist/types/components/builtin/Image/index.d.ts +1 -1
  104. package/dist/types/components/builtin/Image/index.d.ts.map +1 -1
  105. package/dist/types/components/builtin/Navigation/Navigation.d.ts +5 -2
  106. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  107. package/dist/types/components/builtin/Navigation/index.d.ts +1 -1
  108. package/dist/types/components/builtin/Navigation/index.d.ts.map +1 -1
  109. package/dist/types/components/builtin/Root/Root.d.ts +5 -2
  110. package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
  111. package/dist/types/components/builtin/Root/index.d.ts +1 -1
  112. package/dist/types/components/builtin/Root/index.d.ts.map +1 -1
  113. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +5 -2
  114. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  115. package/dist/types/components/builtin/SocialLinks/index.d.ts +1 -1
  116. package/dist/types/components/builtin/SocialLinks/index.d.ts.map +1 -1
  117. package/dist/types/components/builtin/Text/Text.d.ts +19 -0
  118. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -0
  119. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +24 -0
  120. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
  121. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Link/index.d.ts +9 -0
  122. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Link/index.d.ts.map +1 -0
  123. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +25 -0
  124. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  125. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +13 -0
  126. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  127. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts +5 -0
  128. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
  129. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  130. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  131. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  132. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  133. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +3 -0
  134. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  135. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +3 -0
  136. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
  137. package/dist/types/components/builtin/Text/hooks/useRichText.d.ts +1 -0
  138. package/dist/types/components/builtin/Text/hooks/useRichText.d.ts.map +1 -0
  139. package/dist/types/components/builtin/Text/index.d.ts +2 -0
  140. package/dist/types/components/builtin/Text/index.d.ts.map +1 -0
  141. package/dist/types/components/builtin/Text/prop-controllers.d.ts +286 -0
  142. package/dist/types/components/builtin/Text/prop-controllers.d.ts.map +1 -0
  143. package/dist/types/components/builtin/index.d.ts +5 -1
  144. package/dist/types/components/builtin/index.d.ts.map +1 -1
  145. package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -1
  146. package/dist/types/components/hooks/useBorder.d.ts.map +1 -1
  147. package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -1
  148. package/dist/types/components/hooks/useColor.d.ts.map +1 -1
  149. package/dist/types/components/hooks/useFile.d.ts.map +1 -1
  150. package/dist/types/components/hooks/usePage.d.ts.map +1 -1
  151. package/dist/types/components/hooks/useRichText.d.ts +18 -0
  152. package/dist/types/components/hooks/useRichText.d.ts.map +1 -0
  153. package/dist/types/components/hooks/useTypography.d.ts +24 -0
  154. package/dist/types/components/hooks/useTypography.d.ts.map +1 -0
  155. package/dist/types/components/index.d.ts +1 -0
  156. package/dist/types/components/index.d.ts.map +1 -1
  157. package/dist/types/components/shared/RichTextEditor/components/Block/index.d.ts +24 -0
  158. package/dist/types/components/shared/RichTextEditor/components/Block/index.d.ts.map +1 -0
  159. package/dist/types/components/shared/RichTextEditor/components/Link/index.d.ts +9 -0
  160. package/dist/types/components/shared/RichTextEditor/components/Link/index.d.ts.map +1 -0
  161. package/dist/types/components/shared/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +23 -0
  162. package/dist/types/components/shared/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  163. package/dist/types/components/shared/RichTextEditor/components/Mark/index.d.ts +13 -0
  164. package/dist/types/components/shared/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  165. package/dist/types/components/shared/RichTextEditor/index.d.ts +5 -0
  166. package/dist/types/components/shared/RichTextEditor/index.d.ts.map +1 -0
  167. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  168. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  169. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  170. package/dist/types/components/shared/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  171. package/dist/types/components/shared/RichTextEditor/plugins/Inlines.d.ts +3 -0
  172. package/dist/types/components/shared/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  173. package/dist/types/components/shared/RichTextEditor/plugins/Link.d.ts +3 -0
  174. package/dist/types/components/shared/RichTextEditor/plugins/Link.d.ts.map +1 -0
  175. package/dist/types/components/utils/contants.d.ts +5 -0
  176. package/dist/types/components/utils/contants.d.ts.map +1 -0
  177. package/dist/types/components/utils/devices.d.ts +1 -0
  178. package/dist/types/components/utils/devices.d.ts.map +1 -1
  179. package/dist/types/components/utils/intersection.d.ts +4 -0
  180. package/dist/types/components/utils/intersection.d.ts.map +1 -0
  181. package/dist/types/components/utils/keys.d.ts +5 -0
  182. package/dist/types/components/utils/keys.d.ts.map +1 -0
  183. package/dist/types/components/utils/queries.d.ts +6 -4
  184. package/dist/types/components/utils/queries.d.ts.map +1 -1
  185. package/dist/types/generated/graphql.d.ts +20 -0
  186. package/dist/types/generated/graphql.d.ts.map +1 -0
  187. package/dist/types/index.d.ts +1 -1
  188. package/dist/types/index.d.ts.map +1 -1
  189. package/dist/types/prop-controllers/descriptors.d.ts +1 -1
  190. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  191. package/dist/types/prop-controllers/index.d.ts +2 -0
  192. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  193. package/dist/types/prop-controllers/instances.d.ts +63 -4
  194. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  195. package/dist/types/runtimes/react.d.ts +13 -7
  196. package/dist/types/runtimes/react.d.ts.map +1 -1
  197. package/dist/types/state/actions.d.ts +97 -13
  198. package/dist/types/state/actions.d.ts.map +1 -1
  199. package/dist/types/state/modules/box-models.d.ts +5 -5
  200. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  201. package/dist/types/state/modules/makeswift-api-client.d.ts +17 -0
  202. package/dist/types/state/modules/makeswift-api-client.d.ts.map +1 -0
  203. package/dist/types/state/modules/prop-controller-handles.d.ts +4 -8
  204. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -1
  205. package/dist/types/state/react-builder-preview.d.ts +5 -1
  206. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  207. package/dist/types/state/react-page.d.ts +1 -0
  208. package/dist/types/state/react-page.d.ts.map +1 -1
  209. package/dist/types/types.d.ts +2 -0
  210. package/dist/types/types.d.ts.map +1 -0
  211. package/dist/types/utils/coalesce.d.ts +3 -0
  212. package/dist/types/utils/coalesce.d.ts.map +1 -0
  213. package/dist/types/utils/constants.d.ts +6 -0
  214. package/dist/types/utils/constants.d.ts.map +1 -0
  215. package/dist/types/utils/intersection.d.ts +4 -0
  216. package/dist/types/utils/intersection.d.ts.map +1 -0
  217. package/dist/types/utils/keys.d.ts +5 -0
  218. package/dist/types/utils/keys.d.ts.map +1 -0
  219. package/dist/types/utils/shallowMerge.d.ts +2 -0
  220. package/dist/types/utils/shallowMerge.d.ts.map +1 -0
  221. package/package.json +46 -9
  222. package/prop-controllers.js +1 -0
  223. package/react.js +1 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => {
5
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
+ return value;
7
+ };
8
+ var descriptors = require("./descriptors.cjs.js");
9
+ const BuilderEditMode = {
10
+ BUILD: "build",
11
+ CONTENT: "content"
12
+ };
13
+ const RichTextPropControllerMessageType = {
14
+ CHANGE_BUILDER_EDIT_MODE: "CHANGE_BUILDER_EDIT_MODE",
15
+ INITIALIZE_EDITOR: "INITIALIZE_EDITOR",
16
+ CHANGE_EDITOR_VALUE: "CHANGE_EDITOR_VALUE",
17
+ FOCUS: "FOCUS",
18
+ BLUR: "BLUR",
19
+ UNDO: "UNDO",
20
+ REDO: "REDO"
21
+ };
22
+ class PropController {
23
+ constructor(send) {
24
+ __publicField(this, "send");
25
+ this.send = send;
26
+ }
27
+ }
28
+ class DefaultPropController extends PropController {
29
+ recv(_message) {
30
+ }
31
+ }
32
+ class RichTextPropController extends PropController {
33
+ constructor() {
34
+ super(...arguments);
35
+ __publicField(this, "editor", null);
36
+ }
37
+ recv(message) {
38
+ var _a, _b;
39
+ switch (message.type) {
40
+ case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {
41
+ switch (message.editMode) {
42
+ case BuilderEditMode.BUILD:
43
+ (_a = this.editor) == null ? void 0 : _a.deselect().blur();
44
+ break;
45
+ case BuilderEditMode.CONTENT:
46
+ (_b = this.editor) == null ? void 0 : _b.focus().moveToRangeOfDocument();
47
+ break;
48
+ }
49
+ break;
50
+ }
51
+ }
52
+ }
53
+ setSlateEditor(editor) {
54
+ this.editor = editor;
55
+ this.send({
56
+ type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,
57
+ value: editor.value.toJSON({ preserveSelection: false })
58
+ });
59
+ }
60
+ onChange(change) {
61
+ this.send({
62
+ type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,
63
+ value: change.value.toJSON({ preserveSelection: true })
64
+ });
65
+ }
66
+ focus() {
67
+ this.send({ type: RichTextPropControllerMessageType.FOCUS });
68
+ }
69
+ blur() {
70
+ this.send({ type: RichTextPropControllerMessageType.BLUR });
71
+ }
72
+ undo() {
73
+ this.send({ type: RichTextPropControllerMessageType.UNDO });
74
+ }
75
+ redo() {
76
+ this.send({ type: RichTextPropControllerMessageType.REDO });
77
+ }
78
+ }
79
+ function createPropController(descriptor, send) {
80
+ switch (descriptor.type) {
81
+ case descriptors.Types.RichText:
82
+ return new RichTextPropController(send);
83
+ default:
84
+ return new DefaultPropController(send);
85
+ }
86
+ }
87
+ exports.RichTextPropControllerMessageType = RichTextPropControllerMessageType;
88
+ exports.createPropController = createPropController;
89
+ //# sourceMappingURL=instances.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instances.cjs.js","sources":["../src/utils/constants.ts","../src/prop-controllers/instances.ts"],"sourcesContent":["export const BuilderEditMode = {\n BUILD: 'build',\n CONTENT: 'content',\n} as const\n\nexport type BuilderEditMode = typeof BuilderEditMode[keyof typeof BuilderEditMode]\n","import { Editor } from 'slate-react'\nimport { ValueJSON } from 'slate'\nimport { OnChangeParam } from 'slate-react'\nimport { Descriptor, RichTextDescriptor, Types } from './descriptors'\nimport { BuilderEditMode } from '../utils/constants'\n\nexport const RichTextPropControllerMessageType = {\n CHANGE_BUILDER_EDIT_MODE: 'CHANGE_BUILDER_EDIT_MODE',\n INITIALIZE_EDITOR: 'INITIALIZE_EDITOR',\n CHANGE_EDITOR_VALUE: 'CHANGE_EDITOR_VALUE',\n FOCUS: 'FOCUS',\n BLUR: 'BLUR',\n UNDO: 'UNDO',\n REDO: 'REDO',\n} as const\n\ntype ChangeBuilderEditModeRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE\n editMode: BuilderEditMode\n}\n\ntype InitializeEditorRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.INITIALIZE_EDITOR\n value: ValueJSON\n}\n\ntype ChangeEditorValueRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE\n value: ValueJSON\n}\n\ntype FocusRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.FOCUS }\n\ntype BlurRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.BLUR }\n\ntype UndoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.UNDO }\n\ntype RedoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.REDO }\n\nexport type RichTextPropControllerMessage =\n | ChangeBuilderEditModeRichTextPropControllerMessage\n | InitializeEditorRichTextPropControllerMessage\n | ChangeEditorValueRichTextPropControllerMessage\n | FocusRichTextPropControllerMessage\n | BlurRichTextPropControllerMessage\n | UndoRichTextPropControllerMessage\n | RedoRichTextPropControllerMessage\n\nexport type PropControllerMessage = RichTextPropControllerMessage\n\ntype Send<T = PropControllerMessage> = (message: T) => void\n\nexport abstract class PropController<T = PropControllerMessage> {\n protected send: Send<T>\n\n constructor(send: Send<T>) {\n this.send = send\n }\n\n abstract recv(message: T): void\n}\n\nclass DefaultPropController extends PropController {\n recv(_message: PropControllerMessage): void {\n // Do nothing.\n }\n}\n\nclass RichTextPropController extends PropController<RichTextPropControllerMessage> {\n private editor: Editor | null = null\n\n recv(message: RichTextPropControllerMessage): void {\n switch (message.type) {\n case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {\n switch (message.editMode) {\n case BuilderEditMode.BUILD:\n this.editor?.deselect().blur()\n break\n\n case BuilderEditMode.CONTENT:\n this.editor?.focus().moveToRangeOfDocument()\n break\n }\n\n break\n }\n }\n }\n\n setSlateEditor(editor: Editor) {\n this.editor = editor\n\n this.send({\n type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,\n value: editor.value.toJSON({ preserveSelection: false }),\n })\n }\n\n onChange(change: OnChangeParam) {\n this.send({\n type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,\n value: change.value.toJSON({ preserveSelection: true }),\n })\n }\n\n focus() {\n this.send({ type: RichTextPropControllerMessageType.FOCUS })\n }\n\n blur() {\n this.send({ type: RichTextPropControllerMessageType.BLUR })\n }\n\n undo() {\n this.send({ type: RichTextPropControllerMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextPropControllerMessageType.REDO })\n }\n}\n\ntype DescriptorPropController<T extends Descriptor> = T extends { type: typeof Types.RichText }\n ? RichTextPropController\n : DefaultPropController\n\nexport type DescriptorsPropControllers<T extends Record<string, Descriptor>> = {\n [K in keyof T]: undefined extends T[K]\n ? DescriptorPropController<Exclude<T[K], undefined>>\n : DescriptorPropController<T[K]>\n}\n\nexport function createPropController(\n descriptor: RichTextDescriptor,\n send: Send<RichTextPropControllerMessage>,\n): RichTextPropController\nexport function createPropController(descriptor: Descriptor, send: Send): PropController\nexport function createPropController(descriptor: Descriptor, send: Send): PropController {\n switch (descriptor.type) {\n case Types.RichText:\n return new RichTextPropController(send)\n\n default:\n return new DefaultPropController(send)\n }\n}\n"],"names":["Types"],"mappings":";;;;;;;;MAAa,kBAAkB;AAAA,EAC7B,OAAO;AAAA,EACP,SAAS;AAAA;MCIE,oCAAoC;AAAA,EAC/C,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA;qBAuCwD;AAAA,EAG9D,YAAY,MAAe;AAFjB;SAGH,OAAO;AAAA;AAAA;AAMhB,oCAAoC,eAAe;AAAA,EACjD,KAAK,UAAuC;AAAA;AAAA;AAK9C,qCAAqC,eAA8C;AAAA,EAAnF;AAAA;AACU,kCAAwB;AAAA;AAAA,EAEhC,KAAK,SAA8C;;YACzC,QAAQ;AAAA,WACT,kCAAkC,0BAA0B;gBACvD,QAAQ;AAAA,eACT,gBAAgB;uBACd,8BAAQ,WAAW;;eAGrB,gBAAgB;uBACd,8BAAQ,QAAQ;;;;;;;EAS/B,eAAe,QAAgB;SACxB,SAAS;SAET,KAAK;AAAA,MACR,MAAM,kCAAkC;AAAA,MACxC,OAAO,OAAO,MAAM,OAAO,EAAE,mBAAmB;AAAA;AAAA;AAAA,EAIpD,SAAS,QAAuB;SACzB,KAAK;AAAA,MACR,MAAM,kCAAkC;AAAA,MACxC,OAAO,OAAO,MAAM,OAAO,EAAE,mBAAmB;AAAA;AAAA;AAAA,EAIpD,QAAQ;SACD,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA;8BAmBnB,YAAwB,MAA4B;UAC/E,WAAW;AAAA,SACZA,kBAAM;aACF,IAAI,uBAAuB;AAAA;aAG3B,IAAI,sBAAsB;AAAA;AAAA;;;"}
@@ -0,0 +1,87 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import { T as Types } from "./descriptors.es.js";
8
+ const BuilderEditMode = {
9
+ BUILD: "build",
10
+ CONTENT: "content"
11
+ };
12
+ const RichTextPropControllerMessageType = {
13
+ CHANGE_BUILDER_EDIT_MODE: "CHANGE_BUILDER_EDIT_MODE",
14
+ INITIALIZE_EDITOR: "INITIALIZE_EDITOR",
15
+ CHANGE_EDITOR_VALUE: "CHANGE_EDITOR_VALUE",
16
+ FOCUS: "FOCUS",
17
+ BLUR: "BLUR",
18
+ UNDO: "UNDO",
19
+ REDO: "REDO"
20
+ };
21
+ class PropController {
22
+ constructor(send) {
23
+ __publicField(this, "send");
24
+ this.send = send;
25
+ }
26
+ }
27
+ class DefaultPropController extends PropController {
28
+ recv(_message) {
29
+ }
30
+ }
31
+ class RichTextPropController extends PropController {
32
+ constructor() {
33
+ super(...arguments);
34
+ __publicField(this, "editor", null);
35
+ }
36
+ recv(message) {
37
+ var _a, _b;
38
+ switch (message.type) {
39
+ case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {
40
+ switch (message.editMode) {
41
+ case BuilderEditMode.BUILD:
42
+ (_a = this.editor) == null ? void 0 : _a.deselect().blur();
43
+ break;
44
+ case BuilderEditMode.CONTENT:
45
+ (_b = this.editor) == null ? void 0 : _b.focus().moveToRangeOfDocument();
46
+ break;
47
+ }
48
+ break;
49
+ }
50
+ }
51
+ }
52
+ setSlateEditor(editor) {
53
+ this.editor = editor;
54
+ this.send({
55
+ type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,
56
+ value: editor.value.toJSON({ preserveSelection: false })
57
+ });
58
+ }
59
+ onChange(change) {
60
+ this.send({
61
+ type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,
62
+ value: change.value.toJSON({ preserveSelection: true })
63
+ });
64
+ }
65
+ focus() {
66
+ this.send({ type: RichTextPropControllerMessageType.FOCUS });
67
+ }
68
+ blur() {
69
+ this.send({ type: RichTextPropControllerMessageType.BLUR });
70
+ }
71
+ undo() {
72
+ this.send({ type: RichTextPropControllerMessageType.UNDO });
73
+ }
74
+ redo() {
75
+ this.send({ type: RichTextPropControllerMessageType.REDO });
76
+ }
77
+ }
78
+ function createPropController(descriptor, send) {
79
+ switch (descriptor.type) {
80
+ case Types.RichText:
81
+ return new RichTextPropController(send);
82
+ default:
83
+ return new DefaultPropController(send);
84
+ }
85
+ }
86
+ export { RichTextPropControllerMessageType as R, createPropController as c };
87
+ //# sourceMappingURL=instances.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instances.es.js","sources":["../src/utils/constants.ts","../src/prop-controllers/instances.ts"],"sourcesContent":["export const BuilderEditMode = {\n BUILD: 'build',\n CONTENT: 'content',\n} as const\n\nexport type BuilderEditMode = typeof BuilderEditMode[keyof typeof BuilderEditMode]\n","import { Editor } from 'slate-react'\nimport { ValueJSON } from 'slate'\nimport { OnChangeParam } from 'slate-react'\nimport { Descriptor, RichTextDescriptor, Types } from './descriptors'\nimport { BuilderEditMode } from '../utils/constants'\n\nexport const RichTextPropControllerMessageType = {\n CHANGE_BUILDER_EDIT_MODE: 'CHANGE_BUILDER_EDIT_MODE',\n INITIALIZE_EDITOR: 'INITIALIZE_EDITOR',\n CHANGE_EDITOR_VALUE: 'CHANGE_EDITOR_VALUE',\n FOCUS: 'FOCUS',\n BLUR: 'BLUR',\n UNDO: 'UNDO',\n REDO: 'REDO',\n} as const\n\ntype ChangeBuilderEditModeRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE\n editMode: BuilderEditMode\n}\n\ntype InitializeEditorRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.INITIALIZE_EDITOR\n value: ValueJSON\n}\n\ntype ChangeEditorValueRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE\n value: ValueJSON\n}\n\ntype FocusRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.FOCUS }\n\ntype BlurRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.BLUR }\n\ntype UndoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.UNDO }\n\ntype RedoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.REDO }\n\nexport type RichTextPropControllerMessage =\n | ChangeBuilderEditModeRichTextPropControllerMessage\n | InitializeEditorRichTextPropControllerMessage\n | ChangeEditorValueRichTextPropControllerMessage\n | FocusRichTextPropControllerMessage\n | BlurRichTextPropControllerMessage\n | UndoRichTextPropControllerMessage\n | RedoRichTextPropControllerMessage\n\nexport type PropControllerMessage = RichTextPropControllerMessage\n\ntype Send<T = PropControllerMessage> = (message: T) => void\n\nexport abstract class PropController<T = PropControllerMessage> {\n protected send: Send<T>\n\n constructor(send: Send<T>) {\n this.send = send\n }\n\n abstract recv(message: T): void\n}\n\nclass DefaultPropController extends PropController {\n recv(_message: PropControllerMessage): void {\n // Do nothing.\n }\n}\n\nclass RichTextPropController extends PropController<RichTextPropControllerMessage> {\n private editor: Editor | null = null\n\n recv(message: RichTextPropControllerMessage): void {\n switch (message.type) {\n case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {\n switch (message.editMode) {\n case BuilderEditMode.BUILD:\n this.editor?.deselect().blur()\n break\n\n case BuilderEditMode.CONTENT:\n this.editor?.focus().moveToRangeOfDocument()\n break\n }\n\n break\n }\n }\n }\n\n setSlateEditor(editor: Editor) {\n this.editor = editor\n\n this.send({\n type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,\n value: editor.value.toJSON({ preserveSelection: false }),\n })\n }\n\n onChange(change: OnChangeParam) {\n this.send({\n type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,\n value: change.value.toJSON({ preserveSelection: true }),\n })\n }\n\n focus() {\n this.send({ type: RichTextPropControllerMessageType.FOCUS })\n }\n\n blur() {\n this.send({ type: RichTextPropControllerMessageType.BLUR })\n }\n\n undo() {\n this.send({ type: RichTextPropControllerMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextPropControllerMessageType.REDO })\n }\n}\n\ntype DescriptorPropController<T extends Descriptor> = T extends { type: typeof Types.RichText }\n ? RichTextPropController\n : DefaultPropController\n\nexport type DescriptorsPropControllers<T extends Record<string, Descriptor>> = {\n [K in keyof T]: undefined extends T[K]\n ? DescriptorPropController<Exclude<T[K], undefined>>\n : DescriptorPropController<T[K]>\n}\n\nexport function createPropController(\n descriptor: RichTextDescriptor,\n send: Send<RichTextPropControllerMessage>,\n): RichTextPropController\nexport function createPropController(descriptor: Descriptor, send: Send): PropController\nexport function createPropController(descriptor: Descriptor, send: Send): PropController {\n switch (descriptor.type) {\n case Types.RichText:\n return new RichTextPropController(send)\n\n default:\n return new DefaultPropController(send)\n }\n}\n"],"names":[],"mappings":";;;;;;;MAAa,kBAAkB;AAAA,EAC7B,OAAO;AAAA,EACP,SAAS;AAAA;MCIE,oCAAoC;AAAA,EAC/C,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA;qBAuCwD;AAAA,EAG9D,YAAY,MAAe;AAFjB;SAGH,OAAO;AAAA;AAAA;AAMhB,oCAAoC,eAAe;AAAA,EACjD,KAAK,UAAuC;AAAA;AAAA;AAK9C,qCAAqC,eAA8C;AAAA,EAAnF;AAAA;AACU,kCAAwB;AAAA;AAAA,EAEhC,KAAK,SAA8C;;YACzC,QAAQ;AAAA,WACT,kCAAkC,0BAA0B;gBACvD,QAAQ;AAAA,eACT,gBAAgB;uBACd,8BAAQ,WAAW;;eAGrB,gBAAgB;uBACd,8BAAQ,QAAQ;;;;;;;EAS/B,eAAe,QAAgB;SACxB,SAAS;SAET,KAAK;AAAA,MACR,MAAM,kCAAkC;AAAA,MACxC,OAAO,OAAO,MAAM,OAAO,EAAE,mBAAmB;AAAA;AAAA;AAAA,EAIpD,SAAS,QAAuB;SACzB,KAAK;AAAA,MACR,MAAM,kCAAkC;AAAA,MACxC,OAAO,OAAO,MAAM,OAAO,EAAE,mBAAmB;AAAA;AAAA;AAAA,EAIpD,QAAQ;SACD,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA,EAGtD,OAAO;SACA,KAAK,EAAE,MAAM,kCAAkC;AAAA;AAAA;8BAmBnB,YAAwB,MAA4B;UAC/E,WAAW;AAAA,SACZ,MAAM;aACF,IAAI,uBAAuB;AAAA;aAG3B,IAAI,sBAAsB;AAAA;AAAA;;"}
package/dist/main.cjs.js CHANGED
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports[Symbol.toStringTag] = "Module";
4
4
  var actions = require("./actions.cjs.js");
5
5
  exports.ActionTypes = actions.ActionTypes;
6
+ exports.changeApiResource = actions.changeApiResource;
6
7
  exports.changeDocument = actions.changeDocument;
7
8
  exports.changeDocumentElementScrollTop = actions.changeDocumentElementScrollTop;
9
+ exports.messageHostPropController = actions.messageHostPropController;
8
10
  //# sourceMappingURL=main.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"main.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
package/dist/main.es.js CHANGED
@@ -1,2 +1,2 @@
1
- export { A as ActionTypes, c as changeDocument, a as changeDocumentElementScrollTop } from "./actions.es.js";
1
+ export { A as ActionTypes, b as changeApiResource, c as changeDocument, a as changeDocumentElementScrollTop, m as messageHostPropController } from "./actions.es.js";
2
2
  //# sourceMappingURL=main.es.js.map
@@ -2,5 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports[Symbol.toStringTag] = "Module";
4
4
  var descriptors = require("./descriptors.cjs.js");
5
+ var instances = require("./instances.cjs.js");
5
6
  exports.Props = descriptors.descriptors;
7
+ exports.RichTextPropControllerMessageType = instances.RichTextPropControllerMessageType;
6
8
  //# sourceMappingURL=prop-controllers.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prop-controllers.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"prop-controllers.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,2 +1,3 @@
1
1
  export { d as Props } from "./descriptors.es.js";
2
+ export { R as RichTextPropControllerMessageType } from "./instances.es.js";
2
3
  //# sourceMappingURL=prop-controllers.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prop-controllers.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"prop-controllers.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,11 +1,37 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2
21
  exports[Symbol.toStringTag] = "Module";
3
22
  var react = require("./react.cjs2.js");
4
23
  var actions = require("./actions.cjs.js");
5
24
  var boxModels = require("./box-models.cjs.js");
25
+ var instances = require("./instances.cjs.js");
26
+ var constants = require("./constants.cjs.js");
6
27
  require("react");
7
28
  require("./descriptors.cjs.js");
29
+ require("styled-components");
8
30
  require("react/jsx-runtime");
31
+ require("next/image");
32
+ require("next/link");
33
+ require("slate");
34
+ require("slate-react");
9
35
  function is$1(x, y) {
10
36
  if (x === y)
11
37
  return x !== 0 || y !== 0 || 1 / x === 1 / y;
@@ -4104,7 +4130,7 @@ function apply(data, operation) {
4104
4130
  });
4105
4131
  return applied;
4106
4132
  }
4107
- function getInitialState({
4133
+ function getInitialState$1({
4108
4134
  rootElements
4109
4135
  } = {}) {
4110
4136
  return react.getInitialState({ rootElements });
@@ -4115,7 +4141,7 @@ function getReadOnlyDocumentsStateSlice(state) {
4115
4141
  function getDocumentRootElement(state, documentKey) {
4116
4142
  return react.getDocumentRootElement(getReadOnlyDocumentsStateSlice(state), documentKey);
4117
4143
  }
4118
- function reducer$1(state = getInitialState(), action) {
4144
+ function reducer$2(state = getInitialState$1(), action) {
4119
4145
  switch (action.type) {
4120
4146
  case actions.ActionTypes.CHANGE_DOCUMENT: {
4121
4147
  const currentRootElement = getDocumentRootElement(state, action.payload.documentKey);
@@ -4128,13 +4154,62 @@ function reducer$1(state = getInitialState(), action) {
4128
4154
  return state;
4129
4155
  }
4130
4156
  }
4157
+ function isPropControllersHandle(value) {
4158
+ if (typeof value === "object" && value !== null && "setPropControllers" in value && typeof value.setPropControllers === "function") {
4159
+ return true;
4160
+ }
4161
+ return false;
4162
+ }
4163
+ function getInitialState() {
4164
+ return { handles: /* @__PURE__ */ new Map(), instances: /* @__PURE__ */ new Map() };
4165
+ }
4166
+ function getPropControllersHandle(state, documentKey, elementKey) {
4167
+ var _a, _b;
4168
+ return (_b = (_a = state.handles.get(documentKey)) == null ? void 0 : _a.get(elementKey)) != null ? _b : null;
4169
+ }
4170
+ function getPropController(state, documentKey, elementKey, propName) {
4171
+ var _a, _b, _c;
4172
+ return (_c = (_b = (_a = state.instances.get(documentKey)) == null ? void 0 : _a.get(elementKey)) == null ? void 0 : _b[propName]) != null ? _c : null;
4173
+ }
4174
+ function reducer$1(state = getInitialState(), action) {
4175
+ var _a, _b, _c, _d;
4176
+ switch (action.type) {
4177
+ case actions.ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE: {
4178
+ const { documentKey, elementKey, handle } = action.payload;
4179
+ return __spreadProps(__spreadValues({}, state), {
4180
+ handles: new Map(state.handles).set(documentKey, new Map((_a = state.handles.get(documentKey)) != null ? _a : []).set(elementKey, handle))
4181
+ });
4182
+ }
4183
+ case actions.ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE: {
4184
+ const { documentKey, elementKey } = action.payload;
4185
+ const nextHandles = new Map((_b = state.handles.get(documentKey)) != null ? _b : []);
4186
+ const deleted = nextHandles.delete(elementKey);
4187
+ return deleted ? __spreadProps(__spreadValues({}, state), { handles: new Map(state.handles).set(documentKey, nextHandles) }) : state;
4188
+ }
4189
+ case actions.ActionTypes.REGISTER_PROP_CONTROLLERS: {
4190
+ const { documentKey, elementKey, propControllers } = action.payload;
4191
+ return __spreadProps(__spreadValues({}, state), {
4192
+ instances: new Map(state.instances).set(documentKey, new Map((_c = state.instances.get(documentKey)) != null ? _c : []).set(elementKey, propControllers))
4193
+ });
4194
+ }
4195
+ case actions.ActionTypes.UNREGISTER_PROP_CONTROLLERS: {
4196
+ const { documentKey, elementKey } = action.payload;
4197
+ const nextInstances = new Map((_d = state.instances.get(documentKey)) != null ? _d : []);
4198
+ const deleted = nextInstances.delete(elementKey);
4199
+ return deleted ? __spreadProps(__spreadValues({}, state), { instances: new Map(state.instances).set(documentKey, nextInstances) }) : state;
4200
+ }
4201
+ default:
4202
+ return state;
4203
+ }
4204
+ }
4131
4205
  const reducer = react.combineReducers({
4132
- documents: reducer$1,
4206
+ documents: reducer$2,
4133
4207
  reactComponents: react.reducer,
4134
4208
  boxModels: boxModels.reducer,
4135
4209
  componentsMeta: react.reducer$1,
4136
4210
  propControllers: react.reducer$2,
4137
- isInBuilder: (state = true, _action) => state
4211
+ propControllerHandles: reducer$1,
4212
+ isInBuilder: (_state = true, _action) => true
4138
4213
  });
4139
4214
  function getBoxModelsStateSlice(state) {
4140
4215
  return state.boxModels;
@@ -4145,8 +4220,8 @@ function getMeasurables(state) {
4145
4220
  function getBoxModels(state) {
4146
4221
  return boxModels.getBoxModels(getBoxModelsStateSlice(state));
4147
4222
  }
4148
- function getBoxModel(state, elementKey) {
4149
- return boxModels.getBoxModel(getBoxModelsStateSlice(state), elementKey);
4223
+ function getBoxModel(state, documentKey, elementKey) {
4224
+ return boxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey);
4150
4225
  }
4151
4226
  function getComponentsMetaStateSlice(state) {
4152
4227
  return state.componentsMeta;
@@ -4160,31 +4235,52 @@ function getPropControllersStateSlice(state) {
4160
4235
  function getComponentPropControllerDescriptors(state, componentType) {
4161
4236
  return react.getComponentPropControllerDescriptors(getPropControllersStateSlice(state), componentType);
4162
4237
  }
4238
+ function getPropControllerHandlesStateSlice(state) {
4239
+ return state.propControllerHandles;
4240
+ }
4163
4241
  function measureElements() {
4164
4242
  return (dispatch, getState) => {
4165
4243
  const measurables = getMeasurables(getState());
4166
4244
  const currentBoxModels = getBoxModels(getState());
4167
- const measuredBoxModels = new Map(Array.from(measurables.entries()).map(([elementKey, measurable]) => {
4168
- const boxModel = boxModels.measure(measurable);
4169
- return boxModel ? [elementKey, boxModel] : null;
4170
- }).filter((entry) => entry != null));
4245
+ const measuredBoxModels = /* @__PURE__ */ new Map();
4246
+ measurables.forEach((documentMeasurables, documentKey) => {
4247
+ const measuredDocumentBoxModels = /* @__PURE__ */ new Map();
4248
+ documentMeasurables.forEach((measurable, elementKey) => {
4249
+ const boxModel = boxModels.measure(measurable);
4250
+ if (boxModel != null)
4251
+ measuredDocumentBoxModels.set(elementKey, boxModel);
4252
+ });
4253
+ if (measuredDocumentBoxModels.size > 0) {
4254
+ measuredBoxModels.set(documentKey, measuredDocumentBoxModels);
4255
+ }
4256
+ });
4171
4257
  const changedBoxModels = /* @__PURE__ */ new Map();
4172
- currentBoxModels.forEach((_boxModel, elementKey) => {
4173
- if (!measuredBoxModels.has(elementKey))
4174
- changedBoxModels.set(elementKey, null);
4258
+ currentBoxModels.forEach((currentDocumentBoxModels, documentKey) => {
4259
+ currentDocumentBoxModels.forEach((_boxModel, elementKey) => {
4260
+ var _a;
4261
+ const changedDocumentBoxModels = /* @__PURE__ */ new Map();
4262
+ if (!((_a = measuredBoxModels.get(documentKey)) == null ? void 0 : _a.has(elementKey))) {
4263
+ changedDocumentBoxModels.set(elementKey, null);
4264
+ }
4265
+ if (changedDocumentBoxModels.size > 0) {
4266
+ changedBoxModels.set(documentKey, changedDocumentBoxModels);
4267
+ }
4268
+ });
4175
4269
  });
4176
- measuredBoxModels.forEach((measuredBoxModel, elementKey) => {
4177
- const currentBoxModel = getBoxModel(getState(), elementKey);
4178
- if (currentBoxModel == null || !deepEqual$1(currentBoxModel, measuredBoxModel)) {
4179
- changedBoxModels.set(elementKey, measuredBoxModel);
4270
+ measuredBoxModels.forEach((measuredDocumentBoxModels, documentKey) => {
4271
+ const changedDocumentBoxModels = /* @__PURE__ */ new Map();
4272
+ measuredDocumentBoxModels.forEach((measuredBoxModel, elementKey) => {
4273
+ const currentBoxModel = getBoxModel(getState(), documentKey, elementKey);
4274
+ if (currentBoxModel == null || !deepEqual$1(currentBoxModel, measuredBoxModel)) {
4275
+ changedDocumentBoxModels.set(elementKey, measuredBoxModel);
4276
+ }
4277
+ });
4278
+ if (changedDocumentBoxModels.size > 0) {
4279
+ changedBoxModels.set(documentKey, changedDocumentBoxModels);
4180
4280
  }
4181
4281
  });
4182
- if (changedBoxModels.size > 0) {
4183
- dispatch({
4184
- type: actions.ActionTypes.CHANGE_ELEMENT_BOX_MODELS,
4185
- payload: { changedElementBoxModels: changedBoxModels }
4186
- });
4187
- }
4282
+ if (changedBoxModels.size > 0)
4283
+ dispatch(actions.changeElementBoxModels(changedBoxModels));
4188
4284
  };
4189
4285
  }
4190
4286
  function startMeasuringElements() {
@@ -4242,16 +4338,14 @@ function measureBoxModelsMiddleware() {
4242
4338
  return ({ dispatch }) => (next) => {
4243
4339
  return (action) => {
4244
4340
  switch (action.type) {
4245
- case actions.ActionTypes.CHANGE_COMPONENT_HANDLE: {
4341
+ case actions.ActionTypes.REGISTER_COMPONENT_HANDLE: {
4246
4342
  if (boxModels.isMeasurable(action.payload.componentHandle)) {
4247
- dispatch(actions.registerMeasurable(action.payload.elementKey, action.payload.componentHandle));
4248
- } else {
4249
- dispatch(actions.unregisterMeasurable(action.payload.elementKey));
4343
+ dispatch(actions.registerMeasurable(action.payload.documentKey, action.payload.elementKey, action.payload.componentHandle));
4250
4344
  }
4251
4345
  break;
4252
4346
  }
4253
- case actions.ActionTypes.UNMOUNT_COMPONENT:
4254
- dispatch(actions.unregisterMeasurable(action.payload.elementKey));
4347
+ case actions.ActionTypes.UNREGISTER_COMPONENT_HANDLE:
4348
+ dispatch(actions.unregisterMeasurable(action.payload.documentKey, action.payload.elementKey));
4255
4349
  break;
4256
4350
  }
4257
4351
  return next(action);
@@ -4279,6 +4373,7 @@ function messageChannelMiddleware() {
4279
4373
  case actions.ActionTypes.REGISTER_COMPONENT:
4280
4374
  case actions.ActionTypes.UNREGISTER_COMPONENT:
4281
4375
  case actions.ActionTypes.CHANGE_DOCUMENT_ELEMENT_SIZE:
4376
+ case actions.ActionTypes.MESSAGE_BUILDER_PROP_CONTROLLER:
4282
4377
  messageChannel.port1.postMessage(action);
4283
4378
  break;
4284
4379
  case actions.ActionTypes.CHANGE_DOCUMENT_ELEMENT_SCROLL_TOP:
@@ -4289,10 +4384,79 @@ function messageChannelMiddleware() {
4289
4384
  };
4290
4385
  };
4291
4386
  }
4387
+ function createAndRegisterPropControllers(documentKey, elementKey) {
4388
+ return (dispatch, getState) => {
4389
+ const descriptors = react.getElementPropControllerDescriptors(getState(), documentKey, elementKey);
4390
+ if (descriptors == null)
4391
+ return null;
4392
+ const propControllers = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {
4393
+ const propController = instances.createPropController(descriptor, (message) => dispatch(actions.messageBuilderPropController(documentKey, elementKey, propName, message)));
4394
+ return __spreadProps(__spreadValues({}, acc), { [propName]: propController });
4395
+ }, {});
4396
+ dispatch(actions.registerPropControllers(documentKey, elementKey, propControllers));
4397
+ return propControllers;
4398
+ };
4399
+ }
4400
+ function registerAndSetPropControllersHandle(documentKey, elementKey, handle) {
4401
+ return (dispatch) => {
4402
+ dispatch(actions.registerPropControllersHandle(documentKey, elementKey, handle));
4403
+ const propControllers = dispatch(createAndRegisterPropControllers(documentKey, elementKey));
4404
+ handle.setPropControllers(propControllers);
4405
+ };
4406
+ }
4407
+ function unregisterAndUnsetPropControllersHandle(documentKey, elementKey) {
4408
+ return (dispatch, getState) => {
4409
+ const handle = getPropControllersHandle(getPropControllerHandlesStateSlice(getState()), documentKey, elementKey);
4410
+ handle == null ? void 0 : handle.setPropControllers(null);
4411
+ dispatch(actions.unregisterPropControllers(documentKey, elementKey));
4412
+ };
4413
+ }
4414
+ function propControllerHandlesMiddleware() {
4415
+ return ({ dispatch, getState }) => (next) => {
4416
+ return (action) => {
4417
+ switch (action.type) {
4418
+ case actions.ActionTypes.REGISTER_COMPONENT_HANDLE: {
4419
+ if (isPropControllersHandle(action.payload.componentHandle)) {
4420
+ dispatch(registerAndSetPropControllersHandle(action.payload.documentKey, action.payload.elementKey, action.payload.componentHandle));
4421
+ }
4422
+ break;
4423
+ }
4424
+ case actions.ActionTypes.UNREGISTER_COMPONENT_HANDLE:
4425
+ dispatch(unregisterAndUnsetPropControllersHandle(action.payload.documentKey, action.payload.elementKey));
4426
+ break;
4427
+ case actions.ActionTypes.MESSAGE_HOST_PROP_CONTROLLER: {
4428
+ const propController = getPropController(getPropControllerHandlesStateSlice(getState()), action.payload.documentKey, action.payload.elementKey, action.payload.propName);
4429
+ if (propController)
4430
+ propController.recv(action.payload.message);
4431
+ }
4432
+ }
4433
+ return next(action);
4434
+ };
4435
+ };
4436
+ }
4437
+ function apolloClientCacheSyncMiddleware(client) {
4438
+ return () => (next) => {
4439
+ return (action) => {
4440
+ switch (action.type) {
4441
+ case actions.ActionTypes.CHANGE_API_RESOURCE: {
4442
+ const { resource } = action.payload;
4443
+ client.cache.writeFragment({
4444
+ id: client.cache.identify(resource),
4445
+ fragment: constants.Fragments[resource.__typename],
4446
+ data: resource
4447
+ });
4448
+ break;
4449
+ }
4450
+ }
4451
+ return next(action);
4452
+ };
4453
+ };
4454
+ }
4292
4455
  function configureStore({
4293
- preloadedState
4294
- } = {}) {
4295
- return react.createStore(reducer, preloadedState, react.applyMiddleware(react.thunk, measureBoxModelsMiddleware(), messageChannelMiddleware()));
4456
+ preloadedState,
4457
+ client
4458
+ }) {
4459
+ return react.createStore(reducer, preloadedState, react.applyMiddleware(react.thunk, measureBoxModelsMiddleware(), messageChannelMiddleware(), propControllerHandlesMiddleware(), apolloClientCacheSyncMiddleware(client)));
4296
4460
  }
4297
4461
  exports.createBox = boxModels.createBox;
4298
4462
  exports.getBox = boxModels.getBox;