@makeswift/runtime 0.26.3 → 0.26.4-canary.1

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 (560) hide show
  1. package/dist/cjs/api/{react.js → client.js} +14 -7
  2. package/dist/cjs/api/client.js.map +1 -0
  3. package/dist/cjs/api-handler/handlers/element-tree.js.map +1 -1
  4. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  5. package/dist/cjs/api-handler/handlers/merge-translated-data.js.map +1 -1
  6. package/dist/cjs/api-handler/handlers/translatable-data.js.map +1 -1
  7. package/dist/cjs/builder/host-to-builder-actions.js +3 -3
  8. package/dist/cjs/builder/host-to-builder-actions.js.map +1 -1
  9. package/dist/cjs/builder/index.js +2 -2
  10. package/dist/cjs/builder/index.js.map +1 -1
  11. package/dist/cjs/client/index.js +8 -8
  12. package/dist/cjs/client/index.js.map +1 -1
  13. package/dist/cjs/components/builtin/Box/Box.js +1 -1
  14. package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
  15. package/dist/cjs/components/builtin/Form/Form.js +1 -1
  16. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  17. package/dist/cjs/components/hooks/useTableFormFieldRefs.js +1 -1
  18. package/dist/cjs/components/hooks/useTableFormFieldRefs.js.map +1 -1
  19. package/dist/cjs/next/components/framework-provider/index.js +1 -1
  20. package/dist/cjs/next/components/framework-provider/index.js.map +1 -1
  21. package/dist/cjs/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  22. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +1 -2
  23. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  24. package/dist/cjs/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  25. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js +1 -2
  26. package/dist/cjs/next/components/tests/makeswift-component/fixtures.js.map +1 -1
  27. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js +2 -3
  28. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  29. package/dist/cjs/next/testing/element-data.js +3 -3
  30. package/dist/cjs/next/testing/element-data.js.map +1 -1
  31. package/dist/cjs/next/testing/index.js +2 -0
  32. package/dist/cjs/next/testing/index.js.map +1 -1
  33. package/dist/cjs/next/testing/page-rendering.js +3 -3
  34. package/dist/cjs/next/testing/page-rendering.js.map +1 -1
  35. package/dist/cjs/next/testing/react-runtime.js +29 -0
  36. package/dist/cjs/next/testing/react-runtime.js.map +1 -0
  37. package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
  38. package/dist/cjs/prop-controllers/instances.js.map +1 -1
  39. package/dist/cjs/runtimes/react/components/Document.js +2 -2
  40. package/dist/cjs/runtimes/react/components/Document.js.map +1 -1
  41. package/dist/cjs/runtimes/react/components/DocumentRoot.js.map +1 -1
  42. package/dist/cjs/runtimes/react/components/Element.js +2 -2
  43. package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
  44. package/dist/cjs/runtimes/react/components/ElementData.js.map +1 -1
  45. package/dist/cjs/runtimes/react/components/ElementReference.js.map +1 -1
  46. package/dist/cjs/runtimes/react/components/ElementRegistration.js +2 -2
  47. package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -1
  48. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js +2 -2
  49. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js.map +1 -1
  50. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +6 -5
  51. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  52. package/dist/cjs/runtimes/react/components/framework-context.js +3 -13
  53. package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
  54. package/dist/cjs/runtimes/react/components/page/Page.js.map +1 -1
  55. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js +2 -3
  56. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  57. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  58. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  59. package/dist/cjs/runtimes/react/controls.js +2 -2
  60. package/dist/cjs/runtimes/react/controls.js.map +1 -1
  61. package/dist/cjs/runtimes/react/element-imperative-handle.js +1 -1
  62. package/dist/cjs/runtimes/react/element-imperative-handle.js.map +1 -1
  63. package/dist/cjs/runtimes/react/hooks/use-breakpoints.js +2 -2
  64. package/dist/cjs/runtimes/react/hooks/use-breakpoints.js.map +1 -1
  65. package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js +2 -2
  66. package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -1
  67. package/dist/cjs/runtimes/react/hooks/use-cache-data.js +2 -2
  68. package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -1
  69. package/dist/cjs/runtimes/react/hooks/use-component.js +3 -3
  70. package/dist/cjs/runtimes/react/hooks/use-component.js.map +1 -1
  71. package/dist/cjs/runtimes/react/hooks/use-dispatch.js.map +1 -1
  72. package/dist/cjs/runtimes/react/hooks/use-document.js +2 -2
  73. package/dist/cjs/runtimes/react/hooks/use-document.js.map +1 -1
  74. package/dist/cjs/runtimes/react/hooks/use-element-id.js +2 -2
  75. package/dist/cjs/runtimes/react/hooks/use-element-id.js.map +1 -1
  76. package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js +2 -2
  77. package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js.map +1 -1
  78. package/dist/cjs/runtimes/react/hooks/{use-is-preview.js → use-is-read-only.js} +9 -9
  79. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  80. package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -1
  81. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +2 -2
  82. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  83. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js +1 -1
  84. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  85. package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -1
  86. package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
  87. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  88. package/dist/cjs/runtimes/react/host-api-client.js +4 -3
  89. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -1
  90. package/dist/cjs/runtimes/react/index.js +3 -3
  91. package/dist/cjs/runtimes/react/index.js.map +1 -1
  92. package/dist/cjs/runtimes/react/poll-box-model.js +1 -1
  93. package/dist/cjs/runtimes/react/poll-box-model.js.map +1 -1
  94. package/dist/cjs/runtimes/react/react-runtime-core.js +3 -3
  95. package/dist/cjs/runtimes/react/react-runtime-core.js.map +1 -1
  96. package/dist/cjs/runtimes/react/runtime-core.js +4 -2
  97. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
  98. package/dist/cjs/runtimes/react/testing/react-runtime.js +32 -0
  99. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -0
  100. package/dist/cjs/runtimes/react/utils/can-accept-ref.js.map +1 -1
  101. package/dist/cjs/state/actions/internal/index.js +34 -0
  102. package/dist/cjs/state/actions/internal/index.js.map +1 -0
  103. package/dist/cjs/state/actions/{internal.js → internal/read-only-actions.js} +44 -62
  104. package/dist/cjs/state/actions/internal/read-only-actions.js.map +1 -0
  105. package/dist/cjs/state/actions/internal/read-write-actions.js +70 -0
  106. package/dist/cjs/state/actions/internal/read-write-actions.js.map +1 -0
  107. package/dist/cjs/state/builder-api/actions.js +11 -8
  108. package/dist/cjs/state/builder-api/actions.js.map +1 -1
  109. package/dist/cjs/state/host-api.js.map +1 -1
  110. package/dist/cjs/state/makeswift-api-client.js +34 -20
  111. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  112. package/dist/cjs/state/middleware/prop-controller-handles.js +114 -0
  113. package/dist/cjs/state/middleware/prop-controller-handles.js.map +1 -0
  114. package/dist/cjs/state/middleware/read-only-element-tree.js +52 -0
  115. package/dist/cjs/state/middleware/read-only-element-tree.js.map +1 -0
  116. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js +40 -0
  117. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  118. package/dist/cjs/state/middleware/read-write/builder-api/index.js +76 -0
  119. package/dist/cjs/state/middleware/read-write/builder-api/index.js.map +1 -0
  120. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js +278 -0
  121. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  122. package/dist/cjs/state/middleware/read-write/makeswift-api-client-sync.js +37 -0
  123. package/dist/cjs/state/middleware/read-write/makeswift-api-client-sync.js.map +1 -0
  124. package/dist/cjs/state/middleware/read-write/measure-box-models.js +71 -0
  125. package/dist/cjs/state/middleware/read-write/measure-box-models.js.map +1 -0
  126. package/dist/cjs/state/middleware/read-write/update-element-tree.js +59 -0
  127. package/dist/cjs/state/middleware/read-write/update-element-tree.js.map +1 -0
  128. package/dist/cjs/state/modules/api-resources.js +7 -4
  129. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  130. package/dist/cjs/state/modules/breakpoints.js +2 -1
  131. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  132. package/dist/cjs/state/modules/builder-edit-mode.js +2 -1
  133. package/dist/cjs/state/modules/builder-edit-mode.js.map +1 -1
  134. package/dist/cjs/state/modules/components-meta.js +3 -2
  135. package/dist/cjs/state/modules/components-meta.js.map +1 -1
  136. package/dist/cjs/state/modules/element-trees.js +5 -3
  137. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  138. package/dist/cjs/state/modules/is-in-builder.js +2 -1
  139. package/dist/cjs/state/modules/is-in-builder.js.map +1 -1
  140. package/dist/cjs/state/modules/{is-preview.js → is-read-only.js} +12 -9
  141. package/dist/cjs/state/modules/is-read-only.js.map +1 -0
  142. package/dist/cjs/state/modules/locale.js +53 -0
  143. package/dist/cjs/state/modules/locale.js.map +1 -0
  144. package/dist/cjs/state/modules/localized-resources-map.js +4 -2
  145. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -1
  146. package/dist/cjs/state/modules/prop-controllers.js +3 -2
  147. package/dist/cjs/state/modules/prop-controllers.js.map +1 -1
  148. package/dist/cjs/state/modules/react-components.js +3 -2
  149. package/dist/cjs/state/modules/react-components.js.map +1 -1
  150. package/dist/cjs/state/modules/read-only-documents.js +3 -2
  151. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  152. package/dist/cjs/state/modules/{box-models.js → read-write/box-models.js} +6 -4
  153. package/dist/cjs/state/modules/read-write/box-models.js.map +1 -0
  154. package/dist/cjs/state/modules/{element-imperative-handles.js → read-write/element-imperative-handles.js} +4 -3
  155. package/dist/cjs/state/modules/read-write/element-imperative-handles.js.map +1 -0
  156. package/dist/cjs/state/modules/{pointer.js → read-write/pointer.js} +3 -2
  157. package/dist/cjs/state/modules/read-write/pointer.js.map +1 -0
  158. package/dist/cjs/state/modules/{read-write-documents.js → read-write/read-write-documents.js} +3 -3
  159. package/dist/cjs/state/modules/read-write/read-write-documents.js.map +1 -0
  160. package/dist/cjs/state/modules/site-version.js +50 -0
  161. package/dist/cjs/state/modules/site-version.js.map +1 -0
  162. package/dist/cjs/state/ops/copy-element-tree.js +67 -0
  163. package/dist/cjs/state/ops/copy-element-tree.js.map +1 -0
  164. package/dist/cjs/state/ops/merge-element.js +73 -0
  165. package/dist/cjs/state/ops/merge-element.js.map +1 -0
  166. package/dist/cjs/state/react-builder-preview.js +18 -508
  167. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  168. package/dist/cjs/state/react-page.js +6 -250
  169. package/dist/cjs/state/react-page.js.map +1 -1
  170. package/dist/cjs/state/read-only-state.js +209 -0
  171. package/dist/cjs/state/read-only-state.js.map +1 -0
  172. package/dist/cjs/state/read-write-state.js +121 -0
  173. package/dist/cjs/state/read-write-state.js.map +1 -0
  174. package/dist/cjs/state/shared-api.js.map +1 -1
  175. package/dist/cjs/state/translations/get.js +2 -2
  176. package/dist/cjs/state/translations/get.js.map +1 -1
  177. package/dist/cjs/state/translations/merge.js +2 -2
  178. package/dist/cjs/state/translations/merge.js.map +1 -1
  179. package/dist/cjs/unstable-framework-support/index.js +2 -4
  180. package/dist/cjs/unstable-framework-support/index.js.map +1 -1
  181. package/dist/esm/api/{react.js → client.js} +11 -4
  182. package/dist/esm/api/client.js.map +1 -0
  183. package/dist/esm/api-handler/handlers/element-tree.js.map +1 -1
  184. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  185. package/dist/esm/api-handler/handlers/merge-translated-data.js.map +1 -1
  186. package/dist/esm/api-handler/handlers/translatable-data.js.map +1 -1
  187. package/dist/esm/builder/host-to-builder-actions.js +4 -4
  188. package/dist/esm/builder/host-to-builder-actions.js.map +1 -1
  189. package/dist/esm/builder/index.js +1 -1
  190. package/dist/esm/builder/index.js.map +1 -1
  191. package/dist/esm/client/index.js +5 -5
  192. package/dist/esm/client/index.js.map +1 -1
  193. package/dist/esm/components/builtin/Box/Box.js +1 -1
  194. package/dist/esm/components/builtin/Box/Box.js.map +1 -1
  195. package/dist/esm/components/builtin/Form/Form.js +1 -1
  196. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  197. package/dist/esm/components/hooks/useTableFormFieldRefs.js +1 -1
  198. package/dist/esm/components/hooks/useTableFormFieldRefs.js.map +1 -1
  199. package/dist/esm/next/components/framework-provider/index.js +2 -5
  200. package/dist/esm/next/components/framework-provider/index.js.map +1 -1
  201. package/dist/esm/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  202. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +1 -2
  203. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  204. package/dist/esm/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  205. package/dist/esm/next/components/tests/makeswift-component/fixtures.js +1 -2
  206. package/dist/esm/next/components/tests/makeswift-component/fixtures.js.map +1 -1
  207. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js +2 -3
  208. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  209. package/dist/esm/next/testing/element-data.js +1 -1
  210. package/dist/esm/next/testing/element-data.js.map +1 -1
  211. package/dist/esm/next/testing/index.js +1 -0
  212. package/dist/esm/next/testing/index.js.map +1 -1
  213. package/dist/esm/next/testing/page-rendering.js +3 -3
  214. package/dist/esm/next/testing/page-rendering.js.map +1 -1
  215. package/dist/esm/next/testing/react-runtime.js +5 -0
  216. package/dist/esm/next/testing/react-runtime.js.map +1 -0
  217. package/dist/esm/prop-controllers/descriptors.js.map +1 -1
  218. package/dist/esm/prop-controllers/instances.js.map +1 -1
  219. package/dist/esm/runtimes/react/components/Document.js +1 -1
  220. package/dist/esm/runtimes/react/components/Document.js.map +1 -1
  221. package/dist/esm/runtimes/react/components/DocumentRoot.js.map +1 -1
  222. package/dist/esm/runtimes/react/components/Element.js +3 -1
  223. package/dist/esm/runtimes/react/components/Element.js.map +1 -1
  224. package/dist/esm/runtimes/react/components/ElementData.js.map +1 -1
  225. package/dist/esm/runtimes/react/components/ElementReference.js.map +1 -1
  226. package/dist/esm/runtimes/react/components/ElementRegistration.js +1 -1
  227. package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -1
  228. package/dist/esm/runtimes/react/components/MakeswiftComponent.js +1 -1
  229. package/dist/esm/runtimes/react/components/MakeswiftComponent.js.map +1 -1
  230. package/dist/esm/runtimes/react/components/RuntimeProvider.js +5 -4
  231. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  232. package/dist/esm/runtimes/react/components/framework-context.js +2 -14
  233. package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
  234. package/dist/esm/runtimes/react/components/page/Page.js.map +1 -1
  235. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js +2 -3
  236. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  237. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  238. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  239. package/dist/esm/runtimes/react/controls.js +2 -2
  240. package/dist/esm/runtimes/react/controls.js.map +1 -1
  241. package/dist/esm/runtimes/react/element-imperative-handle.js +1 -1
  242. package/dist/esm/runtimes/react/element-imperative-handle.js.map +1 -1
  243. package/dist/esm/runtimes/react/hooks/use-breakpoints.js +1 -1
  244. package/dist/esm/runtimes/react/hooks/use-breakpoints.js.map +1 -1
  245. package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js +1 -1
  246. package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -1
  247. package/dist/esm/runtimes/react/hooks/use-cache-data.js +1 -1
  248. package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -1
  249. package/dist/esm/runtimes/react/hooks/use-component.js +1 -1
  250. package/dist/esm/runtimes/react/hooks/use-component.js.map +1 -1
  251. package/dist/esm/runtimes/react/hooks/use-dispatch.js.map +1 -1
  252. package/dist/esm/runtimes/react/hooks/use-document.js +1 -1
  253. package/dist/esm/runtimes/react/hooks/use-document.js.map +1 -1
  254. package/dist/esm/runtimes/react/hooks/use-element-id.js +1 -1
  255. package/dist/esm/runtimes/react/hooks/use-element-id.js.map +1 -1
  256. package/dist/esm/runtimes/react/hooks/use-is-in-builder.js +1 -1
  257. package/dist/esm/runtimes/react/hooks/use-is-in-builder.js.map +1 -1
  258. package/dist/esm/runtimes/react/hooks/use-is-read-only.js +9 -0
  259. package/dist/esm/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  260. package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -1
  261. package/dist/esm/runtimes/react/hooks/use-resolved-props.js +2 -2
  262. package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  263. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js +1 -1
  264. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  265. package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -1
  266. package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
  267. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  268. package/dist/esm/runtimes/react/host-api-client.js +3 -2
  269. package/dist/esm/runtimes/react/host-api-client.js.map +1 -1
  270. package/dist/esm/runtimes/react/index.js +2 -2
  271. package/dist/esm/runtimes/react/index.js.map +1 -1
  272. package/dist/esm/runtimes/react/poll-box-model.js +1 -1
  273. package/dist/esm/runtimes/react/poll-box-model.js.map +1 -1
  274. package/dist/esm/runtimes/react/react-runtime-core.js +4 -1
  275. package/dist/esm/runtimes/react/react-runtime-core.js.map +1 -1
  276. package/dist/esm/runtimes/react/runtime-core.js +3 -5
  277. package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
  278. package/dist/esm/runtimes/react/testing/react-runtime.js +8 -0
  279. package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -0
  280. package/dist/esm/runtimes/react/utils/can-accept-ref.js.map +1 -1
  281. package/dist/esm/state/actions/internal/index.js +10 -0
  282. package/dist/esm/state/actions/internal/index.js.map +1 -0
  283. package/dist/esm/state/actions/{internal.js → internal/read-only-actions.js} +36 -52
  284. package/dist/esm/state/actions/internal/read-only-actions.js.map +1 -0
  285. package/dist/esm/state/actions/internal/read-write-actions.js +41 -0
  286. package/dist/esm/state/actions/internal/read-write-actions.js.map +1 -0
  287. package/dist/esm/state/builder-api/actions.js +8 -7
  288. package/dist/esm/state/builder-api/actions.js.map +1 -1
  289. package/dist/esm/state/host-api.js.map +1 -1
  290. package/dist/esm/state/makeswift-api-client.js +33 -19
  291. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  292. package/dist/esm/state/middleware/prop-controller-handles.js +80 -0
  293. package/dist/esm/state/middleware/prop-controller-handles.js.map +1 -0
  294. package/dist/esm/state/middleware/read-only-element-tree.js +28 -0
  295. package/dist/esm/state/middleware/read-only-element-tree.js.map +1 -0
  296. package/dist/esm/state/middleware/read-write/builder-api/element-size.js +16 -0
  297. package/dist/esm/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  298. package/dist/esm/state/middleware/read-write/builder-api/index.js +52 -0
  299. package/dist/esm/state/middleware/read-write/builder-api/index.js.map +1 -0
  300. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js +251 -0
  301. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  302. package/dist/esm/state/middleware/read-write/makeswift-api-client-sync.js +13 -0
  303. package/dist/esm/state/middleware/read-write/makeswift-api-client-sync.js.map +1 -0
  304. package/dist/esm/state/middleware/read-write/measure-box-models.js +37 -0
  305. package/dist/esm/state/middleware/read-write/measure-box-models.js.map +1 -0
  306. package/dist/esm/state/middleware/read-write/update-element-tree.js +35 -0
  307. package/dist/esm/state/middleware/read-write/update-element-tree.js.map +1 -0
  308. package/dist/esm/state/modules/api-resources.js +8 -5
  309. package/dist/esm/state/modules/api-resources.js.map +1 -1
  310. package/dist/esm/state/modules/breakpoints.js +3 -2
  311. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  312. package/dist/esm/state/modules/builder-edit-mode.js +3 -2
  313. package/dist/esm/state/modules/builder-edit-mode.js.map +1 -1
  314. package/dist/esm/state/modules/components-meta.js +4 -3
  315. package/dist/esm/state/modules/components-meta.js.map +1 -1
  316. package/dist/esm/state/modules/element-trees.js +6 -4
  317. package/dist/esm/state/modules/element-trees.js.map +1 -1
  318. package/dist/esm/state/modules/is-in-builder.js +3 -2
  319. package/dist/esm/state/modules/is-in-builder.js.map +1 -1
  320. package/dist/esm/state/modules/is-read-only.js +24 -0
  321. package/dist/esm/state/modules/is-read-only.js.map +1 -0
  322. package/dist/esm/state/modules/locale.js +27 -0
  323. package/dist/esm/state/modules/locale.js.map +1 -0
  324. package/dist/esm/state/modules/localized-resources-map.js +5 -3
  325. package/dist/esm/state/modules/localized-resources-map.js.map +1 -1
  326. package/dist/esm/state/modules/prop-controllers.js +4 -3
  327. package/dist/esm/state/modules/prop-controllers.js.map +1 -1
  328. package/dist/esm/state/modules/react-components.js +4 -3
  329. package/dist/esm/state/modules/react-components.js.map +1 -1
  330. package/dist/esm/state/modules/read-only-documents.js +4 -6
  331. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  332. package/dist/esm/state/modules/{box-models.js → read-write/box-models.js} +6 -4
  333. package/dist/esm/state/modules/read-write/box-models.js.map +1 -0
  334. package/dist/esm/state/modules/{element-imperative-handles.js → read-write/element-imperative-handles.js} +4 -3
  335. package/dist/esm/state/modules/read-write/element-imperative-handles.js.map +1 -0
  336. package/dist/esm/state/modules/{pointer.js → read-write/pointer.js} +3 -2
  337. package/dist/esm/state/modules/read-write/pointer.js.map +1 -0
  338. package/dist/esm/state/modules/{read-write-documents.js → read-write/read-write-documents.js} +3 -3
  339. package/dist/esm/state/modules/read-write/read-write-documents.js.map +1 -0
  340. package/dist/esm/state/modules/site-version.js +24 -0
  341. package/dist/esm/state/modules/site-version.js.map +1 -0
  342. package/dist/esm/state/ops/copy-element-tree.js +37 -0
  343. package/dist/esm/state/ops/copy-element-tree.js.map +1 -0
  344. package/dist/esm/state/ops/merge-element.js +39 -0
  345. package/dist/esm/state/ops/merge-element.js.map +1 -0
  346. package/dist/esm/state/react-builder-preview.js +15 -500
  347. package/dist/esm/state/react-builder-preview.js.map +1 -1
  348. package/dist/esm/state/react-page.js +7 -240
  349. package/dist/esm/state/react-page.js.map +1 -1
  350. package/dist/esm/state/read-only-state.js +157 -0
  351. package/dist/esm/state/read-only-state.js.map +1 -0
  352. package/dist/esm/state/read-write-state.js +76 -0
  353. package/dist/esm/state/read-write-state.js.map +1 -0
  354. package/dist/esm/state/shared-api.js.map +1 -1
  355. package/dist/esm/state/translations/get.js +1 -1
  356. package/dist/esm/state/translations/get.js.map +1 -1
  357. package/dist/esm/state/translations/merge.js +1 -1
  358. package/dist/esm/state/translations/merge.js.map +1 -1
  359. package/dist/esm/unstable-framework-support/index.js +2 -4
  360. package/dist/esm/unstable-framework-support/index.js.map +1 -1
  361. package/dist/types/api/{react.d.ts → client.d.ts} +4 -2
  362. package/dist/types/api/client.d.ts.map +1 -0
  363. package/dist/types/api-handler/handlers/element-tree.d.ts +1 -1
  364. package/dist/types/api-handler/handlers/element-tree.d.ts.map +1 -1
  365. package/dist/types/api-handler/handlers/merge-translated-data.d.ts +1 -1
  366. package/dist/types/api-handler/handlers/merge-translated-data.d.ts.map +1 -1
  367. package/dist/types/api-handler/handlers/translatable-data.d.ts +1 -1
  368. package/dist/types/api-handler/handlers/translatable-data.d.ts.map +1 -1
  369. package/dist/types/api-handler/handlers/webhook/types.d.ts +4 -4
  370. package/dist/types/builder/host-to-builder-actions.d.ts +2 -2
  371. package/dist/types/builder/host-to-builder-actions.d.ts.map +1 -1
  372. package/dist/types/builder/index.d.ts +2 -2
  373. package/dist/types/builder/index.d.ts.map +1 -1
  374. package/dist/types/client/index.d.ts +2 -2
  375. package/dist/types/client/index.d.ts.map +1 -1
  376. package/dist/types/components/builtin/Box/Box.d.ts +1 -1
  377. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  378. package/dist/types/components/builtin/Form/Form.d.ts +1 -1
  379. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  380. package/dist/types/locale.d.ts +1 -1
  381. package/dist/types/next/components/framework-provider/index.d.ts.map +1 -1
  382. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts +1 -1
  383. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts.map +1 -1
  384. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +3 -3
  385. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  386. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts +1 -1
  387. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts.map +1 -1
  388. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts +1 -1
  389. package/dist/types/next/components/tests/makeswift-component/fixtures.d.ts.map +1 -1
  390. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts +1 -1
  391. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts.map +1 -1
  392. package/dist/types/next/testing/element-data.d.ts +1 -1
  393. package/dist/types/next/testing/element-data.d.ts.map +1 -1
  394. package/dist/types/next/testing/index.d.ts +1 -0
  395. package/dist/types/next/testing/index.d.ts.map +1 -1
  396. package/dist/types/next/testing/page-rendering.d.ts.map +1 -1
  397. package/dist/types/next/testing/react-runtime.d.ts +2 -0
  398. package/dist/types/next/testing/react-runtime.d.ts.map +1 -0
  399. package/dist/types/prop-controllers/descriptors.d.ts +1 -1
  400. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  401. package/dist/types/prop-controllers/instances.d.ts +1 -1
  402. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  403. package/dist/types/runtimes/react/components/Document.d.ts +1 -1
  404. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  405. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +1 -1
  406. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -1
  407. package/dist/types/runtimes/react/components/Element.d.ts +1 -1
  408. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  409. package/dist/types/runtimes/react/components/ElementData.d.ts +1 -1
  410. package/dist/types/runtimes/react/components/ElementData.d.ts.map +1 -1
  411. package/dist/types/runtimes/react/components/ElementReference.d.ts +1 -1
  412. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  413. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +1 -1
  414. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  415. package/dist/types/runtimes/react/components/framework-context.d.ts +2 -4
  416. package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
  417. package/dist/types/runtimes/react/components/page/Page.d.ts +1 -1
  418. package/dist/types/runtimes/react/components/page/Page.d.ts.map +1 -1
  419. package/dist/types/runtimes/react/controls.d.ts +2 -2
  420. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  421. package/dist/types/runtimes/react/element-imperative-handle.d.ts +1 -1
  422. package/dist/types/runtimes/react/element-imperative-handle.d.ts.map +1 -1
  423. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +1 -1
  424. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -1
  425. package/dist/types/runtimes/react/hooks/use-component.d.ts +1 -1
  426. package/dist/types/runtimes/react/hooks/use-component.d.ts.map +1 -1
  427. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts +3 -3
  428. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts.map +1 -1
  429. package/dist/types/runtimes/react/hooks/use-document.d.ts +1 -1
  430. package/dist/types/runtimes/react/hooks/use-document.d.ts.map +1 -1
  431. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts +2 -0
  432. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts.map +1 -0
  433. package/dist/types/runtimes/react/hooks/use-register-document.d.ts +1 -1
  434. package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -1
  435. package/dist/types/runtimes/react/hooks/use-selector.d.ts +3 -3
  436. package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -1
  437. package/dist/types/runtimes/react/hooks/use-store.d.ts +4 -4
  438. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  439. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +1 -1
  440. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -1
  441. package/dist/types/runtimes/react/host-api-client.d.ts +1 -1
  442. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -1
  443. package/dist/types/runtimes/react/index.d.ts +1 -1
  444. package/dist/types/runtimes/react/index.d.ts.map +1 -1
  445. package/dist/types/runtimes/react/poll-box-model.d.ts +1 -1
  446. package/dist/types/runtimes/react/poll-box-model.d.ts.map +1 -1
  447. package/dist/types/runtimes/react/react-runtime-core.d.ts +1 -1
  448. package/dist/types/runtimes/react/react-runtime-core.d.ts.map +1 -1
  449. package/dist/types/runtimes/react/runtime-core.d.ts +2 -1
  450. package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
  451. package/dist/types/runtimes/react/testing/react-runtime.d.ts +3 -0
  452. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -0
  453. package/dist/types/runtimes/react/utils/can-accept-ref.d.ts +1 -1
  454. package/dist/types/runtimes/react/utils/can-accept-ref.d.ts.map +1 -1
  455. package/dist/types/state/__tests__/merge-element.test.d.ts +2 -0
  456. package/dist/types/state/__tests__/merge-element.test.d.ts.map +1 -0
  457. package/dist/types/state/actions/index.d.ts +8 -5
  458. package/dist/types/state/actions/index.d.ts.map +1 -1
  459. package/dist/types/state/actions/internal/index.d.ts +27 -0
  460. package/dist/types/state/actions/internal/index.d.ts.map +1 -0
  461. package/dist/types/state/actions/{internal.d.ts → internal/read-only-actions.d.ts} +45 -67
  462. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +1 -0
  463. package/dist/types/state/actions/internal/read-write-actions.d.ts +48 -0
  464. package/dist/types/state/actions/internal/read-write-actions.d.ts.map +1 -0
  465. package/dist/types/state/builder-api/actions.d.ts +14 -14
  466. package/dist/types/state/builder-api/actions.d.ts.map +1 -1
  467. package/dist/types/state/host-api.d.ts +1 -1
  468. package/dist/types/state/host-api.d.ts.map +1 -1
  469. package/dist/types/state/makeswift-api-client.d.ts +11 -2
  470. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  471. package/dist/types/state/middleware/prop-controller-handles.d.ts +4 -0
  472. package/dist/types/state/middleware/prop-controller-handles.d.ts.map +1 -0
  473. package/dist/types/state/middleware/read-only-element-tree.d.ts +4 -0
  474. package/dist/types/state/middleware/read-only-element-tree.d.ts.map +1 -0
  475. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts +12 -0
  476. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts.map +1 -0
  477. package/dist/types/state/middleware/read-write/builder-api/index.d.ts +5 -0
  478. package/dist/types/state/middleware/read-write/builder-api/index.d.ts.map +1 -0
  479. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts +6 -0
  480. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts.map +1 -0
  481. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts +5 -0
  482. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts.map +1 -0
  483. package/dist/types/state/middleware/read-write/measure-box-models.d.ts +4 -0
  484. package/dist/types/state/middleware/read-write/measure-box-models.d.ts.map +1 -0
  485. package/dist/types/state/middleware/read-write/update-element-tree.d.ts +4 -0
  486. package/dist/types/state/middleware/read-write/update-element-tree.d.ts.map +1 -0
  487. package/dist/types/state/modules/api-resources.d.ts.map +1 -1
  488. package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
  489. package/dist/types/state/modules/builder-edit-mode.d.ts.map +1 -1
  490. package/dist/types/state/modules/components-meta.d.ts.map +1 -1
  491. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  492. package/dist/types/state/modules/is-in-builder.d.ts.map +1 -1
  493. package/dist/types/state/modules/{is-preview.d.ts → is-read-only.d.ts} +3 -3
  494. package/dist/types/state/modules/is-read-only.d.ts.map +1 -0
  495. package/dist/types/state/modules/locale.d.ts +6 -0
  496. package/dist/types/state/modules/locale.d.ts.map +1 -0
  497. package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -1
  498. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  499. package/dist/types/state/modules/react-components.d.ts.map +1 -1
  500. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  501. package/dist/types/state/modules/{box-models.d.ts → read-write/box-models.d.ts} +1 -1
  502. package/dist/types/state/modules/read-write/box-models.d.ts.map +1 -0
  503. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts +6 -0
  504. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts.map +1 -0
  505. package/dist/types/state/modules/{pointer.d.ts → read-write/pointer.d.ts} +2 -3
  506. package/dist/types/state/modules/read-write/pointer.d.ts.map +1 -0
  507. package/dist/types/state/modules/{read-write-documents.d.ts → read-write/read-write-documents.d.ts} +4 -4
  508. package/dist/types/state/modules/read-write/read-write-documents.d.ts.map +1 -0
  509. package/dist/types/state/modules/site-version.d.ts +7 -0
  510. package/dist/types/state/modules/site-version.d.ts.map +1 -0
  511. package/dist/types/state/ops/copy-element-tree.d.ts +37 -0
  512. package/dist/types/state/ops/copy-element-tree.d.ts.map +1 -0
  513. package/dist/types/state/ops/merge-element.d.ts +4 -0
  514. package/dist/types/state/ops/merge-element.d.ts.map +1 -0
  515. package/dist/types/state/react-builder-preview.d.ts +26 -93
  516. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  517. package/dist/types/state/react-page.d.ts +20 -136
  518. package/dist/types/state/react-page.d.ts.map +1 -1
  519. package/dist/types/state/read-only-state.d.ts +122 -0
  520. package/dist/types/state/read-only-state.d.ts.map +1 -0
  521. package/dist/types/state/read-write-state.d.ts +56 -0
  522. package/dist/types/state/read-write-state.d.ts.map +1 -0
  523. package/dist/types/state/shared-api.d.ts.map +1 -1
  524. package/dist/types/state/translations/get.d.ts +1 -1
  525. package/dist/types/state/translations/get.d.ts.map +1 -1
  526. package/dist/types/state/translations/merge.d.ts +1 -1
  527. package/dist/types/state/translations/merge.d.ts.map +1 -1
  528. package/dist/types/unstable-framework-support/index.d.ts +1 -1
  529. package/dist/types/unstable-framework-support/index.d.ts.map +1 -1
  530. package/package.json +1 -1
  531. package/dist/cjs/api/react.js.map +0 -1
  532. package/dist/cjs/runtimes/react/hooks/use-is-preview.js.map +0 -1
  533. package/dist/cjs/state/actions/internal.js.map +0 -1
  534. package/dist/cjs/state/modules/box-models.js.map +0 -1
  535. package/dist/cjs/state/modules/element-imperative-handles.js.map +0 -1
  536. package/dist/cjs/state/modules/is-preview.js.map +0 -1
  537. package/dist/cjs/state/modules/pointer.js.map +0 -1
  538. package/dist/cjs/state/modules/read-write-documents.js.map +0 -1
  539. package/dist/esm/api/react.js.map +0 -1
  540. package/dist/esm/runtimes/react/hooks/use-is-preview.js +0 -9
  541. package/dist/esm/runtimes/react/hooks/use-is-preview.js.map +0 -1
  542. package/dist/esm/state/actions/internal.js.map +0 -1
  543. package/dist/esm/state/modules/box-models.js.map +0 -1
  544. package/dist/esm/state/modules/element-imperative-handles.js.map +0 -1
  545. package/dist/esm/state/modules/is-preview.js +0 -21
  546. package/dist/esm/state/modules/is-preview.js.map +0 -1
  547. package/dist/esm/state/modules/pointer.js.map +0 -1
  548. package/dist/esm/state/modules/read-write-documents.js.map +0 -1
  549. package/dist/types/api/react.d.ts.map +0 -1
  550. package/dist/types/runtimes/react/hooks/use-is-preview.d.ts +0 -2
  551. package/dist/types/runtimes/react/hooks/use-is-preview.d.ts.map +0 -1
  552. package/dist/types/state/__tests__/react-page.test.d.ts +0 -2
  553. package/dist/types/state/__tests__/react-page.test.d.ts.map +0 -1
  554. package/dist/types/state/actions/internal.d.ts.map +0 -1
  555. package/dist/types/state/modules/box-models.d.ts.map +0 -1
  556. package/dist/types/state/modules/element-imperative-handles.d.ts +0 -7
  557. package/dist/types/state/modules/element-imperative-handles.d.ts.map +0 -1
  558. package/dist/types/state/modules/is-preview.d.ts.map +0 -1
  559. package/dist/types/state/modules/pointer.d.ts.map +0 -1
  560. package/dist/types/state/modules/read-write-documents.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/runtimes/react/controls/rich-text-v2/rich-text-v2.tsx"],"sourcesContent":["import { ReactNode, lazy } from 'react'\n\nimport { type DataType } from '@makeswift/controls'\nimport {\n RichTextV2Control,\n RichTextV2Definition,\n RichTextDataV2,\n} from '../../../../controls/rich-text-v2'\nimport { useIsPreview } from '../../../react/hooks/use-is-preview'\n\nexport type RichTextV2ControlValue = ReactNode\n\nexport type Descriptors = { text?: RichTextV2Definition }\n\nconst EditableText = lazy(() => import('./EditableTextV2'))\nconst ReadOnlyText = lazy(() => import('./ReadOnlyTextV2'))\n\nconst ReadOnlyTextV1 = lazy(() => import('../rich-text/ReadOnlyText'))\n\nexport function renderRichTextV2(\n data: DataType<RichTextV2Definition> | undefined,\n definition: RichTextV2Definition,\n control: RichTextV2Control | null,\n): ReactNode {\n return RichTextV2Definition.isV1Data(data) ? (\n <ReadOnlyTextV1 text={data} />\n ) : (\n <RichTextV2 data={data} definition={definition} control={control} />\n )\n}\n\nfunction RichTextV2({\n data,\n definition,\n control,\n}: {\n data: RichTextDataV2 | undefined\n definition: RichTextV2Definition\n control: RichTextV2Control | null\n}) {\n return useIsPreview() ? (\n <EditableText text={data} definition={definition} control={control} />\n ) : (\n <ReadOnlyText text={data} definition={definition} />\n )\n}\n"],"mappings":"AAyBI;AAzBJ,SAAoB,YAAY;AAGhC;AAAA,EAEE;AAAA,OAEK;AACP,SAAS,oBAAoB;AAM7B,MAAM,eAAe,KAAK,MAAM,OAAO,kBAAkB,CAAC;AAC1D,MAAM,eAAe,KAAK,MAAM,OAAO,kBAAkB,CAAC;AAE1D,MAAM,iBAAiB,KAAK,MAAM,OAAO,2BAA2B,CAAC;AAE9D,SAAS,iBACd,MACA,YACA,SACW;AACX,SAAO,qBAAqB,SAAS,IAAI,IACvC,oBAAC,kBAAe,MAAM,MAAM,IAE5B,oBAAC,cAAW,MAAY,YAAwB,SAAkB;AAEtE;AAEA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SAAO,aAAa,IAClB,oBAAC,gBAAa,MAAM,MAAM,YAAwB,SAAkB,IAEpE,oBAAC,gBAAa,MAAM,MAAM,YAAwB;AAEtD;","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/runtimes/react/controls/rich-text-v2/rich-text-v2.tsx"],"sourcesContent":["import { ReactNode, lazy } from 'react'\n\nimport { type DataType } from '@makeswift/controls'\nimport {\n RichTextV2Control,\n RichTextV2Definition,\n RichTextDataV2,\n} from '../../../../controls/rich-text-v2'\nimport { useIsReadOnly } from '../../hooks/use-is-read-only'\n\nexport type RichTextV2ControlValue = ReactNode\n\nexport type Descriptors = { text?: RichTextV2Definition }\n\nconst EditableText = lazy(() => import('./EditableTextV2'))\nconst ReadOnlyText = lazy(() => import('./ReadOnlyTextV2'))\n\nconst ReadOnlyTextV1 = lazy(() => import('../rich-text/ReadOnlyText'))\n\nexport function renderRichTextV2(\n data: DataType<RichTextV2Definition> | undefined,\n definition: RichTextV2Definition,\n control: RichTextV2Control | null,\n): ReactNode {\n return RichTextV2Definition.isV1Data(data) ? (\n <ReadOnlyTextV1 text={data} />\n ) : (\n <RichTextV2 data={data} definition={definition} control={control} />\n )\n}\n\nfunction RichTextV2({\n data,\n definition,\n control,\n}: {\n data: RichTextDataV2 | undefined\n definition: RichTextV2Definition\n control: RichTextV2Control | null\n}) {\n return useIsReadOnly() ? (\n <ReadOnlyText text={data} definition={definition} />\n ) : (\n <EditableText text={data} definition={definition} control={control} />\n )\n}\n"],"mappings":"AAyBI;AAzBJ,SAAoB,YAAY;AAGhC;AAAA,EAEE;AAAA,OAEK;AACP,SAAS,qBAAqB;AAM9B,MAAM,eAAe,KAAK,MAAM,OAAO,kBAAkB,CAAC;AAC1D,MAAM,eAAe,KAAK,MAAM,OAAO,kBAAkB,CAAC;AAE1D,MAAM,iBAAiB,KAAK,MAAM,OAAO,2BAA2B,CAAC;AAE9D,SAAS,iBACd,MACA,YACA,SACW;AACX,SAAO,qBAAqB,SAAS,IAAI,IACvC,oBAAC,kBAAe,MAAM,MAAM,IAE5B,oBAAC,cAAW,MAAY,YAAwB,SAAkB;AAEtE;AAEA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SAAO,cAAc,IACnB,oBAAC,gBAAa,MAAM,MAAM,YAAwB,IAElD,oBAAC,gBAAa,MAAM,MAAM,YAAwB,SAAkB;AAExE;","names":[]}
@@ -1,13 +1,13 @@
1
1
  import { useRef } from "react";
2
2
  import { partitionRecord } from "../../utils/partition";
3
- import * as ReactPage from "../../state/react-page";
3
+ import * as State from "../../state/read-only-state";
4
4
  import { isLegacyDescriptor } from "../../prop-controllers/descriptors";
5
5
  import { useStore } from "./hooks/use-store";
6
6
  import { resolveLegacyDescriptorProp } from "./legacy-controls";
7
7
  import { useResolvedProps } from "./hooks/use-resolved-props";
8
8
  function useControlDefs(elementType) {
9
9
  const store = useStore();
10
- const all = ReactPage.getComponentPropControllerDescriptors(store.getState(), elementType) ?? {};
10
+ const all = State.getComponentPropControllerDescriptors(store.getState(), elementType) ?? {};
11
11
  return useRef(partitionRecord(all, isLegacyDescriptor)).current;
12
12
  }
13
13
  function ResolveProps({ element, children: renderComponent }) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/react/controls.tsx"],"sourcesContent":["import { useRef, ReactNode } from 'react'\n\nimport { ControlDefinition } from '@makeswift/controls'\n\nimport { partitionRecord } from '../../utils/partition'\n\nimport * as ReactPage from '../../state/react-page'\nimport { isLegacyDescriptor, LegacyDescriptor } from '../../prop-controllers/descriptors'\n\nimport { useStore } from './hooks/use-store'\n\nimport { resolveLegacyDescriptorProp } from './legacy-controls'\nimport { useResolvedProps } from './hooks/use-resolved-props'\n\ntype PropsValueProps = {\n element: ReactPage.ElementData\n children(props: Record<string, unknown>): ReactNode\n}\n\nfunction useControlDefs(\n elementType: string,\n): readonly [Record<string, LegacyDescriptor>, Record<string, ControlDefinition>] {\n const store = useStore()\n const all = ReactPage.getComponentPropControllerDescriptors(store.getState(), elementType) ?? {}\n return useRef(partitionRecord(all, isLegacyDescriptor)).current\n}\n\nexport function ResolveProps({ element, children: renderComponent }: PropsValueProps): ReactNode {\n const [legacyDescriptors, definitions] = useControlDefs(element.type)\n\n const resolvedProps = useResolvedProps(definitions, element.props, element.key)\n\n const renderFn = Object.entries(legacyDescriptors).reduceRight(\n (renderFn, [propName, descriptor]) =>\n props =>\n resolveLegacyDescriptorProp(descriptor, propName, element.props[propName], props, renderFn),\n renderComponent,\n )\n\n return renderFn(resolvedProps)\n}\n"],"mappings":"AAAA,SAAS,cAAyB;AAIlC,SAAS,uBAAuB;AAEhC,YAAY,eAAe;AAC3B,SAAS,0BAA4C;AAErD,SAAS,gBAAgB;AAEzB,SAAS,mCAAmC;AAC5C,SAAS,wBAAwB;AAOjC,SAAS,eACP,aACgF;AAChF,QAAM,QAAQ,SAAS;AACvB,QAAM,MAAM,UAAU,sCAAsC,MAAM,SAAS,GAAG,WAAW,KAAK,CAAC;AAC/F,SAAO,OAAO,gBAAgB,KAAK,kBAAkB,CAAC,EAAE;AAC1D;AAEO,SAAS,aAAa,EAAE,SAAS,UAAU,gBAAgB,GAA+B;AAC/F,QAAM,CAAC,mBAAmB,WAAW,IAAI,eAAe,QAAQ,IAAI;AAEpE,QAAM,gBAAgB,iBAAiB,aAAa,QAAQ,OAAO,QAAQ,GAAG;AAE9E,QAAM,WAAW,OAAO,QAAQ,iBAAiB,EAAE;AAAA,IACjD,CAACA,WAAU,CAAC,UAAU,UAAU,MAC9B,WACE,4BAA4B,YAAY,UAAU,QAAQ,MAAM,QAAQ,GAAG,OAAOA,SAAQ;AAAA,IAC9F;AAAA,EACF;AAEA,SAAO,SAAS,aAAa;AAC/B;","names":["renderFn"]}
1
+ {"version":3,"sources":["../../../../src/runtimes/react/controls.tsx"],"sourcesContent":["import { useRef, ReactNode } from 'react'\n\nimport { ControlDefinition } from '@makeswift/controls'\n\nimport { partitionRecord } from '../../utils/partition'\n\nimport * as State from '../../state/read-only-state'\nimport { isLegacyDescriptor, LegacyDescriptor } from '../../prop-controllers/descriptors'\n\nimport { useStore } from './hooks/use-store'\n\nimport { resolveLegacyDescriptorProp } from './legacy-controls'\nimport { useResolvedProps } from './hooks/use-resolved-props'\n\ntype PropsValueProps = {\n element: State.ElementData\n children(props: Record<string, unknown>): ReactNode\n}\n\nfunction useControlDefs(\n elementType: string,\n): readonly [Record<string, LegacyDescriptor>, Record<string, ControlDefinition>] {\n const store = useStore()\n const all = State.getComponentPropControllerDescriptors(store.getState(), elementType) ?? {}\n return useRef(partitionRecord(all, isLegacyDescriptor)).current\n}\n\nexport function ResolveProps({ element, children: renderComponent }: PropsValueProps): ReactNode {\n const [legacyDescriptors, definitions] = useControlDefs(element.type)\n\n const resolvedProps = useResolvedProps(definitions, element.props, element.key)\n\n const renderFn = Object.entries(legacyDescriptors).reduceRight(\n (renderFn, [propName, descriptor]) =>\n props =>\n resolveLegacyDescriptorProp(descriptor, propName, element.props[propName], props, renderFn),\n renderComponent,\n )\n\n return renderFn(resolvedProps)\n}\n"],"mappings":"AAAA,SAAS,cAAyB;AAIlC,SAAS,uBAAuB;AAEhC,YAAY,WAAW;AACvB,SAAS,0BAA4C;AAErD,SAAS,gBAAgB;AAEzB,SAAS,mCAAmC;AAC5C,SAAS,wBAAwB;AAOjC,SAAS,eACP,aACgF;AAChF,QAAM,QAAQ,SAAS;AACvB,QAAM,MAAM,MAAM,sCAAsC,MAAM,SAAS,GAAG,WAAW,KAAK,CAAC;AAC3F,SAAO,OAAO,gBAAgB,KAAK,kBAAkB,CAAC,EAAE;AAC1D;AAEO,SAAS,aAAa,EAAE,SAAS,UAAU,gBAAgB,GAA+B;AAC/F,QAAM,CAAC,mBAAmB,WAAW,IAAI,eAAe,QAAQ,IAAI;AAEpE,QAAM,gBAAgB,iBAAiB,aAAa,QAAQ,OAAO,QAAQ,GAAG;AAE9E,QAAM,WAAW,OAAO,QAAQ,iBAAiB,EAAE;AAAA,IACjD,CAACA,WAAU,CAAC,UAAU,UAAU,MAC9B,WACE,4BAA4B,YAAY,UAAU,QAAQ,MAAM,QAAQ,GAAG,OAAOA,SAAQ;AAAA,IAC9F;AAAA,EACF;AAEA,SAAO,SAAS,aAAa;AAC/B;","names":["renderFn"]}
@@ -1,4 +1,4 @@
1
- import { isMeasurable, measure } from "../../state/modules/box-models";
1
+ import { isMeasurable, measure } from "../../state/modules/read-write/box-models";
2
2
  import {
3
3
  isPropControllersHandle
4
4
  } from "../../state/modules/prop-controller-handles";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/react/element-imperative-handle.ts"],"sourcesContent":["import { BoxModel } from '@makeswift/controls'\nimport { BoxModelHandle } from '../../state/modules/box-models'\nimport { Descriptor } from '../../prop-controllers/descriptors'\nimport { DescriptorsPropControllers } from '../../prop-controllers/instances'\nimport { isMeasurable, measure } from '../../state/modules/box-models'\nimport {\n isPropControllersHandle,\n PropControllersHandle,\n} from '../../state/modules/prop-controller-handles'\n\nexport class ElementImperativeHandle<\n T extends Record<string, Descriptor> = Record<string, Descriptor>,\n >\n implements BoxModelHandle, PropControllersHandle<T>\n{\n private getCurrent: () => unknown = () => null\n private lastPropControllers: DescriptorsPropControllers<T> | null = null\n\n callback(getCurrent: () => unknown) {\n const current = this.getCurrent()\n\n if (current === null) this.setPropControllers(null)\n\n this.getCurrent = getCurrent\n\n if (this.lastPropControllers !== null) this.setPropControllers(this.lastPropControllers)\n }\n\n getBoxModel(): BoxModel | null {\n const current = this.getCurrent()\n\n return isMeasurable(current) ? measure(current) : null\n }\n\n setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void {\n const current = this.getCurrent()\n\n if (isPropControllersHandle(current)) current.setPropControllers(propControllers)\n\n this.lastPropControllers = propControllers\n }\n\n getDomNode(): Element | null {\n const current = this.getCurrent()\n\n if (isDomNodeHandle(current)) return current.getDomNode()\n\n return current instanceof Element ? current : null\n }\n}\n\ntype DomNodeHandle = {\n getDomNode(): Element | null\n}\n\nexport function isDomNodeHandle(value: unknown): value is DomNodeHandle {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getDomNode' in value &&\n typeof (value as { getDomNode: unknown }).getDomNode === 'function'\n ) {\n return true\n }\n\n return false\n}\n"],"mappings":"AAIA,SAAS,cAAc,eAAe;AACtC;AAAA,EACE;AAAA,OAEK;AAEA,MAAM,wBAIb;AAAA,EACU,aAA4B,MAAM;AAAA,EAClC,sBAA4D;AAAA,EAEpE,SAAS,YAA2B;AAClC,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,YAAY;AAAM,WAAK,mBAAmB,IAAI;AAElD,SAAK,aAAa;AAElB,QAAI,KAAK,wBAAwB;AAAM,WAAK,mBAAmB,KAAK,mBAAmB;AAAA,EACzF;AAAA,EAEA,cAA+B;AAC7B,UAAM,UAAU,KAAK,WAAW;AAEhC,WAAO,aAAa,OAAO,IAAI,QAAQ,OAAO,IAAI;AAAA,EACpD;AAAA,EAEA,mBAAmB,iBAA6D;AAC9E,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,wBAAwB,OAAO;AAAG,cAAQ,mBAAmB,eAAe;AAEhF,SAAK,sBAAsB;AAAA,EAC7B;AAAA,EAEA,aAA6B;AAC3B,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,gBAAgB,OAAO;AAAG,aAAO,QAAQ,WAAW;AAExD,WAAO,mBAAmB,UAAU,UAAU;AAAA,EAChD;AACF;AAMO,SAAS,gBAAgB,OAAwC;AACtE,MACE,OAAO,UAAU,YACjB,UAAU,QACV,gBAAgB,SAChB,OAAQ,MAAkC,eAAe,YACzD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/react/element-imperative-handle.ts"],"sourcesContent":["import { BoxModel } from '@makeswift/controls'\nimport { BoxModelHandle } from '../../state/modules/read-write/box-models'\nimport { Descriptor } from '../../prop-controllers/descriptors'\nimport { DescriptorsPropControllers } from '../../prop-controllers/instances'\nimport { isMeasurable, measure } from '../../state/modules/read-write/box-models'\nimport {\n isPropControllersHandle,\n PropControllersHandle,\n} from '../../state/modules/prop-controller-handles'\n\nexport class ElementImperativeHandle<\n T extends Record<string, Descriptor> = Record<string, Descriptor>,\n >\n implements BoxModelHandle, PropControllersHandle<T>\n{\n private getCurrent: () => unknown = () => null\n private lastPropControllers: DescriptorsPropControllers<T> | null = null\n\n callback(getCurrent: () => unknown) {\n const current = this.getCurrent()\n\n if (current === null) this.setPropControllers(null)\n\n this.getCurrent = getCurrent\n\n if (this.lastPropControllers !== null) this.setPropControllers(this.lastPropControllers)\n }\n\n getBoxModel(): BoxModel | null {\n const current = this.getCurrent()\n\n return isMeasurable(current) ? measure(current) : null\n }\n\n setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void {\n const current = this.getCurrent()\n\n if (isPropControllersHandle(current)) current.setPropControllers(propControllers)\n\n this.lastPropControllers = propControllers\n }\n\n getDomNode(): Element | null {\n const current = this.getCurrent()\n\n if (isDomNodeHandle(current)) return current.getDomNode()\n\n return current instanceof Element ? current : null\n }\n}\n\ntype DomNodeHandle = {\n getDomNode(): Element | null\n}\n\nexport function isDomNodeHandle(value: unknown): value is DomNodeHandle {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getDomNode' in value &&\n typeof (value as { getDomNode: unknown }).getDomNode === 'function'\n ) {\n return true\n }\n\n return false\n}\n"],"mappings":"AAIA,SAAS,cAAc,eAAe;AACtC;AAAA,EACE;AAAA,OAEK;AAEA,MAAM,wBAIb;AAAA,EACU,aAA4B,MAAM;AAAA,EAClC,sBAA4D;AAAA,EAEpE,SAAS,YAA2B;AAClC,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,YAAY;AAAM,WAAK,mBAAmB,IAAI;AAElD,SAAK,aAAa;AAElB,QAAI,KAAK,wBAAwB;AAAM,WAAK,mBAAmB,KAAK,mBAAmB;AAAA,EACzF;AAAA,EAEA,cAA+B;AAC7B,UAAM,UAAU,KAAK,WAAW;AAEhC,WAAO,aAAa,OAAO,IAAI,QAAQ,OAAO,IAAI;AAAA,EACpD;AAAA,EAEA,mBAAmB,iBAA6D;AAC9E,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,wBAAwB,OAAO;AAAG,cAAQ,mBAAmB,eAAe;AAEhF,SAAK,sBAAsB;AAAA,EAC7B;AAAA,EAEA,aAA6B;AAC3B,UAAM,UAAU,KAAK,WAAW;AAEhC,QAAI,gBAAgB,OAAO;AAAG,aAAO,QAAQ,WAAW;AAExD,WAAO,mBAAmB,UAAU,UAAU;AAAA,EAChD;AACF;AAMO,SAAS,gBAAgB,OAAwC;AACtE,MACE,OAAO,UAAU,YACjB,UAAU,QACV,gBAAgB,SAChB,OAAQ,MAAkC,eAAe,YACzD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}
@@ -1,4 +1,4 @@
1
- import { getBreakpoints } from "../../../state/react-page";
1
+ import { getBreakpoints } from "../../../state/read-only-state";
2
2
  import { useSelector } from "./use-selector";
3
3
  function useBreakpoints() {
4
4
  return useSelector((state) => getBreakpoints(state));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-breakpoints.ts"],"sourcesContent":["import { Breakpoints } from '../../../state/modules/breakpoints'\nimport { getBreakpoints } from '../../../state/react-page'\nimport { useSelector } from './use-selector'\n\nexport function useBreakpoints(): Breakpoints {\n return useSelector(state => getBreakpoints(state))\n}\n"],"mappings":"AACA,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAErB,SAAS,iBAA8B;AAC5C,SAAO,YAAY,WAAS,eAAe,KAAK,CAAC;AACnD;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-breakpoints.ts"],"sourcesContent":["import { Breakpoints } from '../../../state/modules/breakpoints'\nimport { getBreakpoints } from '../../../state/read-only-state'\nimport { useSelector } from './use-selector'\n\nexport function useBreakpoints(): Breakpoints {\n return useSelector(state => getBreakpoints(state))\n}\n"],"mappings":"AACA,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAErB,SAAS,iBAA8B;AAC5C,SAAO,YAAY,WAAS,eAAe,KAAK,CAAC;AACnD;","names":[]}
@@ -1,4 +1,4 @@
1
- import { getBuilderEditMode } from "../../../state/react-page";
1
+ import { getBuilderEditMode } from "../../../state/read-only-state";
2
2
  import { useSelector } from "./use-selector";
3
3
  function useBuilderEditMode() {
4
4
  return useSelector((state) => getBuilderEditMode(state));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-builder-edit-mode.ts"],"sourcesContent":["import { BuilderEditMode } from '../../../state/modules/builder-edit-mode'\nimport { getBuilderEditMode } from '../../../state/react-page'\nimport { useSelector } from './use-selector'\n\nexport function useBuilderEditMode(): BuilderEditMode | null {\n return useSelector(state => getBuilderEditMode(state))\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAErB,SAAS,qBAA6C;AAC3D,SAAO,YAAY,WAAS,mBAAmB,KAAK,CAAC;AACvD;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-builder-edit-mode.ts"],"sourcesContent":["import { BuilderEditMode } from '../../../state/modules/builder-edit-mode'\nimport { getBuilderEditMode } from '../../../state/read-only-state'\nimport { useSelector } from './use-selector'\n\nexport function useBuilderEditMode(): BuilderEditMode | null {\n return useSelector(state => getBuilderEditMode(state))\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAErB,SAAS,qBAA6C;AAC3D,SAAO,YAAY,WAAS,mBAAmB,KAAK,CAAC;AACvD;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import { useMemo } from "react";
2
- import { updateAPIClientCache } from "../../../state/actions/internal";
2
+ import { updateAPIClientCache } from "../../../state/actions/internal/read-write-actions";
3
3
  import { useMakeswiftHostApiClient } from "../host-api-client";
4
4
  function useCacheData(cacheData) {
5
5
  const { makeswiftApiClient: apiStore } = useMakeswiftHostApiClient();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-cache-data.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { type CacheData } from '../../../api/react'\nimport { updateAPIClientCache } from '../../../state/actions/internal'\n\nimport { useMakeswiftHostApiClient } from '../host-api-client'\n\nexport function useCacheData(cacheData: CacheData) {\n const { makeswiftApiClient: apiStore } = useMakeswiftHostApiClient()\n\n // We perform cache hydration immediately on render - this is safe to do per\n // render because updating the API cache is idempotent. For precedence, see:\n //\n // https://github.com/TanStack/query/blob/8f9f183f11df3709a1a38c4efce1452788041f88/packages/react-query/src/HydrationBoundary.tsx#L41\n useMemo(() => apiStore.dispatch(updateAPIClientCache(cacheData)), [cacheData])\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAExB,SAAS,4BAA4B;AAErC,SAAS,iCAAiC;AAEnC,SAAS,aAAa,WAAsB;AACjD,QAAM,EAAE,oBAAoB,SAAS,IAAI,0BAA0B;AAMnE,UAAQ,MAAM,SAAS,SAAS,qBAAqB,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC/E;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-cache-data.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { type CacheData } from '../../../api/client'\nimport { updateAPIClientCache } from '../../../state/actions/internal/read-write-actions'\n\nimport { useMakeswiftHostApiClient } from '../host-api-client'\n\nexport function useCacheData(cacheData: CacheData) {\n const { makeswiftApiClient: apiStore } = useMakeswiftHostApiClient()\n\n // We perform cache hydration immediately on render - this is safe to do per\n // render because updating the API cache is idempotent. For precedence, see:\n //\n // https://github.com/TanStack/query/blob/8f9f183f11df3709a1a38c4efce1452788041f88/packages/react-query/src/HydrationBoundary.tsx#L41\n useMemo(() => apiStore.dispatch(updateAPIClientCache(cacheData)), [cacheData])\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAExB,SAAS,4BAA4B;AAErC,SAAS,iCAAiC;AAEnC,SAAS,aAAa,WAAsB;AACjD,QAAM,EAAE,oBAAoB,SAAS,IAAI,0BAA0B;AAMnE,UAAQ,MAAM,SAAS,SAAS,qBAAqB,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC/E;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getReactComponent,
3
3
  getComponentMeta
4
- } from "../../../state/react-page";
4
+ } from "../../../state/read-only-state";
5
5
  import { useSelector } from "./use-selector";
6
6
  function useComponent(type) {
7
7
  return useSelector((state) => getReactComponent(state, type));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-component.ts"],"sourcesContent":["import {\n type ComponentType,\n type ComponentMeta,\n getReactComponent,\n getComponentMeta,\n} from '../../../state/react-page'\nimport { useSelector } from './use-selector'\n\nexport function useComponent(type: string): ComponentType | null {\n return useSelector(state => getReactComponent(state, type))\n}\n\nexport function useComponentMeta(type: string): ComponentMeta | null {\n return useSelector(state => getComponentMeta(state, type))\n}\n"],"mappings":"AAAA;AAAA,EAGE;AAAA,EACA;AAAA,OACK;AACP,SAAS,mBAAmB;AAErB,SAAS,aAAa,MAAoC;AAC/D,SAAO,YAAY,WAAS,kBAAkB,OAAO,IAAI,CAAC;AAC5D;AAEO,SAAS,iBAAiB,MAAoC;AACnE,SAAO,YAAY,WAAS,iBAAiB,OAAO,IAAI,CAAC;AAC3D;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-component.ts"],"sourcesContent":["import {\n type ComponentType,\n type ComponentMeta,\n getReactComponent,\n getComponentMeta,\n} from '../../../state/read-only-state'\nimport { useSelector } from './use-selector'\n\nexport function useComponent(type: string): ComponentType | null {\n return useSelector(state => getReactComponent(state, type))\n}\n\nexport function useComponentMeta(type: string): ComponentMeta | null {\n return useSelector(state => getComponentMeta(state, type))\n}\n"],"mappings":"AAAA;AAAA,EAGE;AAAA,EACA;AAAA,OACK;AACP,SAAS,mBAAmB;AAErB,SAAS,aAAa,MAAoC;AAC/D,SAAO,YAAY,WAAS,kBAAkB,OAAO,IAAI,CAAC;AAC5D;AAEO,SAAS,iBAAiB,MAAoC;AACnE,SAAO,YAAY,WAAS,iBAAiB,OAAO,IAAI,CAAC;AAC3D;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-dispatch.ts"],"sourcesContent":["import { useStore } from './use-store'\nimport { Dispatch as ReactPageDispatch } from '../../../state/react-page'\nimport { Dispatch as ReactBuilderPreviewDispatch } from '../../../state/react-builder-preview'\n\ntype Dispatch = ReactPageDispatch & ReactBuilderPreviewDispatch\n\nexport function useDispatch(): Dispatch {\n const store = useStore()\n\n return store.dispatch\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAMlB,SAAS,cAAwB;AACtC,QAAM,QAAQ,SAAS;AAEvB,SAAO,MAAM;AACf;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-dispatch.ts"],"sourcesContent":["import { useStore } from './use-store'\nimport { type Dispatch as ReadOnlyDispatch } from '../../../state/read-only-state'\nimport { type Dispatch as ReadWriteDispatch } from '../../../state/read-write-state'\n\ntype Dispatch = ReadOnlyDispatch & ReadWriteDispatch\n\nexport function useDispatch(): Dispatch {\n const store = useStore()\n\n return store.dispatch\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAMlB,SAAS,cAAwB;AACtC,QAAM,QAAQ,SAAS;AAEvB,SAAO,MAAM;AACf;","names":[]}
@@ -1,4 +1,4 @@
1
- import { getDocument } from "../../../state/react-page";
1
+ import { getDocument } from "../../../state/read-only-state";
2
2
  import { useSelector } from "./use-selector";
3
3
  function useDocument(documentKey) {
4
4
  return useSelector((state) => getDocument(state, documentKey));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-document.ts"],"sourcesContent":["import { Document, getDocument } from '../../../state/react-page'\nimport { useSelector } from './use-selector'\n\nexport function useDocument(documentKey: string): Document | null {\n return useSelector(state => getDocument(state, documentKey))\n}\n"],"mappings":"AAAA,SAAmB,mBAAmB;AACtC,SAAS,mBAAmB;AAErB,SAAS,YAAY,aAAsC;AAChE,SAAO,YAAY,WAAS,YAAY,OAAO,WAAW,CAAC;AAC7D;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-document.ts"],"sourcesContent":["import { Document, getDocument } from '../../../state/read-only-state'\nimport { useSelector } from './use-selector'\n\nexport function useDocument(documentKey: string): Document | null {\n return useSelector(state => getDocument(state, documentKey))\n}\n"],"mappings":"AAAA,SAAmB,mBAAmB;AACtC,SAAS,mBAAmB;AAErB,SAAS,YAAY,aAAsC;AAChE,SAAO,YAAY,WAAS,YAAY,OAAO,WAAW,CAAC;AAC7D;","names":[]}
@@ -1,4 +1,4 @@
1
- import { getElementId } from "../../../state/react-page";
1
+ import { getElementId } from "../../../state/read-only-state";
2
2
  import { useDocumentKey } from "./use-document-context";
3
3
  import { useSelector } from "./use-selector";
4
4
  function useElementId(elementKey) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-element-id.ts"],"sourcesContent":["import { getElementId } from '../../../state/react-page'\nimport { useDocumentKey } from './use-document-context'\nimport { useSelector } from './use-selector'\n\nexport function useElementId(elementKey: string | null | undefined): string | null {\n const documentKey = useDocumentKey()\n\n return useSelector(state =>\n documentKey == null || elementKey == null ? null : getElementId(state, documentKey, elementKey),\n )\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAErB,SAAS,aAAa,YAAsD;AACjF,QAAM,cAAc,eAAe;AAEnC,SAAO;AAAA,IAAY,WACjB,eAAe,QAAQ,cAAc,OAAO,OAAO,aAAa,OAAO,aAAa,UAAU;AAAA,EAChG;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-element-id.ts"],"sourcesContent":["import { getElementId } from '../../../state/read-only-state'\nimport { useDocumentKey } from './use-document-context'\nimport { useSelector } from './use-selector'\n\nexport function useElementId(elementKey: string | null | undefined): string | null {\n const documentKey = useDocumentKey()\n\n return useSelector(state =>\n documentKey == null || elementKey == null ? null : getElementId(state, documentKey, elementKey),\n )\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAErB,SAAS,aAAa,YAAsD;AACjF,QAAM,cAAc,eAAe;AAEnC,SAAO;AAAA,IAAY,WACjB,eAAe,QAAQ,cAAc,OAAO,OAAO,aAAa,OAAO,aAAa,UAAU;AAAA,EAChG;AACF;","names":[]}
@@ -1,4 +1,4 @@
1
- import { getIsInBuilder } from "../../../state/react-page";
1
+ import { getIsInBuilder } from "../../../state/read-only-state";
2
2
  import { useSelector } from "./use-selector";
3
3
  function useIsInBuilder() {
4
4
  return useSelector((state) => getIsInBuilder(state));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-is-in-builder.ts"],"sourcesContent":["import { getIsInBuilder } from '../../../state/react-page'\nimport { useSelector } from './use-selector'\n\nexport function useIsInBuilder(): boolean {\n return useSelector(state => getIsInBuilder(state))\n}\n"],"mappings":"AAAA,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAErB,SAAS,iBAA0B;AACxC,SAAO,YAAY,WAAS,eAAe,KAAK,CAAC;AACnD;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-is-in-builder.ts"],"sourcesContent":["import { getIsInBuilder } from '../../../state/read-only-state'\nimport { useSelector } from './use-selector'\n\nexport function useIsInBuilder(): boolean {\n return useSelector(state => getIsInBuilder(state))\n}\n"],"mappings":"AAAA,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAErB,SAAS,iBAA0B;AACxC,SAAO,YAAY,WAAS,eAAe,KAAK,CAAC;AACnD;","names":[]}
@@ -0,0 +1,9 @@
1
+ import { getIsReadOnly } from "../../../state/read-only-state";
2
+ import { useSelector } from "./use-selector";
3
+ function useIsReadOnly() {
4
+ return useSelector((state) => getIsReadOnly(state));
5
+ }
6
+ export {
7
+ useIsReadOnly
8
+ };
9
+ //# sourceMappingURL=use-is-read-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-is-read-only.ts"],"sourcesContent":["import { getIsReadOnly } from '../../../state/read-only-state'\nimport { useSelector } from './use-selector'\n\nexport function useIsReadOnly(): boolean {\n return useSelector(state => getIsReadOnly(state))\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAErB,SAAS,gBAAyB;AACvC,SAAO,YAAY,WAAS,cAAc,KAAK,CAAC;AAClD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport { registerDocument, registerDocumentsEffect } from '../../../state/shared-api'\nimport { registerBuilderDocumentsEffect } from '../../../state/builder-api/actions'\n\nimport { isServer } from '../../../utils/is-server'\nimport { useIsomorphicLayoutEffect } from '../../../components/hooks/useIsomorphicLayoutEffect'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n if (isServer()) {\n dispatch(registerDocument(document))\n }\n\n /*\n Layout effect is to ensure that the document registration happens prior to the\n attempted creation/registration of prop controllers in child components.\n */\n useIsomorphicLayoutEffect(() => {\n return dispatch(registerDocumentsEffect([document]))\n }, [dispatch, document])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect([document]))\n }, [isInBuilder, document])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAE1B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB,+BAA+B;AAC1D,SAAS,sCAAsC;AAE/C,SAAS,gBAAgB;AACzB,SAAS,iCAAiC;AAKnC,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,YAAY;AAE7B,MAAI,SAAS,GAAG;AACd,aAAS,iBAAiB,QAAQ,CAAC;AAAA,EACrC;AAMA,4BAA0B,MAAM;AAC9B,WAAO,SAAS,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AAAA,EACrD,GAAG,CAAC,UAAU,QAAQ,CAAC;AAIvB,YAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,SAAS,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC5D,GAAG,CAAC,aAAa,QAAQ,CAAC;AAC5B;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/read-only-state'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport { registerDocument, registerDocumentsEffect } from '../../../state/shared-api'\nimport { registerBuilderDocumentsEffect } from '../../../state/builder-api/actions'\n\nimport { isServer } from '../../../utils/is-server'\nimport { useIsomorphicLayoutEffect } from '../../../components/hooks/useIsomorphicLayoutEffect'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n if (isServer()) {\n dispatch(registerDocument(document))\n }\n\n /*\n Layout effect is to ensure that the document registration happens prior to the\n attempted creation/registration of prop controllers in child components.\n */\n useIsomorphicLayoutEffect(() => {\n return dispatch(registerDocumentsEffect([document]))\n }, [dispatch, document])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect([document]))\n }, [isInBuilder, document])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAE1B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB,+BAA+B;AAC1D,SAAS,sCAAsC;AAE/C,SAAS,gBAAgB;AACzB,SAAS,iCAAiC;AAKnC,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,YAAY;AAE7B,MAAI,SAAS,GAAG;AACd,aAAS,iBAAiB,QAAQ,CAAC;AAAA,EACrC;AAMA,4BAA0B,MAAM;AAC9B,WAAO,SAAS,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AAAA,EACrD,GAAG,CAAC,UAAU,QAAQ,CAAC;AAIvB,YAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,SAAS,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC5D,GAAG,CAAC,aAAa,QAAQ,CAAC;AAC5B;","names":[]}
@@ -2,7 +2,7 @@ import { useMemo, useEffect, useRef, useSyncExternalStore, useCallback } from "r
2
2
  import {
3
3
  mapValues
4
4
  } from "@makeswift/controls";
5
- import * as ReactPage from "../../../state/react-page";
5
+ import * as ReactPage from "../../../state/read-only-state";
6
6
  import { useResourceResolver } from "./use-resource-resolver";
7
7
  import { useDocumentKey } from "./use-document-context";
8
8
  import { useSelector } from "./use-selector";
@@ -14,7 +14,7 @@ function useControlInstances(elementKey) {
14
14
  return useSelector((state) => {
15
15
  if (documentKey == null)
16
16
  return null;
17
- return ReactPage.getPropControllers(state, documentKey, elementKey);
17
+ return ReactPage.getPropControllers(state, { documentKey, elementKey });
18
18
  });
19
19
  }
20
20
  function useResolvedProps(propDefs, elementData, elementKey) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-props.ts"],"sourcesContent":["import { useMemo, useEffect, useRef, useSyncExternalStore, useCallback } from 'react'\nimport {\n ControlDefinition,\n ControlInstance,\n mapValues,\n type Data,\n type Resolvable,\n} from '@makeswift/controls'\n\nimport * as ReactPage from '../../../state/react-page'\nimport { useResourceResolver } from './use-resource-resolver'\nimport { useDocumentKey } from './use-document-context'\nimport { useSelector } from './use-selector'\n\nimport { useStylesheetFactory } from './use-stylesheet-factory'\n\nimport { useResolvableRecord } from './use-resolvable-record'\nimport { propErrorHandlingProxy } from '../utils/prop-error-handling-proxy'\n\nfunction useControlInstances(elementKey: string): Record<string, ControlInstance> | null {\n const documentKey = useDocumentKey()\n\n return useSelector(state => {\n if (documentKey == null) return null\n\n return ReactPage.getPropControllers(state, documentKey, elementKey)\n })\n}\n\ntype CacheItem = {\n data: Data\n control: ControlInstance | undefined\n resolvedValue: Resolvable<unknown>\n}\n\nexport function useResolvedProps(\n propDefs: Record<string, ControlDefinition>,\n elementData: Record<string, Data>,\n elementKey: string,\n): Record<string, unknown> {\n const stylesheetFactory = useStylesheetFactory()\n const resourceResolver = useResourceResolver()\n const controls = useControlInstances(elementKey)\n\n const cache = useRef<Record<string, CacheItem>>({}).current\n const resolveProp = useCallback(\n (def: ControlDefinition, propName: string) => {\n const data = elementData[propName]\n const control = controls?.[propName]\n\n if (\n cache[propName] != null &&\n data === cache[propName].data &&\n control === cache[propName].control\n ) {\n return cache[propName].resolvedValue\n }\n\n const resolvedValue = def.resolveValue(\n data,\n resourceResolver,\n stylesheetFactory.get(propName),\n control,\n )\n\n cache[propName] = { data, control, resolvedValue }\n return resolvedValue\n },\n [controls, elementData, resourceResolver, stylesheetFactory],\n )\n\n const resolvables = useMemo<Record<string, Resolvable<unknown>>>(\n () =>\n mapValues(propDefs, (def, propName) => {\n const defaultValue = (def.config as any)?.defaultValue\n return propErrorHandlingProxy(resolveProp(def, propName), defaultValue, error => {\n console.warn(\n `Error reading value for prop \"${propName}\", falling back to \\`${defaultValue}\\`.`,\n { control: def, error },\n )\n })\n }),\n [propDefs, resolveProp],\n )\n\n const props = useResolvableRecord(resolvables)\n\n // no need to call `triggerResolve` on the server, all the resources should already be in\n // the host API client's cache (populated from the snapshot's cache)\n useEffect(() => {\n props.triggerResolve()\n }, [props])\n\n // the order is important here, the styles are defined in the process of the props resolution,\n // calling `useDefinedStyles` before the props are resolved would effectively be a noop\n const resolvedProps = useSyncExternalStore(props.subscribe, props.readStable, props.readStable)\n\n stylesheetFactory.useDefinedStyles()\n\n return resolvedProps\n}\n"],"mappings":"AAAA,SAAS,SAAS,WAAW,QAAQ,sBAAsB,mBAAmB;AAC9E;AAAA,EAGE;AAAA,OAGK;AAEP,YAAY,eAAe;AAC3B,SAAS,2BAA2B;AACpC,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAE5B,SAAS,4BAA4B;AAErC,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AAEvC,SAAS,oBAAoB,YAA4D;AACvF,QAAM,cAAc,eAAe;AAEnC,SAAO,YAAY,WAAS;AAC1B,QAAI,eAAe;AAAM,aAAO;AAEhC,WAAO,UAAU,mBAAmB,OAAO,aAAa,UAAU;AAAA,EACpE,CAAC;AACH;AAQO,SAAS,iBACd,UACA,aACA,YACyB;AACzB,QAAM,oBAAoB,qBAAqB;AAC/C,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,WAAW,oBAAoB,UAAU;AAE/C,QAAM,QAAQ,OAAkC,CAAC,CAAC,EAAE;AACpD,QAAM,cAAc;AAAA,IAClB,CAAC,KAAwB,aAAqB;AAC5C,YAAM,OAAO,YAAY,QAAQ;AACjC,YAAM,UAAU,WAAW,QAAQ;AAEnC,UACE,MAAM,QAAQ,KAAK,QACnB,SAAS,MAAM,QAAQ,EAAE,QACzB,YAAY,MAAM,QAAQ,EAAE,SAC5B;AACA,eAAO,MAAM,QAAQ,EAAE;AAAA,MACzB;AAEA,YAAM,gBAAgB,IAAI;AAAA,QACxB;AAAA,QACA;AAAA,QACA,kBAAkB,IAAI,QAAQ;AAAA,QAC9B;AAAA,MACF;AAEA,YAAM,QAAQ,IAAI,EAAE,MAAM,SAAS,cAAc;AACjD,aAAO;AAAA,IACT;AAAA,IACA,CAAC,UAAU,aAAa,kBAAkB,iBAAiB;AAAA,EAC7D;AAEA,QAAM,cAAc;AAAA,IAClB,MACE,UAAU,UAAU,CAAC,KAAK,aAAa;AACrC,YAAM,eAAgB,IAAI,QAAgB;AAC1C,aAAO,uBAAuB,YAAY,KAAK,QAAQ,GAAG,cAAc,WAAS;AAC/E,gBAAQ;AAAA,UACN,iCAAiC,QAAQ,wBAAwB,YAAY;AAAA,UAC7E,EAAE,SAAS,KAAK,MAAM;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,IACH,CAAC,UAAU,WAAW;AAAA,EACxB;AAEA,QAAM,QAAQ,oBAAoB,WAAW;AAI7C,YAAU,MAAM;AACd,UAAM,eAAe;AAAA,EACvB,GAAG,CAAC,KAAK,CAAC;AAIV,QAAM,gBAAgB,qBAAqB,MAAM,WAAW,MAAM,YAAY,MAAM,UAAU;AAE9F,oBAAkB,iBAAiB;AAEnC,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-props.ts"],"sourcesContent":["import { useMemo, useEffect, useRef, useSyncExternalStore, useCallback } from 'react'\nimport {\n ControlDefinition,\n ControlInstance,\n mapValues,\n type Data,\n type Resolvable,\n} from '@makeswift/controls'\n\nimport * as ReactPage from '../../../state/read-only-state'\nimport { useResourceResolver } from './use-resource-resolver'\nimport { useDocumentKey } from './use-document-context'\nimport { useSelector } from './use-selector'\n\nimport { useStylesheetFactory } from './use-stylesheet-factory'\n\nimport { useResolvableRecord } from './use-resolvable-record'\nimport { propErrorHandlingProxy } from '../utils/prop-error-handling-proxy'\n\nfunction useControlInstances(elementKey: string): Record<string, ControlInstance> | null {\n const documentKey = useDocumentKey()\n\n return useSelector(state => {\n if (documentKey == null) return null\n\n return ReactPage.getPropControllers(state, { documentKey, elementKey })\n })\n}\n\ntype CacheItem = {\n data: Data\n control: ControlInstance | undefined\n resolvedValue: Resolvable<unknown>\n}\n\nexport function useResolvedProps(\n propDefs: Record<string, ControlDefinition>,\n elementData: Record<string, Data>,\n elementKey: string,\n): Record<string, unknown> {\n const stylesheetFactory = useStylesheetFactory()\n const resourceResolver = useResourceResolver()\n const controls = useControlInstances(elementKey)\n\n const cache = useRef<Record<string, CacheItem>>({}).current\n const resolveProp = useCallback(\n (def: ControlDefinition, propName: string) => {\n const data = elementData[propName]\n const control = controls?.[propName]\n\n if (\n cache[propName] != null &&\n data === cache[propName].data &&\n control === cache[propName].control\n ) {\n return cache[propName].resolvedValue\n }\n\n const resolvedValue = def.resolveValue(\n data,\n resourceResolver,\n stylesheetFactory.get(propName),\n control,\n )\n\n cache[propName] = { data, control, resolvedValue }\n return resolvedValue\n },\n [controls, elementData, resourceResolver, stylesheetFactory],\n )\n\n const resolvables = useMemo<Record<string, Resolvable<unknown>>>(\n () =>\n mapValues(propDefs, (def, propName) => {\n const defaultValue = (def.config as any)?.defaultValue\n return propErrorHandlingProxy(resolveProp(def, propName), defaultValue, error => {\n console.warn(\n `Error reading value for prop \"${propName}\", falling back to \\`${defaultValue}\\`.`,\n { control: def, error },\n )\n })\n }),\n [propDefs, resolveProp],\n )\n\n const props = useResolvableRecord(resolvables)\n\n // no need to call `triggerResolve` on the server, all the resources should already be in\n // the host API client's cache (populated from the snapshot's cache)\n useEffect(() => {\n props.triggerResolve()\n }, [props])\n\n // the order is important here, the styles are defined in the process of the props resolution,\n // calling `useDefinedStyles` before the props are resolved would effectively be a noop\n const resolvedProps = useSyncExternalStore(props.subscribe, props.readStable, props.readStable)\n\n stylesheetFactory.useDefinedStyles()\n\n return resolvedProps\n}\n"],"mappings":"AAAA,SAAS,SAAS,WAAW,QAAQ,sBAAsB,mBAAmB;AAC9E;AAAA,EAGE;AAAA,OAGK;AAEP,YAAY,eAAe;AAC3B,SAAS,2BAA2B;AACpC,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAE5B,SAAS,4BAA4B;AAErC,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AAEvC,SAAS,oBAAoB,YAA4D;AACvF,QAAM,cAAc,eAAe;AAEnC,SAAO,YAAY,WAAS;AAC1B,QAAI,eAAe;AAAM,aAAO;AAEhC,WAAO,UAAU,mBAAmB,OAAO,EAAE,aAAa,WAAW,CAAC;AAAA,EACxE,CAAC;AACH;AAQO,SAAS,iBACd,UACA,aACA,YACyB;AACzB,QAAM,oBAAoB,qBAAqB;AAC/C,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,WAAW,oBAAoB,UAAU;AAE/C,QAAM,QAAQ,OAAkC,CAAC,CAAC,EAAE;AACpD,QAAM,cAAc;AAAA,IAClB,CAAC,KAAwB,aAAqB;AAC5C,YAAM,OAAO,YAAY,QAAQ;AACjC,YAAM,UAAU,WAAW,QAAQ;AAEnC,UACE,MAAM,QAAQ,KAAK,QACnB,SAAS,MAAM,QAAQ,EAAE,QACzB,YAAY,MAAM,QAAQ,EAAE,SAC5B;AACA,eAAO,MAAM,QAAQ,EAAE;AAAA,MACzB;AAEA,YAAM,gBAAgB,IAAI;AAAA,QACxB;AAAA,QACA;AAAA,QACA,kBAAkB,IAAI,QAAQ;AAAA,QAC9B;AAAA,MACF;AAEA,YAAM,QAAQ,IAAI,EAAE,MAAM,SAAS,cAAc;AACjD,aAAO;AAAA,IACT;AAAA,IACA,CAAC,UAAU,aAAa,kBAAkB,iBAAiB;AAAA,EAC7D;AAEA,QAAM,cAAc;AAAA,IAClB,MACE,UAAU,UAAU,CAAC,KAAK,aAAa;AACrC,YAAM,eAAgB,IAAI,QAAgB;AAC1C,aAAO,uBAAuB,YAAY,KAAK,QAAQ,GAAG,cAAc,WAAS;AAC/E,gBAAQ;AAAA,UACN,iCAAiC,QAAQ,wBAAwB,YAAY;AAAA,UAC7E,EAAE,SAAS,KAAK,MAAM;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,IACH,CAAC,UAAU,WAAW;AAAA,EACxB;AAEA,QAAM,QAAQ,oBAAoB,WAAW;AAI7C,YAAU,MAAM;AACd,UAAM,eAAe;AAAA,EACvB,GAAG,CAAC,KAAK,CAAC;AAIV,QAAM,gBAAgB,qBAAqB,MAAM,WAAW,MAAM,YAAY,MAAM,UAAU;AAE9F,oBAAkB,iBAAiB;AAEnC,SAAO;AACT;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import { useMemo } from "react";
2
- import * as ReactPage from "../../../state/react-page";
2
+ import * as ReactPage from "../../../state/read-only-state";
3
3
  import { useMakeswiftHostApiClient } from "../host-api-client";
4
4
  import { useStore } from "./use-store";
5
5
  import { useDocumentKey, useDocumentLocale } from "./use-document-context";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resource-resolver.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { type ResourceResolver } from '@makeswift/controls'\n\nimport * as ReactPage from '../../../state/react-page'\nimport { useMakeswiftHostApiClient } from '../host-api-client'\nimport { useStore } from './use-store'\nimport { useDocumentKey, useDocumentLocale } from './use-document-context'\n\nexport function useResourceResolver(): ResourceResolver {\n const store = useStore()\n const client = useMakeswiftHostApiClient()\n\n const documentKey = useDocumentKey()\n const locale = useDocumentLocale()\n\n return useMemo<ResourceResolver>(() => {\n return {\n resolveSwatch: swatchId => client.resolveSwatch(swatchId),\n resolveFile: fileId => client.resolveFile(fileId),\n resolveTypography: typographyId => client.resolveTypography(typographyId),\n resolvePagePathnameSlice: pageId => client.resolvePagePathnameSlice({ pageId, locale }),\n resolveElementId: elementKey => {\n const read = () =>\n documentKey == null\n ? null\n : ReactPage.getElementId(store.getState(), documentKey, elementKey)\n\n let lastValue: string | null = null\n return {\n name: `element-id:${documentKey}:${elementKey}`,\n readStable: () => (lastValue = read()),\n subscribe: (onUpdate: () => void) =>\n store.subscribe(() => {\n if (read() !== lastValue) onUpdate()\n }),\n }\n },\n }\n }, [client, store, documentKey, locale])\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAGxB,YAAY,eAAe;AAC3B,SAAS,iCAAiC;AAC1C,SAAS,gBAAgB;AACzB,SAAS,gBAAgB,yBAAyB;AAE3C,SAAS,sBAAwC;AACtD,QAAM,QAAQ,SAAS;AACvB,QAAM,SAAS,0BAA0B;AAEzC,QAAM,cAAc,eAAe;AACnC,QAAM,SAAS,kBAAkB;AAEjC,SAAO,QAA0B,MAAM;AACrC,WAAO;AAAA,MACL,eAAe,cAAY,OAAO,cAAc,QAAQ;AAAA,MACxD,aAAa,YAAU,OAAO,YAAY,MAAM;AAAA,MAChD,mBAAmB,kBAAgB,OAAO,kBAAkB,YAAY;AAAA,MACxE,0BAA0B,YAAU,OAAO,yBAAyB,EAAE,QAAQ,OAAO,CAAC;AAAA,MACtF,kBAAkB,gBAAc;AAC9B,cAAM,OAAO,MACX,eAAe,OACX,OACA,UAAU,aAAa,MAAM,SAAS,GAAG,aAAa,UAAU;AAEtE,YAAI,YAA2B;AAC/B,eAAO;AAAA,UACL,MAAM,cAAc,WAAW,IAAI,UAAU;AAAA,UAC7C,YAAY,MAAO,YAAY,KAAK;AAAA,UACpC,WAAW,CAAC,aACV,MAAM,UAAU,MAAM;AACpB,gBAAI,KAAK,MAAM;AAAW,uBAAS;AAAA,UACrC,CAAC;AAAA,QACL;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,OAAO,aAAa,MAAM,CAAC;AACzC;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resource-resolver.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { type ResourceResolver } from '@makeswift/controls'\n\nimport * as ReactPage from '../../../state/read-only-state'\nimport { useMakeswiftHostApiClient } from '../host-api-client'\nimport { useStore } from './use-store'\nimport { useDocumentKey, useDocumentLocale } from './use-document-context'\n\nexport function useResourceResolver(): ResourceResolver {\n const store = useStore()\n const client = useMakeswiftHostApiClient()\n\n const documentKey = useDocumentKey()\n const locale = useDocumentLocale()\n\n return useMemo<ResourceResolver>(() => {\n return {\n resolveSwatch: swatchId => client.resolveSwatch(swatchId),\n resolveFile: fileId => client.resolveFile(fileId),\n resolveTypography: typographyId => client.resolveTypography(typographyId),\n resolvePagePathnameSlice: pageId => client.resolvePagePathnameSlice({ pageId, locale }),\n resolveElementId: elementKey => {\n const read = () =>\n documentKey == null\n ? null\n : ReactPage.getElementId(store.getState(), documentKey, elementKey)\n\n let lastValue: string | null = null\n return {\n name: `element-id:${documentKey}:${elementKey}`,\n readStable: () => (lastValue = read()),\n subscribe: (onUpdate: () => void) =>\n store.subscribe(() => {\n if (read() !== lastValue) onUpdate()\n }),\n }\n },\n }\n }, [client, store, documentKey, locale])\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAGxB,YAAY,eAAe;AAC3B,SAAS,iCAAiC;AAC1C,SAAS,gBAAgB;AACzB,SAAS,gBAAgB,yBAAyB;AAE3C,SAAS,sBAAwC;AACtD,QAAM,QAAQ,SAAS;AACvB,QAAM,SAAS,0BAA0B;AAEzC,QAAM,cAAc,eAAe;AACnC,QAAM,SAAS,kBAAkB;AAEjC,SAAO,QAA0B,MAAM;AACrC,WAAO;AAAA,MACL,eAAe,cAAY,OAAO,cAAc,QAAQ;AAAA,MACxD,aAAa,YAAU,OAAO,YAAY,MAAM;AAAA,MAChD,mBAAmB,kBAAgB,OAAO,kBAAkB,YAAY;AAAA,MACxE,0BAA0B,YAAU,OAAO,yBAAyB,EAAE,QAAQ,OAAO,CAAC;AAAA,MACtF,kBAAkB,gBAAc;AAC9B,cAAM,OAAO,MACX,eAAe,OACX,OACA,UAAU,aAAa,MAAM,SAAS,GAAG,aAAa,UAAU;AAEtE,YAAI,YAA2B;AAC/B,eAAO;AAAA,UACL,MAAM,cAAc,WAAW,IAAI,UAAU;AAAA,UAC7C,YAAY,MAAO,YAAY,KAAK;AAAA,UACpC,WAAW,CAAC,aACV,MAAM,UAAU,MAAM;AACpB,gBAAI,KAAK,MAAM;AAAW,uBAAS;AAAA,UACrC,CAAC;AAAA,QACL;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,OAAO,aAAa,MAAM,CAAC;AACzC;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-selector.ts"],"sourcesContent":["import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector'\n\nimport { useStore } from './use-store'\nimport { State as ReactPageState } from '../../../state/react-page'\nimport { State as ReactBuilderPreviewState } from '../../../state/react-builder-preview'\n\ntype State = ReactPageState | ReactBuilderPreviewState\n\nexport function useSelector<R>(selector: (state: State) => R): R {\n const store = useStore()\n\n return useSyncExternalStoreWithSelector(store.subscribe, store.getState, store.getState, selector)\n}\n"],"mappings":"AAAA,SAAS,wCAAwC;AAEjD,SAAS,gBAAgB;AAMlB,SAAS,YAAe,UAAkC;AAC/D,QAAM,QAAQ,SAAS;AAEvB,SAAO,iCAAiC,MAAM,WAAW,MAAM,UAAU,MAAM,UAAU,QAAQ;AACnG;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-selector.ts"],"sourcesContent":["import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector'\n\nimport { useStore } from './use-store'\nimport { type State as ReadOnlyState } from '../../../state/read-only-state'\nimport { type State as ReadWriteState } from '../../../state/read-write-state'\n\ntype State = ReadOnlyState | ReadWriteState\n\nexport function useSelector<R>(selector: (state: State) => R): R {\n const store = useStore()\n\n return useSyncExternalStoreWithSelector(store.subscribe, store.getState, store.getState, selector)\n}\n"],"mappings":"AAAA,SAAS,wCAAwC;AAEjD,SAAS,gBAAgB;AAMlB,SAAS,YAAe,UAAkC;AAC/D,QAAM,QAAQ,SAAS;AAEvB,SAAO,iCAAiC,MAAM,WAAW,MAAM,UAAU,MAAM,UAAU,QAAQ;AACnG;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-store.ts"],"sourcesContent":["'use client'\n\nimport { createContext, useContext } from 'react'\nimport { Store } from '../../../state/react-page'\n\nexport const StoreContext = createContext<Store | null>(null)\n\nexport function useStore(): Store {\n const store = useContext(StoreContext)\n if (store == null) {\n throw new Error('`useStore` must be used within a `StoreProvider`')\n }\n\n return store\n}\n"],"mappings":";AAEA,SAAS,eAAe,kBAAkB;AAGnC,MAAM,eAAe,cAA4B,IAAI;AAErD,SAAS,WAAkB;AAChC,QAAM,QAAQ,WAAW,YAAY;AACrC,MAAI,SAAS,MAAM;AACjB,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-store.ts"],"sourcesContent":["'use client'\n\nimport { createContext, useContext } from 'react'\nimport { type Store } from '../../../state/react-page'\n\nexport const StoreContext = createContext<Store | null>(null)\n\nexport function useStore(): Store {\n const store = useContext(StoreContext)\n if (store == null) {\n throw new Error('`useStore` must be used within a `StoreProvider`')\n }\n\n return store\n}\n"],"mappings":";AAEA,SAAS,eAAe,kBAAkB;AAGnC,MAAM,eAAe,cAA4B,IAAI;AAErD,SAAS,WAAkB;AAChC,QAAM,QAAQ,WAAW,YAAY;AACrC,MAAI,SAAS,MAAM;AACjB,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AAEA,SAAO;AACT;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-universal-dispatch.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport type { ThunkAction } from '@reduxjs/toolkit'\n\nimport { type Dispatch } from '../../../state/react-page'\nimport { type Action } from '../../../state/actions'\n\nimport { isServer } from '../../../utils/is-server'\n\n// overloaded signatures\nexport function useUniversalDispatch<Args extends any[], A extends Action>(\n dispatch: Dispatch,\n action: (...args: Args) => A,\n args: Args,\n): void\nexport function useUniversalDispatch<Args extends any[], A extends Action>(\n dispatch: Dispatch,\n action: (...args: Args) => ThunkAction<() => void, any, any, A>,\n args: Args,\n): void\n// implementation\nexport function useUniversalDispatch<Args extends any[], A extends Action>(\n dispatch: Dispatch,\n action: (...args: Args) => ThunkAction<() => void, any, any, A>,\n args: Args,\n) {\n if (isServer()) {\n dispatch(action(...args))\n }\n\n useEffect(() => {\n dispatch(action(...args))\n }, [dispatch, action, ...args])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAM1B,SAAS,gBAAgB;AAclB,SAAS,qBACd,UACA,QACA,MACA;AACA,MAAI,SAAS,GAAG;AACd,aAAS,OAAO,GAAG,IAAI,CAAC;AAAA,EAC1B;AAEA,YAAU,MAAM;AACd,aAAS,OAAO,GAAG,IAAI,CAAC;AAAA,EAC1B,GAAG,CAAC,UAAU,QAAQ,GAAG,IAAI,CAAC;AAChC;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-universal-dispatch.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport type { ThunkAction } from '@reduxjs/toolkit'\n\nimport { type Dispatch } from '../../../state/read-only-state'\nimport { type Action } from '../../../state/actions'\n\nimport { isServer } from '../../../utils/is-server'\n\n// overloaded signatures\nexport function useUniversalDispatch<Args extends any[], A extends Action>(\n dispatch: Dispatch,\n action: (...args: Args) => A,\n args: Args,\n): void\nexport function useUniversalDispatch<Args extends any[], A extends Action>(\n dispatch: Dispatch,\n action: (...args: Args) => ThunkAction<() => void, any, any, A>,\n args: Args,\n): void\n// implementation\nexport function useUniversalDispatch<Args extends any[], A extends Action>(\n dispatch: Dispatch,\n action: (...args: Args) => ThunkAction<() => void, any, any, A>,\n args: Args,\n) {\n if (isServer()) {\n dispatch(action(...args))\n }\n\n useEffect(() => {\n dispatch(action(...args))\n }, [dispatch, action, ...args])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAM1B,SAAS,gBAAgB;AAclB,SAAS,qBACd,UACA,QACA,MACA;AACA,MAAI,SAAS,GAAG;AACd,aAAS,OAAO,GAAG,IAAI,CAAC;AAAA,EAC1B;AAEA,YAAU,MAAM;AACd,aAAS,OAAO,GAAG,IAAI,CAAC;AAAA,EAC1B,GAAG,CAAC,UAAU,QAAQ,GAAG,IAAI,CAAC;AAChC;","names":[]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { createContext, useContext } from "react";
4
- import { MakeswiftHostApiClient } from "../../api/react";
4
+ import { MakeswiftHostApiClient } from "../../api/client";
5
5
  const Context = createContext(
6
6
  new MakeswiftHostApiClient({
7
7
  uri: "https://api.makeswift.com/graphql",
@@ -11,7 +11,8 @@ const Context = createContext(
11
11
  { url }
12
12
  );
13
13
  return fetch(url, init);
14
- }
14
+ },
15
+ siteVersion: null
15
16
  })
16
17
  );
17
18
  function useMakeswiftHostApiClient() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/react/host-api-client.tsx"],"sourcesContent":["'use client'\n\nimport { ReactNode, createContext, useContext } from 'react'\nimport { MakeswiftHostApiClient } from '../../api/react'\n\nconst Context = createContext(\n new MakeswiftHostApiClient({\n uri: 'https://api.makeswift.com/graphql',\n fetch: async (url, init) => {\n console.warn(\n 'Using fallback `fetch` implementation, resource revalidation may not work as expected.',\n { url },\n )\n return fetch(url, init)\n },\n }),\n)\n\nexport function useMakeswiftHostApiClient(): MakeswiftHostApiClient {\n return useContext(Context)\n}\n\nexport function MakeswiftHostApiClientProvider({\n client,\n children,\n}: {\n client: MakeswiftHostApiClient\n children: ReactNode\n}) {\n return <Context.Provider value={client}>{children}</Context.Provider>\n}\n"],"mappings":";AA6BS;AA3BT,SAAoB,eAAe,kBAAkB;AACrD,SAAS,8BAA8B;AAEvC,MAAM,UAAU;AAAA,EACd,IAAI,uBAAuB;AAAA,IACzB,KAAK;AAAA,IACL,OAAO,OAAO,KAAK,SAAS;AAC1B,cAAQ;AAAA,QACN;AAAA,QACA,EAAE,IAAI;AAAA,MACR;AACA,aAAO,MAAM,KAAK,IAAI;AAAA,IACxB;AAAA,EACF,CAAC;AACH;AAEO,SAAS,4BAAoD;AAClE,SAAO,WAAW,OAAO;AAC3B;AAEO,SAAS,+BAA+B;AAAA,EAC7C;AAAA,EACA;AACF,GAGG;AACD,SAAO,oBAAC,QAAQ,UAAR,EAAiB,OAAO,QAAS,UAAS;AACpD;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/react/host-api-client.tsx"],"sourcesContent":["'use client'\n\nimport { ReactNode, createContext, useContext } from 'react'\nimport { MakeswiftHostApiClient } from '../../api/client'\n\nconst Context = createContext(\n new MakeswiftHostApiClient({\n uri: 'https://api.makeswift.com/graphql',\n fetch: async (url, init) => {\n console.warn(\n 'Using fallback `fetch` implementation, resource revalidation may not work as expected.',\n { url },\n )\n return fetch(url, init)\n },\n siteVersion: null,\n }),\n)\n\nexport function useMakeswiftHostApiClient(): MakeswiftHostApiClient {\n return useContext(Context)\n}\n\nexport function MakeswiftHostApiClientProvider({\n client,\n children,\n}: {\n client: MakeswiftHostApiClient\n children: ReactNode\n}) {\n return <Context.Provider value={client}>{children}</Context.Provider>\n}\n"],"mappings":";AA8BS;AA5BT,SAAoB,eAAe,kBAAkB;AACrD,SAAS,8BAA8B;AAEvC,MAAM,UAAU;AAAA,EACd,IAAI,uBAAuB;AAAA,IACzB,KAAK;AAAA,IACL,OAAO,OAAO,KAAK,SAAS;AAC1B,cAAQ;AAAA,QACN;AAAA,QACA,EAAE,IAAI;AAAA,MACR;AACA,aAAO,MAAM,KAAK,IAAI;AAAA,IACxB;AAAA,IACA,aAAa;AAAA,EACf,CAAC;AACH;AAEO,SAAS,4BAAoD;AAClE,SAAO,WAAW,OAAO;AAC3B;AAEO,SAAS,+BAA+B;AAAA,EAC7C;AAAA,EACA;AACF,GAGG;AACD,SAAO,oBAAC,QAAQ,UAAR,EAAiB,OAAO,QAAS,UAAS;AACpD;","names":[]}
@@ -7,7 +7,7 @@ import { useBuilderEditMode } from "./hooks/use-builder-edit-mode";
7
7
  import { useDocumentKey } from "./hooks/use-document-context";
8
8
  import { useElementId } from "./hooks/use-element-id";
9
9
  import { useIsInBuilder } from "./hooks/use-is-in-builder";
10
- import { useIsPreview } from "./hooks/use-is-preview";
10
+ import { useIsReadOnly } from "./hooks/use-is-read-only";
11
11
  import { useSelector } from "./hooks/use-selector";
12
12
  import { StoreContext, useStore } from "./hooks/use-store";
13
13
  export {
@@ -21,7 +21,7 @@ export {
21
21
  useDocumentKey,
22
22
  useElementId,
23
23
  useIsInBuilder,
24
- useIsPreview,
24
+ useIsReadOnly,
25
25
  useSelector,
26
26
  useStore
27
27
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/react/index.ts"],"sourcesContent":["export { ReactRuntime } from './react-runtime'\n\nexport { Element } from './components/Element'\nexport { DocumentRoot } from './components/DocumentRoot'\nexport { RuntimeProvider } from './components/RuntimeProvider'\n\nexport { useBreakpoints } from './hooks/use-breakpoints'\nexport { useBuilderEditMode } from './hooks/use-builder-edit-mode'\nexport { useDocumentKey } from './hooks/use-document-context'\nexport { useElementId } from './hooks/use-element-id'\nexport { useIsInBuilder } from './hooks/use-is-in-builder'\nexport { useIsPreview } from './hooks/use-is-preview'\nexport { useSelector } from './hooks/use-selector'\nexport { StoreContext, useStore } from './hooks/use-store'\n"],"mappings":"AAAA,SAAS,oBAAoB;AAE7B,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAEhC,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,cAAc,gBAAgB;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/react/index.ts"],"sourcesContent":["export { ReactRuntime } from './react-runtime'\n\nexport { Element } from './components/Element'\nexport { DocumentRoot } from './components/DocumentRoot'\nexport { RuntimeProvider } from './components/RuntimeProvider'\n\nexport { useBreakpoints } from './hooks/use-breakpoints'\nexport { useBuilderEditMode } from './hooks/use-builder-edit-mode'\nexport { useDocumentKey } from './hooks/use-document-context'\nexport { useElementId } from './hooks/use-element-id'\nexport { useIsInBuilder } from './hooks/use-is-in-builder'\nexport { useIsReadOnly } from './hooks/use-is-read-only'\nexport { useSelector } from './hooks/use-selector'\nexport { StoreContext, useStore } from './hooks/use-store'\n"],"mappings":"AAAA,SAAS,oBAAoB;AAE7B,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAEhC,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAS,cAAc,gBAAgB;","names":[]}
@@ -1,4 +1,4 @@
1
- import { getBox } from "../../state/modules/box-models";
1
+ import { getBox } from "../../state/modules/read-write/box-models";
2
2
  import deepEqual from "../../utils/deepEqual";
3
3
  function pollBoxModel({
4
4
  element,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/react/poll-box-model.ts"],"sourcesContent":["import { BoxModel, getBox } from '../../state/modules/box-models'\nimport deepEqual from '../../utils/deepEqual'\n\nexport function pollBoxModel({\n element,\n onBoxModelChange,\n}: {\n element: Element | null\n onBoxModelChange(boxModel: BoxModel | null): void\n}): () => void {\n let currentBoxModel: BoxModel | null = null\n\n const handleAnimationFrameRequest = () => {\n const measuredBoxModel = element == null ? null : getBox(element)\n\n if (!deepEqual(currentBoxModel, measuredBoxModel)) {\n currentBoxModel = measuredBoxModel\n\n onBoxModelChange(currentBoxModel)\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n\n onBoxModelChange(null)\n }\n}\n"],"mappings":"AAAA,SAAmB,cAAc;AACjC,OAAO,eAAe;AAEf,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AACF,GAGe;AACb,MAAI,kBAAmC;AAEvC,QAAM,8BAA8B,MAAM;AACxC,UAAM,mBAAmB,WAAW,OAAO,OAAO,OAAO,OAAO;AAEhE,QAAI,CAAC,UAAU,iBAAiB,gBAAgB,GAAG;AACjD,wBAAkB;AAElB,uBAAiB,eAAe;AAAA,IAClC;AAEA,2BAAuB,sBAAsB,2BAA2B;AAAA,EAC1E;AAEA,MAAI,uBAAuB,sBAAsB,2BAA2B;AAE5E,SAAO,MAAM;AACX,yBAAqB,oBAAoB;AAEzC,qBAAiB,IAAI;AAAA,EACvB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/react/poll-box-model.ts"],"sourcesContent":["import { BoxModel, getBox } from '../../state/modules/read-write/box-models'\nimport deepEqual from '../../utils/deepEqual'\n\nexport function pollBoxModel({\n element,\n onBoxModelChange,\n}: {\n element: Element | null\n onBoxModelChange(boxModel: BoxModel | null): void\n}): () => void {\n let currentBoxModel: BoxModel | null = null\n\n const handleAnimationFrameRequest = () => {\n const measuredBoxModel = element == null ? null : getBox(element)\n\n if (!deepEqual(currentBoxModel, measuredBoxModel)) {\n currentBoxModel = measuredBoxModel\n\n onBoxModelChange(currentBoxModel)\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n\n onBoxModelChange(null)\n }\n}\n"],"mappings":"AAAA,SAAmB,cAAc;AACjC,OAAO,eAAe;AAEf,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AACF,GAGe;AACb,MAAI,kBAAmC;AAEvC,QAAM,8BAA8B,MAAM;AACxC,UAAM,mBAAmB,WAAW,OAAO,OAAO,OAAO,OAAO;AAEhE,QAAI,CAAC,UAAU,iBAAiB,gBAAgB,GAAG;AACjD,wBAAkB;AAElB,uBAAiB,eAAe;AAAA,IAClC;AAEA,2BAAuB,sBAAsB,2BAA2B;AAAA,EAC1E;AAEA,MAAI,uBAAuB,sBAAsB,2BAA2B;AAE5E,SAAO,MAAM;AACX,yBAAqB,oBAAoB;AAEzC,qBAAiB,IAAI;AAAA,EACvB;AACF;","names":[]}
@@ -1,5 +1,8 @@
1
1
  import { supportsActivity } from "./components/activity-with-fallback";
2
- import { registerComponentEffect, registerReactComponentEffect } from "../../state/actions/internal";
2
+ import {
3
+ registerComponentEffect,
4
+ registerReactComponentEffect
5
+ } from "../../state/actions/internal/read-only-actions";
3
6
  import { ComponentIcon } from "../../state/modules/components-meta";
4
7
  import { RuntimeCore } from "./runtime-core";
5
8
  function validateComponentType(type, component) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/react/react-runtime-core.ts"],"sourcesContent":["import { ControlDefinition as UnifiedControlDefinition } from '@makeswift/controls'\n\nimport { type LegacyDescriptor, type DescriptorValueType } from '../../prop-controllers/descriptors'\n\nimport { supportsActivity } from './components/activity-with-fallback'\n\nimport { registerComponentEffect, registerReactComponentEffect } from '../../state/actions/internal'\n\nimport { BreakpointsInput } from '../../state/modules/breakpoints'\nimport { ComponentIcon } from '../../state/modules/components-meta'\nimport type { ComponentType } from '../../state/react-page'\n\nimport { RuntimeCore } from './runtime-core'\n\nfunction validateComponentType(type: string, component?: ComponentType): void {\n const componentName = component?.name ?? 'Component'\n if (typeof type !== 'string' || type === '') {\n throw new Error(\n `${componentName}: A non-empty string \\`type\\` is required for component registration, got ${type}`,\n )\n }\n}\n\nexport class ReactRuntimeCore extends RuntimeCore {\n registerComponent<\n ControlDef extends UnifiedControlDefinition,\n P extends Record<string, LegacyDescriptor | ControlDef>,\n C extends ComponentType<{ [K in keyof P]: DescriptorValueType<P[K]> }>,\n >(\n component: C,\n {\n type,\n label,\n icon = ComponentIcon.Cube,\n hidden = false,\n description,\n builtinSuspense,\n props,\n }: {\n type: string\n label: string\n icon?: ComponentIcon\n hidden?: boolean\n description?: string\n /**\n * In React <= 19.1, controls the default `<Suspense>` boundary.\n * Ignored in React >= 19.2; components are always wrapped in `<Activity>`.\n * Defaults to `true`.\n */\n builtinSuspense?: boolean\n props?: P\n },\n ): () => void {\n validateComponentType(type, component as unknown as ComponentType)\n\n const unregisterComponent = this.store.dispatch(\n registerComponentEffect(\n type,\n { label, icon, hidden, description, builtinSuspense },\n props ?? {},\n ),\n )\n\n if (supportsActivity() && builtinSuspense !== undefined) {\n console.warn(\n 'builtinSuspense is ignored in React >= 19.2; components are always wrapped in <Activity>.',\n )\n }\n\n const unregisterReactComponent = this.store.dispatch(\n registerReactComponentEffect(type, component as unknown as ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n }\n\n constructor({ breakpoints }: { breakpoints?: BreakpointsInput } = {}) {\n super({ breakpoints })\n }\n}\n"],"mappings":"AAIA,SAAS,wBAAwB;AAEjC,SAAS,yBAAyB,oCAAoC;AAGtE,SAAS,qBAAqB;AAG9B,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB,MAAc,WAAiC;AAC5E,QAAM,gBAAgB,WAAW,QAAQ;AACzC,MAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C,UAAM,IAAI;AAAA,MACR,GAAG,aAAa,6EAA6E,IAAI;AAAA,IACnG;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB,YAAY;AAAA,EAChD,kBAKE,WACA;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO,cAAc;AAAA,IACrB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAcY;AACZ,0BAAsB,MAAM,SAAqC;AAEjE,UAAM,sBAAsB,KAAK,MAAM;AAAA,MACrC;AAAA,QACE;AAAA,QACA,EAAE,OAAO,MAAM,QAAQ,aAAa,gBAAgB;AAAA,QACpD,SAAS,CAAC;AAAA,MACZ;AAAA,IACF;AAEA,QAAI,iBAAiB,KAAK,oBAAoB,QAAW;AACvD,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAEA,UAAM,2BAA2B,KAAK,MAAM;AAAA,MAC1C,6BAA6B,MAAM,SAAqC;AAAA,IAC1E;AAEA,WAAO,MAAM;AACX,0BAAoB;AACpB,+BAAyB;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,YAAY,EAAE,YAAY,IAAwC,CAAC,GAAG;AACpE,UAAM,EAAE,YAAY,CAAC;AAAA,EACvB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/react/react-runtime-core.ts"],"sourcesContent":["import { ControlDefinition as UnifiedControlDefinition } from '@makeswift/controls'\n\nimport { type LegacyDescriptor, type DescriptorValueType } from '../../prop-controllers/descriptors'\n\nimport { supportsActivity } from './components/activity-with-fallback'\n\nimport {\n registerComponentEffect,\n registerReactComponentEffect,\n} from '../../state/actions/internal/read-only-actions'\n\nimport { BreakpointsInput } from '../../state/modules/breakpoints'\nimport { ComponentIcon } from '../../state/modules/components-meta'\nimport type { ComponentType } from '../../state/read-only-state'\n\nimport { RuntimeCore } from './runtime-core'\n\nfunction validateComponentType(type: string, component?: ComponentType): void {\n const componentName = component?.name ?? 'Component'\n if (typeof type !== 'string' || type === '') {\n throw new Error(\n `${componentName}: A non-empty string \\`type\\` is required for component registration, got ${type}`,\n )\n }\n}\n\nexport class ReactRuntimeCore extends RuntimeCore {\n registerComponent<\n ControlDef extends UnifiedControlDefinition,\n P extends Record<string, LegacyDescriptor | ControlDef>,\n C extends ComponentType<{ [K in keyof P]: DescriptorValueType<P[K]> }>,\n >(\n component: C,\n {\n type,\n label,\n icon = ComponentIcon.Cube,\n hidden = false,\n description,\n builtinSuspense,\n props,\n }: {\n type: string\n label: string\n icon?: ComponentIcon\n hidden?: boolean\n description?: string\n /**\n * In React <= 19.1, controls the default `<Suspense>` boundary.\n * Ignored in React >= 19.2; components are always wrapped in `<Activity>`.\n * Defaults to `true`.\n */\n builtinSuspense?: boolean\n props?: P\n },\n ): () => void {\n validateComponentType(type, component as unknown as ComponentType)\n\n const unregisterComponent = this.store.dispatch(\n registerComponentEffect(\n type,\n { label, icon, hidden, description, builtinSuspense },\n props ?? {},\n ),\n )\n\n if (supportsActivity() && builtinSuspense !== undefined) {\n console.warn(\n 'builtinSuspense is ignored in React >= 19.2; components are always wrapped in <Activity>.',\n )\n }\n\n const unregisterReactComponent = this.store.dispatch(\n registerReactComponentEffect(type, component as unknown as ComponentType),\n )\n\n return () => {\n unregisterComponent()\n unregisterReactComponent()\n }\n }\n\n constructor({ breakpoints }: { breakpoints?: BreakpointsInput } = {}) {\n super({ breakpoints })\n }\n}\n"],"mappings":"AAIA,SAAS,wBAAwB;AAEjC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAGP,SAAS,qBAAqB;AAG9B,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB,MAAc,WAAiC;AAC5E,QAAM,gBAAgB,WAAW,QAAQ;AACzC,MAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C,UAAM,IAAI;AAAA,MACR,GAAG,aAAa,6EAA6E,IAAI;AAAA,IACnG;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB,YAAY;AAAA,EAChD,kBAKE,WACA;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO,cAAc;AAAA,IACrB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAcY;AACZ,0BAAsB,MAAM,SAAqC;AAEjE,UAAM,sBAAsB,KAAK,MAAM;AAAA,MACrC;AAAA,QACE;AAAA,QACA,EAAE,OAAO,MAAM,QAAQ,aAAa,gBAAgB;AAAA,QACpD,SAAS,CAAC;AAAA,MACZ;AAAA,IACF;AAEA,QAAI,iBAAiB,KAAK,oBAAoB,QAAW;AACvD,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAEA,UAAM,2BAA2B,KAAK,MAAM;AAAA,MAC1C,6BAA6B,MAAM,SAAqC;AAAA,IAC1E;AAEA,WAAO,MAAM;AACX,0BAAoB;AACpB,+BAAyB;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,YAAY,EAAE,YAAY,IAAwC,CAAC,GAAG;AACpE,UAAM,EAAE,YAAY,CAAC;AAAA,EACvB;AACF;","names":[]}
@@ -1,11 +1,9 @@
1
1
  import {
2
2
  parseBreakpointsInput
3
3
  } from "../../state/modules/breakpoints";
4
- import {
5
- configureStore,
6
- copyElementTree,
7
- getBreakpoints
8
- } from "../../state/react-page";
4
+ import { copyElementTree } from "../../state/ops/copy-element-tree";
5
+ import { getBreakpoints } from "../../state/read-only-state";
6
+ import { configureStore } from "../../state/react-page";
9
7
  class RuntimeCore {
10
8
  store;
11
9
  constructor({ breakpoints }) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/react/runtime-core.ts"],"sourcesContent":["import { type SerializableReplacementContext } from '@makeswift/controls'\n\nimport {\n Breakpoints,\n BreakpointsInput,\n parseBreakpointsInput,\n} from '../../state/modules/breakpoints'\n\nimport {\n configureStore,\n copyElementTree,\n getBreakpoints,\n type Store,\n type Element,\n type ElementData,\n} from '../../state/react-page'\n\nexport class RuntimeCore {\n store: Store\n\n constructor({ breakpoints }: { breakpoints?: BreakpointsInput }) {\n this.store = configureStore({\n name: 'Runtime store',\n preloadedState: null,\n breakpoints: breakpoints ? parseBreakpointsInput(breakpoints) : undefined,\n })\n }\n\n copyElementTree(\n elementTree: ElementData,\n replacementContext: SerializableReplacementContext,\n ): Element {\n return copyElementTree(this.store.getState(), elementTree, replacementContext)\n }\n\n getBreakpoints(): Breakpoints {\n return getBreakpoints(this.store.getState())\n }\n}\n"],"mappings":"AAEA;AAAA,EAGE;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAEA,MAAM,YAAY;AAAA,EACvB;AAAA,EAEA,YAAY,EAAE,YAAY,GAAuC;AAC/D,SAAK,QAAQ,eAAe;AAAA,MAC1B,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa,cAAc,sBAAsB,WAAW,IAAI;AAAA,IAClE,CAAC;AAAA,EACH;AAAA,EAEA,gBACE,aACA,oBACS;AACT,WAAO,gBAAgB,KAAK,MAAM,SAAS,GAAG,aAAa,kBAAkB;AAAA,EAC/E;AAAA,EAEA,iBAA8B;AAC5B,WAAO,eAAe,KAAK,MAAM,SAAS,CAAC;AAAA,EAC7C;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/react/runtime-core.ts"],"sourcesContent":["import { type SerializableReplacementContext } from '@makeswift/controls'\n\nimport {\n Breakpoints,\n BreakpointsInput,\n parseBreakpointsInput,\n} from '../../state/modules/breakpoints'\n\nimport { copyElementTree } from '../../state/ops/copy-element-tree'\n\nimport { getBreakpoints, type Element, type ElementData } from '../../state/read-only-state'\nimport { configureStore, type Store } from '../../state/react-page'\n\nexport class RuntimeCore {\n store: Store\n\n constructor({ breakpoints }: { breakpoints?: BreakpointsInput }) {\n this.store = configureStore({\n name: 'Runtime store',\n preloadedState: null,\n breakpoints: breakpoints ? parseBreakpointsInput(breakpoints) : undefined,\n })\n }\n\n copyElementTree(\n elementTree: ElementData,\n replacementContext: SerializableReplacementContext,\n ): Element {\n return copyElementTree(this.store.getState(), elementTree, replacementContext)\n }\n\n getBreakpoints(): Breakpoints {\n return getBreakpoints(this.store.getState())\n }\n}\n"],"mappings":"AAEA;AAAA,EAGE;AAAA,OACK;AAEP,SAAS,uBAAuB;AAEhC,SAAS,sBAAsD;AAC/D,SAAS,sBAAkC;AAEpC,MAAM,YAAY;AAAA,EACvB;AAAA,EAEA,YAAY,EAAE,YAAY,GAAuC;AAC/D,SAAK,QAAQ,eAAe;AAAA,MAC1B,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa,cAAc,sBAAsB,WAAW,IAAI;AAAA,IAClE,CAAC;AAAA,EACH;AAAA,EAEA,gBACE,aACA,oBACS;AACT,WAAO,gBAAgB,KAAK,MAAM,SAAS,GAAG,aAAa,kBAAkB;AAAA,EAC/E;AAAA,EAEA,iBAA8B;AAC5B,WAAO,eAAe,KAAK,MAAM,SAAS,CAAC;AAAA,EAC7C;AACF;","names":[]}
@@ -0,0 +1,8 @@
1
+ import { ReactRuntime } from "../react-runtime";
2
+ function createReactRuntime() {
3
+ return new ReactRuntime();
4
+ }
5
+ export {
6
+ createReactRuntime
7
+ };
8
+ //# sourceMappingURL=react-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/testing/react-runtime.tsx"],"sourcesContent":["import { ReactRuntime } from '../react-runtime'\n\nexport function createReactRuntime() {\n return new ReactRuntime()\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAEtB,SAAS,qBAAqB;AACnC,SAAO,IAAI,aAAa;AAC1B;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/utils/can-accept-ref.ts"],"sourcesContent":["import type { Component, PropsWithoutRef, RefAttributes } from 'react'\nimport { type ComponentType } from '../../../state/react-page'\n\ntype WrapperComponent = {\n $$typeof: string\n new (props: PropsWithoutRef<any> & RefAttributes<any>, context?: any): Component<any>\n}\n\ntype MemoComponent = WrapperComponent & {\n type: ComponentType\n}\n\n// See https://github.com/facebook/react/blob/main/packages/shared/ReactSymbols.js\nconst REACT_MEMO_TYPE: symbol = Symbol.for('react.memo')\nconst REACT_LAZY_TYPE: symbol = Symbol.for('react.lazy')\nconst REACT_FORWARD_REF_TYPE: symbol = Symbol.for('react.forward_ref')\n\nfunction hasTypeofSymbol(c: ComponentType, type: symbol): c is WrapperComponent {\n // React uses `$$typeof` field on its wrapper components to identify them,\n // see https://github.com/facebook/react/blob/main/packages/shared/ReactElementType.js\n // and https://github.com/search?q=repo%3Afacebook%2Freact%20%24%24typeof&type=code\n return c != null && '$$typeof' in c && c.$$typeof === type\n}\n\nfunction isMemoComponent(c: ComponentType): c is MemoComponent {\n return hasTypeofSymbol(c, REACT_MEMO_TYPE)\n}\n\nfunction isLazyComponent(c: ComponentType) {\n return hasTypeofSymbol(c, REACT_LAZY_TYPE)\n}\n\nfunction isForwardRef(c: ComponentType) {\n return hasTypeofSymbol(c, REACT_FORWARD_REF_TYPE)\n}\n\nfunction unwrapIfMemo(c: ComponentType): ComponentType {\n return isMemoComponent(c) ? c.type : c\n}\n\nfunction isClassComponent(c: ComponentType) {\n return typeof c === 'function' && c.prototype && Boolean(c.prototype.isReactComponent)\n}\n\nfunction canAcceptRefImpl(c: ComponentType) {\n return (\n isClassComponent(c) ||\n isForwardRef(c) ||\n // will try to pass a ref to all lazy components since we can't know if they accept refs without loading them\n isLazyComponent(c)\n )\n}\n\nexport function canAcceptRef(c: ComponentType) {\n return canAcceptRefImpl(unwrapIfMemo(c))\n}\n"],"mappings":"AAaA,MAAM,kBAA0B,OAAO,IAAI,YAAY;AACvD,MAAM,kBAA0B,OAAO,IAAI,YAAY;AACvD,MAAM,yBAAiC,OAAO,IAAI,mBAAmB;AAErE,SAAS,gBAAgB,GAAkB,MAAqC;AAI9E,SAAO,KAAK,QAAQ,cAAc,KAAK,EAAE,aAAa;AACxD;AAEA,SAAS,gBAAgB,GAAsC;AAC7D,SAAO,gBAAgB,GAAG,eAAe;AAC3C;AAEA,SAAS,gBAAgB,GAAkB;AACzC,SAAO,gBAAgB,GAAG,eAAe;AAC3C;AAEA,SAAS,aAAa,GAAkB;AACtC,SAAO,gBAAgB,GAAG,sBAAsB;AAClD;AAEA,SAAS,aAAa,GAAiC;AACrD,SAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO;AACvC;AAEA,SAAS,iBAAiB,GAAkB;AAC1C,SAAO,OAAO,MAAM,cAAc,EAAE,aAAa,QAAQ,EAAE,UAAU,gBAAgB;AACvF;AAEA,SAAS,iBAAiB,GAAkB;AAC1C,SACE,iBAAiB,CAAC,KAClB,aAAa,CAAC;AAAA,EAEd,gBAAgB,CAAC;AAErB;AAEO,SAAS,aAAa,GAAkB;AAC7C,SAAO,iBAAiB,aAAa,CAAC,CAAC;AACzC;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/utils/can-accept-ref.ts"],"sourcesContent":["import type { Component, PropsWithoutRef, RefAttributes } from 'react'\nimport { type ComponentType } from '../../../state/read-only-state'\n\ntype WrapperComponent = {\n $$typeof: string\n new (props: PropsWithoutRef<any> & RefAttributes<any>, context?: any): Component<any>\n}\n\ntype MemoComponent = WrapperComponent & {\n type: ComponentType\n}\n\n// See https://github.com/facebook/react/blob/main/packages/shared/ReactSymbols.js\nconst REACT_MEMO_TYPE: symbol = Symbol.for('react.memo')\nconst REACT_LAZY_TYPE: symbol = Symbol.for('react.lazy')\nconst REACT_FORWARD_REF_TYPE: symbol = Symbol.for('react.forward_ref')\n\nfunction hasTypeofSymbol(c: ComponentType, type: symbol): c is WrapperComponent {\n // React uses `$$typeof` field on its wrapper components to identify them,\n // see https://github.com/facebook/react/blob/main/packages/shared/ReactElementType.js\n // and https://github.com/search?q=repo%3Afacebook%2Freact%20%24%24typeof&type=code\n return c != null && '$$typeof' in c && c.$$typeof === type\n}\n\nfunction isMemoComponent(c: ComponentType): c is MemoComponent {\n return hasTypeofSymbol(c, REACT_MEMO_TYPE)\n}\n\nfunction isLazyComponent(c: ComponentType) {\n return hasTypeofSymbol(c, REACT_LAZY_TYPE)\n}\n\nfunction isForwardRef(c: ComponentType) {\n return hasTypeofSymbol(c, REACT_FORWARD_REF_TYPE)\n}\n\nfunction unwrapIfMemo(c: ComponentType): ComponentType {\n return isMemoComponent(c) ? c.type : c\n}\n\nfunction isClassComponent(c: ComponentType) {\n return typeof c === 'function' && c.prototype && Boolean(c.prototype.isReactComponent)\n}\n\nfunction canAcceptRefImpl(c: ComponentType) {\n return (\n isClassComponent(c) ||\n isForwardRef(c) ||\n // will try to pass a ref to all lazy components since we can't know if they accept refs without loading them\n isLazyComponent(c)\n )\n}\n\nexport function canAcceptRef(c: ComponentType) {\n return canAcceptRefImpl(unwrapIfMemo(c))\n}\n"],"mappings":"AAaA,MAAM,kBAA0B,OAAO,IAAI,YAAY;AACvD,MAAM,kBAA0B,OAAO,IAAI,YAAY;AACvD,MAAM,yBAAiC,OAAO,IAAI,mBAAmB;AAErE,SAAS,gBAAgB,GAAkB,MAAqC;AAI9E,SAAO,KAAK,QAAQ,cAAc,KAAK,EAAE,aAAa;AACxD;AAEA,SAAS,gBAAgB,GAAsC;AAC7D,SAAO,gBAAgB,GAAG,eAAe;AAC3C;AAEA,SAAS,gBAAgB,GAAkB;AACzC,SAAO,gBAAgB,GAAG,eAAe;AAC3C;AAEA,SAAS,aAAa,GAAkB;AACtC,SAAO,gBAAgB,GAAG,sBAAsB;AAClD;AAEA,SAAS,aAAa,GAAiC;AACrD,SAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO;AACvC;AAEA,SAAS,iBAAiB,GAAkB;AAC1C,SAAO,OAAO,MAAM,cAAc,EAAE,aAAa,QAAQ,EAAE,UAAU,gBAAgB;AACvF;AAEA,SAAS,iBAAiB,GAAkB;AAC1C,SACE,iBAAiB,CAAC,KAClB,aAAa,CAAC;AAAA,EAEd,gBAAgB,CAAC;AAErB;AAEO,SAAS,aAAa,GAAkB;AAC7C,SAAO,iBAAiB,aAAa,CAAC,CAAC;AACzC;","names":[]}
@@ -0,0 +1,10 @@
1
+ import { ReadOnlyActionTypes } from "./read-only-actions";
2
+ import { ReadWriteActionTypes } from "./read-write-actions";
3
+ const InternalActionTypes = {
4
+ ...ReadOnlyActionTypes,
5
+ ...ReadWriteActionTypes
6
+ };
7
+ export {
8
+ InternalActionTypes
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/actions/internal/index.ts"],"sourcesContent":["import { type ReadOnlyAction, ReadOnlyActionTypes } from './read-only-actions'\nimport { type ReadWriteAction, ReadWriteActionTypes } from './read-write-actions'\n\nexport const InternalActionTypes = {\n ...ReadOnlyActionTypes,\n ...ReadWriteActionTypes,\n} as const\n\nexport type InternalAction = ReadOnlyAction | ReadWriteAction\n"],"mappings":"AAAA,SAA8B,2BAA2B;AACzD,SAA+B,4BAA4B;AAEpD,MAAM,sBAAsB;AAAA,EACjC,GAAG;AAAA,EACH,GAAG;AACL;","names":[]}