@makeswift/runtime 0.26.4 → 0.26.5

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 (353) hide show
  1. package/dist/cjs/api/client.js +252 -0
  2. package/dist/cjs/api/client.js.map +1 -0
  3. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  4. package/dist/cjs/api-handler/handlers/webhook/diff-projection.js +62 -0
  5. package/dist/cjs/api-handler/handlers/webhook/diff-projection.js.map +1 -0
  6. package/dist/cjs/builder/serialization.js +78 -0
  7. package/dist/cjs/builder/serialization.js.map +1 -0
  8. package/dist/cjs/client/index.js +3 -3
  9. package/dist/cjs/controls/serialization/base/index.js +78 -0
  10. package/dist/cjs/controls/serialization/base/index.js.map +1 -0
  11. package/dist/cjs/controls/serialization/base/visitor.js +59 -0
  12. package/dist/cjs/controls/serialization/base/visitor.js.map +1 -0
  13. package/dist/cjs/controls/serialization/index.js +55 -0
  14. package/dist/cjs/controls/serialization/index.js.map +1 -0
  15. package/dist/cjs/controls/serialization/message-port/function-serialization.js +79 -0
  16. package/dist/cjs/controls/serialization/message-port/function-serialization.js.map +1 -0
  17. package/dist/cjs/controls/serialization/message-port/index.js +25 -0
  18. package/dist/cjs/controls/serialization/message-port/index.js.map +1 -0
  19. package/dist/cjs/controls/serialization/message-port/visitor.js +48 -0
  20. package/dist/cjs/controls/serialization/message-port/visitor.js.map +1 -0
  21. package/dist/cjs/next/api-handler/config/pages-router.js +1 -1
  22. package/dist/cjs/next/api-handler/config/pages-router.js.map +1 -1
  23. package/dist/cjs/next/fetch.js +30 -0
  24. package/dist/cjs/next/fetch.js.map +1 -0
  25. package/dist/cjs/next/runtime.js +35 -0
  26. package/dist/cjs/next/runtime.js.map +1 -0
  27. package/dist/cjs/next/testing/react-runtime.js +29 -0
  28. package/dist/cjs/next/testing/react-runtime.js.map +1 -0
  29. package/dist/cjs/prop-controllers/serialization.js +355 -0
  30. package/dist/cjs/prop-controllers/serialization.js.map +1 -0
  31. package/dist/cjs/runtimes/react/components/GoogleFontLink.js +55 -0
  32. package/dist/cjs/runtimes/react/components/GoogleFontLink.js.map +1 -0
  33. package/dist/cjs/runtimes/react/components/MakeswiftFonts.js +33 -0
  34. package/dist/cjs/runtimes/react/components/MakeswiftFonts.js.map +1 -0
  35. package/dist/cjs/runtimes/react/hooks/use-async-effect.js +55 -0
  36. package/dist/cjs/runtimes/react/hooks/use-async-effect.js.map +1 -0
  37. package/dist/cjs/runtimes/react/hooks/use-current-breakpoint.js +39 -0
  38. package/dist/cjs/runtimes/react/hooks/use-current-breakpoint.js.map +1 -0
  39. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js +33 -0
  40. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  41. package/dist/cjs/runtimes/react/lib/resolved-style-to-css.js +59 -0
  42. package/dist/cjs/runtimes/react/lib/resolved-style-to-css.js.map +1 -0
  43. package/dist/cjs/runtimes/react/testing/react-runtime.js +33 -0
  44. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -0
  45. package/dist/cjs/runtimes/react/utils/google-fonts-url.js +49 -0
  46. package/dist/cjs/runtimes/react/utils/google-fonts-url.js.map +1 -0
  47. package/dist/cjs/state/actions/internal/index.js +34 -0
  48. package/dist/cjs/state/actions/internal/index.js.map +1 -0
  49. package/dist/cjs/state/actions/internal/read-only-actions.js +195 -0
  50. package/dist/cjs/state/actions/internal/read-only-actions.js.map +1 -0
  51. package/dist/cjs/state/actions/internal/read-write-actions.js +76 -0
  52. package/dist/cjs/state/actions/internal/read-write-actions.js.map +1 -0
  53. package/dist/cjs/state/builder-api/api.js +17 -0
  54. package/dist/cjs/state/builder-api/api.js.map +1 -0
  55. package/dist/cjs/state/builder-api/navigation-listener.js +110 -0
  56. package/dist/cjs/state/builder-api/navigation-listener.js.map +1 -0
  57. package/dist/cjs/state/middleware/makeswift-api-client-sync.js +37 -0
  58. package/dist/cjs/state/middleware/makeswift-api-client-sync.js.map +1 -0
  59. package/dist/cjs/state/middleware/read-only-element-tree.js +52 -0
  60. package/dist/cjs/state/middleware/read-only-element-tree.js.map +1 -0
  61. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js +40 -0
  62. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  63. package/dist/cjs/state/middleware/read-write/builder-api/index.js +85 -0
  64. package/dist/cjs/state/middleware/read-write/builder-api/index.js.map +1 -0
  65. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js +281 -0
  66. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  67. package/dist/cjs/state/middleware/read-write/index.js +40 -0
  68. package/dist/cjs/state/middleware/read-write/index.js.map +1 -0
  69. package/dist/cjs/state/middleware/read-write/measure-box-models.js +71 -0
  70. package/dist/cjs/state/middleware/read-write/measure-box-models.js.map +1 -0
  71. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js +114 -0
  72. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  73. package/dist/cjs/state/middleware/read-write/update-element-tree.js +59 -0
  74. package/dist/cjs/state/middleware/read-write/update-element-tree.js.map +1 -0
  75. package/dist/cjs/state/mixins/breakpoint-watch.js +72 -0
  76. package/dist/cjs/state/mixins/breakpoint-watch.js.map +1 -0
  77. package/dist/cjs/state/modules/is-read-only.js +50 -0
  78. package/dist/cjs/state/modules/is-read-only.js.map +1 -0
  79. package/dist/cjs/state/modules/locale.js +50 -0
  80. package/dist/cjs/state/modules/locale.js.map +1 -0
  81. package/dist/cjs/state/modules/read-write/box-models.js +144 -0
  82. package/dist/cjs/state/modules/read-write/box-models.js.map +1 -0
  83. package/dist/cjs/state/modules/read-write/element-imperative-handles.js +61 -0
  84. package/dist/cjs/state/modules/read-write/element-imperative-handles.js.map +1 -0
  85. package/dist/cjs/state/modules/read-write/pointer.js +48 -0
  86. package/dist/cjs/state/modules/read-write/pointer.js.map +1 -0
  87. package/dist/cjs/state/modules/read-write/read-write-documents.js +98 -0
  88. package/dist/cjs/state/modules/read-write/read-write-documents.js.map +1 -0
  89. package/dist/cjs/state/modules/site-version.js +47 -0
  90. package/dist/cjs/state/modules/site-version.js.map +1 -0
  91. package/dist/cjs/state/ops/copy-element-tree.js +67 -0
  92. package/dist/cjs/state/ops/copy-element-tree.js.map +1 -0
  93. package/dist/cjs/state/ops/merge-element.js +73 -0
  94. package/dist/cjs/state/ops/merge-element.js.map +1 -0
  95. package/dist/cjs/state/read-only-state.js +231 -0
  96. package/dist/cjs/state/read-only-state.js.map +1 -0
  97. package/dist/cjs/state/read-write-state.js +128 -0
  98. package/dist/cjs/state/read-write-state.js.map +1 -0
  99. package/dist/cjs/state/store.js +219 -0
  100. package/dist/cjs/state/store.js.map +1 -0
  101. package/dist/cjs/state/unified-state.js +17 -0
  102. package/dist/cjs/state/unified-state.js.map +1 -0
  103. package/dist/cjs/translations/index.js +32 -0
  104. package/dist/cjs/translations/index.js.map +1 -0
  105. package/dist/cjs/utils/deferred.js +39 -0
  106. package/dist/cjs/utils/deferred.js.map +1 -0
  107. package/dist/cjs/utils/ref-counted-map.js +120 -0
  108. package/dist/cjs/utils/ref-counted-map.js.map +1 -0
  109. package/dist/esm/api/client.js +219 -0
  110. package/dist/esm/api/client.js.map +1 -0
  111. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  112. package/dist/esm/api-handler/handlers/webhook/diff-projection.js +38 -0
  113. package/dist/esm/api-handler/handlers/webhook/diff-projection.js.map +1 -0
  114. package/dist/esm/builder/serialization.js +59 -0
  115. package/dist/esm/builder/serialization.js.map +1 -0
  116. package/dist/esm/client/index.js +3 -3
  117. package/dist/esm/controls/serialization/base/index.js +78 -0
  118. package/dist/esm/controls/serialization/base/index.js.map +1 -0
  119. package/dist/esm/controls/serialization/base/visitor.js +39 -0
  120. package/dist/esm/controls/serialization/base/visitor.js.map +1 -0
  121. package/dist/esm/controls/serialization/index.js +30 -0
  122. package/dist/esm/controls/serialization/index.js.map +1 -0
  123. package/dist/esm/controls/serialization/message-port/function-serialization.js +52 -0
  124. package/dist/esm/controls/serialization/message-port/function-serialization.js.map +1 -0
  125. package/dist/esm/controls/serialization/message-port/index.js +3 -0
  126. package/dist/esm/controls/serialization/message-port/index.js.map +1 -0
  127. package/dist/esm/controls/serialization/message-port/visitor.js +24 -0
  128. package/dist/esm/controls/serialization/message-port/visitor.js.map +1 -0
  129. package/dist/esm/next/api-handler/config/pages-router.js +1 -1
  130. package/dist/esm/next/api-handler/config/pages-router.js.map +1 -1
  131. package/dist/esm/next/fetch.js +6 -0
  132. package/dist/esm/next/fetch.js.map +1 -0
  133. package/dist/esm/next/runtime.js +11 -0
  134. package/dist/esm/next/runtime.js.map +1 -0
  135. package/dist/esm/next/testing/react-runtime.js +5 -0
  136. package/dist/esm/next/testing/react-runtime.js.map +1 -0
  137. package/dist/esm/prop-controllers/serialization.js +338 -0
  138. package/dist/esm/prop-controllers/serialization.js.map +1 -0
  139. package/dist/esm/runtimes/react/components/GoogleFontLink.js +35 -0
  140. package/dist/esm/runtimes/react/components/GoogleFontLink.js.map +1 -0
  141. package/dist/esm/runtimes/react/components/MakeswiftFonts.js +9 -0
  142. package/dist/esm/runtimes/react/components/MakeswiftFonts.js.map +1 -0
  143. package/dist/esm/runtimes/react/hooks/use-async-effect.js +31 -0
  144. package/dist/esm/runtimes/react/hooks/use-async-effect.js.map +1 -0
  145. package/dist/esm/runtimes/react/hooks/use-current-breakpoint.js +15 -0
  146. package/dist/esm/runtimes/react/hooks/use-current-breakpoint.js.map +1 -0
  147. package/dist/esm/runtimes/react/hooks/use-is-read-only.js +9 -0
  148. package/dist/esm/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  149. package/dist/esm/runtimes/react/lib/resolved-style-to-css.js +38 -0
  150. package/dist/esm/runtimes/react/lib/resolved-style-to-css.js.map +1 -0
  151. package/dist/esm/runtimes/react/testing/react-runtime.js +9 -0
  152. package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -0
  153. package/dist/esm/runtimes/react/utils/google-fonts-url.js +23 -0
  154. package/dist/esm/runtimes/react/utils/google-fonts-url.js.map +1 -0
  155. package/dist/esm/state/actions/internal/index.js +10 -0
  156. package/dist/esm/state/actions/internal/index.js.map +1 -0
  157. package/dist/esm/state/actions/internal/read-only-actions.js +153 -0
  158. package/dist/esm/state/actions/internal/read-only-actions.js.map +1 -0
  159. package/dist/esm/state/actions/internal/read-write-actions.js +46 -0
  160. package/dist/esm/state/actions/internal/read-write-actions.js.map +1 -0
  161. package/dist/esm/state/builder-api/api.js +1 -0
  162. package/dist/esm/state/builder-api/api.js.map +1 -0
  163. package/dist/esm/state/builder-api/navigation-listener.js +86 -0
  164. package/dist/esm/state/builder-api/navigation-listener.js.map +1 -0
  165. package/dist/esm/state/middleware/makeswift-api-client-sync.js +13 -0
  166. package/dist/esm/state/middleware/makeswift-api-client-sync.js.map +1 -0
  167. package/dist/esm/state/middleware/read-only-element-tree.js +28 -0
  168. package/dist/esm/state/middleware/read-only-element-tree.js.map +1 -0
  169. package/dist/esm/state/middleware/read-write/builder-api/element-size.js +16 -0
  170. package/dist/esm/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  171. package/dist/esm/state/middleware/read-write/builder-api/index.js +61 -0
  172. package/dist/esm/state/middleware/read-write/builder-api/index.js.map +1 -0
  173. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js +254 -0
  174. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  175. package/dist/esm/state/middleware/read-write/index.js +16 -0
  176. package/dist/esm/state/middleware/read-write/index.js.map +1 -0
  177. package/dist/esm/state/middleware/read-write/measure-box-models.js +37 -0
  178. package/dist/esm/state/middleware/read-write/measure-box-models.js.map +1 -0
  179. package/dist/esm/state/middleware/read-write/prop-controller-handles.js +80 -0
  180. package/dist/esm/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  181. package/dist/esm/state/middleware/read-write/update-element-tree.js +35 -0
  182. package/dist/esm/state/middleware/read-write/update-element-tree.js.map +1 -0
  183. package/dist/esm/state/mixins/breakpoint-watch.js +48 -0
  184. package/dist/esm/state/mixins/breakpoint-watch.js.map +1 -0
  185. package/dist/esm/state/modules/is-read-only.js +24 -0
  186. package/dist/esm/state/modules/is-read-only.js.map +1 -0
  187. package/dist/esm/state/modules/locale.js +24 -0
  188. package/dist/esm/state/modules/locale.js.map +1 -0
  189. package/dist/esm/state/modules/read-write/box-models.js +114 -0
  190. package/dist/esm/state/modules/read-write/box-models.js.map +1 -0
  191. package/dist/esm/state/modules/read-write/element-imperative-handles.js +36 -0
  192. package/dist/esm/state/modules/read-write/element-imperative-handles.js.map +1 -0
  193. package/dist/esm/state/modules/read-write/pointer.js +23 -0
  194. package/dist/esm/state/modules/read-write/pointer.js.map +1 -0
  195. package/dist/esm/state/modules/read-write/read-write-documents.js +60 -0
  196. package/dist/esm/state/modules/read-write/read-write-documents.js.map +1 -0
  197. package/dist/esm/state/modules/site-version.js +21 -0
  198. package/dist/esm/state/modules/site-version.js.map +1 -0
  199. package/dist/esm/state/ops/copy-element-tree.js +37 -0
  200. package/dist/esm/state/ops/copy-element-tree.js.map +1 -0
  201. package/dist/esm/state/ops/merge-element.js +39 -0
  202. package/dist/esm/state/ops/merge-element.js.map +1 -0
  203. package/dist/esm/state/read-only-state.js +176 -0
  204. package/dist/esm/state/read-only-state.js.map +1 -0
  205. package/dist/esm/state/read-write-state.js +82 -0
  206. package/dist/esm/state/read-write-state.js.map +1 -0
  207. package/dist/esm/state/store.js +188 -0
  208. package/dist/esm/state/store.js.map +1 -0
  209. package/dist/esm/state/unified-state.js +1 -0
  210. package/dist/esm/state/unified-state.js.map +1 -0
  211. package/dist/esm/translations/index.js +7 -0
  212. package/dist/esm/translations/index.js.map +1 -0
  213. package/dist/esm/utils/deferred.js +15 -0
  214. package/dist/esm/utils/deferred.js.map +1 -0
  215. package/dist/esm/utils/ref-counted-map.js +96 -0
  216. package/dist/esm/utils/ref-counted-map.js.map +1 -0
  217. package/dist/types/api/client.d.ts +81 -0
  218. package/dist/types/api/client.d.ts.map +1 -0
  219. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts +201 -0
  220. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts.map +1 -0
  221. package/dist/types/builder/serialization.d.ts +23 -0
  222. package/dist/types/builder/serialization.d.ts.map +1 -0
  223. package/dist/types/builder/serialization.test.d.ts +2 -0
  224. package/dist/types/builder/serialization.test.d.ts.map +1 -0
  225. package/dist/types/client/tests/client.get-component-snapshots.test.d.ts +2 -0
  226. package/dist/types/client/tests/client.get-component-snapshots.test.d.ts.map +1 -0
  227. package/dist/types/client/tests/client.get-fonts.test.d.ts +2 -0
  228. package/dist/types/client/tests/client.get-fonts.test.d.ts.map +1 -0
  229. package/dist/types/client/tests/client.introspect-many.test.d.ts +2 -0
  230. package/dist/types/client/tests/client.introspect-many.test.d.ts.map +1 -0
  231. package/dist/types/components/hooks/__tests__/useMediaQuery.test.d.ts +3 -0
  232. package/dist/types/components/hooks/__tests__/useMediaQuery.test.d.ts.map +1 -0
  233. package/dist/types/controls/serialization/base/index.d.ts +10 -0
  234. package/dist/types/controls/serialization/base/index.d.ts.map +1 -0
  235. package/dist/types/controls/serialization/base/visitor.d.ts +7 -0
  236. package/dist/types/controls/serialization/base/visitor.d.ts.map +1 -0
  237. package/dist/types/controls/serialization/index.d.ts +10 -0
  238. package/dist/types/controls/serialization/index.d.ts.map +1 -0
  239. package/dist/types/controls/serialization/message-port/function-serialization.d.ts +16 -0
  240. package/dist/types/controls/serialization/message-port/function-serialization.d.ts.map +1 -0
  241. package/dist/types/controls/serialization/message-port/function-serialization.test.d.ts +2 -0
  242. package/dist/types/controls/serialization/message-port/function-serialization.test.d.ts.map +1 -0
  243. package/dist/types/controls/serialization/message-port/index.d.ts +3 -0
  244. package/dist/types/controls/serialization/message-port/index.d.ts.map +1 -0
  245. package/dist/types/controls/serialization/message-port/visitor.d.ts +7 -0
  246. package/dist/types/controls/serialization/message-port/visitor.d.ts.map +1 -0
  247. package/dist/types/next/api-handler/config/pages-router.test.d.ts +2 -0
  248. package/dist/types/next/api-handler/config/pages-router.test.d.ts.map +1 -0
  249. package/dist/types/next/components/tests/controls/code-control.test.d.ts +2 -0
  250. package/dist/types/next/components/tests/controls/code-control.test.d.ts.map +1 -0
  251. package/dist/types/next/fetch.d.ts +3 -0
  252. package/dist/types/next/fetch.d.ts.map +1 -0
  253. package/dist/types/next/runtime.d.ts +10 -0
  254. package/dist/types/next/runtime.d.ts.map +1 -0
  255. package/dist/types/next/testing/react-runtime.d.ts +2 -0
  256. package/dist/types/next/testing/react-runtime.d.ts.map +1 -0
  257. package/dist/types/prop-controllers/serialization.d.ts +228 -0
  258. package/dist/types/prop-controllers/serialization.d.ts.map +1 -0
  259. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts +14 -0
  260. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts.map +1 -0
  261. package/dist/types/runtimes/react/components/MakeswiftFonts.d.ts +7 -0
  262. package/dist/types/runtimes/react/components/MakeswiftFonts.d.ts.map +1 -0
  263. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts +2 -0
  264. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts.map +1 -0
  265. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts +3 -0
  266. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts.map +1 -0
  267. package/dist/types/runtimes/react/hooks/use-current-breakpoint.d.ts +3 -0
  268. package/dist/types/runtimes/react/hooks/use-current-breakpoint.d.ts.map +1 -0
  269. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts +2 -0
  270. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts.map +1 -0
  271. package/dist/types/runtimes/react/lib/resolved-style-to-css.d.ts +4 -0
  272. package/dist/types/runtimes/react/lib/resolved-style-to-css.d.ts.map +1 -0
  273. package/dist/types/runtimes/react/testing/react-runtime.d.ts +6 -0
  274. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -0
  275. package/dist/types/runtimes/react/utils/google-fonts-url.d.ts +6 -0
  276. package/dist/types/runtimes/react/utils/google-fonts-url.d.ts.map +1 -0
  277. package/dist/types/state/__tests__/fixtures/serialized-descriptors-from-builder.d.ts +5 -0
  278. package/dist/types/state/__tests__/fixtures/serialized-descriptors-from-builder.d.ts.map +1 -0
  279. package/dist/types/state/__tests__/fixtures/translatable-content-sample.d.ts +3 -0
  280. package/dist/types/state/__tests__/fixtures/translatable-content-sample.d.ts.map +1 -0
  281. package/dist/types/state/__tests__/get-translatable-content.test.d.ts +2 -0
  282. package/dist/types/state/__tests__/get-translatable-content.test.d.ts.map +1 -0
  283. package/dist/types/state/__tests__/merge-element.test.d.ts +2 -0
  284. package/dist/types/state/__tests__/merge-element.test.d.ts.map +1 -0
  285. package/dist/types/state/__tests__/store.read-write-state.test.d.ts +2 -0
  286. package/dist/types/state/__tests__/store.read-write-state.test.d.ts.map +1 -0
  287. package/dist/types/state/__tests__/test-store.d.ts +31 -0
  288. package/dist/types/state/__tests__/test-store.d.ts.map +1 -0
  289. package/dist/types/state/actions/internal/index.d.ts +29 -0
  290. package/dist/types/state/actions/internal/index.d.ts.map +1 -0
  291. package/dist/types/state/actions/internal/read-only-actions.d.ts +171 -0
  292. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +1 -0
  293. package/dist/types/state/actions/internal/read-write-actions.d.ts +53 -0
  294. package/dist/types/state/actions/internal/read-write-actions.d.ts.map +1 -0
  295. package/dist/types/state/builder-api/api.d.ts +9 -0
  296. package/dist/types/state/builder-api/api.d.ts.map +1 -0
  297. package/dist/types/state/builder-api/navigation-listener.d.ts +3 -0
  298. package/dist/types/state/builder-api/navigation-listener.d.ts.map +1 -0
  299. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts +5 -0
  300. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts.map +1 -0
  301. package/dist/types/state/middleware/read-only-element-tree.d.ts +4 -0
  302. package/dist/types/state/middleware/read-only-element-tree.d.ts.map +1 -0
  303. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts +12 -0
  304. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts.map +1 -0
  305. package/dist/types/state/middleware/read-write/builder-api/index.d.ts +5 -0
  306. package/dist/types/state/middleware/read-write/builder-api/index.d.ts.map +1 -0
  307. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts +6 -0
  308. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts.map +1 -0
  309. package/dist/types/state/middleware/read-write/index.d.ts +5 -0
  310. package/dist/types/state/middleware/read-write/index.d.ts.map +1 -0
  311. package/dist/types/state/middleware/read-write/measure-box-models.d.ts +4 -0
  312. package/dist/types/state/middleware/read-write/measure-box-models.d.ts.map +1 -0
  313. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts +4 -0
  314. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts.map +1 -0
  315. package/dist/types/state/middleware/read-write/update-element-tree.d.ts +4 -0
  316. package/dist/types/state/middleware/read-write/update-element-tree.d.ts.map +1 -0
  317. package/dist/types/state/mixins/breakpoint-watch.d.ts +11 -0
  318. package/dist/types/state/mixins/breakpoint-watch.d.ts.map +1 -0
  319. package/dist/types/state/modules/is-read-only.d.ts +6 -0
  320. package/dist/types/state/modules/is-read-only.d.ts.map +1 -0
  321. package/dist/types/state/modules/locale.d.ts +6 -0
  322. package/dist/types/state/modules/locale.d.ts.map +1 -0
  323. package/dist/types/state/modules/read-write/box-models.d.ts +26 -0
  324. package/dist/types/state/modules/read-write/box-models.d.ts.map +1 -0
  325. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts +6 -0
  326. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts.map +1 -0
  327. package/dist/types/state/modules/read-write/pointer.d.ts +11 -0
  328. package/dist/types/state/modules/read-write/pointer.d.ts.map +1 -0
  329. package/dist/types/state/modules/read-write/read-write-documents.d.ts +14 -0
  330. package/dist/types/state/modules/read-write/read-write-documents.d.ts.map +1 -0
  331. package/dist/types/state/modules/site-version.d.ts +7 -0
  332. package/dist/types/state/modules/site-version.d.ts.map +1 -0
  333. package/dist/types/state/ops/copy-element-tree.d.ts +37 -0
  334. package/dist/types/state/ops/copy-element-tree.d.ts.map +1 -0
  335. package/dist/types/state/ops/merge-element.d.ts +4 -0
  336. package/dist/types/state/ops/merge-element.d.ts.map +1 -0
  337. package/dist/types/state/read-only-state.d.ts +131 -0
  338. package/dist/types/state/read-only-state.d.ts.map +1 -0
  339. package/dist/types/state/read-write-state.d.ts +62 -0
  340. package/dist/types/state/read-write-state.d.ts.map +1 -0
  341. package/dist/types/state/store.d.ts +86 -0
  342. package/dist/types/state/store.d.ts.map +1 -0
  343. package/dist/types/state/unified-state.d.ts +9 -0
  344. package/dist/types/state/unified-state.d.ts.map +1 -0
  345. package/dist/types/translations/index.d.ts +6 -0
  346. package/dist/types/translations/index.d.ts.map +1 -0
  347. package/dist/types/utils/__tests__/ref-counted-map.test.d.ts +2 -0
  348. package/dist/types/utils/__tests__/ref-counted-map.test.d.ts.map +1 -0
  349. package/dist/types/utils/deferred.d.ts +7 -0
  350. package/dist/types/utils/deferred.d.ts.map +1 -0
  351. package/dist/types/utils/ref-counted-map.d.ts +32 -0
  352. package/dist/types/utils/ref-counted-map.d.ts.map +1 -0
  353. package/package.json +2 -2
@@ -0,0 +1,114 @@
1
+ import {
2
+ createBox as createBoxWithoutScroll,
3
+ getBox as getBoxWithoutScroll,
4
+ withScroll
5
+ } from "css-box-model";
6
+ import { isKnownAction } from "../../actions";
7
+ import { ReadWriteActionTypes } from "../../actions/internal/read-write-actions";
8
+ import { BuilderActionTypes } from "../../builder-api/actions";
9
+ function parse(rawString) {
10
+ const value = Number(rawString.replace(/px$/, ""));
11
+ return Number.isFinite(value) ? value : 0;
12
+ }
13
+ function createBox(boxArgs) {
14
+ const box = withScroll(createBoxWithoutScroll(boxArgs));
15
+ return { ...box, visible: boxArgs.visible };
16
+ }
17
+ function isElementVisible(element) {
18
+ if (element.checkVisibility == null) {
19
+ return true;
20
+ }
21
+ return element.checkVisibility({
22
+ visibilityProperty: true,
23
+ contentVisibilityAuto: true,
24
+ opacityProperty: true
25
+ });
26
+ }
27
+ function getBox(element) {
28
+ const visible = isElementVisible(element);
29
+ const boxModel = withScroll(getBoxWithoutScroll(element));
30
+ return { ...boxModel, visible };
31
+ }
32
+ function isMeasurable(value) {
33
+ if (value instanceof Element)
34
+ return true;
35
+ if (typeof value === "object" && value !== null && "getBoxModel" in value && typeof value.getBoxModel === "function") {
36
+ return true;
37
+ }
38
+ return false;
39
+ }
40
+ function measure(measurable) {
41
+ if (measurable instanceof Element)
42
+ return getBox(measurable);
43
+ return measurable.getBoxModel();
44
+ }
45
+ function getInitialState() {
46
+ return { measurables: /* @__PURE__ */ new Map(), boxModels: /* @__PURE__ */ new Map() };
47
+ }
48
+ function getMeasurables(state) {
49
+ return state.measurables;
50
+ }
51
+ function getBoxModels(state) {
52
+ return state.boxModels;
53
+ }
54
+ function getBoxModel(state, documentKey, elementKey) {
55
+ return getBoxModels(state).get(documentKey)?.get(elementKey) ?? null;
56
+ }
57
+ function reducer(state = getInitialState(), action) {
58
+ if (!isKnownAction(action))
59
+ return state;
60
+ switch (action.type) {
61
+ case ReadWriteActionTypes.REGISTER_MEASURABLE: {
62
+ const { documentKey, elementKey, measurable } = action.payload;
63
+ return {
64
+ ...state,
65
+ measurables: new Map(state.measurables).set(
66
+ documentKey,
67
+ new Map(state.measurables.get(documentKey) ?? []).set(elementKey, measurable)
68
+ )
69
+ };
70
+ }
71
+ case ReadWriteActionTypes.UNREGISTER_MEASURABLE: {
72
+ const { documentKey, elementKey } = action.payload;
73
+ const nextMeasurables = new Map(state.measurables.get(documentKey) ?? []);
74
+ const deleted = nextMeasurables.delete(elementKey);
75
+ return deleted ? { ...state, measurables: new Map(state.measurables).set(documentKey, nextMeasurables) } : state;
76
+ }
77
+ case BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS: {
78
+ const { changedElementBoxModels } = action.payload;
79
+ if (changedElementBoxModels.size === 0)
80
+ return state;
81
+ const nextBoxModels = new Map(state.boxModels);
82
+ changedElementBoxModels.forEach((changedBoxModels, documentKey) => {
83
+ const nextDocumentBoxModels = new Map(nextBoxModels.get(documentKey) ?? []);
84
+ changedBoxModels.forEach((changedBoxModel, elementKey) => {
85
+ if (changedBoxModel == null)
86
+ nextDocumentBoxModels.delete(elementKey);
87
+ else
88
+ nextDocumentBoxModels.set(elementKey, changedBoxModel);
89
+ });
90
+ if (nextDocumentBoxModels.size > 0)
91
+ nextBoxModels.set(documentKey, nextDocumentBoxModels);
92
+ else
93
+ nextBoxModels.delete(documentKey);
94
+ });
95
+ return { ...state, boxModels: nextBoxModels };
96
+ }
97
+ default:
98
+ return state;
99
+ }
100
+ }
101
+ export {
102
+ createBox,
103
+ getBox,
104
+ getBoxModel,
105
+ getBoxModels,
106
+ getInitialState,
107
+ getMeasurables,
108
+ isElementVisible,
109
+ isMeasurable,
110
+ measure,
111
+ parse,
112
+ reducer
113
+ };
114
+ //# sourceMappingURL=box-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/modules/read-write/box-models.ts"],"sourcesContent":["import { type BoxDisplayModel } from '@makeswift/controls'\nimport {\n createBox as createBoxWithoutScroll,\n CreateBoxArgs,\n getBox as getBoxWithoutScroll,\n withScroll,\n} from 'css-box-model'\n\nimport { type Action, type UnknownAction, isKnownAction } from '../../actions'\nimport { ReadWriteActionTypes } from '../../actions/internal/read-write-actions'\nimport { BuilderActionTypes } from '../../builder-api/actions'\n\nexport type { BoxDisplayModel }\n\nexport function parse(rawString: string): number {\n const value = Number(rawString.replace(/px$/, ''))\n\n return Number.isFinite(value) ? value : 0\n}\n\nexport function createBox(boxArgs: CreateBoxArgs & { visible?: boolean }): BoxDisplayModel {\n const box = withScroll(createBoxWithoutScroll(boxArgs))\n return { ...box, visible: boxArgs.visible }\n}\n\nexport function isElementVisible(element: Element): boolean {\n // checkVisibility is widely supported as of March 2024, but we're adding this\n // check as a precaution for browsers where it may not be available.\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/checkVisibility\n if (element.checkVisibility == null) {\n return true\n }\n\n return element.checkVisibility({\n visibilityProperty: true,\n contentVisibilityAuto: true,\n opacityProperty: true,\n })\n}\n\nexport function getBox(element: Element): BoxDisplayModel {\n const visible = isElementVisible(element)\n const boxModel = withScroll(getBoxWithoutScroll(element))\n\n return { ...boxModel, visible }\n}\n\nexport interface BoxModelHandle {\n getBoxModel(): BoxDisplayModel | null\n}\n\nexport type Measurable = Element | BoxModelHandle\n\nexport function isMeasurable(value: unknown): value is Measurable {\n if (value instanceof Element) return true\n\n if (\n typeof value === 'object' &&\n value !== null &&\n 'getBoxModel' in value &&\n typeof (value as { getBoxModel: unknown }).getBoxModel === 'function'\n ) {\n return true\n }\n\n return false\n}\n\nexport function measure(measurable: Measurable): BoxDisplayModel | null {\n if (measurable instanceof Element) return getBox(measurable)\n\n return measurable.getBoxModel()\n}\n\nexport type State = {\n measurables: Map<string, Map<string, Measurable>>\n boxModels: Map<string, Map<string, BoxDisplayModel>>\n}\n\nexport function getInitialState(): State {\n return { measurables: new Map(), boxModels: new Map() }\n}\n\nexport function getMeasurables(state: State): Map<string, Map<string, Measurable>> {\n return state.measurables\n}\n\nexport function getBoxModels(state: State): Map<string, Map<string, BoxDisplayModel>> {\n return state.boxModels\n}\n\nexport function getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxDisplayModel | null {\n return getBoxModels(state).get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction) {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadWriteActionTypes.REGISTER_MEASURABLE: {\n const { documentKey, elementKey, measurable } = action.payload\n\n return {\n ...state,\n measurables: new Map(state.measurables).set(\n documentKey,\n new Map(state.measurables.get(documentKey) ?? []).set(elementKey, measurable),\n ),\n }\n }\n\n case ReadWriteActionTypes.UNREGISTER_MEASURABLE: {\n const { documentKey, elementKey } = action.payload\n const nextMeasurables = new Map(state.measurables.get(documentKey) ?? [])\n\n const deleted = nextMeasurables.delete(elementKey)\n\n return deleted\n ? { ...state, measurables: new Map(state.measurables).set(documentKey, nextMeasurables) }\n : state\n }\n\n case BuilderActionTypes.CHANGE_ELEMENT_BOX_MODELS: {\n const { changedElementBoxModels } = action.payload\n\n if (changedElementBoxModels.size === 0) return state\n\n const nextBoxModels = new Map(state.boxModels)\n\n changedElementBoxModels.forEach((changedBoxModels, documentKey) => {\n const nextDocumentBoxModels = new Map(nextBoxModels.get(documentKey) ?? [])\n\n changedBoxModels.forEach((changedBoxModel, elementKey) => {\n if (changedBoxModel == null) nextDocumentBoxModels.delete(elementKey)\n else nextDocumentBoxModels.set(elementKey, changedBoxModel)\n })\n\n if (nextDocumentBoxModels.size > 0) nextBoxModels.set(documentKey, nextDocumentBoxModels)\n else nextBoxModels.delete(documentKey)\n })\n\n return { ...state, boxModels: nextBoxModels }\n }\n\n default:\n return state\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,36 @@
1
+ import { isKnownAction } from "../../actions";
2
+ import { ReadOnlyActionTypes } from "../../actions/internal/read-only-actions";
3
+ function getElementImperativeHandles(state) {
4
+ return state;
5
+ }
6
+ function getInitialState() {
7
+ return /* @__PURE__ */ new Map();
8
+ }
9
+ function reducer(state = getInitialState(), action) {
10
+ if (!isKnownAction(action))
11
+ return state;
12
+ switch (action.type) {
13
+ case ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE:
14
+ return new Map(state).set(
15
+ action.payload.documentKey,
16
+ new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(
17
+ action.payload.elementKey,
18
+ action.payload.componentHandle
19
+ )
20
+ );
21
+ case ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE: {
22
+ const byElementKey = new Map(state.get(action.payload.documentKey) ?? []);
23
+ const deleted = byElementKey.delete(action.payload.elementKey);
24
+ if (!deleted)
25
+ return state;
26
+ return new Map(state).set(action.payload.documentKey, byElementKey);
27
+ }
28
+ default:
29
+ return state;
30
+ }
31
+ }
32
+ export {
33
+ getElementImperativeHandles,
34
+ reducer
35
+ };
36
+ //# sourceMappingURL=element-imperative-handles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/modules/read-write/element-imperative-handles.ts"],"sourcesContent":["import { ElementImperativeHandle } from '../../../runtimes/react/element-imperative-handle'\nimport { type Action, type UnknownAction, isKnownAction } from '../../actions'\nimport { ReadOnlyActionTypes } from '../../actions/internal/read-only-actions'\n\nexport type State = Map<string, Map<string, ElementImperativeHandle>>\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return state\n}\n\nfunction getInitialState(): State {\n return new Map()\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.REGISTER_COMPONENT_HANDLE:\n return new Map(state).set(\n action.payload.documentKey,\n new Map(new Map(state.get(action.payload.documentKey) ?? [])).set(\n action.payload.elementKey,\n action.payload.componentHandle,\n ),\n )\n\n case ReadOnlyActionTypes.UNREGISTER_COMPONENT_HANDLE: {\n const byElementKey = new Map(state.get(action.payload.documentKey) ?? [])\n\n const deleted = byElementKey.delete(action.payload.elementKey)\n\n if (!deleted) return state\n\n return new Map(state).set(action.payload.documentKey, byElementKey)\n }\n\n default:\n return state\n }\n}\n"],"mappings":"AACA,SAA0C,qBAAqB;AAC/D,SAAS,2BAA2B;AAI7B,SAAS,4BACd,OACmD;AACnD,SAAO;AACT;AAEA,SAAS,kBAAyB;AAChC,SAAO,oBAAI,IAAI;AACjB;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,oBAAoB;AACvB,aAAO,IAAI,IAAI,KAAK,EAAE;AAAA,QACpB,OAAO,QAAQ;AAAA,QACf,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,OAAO,QAAQ,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE;AAAA,UAC5D,OAAO,QAAQ;AAAA,UACf,OAAO,QAAQ;AAAA,QACjB;AAAA,MACF;AAAA,IAEF,KAAK,oBAAoB,6BAA6B;AACpD,YAAM,eAAe,IAAI,IAAI,MAAM,IAAI,OAAO,QAAQ,WAAW,KAAK,CAAC,CAAC;AAExE,YAAM,UAAU,aAAa,OAAO,OAAO,QAAQ,UAAU;AAE7D,UAAI,CAAC;AAAS,eAAO;AAErB,aAAO,IAAI,IAAI,KAAK,EAAE,IAAI,OAAO,QAAQ,aAAa,YAAY;AAAA,IACpE;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -0,0 +1,23 @@
1
+ import { isKnownAction } from "../../actions";
2
+ import { HostActionTypes } from "../../host-api";
3
+ function getInitialState() {
4
+ return { pointer: null };
5
+ }
6
+ function getPointer(state) {
7
+ return state.pointer;
8
+ }
9
+ function reducer(state = getInitialState(), action) {
10
+ if (!isKnownAction(action))
11
+ return state;
12
+ switch (action.type) {
13
+ case HostActionTypes.BUILDER_POINTER_MOVE:
14
+ return { ...state, pointer: action.payload.pointer };
15
+ default:
16
+ return state;
17
+ }
18
+ }
19
+ export {
20
+ getPointer,
21
+ reducer
22
+ };
23
+ //# sourceMappingURL=pointer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/modules/read-write/pointer.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../../actions'\nimport { HostActionTypes } from '../../host-api'\n\nexport type Point = { x: number; y: number }\n\nexport type State = {\n pointer: Point | null\n}\n\nfunction getInitialState(): State {\n return { pointer: null }\n}\n\nexport function getPointer(state: State): Point | null {\n return state.pointer\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case HostActionTypes.BUILDER_POINTER_MOVE:\n return { ...state, pointer: action.payload.pointer }\n\n default:\n return state\n }\n}\n"],"mappings":"AAAA,SAA0C,qBAAqB;AAC/D,SAAS,uBAAuB;AAQhC,SAAS,kBAAyB;AAChC,SAAO,EAAE,SAAS,KAAK;AACzB;AAEO,SAAS,WAAW,OAA4B;AACrD,SAAO,MAAM;AACf;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,gBAAgB;AACnB,aAAO,EAAE,GAAG,OAAO,SAAS,OAAO,QAAQ,QAAQ;AAAA,IAErD;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -0,0 +1,60 @@
1
+ import { removeIn, setIn } from "immutable";
2
+ import * as ReadOnlyDocuments from "../read-only-documents";
3
+ import { ActionTypes, isKnownAction } from "../../actions";
4
+ import { isElementReference } from "../read-only-documents";
5
+ function apply(data, operation) {
6
+ let applied = data;
7
+ operation.forEach((component) => {
8
+ if (component.ld != null)
9
+ applied = removeIn(applied, component.p);
10
+ if (component.od != null)
11
+ applied = removeIn(applied, component.p);
12
+ if (component.li != null)
13
+ applied = setIn(applied, component.p, component.li);
14
+ if (component.oi != null)
15
+ applied = setIn(applied, component.p, component.oi);
16
+ });
17
+ return applied;
18
+ }
19
+ function getInitialState({
20
+ documents = []
21
+ } = {}) {
22
+ return ReadOnlyDocuments.getInitialState({ documents });
23
+ }
24
+ function getReadOnlyDocumentsStateSlice(state) {
25
+ return state;
26
+ }
27
+ function getDocument(state, documentKey) {
28
+ return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey);
29
+ }
30
+ function getDocuments(state) {
31
+ return ReadOnlyDocuments.getDocuments(getReadOnlyDocumentsStateSlice(state));
32
+ }
33
+ function reducer(state = getInitialState(), action) {
34
+ const nextState = ReadOnlyDocuments.reducer(state, action);
35
+ if (!isKnownAction(action))
36
+ return state;
37
+ switch (action.type) {
38
+ case ActionTypes.CHANGE_DOCUMENT: {
39
+ const document = getDocument(nextState, action.payload.documentKey);
40
+ if (document == null)
41
+ return nextState;
42
+ const currentRootElement = ReadOnlyDocuments.getRootElement(document);
43
+ const nextRootElement = apply(currentRootElement, action.payload.operation);
44
+ return currentRootElement === nextRootElement ? nextState : new Map(nextState).set(action.payload.documentKey, {
45
+ ...document,
46
+ rootElement: nextRootElement
47
+ });
48
+ }
49
+ default:
50
+ return nextState;
51
+ }
52
+ }
53
+ export {
54
+ getDocument,
55
+ getDocuments,
56
+ getInitialState,
57
+ isElementReference,
58
+ reducer
59
+ };
60
+ //# sourceMappingURL=read-write-documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/state/modules/read-write/read-write-documents.ts"],"sourcesContent":["import { type Operation } from 'ot-json0'\nimport { removeIn, setIn } from 'immutable'\n\nimport * as ReadOnlyDocuments from '../read-only-documents'\nimport { type Action, type UnknownAction, ActionTypes, isKnownAction } from '../../actions'\n\nexport type { Document, Element, ElementData, ElementReference } from '../read-only-documents'\nexport { isElementReference } from '../read-only-documents'\nexport type { Operation }\n\nfunction apply(data: ReadOnlyDocuments.Element, operation: Operation): ReadOnlyDocuments.Element {\n let applied = data\n\n operation.forEach(component => {\n // @ts-expect-error: `ld` isn't in all possible values of `component`\n if (component.ld != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `od` isn't in all possible values of `component`\n if (component.od != null) applied = removeIn(applied, component.p)\n\n // @ts-expect-error: `li` isn't in all possible values of `component`\n if (component.li != null) applied = setIn(applied, component.p, component.li)\n\n // @ts-expect-error: `oi` isn't in all possible values of `component`\n if (component.oi != null) applied = setIn(applied, component.p, component.oi)\n })\n\n return applied\n}\n\nexport type State = ReadOnlyDocuments.State\n\nexport function getInitialState({\n documents = [],\n}: { documents?: ReadOnlyDocuments.Document[] } = {}): State {\n return ReadOnlyDocuments.getInitialState({ documents })\n}\n\nfunction getReadOnlyDocumentsStateSlice(state: State): ReadOnlyDocuments.State {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): ReadOnlyDocuments.Document | null {\n return ReadOnlyDocuments.getDocument(getReadOnlyDocumentsStateSlice(state), documentKey)\n}\n\nexport function getDocuments(state: State): ReadOnlyDocuments.State {\n return ReadOnlyDocuments.getDocuments(getReadOnlyDocumentsStateSlice(state))\n}\n\nexport function reducer(state: State = getInitialState(), action: Action | UnknownAction): State {\n const nextState = ReadOnlyDocuments.reducer(state, action)\n\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ActionTypes.CHANGE_DOCUMENT: {\n const document = getDocument(nextState, action.payload.documentKey)\n if (document == null) return nextState\n\n const currentRootElement = ReadOnlyDocuments.getRootElement(document)\n\n const nextRootElement = apply(currentRootElement, action.payload.operation)\n\n return currentRootElement === nextRootElement\n ? nextState\n : new Map(nextState).set(action.payload.documentKey, {\n ...document,\n rootElement: nextRootElement,\n })\n }\n\n default:\n return nextState\n }\n}\n"],"mappings":"AACA,SAAS,UAAU,aAAa;AAEhC,YAAY,uBAAuB;AACnC,SAA0C,aAAa,qBAAqB;AAG5E,SAAS,0BAA0B;AAGnC,SAAS,MAAM,MAAiC,WAAiD;AAC/F,MAAI,UAAU;AAEd,YAAU,QAAQ,eAAa;AAE7B,QAAI,UAAU,MAAM;AAAM,gBAAU,SAAS,SAAS,UAAU,CAAC;AAGjE,QAAI,UAAU,MAAM;AAAM,gBAAU,SAAS,SAAS,UAAU,CAAC;AAGjE,QAAI,UAAU,MAAM;AAAM,gBAAU,MAAM,SAAS,UAAU,GAAG,UAAU,EAAE;AAG5E,QAAI,UAAU,MAAM;AAAM,gBAAU,MAAM,SAAS,UAAU,GAAG,UAAU,EAAE;AAAA,EAC9E,CAAC;AAED,SAAO;AACT;AAIO,SAAS,gBAAgB;AAAA,EAC9B,YAAY,CAAC;AACf,IAAkD,CAAC,GAAU;AAC3D,SAAO,kBAAkB,gBAAgB,EAAE,UAAU,CAAC;AACxD;AAEA,SAAS,+BAA+B,OAAuC;AAC7E,SAAO;AACT;AAEO,SAAS,YAAY,OAAc,aAAwD;AAChG,SAAO,kBAAkB,YAAY,+BAA+B,KAAK,GAAG,WAAW;AACzF;AAEO,SAAS,aAAa,OAAuC;AAClE,SAAO,kBAAkB,aAAa,+BAA+B,KAAK,CAAC;AAC7E;AAEO,SAAS,QAAQ,QAAe,gBAAgB,GAAG,QAAuC;AAC/F,QAAM,YAAY,kBAAkB,QAAQ,OAAO,MAAM;AAEzD,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,YAAY,iBAAiB;AAChC,YAAM,WAAW,YAAY,WAAW,OAAO,QAAQ,WAAW;AAClE,UAAI,YAAY;AAAM,eAAO;AAE7B,YAAM,qBAAqB,kBAAkB,eAAe,QAAQ;AAEpE,YAAM,kBAAkB,MAAM,oBAAoB,OAAO,QAAQ,SAAS;AAE1E,aAAO,uBAAuB,kBAC1B,YACA,IAAI,IAAI,SAAS,EAAE,IAAI,OAAO,QAAQ,aAAa;AAAA,QACjD,GAAG;AAAA,QACH,aAAa;AAAA,MACf,CAAC;AAAA,IACP;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -0,0 +1,21 @@
1
+ import { isKnownAction } from "../actions";
2
+ function getInitialState(siteVersion = null) {
3
+ return siteVersion;
4
+ }
5
+ function getSiteVersion(state) {
6
+ return state;
7
+ }
8
+ function reducer(state = getInitialState(), action) {
9
+ if (!isKnownAction(action))
10
+ return state;
11
+ switch (action.type) {
12
+ default:
13
+ return state;
14
+ }
15
+ }
16
+ export {
17
+ getInitialState,
18
+ getSiteVersion,
19
+ reducer
20
+ };
21
+ //# sourceMappingURL=site-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/modules/site-version.ts"],"sourcesContent":["import { type SiteVersion } from '../../api/site-version'\nimport { type Action, type UnknownAction, isKnownAction } from '../actions'\n\nexport type State = SiteVersion | null\n\nexport function getInitialState(siteVersion: SiteVersion | null = null): State {\n return siteVersion\n}\n\nexport function getSiteVersion(state: State): SiteVersion | null {\n return state\n}\n\nexport function reducer(state = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n default:\n return state\n }\n}\n"],"mappings":"AACA,SAA0C,qBAAqB;AAIxD,SAAS,gBAAgB,cAAkC,MAAa;AAC7E,SAAO;AACT;AAEO,SAAS,eAAe,OAAkC;AAC/D,SAAO;AACT;AAEO,SAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAuC;AACxF,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -0,0 +1,37 @@
1
+ import {
2
+ createReplacementContext,
3
+ replaceResourceIfNeeded,
4
+ ContextResource
5
+ } from "@makeswift/controls";
6
+ import { copy as copyFromControl } from "../../controls/control";
7
+ import * as Documents from "../modules/read-only-documents";
8
+ import { getComponentPropControllerDescriptors } from "../read-only-state";
9
+ function copyElementTree(state, elementTree, replacementContext) {
10
+ function copyElementTreeNode(state2, replacementContext2) {
11
+ return function(node) {
12
+ const context = {
13
+ replacementContext: replacementContext2,
14
+ copyElement: copyElementTreeNode(state2, replacementContext2)
15
+ };
16
+ if (Documents.isElementReference(node)) {
17
+ return {
18
+ ...node,
19
+ value: replaceResourceIfNeeded(ContextResource.GlobalElement, node.value, context)
20
+ };
21
+ }
22
+ const descriptors = getComponentPropControllerDescriptors(state2, node.type);
23
+ if (descriptors == null)
24
+ return node;
25
+ for (const [propKey, descriptor] of Object.entries(descriptors)) {
26
+ node.props[propKey] = copyFromControl(descriptor, node.props[propKey], context);
27
+ }
28
+ return node;
29
+ };
30
+ }
31
+ const copy = JSON.parse(JSON.stringify(elementTree));
32
+ return copyElementTreeNode(state, createReplacementContext(replacementContext))(copy);
33
+ }
34
+ export {
35
+ copyElementTree
36
+ };
37
+ //# sourceMappingURL=copy-element-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/ops/copy-element-tree.ts"],"sourcesContent":["import {\n createReplacementContext,\n type SerializableReplacementContext,\n type ReplacementContext,\n CopyContext,\n replaceResourceIfNeeded,\n ContextResource,\n} from '@makeswift/controls'\n\nimport { copy as copyFromControl } from '../../controls/control'\n\nimport * as Documents from '../modules/read-only-documents'\n\nimport { type State, getComponentPropControllerDescriptors } from '../read-only-state'\n\nexport function copyElementTree(\n state: State,\n elementTree: Documents.ElementData,\n replacementContext: SerializableReplacementContext,\n) {\n /*\n * This is structured a bit weird.\n *\n * This is done so that we can pass a callable function into some of the copy functions\n * themselves, to enable mutual recursion.\n *\n * Consider the slot control. It has to iterate through its elements, and for each of them,\n * call some version of the below function.\n *\n * That is how the recursing through the tree happens.\n */\n function copyElementTreeNode(state: State, replacementContext: ReplacementContext) {\n return function (node: Documents.Element) {\n const context: CopyContext = {\n replacementContext,\n copyElement: copyElementTreeNode(state, replacementContext),\n }\n\n if (Documents.isElementReference(node)) {\n return {\n ...node,\n value: replaceResourceIfNeeded(ContextResource.GlobalElement, node.value, context),\n }\n }\n\n const descriptors = getComponentPropControllerDescriptors(state, node.type)\n\n if (descriptors == null) return node\n\n for (const [propKey, descriptor] of Object.entries(descriptors)) {\n node.props[propKey] = copyFromControl(descriptor, node.props[propKey], context)\n }\n\n return node\n }\n }\n\n const copy = JSON.parse(JSON.stringify(elementTree)) as Documents.ElementData\n\n return copyElementTreeNode(state, createReplacementContext(replacementContext))(copy)\n}\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EAIA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,QAAQ,uBAAuB;AAExC,YAAY,eAAe;AAE3B,SAAqB,6CAA6C;AAE3D,SAAS,gBACd,OACA,aACA,oBACA;AAYA,WAAS,oBAAoBA,QAAcC,qBAAwC;AACjF,WAAO,SAAU,MAAyB;AACxC,YAAM,UAAuB;AAAA,QAC3B,oBAAAA;AAAA,QACA,aAAa,oBAAoBD,QAAOC,mBAAkB;AAAA,MAC5D;AAEA,UAAI,UAAU,mBAAmB,IAAI,GAAG;AACtC,eAAO;AAAA,UACL,GAAG;AAAA,UACH,OAAO,wBAAwB,gBAAgB,eAAe,KAAK,OAAO,OAAO;AAAA,QACnF;AAAA,MACF;AAEA,YAAM,cAAc,sCAAsCD,QAAO,KAAK,IAAI;AAE1E,UAAI,eAAe;AAAM,eAAO;AAEhC,iBAAW,CAAC,SAAS,UAAU,KAAK,OAAO,QAAQ,WAAW,GAAG;AAC/D,aAAK,MAAM,OAAO,IAAI,gBAAgB,YAAY,KAAK,MAAM,OAAO,GAAG,OAAO;AAAA,MAChF;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,OAAO,KAAK,MAAM,KAAK,UAAU,WAAW,CAAC;AAEnD,SAAO,oBAAoB,OAAO,yBAAyB,kBAAkB,CAAC,EAAE,IAAI;AACtF;","names":["state","replacementContext"]}
@@ -0,0 +1,39 @@
1
+ import { merge } from "../../controls/control";
2
+ import * as Documents from "../modules/read-only-documents";
3
+ import { getPropControllerDescriptors } from "../read-only-state";
4
+ function mergeElement(state, baseElement, overrideElement) {
5
+ if (baseElement.type !== overrideElement.type || baseElement.key !== overrideElement.key) {
6
+ throw new Error(`Can't merge elements of different types or keys`);
7
+ }
8
+ if (Documents.isElementReference(overrideElement))
9
+ return overrideElement;
10
+ if (Documents.isElementReference(baseElement))
11
+ return baseElement;
12
+ const elementDescriptors = getPropControllerDescriptors(state);
13
+ const descriptors = elementDescriptors.get(baseElement.type);
14
+ if (descriptors == null) {
15
+ throw new Error(
16
+ `Can't merge element of type "${baseElement.type}" because it has no descriptors`
17
+ );
18
+ }
19
+ const mergedProps = {};
20
+ for (const propName of Object.keys(descriptors)) {
21
+ const descriptor = descriptors[propName];
22
+ const context = {
23
+ mergeElement(base, override) {
24
+ return mergeElement(state, base, override);
25
+ }
26
+ };
27
+ mergedProps[propName] = merge(
28
+ descriptor,
29
+ baseElement.props[propName],
30
+ overrideElement.props[propName],
31
+ context
32
+ );
33
+ }
34
+ return { ...baseElement, props: mergedProps };
35
+ }
36
+ export {
37
+ mergeElement
38
+ };
39
+ //# sourceMappingURL=merge-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/ops/merge-element.ts"],"sourcesContent":["import { type MergeContext } from '@makeswift/controls'\n\nimport { merge } from '../../controls/control'\n\nimport * as Documents from '../modules/read-only-documents'\n\nimport { type State, getPropControllerDescriptors } from '../read-only-state'\n\nexport function mergeElement(\n state: State,\n baseElement: Documents.Element,\n overrideElement: Documents.Element,\n): Documents.Element {\n if (baseElement.type !== overrideElement.type || baseElement.key !== overrideElement.key) {\n throw new Error(`Can't merge elements of different types or keys`)\n }\n\n if (Documents.isElementReference(overrideElement)) return overrideElement\n\n if (Documents.isElementReference(baseElement)) return baseElement\n\n const elementDescriptors = getPropControllerDescriptors(state)\n const descriptors = elementDescriptors.get(baseElement.type)\n\n if (descriptors == null) {\n throw new Error(\n `Can't merge element of type \"${baseElement.type}\" because it has no descriptors`,\n )\n }\n\n const mergedProps = {} as Record<string, Documents.Data>\n\n for (const propName of Object.keys(descriptors)) {\n const descriptor = descriptors[propName]\n const context: MergeContext = {\n mergeElement(base, override) {\n return mergeElement(state, base, override)\n },\n }\n\n mergedProps[propName] = merge(\n descriptor,\n baseElement.props[propName],\n overrideElement.props[propName],\n context,\n )\n }\n\n return { ...baseElement, props: mergedProps }\n}\n"],"mappings":"AAEA,SAAS,aAAa;AAEtB,YAAY,eAAe;AAE3B,SAAqB,oCAAoC;AAElD,SAAS,aACd,OACA,aACA,iBACmB;AACnB,MAAI,YAAY,SAAS,gBAAgB,QAAQ,YAAY,QAAQ,gBAAgB,KAAK;AACxF,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACnE;AAEA,MAAI,UAAU,mBAAmB,eAAe;AAAG,WAAO;AAE1D,MAAI,UAAU,mBAAmB,WAAW;AAAG,WAAO;AAEtD,QAAM,qBAAqB,6BAA6B,KAAK;AAC7D,QAAM,cAAc,mBAAmB,IAAI,YAAY,IAAI;AAE3D,MAAI,eAAe,MAAM;AACvB,UAAM,IAAI;AAAA,MACR,gCAAgC,YAAY,IAAI;AAAA,IAClD;AAAA,EACF;AAEA,QAAM,cAAc,CAAC;AAErB,aAAW,YAAY,OAAO,KAAK,WAAW,GAAG;AAC/C,UAAM,aAAa,YAAY,QAAQ;AACvC,UAAM,UAAwB;AAAA,MAC5B,aAAa,MAAM,UAAU;AAC3B,eAAO,aAAa,OAAO,MAAM,QAAQ;AAAA,MAC3C;AAAA,IACF;AAEA,gBAAY,QAAQ,IAAI;AAAA,MACtB;AAAA,MACA,YAAY,MAAM,QAAQ;AAAA,MAC1B,gBAAgB,MAAM,QAAQ;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,aAAa,OAAO,YAAY;AAC9C;","names":[]}
@@ -0,0 +1,176 @@
1
+ import { createSelector } from "reselect";
2
+ import * as SiteVersion from "./modules/site-version";
3
+ import * as Locale from "./modules/locale";
4
+ import * as Documents from "./modules/read-only-documents";
5
+ import * as ElementTrees from "./modules/element-trees";
6
+ import * as ReactComponents from "./modules/react-components";
7
+ import * as ComponentsMeta from "./modules/components-meta";
8
+ import * as PropControllers from "./modules/prop-controllers";
9
+ import * as PropControllerHandles from "./modules/prop-controller-handles";
10
+ import * as IsInBuilder from "./modules/is-in-builder";
11
+ import * as IsReadOnly from "./modules/is-read-only";
12
+ import * as BuilderEditMode from "./modules/builder-edit-mode";
13
+ import * as Breakpoints from "./modules/breakpoints";
14
+ import {
15
+ createBaseDocument,
16
+ createDocumentReference,
17
+ getRootElement,
18
+ isElementReference
19
+ } from "./modules/read-only-documents";
20
+ const reducers = {
21
+ siteVersion: SiteVersion.reducer,
22
+ isReadOnly: IsReadOnly.reducer,
23
+ locale: Locale.reducer,
24
+ documents: Documents.reducer,
25
+ elementTrees: ElementTrees.reducer,
26
+ reactComponents: ReactComponents.reducer,
27
+ componentsMeta: ComponentsMeta.reducer,
28
+ propControllers: PropControllers.reducer,
29
+ propControllerHandles: PropControllerHandles.reducer,
30
+ isInBuilder: IsInBuilder.reducer,
31
+ builderEditMode: BuilderEditMode.reducer,
32
+ breakpoints: Breakpoints.reducer
33
+ };
34
+ function getDocumentsStateSlice(state) {
35
+ return state.documents;
36
+ }
37
+ function getDocument(state, documentKey) {
38
+ return Documents.getDocument(getDocumentsStateSlice(state), documentKey);
39
+ }
40
+ function getElementTreesSlice(state) {
41
+ return state.elementTrees;
42
+ }
43
+ function getElements(state, documentKey) {
44
+ return ElementTrees.getElements(getElementTreesSlice(state), documentKey);
45
+ }
46
+ function getElementIds(state, documentKey) {
47
+ return ElementTrees.getElementIds(getElementTreesSlice(state), documentKey);
48
+ }
49
+ function getReactComponentsStateSlice(state) {
50
+ return state.reactComponents;
51
+ }
52
+ function getReactComponent(state, type) {
53
+ return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type);
54
+ }
55
+ function getComponentsMetaStateSlice(state) {
56
+ return state.componentsMeta;
57
+ }
58
+ function getComponentsMeta(state) {
59
+ return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state));
60
+ }
61
+ function getComponentMeta(state, type) {
62
+ return ComponentsMeta.getComponentMeta(getComponentsMetaStateSlice(state), type);
63
+ }
64
+ function getPropControllersStateSlice(state) {
65
+ return state.propControllers;
66
+ }
67
+ function getPropControllerDescriptors(state) {
68
+ return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state));
69
+ }
70
+ function getComponentPropControllerDescriptors(state, componentType) {
71
+ return PropControllers.getComponentPropControllerDescriptors(
72
+ getPropControllersStateSlice(state),
73
+ componentType
74
+ );
75
+ }
76
+ function getPropControllerHandlesStateSlice(state) {
77
+ return state.propControllerHandles;
78
+ }
79
+ function getPropControllers(state, { documentKey, elementKey }) {
80
+ return PropControllerHandles.getPropControllers(
81
+ getPropControllerHandlesStateSlice(state),
82
+ documentKey,
83
+ elementKey
84
+ );
85
+ }
86
+ function getPropControllersHandle(state, { documentKey, elementKey }) {
87
+ return PropControllerHandles.getPropControllersHandle(
88
+ getPropControllerHandlesStateSlice(state),
89
+ documentKey,
90
+ elementKey
91
+ );
92
+ }
93
+ function getPropController(state, {
94
+ documentKey,
95
+ elementKey,
96
+ propName
97
+ }) {
98
+ return PropControllerHandles.getPropController(
99
+ getPropControllerHandlesStateSlice(state),
100
+ documentKey,
101
+ elementKey,
102
+ propName
103
+ );
104
+ }
105
+ const getDocumentKeysSortedByDepth = createSelector(
106
+ [getDocumentsStateSlice, getElementTreesSlice],
107
+ (documents, elementTrees) => {
108
+ return [...documents.keys()].sort((a, b) => elementTrees.get(a)?.elements.has(b) ? -1 : 1);
109
+ }
110
+ );
111
+ function getElement(state, documentKey, elementKey) {
112
+ return ElementTrees.getElement(getElementTreesSlice(state), documentKey, elementKey);
113
+ }
114
+ function getElementId(state, documentKey, elementKey) {
115
+ return ElementTrees.getElementId(getElementTreesSlice(state), documentKey, elementKey);
116
+ }
117
+ function getElementPropControllerDescriptors(state, documentKey, elementKey) {
118
+ const element = getElement(state, documentKey, elementKey);
119
+ if (element == null || Documents.isElementReference(element))
120
+ return null;
121
+ return getComponentPropControllerDescriptors(state, element.type);
122
+ }
123
+ function getIsInBuilder(state) {
124
+ return state.isInBuilder;
125
+ }
126
+ function getIsReadOnly(state) {
127
+ return state.isReadOnly;
128
+ }
129
+ function getBuilderEditMode(state) {
130
+ return state.builderEditMode;
131
+ }
132
+ function getBreakpointsStateSlice(state) {
133
+ return state.breakpoints;
134
+ }
135
+ function getBreakpoints(state) {
136
+ return getBreakpointsStateSlice(state).breakpoints;
137
+ }
138
+ function getBaseBreakpoint(state) {
139
+ return getBreakpointsStateSlice(state).baseBreakpoint;
140
+ }
141
+ function getClientBreakpoint(state) {
142
+ return getBreakpointsStateSlice(state).clientBreakpoint;
143
+ }
144
+ function getLocale(state) {
145
+ return state.locale;
146
+ }
147
+ export {
148
+ createBaseDocument,
149
+ createDocumentReference,
150
+ getBaseBreakpoint,
151
+ getBreakpoints,
152
+ getBuilderEditMode,
153
+ getClientBreakpoint,
154
+ getComponentMeta,
155
+ getComponentPropControllerDescriptors,
156
+ getComponentsMeta,
157
+ getDocument,
158
+ getDocumentKeysSortedByDepth,
159
+ getElement,
160
+ getElementId,
161
+ getElementIds,
162
+ getElementPropControllerDescriptors,
163
+ getElements,
164
+ getIsInBuilder,
165
+ getIsReadOnly,
166
+ getLocale,
167
+ getPropController,
168
+ getPropControllerDescriptors,
169
+ getPropControllers,
170
+ getPropControllersHandle,
171
+ getReactComponent,
172
+ getRootElement,
173
+ isElementReference,
174
+ reducers
175
+ };
176
+ //# sourceMappingURL=read-only-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/state/read-only-state.ts"],"sourcesContent":["import { type ThunkDispatch } from '@reduxjs/toolkit'\n\nimport { createSelector } from 'reselect'\n\nimport * as SiteVersion from './modules/site-version'\nimport * as Locale from './modules/locale'\nimport * as Documents from './modules/read-only-documents'\nimport * as ElementTrees from './modules/element-trees'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsReadOnly from './modules/is-read-only'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Breakpoints from './modules/breakpoints'\n\nimport { type Action } from './actions'\n\nexport type {\n Data,\n Document,\n DocumentReference,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\n\nexport {\n createBaseDocument,\n createDocumentReference,\n getRootElement,\n isElementReference,\n} from './modules/read-only-documents'\n\nexport type { ComponentType } from './modules/react-components'\nexport type { ComponentMeta } from './modules/components-meta'\n\nexport const reducers = {\n siteVersion: SiteVersion.reducer,\n isReadOnly: IsReadOnly.reducer,\n locale: Locale.reducer,\n documents: Documents.reducer,\n elementTrees: ElementTrees.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n builderEditMode: BuilderEditMode.reducer,\n breakpoints: Breakpoints.reducer,\n}\n\nexport type State = {\n siteVersion: SiteVersion.State\n isReadOnly: IsReadOnly.State\n locale: Locale.State\n documents: Documents.State\n elementTrees: ElementTrees.State\n reactComponents: ReactComponents.State\n componentsMeta: ComponentsMeta.State\n propControllers: PropControllers.State\n propControllerHandles: PropControllerHandles.State\n isInBuilder: IsInBuilder.State\n builderEditMode: BuilderEditMode.State\n breakpoints: Breakpoints.State\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getElementTreesSlice(state: State): ElementTrees.State {\n return state.elementTrees\n}\n\nexport function getElements(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elements'] {\n return ElementTrees.getElements(getElementTreesSlice(state), documentKey)\n}\n\nexport function getElementIds(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elementIds'] {\n return ElementTrees.getElementIds(getElementTreesSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nexport function getComponentMeta(state: State, type: string): ComponentsMeta.ComponentMeta | null {\n return ComponentsMeta.getComponentMeta(getComponentsMetaStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nexport function getPropControllerDescriptors(state: State): PropControllers.State {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): PropControllers.DescriptorsByProp | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nexport function getPropControllers(\n state: State,\n { documentKey, elementKey }: { documentKey: string; elementKey: string },\n) {\n return PropControllerHandles.getPropControllers(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nexport function getPropControllersHandle(\n state: State,\n { documentKey, elementKey }: { documentKey: string; elementKey: string },\n) {\n return PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nexport function getPropController(\n state: State,\n {\n documentKey,\n elementKey,\n propName,\n }: { documentKey: string; elementKey: string; propName: string },\n) {\n return PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n propName,\n )\n}\n\n/**\n * Returns all document keys sorted by depth, i.e., parent documents come before child documents.\n */\nexport const getDocumentKeysSortedByDepth: (state: State) => string[] = createSelector(\n [getDocumentsStateSlice, getElementTreesSlice],\n (documents, elementTrees) => {\n return [...documents.keys()].sort((a, b) => (elementTrees.get(a)?.elements.has(b) ? -1 : 1))\n },\n)\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return ElementTrees.getElement(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n return ElementTrees.getElementId(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport function getIsReadOnly(state: State): boolean {\n return state.isReadOnly\n}\n\nexport function getBuilderEditMode(state: State): BuilderEditMode.State {\n return state.builderEditMode\n}\n\nfunction getBreakpointsStateSlice(state: State): Breakpoints.State {\n return state.breakpoints\n}\n\nexport function getBreakpoints(state: State): Breakpoints.Breakpoints {\n return getBreakpointsStateSlice(state).breakpoints\n}\n\nexport function getBaseBreakpoint(state: State): Breakpoints.BreakpointId {\n return getBreakpointsStateSlice(state).baseBreakpoint\n}\n\nexport function getClientBreakpoint(state: State): Breakpoints.BreakpointId {\n return getBreakpointsStateSlice(state).clientBreakpoint\n}\n\nexport function getLocale(state: State): string | null {\n return state.locale\n}\n"],"mappings":"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","names":[]}