@makeswift/runtime 0.22.3 → 0.23.0-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 (499) hide show
  1. package/dist/cjs/api/{graphql/fragments.js → fragments.js} +1 -1
  2. package/dist/cjs/api/fragments.js.map +1 -0
  3. package/dist/cjs/api/index.js +4 -4
  4. package/dist/cjs/api/index.js.map +1 -1
  5. package/dist/cjs/api/react.js +46 -46
  6. package/dist/cjs/api/react.js.map +1 -1
  7. package/dist/cjs/api/{graphql/types.js → types.js} +9 -4
  8. package/dist/cjs/api/types.js.map +1 -0
  9. package/dist/cjs/builder/serialization/control-serialization.js +13 -9
  10. package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
  11. package/dist/cjs/components/builtin/Form/Form.js +2 -2
  12. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  13. package/dist/cjs/components/builtin/Slot/Slot.js +33 -0
  14. package/dist/cjs/components/builtin/Slot/Slot.js.map +1 -0
  15. package/dist/cjs/components/builtin/Slot/index.js +35 -0
  16. package/dist/cjs/components/builtin/Slot/index.js.map +1 -0
  17. package/dist/cjs/components/builtin/Slot/register.js +56 -0
  18. package/dist/cjs/components/builtin/Slot/register.js.map +1 -0
  19. package/dist/cjs/components/builtin/constants.js +1 -0
  20. package/dist/cjs/components/builtin/constants.js.map +1 -1
  21. package/dist/cjs/components/builtin/index.js +3 -0
  22. package/dist/cjs/components/builtin/index.js.map +1 -1
  23. package/dist/cjs/components/builtin/register.js +9 -6
  24. package/dist/cjs/components/builtin/register.js.map +1 -1
  25. package/dist/cjs/components/hooks/usePageSnippets.js +2 -2
  26. package/dist/cjs/components/hooks/usePageSnippets.js.map +1 -1
  27. package/dist/cjs/components/page/Page.js +2 -3
  28. package/dist/cjs/components/page/Page.js.map +1 -1
  29. package/dist/cjs/components/page/PageHead.js +2 -2
  30. package/dist/cjs/components/page/PageHead.js.map +1 -1
  31. package/dist/cjs/components/shared/BackgroundsContainer/index.js +5 -3
  32. package/dist/cjs/components/shared/BackgroundsContainer/index.js.map +1 -1
  33. package/dist/cjs/controls/index.js +10 -0
  34. package/dist/cjs/controls/index.js.map +1 -1
  35. package/dist/cjs/core/index.js +4 -2
  36. package/dist/cjs/core/index.js.map +1 -1
  37. package/dist/cjs/index.js +2 -2
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/jest-setup.js +2 -1
  40. package/dist/cjs/jest-setup.js.map +1 -1
  41. package/dist/cjs/next/api-handler/handlers/manifest.js +4 -2
  42. package/dist/cjs/next/api-handler/handlers/manifest.js.map +1 -1
  43. package/dist/cjs/next/api-handler/handlers/webhook/index.js +55 -0
  44. package/dist/cjs/next/api-handler/handlers/webhook/index.js.map +1 -0
  45. package/dist/cjs/next/api-handler/handlers/webhook/site-published.js +36 -0
  46. package/dist/cjs/next/api-handler/handlers/webhook/site-published.js.map +1 -0
  47. package/dist/cjs/next/api-handler/handlers/webhook/types.js +46 -0
  48. package/dist/cjs/next/api-handler/handlers/webhook/types.js.map +1 -0
  49. package/dist/cjs/next/api-handler/index.js +7 -7
  50. package/dist/cjs/next/api-handler/index.js.map +1 -1
  51. package/dist/cjs/next/client.js +136 -18
  52. package/dist/cjs/next/client.js.map +1 -1
  53. package/dist/cjs/next/components/MakeswiftComponent.js +50 -0
  54. package/dist/cjs/next/components/MakeswiftComponent.js.map +1 -0
  55. package/dist/cjs/next/components/Slot.js +50 -0
  56. package/dist/cjs/next/components/Slot.js.map +1 -0
  57. package/dist/cjs/next/components/SlotProvider.js +41 -0
  58. package/dist/cjs/next/components/SlotProvider.js.map +1 -0
  59. package/dist/cjs/next/components/page.js +20 -18
  60. package/dist/cjs/next/components/page.js.map +1 -1
  61. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +6 -5
  62. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  63. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js +6 -6
  64. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  65. package/dist/cjs/next/document.js +1 -1
  66. package/dist/cjs/next/document.js.map +1 -1
  67. package/dist/cjs/next/draft-mode/draft-mode-script.js +17 -3
  68. package/dist/cjs/next/draft-mode/draft-mode-script.js.map +1 -1
  69. package/dist/cjs/next/index.js +10 -4
  70. package/dist/cjs/next/index.js.map +1 -1
  71. package/dist/cjs/next/preview-mode.js +4 -1
  72. package/dist/cjs/next/preview-mode.js.map +1 -1
  73. package/dist/cjs/prop-controllers/introspection.js +1 -1
  74. package/dist/cjs/prop-controllers/introspection.js.map +1 -1
  75. package/dist/cjs/react.js +2 -4
  76. package/dist/cjs/react.js.map +1 -1
  77. package/dist/cjs/runtimes/react/components/Document.js +3 -2
  78. package/dist/cjs/runtimes/react/components/Document.js.map +1 -1
  79. package/dist/cjs/runtimes/react/components/{DocumentReference.js → DocumentRoot.js} +9 -9
  80. package/dist/cjs/runtimes/react/components/DocumentRoot.js.map +1 -0
  81. package/dist/cjs/runtimes/react/components/Element.js +10 -22
  82. package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
  83. package/dist/cjs/runtimes/react/components/ElementReference.js +3 -1
  84. package/dist/cjs/runtimes/react/components/ElementReference.js.map +1 -1
  85. package/dist/cjs/runtimes/react/components/ElementRegistration.js +55 -0
  86. package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -0
  87. package/dist/cjs/runtimes/react/components/LiveProvider.js +10 -8
  88. package/dist/cjs/runtimes/react/components/LiveProvider.js.map +1 -1
  89. package/dist/cjs/runtimes/react/components/PreviewProvider.js +9 -22
  90. package/dist/cjs/runtimes/react/components/PreviewProvider.js.map +1 -1
  91. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +23 -5
  92. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  93. package/dist/cjs/runtimes/react/controls/group.js +45 -0
  94. package/dist/cjs/runtimes/react/controls/group.js.map +1 -0
  95. package/dist/cjs/runtimes/react/hooks/makeswift-api.js +20 -18
  96. package/dist/cjs/runtimes/react/hooks/makeswift-api.js.map +1 -1
  97. package/dist/cjs/runtimes/react/hooks/use-cache-data.js +35 -0
  98. package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -0
  99. package/dist/cjs/runtimes/react/hooks/use-dispatch.js +1 -2
  100. package/dist/cjs/runtimes/react/hooks/use-dispatch.js.map +1 -1
  101. package/dist/cjs/runtimes/react/hooks/use-document-context.js +49 -0
  102. package/dist/cjs/runtimes/react/hooks/use-document-context.js.map +1 -0
  103. package/dist/cjs/runtimes/react/hooks/use-element-id.js +2 -2
  104. package/dist/cjs/runtimes/react/hooks/use-element-id.js.map +1 -1
  105. package/dist/cjs/{next/context/react-runtime.js → runtimes/react/hooks/use-react-runtime.js} +12 -16
  106. package/dist/cjs/runtimes/react/hooks/use-react-runtime.js.map +1 -0
  107. package/dist/cjs/runtimes/react/hooks/use-register-document.js +42 -0
  108. package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -0
  109. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +2 -2
  110. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  111. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js +6 -6
  112. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  113. package/dist/cjs/runtimes/react/hooks/use-store.js +6 -3
  114. package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
  115. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js +38 -0
  116. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -0
  117. package/dist/cjs/{next/context/makeswift-host-api-client.js → runtimes/react/host-api-client.js} +4 -4
  118. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -0
  119. package/dist/cjs/runtimes/react/index.js +8 -8
  120. package/dist/cjs/runtimes/react/index.js.map +1 -1
  121. package/dist/cjs/runtimes/react/react-runtime.js +0 -24
  122. package/dist/cjs/runtimes/react/react-runtime.js.map +1 -1
  123. package/dist/cjs/runtimes/react/runtime-core.js +2 -17
  124. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
  125. package/dist/cjs/state/actions.js +33 -16
  126. package/dist/cjs/state/actions.js.map +1 -1
  127. package/dist/cjs/state/makeswift-api-client.js +98 -18
  128. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  129. package/dist/cjs/{runtimes/react/hooks/use-document-key.js → state/mixins/setup-teardown.js} +12 -13
  130. package/dist/cjs/state/mixins/setup-teardown.js.map +1 -0
  131. package/dist/cjs/state/modules/api-resources.js +62 -24
  132. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  133. package/dist/cjs/state/modules/element-trees.js +14 -7
  134. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  135. package/dist/cjs/state/modules/localized-resources-map.js +80 -0
  136. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -0
  137. package/dist/cjs/state/modules/read-only-documents.js +16 -13
  138. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  139. package/dist/cjs/state/modules/read-write-documents.js +9 -8
  140. package/dist/cjs/state/modules/read-write-documents.js.map +1 -1
  141. package/dist/cjs/state/react-builder-preview.js +18 -61
  142. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  143. package/dist/cjs/state/react-page.js +64 -8
  144. package/dist/cjs/state/react-page.js.map +1 -1
  145. package/dist/cjs/{api/resource-types.js → utils/branded.js} +3 -10
  146. package/dist/cjs/utils/branded.js.map +1 -0
  147. package/dist/cjs/utils/canonicalize.js +39 -0
  148. package/dist/cjs/utils/canonicalize.js.map +1 -0
  149. package/dist/cjs/utils/deterministic-uuid.js +35 -0
  150. package/dist/cjs/utils/deterministic-uuid.js.map +1 -0
  151. package/dist/cjs/utils/is-server.js +31 -0
  152. package/dist/cjs/utils/is-server.js.map +1 -0
  153. package/dist/cjs/utils/serializeState.js +42 -0
  154. package/dist/cjs/utils/serializeState.js.map +1 -0
  155. package/dist/cjs/utils/tests/element-data-test-test.js +10 -9
  156. package/dist/cjs/utils/tests/element-data-test-test.js.map +1 -1
  157. package/dist/esm/api/fragments.js +6 -0
  158. package/dist/esm/api/fragments.js.map +1 -0
  159. package/dist/esm/api/index.js +2 -2
  160. package/dist/esm/api/index.js.map +1 -1
  161. package/dist/esm/api/react.js +45 -46
  162. package/dist/esm/api/react.js.map +1 -1
  163. package/dist/esm/api/{graphql/types.js → types.js} +7 -3
  164. package/dist/esm/api/types.js.map +1 -0
  165. package/dist/esm/builder/serialization/control-serialization.js +19 -11
  166. package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
  167. package/dist/esm/components/builtin/Form/Form.js +1 -1
  168. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  169. package/dist/esm/components/builtin/Slot/Slot.js +13 -0
  170. package/dist/esm/components/builtin/Slot/Slot.js.map +1 -0
  171. package/dist/esm/components/builtin/Slot/index.js +5 -0
  172. package/dist/esm/components/builtin/Slot/index.js.map +1 -0
  173. package/dist/esm/components/builtin/Slot/register.js +22 -0
  174. package/dist/esm/components/builtin/Slot/register.js.map +1 -0
  175. package/dist/esm/components/builtin/constants.js +1 -0
  176. package/dist/esm/components/builtin/constants.js.map +1 -1
  177. package/dist/esm/components/builtin/index.js +8 -6
  178. package/dist/esm/components/builtin/index.js.map +1 -1
  179. package/dist/esm/components/builtin/register.js +3 -0
  180. package/dist/esm/components/builtin/register.js.map +1 -1
  181. package/dist/esm/components/hooks/usePageSnippets.js +1 -1
  182. package/dist/esm/components/hooks/usePageSnippets.js.map +1 -1
  183. package/dist/esm/components/page/Page.js +3 -4
  184. package/dist/esm/components/page/Page.js.map +1 -1
  185. package/dist/esm/components/page/PageHead.js +1 -1
  186. package/dist/esm/components/page/PageHead.js.map +1 -1
  187. package/dist/esm/components/shared/BackgroundsContainer/index.js +5 -3
  188. package/dist/esm/components/shared/BackgroundsContainer/index.js.map +1 -1
  189. package/dist/esm/controls/index.js +17 -7
  190. package/dist/esm/controls/index.js.map +1 -1
  191. package/dist/esm/core/index.js +4 -2
  192. package/dist/esm/core/index.js.map +1 -1
  193. package/dist/esm/index.js +2 -2
  194. package/dist/esm/index.js.map +1 -1
  195. package/dist/esm/jest-setup.js +2 -1
  196. package/dist/esm/jest-setup.js.map +1 -1
  197. package/dist/esm/next/api-handler/handlers/manifest.js +4 -2
  198. package/dist/esm/next/api-handler/handlers/manifest.js.map +1 -1
  199. package/dist/esm/next/api-handler/handlers/webhook/index.js +38 -0
  200. package/dist/esm/next/api-handler/handlers/webhook/index.js.map +1 -0
  201. package/dist/esm/next/api-handler/handlers/webhook/site-published.js +11 -0
  202. package/dist/esm/next/api-handler/handlers/webhook/site-published.js.map +1 -0
  203. package/dist/esm/next/api-handler/handlers/webhook/types.js +21 -0
  204. package/dist/esm/next/api-handler/handlers/webhook/types.js.map +1 -0
  205. package/dist/esm/next/api-handler/index.js +7 -7
  206. package/dist/esm/next/api-handler/index.js.map +1 -1
  207. package/dist/esm/next/client.js +133 -17
  208. package/dist/esm/next/client.js.map +1 -1
  209. package/dist/esm/next/components/MakeswiftComponent.js +26 -0
  210. package/dist/esm/next/components/MakeswiftComponent.js.map +1 -0
  211. package/dist/esm/next/components/Slot.js +16 -0
  212. package/dist/esm/next/components/Slot.js.map +1 -0
  213. package/dist/esm/next/components/SlotProvider.js +17 -0
  214. package/dist/esm/next/components/SlotProvider.js.map +1 -0
  215. package/dist/esm/next/components/page.js +24 -20
  216. package/dist/esm/next/components/page.js.map +1 -1
  217. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +4 -3
  218. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  219. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js +3 -3
  220. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  221. package/dist/esm/next/document.js +1 -1
  222. package/dist/esm/next/document.js.map +1 -1
  223. package/dist/esm/next/draft-mode/draft-mode-script.js +7 -3
  224. package/dist/esm/next/draft-mode/draft-mode-script.js.map +1 -1
  225. package/dist/esm/next/index.js +6 -2
  226. package/dist/esm/next/index.js.map +1 -1
  227. package/dist/esm/next/preview-mode.js +4 -1
  228. package/dist/esm/next/preview-mode.js.map +1 -1
  229. package/dist/esm/prop-controllers/introspection.js +2 -2
  230. package/dist/esm/prop-controllers/introspection.js.map +1 -1
  231. package/dist/esm/react.js +2 -4
  232. package/dist/esm/react.js.map +1 -1
  233. package/dist/esm/runtimes/react/components/Document.js +3 -2
  234. package/dist/esm/runtimes/react/components/Document.js.map +1 -1
  235. package/dist/esm/runtimes/react/components/{DocumentReference.js → DocumentRoot.js} +7 -7
  236. package/dist/esm/runtimes/react/components/DocumentRoot.js.map +1 -0
  237. package/dist/esm/runtimes/react/components/Element.js +11 -23
  238. package/dist/esm/runtimes/react/components/Element.js.map +1 -1
  239. package/dist/esm/runtimes/react/components/ElementReference.js +3 -1
  240. package/dist/esm/runtimes/react/components/ElementReference.js.map +1 -1
  241. package/dist/esm/runtimes/react/components/ElementRegistration.js +31 -0
  242. package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -0
  243. package/dist/esm/runtimes/react/components/LiveProvider.js +9 -7
  244. package/dist/esm/runtimes/react/components/LiveProvider.js.map +1 -1
  245. package/dist/esm/runtimes/react/components/PreviewProvider.js +8 -21
  246. package/dist/esm/runtimes/react/components/PreviewProvider.js.map +1 -1
  247. package/dist/esm/runtimes/react/components/RuntimeProvider.js +23 -5
  248. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  249. package/dist/esm/runtimes/react/controls/group.js +23 -0
  250. package/dist/esm/runtimes/react/controls/group.js.map +1 -0
  251. package/dist/esm/runtimes/react/hooks/makeswift-api.js +11 -9
  252. package/dist/esm/runtimes/react/hooks/makeswift-api.js.map +1 -1
  253. package/dist/esm/runtimes/react/hooks/use-cache-data.js +11 -0
  254. package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -0
  255. package/dist/esm/runtimes/react/hooks/use-dispatch.js +2 -3
  256. package/dist/esm/runtimes/react/hooks/use-dispatch.js.map +1 -1
  257. package/dist/esm/runtimes/react/hooks/use-document-context.js +22 -0
  258. package/dist/esm/runtimes/react/hooks/use-document-context.js.map +1 -0
  259. package/dist/esm/runtimes/react/hooks/use-element-id.js +1 -1
  260. package/dist/esm/runtimes/react/hooks/use-element-id.js.map +1 -1
  261. package/dist/esm/runtimes/react/hooks/use-react-runtime.js +15 -0
  262. package/dist/esm/runtimes/react/hooks/use-react-runtime.js.map +1 -0
  263. package/dist/esm/runtimes/react/hooks/use-register-document.js +18 -0
  264. package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -0
  265. package/dist/esm/runtimes/react/hooks/use-resolved-props.js +1 -1
  266. package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  267. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js +5 -5
  268. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  269. package/dist/esm/runtimes/react/hooks/use-store.js +6 -3
  270. package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
  271. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js +14 -0
  272. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -0
  273. package/dist/esm/{next/context/makeswift-host-api-client.js → runtimes/react/host-api-client.js} +1 -1
  274. package/dist/esm/runtimes/react/host-api-client.js.map +1 -0
  275. package/dist/esm/runtimes/react/index.js +5 -5
  276. package/dist/esm/runtimes/react/index.js.map +1 -1
  277. package/dist/esm/runtimes/react/react-runtime.js +0 -24
  278. package/dist/esm/runtimes/react/react-runtime.js.map +1 -1
  279. package/dist/esm/runtimes/react/runtime-core.js +2 -17
  280. package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
  281. package/dist/esm/state/actions.js +29 -14
  282. package/dist/esm/state/actions.js.map +1 -1
  283. package/dist/esm/state/makeswift-api-client.js +103 -18
  284. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  285. package/dist/esm/state/mixins/setup-teardown.js +11 -0
  286. package/dist/esm/state/mixins/setup-teardown.js.map +1 -0
  287. package/dist/esm/state/modules/api-resources.js +66 -25
  288. package/dist/esm/state/modules/api-resources.js.map +1 -1
  289. package/dist/esm/state/modules/element-trees.js +14 -7
  290. package/dist/esm/state/modules/element-trees.js.map +1 -1
  291. package/dist/esm/state/modules/localized-resources-map.js +53 -0
  292. package/dist/esm/state/modules/localized-resources-map.js.map +1 -0
  293. package/dist/esm/state/modules/read-only-documents.js +13 -12
  294. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  295. package/dist/esm/state/modules/read-write-documents.js +9 -8
  296. package/dist/esm/state/modules/read-write-documents.js.map +1 -1
  297. package/dist/esm/state/react-builder-preview.js +18 -64
  298. package/dist/esm/state/react-builder-preview.js.map +1 -1
  299. package/dist/esm/state/react-page.js +73 -9
  300. package/dist/esm/state/react-page.js.map +1 -1
  301. package/dist/esm/utils/branded.js +1 -0
  302. package/dist/esm/utils/branded.js.map +1 -0
  303. package/dist/esm/utils/canonicalize.js +15 -0
  304. package/dist/esm/utils/canonicalize.js.map +1 -0
  305. package/dist/esm/utils/deterministic-uuid.js +11 -0
  306. package/dist/esm/utils/deterministic-uuid.js.map +1 -0
  307. package/dist/esm/utils/is-server.js +7 -0
  308. package/dist/esm/utils/is-server.js.map +1 -0
  309. package/dist/esm/utils/serializeState.js +18 -0
  310. package/dist/esm/utils/serializeState.js.map +1 -0
  311. package/dist/esm/utils/tests/element-data-test-test.js +10 -9
  312. package/dist/esm/utils/tests/element-data-test-test.js.map +1 -1
  313. package/dist/types/api/{graphql/fragments.d.ts → fragments.d.ts} +1 -1
  314. package/dist/types/api/fragments.d.ts.map +1 -0
  315. package/dist/types/api/index.d.ts +2 -2
  316. package/dist/types/api/index.d.ts.map +1 -1
  317. package/dist/types/api/react.d.ts +28 -22
  318. package/dist/types/api/react.d.ts.map +1 -1
  319. package/dist/types/api/types.d.ts +18 -0
  320. package/dist/types/api/types.d.ts.map +1 -0
  321. package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
  322. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  323. package/dist/types/components/builtin/Slot/Slot.d.ts +8 -0
  324. package/dist/types/components/builtin/Slot/Slot.d.ts.map +1 -0
  325. package/dist/types/components/builtin/Slot/index.d.ts +2 -0
  326. package/dist/types/components/builtin/Slot/index.d.ts.map +1 -0
  327. package/dist/types/components/builtin/Slot/register.d.ts +3 -0
  328. package/dist/types/components/builtin/Slot/register.d.ts.map +1 -0
  329. package/dist/types/components/builtin/constants.d.ts +1 -0
  330. package/dist/types/components/builtin/constants.d.ts.map +1 -1
  331. package/dist/types/components/builtin/index.d.ts +1 -0
  332. package/dist/types/components/builtin/index.d.ts.map +1 -1
  333. package/dist/types/components/builtin/register.d.ts.map +1 -1
  334. package/dist/types/components/hooks/usePageSnippets.d.ts +1 -1
  335. package/dist/types/components/hooks/usePageSnippets.d.ts.map +1 -1
  336. package/dist/types/components/page/Page.d.ts +4 -3
  337. package/dist/types/components/page/Page.d.ts.map +1 -1
  338. package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  339. package/dist/types/controls/index.d.ts +1 -1
  340. package/dist/types/controls/index.d.ts.map +1 -1
  341. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +4 -4
  342. package/dist/types/core/index.d.ts +1 -1
  343. package/dist/types/core/index.d.ts.map +1 -1
  344. package/dist/types/index.d.ts +1 -1
  345. package/dist/types/index.d.ts.map +1 -1
  346. package/dist/types/locale.d.ts +1 -1
  347. package/dist/types/next/api-handler/handlers/manifest.d.ts +1 -0
  348. package/dist/types/next/api-handler/handlers/manifest.d.ts.map +1 -1
  349. package/dist/types/next/api-handler/handlers/webhook/index.d.ts +21 -0
  350. package/dist/types/next/api-handler/handlers/webhook/index.d.ts.map +1 -0
  351. package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts +4 -0
  352. package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts.map +1 -0
  353. package/dist/types/next/api-handler/handlers/webhook/types.d.ts +121 -0
  354. package/dist/types/next/api-handler/handlers/webhook/types.d.ts.map +1 -0
  355. package/dist/types/next/api-handler/index.d.ts +4 -3
  356. package/dist/types/next/api-handler/index.d.ts.map +1 -1
  357. package/dist/types/next/client.d.ts +356 -50
  358. package/dist/types/next/client.d.ts.map +1 -1
  359. package/dist/types/next/components/MakeswiftComponent.d.ts +10 -0
  360. package/dist/types/next/components/MakeswiftComponent.d.ts.map +1 -0
  361. package/dist/types/next/components/Slot.d.ts +10 -0
  362. package/dist/types/next/components/Slot.d.ts.map +1 -0
  363. package/dist/types/next/components/SlotProvider.d.ts +12 -0
  364. package/dist/types/next/components/SlotProvider.d.ts.map +1 -0
  365. package/dist/types/next/components/page.d.ts +1 -1
  366. package/dist/types/next/components/page.d.ts.map +1 -1
  367. package/dist/types/next/components/tests/controls/font-control.test.d.ts +2 -0
  368. package/dist/types/next/components/tests/controls/font-control.test.d.ts.map +1 -0
  369. package/dist/types/next/components/tests/controls/group-control.test.d.ts +2 -0
  370. package/dist/types/next/components/tests/controls/group-control.test.d.ts.map +1 -0
  371. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +3 -2
  372. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  373. package/dist/types/next/components/tests/global-element-rendering.test.d.ts +3 -0
  374. package/dist/types/next/components/tests/global-element-rendering.test.d.ts.map +1 -0
  375. package/dist/types/next/components/tests/makeswift-component-rendering.test.d.ts +3 -0
  376. package/dist/types/next/components/tests/makeswift-component-rendering.test.d.ts.map +1 -0
  377. package/dist/types/next/document.d.ts +5 -1
  378. package/dist/types/next/document.d.ts.map +1 -1
  379. package/dist/types/next/draft-mode/draft-mode-script.d.ts.map +1 -1
  380. package/dist/types/next/index.d.ts +3 -1
  381. package/dist/types/next/index.d.ts.map +1 -1
  382. package/dist/types/next/preview-mode.d.ts.map +1 -1
  383. package/dist/types/next/tests/client.get-component-snapshot.test.d.ts +2 -0
  384. package/dist/types/next/tests/client.get-component-snapshot.test.d.ts.map +1 -0
  385. package/dist/types/react.d.ts +1 -1
  386. package/dist/types/react.d.ts.map +1 -1
  387. package/dist/types/runtimes/react/components/Document.d.ts +1 -1
  388. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  389. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +9 -0
  390. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -0
  391. package/dist/types/runtimes/react/components/Element.d.ts +3 -3
  392. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  393. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  394. package/dist/types/runtimes/react/components/ElementRegistration.d.ts +10 -0
  395. package/dist/types/runtimes/react/components/ElementRegistration.d.ts.map +1 -0
  396. package/dist/types/runtimes/react/components/LiveProvider.d.ts +2 -10
  397. package/dist/types/runtimes/react/components/LiveProvider.d.ts.map +1 -1
  398. package/dist/types/runtimes/react/components/PreviewProvider.d.ts +2 -10
  399. package/dist/types/runtimes/react/components/PreviewProvider.d.ts.map +1 -1
  400. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +7 -11
  401. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  402. package/dist/types/runtimes/react/controls/group.d.ts +11 -0
  403. package/dist/types/runtimes/react/controls/group.d.ts.map +1 -0
  404. package/dist/types/runtimes/react/hooks/makeswift-api.d.ts +2 -3
  405. package/dist/types/runtimes/react/hooks/makeswift-api.d.ts.map +1 -1
  406. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +3 -0
  407. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -0
  408. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts.map +1 -1
  409. package/dist/types/runtimes/react/hooks/use-document-context.d.ts +11 -0
  410. package/dist/types/runtimes/react/hooks/use-document-context.d.ts.map +1 -0
  411. package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts +5 -0
  412. package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts.map +1 -0
  413. package/dist/types/runtimes/react/hooks/use-register-document.d.ts +6 -0
  414. package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -0
  415. package/dist/types/runtimes/react/hooks/use-store.d.ts +1 -1
  416. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  417. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +6 -0
  418. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -0
  419. package/dist/types/{next/context/makeswift-host-api-client.d.ts → runtimes/react/host-api-client.d.ts} +1 -1
  420. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -0
  421. package/dist/types/runtimes/react/index.d.ts +3 -3
  422. package/dist/types/runtimes/react/index.d.ts.map +1 -1
  423. package/dist/types/runtimes/react/react-runtime.d.ts +0 -9
  424. package/dist/types/runtimes/react/react-runtime.d.ts.map +1 -1
  425. package/dist/types/runtimes/react/runtime-core.d.ts +0 -5
  426. package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
  427. package/dist/types/slate/test-helpers/slate-test-helper.d.ts +4 -4
  428. package/dist/types/state/actions.d.ts +45 -13
  429. package/dist/types/state/actions.d.ts.map +1 -1
  430. package/dist/types/state/makeswift-api-client.d.ts +18 -11
  431. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  432. package/dist/types/state/mixins/setup-teardown.d.ts +7 -0
  433. package/dist/types/state/mixins/setup-teardown.d.ts.map +1 -0
  434. package/dist/types/state/modules/__tests__/api-resources.test.d.ts +2 -0
  435. package/dist/types/state/modules/__tests__/api-resources.test.d.ts.map +1 -0
  436. package/dist/types/state/modules/__tests__/fixtures/element-trees.d.ts +1 -1
  437. package/dist/types/state/modules/__tests__/localized-resources-map.test.d.ts +2 -0
  438. package/dist/types/state/modules/__tests__/localized-resources-map.test.d.ts.map +1 -0
  439. package/dist/types/state/modules/api-resources.d.ts +8 -5
  440. package/dist/types/state/modules/api-resources.d.ts.map +1 -1
  441. package/dist/types/state/modules/element-trees.d.ts +2 -1
  442. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  443. package/dist/types/state/modules/localized-resources-map.d.ts +13 -0
  444. package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -0
  445. package/dist/types/state/modules/read-only-documents.d.ts +22 -5
  446. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  447. package/dist/types/state/modules/read-write-documents.d.ts +2 -2
  448. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
  449. package/dist/types/state/react-builder-preview.d.ts +5 -11
  450. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  451. package/dist/types/state/react-page.d.ts +8 -6
  452. package/dist/types/state/react-page.d.ts.map +1 -1
  453. package/dist/types/utils/__tests__/serializeState.test.d.ts +2 -0
  454. package/dist/types/utils/__tests__/serializeState.test.d.ts.map +1 -0
  455. package/dist/types/utils/branded.d.ts +7 -0
  456. package/dist/types/utils/branded.d.ts.map +1 -0
  457. package/dist/types/utils/canonicalize.d.ts +7 -0
  458. package/dist/types/utils/canonicalize.d.ts.map +1 -0
  459. package/dist/types/utils/canonicalize.test.d.ts +2 -0
  460. package/dist/types/utils/canonicalize.test.d.ts.map +1 -0
  461. package/dist/types/utils/deterministic-uuid.d.ts +2 -0
  462. package/dist/types/utils/deterministic-uuid.d.ts.map +1 -0
  463. package/dist/types/utils/is-server.d.ts +2 -0
  464. package/dist/types/utils/is-server.d.ts.map +1 -0
  465. package/dist/types/utils/serializeState.d.ts +3 -0
  466. package/dist/types/utils/serializeState.d.ts.map +1 -0
  467. package/dist/types/utils/tests/element-data-test-test.d.ts +6 -3
  468. package/dist/types/utils/tests/element-data-test-test.d.ts.map +1 -1
  469. package/package.json +5 -4
  470. package/dist/cjs/api/graphql/fragments.js.map +0 -1
  471. package/dist/cjs/api/graphql/types.js.map +0 -1
  472. package/dist/cjs/api/resource-types.js.map +0 -1
  473. package/dist/cjs/next/context/makeswift-host-api-client.js.map +0 -1
  474. package/dist/cjs/next/context/react-runtime.js.map +0 -1
  475. package/dist/cjs/runtimes/react/components/DocumentReference.js.map +0 -1
  476. package/dist/cjs/runtimes/react/hooks/use-document-key.js.map +0 -1
  477. package/dist/esm/api/graphql/fragments.js +0 -6
  478. package/dist/esm/api/graphql/fragments.js.map +0 -1
  479. package/dist/esm/api/graphql/types.js.map +0 -1
  480. package/dist/esm/api/resource-types.js +0 -8
  481. package/dist/esm/api/resource-types.js.map +0 -1
  482. package/dist/esm/next/context/makeswift-host-api-client.js.map +0 -1
  483. package/dist/esm/next/context/react-runtime.js +0 -19
  484. package/dist/esm/next/context/react-runtime.js.map +0 -1
  485. package/dist/esm/runtimes/react/components/DocumentReference.js.map +0 -1
  486. package/dist/esm/runtimes/react/hooks/use-document-key.js +0 -11
  487. package/dist/esm/runtimes/react/hooks/use-document-key.js.map +0 -1
  488. package/dist/types/api/graphql/fragments.d.ts.map +0 -1
  489. package/dist/types/api/graphql/types.d.ts +0 -8
  490. package/dist/types/api/graphql/types.d.ts.map +0 -1
  491. package/dist/types/api/resource-types.d.ts +0 -20
  492. package/dist/types/api/resource-types.d.ts.map +0 -1
  493. package/dist/types/next/context/makeswift-host-api-client.d.ts.map +0 -1
  494. package/dist/types/next/context/react-runtime.d.ts +0 -8
  495. package/dist/types/next/context/react-runtime.d.ts.map +0 -1
  496. package/dist/types/runtimes/react/components/DocumentReference.d.ts +0 -9
  497. package/dist/types/runtimes/react/components/DocumentReference.d.ts.map +0 -1
  498. package/dist/types/runtimes/react/hooks/use-document-key.d.ts +0 -4
  499. package/dist/types/runtimes/react/hooks/use-document-key.d.ts.map +0 -1
@@ -1,9 +1,23 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { Suspense, memo, useMemo } from "react";
4
- import { RuntimeProvider } from "../../runtimes/react";
5
- import { Page as PageMeta } from "../../components/page";
6
- import { MakeswiftHostApiClient } from "../../api/react";
4
+ import { useDispatch } from "../../runtimes/react/hooks/use-dispatch";
5
+ import { useUniversalDispatch } from "../../runtimes/react/hooks/use-universal-dispatch";
6
+ import { useCacheData } from "../../runtimes/react/hooks/use-cache-data";
7
+ import { Page as PageComponent } from "../../components/page";
8
+ import {
9
+ pageToRootDocument
10
+ } from "../client";
11
+ import { registerDocumentsEffect } from "../../state/actions";
12
+ function useRegisterPageDocument(pageDocument) {
13
+ const dispatch = useDispatch();
14
+ const rootDocuments = useMemo(
15
+ () => [pageToRootDocument(pageDocument)],
16
+ [pageDocument]
17
+ );
18
+ useUniversalDispatch(dispatch, registerDocumentsEffect, [rootDocuments]);
19
+ return rootDocuments[0];
20
+ }
7
21
  const Page = memo(({ snapshot, ...props }) => {
8
22
  if ("runtime" in props) {
9
23
  throw new Error(
@@ -11,26 +25,16 @@ const Page = memo(({ snapshot, ...props }) => {
11
25
  See our docs for more information on what's changed and instructions to migrate: https://docs.makeswift.com/migrations/0.15.0`
12
26
  );
13
27
  }
14
- const client = useMemo(
15
- () => new MakeswiftHostApiClient({
16
- uri: new URL("graphql", snapshot.apiOrigin).href,
17
- cacheData: snapshot.cacheData,
18
- localizedResourcesMap: snapshot.localizedResourcesMap,
19
- locale: snapshot.locale ? new Intl.Locale(snapshot.locale) : void 0
20
- }),
21
- [snapshot]
22
- );
23
- const localizedPage = snapshot.document.localizedPages.find(({ parentId }) => parentId == null);
24
- const rootElement = localizedPage ? { key: localizedPage.elementTreeId, data: localizedPage.data } : { key: snapshot.document.id, data: snapshot.document.data };
25
- const rootElements = /* @__PURE__ */ new Map([[rootElement.key, rootElement.data]]);
26
- return /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(RuntimeProvider, { client, rootElements, preview: snapshot.preview, children: /* @__PURE__ */ jsx(
27
- PageMeta,
28
+ useCacheData(snapshot.cacheData);
29
+ const rootDocument = useRegisterPageDocument(snapshot.document);
30
+ return /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(
31
+ PageComponent,
28
32
  {
29
- pageDocument: snapshot.document,
30
- documentKey: rootElement.key
33
+ page: snapshot.document,
34
+ rootDocument
31
35
  },
32
36
  snapshot.document.data.key
33
- ) }) });
37
+ ) });
34
38
  });
35
39
  export {
36
40
  Page
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/next/components/page.tsx"],"sourcesContent":["'use client'\n\nimport { Suspense, memo, useMemo } from 'react'\n\nimport { RuntimeProvider } from '../../runtimes/react'\nimport { Page as PageMeta } from '../../components/page'\nimport { MakeswiftHostApiClient } from '../../api/react'\nimport { MakeswiftPageSnapshot } from '../client'\n\nexport type PageProps = {\n snapshot: MakeswiftPageSnapshot\n}\n\nexport const Page = memo(({ snapshot, ...props }: PageProps) => {\n if ('runtime' in props) {\n throw new Error(\n `The \\`runtime\\` prop is no longer supported in the \\`@makeswift/runtime\\` \\`Page\\` component as of \\`0.15.0\\`.\nSee our docs for more information on what's changed and instructions to migrate: https://docs.makeswift.com/migrations/0.15.0`,\n )\n }\n const client = useMemo(\n () =>\n new MakeswiftHostApiClient({\n uri: new URL('graphql', snapshot.apiOrigin).href,\n cacheData: snapshot.cacheData,\n localizedResourcesMap: snapshot.localizedResourcesMap,\n locale: snapshot.locale ? new Intl.Locale(snapshot.locale) : undefined,\n }),\n [snapshot],\n )\n\n const localizedPage = snapshot.document.localizedPages.find(({ parentId }) => parentId == null)\n const rootElement = localizedPage\n ? { key: localizedPage.elementTreeId, data: localizedPage.data }\n : { key: snapshot.document.id, data: snapshot.document.data }\n\n const rootElements = new Map([[rootElement.key, rootElement.data]])\n\n return (\n <Suspense>\n <RuntimeProvider client={client} rootElements={rootElements} preview={snapshot.preview}>\n {/* We use a key here to reset the Snippets state in the PageMeta component */}\n <PageMeta\n key={snapshot.document.data.key}\n pageDocument={snapshot.document}\n documentKey={rootElement.key}\n />\n </RuntimeProvider>\n </Suspense>\n )\n})\n"],"mappings":";AA0CQ;AAxCR,SAAS,UAAU,MAAM,eAAe;AAExC,SAAS,uBAAuB;AAChC,SAAS,QAAQ,gBAAgB;AACjC,SAAS,8BAA8B;AAOhC,MAAM,OAAO,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,MAAiB;AAC9D,MAAI,aAAa,OAAO;AACtB,UAAM,IAAI;AAAA,MACR;AAAA;AAAA,IAEF;AAAA,EACF;AACA,QAAM,SAAS;AAAA,IACb,MACE,IAAI,uBAAuB;AAAA,MACzB,KAAK,IAAI,IAAI,WAAW,SAAS,SAAS,EAAE;AAAA,MAC5C,WAAW,SAAS;AAAA,MACpB,uBAAuB,SAAS;AAAA,MAChC,QAAQ,SAAS,SAAS,IAAI,KAAK,OAAO,SAAS,MAAM,IAAI;AAAA,IAC/D,CAAC;AAAA,IACH,CAAC,QAAQ;AAAA,EACX;AAEA,QAAM,gBAAgB,SAAS,SAAS,eAAe,KAAK,CAAC,EAAE,SAAS,MAAM,YAAY,IAAI;AAC9F,QAAM,cAAc,gBAChB,EAAE,KAAK,cAAc,eAAe,MAAM,cAAc,KAAK,IAC7D,EAAE,KAAK,SAAS,SAAS,IAAI,MAAM,SAAS,SAAS,KAAK;AAE9D,QAAM,eAAe,oBAAI,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY,IAAI,CAAC,CAAC;AAElE,SACE,oBAAC,YACC,8BAAC,mBAAgB,QAAgB,cAA4B,SAAS,SAAS,SAE7E;AAAA,IAAC;AAAA;AAAA,MAEC,cAAc,SAAS;AAAA,MACvB,aAAa,YAAY;AAAA;AAAA,IAFpB,SAAS,SAAS,KAAK;AAAA,EAG9B,GACF,GACF;AAEJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/next/components/page.tsx"],"sourcesContent":["'use client'\n\nimport { Suspense, memo, useMemo } from 'react'\n\nimport { useDispatch } from '../../runtimes/react/hooks/use-dispatch'\nimport { useUniversalDispatch } from '../../runtimes/react/hooks/use-universal-dispatch'\nimport { useCacheData } from '../../runtimes/react/hooks/use-cache-data'\n\nimport { Page as PageComponent } from '../../components/page'\nimport {\n type MakeswiftPageSnapshot,\n type MakeswiftPageDocument,\n pageToRootDocument,\n} from '../client'\nimport * as ReactPage from '../../state/react-page'\nimport { registerDocumentsEffect } from '../../state/actions'\n\nexport type PageProps = {\n snapshot: MakeswiftPageSnapshot\n}\n\nfunction useRegisterPageDocument(pageDocument: MakeswiftPageDocument): ReactPage.Document {\n const dispatch = useDispatch()\n const rootDocuments: [ReactPage.Document] = useMemo(\n () => [pageToRootDocument(pageDocument)],\n [pageDocument],\n )\n\n useUniversalDispatch(dispatch, registerDocumentsEffect, [rootDocuments])\n\n return rootDocuments[0]\n}\n\nexport const Page = memo(({ snapshot, ...props }: PageProps) => {\n if ('runtime' in props) {\n throw new Error(\n `The \\`runtime\\` prop is no longer supported in the \\`@makeswift/runtime\\` \\`Page\\` component as of \\`0.15.0\\`.\nSee our docs for more information on what's changed and instructions to migrate: https://docs.makeswift.com/migrations/0.15.0`,\n )\n }\n\n useCacheData(snapshot.cacheData)\n\n const rootDocument = useRegisterPageDocument(snapshot.document)\n\n return (\n <Suspense>\n {/* We use a key here to reset the Snippets state in the PageMeta component */}\n <PageComponent\n key={snapshot.document.data.key}\n page={snapshot.document}\n rootDocument={rootDocument}\n />\n </Suspense>\n )\n})\n"],"mappings":";AAgDM;AA9CN,SAAS,UAAU,MAAM,eAAe;AAExC,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAE7B,SAAS,QAAQ,qBAAqB;AACtC;AAAA,EAGE;AAAA,OACK;AAEP,SAAS,+BAA+B;AAMxC,SAAS,wBAAwB,cAAyD;AACxF,QAAM,WAAW,YAAY;AAC7B,QAAM,gBAAsC;AAAA,IAC1C,MAAM,CAAC,mBAAmB,YAAY,CAAC;AAAA,IACvC,CAAC,YAAY;AAAA,EACf;AAEA,uBAAqB,UAAU,yBAAyB,CAAC,aAAa,CAAC;AAEvE,SAAO,cAAc,CAAC;AACxB;AAEO,MAAM,OAAO,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,MAAiB;AAC9D,MAAI,aAAa,OAAO;AACtB,UAAM,IAAI;AAAA,MACR;AAAA;AAAA,IAEF;AAAA,EACF;AAEA,eAAa,SAAS,SAAS;AAE/B,QAAM,eAAe,wBAAwB,SAAS,QAAQ;AAE9D,SACE,oBAAC,YAEC;AAAA,IAAC;AAAA;AAAA,MAEC,MAAM,SAAS;AAAA,MACf;AAAA;AAAA,IAFK,SAAS,SAAS,KAAK;AAAA,EAG9B,GACF;AAEJ,CAAC;","names":[]}
@@ -4,7 +4,7 @@ import { act } from "react-dom/test-utils";
4
4
  import { render, screen } from "@testing-library/react";
5
5
  import "@testing-library/jest-dom";
6
6
  import { Page } from "../../page";
7
- import { ReactRuntimeProvider } from "../../../context/react-runtime";
7
+ import { ReactRuntimeProvider } from "../../../../runtimes/react";
8
8
  import { ReactRuntime } from "../../../../react";
9
9
  import {
10
10
  createMakeswiftPageSnapshot,
@@ -18,6 +18,7 @@ const parseStringifiedProp = (prop) => prop === "undefined" ? void 0 : JSON.pars
18
18
  async function testPageControlPropRendering(controlDefinition, {
19
19
  toData,
20
20
  value,
21
+ locale,
21
22
  cacheData,
22
23
  expectedRenders,
23
24
  registerComponents,
@@ -41,7 +42,7 @@ async function testPageControlPropRendering(controlDefinition, {
41
42
  ],
42
43
  ROOT_ID
43
44
  );
44
- const snapshot = createMakeswiftPageSnapshot(elementData, {}, cacheData);
45
+ const snapshot = createMakeswiftPageSnapshot(elementData, { locale, cacheData });
45
46
  const runtime = new ReactRuntime();
46
47
  registerComponents?.(runtime);
47
48
  runtime.registerComponent(
@@ -63,7 +64,7 @@ async function testPageControlPropRendering(controlDefinition, {
63
64
  );
64
65
  await act(
65
66
  async () => render(
66
- /* @__PURE__ */ jsx(ReactRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx(Page, { snapshot }) })
67
+ /* @__PURE__ */ jsx(ReactRuntimeProvider, { runtime, previewMode: false, children: /* @__PURE__ */ jsx(Page, { snapshot }) })
67
68
  )
68
69
  );
69
70
  if (action) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/next/components/tests/controls/page-control-prop-rendering.tsx"],"sourcesContent":["/** @jest-environment jsdom */\n\nimport { forwardRef, useRef, isValidElement } from 'react'\nimport { act } from 'react-dom/test-utils'\nimport { render, screen } from '@testing-library/react'\nimport '@testing-library/jest-dom'\n\nimport { type Data, type ValueType, type DataType, ControlDefinition } from '@makeswift/controls'\n\nimport { ElementData } from '../../../../state/react-page'\nimport { Page } from '../../page'\nimport { ReactRuntimeProvider } from '../../../context/react-runtime'\nimport { ReactRuntime } from '../../../../react'\n\nimport {\n createMakeswiftPageSnapshot,\n createRootComponent,\n} from '../../../../utils/tests/element-data-test-test'\n\nimport { type MakeswiftPageSnapshot } from '../../../../next'\n\nconst ROOT_ID = '00000000-0000-0000-0000-000000000000'\nconst ELEMENT_ID = '11111111-1111-1111-1111-111111111111'\n\nconst renderProp = (prop: any) =>\n prop === undefined ? 'undefined' : isValidElement(prop) ? prop : JSON.stringify(prop)\n\nconst propSnapshot = (prop: HTMLElement) =>\n prop.childElementCount ? prop.childNodes : parseStringifiedProp(prop.textContent ?? '')\n\nconst parseStringifiedProp = (prop: string) => (prop === 'undefined' ? undefined : JSON.parse(prop))\n\nexport async function testPageControlPropRendering<D extends ControlDefinition>(\n controlDefinition: D,\n {\n toData,\n value,\n cacheData,\n expectedRenders,\n registerComponents,\n action,\n rootElements = [],\n }: {\n toData?: (value: ValueType<D>) => DataType<D>\n value: ValueType<D> | undefined\n cacheData?: MakeswiftPageSnapshot['cacheData']\n expectedRenders?: number\n registerComponents?: (runtime: ReactRuntime) => void\n action?: (element: HTMLElement) => Promise<void>\n rootElements?: ElementData[]\n },\n) {\n // Arrange\n const controlData: DataType<D> | Data =\n value !== undefined ? (toData ? toData(value) : controlDefinition.toData(value)) : undefined\n\n const TestComponentType = 'TestComponent'\n const testId = 'test-id'\n const renderCountTestId = 'render-count-test-id'\n const elementData: ElementData = createRootComponent(\n [\n {\n key: ELEMENT_ID,\n type: TestComponentType,\n props: {\n propKey: controlData,\n },\n },\n ...rootElements,\n ],\n ROOT_ID,\n )\n const snapshot = createMakeswiftPageSnapshot(elementData, {}, cacheData)\n const runtime = new ReactRuntime()\n registerComponents?.(runtime)\n\n // Act\n runtime.registerComponent(\n forwardRef<HTMLDivElement, { propKey?: any }>(({ propKey }, ref) => {\n const renderCount = useRef(0)\n ++renderCount.current\n\n return (\n <div ref={ref}>\n <div data-testid={renderCountTestId}>{renderCount.current}</div>\n <div data-testid={testId}>{renderProp(propKey)}</div>\n </div>\n )\n }),\n {\n type: TestComponentType,\n label: 'TestComponent',\n props: {\n propKey: controlDefinition as any,\n },\n },\n )\n\n // Assert\n await act(async () =>\n render(\n <ReactRuntimeProvider runtime={runtime}>\n <Page snapshot={snapshot} />\n </ReactRuntimeProvider>,\n ),\n )\n\n if (action) {\n await act(async () => {\n await action(screen.getByTestId(testId))\n })\n }\n\n expect(snapshot).toMatchSnapshot('snapshot')\n expect(propSnapshot(screen.getByTestId(testId))).toMatchSnapshot('resolvedValue')\n\n if (expectedRenders != null) {\n expect(Number(screen.getByTestId(renderCountTestId).textContent)).toBe(expectedRenders)\n }\n}\n"],"mappings":"AAmFQ,SACE,KADF;AAjFR,SAAS,YAAY,QAAQ,sBAAsB;AACnD,SAAS,WAAW;AACpB,SAAS,QAAQ,cAAc;AAC/B,OAAO;AAKP,SAAS,YAAY;AACrB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAE7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAIP,MAAM,UAAU;AAChB,MAAM,aAAa;AAEnB,MAAM,aAAa,CAAC,SAClB,SAAS,SAAY,cAAc,eAAe,IAAI,IAAI,OAAO,KAAK,UAAU,IAAI;AAEtF,MAAM,eAAe,CAAC,SACpB,KAAK,oBAAoB,KAAK,aAAa,qBAAqB,KAAK,eAAe,EAAE;AAExF,MAAM,uBAAuB,CAAC,SAAkB,SAAS,cAAc,SAAY,KAAK,MAAM,IAAI;AAElG,eAAsB,6BACpB,mBACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe,CAAC;AAClB,GASA;AAEA,QAAM,cACJ,UAAU,SAAa,SAAS,OAAO,KAAK,IAAI,kBAAkB,OAAO,KAAK,IAAK;AAErF,QAAM,oBAAoB;AAC1B,QAAM,SAAS;AACf,QAAM,oBAAoB;AAC1B,QAAM,cAA2B;AAAA,IAC/B;AAAA,MACE;AAAA,QACE,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,UACL,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACA,QAAM,WAAW,4BAA4B,aAAa,CAAC,GAAG,SAAS;AACvE,QAAM,UAAU,IAAI,aAAa;AACjC,uBAAqB,OAAO;AAG5B,UAAQ;AAAA,IACN,WAA8C,CAAC,EAAE,QAAQ,GAAG,QAAQ;AAClE,YAAM,cAAc,OAAO,CAAC;AAC5B,QAAE,YAAY;AAEd,aACE,qBAAC,SAAI,KACH;AAAA,4BAAC,SAAI,eAAa,mBAAoB,sBAAY,SAAQ;AAAA,QAC1D,oBAAC,SAAI,eAAa,QAAS,qBAAW,OAAO,GAAE;AAAA,SACjD;AAAA,IAEJ,CAAC;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAGA,QAAM;AAAA,IAAI,YACR;AAAA,MACE,oBAAC,wBAAqB,SACpB,8BAAC,QAAK,UAAoB,GAC5B;AAAA,IACF;AAAA,EACF;AAEA,MAAI,QAAQ;AACV,UAAM,IAAI,YAAY;AACpB,YAAM,OAAO,OAAO,YAAY,MAAM,CAAC;AAAA,IACzC,CAAC;AAAA,EACH;AAEA,SAAO,QAAQ,EAAE,gBAAgB,UAAU;AAC3C,SAAO,aAAa,OAAO,YAAY,MAAM,CAAC,CAAC,EAAE,gBAAgB,eAAe;AAEhF,MAAI,mBAAmB,MAAM;AAC3B,WAAO,OAAO,OAAO,YAAY,iBAAiB,EAAE,WAAW,CAAC,EAAE,KAAK,eAAe;AAAA,EACxF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/next/components/tests/controls/page-control-prop-rendering.tsx"],"sourcesContent":["/** @jest-environment jsdom */\n\nimport { forwardRef, useRef, isValidElement } from 'react'\nimport { act } from 'react-dom/test-utils'\nimport { render, screen } from '@testing-library/react'\nimport '@testing-library/jest-dom'\n\nimport { type Data, type ValueType, type DataType, ControlDefinition } from '@makeswift/controls'\n\nimport { ElementData } from '../../../../state/react-page'\nimport { Page } from '../../page'\nimport { ReactRuntimeProvider } from '../../../../runtimes/react'\nimport { ReactRuntime } from '../../../../react'\n\nimport {\n createMakeswiftPageSnapshot,\n createRootComponent,\n} from '../../../../utils/tests/element-data-test-test'\n\nimport { type MakeswiftPageSnapshot } from '../../../../next'\n\nconst ROOT_ID = '00000000-0000-0000-0000-000000000000'\nconst ELEMENT_ID = '11111111-1111-1111-1111-111111111111'\n\nconst renderProp = (prop: any) =>\n prop === undefined ? 'undefined' : isValidElement(prop) ? prop : JSON.stringify(prop)\n\nconst propSnapshot = (prop: HTMLElement) =>\n prop.childElementCount ? prop.childNodes : parseStringifiedProp(prop.textContent ?? '')\n\nconst parseStringifiedProp = (prop: string) => (prop === 'undefined' ? undefined : JSON.parse(prop))\n\nexport async function testPageControlPropRendering<D extends ControlDefinition>(\n controlDefinition: D,\n {\n toData,\n value,\n locale,\n cacheData,\n expectedRenders,\n registerComponents,\n action,\n rootElements = [],\n }: {\n toData?: (value: ValueType<D>) => DataType<D>\n value: ValueType<D> | undefined\n locale?: string | null\n cacheData?: Partial<MakeswiftPageSnapshot['cacheData']>\n expectedRenders?: number\n registerComponents?: (runtime: ReactRuntime) => void\n action?: (element: HTMLElement) => Promise<void>\n rootElements?: ElementData[]\n },\n) {\n // Arrange\n const controlData: DataType<D> | Data =\n value !== undefined ? (toData ? toData(value) : controlDefinition.toData(value)) : undefined\n\n const TestComponentType = 'TestComponent'\n const testId = 'test-id'\n const renderCountTestId = 'render-count-test-id'\n const elementData: ElementData = createRootComponent(\n [\n {\n key: ELEMENT_ID,\n type: TestComponentType,\n props: {\n propKey: controlData,\n },\n },\n ...rootElements,\n ],\n ROOT_ID,\n )\n const snapshot = createMakeswiftPageSnapshot(elementData, { locale, cacheData })\n const runtime = new ReactRuntime()\n registerComponents?.(runtime)\n\n // Act\n runtime.registerComponent(\n forwardRef<HTMLDivElement, { propKey?: any }>(({ propKey }, ref) => {\n const renderCount = useRef(0)\n ++renderCount.current\n\n return (\n <div ref={ref}>\n <div data-testid={renderCountTestId}>{renderCount.current}</div>\n <div data-testid={testId}>{renderProp(propKey)}</div>\n </div>\n )\n }),\n {\n type: TestComponentType,\n label: 'TestComponent',\n props: {\n propKey: controlDefinition as any,\n },\n },\n )\n\n // Assert\n await act(async () =>\n render(\n <ReactRuntimeProvider runtime={runtime} previewMode={false}>\n <Page snapshot={snapshot} />\n </ReactRuntimeProvider>,\n ),\n )\n\n if (action) {\n await act(async () => {\n await action(screen.getByTestId(testId))\n })\n }\n\n expect(snapshot).toMatchSnapshot('snapshot')\n expect(propSnapshot(screen.getByTestId(testId))).toMatchSnapshot('resolvedValue')\n\n if (expectedRenders != null) {\n expect(Number(screen.getByTestId(renderCountTestId).textContent)).toBe(expectedRenders)\n }\n}\n"],"mappings":"AAqFQ,SACE,KADF;AAnFR,SAAS,YAAY,QAAQ,sBAAsB;AACnD,SAAS,WAAW;AACpB,SAAS,QAAQ,cAAc;AAC/B,OAAO;AAKP,SAAS,YAAY;AACrB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAE7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAIP,MAAM,UAAU;AAChB,MAAM,aAAa;AAEnB,MAAM,aAAa,CAAC,SAClB,SAAS,SAAY,cAAc,eAAe,IAAI,IAAI,OAAO,KAAK,UAAU,IAAI;AAEtF,MAAM,eAAe,CAAC,SACpB,KAAK,oBAAoB,KAAK,aAAa,qBAAqB,KAAK,eAAe,EAAE;AAExF,MAAM,uBAAuB,CAAC,SAAkB,SAAS,cAAc,SAAY,KAAK,MAAM,IAAI;AAElG,eAAsB,6BACpB,mBACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe,CAAC;AAClB,GAUA;AAEA,QAAM,cACJ,UAAU,SAAa,SAAS,OAAO,KAAK,IAAI,kBAAkB,OAAO,KAAK,IAAK;AAErF,QAAM,oBAAoB;AAC1B,QAAM,SAAS;AACf,QAAM,oBAAoB;AAC1B,QAAM,cAA2B;AAAA,IAC/B;AAAA,MACE;AAAA,QACE,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,UACL,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACA,QAAM,WAAW,4BAA4B,aAAa,EAAE,QAAQ,UAAU,CAAC;AAC/E,QAAM,UAAU,IAAI,aAAa;AACjC,uBAAqB,OAAO;AAG5B,UAAQ;AAAA,IACN,WAA8C,CAAC,EAAE,QAAQ,GAAG,QAAQ;AAClE,YAAM,cAAc,OAAO,CAAC;AAC5B,QAAE,YAAY;AAEd,aACE,qBAAC,SAAI,KACH;AAAA,4BAAC,SAAI,eAAa,mBAAoB,sBAAY,SAAQ;AAAA,QAC1D,oBAAC,SAAI,eAAa,QAAS,qBAAW,OAAO,GAAE;AAAA,SACjD;AAAA,IAEJ,CAAC;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAGA,QAAM;AAAA,IAAI,YACR;AAAA,MACE,oBAAC,wBAAqB,SAAkB,aAAa,OACnD,8BAAC,QAAK,UAAoB,GAC5B;AAAA,IACF;AAAA,EACF;AAEA,MAAI,QAAQ;AACV,UAAM,IAAI,YAAY;AACpB,YAAM,OAAO,OAAO,YAAY,MAAM,CAAC;AAAA,IACzC,CAAC;AAAA,EACH;AAEA,SAAO,QAAQ,EAAE,gBAAgB,UAAU;AAC3C,SAAO,aAAa,OAAO,YAAY,MAAM,CAAC,CAAC,EAAE,gBAAgB,eAAe;AAEhF,MAAI,mBAAmB,MAAM;AAC3B,WAAO,OAAO,OAAO,YAAY,iBAAiB,EAAE,WAAW,CAAC,EAAE,KAAK,eAAe;AAAA,EACxF;AACF;","names":[]}
@@ -7,7 +7,7 @@ import {
7
7
  import { randomUUID } from "crypto";
8
8
  import { Page } from "../../page";
9
9
  import { act } from "react-dom/test-utils";
10
- import { ReactRuntimeProvider } from "../../../context/react-runtime";
10
+ import { ReactRuntimeProvider } from "../../../../runtimes/react";
11
11
  import { ReactRuntime } from "../../../../react";
12
12
  import {
13
13
  createMakeswiftPageSnapshot,
@@ -41,7 +41,7 @@ const pagePropControllerTest = (propDef, value, component, assert, options) => d
41
41
  });
42
42
  await act(
43
43
  async () => render(
44
- /* @__PURE__ */ jsx(ReactRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx(Page, { snapshot }) })
44
+ /* @__PURE__ */ jsx(ReactRuntimeProvider, { runtime, previewMode: false, children: /* @__PURE__ */ jsx(Page, { snapshot }) })
45
45
  )
46
46
  );
47
47
  assert(screen.getByTestId(testId));
@@ -74,7 +74,7 @@ const pagePropControllerTest = (propDef, value, component, assert, options) => d
74
74
  });
75
75
  await act(
76
76
  async () => render(
77
- /* @__PURE__ */ jsx(ReactRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx(Page, { snapshot }) })
77
+ /* @__PURE__ */ jsx(ReactRuntimeProvider, { runtime, previewMode: false, children: /* @__PURE__ */ jsx(Page, { snapshot }) })
78
78
  )
79
79
  );
80
80
  assert(screen.getByTestId(testId));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/next/components/tests/prop-controllers/page-prop-controller.tsx"],"sourcesContent":["/** @jest-environment jsdom */\n\nimport { render, screen } from '@testing-library/react'\nimport '@testing-library/jest-dom'\n\nimport {\n type OptionsType,\n Types,\n type Descriptor,\n type PropDef,\n type Value,\n} from '@makeswift/prop-controllers'\n\nimport { type ElementData, type ComponentType } from '../../../../state/react-page'\nimport { randomUUID } from 'crypto'\n\nimport { Page } from '../../page'\nimport { act } from 'react-dom/test-utils'\nimport { ReactRuntimeProvider } from '../../../context/react-runtime'\nimport { ReactRuntime } from '../../../../react'\nimport {\n createMakeswiftPageSnapshot,\n createRootComponent,\n} from '../../../../utils/tests/element-data-test-test'\n\nexport const pagePropControllerTest = <\n P extends PropDef & ((options?: any) => any),\n C extends ComponentType<{ propKey: Value<P> | undefined }>,\n>(\n propDef: P,\n value: Value<typeof propDef>,\n component: (testId: string) => C,\n assert: (element: HTMLElement) => void,\n options?: OptionsType<P>,\n) =>\n describe('Page', () => {\n test(`can render ${propDef.type} v0 data`, async () => {\n // Arrange\n const descriptorV0: Descriptor<typeof propDef> = {\n type: propDef.type,\n options,\n }\n\n const TestComponentType = 'TestComponent'\n const testId = 'test-id'\n\n const elementData: ElementData = createRootComponent([\n {\n key: randomUUID(),\n type: TestComponentType,\n props: {\n propKey: propDef.toPropData(value, descriptorV0),\n },\n },\n ])\n const snapshot = createMakeswiftPageSnapshot(elementData)\n const runtime = new ReactRuntime()\n\n runtime.registerComponent(component(testId), {\n type: TestComponentType,\n label: 'TestComponent',\n props: {\n propKey: propDef(options),\n },\n })\n\n await act(async () =>\n render(\n <ReactRuntimeProvider runtime={runtime}>\n <Page snapshot={snapshot} />\n </ReactRuntimeProvider>,\n ),\n )\n\n assert(screen.getByTestId(testId))\n })\n\n test(`can render ${propDef.type} v1 data`, async () => {\n // Arrange\n const gapXDefinitionV1: Descriptor<typeof propDef> = {\n type: Types.GapX,\n version: 1,\n options: {},\n }\n\n const TestComponentType = 'TestComponent'\n const testId = 'test-id'\n const elementData: ElementData = createRootComponent([\n {\n key: randomUUID(),\n type: TestComponentType,\n props: {\n propKey: propDef.toPropData(value, gapXDefinitionV1),\n },\n },\n ])\n const snapshot = createMakeswiftPageSnapshot(elementData)\n const runtime = new ReactRuntime()\n\n runtime.registerComponent(component(testId), {\n type: TestComponentType,\n label: 'TestComponent',\n props: {\n propKey: propDef(options),\n },\n })\n\n await act(async () =>\n render(\n <ReactRuntimeProvider runtime={runtime}>\n <Page snapshot={snapshot} />\n </ReactRuntimeProvider>,\n ),\n )\n\n assert(screen.getByTestId(testId))\n })\n })\n"],"mappings":"AAqEY;AAnEZ,SAAS,QAAQ,cAAc;AAC/B,OAAO;AAEP;AAAA,EAEE;AAAA,OAIK;AAGP,SAAS,kBAAkB;AAE3B,SAAS,YAAY;AACrB,SAAS,WAAW;AACpB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEA,MAAM,yBAAyB,CAIpC,SACA,OACA,WACA,QACA,YAEA,SAAS,QAAQ,MAAM;AACrB,OAAK,cAAc,QAAQ,IAAI,YAAY,YAAY;AAErD,UAAM,eAA2C;AAAA,MAC/C,MAAM,QAAQ;AAAA,MACd;AAAA,IACF;AAEA,UAAM,oBAAoB;AAC1B,UAAM,SAAS;AAEf,UAAM,cAA2B,oBAAoB;AAAA,MACnD;AAAA,QACE,KAAK,WAAW;AAAA,QAChB,MAAM;AAAA,QACN,OAAO;AAAA,UACL,SAAS,QAAQ,WAAW,OAAO,YAAY;AAAA,QACjD;AAAA,MACF;AAAA,IACF,CAAC;AACD,UAAM,WAAW,4BAA4B,WAAW;AACxD,UAAM,UAAU,IAAI,aAAa;AAEjC,YAAQ,kBAAkB,UAAU,MAAM,GAAG;AAAA,MAC3C,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,QACL,SAAS,QAAQ,OAAO;AAAA,MAC1B;AAAA,IACF,CAAC;AAED,UAAM;AAAA,MAAI,YACR;AAAA,QACE,oBAAC,wBAAqB,SACpB,8BAAC,QAAK,UAAoB,GAC5B;AAAA,MACF;AAAA,IACF;AAEA,WAAO,OAAO,YAAY,MAAM,CAAC;AAAA,EACnC,CAAC;AAED,OAAK,cAAc,QAAQ,IAAI,YAAY,YAAY;AAErD,UAAM,mBAA+C;AAAA,MACnD,MAAM,MAAM;AAAA,MACZ,SAAS;AAAA,MACT,SAAS,CAAC;AAAA,IACZ;AAEA,UAAM,oBAAoB;AAC1B,UAAM,SAAS;AACf,UAAM,cAA2B,oBAAoB;AAAA,MACnD;AAAA,QACE,KAAK,WAAW;AAAA,QAChB,MAAM;AAAA,QACN,OAAO;AAAA,UACL,SAAS,QAAQ,WAAW,OAAO,gBAAgB;AAAA,QACrD;AAAA,MACF;AAAA,IACF,CAAC;AACD,UAAM,WAAW,4BAA4B,WAAW;AACxD,UAAM,UAAU,IAAI,aAAa;AAEjC,YAAQ,kBAAkB,UAAU,MAAM,GAAG;AAAA,MAC3C,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,QACL,SAAS,QAAQ,OAAO;AAAA,MAC1B;AAAA,IACF,CAAC;AAED,UAAM;AAAA,MAAI,YACR;AAAA,QACE,oBAAC,wBAAqB,SACpB,8BAAC,QAAK,UAAoB,GAC5B;AAAA,MACF;AAAA,IACF;AAEA,WAAO,OAAO,YAAY,MAAM,CAAC;AAAA,EACnC,CAAC;AACH,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/next/components/tests/prop-controllers/page-prop-controller.tsx"],"sourcesContent":["/** @jest-environment jsdom */\n\nimport { render, screen } from '@testing-library/react'\nimport '@testing-library/jest-dom'\n\nimport {\n type OptionsType,\n Types,\n type Descriptor,\n type PropDef,\n type Value,\n} from '@makeswift/prop-controllers'\n\nimport { type ElementData, type ComponentType } from '../../../../state/react-page'\nimport { randomUUID } from 'crypto'\n\nimport { Page } from '../../page'\nimport { act } from 'react-dom/test-utils'\nimport { ReactRuntimeProvider } from '../../../../runtimes/react'\nimport { ReactRuntime } from '../../../../react'\nimport {\n createMakeswiftPageSnapshot,\n createRootComponent,\n} from '../../../../utils/tests/element-data-test-test'\n\nexport const pagePropControllerTest = <\n P extends PropDef & ((options?: any) => any),\n C extends ComponentType<{ propKey: Value<P> | undefined }>,\n>(\n propDef: P,\n value: Value<typeof propDef>,\n component: (testId: string) => C,\n assert: (element: HTMLElement) => void,\n options?: OptionsType<P>,\n) =>\n describe('Page', () => {\n test(`can render ${propDef.type} v0 data`, async () => {\n // Arrange\n const descriptorV0: Descriptor<typeof propDef> = {\n type: propDef.type,\n options,\n }\n\n const TestComponentType = 'TestComponent'\n const testId = 'test-id'\n\n const elementData: ElementData = createRootComponent([\n {\n key: randomUUID(),\n type: TestComponentType,\n props: {\n propKey: propDef.toPropData(value, descriptorV0),\n },\n },\n ])\n const snapshot = createMakeswiftPageSnapshot(elementData)\n const runtime = new ReactRuntime()\n\n runtime.registerComponent(component(testId), {\n type: TestComponentType,\n label: 'TestComponent',\n props: {\n propKey: propDef(options),\n },\n })\n\n await act(async () =>\n render(\n <ReactRuntimeProvider runtime={runtime} previewMode={false}>\n <Page snapshot={snapshot} />\n </ReactRuntimeProvider>,\n ),\n )\n\n assert(screen.getByTestId(testId))\n })\n\n test(`can render ${propDef.type} v1 data`, async () => {\n // Arrange\n const gapXDefinitionV1: Descriptor<typeof propDef> = {\n type: Types.GapX,\n version: 1,\n options: {},\n }\n\n const TestComponentType = 'TestComponent'\n const testId = 'test-id'\n const elementData: ElementData = createRootComponent([\n {\n key: randomUUID(),\n type: TestComponentType,\n props: {\n propKey: propDef.toPropData(value, gapXDefinitionV1),\n },\n },\n ])\n const snapshot = createMakeswiftPageSnapshot(elementData)\n const runtime = new ReactRuntime()\n\n runtime.registerComponent(component(testId), {\n type: TestComponentType,\n label: 'TestComponent',\n props: {\n propKey: propDef(options),\n },\n })\n\n await act(async () =>\n render(\n <ReactRuntimeProvider runtime={runtime} previewMode={false}>\n <Page snapshot={snapshot} />\n </ReactRuntimeProvider>,\n ),\n )\n\n assert(screen.getByTestId(testId))\n })\n })\n"],"mappings":"AAqEY;AAnEZ,SAAS,QAAQ,cAAc;AAC/B,OAAO;AAEP;AAAA,EAEE;AAAA,OAIK;AAGP,SAAS,kBAAkB;AAE3B,SAAS,YAAY;AACrB,SAAS,WAAW;AACpB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEA,MAAM,yBAAyB,CAIpC,SACA,OACA,WACA,QACA,YAEA,SAAS,QAAQ,MAAM;AACrB,OAAK,cAAc,QAAQ,IAAI,YAAY,YAAY;AAErD,UAAM,eAA2C;AAAA,MAC/C,MAAM,QAAQ;AAAA,MACd;AAAA,IACF;AAEA,UAAM,oBAAoB;AAC1B,UAAM,SAAS;AAEf,UAAM,cAA2B,oBAAoB;AAAA,MACnD;AAAA,QACE,KAAK,WAAW;AAAA,QAChB,MAAM;AAAA,QACN,OAAO;AAAA,UACL,SAAS,QAAQ,WAAW,OAAO,YAAY;AAAA,QACjD;AAAA,MACF;AAAA,IACF,CAAC;AACD,UAAM,WAAW,4BAA4B,WAAW;AACxD,UAAM,UAAU,IAAI,aAAa;AAEjC,YAAQ,kBAAkB,UAAU,MAAM,GAAG;AAAA,MAC3C,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,QACL,SAAS,QAAQ,OAAO;AAAA,MAC1B;AAAA,IACF,CAAC;AAED,UAAM;AAAA,MAAI,YACR;AAAA,QACE,oBAAC,wBAAqB,SAAkB,aAAa,OACnD,8BAAC,QAAK,UAAoB,GAC5B;AAAA,MACF;AAAA,IACF;AAEA,WAAO,OAAO,YAAY,MAAM,CAAC;AAAA,EACnC,CAAC;AAED,OAAK,cAAc,QAAQ,IAAI,YAAY,YAAY;AAErD,UAAM,mBAA+C;AAAA,MACnD,MAAM,MAAM;AAAA,MACZ,SAAS;AAAA,MACT,SAAS,CAAC;AAAA,IACZ;AAEA,UAAM,oBAAoB;AAC1B,UAAM,SAAS;AACf,UAAM,cAA2B,oBAAoB;AAAA,MACnD;AAAA,QACE,KAAK,WAAW;AAAA,QAChB,MAAM;AAAA,QACN,OAAO;AAAA,UACL,SAAS,QAAQ,WAAW,OAAO,gBAAgB;AAAA,QACrD;AAAA,MACF;AAAA,IACF,CAAC;AACD,UAAM,WAAW,4BAA4B,WAAW;AACxD,UAAM,UAAU,IAAI,aAAa;AAEjC,YAAQ,kBAAkB,UAAU,MAAM,GAAG;AAAA,MAC3C,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,QACL,SAAS,QAAQ,OAAO;AAAA,MAC1B;AAAA,IACF,CAAC;AAED,UAAM;AAAA,MAAI,YACR;AAAA,QACE,oBAAC,wBAAqB,SAAkB,aAAa,OACnD,8BAAC,QAAK,UAAoB,GAC5B;AAAA,MACF;AAAA,IACF;AAEA,WAAO,OAAO,YAAY,MAAM,CAAC;AAAA,EACnC,CAAC;AACH,CAAC;","names":[]}
@@ -25,7 +25,7 @@ class Document extends NextDocument {
25
25
  render() {
26
26
  const { isPreview } = this.props.__NEXT_DATA__;
27
27
  return /* @__PURE__ */ jsxs(Html, { children: [
28
- /* @__PURE__ */ jsx(Head, { children: /* @__PURE__ */ jsx(PreviewModeScript, { isPreview }) }),
28
+ /* @__PURE__ */ jsx(Head, { children: /* @__PURE__ */ jsx(PreviewModeScript, { isPreview, appOrigin: this.props.appOrigin }) }),
29
29
  /* @__PURE__ */ jsxs("body", { children: [
30
30
  /* @__PURE__ */ jsx(Main, {}),
31
31
  /* @__PURE__ */ jsx(NextScript, {})
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/next/document.tsx"],"sourcesContent":["'use client'\n\nimport { cache } from '@emotion/css'\nimport createEmotionServer from '@emotion/server/create-instance'\nimport NextDocument, {\n DocumentContext,\n DocumentInitialProps,\n Head,\n Html,\n Main,\n NextScript,\n} from 'next/document'\nimport { PreviewModeScript } from './preview-mode'\n\nexport class Document extends NextDocument {\n static async getInitialProps(ctx: DocumentContext): Promise<DocumentInitialProps> {\n const initialProps = await NextDocument.getInitialProps(ctx)\n\n const { extractCritical } = createEmotionServer(cache)\n const { ids, css } = extractCritical(initialProps.html)\n\n return {\n ...initialProps,\n styles: (\n <>\n {initialProps.styles}\n <style data-emotion={`css ${ids.join(' ')}`} dangerouslySetInnerHTML={{ __html: css }} />\n </>\n ),\n }\n }\n\n render() {\n const { isPreview } = this.props.__NEXT_DATA__\n\n return (\n <Html>\n <Head>\n <PreviewModeScript isPreview={isPreview} />\n </Head>\n <body>\n <Main />\n <NextScript />\n </body>\n </Html>\n )\n }\n}\n"],"mappings":";AAwBQ,mBAEE,KAFF;AAtBR,SAAS,aAAa;AACtB,OAAO,yBAAyB;AAChC,OAAO;AAAA,EAGL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,yBAAyB;AAE3B,MAAM,iBAAiB,aAAa;AAAA,EACzC,aAAa,gBAAgB,KAAqD;AAChF,UAAM,eAAe,MAAM,aAAa,gBAAgB,GAAG;AAE3D,UAAM,EAAE,gBAAgB,IAAI,oBAAoB,KAAK;AACrD,UAAM,EAAE,KAAK,IAAI,IAAI,gBAAgB,aAAa,IAAI;AAEtD,WAAO;AAAA,MACL,GAAG;AAAA,MACH,QACE,iCACG;AAAA,qBAAa;AAAA,QACd,oBAAC,WAAM,gBAAc,OAAO,IAAI,KAAK,GAAG,CAAC,IAAI,yBAAyB,EAAE,QAAQ,IAAI,GAAG;AAAA,SACzF;AAAA,IAEJ;AAAA,EACF;AAAA,EAEA,SAAS;AACP,UAAM,EAAE,UAAU,IAAI,KAAK,MAAM;AAEjC,WACE,qBAAC,QACC;AAAA,0BAAC,QACC,8BAAC,qBAAkB,WAAsB,GAC3C;AAAA,MACA,qBAAC,UACC;AAAA,4BAAC,QAAK;AAAA,QACN,oBAAC,cAAW;AAAA,SACd;AAAA,OACF;AAAA,EAEJ;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/next/document.tsx"],"sourcesContent":["'use client'\n\nimport { cache } from '@emotion/css'\nimport createEmotionServer from '@emotion/server/create-instance'\nimport NextDocument, {\n DocumentContext,\n DocumentInitialProps,\n Head,\n Html,\n Main,\n NextScript,\n} from 'next/document'\nimport { PreviewModeScript } from './preview-mode'\n\ntype DocumentProps = { appOrigin?: string }\n\nexport class Document extends NextDocument<DocumentProps> {\n static async getInitialProps(ctx: DocumentContext): Promise<DocumentInitialProps> {\n const initialProps = await NextDocument.getInitialProps(ctx)\n\n const { extractCritical } = createEmotionServer(cache)\n const { ids, css } = extractCritical(initialProps.html)\n\n return {\n ...initialProps,\n styles: (\n <>\n {initialProps.styles}\n <style data-emotion={`css ${ids.join(' ')}`} dangerouslySetInnerHTML={{ __html: css }} />\n </>\n ),\n }\n }\n\n render() {\n const { isPreview } = this.props.__NEXT_DATA__\n\n return (\n <Html>\n <Head>\n <PreviewModeScript isPreview={isPreview} appOrigin={this.props.appOrigin} />\n </Head>\n <body>\n <Main />\n <NextScript />\n </body>\n </Html>\n )\n }\n}\n"],"mappings":";AA0BQ,mBAEE,KAFF;AAxBR,SAAS,aAAa;AACtB,OAAO,yBAAyB;AAChC,OAAO;AAAA,EAGL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,yBAAyB;AAI3B,MAAM,iBAAiB,aAA4B;AAAA,EACxD,aAAa,gBAAgB,KAAqD;AAChF,UAAM,eAAe,MAAM,aAAa,gBAAgB,GAAG;AAE3D,UAAM,EAAE,gBAAgB,IAAI,oBAAoB,KAAK;AACrD,UAAM,EAAE,KAAK,IAAI,IAAI,gBAAgB,aAAa,IAAI;AAEtD,WAAO;AAAA,MACL,GAAG;AAAA,MACH,QACE,iCACG;AAAA,qBAAa;AAAA,QACd,oBAAC,WAAM,gBAAc,OAAO,IAAI,KAAK,GAAG,CAAC,IAAI,yBAAyB,EAAE,QAAQ,IAAI,GAAG;AAAA,SACzF;AAAA,IAEJ;AAAA,EACF;AAAA,EAEA,SAAS;AACP,UAAM,EAAE,UAAU,IAAI,KAAK,MAAM;AAEjC,WACE,qBAAC,QACC;AAAA,0BAAC,QACC,8BAAC,qBAAkB,WAAsB,WAAW,KAAK,MAAM,WAAW,GAC5E;AAAA,MACA,qBAAC,UACC;AAAA,4BAAC,QAAK;AAAA,QACN,oBAAC,cAAW;AAAA,SACd;AAAA,OACF;AAAA,EAEJ;AACF;","names":[]}
@@ -1,5 +1,6 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { draftMode } from "next/headers";
3
+ import Script from "next/script";
3
4
  import { ActionTypes } from "../../react";
4
5
  async function DraftModeScript({ appOrigin = "https://app.makeswift.com" }) {
5
6
  const { isEnabled: isDraftModeEnabled } = await draftMode();
@@ -31,9 +32,12 @@ if (window.parent !== window) {
31
32
  return originalFetch.call(this, resource, options)
32
33
  }
33
34
 
35
+ const newHeaders = new Headers(request.headers)
36
+ newHeaders.set(headerName, secret)
37
+
34
38
  return originalFetch.call(
35
39
  this,
36
- new Request(request, { headers: { [headerName]: secret } }),
40
+ new Request(request, { headers: newHeaders })
37
41
  )
38
42
  }
39
43
  }
@@ -76,7 +80,7 @@ if (window.parent !== window) {
76
80
  `;
77
81
  return /* @__PURE__ */ jsxs(Fragment, { children: [
78
82
  /* @__PURE__ */ jsx(
79
- "script",
83
+ Script,
80
84
  {
81
85
  id: "makeswift-draft-mode",
82
86
  type: "module",
@@ -84,7 +88,7 @@ if (window.parent !== window) {
84
88
  }
85
89
  ),
86
90
  /* @__PURE__ */ jsx(
87
- "script",
91
+ Script,
88
92
  {
89
93
  id: "makeswift-connection-check",
90
94
  type: "module",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/next/draft-mode/draft-mode-script.tsx"],"sourcesContent":["import { draftMode } from 'next/headers'\nimport { ActionTypes } from '../../react'\n\ntype Props = {\n appOrigin?: string\n}\n\nexport async function DraftModeScript({ appOrigin = 'https://app.makeswift.com' }: Props) {\n const { isEnabled: isDraftModeEnabled } = await draftMode()\n const draftModeScript = `\nconst isDraft = ${isDraftModeEnabled}\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\nconst searchParamName = 'x-makeswift-draft-mode'\nconst headerName = 'X-Makeswift-Draft-Mode'\nconst originalUrl = new URL(window.location.href)\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (event.origin === appOrigin && event.data.type === 'makeswift_draft_mode') {\n const { secret } = event.data\n\n if (!isDraft && !originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.set(searchParamName, secret)\n\n window.location.replace(url)\n } else {\n const originalFetch = window.fetch\n\n window.fetch = function patchedFetch(resource, options) {\n const request = new Request(resource, options)\n\n if (new URL(request.url).origin !== window.location.origin) {\n return originalFetch.call(this, resource, options)\n }\n\n return originalFetch.call(\n this,\n new Request(request, { headers: { [headerName]: secret } }),\n )\n }\n }\n }\n })\n\n window.parent.postMessage({ type: 'makeswift_draft_mode' }, appOrigin)\n}\n\nif (originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.delete(searchParamName)\n\n window.history.replaceState(null, '', url)\n}\n`\n\n const makeswiftConnectionCheckScript = `\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (\n event.origin === appOrigin && \n event.data.type === '${ActionTypes.MAKESWIFT_CONNECTION_INIT}'\n ) {\n setInterval(() => {\n window.parent.postMessage({ \n type: '${ActionTypes.MAKESWIFT_CONNECTION_CHECK}',\n payload: { \n currentUrl: window.location.href \n }\n }, appOrigin)\n }, 20)\n }\n })\n\n window.parent.postMessage({ type: '${ActionTypes.MAKESWIFT_CONNECTION_INIT}' }, appOrigin)\n}\n`\n\n return (\n <>\n <script\n id=\"makeswift-draft-mode\"\n type=\"module\"\n dangerouslySetInnerHTML={{ __html: draftModeScript }}\n />\n <script\n id=\"makeswift-connection-check\"\n type=\"module\"\n dangerouslySetInnerHTML={{ __html: makeswiftConnectionCheckScript }}\n />\n </>\n )\n}\n"],"mappings":"AAmFI,mBACE,KADF;AAnFJ,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAM5B,eAAsB,gBAAgB,EAAE,YAAY,4BAA4B,GAAU;AACxF,QAAM,EAAE,WAAW,mBAAmB,IAAI,MAAM,UAAU;AAC1D,QAAM,kBAAkB;AAAA,kBACR,kBAAkB;AAAA,qBACf,UAAU,QAAQ,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+ChD,QAAM,iCAAiC;AAAA,qBACpB,UAAU,QAAQ,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAMrB,YAAY,yBAAyB;AAAA;AAAA;AAAA;AAAA,mBAI/C,YAAY,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCASlB,YAAY,yBAAyB;AAAA;AAAA;AAI1E,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,yBAAyB,EAAE,QAAQ,gBAAgB;AAAA;AAAA,IACrD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,yBAAyB,EAAE,QAAQ,+BAA+B;AAAA;AAAA,IACpE;AAAA,KACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/next/draft-mode/draft-mode-script.tsx"],"sourcesContent":["import { draftMode } from 'next/headers'\nimport Script from 'next/script'\nimport { ActionTypes } from '../../react'\n\ntype Props = {\n appOrigin?: string\n}\n\nexport async function DraftModeScript({ appOrigin = 'https://app.makeswift.com' }: Props) {\n const { isEnabled: isDraftModeEnabled } = await draftMode()\n const draftModeScript = `\nconst isDraft = ${isDraftModeEnabled}\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\nconst searchParamName = 'x-makeswift-draft-mode'\nconst headerName = 'X-Makeswift-Draft-Mode'\nconst originalUrl = new URL(window.location.href)\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (event.origin === appOrigin && event.data.type === 'makeswift_draft_mode') {\n const { secret } = event.data\n\n if (!isDraft && !originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.set(searchParamName, secret)\n\n window.location.replace(url)\n } else {\n const originalFetch = window.fetch\n\n window.fetch = function patchedFetch(resource, options) {\n const request = new Request(resource, options)\n\n if (new URL(request.url).origin !== window.location.origin) {\n return originalFetch.call(this, resource, options)\n }\n\n const newHeaders = new Headers(request.headers)\n newHeaders.set(headerName, secret)\n\n return originalFetch.call(\n this,\n new Request(request, { headers: newHeaders })\n )\n }\n }\n }\n })\n\n window.parent.postMessage({ type: 'makeswift_draft_mode' }, appOrigin)\n}\n\nif (originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.delete(searchParamName)\n\n window.history.replaceState(null, '', url)\n}\n`\n\n const makeswiftConnectionCheckScript = `\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (\n event.origin === appOrigin && \n event.data.type === '${ActionTypes.MAKESWIFT_CONNECTION_INIT}'\n ) {\n setInterval(() => {\n window.parent.postMessage({ \n type: '${ActionTypes.MAKESWIFT_CONNECTION_CHECK}',\n payload: { \n currentUrl: window.location.href \n }\n }, appOrigin)\n }, 20)\n }\n })\n\n window.parent.postMessage({ type: '${ActionTypes.MAKESWIFT_CONNECTION_INIT}' }, appOrigin)\n}\n`\n\n return (\n <>\n <Script\n id=\"makeswift-draft-mode\"\n type=\"module\"\n dangerouslySetInnerHTML={{ __html: draftModeScript }}\n />\n <Script\n id=\"makeswift-connection-check\"\n type=\"module\"\n dangerouslySetInnerHTML={{ __html: makeswiftConnectionCheckScript }}\n />\n </>\n )\n}\n"],"mappings":"AAuFI,mBACE,KADF;AAvFJ,SAAS,iBAAiB;AAC1B,OAAO,YAAY;AACnB,SAAS,mBAAmB;AAM5B,eAAsB,gBAAgB,EAAE,YAAY,4BAA4B,GAAU;AACxF,QAAM,EAAE,WAAW,mBAAmB,IAAI,MAAM,UAAU;AAC1D,QAAM,kBAAkB;AAAA,kBACR,kBAAkB;AAAA,qBACf,UAAU,QAAQ,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkDhD,QAAM,iCAAiC;AAAA,qBACpB,UAAU,QAAQ,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAMrB,YAAY,yBAAyB;AAAA;AAAA;AAAA;AAAA,mBAI/C,YAAY,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCASlB,YAAY,yBAAyB;AAAA;AAAA;AAI1E,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,yBAAyB,EAAE,QAAQ,gBAAgB;AAAA;AAAA,IACrD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,yBAAyB,EAAE,QAAQ,+BAA+B;AAAA;AAAA,IACpE;AAAA,KACF;AAEJ;","names":[]}
@@ -1,13 +1,17 @@
1
1
  import { Page } from "./components/page";
2
+ import { MakeswiftComponent } from "./components/MakeswiftComponent";
3
+ import { Slot } from "./components/Slot";
2
4
  import { Makeswift } from "./client";
3
5
  import { PreviewModeScript } from "./preview-mode";
4
6
  import { RootStyleRegistry } from "./root-style-registry";
5
- import { ReactRuntimeProvider } from "./context/react-runtime";
7
+ import { ReactRuntimeProvider } from "../runtimes/react/";
6
8
  export {
7
9
  Makeswift,
10
+ MakeswiftComponent,
8
11
  Page,
9
12
  PreviewModeScript,
10
13
  ReactRuntimeProvider,
11
- RootStyleRegistry
14
+ RootStyleRegistry,
15
+ Slot
12
16
  };
13
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/next/index.tsx"],"sourcesContent":["export type { PageProps } from './components/page'\nexport { Page } from './components/page'\nexport type { MakeswiftPage, MakeswiftPageDocument, MakeswiftPageSnapshot, Sitemap } from './client'\nexport { Makeswift } from './client'\nexport type { MakeswiftPreviewData } from './preview-mode'\nexport { PreviewModeScript } from './preview-mode'\nexport { RootStyleRegistry } from './root-style-registry'\nexport { ReactRuntimeProvider } from './context/react-runtime'\n"],"mappings":"AACA,SAAS,YAAY;AAErB,SAAS,iBAAiB;AAE1B,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;","names":[]}
1
+ {"version":3,"sources":["../../../src/next/index.tsx"],"sourcesContent":["export type { PageProps } from './components/page'\nexport { Page } from './components/page'\nexport { MakeswiftComponent } from './components/MakeswiftComponent'\nexport { Slot } from './components/Slot'\nexport type { MakeswiftPage, MakeswiftPageDocument, MakeswiftPageSnapshot, Sitemap } from './client'\nexport { Makeswift } from './client'\nexport type { MakeswiftPreviewData } from './preview-mode'\nexport { PreviewModeScript } from './preview-mode'\nexport { RootStyleRegistry } from './root-style-registry'\nexport { ReactRuntimeProvider } from '../runtimes/react/'\n"],"mappings":"AACA,SAAS,YAAY;AACrB,SAAS,0BAA0B;AACnC,SAAS,YAAY;AAErB,SAAS,iBAAiB;AAE1B,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;","names":[]}
@@ -44,10 +44,13 @@ if (window.parent !== window) {
44
44
  if (new URL(request.url).origin !== window.location.origin) {
45
45
  return originalFetch.call(this, resource, options)
46
46
  }
47
+
48
+ const newHeaders = new Headers(request.headers)
49
+ newHeaders.set(headerName, secret)
47
50
 
48
51
  return originalFetch.call(
49
52
  this,
50
- new Request(request, { headers: { [headerName]: secret } }),
53
+ new Request(request, { headers: newHeaders })
51
54
  )
52
55
  }
53
56
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/next/preview-mode.tsx"],"sourcesContent":["import { PreviewData } from 'next'\nimport { z } from 'zod'\nimport { ActionTypes } from '../react'\n\nexport const makeswiftSiteVersionSchema = z.enum(['Live', 'Working'])\nexport const MakeswiftSiteVersion = makeswiftSiteVersionSchema.Enum\nexport type MakeswiftSiteVersion = z.infer<typeof makeswiftSiteVersionSchema>\n\nconst makeswiftPreviewDataSchema = z.object({\n makeswift: z.literal(true),\n siteVersion: makeswiftSiteVersionSchema,\n})\nexport type MakeswiftPreviewData = z.infer<typeof makeswiftPreviewDataSchema>\n\nexport function getMakeswiftSiteVersion(previewData: PreviewData): MakeswiftSiteVersion | null {\n const result = makeswiftPreviewDataSchema.safeParse(previewData)\n\n if (result.success) return result.data.siteVersion\n\n return null\n}\n\ntype Props = {\n isPreview?: boolean\n appOrigin?: string\n}\n\nexport function PreviewModeScript({\n isPreview = false,\n appOrigin = 'https://app.makeswift.com',\n}: Props) {\n const previewModeScript = `\nconst isPreview = ${isPreview}\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\nconst searchParamName = 'x-makeswift-preview-mode'\nconst headerName = 'X-Makeswift-Preview-Mode'\nconst originalUrl = new URL(window.location.href)\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (event.origin === appOrigin && event.data.type === 'makeswift_preview_mode') {\n const { secret } = event.data\n\n if (!isPreview && !originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.set(searchParamName, secret)\n\n window.location.replace(url)\n } else {\n const originalFetch = window.fetch\n\n window.fetch = function patchedFetch(resource, options) {\n const request = new Request(resource, options)\n\n if (new URL(request.url).origin !== window.location.origin) {\n return originalFetch.call(this, resource, options)\n }\n\n return originalFetch.call(\n this,\n new Request(request, { headers: { [headerName]: secret } }),\n )\n }\n }\n }\n })\n\n window.parent.postMessage({ type: 'makeswift_preview_mode' }, appOrigin)\n}\n\nif (originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.delete(searchParamName)\n\n window.history.replaceState(null, '', url)\n}\n`\n\n const makeswiftConnectionCheckScript = `\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (\n event.origin === appOrigin && \n event.data.type === '${ActionTypes.MAKESWIFT_CONNECTION_INIT}'\n ) {\n setInterval(() => {\n window.parent.postMessage({ \n type: '${ActionTypes.MAKESWIFT_CONNECTION_CHECK}',\n payload: { \n currentUrl: window.location.href \n }\n }, appOrigin)\n }, 20)\n }\n })\n\n window.parent.postMessage({ type: '${ActionTypes.MAKESWIFT_CONNECTION_INIT}' }, appOrigin)\n}\n`\n\n return (\n <>\n <script\n id=\"makeswift-preview-mode\"\n type=\"module\"\n dangerouslySetInnerHTML={{ __html: previewModeScript }}\n />\n <script\n id=\"makeswift-connection-check\"\n type=\"module\"\n dangerouslySetInnerHTML={{ __html: makeswiftConnectionCheckScript }}\n />\n </>\n )\n}\n"],"mappings":"AAyGI,mBACE,KADF;AAxGJ,SAAS,SAAS;AAClB,SAAS,mBAAmB;AAErB,MAAM,6BAA6B,EAAE,KAAK,CAAC,QAAQ,SAAS,CAAC;AAC7D,MAAM,uBAAuB,2BAA2B;AAG/D,MAAM,6BAA6B,EAAE,OAAO;AAAA,EAC1C,WAAW,EAAE,QAAQ,IAAI;AAAA,EACzB,aAAa;AACf,CAAC;AAGM,SAAS,wBAAwB,aAAuD;AAC7F,QAAM,SAAS,2BAA2B,UAAU,WAAW;AAE/D,MAAI,OAAO;AAAS,WAAO,OAAO,KAAK;AAEvC,SAAO;AACT;AAOO,SAAS,kBAAkB;AAAA,EAChC,YAAY;AAAA,EACZ,YAAY;AACd,GAAU;AACR,QAAM,oBAAoB;AAAA,oBACR,SAAS;AAAA,qBACR,UAAU,QAAQ,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+ChD,QAAM,iCAAiC;AAAA,qBACpB,UAAU,QAAQ,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAMrB,YAAY,yBAAyB;AAAA;AAAA;AAAA;AAAA,mBAI/C,YAAY,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCASlB,YAAY,yBAAyB;AAAA;AAAA;AAI1E,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,yBAAyB,EAAE,QAAQ,kBAAkB;AAAA;AAAA,IACvD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,yBAAyB,EAAE,QAAQ,+BAA+B;AAAA;AAAA,IACpE;AAAA,KACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/next/preview-mode.tsx"],"sourcesContent":["import { PreviewData } from 'next'\nimport { z } from 'zod'\nimport { ActionTypes } from '../react'\n\nexport const makeswiftSiteVersionSchema = z.enum(['Live', 'Working'])\nexport const MakeswiftSiteVersion = makeswiftSiteVersionSchema.Enum\nexport type MakeswiftSiteVersion = z.infer<typeof makeswiftSiteVersionSchema>\n\nconst makeswiftPreviewDataSchema = z.object({\n makeswift: z.literal(true),\n siteVersion: makeswiftSiteVersionSchema,\n})\nexport type MakeswiftPreviewData = z.infer<typeof makeswiftPreviewDataSchema>\n\nexport function getMakeswiftSiteVersion(previewData: PreviewData): MakeswiftSiteVersion | null {\n const result = makeswiftPreviewDataSchema.safeParse(previewData)\n\n if (result.success) return result.data.siteVersion\n\n return null\n}\n\ntype Props = {\n isPreview?: boolean\n appOrigin?: string\n}\n\nexport function PreviewModeScript({\n isPreview = false,\n appOrigin = 'https://app.makeswift.com',\n}: Props) {\n const previewModeScript = `\nconst isPreview = ${isPreview}\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\nconst searchParamName = 'x-makeswift-preview-mode'\nconst headerName = 'X-Makeswift-Preview-Mode'\nconst originalUrl = new URL(window.location.href)\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (event.origin === appOrigin && event.data.type === 'makeswift_preview_mode') {\n const { secret } = event.data\n\n if (!isPreview && !originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.set(searchParamName, secret)\n\n window.location.replace(url)\n } else {\n const originalFetch = window.fetch\n\n window.fetch = function patchedFetch(resource, options) {\n const request = new Request(resource, options)\n\n if (new URL(request.url).origin !== window.location.origin) {\n return originalFetch.call(this, resource, options)\n }\n \n const newHeaders = new Headers(request.headers)\n newHeaders.set(headerName, secret)\n\n return originalFetch.call(\n this,\n new Request(request, { headers: newHeaders })\n )\n }\n }\n }\n })\n\n window.parent.postMessage({ type: 'makeswift_preview_mode' }, appOrigin)\n}\n\nif (originalUrl.searchParams.has(searchParamName)) {\n const url = new URL(originalUrl)\n\n url.searchParams.delete(searchParamName)\n\n window.history.replaceState(null, '', url)\n}\n`\n\n const makeswiftConnectionCheckScript = `\nconst appOrigin = '${appOrigin.replace(\"'\", \"\\\\'\")}'\n\nif (window.parent !== window) {\n window.addEventListener('message', event => {\n if (\n event.origin === appOrigin && \n event.data.type === '${ActionTypes.MAKESWIFT_CONNECTION_INIT}'\n ) {\n setInterval(() => {\n window.parent.postMessage({ \n type: '${ActionTypes.MAKESWIFT_CONNECTION_CHECK}',\n payload: { \n currentUrl: window.location.href \n }\n }, appOrigin)\n }, 20)\n }\n })\n\n window.parent.postMessage({ type: '${ActionTypes.MAKESWIFT_CONNECTION_INIT}' }, appOrigin)\n}\n`\n\n return (\n <>\n <script\n id=\"makeswift-preview-mode\"\n type=\"module\"\n dangerouslySetInnerHTML={{ __html: previewModeScript }}\n />\n <script\n id=\"makeswift-connection-check\"\n type=\"module\"\n dangerouslySetInnerHTML={{ __html: makeswiftConnectionCheckScript }}\n />\n </>\n )\n}\n"],"mappings":"AA4GI,mBACE,KADF;AA3GJ,SAAS,SAAS;AAClB,SAAS,mBAAmB;AAErB,MAAM,6BAA6B,EAAE,KAAK,CAAC,QAAQ,SAAS,CAAC;AAC7D,MAAM,uBAAuB,2BAA2B;AAG/D,MAAM,6BAA6B,EAAE,OAAO;AAAA,EAC1C,WAAW,EAAE,QAAQ,IAAI;AAAA,EACzB,aAAa;AACf,CAAC;AAGM,SAAS,wBAAwB,aAAuD;AAC7F,QAAM,SAAS,2BAA2B,UAAU,WAAW;AAE/D,MAAI,OAAO;AAAS,WAAO,OAAO,KAAK;AAEvC,SAAO;AACT;AAOO,SAAS,kBAAkB;AAAA,EAChC,YAAY;AAAA,EACZ,YAAY;AACd,GAAU;AACR,QAAM,oBAAoB;AAAA,oBACR,SAAS;AAAA,qBACR,UAAU,QAAQ,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkDhD,QAAM,iCAAiC;AAAA,qBACpB,UAAU,QAAQ,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAMrB,YAAY,yBAAyB;AAAA;AAAA;AAAA;AAAA,mBAI/C,YAAY,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCASlB,YAAY,yBAAyB;AAAA;AAAA;AAI1E,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,yBAAyB,EAAE,QAAQ,kBAAkB;AAAA;AAAA,IACvD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,yBAAyB,EAAE,QAAQ,+BAA+B;AAAA;AAAA,IACpE;AAAA,KACF;AAEJ;","names":[]}
@@ -5,7 +5,7 @@ import {
5
5
  } from "@makeswift/controls";
6
6
  import {
7
7
  getLinkPropControllerPageIds,
8
- getResponsiveColorPropControllerDataSawtchIds,
8
+ getResponsiveColorPropControllerDataSwatchIds,
9
9
  getShadowsPropControllerDataSwatchIds,
10
10
  Types as PropControllerTypes,
11
11
  getBorderPropControllerDataSwatchIds,
@@ -61,7 +61,7 @@ function getSwatchIds(descriptor, prop) {
61
61
  return getNavigationLinksPropControllerSwatchIds(prop);
62
62
  }
63
63
  case PropControllerTypes.ResponsiveColor:
64
- return getResponsiveColorPropControllerDataSawtchIds(prop);
64
+ return getResponsiveColorPropControllerDataSwatchIds(prop);
65
65
  case PropControllerTypes.Shadows:
66
66
  return getShadowsPropControllerDataSwatchIds(prop);
67
67
  case DELETED_PROP_CONTROLLER_TYPES.RichText: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/prop-controllers/introspection.ts"],"sourcesContent":["import { type Descriptor, isLegacyDescriptor } from './descriptors'\nimport {\n introspectRichTextData,\n Targets,\n type Data,\n type Element,\n type RichTextValue,\n} from '@makeswift/controls'\n\nimport {\n getLinkPropControllerPageIds,\n getResponsiveColorPropControllerDataSawtchIds,\n getShadowsPropControllerDataSwatchIds,\n LinkPropControllerData,\n Types as PropControllerTypes,\n ResponsiveColorData,\n ShadowsPropControllerData,\n getBorderPropControllerDataSwatchIds,\n TablePropControllerData,\n getTablePropControllerDataTableIds,\n getNavigationLinksPropControllerPageIds,\n NavigationLinksPropControllerData,\n getNavigationLinksPropControllerSwatchIds,\n BorderPropControllerData,\n getElementIDPropControllerDataElementID,\n ElementIDPropControllerData,\n getGridPropControllerElementChildren,\n GridPropControllerData,\n getImagePropControllerFileIds,\n ImagePropControllerData,\n getImagesPropControllerFileIds,\n ImagesPropControllerData,\n getBackgroundsPropControllerFileIds,\n getBackgroundsPropControllerSwatchIds,\n BackgroundsPropControllerData,\n} from '@makeswift/prop-controllers'\n\nimport { DELETED_PROP_CONTROLLER_TYPES } from './deleted'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.ChildrenElement)\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.Grid:\n return getGridPropControllerElementChildren(prop as GridPropControllerData | undefined)\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n if (!isLegacyDescriptor(descriptor)) {\n return null\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.ElementID:\n return getElementIDPropControllerDataElementID(prop as ElementIDPropControllerData) ?? null\n\n default:\n return null\n }\n}\n\nexport function getSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.Swatch)\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerSwatchIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Border:\n return getBorderPropControllerDataSwatchIds(prop as BorderPropControllerData)\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerSwatchIds(prop as NavigationLinksPropControllerData)\n }\n\n case PropControllerTypes.ResponsiveColor:\n return getResponsiveColorPropControllerDataSawtchIds(prop as ResponsiveColorData)\n\n case PropControllerTypes.Shadows:\n return getShadowsPropControllerDataSwatchIds(prop as ShadowsPropControllerData)\n\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return introspectRichTextData(prop as RichTextValue, Targets.Swatch)\n }\n\n default:\n return []\n }\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.File)\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerFileIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Image: {\n return getImagePropControllerFileIds(prop as ImagePropControllerData)\n }\n\n case PropControllerTypes.Images: {\n return getImagesPropControllerFileIds(prop as ImagesPropControllerData)\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.Typography)\n }\n\n switch (descriptor.type) {\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return introspectRichTextData(prop as RichTextValue, Targets.Typography)\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.Table)\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.Table: {\n return getTablePropControllerDataTableIds(prop as TablePropControllerData)\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.Page)\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.Link: {\n return getLinkPropControllerPageIds(prop as LinkPropControllerData)\n }\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerPageIds(prop as NavigationLinksPropControllerData)\n }\n\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return introspectRichTextData(prop as RichTextValue, Targets.Page)\n }\n\n default:\n return []\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/prop-controllers/introspection.ts"],"sourcesContent":["import { type Descriptor, isLegacyDescriptor } from './descriptors'\nimport {\n introspectRichTextData,\n Targets,\n type Data,\n type Element,\n type RichTextValue,\n} from '@makeswift/controls'\n\nimport {\n getLinkPropControllerPageIds,\n getResponsiveColorPropControllerDataSwatchIds,\n getShadowsPropControllerDataSwatchIds,\n LinkPropControllerData,\n Types as PropControllerTypes,\n ResponsiveColorData,\n ShadowsPropControllerData,\n getBorderPropControllerDataSwatchIds,\n TablePropControllerData,\n getTablePropControllerDataTableIds,\n getNavigationLinksPropControllerPageIds,\n NavigationLinksPropControllerData,\n getNavigationLinksPropControllerSwatchIds,\n BorderPropControllerData,\n getElementIDPropControllerDataElementID,\n ElementIDPropControllerData,\n getGridPropControllerElementChildren,\n GridPropControllerData,\n getImagePropControllerFileIds,\n ImagePropControllerData,\n getImagesPropControllerFileIds,\n ImagesPropControllerData,\n getBackgroundsPropControllerFileIds,\n getBackgroundsPropControllerSwatchIds,\n BackgroundsPropControllerData,\n} from '@makeswift/prop-controllers'\n\nimport { DELETED_PROP_CONTROLLER_TYPES } from './deleted'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.ChildrenElement)\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.Grid:\n return getGridPropControllerElementChildren(prop as GridPropControllerData | undefined)\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n if (!isLegacyDescriptor(descriptor)) {\n return null\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.ElementID:\n return getElementIDPropControllerDataElementID(prop as ElementIDPropControllerData) ?? null\n\n default:\n return null\n }\n}\n\nexport function getSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.Swatch)\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerSwatchIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Border:\n return getBorderPropControllerDataSwatchIds(prop as BorderPropControllerData)\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerSwatchIds(prop as NavigationLinksPropControllerData)\n }\n\n case PropControllerTypes.ResponsiveColor:\n return getResponsiveColorPropControllerDataSwatchIds(prop as ResponsiveColorData)\n\n case PropControllerTypes.Shadows:\n return getShadowsPropControllerDataSwatchIds(prop as ShadowsPropControllerData)\n\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return introspectRichTextData(prop as RichTextValue, Targets.Swatch)\n }\n\n default:\n return []\n }\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.File)\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerFileIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Image: {\n return getImagePropControllerFileIds(prop as ImagePropControllerData)\n }\n\n case PropControllerTypes.Images: {\n return getImagesPropControllerFileIds(prop as ImagesPropControllerData)\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.Typography)\n }\n\n switch (descriptor.type) {\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return introspectRichTextData(prop as RichTextValue, Targets.Typography)\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.Table)\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.Table: {\n return getTablePropControllerDataTableIds(prop as TablePropControllerData)\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n if (!isLegacyDescriptor(descriptor)) {\n return descriptor.introspect(prop, Targets.Page)\n }\n\n switch (descriptor.type) {\n case PropControllerTypes.Link: {\n return getLinkPropControllerPageIds(prop as LinkPropControllerData)\n }\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerPageIds(prop as NavigationLinksPropControllerData)\n }\n\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return introspectRichTextData(prop as RichTextValue, Targets.Page)\n }\n\n default:\n return []\n }\n}\n"],"mappings":"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","names":[]}
package/dist/esm/react.js CHANGED
@@ -1,20 +1,18 @@
1
1
  import { ActionTypes, changeDocument } from "./state/actions";
2
2
  import {
3
3
  Element,
4
- RuntimeProvider,
5
4
  ReactRuntime,
6
5
  useIsInBuilder,
7
- DocumentReference,
6
+ DocumentRoot,
8
7
  PageProvider,
9
8
  usePageId
10
9
  } from "./runtimes/react";
11
10
  export {
12
11
  ActionTypes,
13
- DocumentReference,
12
+ DocumentRoot,
14
13
  Element,
15
14
  PageProvider,
16
15
  ReactRuntime,
17
- RuntimeProvider,
18
16
  changeDocument,
19
17
  useIsInBuilder,
20
18
  usePageId
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react.ts"],"sourcesContent":["export type { Action } from './state/actions'\nexport { ActionTypes, changeDocument } from './state/actions'\nexport {\n Element,\n RuntimeProvider,\n ReactRuntime,\n useIsInBuilder,\n DocumentReference,\n PageProvider,\n usePageId,\n} from './runtimes/react'\n"],"mappings":"AACA,SAAS,aAAa,sBAAsB;AAC5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
1
+ {"version":3,"sources":["../../src/react.ts"],"sourcesContent":["export type { Action } from './state/actions'\nexport { ActionTypes, changeDocument } from './state/actions'\nexport {\n Element,\n ReactRuntime,\n useIsInBuilder,\n DocumentRoot,\n PageProvider,\n usePageId,\n} from './runtimes/react'\n"],"mappings":"AACA,SAAS,aAAa,sBAAsB;AAC5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -1,10 +1,11 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, memo } from "react";
3
- import { DocumentContext } from "../hooks/use-document-key";
3
+ import { getRootElement } from "../../../state/react-page";
4
+ import { DocumentContext } from "../hooks/use-document-context";
4
5
  import { Element } from "./Element";
5
6
  const Document = memo(
6
7
  forwardRef(function Document2({ document }, ref) {
7
- return /* @__PURE__ */ jsx(DocumentContext.Provider, { value: document.key, children: /* @__PURE__ */ jsx(Element, { ref, element: document.rootElement }) });
8
+ return /* @__PURE__ */ jsx(DocumentContext.Provider, { value: document, children: /* @__PURE__ */ jsx(Element, { ref, element: getRootElement(document) }) });
8
9
  })
9
10
  );
10
11
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/components/Document.tsx"],"sourcesContent":["import { Ref, forwardRef, memo } from 'react'\nimport { Document as ReactPageDocument } from '../../../state/react-page'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { DocumentContext } from '../hooks/use-document-key'\nimport { Element } from './Element'\n\ntype DocumentProps = {\n document: ReactPageDocument\n}\n\nexport const Document = memo(\n forwardRef(function Document(\n { document }: DocumentProps,\n ref: Ref<ElementImperativeHandle>,\n ): JSX.Element {\n return (\n <DocumentContext.Provider value={document.key}>\n <Element ref={ref} element={document.rootElement} />\n </DocumentContext.Provider>\n )\n }),\n)\n"],"mappings":"AAiBQ;AAjBR,SAAc,YAAY,YAAY;AAGtC,SAAS,uBAAuB;AAChC,SAAS,eAAe;AAMjB,MAAM,WAAW;AAAA,EACtB,WAAW,SAASA,UAClB,EAAE,SAAS,GACX,KACa;AACb,WACE,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,SAAS,KACxC,8BAAC,WAAQ,KAAU,SAAS,SAAS,aAAa,GACpD;AAAA,EAEJ,CAAC;AACH;","names":["Document"]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/components/Document.tsx"],"sourcesContent":["import { Ref, forwardRef, memo } from 'react'\nimport { type Document as ReactPageDocument, getRootElement } from '../../../state/react-page'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { DocumentContext } from '../hooks/use-document-context'\nimport { Element } from './Element'\n\ntype DocumentProps = {\n document: ReactPageDocument\n}\n\nexport const Document = memo(\n forwardRef(function Document(\n { document }: DocumentProps,\n ref: Ref<ElementImperativeHandle>,\n ): JSX.Element {\n return (\n <DocumentContext.Provider value={document}>\n <Element ref={ref} element={getRootElement(document)} />\n </DocumentContext.Provider>\n )\n }),\n)\n"],"mappings":"AAiBQ;AAjBR,SAAc,YAAY,YAAY;AACtC,SAA6C,sBAAsB;AAEnE,SAAS,uBAAuB;AAChC,SAAS,eAAe;AAMjB,MAAM,WAAW;AAAA,EACtB,WAAW,SAASA,UAClB,EAAE,SAAS,GACX,KACa;AACb,WACE,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,UAC/B,8BAAC,WAAQ,KAAU,SAAS,eAAe,QAAQ,GAAG,GACxD;AAAA,EAEJ,CAAC;AACH;","names":["Document"]}
@@ -2,17 +2,17 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, memo } from "react";
3
3
  import { useDocument } from "../hooks/use-document";
4
4
  import { FallbackComponent } from "../../../components/shared/FallbackComponent";
5
- import { Document } from "./Document";
6
- const DocumentReference = memo(
7
- forwardRef(function DocumentReference2({ documentReference }, ref) {
8
- const document = useDocument(documentReference.key);
5
+ import { Document as DocumentComponent } from "./Document";
6
+ const DocumentRoot = memo(
7
+ forwardRef(function DocumentRoot2({ rootDocument }, ref) {
8
+ const document = useDocument(rootDocument.key) ?? rootDocument;
9
9
  if (document == null) {
10
10
  return /* @__PURE__ */ jsx(FallbackComponent, { ref, text: "Document not found" });
11
11
  }
12
- return /* @__PURE__ */ jsx(Document, { ref, document });
12
+ return /* @__PURE__ */ jsx(DocumentComponent, { ref, document });
13
13
  })
14
14
  );
15
15
  export {
16
- DocumentReference
16
+ DocumentRoot
17
17
  };
18
- //# sourceMappingURL=DocumentReference.js.map
18
+ //# sourceMappingURL=DocumentRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/components/DocumentRoot.tsx"],"sourcesContent":["import { Ref, forwardRef, memo } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { useDocument } from '../hooks/use-document'\nimport { FallbackComponent } from '../../../components/shared/FallbackComponent'\nimport { Document as DocumentComponent } from './Document'\n\ntype Props = {\n rootDocument: Document\n}\n\nexport const DocumentRoot = memo(\n forwardRef(function DocumentRoot(\n { rootDocument }: Props,\n ref: Ref<ElementImperativeHandle>,\n ): JSX.Element {\n const document = useDocument(rootDocument.key) ?? rootDocument\n\n if (document == null) {\n return <FallbackComponent ref={ref as Ref<HTMLDivElement>} text=\"Document not found\" />\n }\n\n return <DocumentComponent ref={ref} document={document} />\n }),\n)\n"],"mappings":"AAmBa;AAnBb,SAAc,YAAY,YAAY;AAGtC,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,YAAY,yBAAyB;AAMvC,MAAM,eAAe;AAAA,EAC1B,WAAW,SAASA,cAClB,EAAE,aAAa,GACf,KACa;AACb,UAAM,WAAW,YAAY,aAAa,GAAG,KAAK;AAElD,QAAI,YAAY,MAAM;AACpB,aAAO,oBAAC,qBAAkB,KAAiC,MAAK,sBAAqB;AAAA,IACvF;AAEA,WAAO,oBAAC,qBAAkB,KAAU,UAAoB;AAAA,EAC1D,CAAC;AACH;","names":["DocumentRoot"]}
@@ -1,20 +1,14 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useRef } from "react";
3
+ import { forwardRef, memo, useCallback, useImperativeHandle, useRef } from "react";
4
4
  import { isElementReference } from "../../../state/react-page";
5
- import { ElementImperativeHandle } from "../element-imperative-handle";
6
- import { useDispatch } from "../hooks/use-dispatch";
7
- import { useDocumentKey } from "../hooks/use-document-key";
8
- import { useDisableRegisterElement } from "../hooks/use-disable-register-element";
9
- import { mountComponentEffect, registerComponentHandleEffect } from "../../../state/actions";
5
+ import { ElementRegistration } from "./ElementRegistration";
10
6
  import { ElementReference } from "./ElementReference";
11
7
  import { ElementData } from "./ElementData";
8
+ import { ElementImperativeHandle } from "../element-imperative-handle";
12
9
  import { FindDomNode } from "../find-dom-node";
13
10
  const Element = memo(
14
11
  forwardRef(function Element2({ element }, ref) {
15
- const elementKey = element.key;
16
- const dispatch = useDispatch();
17
- const documentKey = useDocumentKey();
18
12
  const useFindDomNodeRef = useRef(true);
19
13
  const imperativeHandleRef = useRef(new ElementImperativeHandle());
20
14
  const findDomNodeCallbackRef = useCallback((current) => {
@@ -26,21 +20,15 @@ const Element = memo(
26
20
  useFindDomNodeRef.current = false;
27
21
  imperativeHandleRef.current.callback(() => current);
28
22
  }, []);
29
- const isRegisterElementDisabled = useDisableRegisterElement();
30
23
  useImperativeHandle(ref, () => imperativeHandleRef.current, []);
31
- useEffect(() => {
32
- if (documentKey == null || isRegisterElementDisabled)
33
- return;
34
- return dispatch(
35
- registerComponentHandleEffect(documentKey, elementKey, imperativeHandleRef.current)
36
- );
37
- }, [dispatch, documentKey, elementKey, isRegisterElementDisabled]);
38
- useEffect(() => {
39
- if (documentKey == null || isRegisterElementDisabled)
40
- return;
41
- return dispatch(mountComponentEffect(documentKey, elementKey));
42
- }, [dispatch, documentKey, elementKey, isRegisterElementDisabled]);
43
- return /* @__PURE__ */ jsx(FindDomNode, { ref: findDomNodeCallbackRef, children: isElementReference(element) ? /* @__PURE__ */ jsx(ElementReference, { ref: elementCallbackRef, elementReference: element }, elementKey) : /* @__PURE__ */ jsx(ElementData, { ref: elementCallbackRef, elementData: element }, elementKey) });
24
+ return /* @__PURE__ */ jsx(ElementRegistration, { componentHandle: imperativeHandleRef.current, elementKey: element.key, children: /* @__PURE__ */ jsx(FindDomNode, { ref: findDomNodeCallbackRef, children: isElementReference(element) ? /* @__PURE__ */ jsx(
25
+ ElementReference,
26
+ {
27
+ ref: elementCallbackRef,
28
+ elementReference: element
29
+ },
30
+ element.key
31
+ ) : /* @__PURE__ */ jsx(ElementData, { ref: elementCallbackRef, elementData: element }, element.key) }) });
44
32
  })
45
33
  );
46
34
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/components/Element.tsx"],"sourcesContent":["'use client'\n\nimport { Ref, forwardRef, memo, useCallback, useEffect, useImperativeHandle, useRef } from 'react'\nimport { Element as ElementDataOrRef, isElementReference } from '../../../state/react-page'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { useDispatch } from '../hooks/use-dispatch'\nimport { useDocumentKey } from '../hooks/use-document-key'\nimport { useDisableRegisterElement } from '../hooks/use-disable-register-element'\nimport { mountComponentEffect, registerComponentHandleEffect } from '../../../state/actions'\nimport { ElementReference } from './ElementReference'\nimport { ElementData } from './ElementData'\nimport { FindDomNode } from '../find-dom-node'\n\ntype ElementProps = {\n element: ElementDataOrRef\n}\n\nexport const Element = memo(\n forwardRef(function Element(\n { element }: ElementProps,\n ref: Ref<ElementImperativeHandle>,\n ): JSX.Element {\n const elementKey = element.key\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n const useFindDomNodeRef = useRef(true)\n const imperativeHandleRef = useRef(new ElementImperativeHandle())\n const findDomNodeCallbackRef = useCallback((current: (() => Element | Text | null) | null) => {\n if (useFindDomNodeRef.current === true) {\n imperativeHandleRef.current.callback(() => current?.() ?? null)\n }\n }, [])\n const elementCallbackRef = useCallback((current: unknown | null) => {\n useFindDomNodeRef.current = false\n\n imperativeHandleRef.current.callback(() => current)\n }, [])\n const isRegisterElementDisabled = useDisableRegisterElement()\n\n useImperativeHandle(ref, () => imperativeHandleRef.current, [])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(\n registerComponentHandleEffect(documentKey, elementKey, imperativeHandleRef.current),\n )\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 (\n <FindDomNode ref={findDomNodeCallbackRef}>\n {isElementReference(element) ? (\n <ElementReference key={elementKey} ref={elementCallbackRef} elementReference={element} />\n ) : (\n <ElementData key={elementKey} ref={elementCallbackRef} elementData={element} />\n )}\n </FindDomNode>\n )\n }),\n)\n"],"mappings":";AA0DU;AAxDV,SAAc,YAAY,MAAM,aAAa,WAAW,qBAAqB,cAAc;AAC3F,SAAsC,0BAA0B;AAChE,SAAS,+BAA+B;AACxC,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,iCAAiC;AAC1C,SAAS,sBAAsB,qCAAqC;AACpE,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAMrB,MAAM,UAAU;AAAA,EACrB,WAAW,SAASA,SAClB,EAAE,QAAQ,GACV,KACa;AACb,UAAM,aAAa,QAAQ;AAC3B,UAAM,WAAW,YAAY;AAC7B,UAAM,cAAc,eAAe;AACnC,UAAM,oBAAoB,OAAO,IAAI;AACrC,UAAM,sBAAsB,OAAO,IAAI,wBAAwB,CAAC;AAChE,UAAM,yBAAyB,YAAY,CAAC,YAAkD;AAC5F,UAAI,kBAAkB,YAAY,MAAM;AACtC,4BAAoB,QAAQ,SAAS,MAAM,UAAU,KAAK,IAAI;AAAA,MAChE;AAAA,IACF,GAAG,CAAC,CAAC;AACL,UAAM,qBAAqB,YAAY,CAAC,YAA4B;AAClE,wBAAkB,UAAU;AAE5B,0BAAoB,QAAQ,SAAS,MAAM,OAAO;AAAA,IACpD,GAAG,CAAC,CAAC;AACL,UAAM,4BAA4B,0BAA0B;AAE5D,wBAAoB,KAAK,MAAM,oBAAoB,SAAS,CAAC,CAAC;AAE9D,cAAU,MAAM;AACd,UAAI,eAAe,QAAQ;AAA2B;AAEtD,aAAO;AAAA,QACL,8BAA8B,aAAa,YAAY,oBAAoB,OAAO;AAAA,MACpF;AAAA,IACF,GAAG,CAAC,UAAU,aAAa,YAAY,yBAAyB,CAAC;AAEjE,cAAU,MAAM;AACd,UAAI,eAAe,QAAQ;AAA2B;AAEtD,aAAO,SAAS,qBAAqB,aAAa,UAAU,CAAC;AAAA,IAC/D,GAAG,CAAC,UAAU,aAAa,YAAY,yBAAyB,CAAC;AAEjE,WACE,oBAAC,eAAY,KAAK,wBACf,6BAAmB,OAAO,IACzB,oBAAC,oBAAkC,KAAK,oBAAoB,kBAAkB,WAAvD,UAAgE,IAEvF,oBAAC,eAA6B,KAAK,oBAAoB,aAAa,WAAlD,UAA2D,GAEjF;AAAA,EAEJ,CAAC;AACH;","names":["Element"]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/components/Element.tsx"],"sourcesContent":["'use client'\n\nimport { forwardRef, memo, Ref, useCallback, useImperativeHandle, useRef } from 'react'\nimport { isElementReference, type Element as ElementDataOrRef } from '../../../state/react-page'\nimport { ElementRegistration } from './ElementRegistration'\nimport { ElementReference } from './ElementReference'\nimport { ElementData } from './ElementData'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { FindDomNode } from '../find-dom-node'\n\ntype Props = {\n element: ElementDataOrRef\n}\n\nexport const Element = memo(\n forwardRef(function Element(\n { element }: Props,\n ref: Ref<ElementImperativeHandle>,\n ): JSX.Element | null {\n const useFindDomNodeRef = useRef(true)\n const imperativeHandleRef = useRef(new ElementImperativeHandle())\n\n const findDomNodeCallbackRef = useCallback((current: (() => Element | Text | null) | null) => {\n if (useFindDomNodeRef.current === true) {\n imperativeHandleRef.current.callback(() => current?.() ?? null)\n }\n }, [])\n\n const elementCallbackRef = useCallback((current: unknown | null) => {\n useFindDomNodeRef.current = false\n\n imperativeHandleRef.current.callback(() => current)\n }, [])\n\n useImperativeHandle(ref, () => imperativeHandleRef.current, [])\n\n return (\n <ElementRegistration componentHandle={imperativeHandleRef.current} elementKey={element.key}>\n <FindDomNode ref={findDomNodeCallbackRef}>\n {isElementReference(element) ? (\n <ElementReference\n key={element.key}\n ref={elementCallbackRef}\n elementReference={element}\n />\n ) : (\n <ElementData key={element.key} ref={elementCallbackRef} elementData={element} />\n )}\n </FindDomNode>\n </ElementRegistration>\n )\n }),\n)\n"],"mappings":";AAwCY;AAtCZ,SAAS,YAAY,MAAW,aAAa,qBAAqB,cAAc;AAChF,SAAS,0BAA4D;AACrE,SAAS,2BAA2B;AACpC,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,+BAA+B;AACxC,SAAS,mBAAmB;AAMrB,MAAM,UAAU;AAAA,EACrB,WAAW,SAASA,SAClB,EAAE,QAAQ,GACV,KACoB;AACpB,UAAM,oBAAoB,OAAO,IAAI;AACrC,UAAM,sBAAsB,OAAO,IAAI,wBAAwB,CAAC;AAEhE,UAAM,yBAAyB,YAAY,CAAC,YAAkD;AAC5F,UAAI,kBAAkB,YAAY,MAAM;AACtC,4BAAoB,QAAQ,SAAS,MAAM,UAAU,KAAK,IAAI;AAAA,MAChE;AAAA,IACF,GAAG,CAAC,CAAC;AAEL,UAAM,qBAAqB,YAAY,CAAC,YAA4B;AAClE,wBAAkB,UAAU;AAE5B,0BAAoB,QAAQ,SAAS,MAAM,OAAO;AAAA,IACpD,GAAG,CAAC,CAAC;AAEL,wBAAoB,KAAK,MAAM,oBAAoB,SAAS,CAAC,CAAC;AAE9D,WACE,oBAAC,uBAAoB,iBAAiB,oBAAoB,SAAS,YAAY,QAAQ,KACrF,8BAAC,eAAY,KAAK,wBACf,6BAAmB,OAAO,IACzB;AAAA,MAAC;AAAA;AAAA,QAEC,KAAK;AAAA,QACL,kBAAkB;AAAA;AAAA,MAFb,QAAQ;AAAA,IAGf,IAEA,oBAAC,eAA8B,KAAK,oBAAoB,aAAa,WAAnD,QAAQ,GAAoD,GAElF,GACF;AAAA,EAEJ,CAAC;AACH;","names":["Element"]}
@@ -7,10 +7,12 @@ import { FallbackComponent } from "../../../components/shared/FallbackComponent"
7
7
  import { Element } from "./Element";
8
8
  import { Document } from "./Document";
9
9
  import { DisableRegisterElement } from "../hooks/use-disable-register-element";
10
+ import { useDocumentLocale } from "../hooks/use-document-context";
10
11
  const ElementReference = memo(
11
12
  forwardRef(function ElementReference2({ elementReference }, ref) {
12
13
  const globalElement = useGlobalElement(elementReference.value);
13
- const localizedGlobalElement = useLocalizedGlobalElement(elementReference.value);
14
+ const locale = useDocumentLocale();
15
+ const localizedGlobalElement = useLocalizedGlobalElement(locale, elementReference.value);
14
16
  const globalElementData = localizedGlobalElement?.data ?? globalElement?.data;
15
17
  const elementReferenceDocument = useDocument(elementReference.key);
16
18
  const documentKey = elementReference.key;