@makeswift/runtime 0.25.0-canary.9 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/dist/cjs/api/react.js +10 -14
  2. package/dist/cjs/api/react.js.map +1 -1
  3. package/dist/cjs/api/site-version/index.js +103 -0
  4. package/dist/cjs/api/site-version/index.js.map +1 -0
  5. package/dist/cjs/api-handler/handlers/manifest.js +3 -4
  6. package/dist/cjs/api-handler/handlers/manifest.js.map +1 -1
  7. package/dist/cjs/api-handler/handlers/redirect-live.js +52 -0
  8. package/dist/cjs/api-handler/handlers/redirect-live.js.map +1 -0
  9. package/dist/cjs/api-handler/index.js +6 -5
  10. package/dist/cjs/api-handler/index.js.map +1 -1
  11. package/dist/cjs/api-handler/node-request-response.js +99 -0
  12. package/dist/cjs/api-handler/node-request-response.js.map +1 -0
  13. package/dist/cjs/{next/preview-mode.js → api-handler/preview.js} +12 -18
  14. package/dist/cjs/api-handler/preview.js.map +1 -0
  15. package/dist/cjs/api-handler/request-response.js +9 -0
  16. package/dist/cjs/api-handler/request-response.js.map +1 -1
  17. package/dist/cjs/client/index.js +67 -59
  18. package/dist/cjs/client/index.js.map +1 -1
  19. package/dist/cjs/components/builtin/Box/animations.js.map +1 -1
  20. package/dist/cjs/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -1
  21. package/dist/cjs/components/builtin/Root/Root.js +4 -4
  22. package/dist/cjs/components/builtin/Root/Root.js.map +1 -1
  23. package/dist/cjs/components/builtin/Video/Video.js +3 -13
  24. package/dist/cjs/components/builtin/Video/Video.js.map +1 -1
  25. package/dist/cjs/components/hooks/useMediaQuery.js +1 -2
  26. package/dist/cjs/components/hooks/useMediaQuery.js.map +1 -1
  27. package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +3 -13
  28. package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
  29. package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
  30. package/dist/cjs/components/shared/Link/index.js +15 -40
  31. package/dist/cjs/components/shared/Link/index.js.map +1 -1
  32. package/dist/cjs/components/shared/react-player.js +41 -0
  33. package/dist/cjs/components/shared/react-player.js.map +1 -0
  34. package/dist/cjs/components/utils/responsive-style.js.map +1 -1
  35. package/dist/cjs/css/border-radius.js.map +1 -1
  36. package/dist/cjs/css/border.js.map +1 -1
  37. package/dist/cjs/css/margin.js.map +1 -1
  38. package/dist/cjs/css/padding.js.map +1 -1
  39. package/dist/cjs/next/api-handler/config/app-router.js +12 -10
  40. package/dist/cjs/next/api-handler/config/app-router.js.map +1 -1
  41. package/dist/cjs/next/api-handler/config/pages-router.js +9 -69
  42. package/dist/cjs/next/api-handler/config/pages-router.js.map +1 -1
  43. package/dist/cjs/next/api-handler/handlers/{redirect-draft.js → app-router-redirect-preview.js} +30 -26
  44. package/dist/cjs/next/api-handler/handlers/app-router-redirect-preview.js.map +1 -0
  45. package/dist/cjs/next/api-handler/handlers/{redirect-preview.js → pages-router-redirect-preview.js} +29 -22
  46. package/dist/cjs/next/api-handler/handlers/pages-router-redirect-preview.js.map +1 -0
  47. package/dist/cjs/next/api-handler/index.js +4 -3
  48. package/dist/cjs/next/api-handler/index.js.map +1 -1
  49. package/dist/cjs/next/api-handler/{draft.js → preview.js} +13 -11
  50. package/dist/cjs/next/api-handler/preview.js.map +1 -0
  51. package/dist/cjs/next/{draft-mode/index.js → app-router-site-version.js} +11 -27
  52. package/dist/cjs/next/app-router-site-version.js.map +1 -0
  53. package/dist/cjs/next/client.js +9 -3
  54. package/dist/cjs/next/client.js.map +1 -1
  55. package/dist/cjs/next/components/framework-provider/index.js +6 -2
  56. package/dist/cjs/next/components/framework-provider/index.js.map +1 -1
  57. package/dist/cjs/next/components/framework-provider/link.js +69 -0
  58. package/dist/cjs/next/components/framework-provider/link.js.map +1 -0
  59. package/dist/cjs/next/components/page.js +1 -1
  60. package/dist/cjs/next/components/page.js.map +1 -1
  61. package/dist/cjs/next/components/tests/__fixtures__/element-data/button-component.js +109 -0
  62. package/dist/cjs/next/components/tests/__fixtures__/element-data/button-component.js.map +1 -0
  63. package/dist/cjs/next/components/tests/__fixtures__/element-data/image-component.js +10 -0
  64. package/dist/cjs/next/components/tests/__fixtures__/element-data/image-component.js.map +1 -1
  65. package/dist/cjs/next/components/tests/__fixtures__/resources/index.js +3 -1
  66. package/dist/cjs/next/components/tests/__fixtures__/resources/index.js.map +1 -1
  67. package/dist/cjs/{api-handler/handlers/clear-draft.js → next/components/tests/__fixtures__/resources/page-pathname-slices.js} +11 -19
  68. package/dist/cjs/next/components/tests/__fixtures__/resources/page-pathname-slices.js.map +1 -0
  69. package/dist/cjs/next/document.js +2 -1
  70. package/dist/cjs/next/document.js.map +1 -1
  71. package/dist/cjs/next/index.js.map +1 -1
  72. package/dist/cjs/next/middleware/request-utils.js +11 -17
  73. package/dist/cjs/next/middleware/request-utils.js.map +1 -1
  74. package/dist/cjs/next/root-style-registry.js +10 -25
  75. package/dist/cjs/next/root-style-registry.js.map +1 -1
  76. package/dist/cjs/next/server.js +2 -2
  77. package/dist/cjs/next/server.js.map +1 -1
  78. package/dist/cjs/next/testing/page-rendering.js +2 -2
  79. package/dist/cjs/next/testing/page-rendering.js.map +1 -1
  80. package/dist/cjs/next/testing/react-provider.js +2 -2
  81. package/dist/cjs/next/testing/react-provider.js.map +1 -1
  82. package/dist/cjs/next/tests/test-utils.js +7 -5
  83. package/dist/cjs/next/tests/test-utils.js.map +1 -1
  84. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +9 -7
  85. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  86. package/dist/cjs/runtimes/react/components/framework-context.js +20 -3
  87. package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
  88. package/dist/cjs/runtimes/react/components/page/index.js +18 -16
  89. package/dist/cjs/runtimes/react/components/page/index.js.map +1 -1
  90. package/dist/cjs/runtimes/react/components/{draft-switcher/draft-switcher.js → preview-switcher/preview-switcher.js} +12 -22
  91. package/dist/cjs/runtimes/react/components/preview-switcher/preview-switcher.js.map +1 -0
  92. package/dist/cjs/runtimes/react/components/{draft-switcher/draft-toolbar.js → preview-switcher/preview-toolbar.js} +17 -9
  93. package/dist/cjs/runtimes/react/components/preview-switcher/preview-toolbar.js.map +1 -0
  94. package/dist/cjs/runtimes/react/controls/style.js.map +1 -1
  95. package/dist/cjs/runtimes/react/hooks/makeswift-api.js +9 -10
  96. package/dist/cjs/runtimes/react/hooks/makeswift-api.js.map +1 -1
  97. package/dist/cjs/runtimes/react/hooks/use-selector.js +1 -1
  98. package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -1
  99. package/dist/cjs/runtimes/react/hooks/use-stylesheet-factory.js +1 -1
  100. package/dist/cjs/runtimes/react/hooks/use-stylesheet-factory.js.map +1 -1
  101. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  102. package/dist/cjs/runtimes/react/host-api-client.js +7 -2
  103. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -1
  104. package/dist/cjs/runtimes/react/root-style-registry.js +39 -13
  105. package/dist/cjs/runtimes/react/root-style-registry.js.map +1 -1
  106. package/dist/cjs/runtimes/react/use-global-style.js +1 -1
  107. package/dist/cjs/runtimes/react/use-global-style.js.map +1 -1
  108. package/dist/cjs/runtimes/react/use-style.js +3 -3
  109. package/dist/cjs/runtimes/react/use-style.js.map +1 -1
  110. package/dist/cjs/state/actions.js +6 -0
  111. package/dist/cjs/state/actions.js.map +1 -1
  112. package/dist/cjs/state/makeswift-api-client.js +42 -57
  113. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  114. package/dist/cjs/state/mixins/setup-teardown.js.map +1 -1
  115. package/dist/cjs/state/modules/api-resources.js +2 -0
  116. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  117. package/dist/cjs/state/modules/box-models.js +2 -0
  118. package/dist/cjs/state/modules/box-models.js.map +1 -1
  119. package/dist/cjs/state/modules/breakpoints.js +3 -1
  120. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  121. package/dist/cjs/state/modules/builder-edit-mode.js +2 -0
  122. package/dist/cjs/state/modules/builder-edit-mode.js.map +1 -1
  123. package/dist/cjs/state/modules/components-meta.js +2 -0
  124. package/dist/cjs/state/modules/components-meta.js.map +1 -1
  125. package/dist/cjs/state/modules/element-imperative-handles.js +2 -0
  126. package/dist/cjs/state/modules/element-imperative-handles.js.map +1 -1
  127. package/dist/cjs/state/modules/element-trees.js +2 -0
  128. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  129. package/dist/cjs/state/modules/is-in-builder.js +2 -0
  130. package/dist/cjs/state/modules/is-in-builder.js.map +1 -1
  131. package/dist/cjs/state/modules/is-preview.js +3 -0
  132. package/dist/cjs/state/modules/is-preview.js.map +1 -1
  133. package/dist/cjs/state/modules/localized-resources-map.js +2 -0
  134. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -1
  135. package/dist/cjs/state/modules/pointer.js +2 -0
  136. package/dist/cjs/state/modules/pointer.js.map +1 -1
  137. package/dist/cjs/state/modules/prop-controller-handles.js +2 -0
  138. package/dist/cjs/state/modules/prop-controller-handles.js.map +1 -1
  139. package/dist/cjs/state/modules/prop-controllers.js +2 -0
  140. package/dist/cjs/state/modules/prop-controllers.js.map +1 -1
  141. package/dist/cjs/state/modules/react-components.js +2 -0
  142. package/dist/cjs/state/modules/react-components.js.map +1 -1
  143. package/dist/cjs/state/modules/read-only-documents.js +2 -0
  144. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  145. package/dist/cjs/state/modules/read-write-documents.js +2 -0
  146. package/dist/cjs/state/modules/read-write-documents.js.map +1 -1
  147. package/dist/cjs/state/react-builder-preview.js +32 -38
  148. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  149. package/dist/cjs/state/react-page.js +15 -19
  150. package/dist/cjs/state/react-page.js.map +1 -1
  151. package/dist/cjs/state/toolkit.js +54 -0
  152. package/dist/cjs/state/toolkit.js.map +1 -0
  153. package/dist/cjs/testing/fixtures.js +38 -0
  154. package/dist/cjs/testing/fixtures.js.map +1 -0
  155. package/dist/cjs/utils/esm-compat.js +29 -0
  156. package/dist/cjs/utils/esm-compat.js.map +1 -0
  157. package/dist/esm/api/react.js +10 -14
  158. package/dist/esm/api/react.js.map +1 -1
  159. package/dist/esm/api/site-version/index.js +75 -0
  160. package/dist/esm/api/site-version/index.js.map +1 -0
  161. package/dist/esm/api-handler/handlers/manifest.js +3 -4
  162. package/dist/esm/api-handler/handlers/manifest.js.map +1 -1
  163. package/dist/esm/api-handler/handlers/redirect-live.js +27 -0
  164. package/dist/esm/api-handler/handlers/redirect-live.js.map +1 -0
  165. package/dist/esm/api-handler/index.js +7 -6
  166. package/dist/esm/api-handler/index.js.map +1 -1
  167. package/dist/esm/api-handler/node-request-response.js +73 -0
  168. package/dist/esm/api-handler/node-request-response.js.map +1 -0
  169. package/dist/esm/api-handler/preview.js +9 -0
  170. package/dist/esm/api-handler/preview.js.map +1 -0
  171. package/dist/esm/api-handler/request-response.js +9 -0
  172. package/dist/esm/api-handler/request-response.js.map +1 -1
  173. package/dist/esm/client/index.js +65 -58
  174. package/dist/esm/client/index.js.map +1 -1
  175. package/dist/esm/components/builtin/Box/animations.js.map +1 -1
  176. package/dist/esm/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -1
  177. package/dist/esm/components/builtin/Root/Root.js +4 -4
  178. package/dist/esm/components/builtin/Root/Root.js.map +1 -1
  179. package/dist/esm/components/builtin/Video/Video.js +1 -1
  180. package/dist/esm/components/builtin/Video/Video.js.map +1 -1
  181. package/dist/esm/components/hooks/useMediaQuery.js +1 -2
  182. package/dist/esm/components/hooks/useMediaQuery.js.map +1 -1
  183. package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +1 -1
  184. package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
  185. package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
  186. package/dist/esm/components/shared/Link/index.js +13 -28
  187. package/dist/esm/components/shared/Link/index.js.map +1 -1
  188. package/dist/esm/components/shared/react-player.js +7 -0
  189. package/dist/esm/components/shared/react-player.js.map +1 -0
  190. package/dist/esm/components/utils/responsive-style.js.map +1 -1
  191. package/dist/esm/css/border-radius.js.map +1 -1
  192. package/dist/esm/css/border.js.map +1 -1
  193. package/dist/esm/css/margin.js.map +1 -1
  194. package/dist/esm/css/padding.js.map +1 -1
  195. package/dist/esm/next/api-handler/config/app-router.js +12 -10
  196. package/dist/esm/next/api-handler/config/app-router.js.map +1 -1
  197. package/dist/esm/next/api-handler/config/pages-router.js +9 -69
  198. package/dist/esm/next/api-handler/config/pages-router.js.map +1 -1
  199. package/dist/esm/next/api-handler/handlers/app-router-redirect-preview.js +64 -0
  200. package/dist/esm/next/api-handler/handlers/app-router-redirect-preview.js.map +1 -0
  201. package/dist/esm/next/api-handler/handlers/pages-router-redirect-preview.js +52 -0
  202. package/dist/esm/next/api-handler/handlers/pages-router-redirect-preview.js.map +1 -0
  203. package/dist/esm/next/api-handler/index.js +4 -3
  204. package/dist/esm/next/api-handler/index.js.map +1 -1
  205. package/dist/esm/next/api-handler/preview.js +15 -0
  206. package/dist/esm/next/api-handler/preview.js.map +1 -0
  207. package/dist/esm/next/app-router-site-version.js +16 -0
  208. package/dist/esm/next/app-router-site-version.js.map +1 -0
  209. package/dist/esm/next/client.js +10 -4
  210. package/dist/esm/next/client.js.map +1 -1
  211. package/dist/esm/next/components/framework-provider/index.js +9 -2
  212. package/dist/esm/next/components/framework-provider/index.js.map +1 -1
  213. package/dist/esm/next/components/framework-provider/link.js +35 -0
  214. package/dist/esm/next/components/framework-provider/link.js.map +1 -0
  215. package/dist/esm/next/components/page.js +2 -4
  216. package/dist/esm/next/components/page.js.map +1 -1
  217. package/dist/esm/next/components/tests/__fixtures__/element-data/button-component.js +83 -0
  218. package/dist/esm/next/components/tests/__fixtures__/element-data/button-component.js.map +1 -0
  219. package/dist/esm/next/components/tests/__fixtures__/element-data/image-component.js +10 -0
  220. package/dist/esm/next/components/tests/__fixtures__/element-data/image-component.js.map +1 -1
  221. package/dist/esm/next/components/tests/__fixtures__/resources/index.js +1 -0
  222. package/dist/esm/next/components/tests/__fixtures__/resources/index.js.map +1 -1
  223. package/dist/esm/next/components/tests/__fixtures__/resources/page-pathname-slices.js +9 -0
  224. package/dist/esm/next/components/tests/__fixtures__/resources/page-pathname-slices.js.map +1 -0
  225. package/dist/esm/next/document.js +2 -1
  226. package/dist/esm/next/document.js.map +1 -1
  227. package/dist/esm/next/index.js.map +1 -1
  228. package/dist/esm/next/middleware/request-utils.js +14 -17
  229. package/dist/esm/next/middleware/request-utils.js.map +1 -1
  230. package/dist/esm/next/root-style-registry.js +11 -23
  231. package/dist/esm/next/root-style-registry.js.map +1 -1
  232. package/dist/esm/next/server.js +1 -1
  233. package/dist/esm/next/server.js.map +1 -1
  234. package/dist/esm/next/testing/page-rendering.js +2 -2
  235. package/dist/esm/next/testing/page-rendering.js.map +1 -1
  236. package/dist/esm/next/testing/react-provider.js +2 -2
  237. package/dist/esm/next/testing/react-provider.js.map +1 -1
  238. package/dist/esm/next/tests/test-utils.js +7 -5
  239. package/dist/esm/next/tests/test-utils.js.map +1 -1
  240. package/dist/esm/runtimes/react/components/RuntimeProvider.js +9 -7
  241. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  242. package/dist/esm/runtimes/react/components/framework-context.js +24 -3
  243. package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
  244. package/dist/esm/runtimes/react/components/page/index.js +19 -17
  245. package/dist/esm/runtimes/react/components/page/index.js.map +1 -1
  246. package/dist/esm/runtimes/react/components/{draft-switcher/draft-switcher.js → preview-switcher/preview-switcher.js} +8 -18
  247. package/dist/esm/runtimes/react/components/preview-switcher/preview-switcher.js.map +1 -0
  248. package/dist/esm/runtimes/react/components/{draft-switcher/draft-toolbar.js → preview-switcher/preview-toolbar.js} +13 -5
  249. package/dist/esm/runtimes/react/components/preview-switcher/preview-toolbar.js.map +1 -0
  250. package/dist/esm/runtimes/react/controls/style.js.map +1 -1
  251. package/dist/esm/runtimes/react/hooks/makeswift-api.js +1 -2
  252. package/dist/esm/runtimes/react/hooks/makeswift-api.js.map +1 -1
  253. package/dist/esm/runtimes/react/hooks/use-selector.js +1 -1
  254. package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -1
  255. package/dist/esm/runtimes/react/hooks/use-stylesheet-factory.js +1 -1
  256. package/dist/esm/runtimes/react/hooks/use-stylesheet-factory.js.map +1 -1
  257. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  258. package/dist/esm/runtimes/react/host-api-client.js +7 -2
  259. package/dist/esm/runtimes/react/host-api-client.js.map +1 -1
  260. package/dist/esm/runtimes/react/root-style-registry.js +37 -13
  261. package/dist/esm/runtimes/react/root-style-registry.js.map +1 -1
  262. package/dist/esm/runtimes/react/use-global-style.js +1 -1
  263. package/dist/esm/runtimes/react/use-global-style.js.map +1 -1
  264. package/dist/esm/runtimes/react/use-style.js +1 -1
  265. package/dist/esm/runtimes/react/use-style.js.map +1 -1
  266. package/dist/esm/state/actions.js +5 -0
  267. package/dist/esm/state/actions.js.map +1 -1
  268. package/dist/esm/state/makeswift-api-client.js +42 -58
  269. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  270. package/dist/esm/state/mixins/setup-teardown.js.map +1 -1
  271. package/dist/esm/state/modules/api-resources.js +3 -1
  272. package/dist/esm/state/modules/api-resources.js.map +1 -1
  273. package/dist/esm/state/modules/box-models.js +3 -1
  274. package/dist/esm/state/modules/box-models.js.map +1 -1
  275. package/dist/esm/state/modules/breakpoints.js +4 -2
  276. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  277. package/dist/esm/state/modules/builder-edit-mode.js +3 -1
  278. package/dist/esm/state/modules/builder-edit-mode.js.map +1 -1
  279. package/dist/esm/state/modules/components-meta.js +3 -1
  280. package/dist/esm/state/modules/components-meta.js.map +1 -1
  281. package/dist/esm/state/modules/element-imperative-handles.js +3 -1
  282. package/dist/esm/state/modules/element-imperative-handles.js.map +1 -1
  283. package/dist/esm/state/modules/element-trees.js +3 -1
  284. package/dist/esm/state/modules/element-trees.js.map +1 -1
  285. package/dist/esm/state/modules/is-in-builder.js +3 -1
  286. package/dist/esm/state/modules/is-in-builder.js.map +1 -1
  287. package/dist/esm/state/modules/is-preview.js +3 -0
  288. package/dist/esm/state/modules/is-preview.js.map +1 -1
  289. package/dist/esm/state/modules/localized-resources-map.js +3 -1
  290. package/dist/esm/state/modules/localized-resources-map.js.map +1 -1
  291. package/dist/esm/state/modules/pointer.js +3 -1
  292. package/dist/esm/state/modules/pointer.js.map +1 -1
  293. package/dist/esm/state/modules/prop-controller-handles.js +3 -1
  294. package/dist/esm/state/modules/prop-controller-handles.js.map +1 -1
  295. package/dist/esm/state/modules/prop-controllers.js +3 -1
  296. package/dist/esm/state/modules/prop-controllers.js.map +1 -1
  297. package/dist/esm/state/modules/react-components.js +3 -1
  298. package/dist/esm/state/modules/react-components.js.map +1 -1
  299. package/dist/esm/state/modules/read-only-documents.js +6 -1
  300. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  301. package/dist/esm/state/modules/read-write-documents.js +3 -1
  302. package/dist/esm/state/modules/read-write-documents.js.map +1 -1
  303. package/dist/esm/state/react-builder-preview.js +33 -40
  304. package/dist/esm/state/react-builder-preview.js.map +1 -1
  305. package/dist/esm/state/react-page.js +16 -21
  306. package/dist/esm/state/react-page.js.map +1 -1
  307. package/dist/esm/state/toolkit.js +28 -0
  308. package/dist/esm/state/toolkit.js.map +1 -0
  309. package/dist/esm/testing/fixtures.js +13 -0
  310. package/dist/esm/testing/fixtures.js.map +1 -0
  311. package/dist/esm/utils/esm-compat.js +5 -0
  312. package/dist/esm/utils/esm-compat.js.map +1 -0
  313. package/dist/types/api/graphql/documents/queries.d.ts +7 -7
  314. package/dist/types/api/graphql/documents/queries.d.ts.map +1 -1
  315. package/dist/types/api/graphql/generated/fragment-document-nodes.d.ts.map +1 -1
  316. package/dist/types/api/react.d.ts +3 -4
  317. package/dist/types/api/react.d.ts.map +1 -1
  318. package/dist/types/api/site-version/index.d.ts +19 -0
  319. package/dist/types/api/site-version/index.d.ts.map +1 -0
  320. package/dist/types/api/site-version/site-version.test.d.ts +2 -0
  321. package/dist/types/api/site-version/site-version.test.d.ts.map +1 -0
  322. package/dist/types/api-handler/handlers/manifest.d.ts +1 -3
  323. package/dist/types/api-handler/handlers/manifest.d.ts.map +1 -1
  324. package/dist/types/api-handler/handlers/redirect-live.d.ts +6 -0
  325. package/dist/types/api-handler/handlers/redirect-live.d.ts.map +1 -0
  326. package/dist/types/api-handler/index.d.ts +5 -5
  327. package/dist/types/api-handler/index.d.ts.map +1 -1
  328. package/dist/types/api-handler/node-request-response.d.ts +8 -0
  329. package/dist/types/api-handler/node-request-response.d.ts.map +1 -0
  330. package/dist/types/api-handler/node-request-response.test.d.ts +2 -0
  331. package/dist/types/api-handler/node-request-response.test.d.ts.map +1 -0
  332. package/dist/types/api-handler/preview.d.ts +5 -0
  333. package/dist/types/api-handler/preview.d.ts.map +1 -0
  334. package/dist/types/api-handler/request-response.d.ts +1 -0
  335. package/dist/types/api-handler/request-response.d.ts.map +1 -1
  336. package/dist/types/client/index.d.ts +174 -165
  337. package/dist/types/client/index.d.ts.map +1 -1
  338. package/dist/types/components/builtin/Box/Box.d.ts +15 -147
  339. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  340. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts +0 -1
  341. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -1
  342. package/dist/types/components/builtin/Button/Button.d.ts +4 -70
  343. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
  344. package/dist/types/components/builtin/Carousel/Carousel.d.ts +0 -1
  345. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  346. package/dist/types/components/builtin/Countdown/Countdown.d.ts +0 -1
  347. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  348. package/dist/types/components/builtin/Divider/Divider.d.ts +0 -1
  349. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
  350. package/dist/types/components/builtin/Embed/Embed.d.ts +0 -1
  351. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
  352. package/dist/types/components/builtin/Form/Form.d.ts +0 -1
  353. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  354. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  355. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -1
  356. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +0 -1
  357. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -1
  358. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +0 -1
  359. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -1
  360. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts +0 -1
  361. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
  362. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +0 -1
  363. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -1
  364. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +0 -1
  365. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -1
  366. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +0 -1
  367. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -1
  368. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +0 -1
  369. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -1
  370. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +1 -1
  371. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
  372. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +0 -1
  373. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -1
  374. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +0 -1
  375. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
  376. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts +0 -1
  377. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
  378. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +0 -1
  379. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -1
  380. package/dist/types/components/builtin/Form/components/Field/index.d.ts +0 -1
  381. package/dist/types/components/builtin/Form/components/Field/index.d.ts.map +1 -1
  382. package/dist/types/components/builtin/Form/components/Field/services/responsiveField.d.ts +1 -1
  383. package/dist/types/components/builtin/Form/components/Field/services/responsiveField.d.ts.map +1 -1
  384. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts +0 -1
  385. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
  386. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts +0 -1
  387. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -1
  388. package/dist/types/components/builtin/Form/context/FormContext.d.ts +0 -1
  389. package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -1
  390. package/dist/types/components/builtin/Image/Image.d.ts +0 -1
  391. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
  392. package/dist/types/components/builtin/Navigation/Navigation.d.ts +0 -1
  393. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  394. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +0 -1
  395. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
  396. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +0 -1
  397. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  398. package/dist/types/components/builtin/Root/Root.d.ts +1 -2
  399. package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
  400. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts +0 -1
  401. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -1
  402. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +0 -1
  403. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  404. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +0 -1
  405. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -1
  406. package/dist/types/components/builtin/Text/Text.d.ts +0 -1
  407. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -1
  408. package/dist/types/components/builtin/Video/Video.d.ts +0 -1
  409. package/dist/types/components/builtin/Video/Video.d.ts.map +1 -1
  410. package/dist/types/components/hooks/useMediaQuery.d.ts.map +1 -1
  411. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +0 -1
  412. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
  413. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +0 -1
  414. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  415. package/dist/types/components/shared/ErrorBoundary.d.ts +0 -1
  416. package/dist/types/components/shared/ErrorBoundary.d.ts.map +1 -1
  417. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts +0 -1
  418. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -1
  419. package/dist/types/components/shared/Link/index.d.ts.map +1 -1
  420. package/dist/types/components/shared/react-player.d.ts +3 -0
  421. package/dist/types/components/shared/react-player.d.ts.map +1 -0
  422. package/dist/types/components/utils/columns.d.ts.map +1 -1
  423. package/dist/types/components/utils/responsive-style.d.ts +1 -1
  424. package/dist/types/components/utils/responsive-style.d.ts.map +1 -1
  425. package/dist/types/controls/control.d.ts +1 -25
  426. package/dist/types/controls/control.d.ts.map +1 -1
  427. package/dist/types/controls/link.d.ts +3 -3
  428. package/dist/types/controls/link.d.ts.map +1 -1
  429. package/dist/types/controls/rich-text/control.d.ts.map +1 -1
  430. package/dist/types/controls/rich-text-v2/control.d.ts +13 -13
  431. package/dist/types/controls/rich-text-v2/control.d.ts.map +1 -1
  432. package/dist/types/controls/rich-text-v2/plugin.d.ts +2 -2
  433. package/dist/types/controls/rich-text-v2/plugin.d.ts.map +1 -1
  434. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +556 -12
  435. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  436. package/dist/types/css/border-radius.d.ts +1 -1
  437. package/dist/types/css/border-radius.d.ts.map +1 -1
  438. package/dist/types/css/border.d.ts +1 -1
  439. package/dist/types/css/border.d.ts.map +1 -1
  440. package/dist/types/css/margin.d.ts +1 -1
  441. package/dist/types/css/margin.d.ts.map +1 -1
  442. package/dist/types/css/padding.d.ts +1 -1
  443. package/dist/types/css/padding.d.ts.map +1 -1
  444. package/dist/types/next/api-handler/config/app-router.d.ts +10 -8
  445. package/dist/types/next/api-handler/config/app-router.d.ts.map +1 -1
  446. package/dist/types/next/api-handler/config/pages-router.d.ts +3 -2
  447. package/dist/types/next/api-handler/config/pages-router.d.ts.map +1 -1
  448. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.d.ts +5 -0
  449. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.d.ts.map +1 -0
  450. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.test.d.ts +2 -0
  451. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.test.d.ts.map +1 -0
  452. package/dist/types/next/api-handler/handlers/pages-router-redirect-preview.d.ts +4 -0
  453. package/dist/types/next/api-handler/handlers/pages-router-redirect-preview.d.ts.map +1 -0
  454. package/dist/types/next/api-handler/index.d.ts +1 -1
  455. package/dist/types/next/api-handler/index.d.ts.map +1 -1
  456. package/dist/types/next/api-handler/preview.d.ts +8 -0
  457. package/dist/types/next/api-handler/preview.d.ts.map +1 -0
  458. package/dist/types/next/app-router-site-version.d.ts +3 -0
  459. package/dist/types/next/app-router-site-version.d.ts.map +1 -0
  460. package/dist/types/next/client.d.ts +3 -3
  461. package/dist/types/next/client.d.ts.map +1 -1
  462. package/dist/types/next/components/framework-provider/index.d.ts.map +1 -1
  463. package/dist/types/next/components/framework-provider/link.d.ts +2 -0
  464. package/dist/types/next/components/framework-provider/link.d.ts.map +1 -0
  465. package/dist/types/next/components/page.d.ts +2 -7
  466. package/dist/types/next/components/page.d.ts.map +1 -1
  467. package/dist/types/next/components/tests/__fixtures__/element-data/box-component.d.ts.map +1 -1
  468. package/dist/types/next/components/tests/__fixtures__/element-data/button-component.d.ts +9 -0
  469. package/dist/types/next/components/tests/__fixtures__/element-data/button-component.d.ts.map +1 -0
  470. package/dist/types/next/components/tests/__fixtures__/element-data/image-component.d.ts.map +1 -1
  471. package/dist/types/next/components/tests/__fixtures__/resources/index.d.ts +1 -0
  472. package/dist/types/next/components/tests/__fixtures__/resources/index.d.ts.map +1 -1
  473. package/dist/types/next/components/tests/__fixtures__/resources/page-pathname-slices.d.ts +3 -0
  474. package/dist/types/next/components/tests/__fixtures__/resources/page-pathname-slices.d.ts.map +1 -0
  475. package/dist/types/next/components/tests/components/button-component-rendering.test.d.ts +3 -0
  476. package/dist/types/next/components/tests/components/button-component-rendering.test.d.ts.map +1 -0
  477. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts.map +1 -1
  478. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts.map +1 -1
  479. package/dist/types/next/components/tests/controls/style-control/fixtures.d.ts.map +1 -1
  480. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts +3 -16
  481. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts.map +1 -1
  482. package/dist/types/next/document.d.ts.map +1 -1
  483. package/dist/types/next/index.d.ts +1 -1
  484. package/dist/types/next/index.d.ts.map +1 -1
  485. package/dist/types/next/middleware/request-utils.d.ts +1 -0
  486. package/dist/types/next/middleware/request-utils.d.ts.map +1 -1
  487. package/dist/types/next/root-style-registry.d.ts +3 -12
  488. package/dist/types/next/root-style-registry.d.ts.map +1 -1
  489. package/dist/types/next/server.d.ts +1 -1
  490. package/dist/types/next/server.d.ts.map +1 -1
  491. package/dist/types/next/testing/element-data.d.ts +13 -13
  492. package/dist/types/next/testing/react-provider.d.ts +3 -3
  493. package/dist/types/next/testing/react-provider.d.ts.map +1 -1
  494. package/dist/types/next/tests/server.api-handler-app-router-redirect-preview.test.d.ts +2 -0
  495. package/dist/types/next/tests/server.api-handler-app-router-redirect-preview.test.d.ts.map +1 -0
  496. package/dist/types/next/tests/server.api-handler-pages-router-redirect-preview.test.d.ts +2 -0
  497. package/dist/types/next/tests/server.api-handler-pages-router-redirect-preview.test.d.ts.map +1 -0
  498. package/dist/types/next/tests/server.api-handler-redirect-live.test.d.ts +2 -0
  499. package/dist/types/next/tests/server.api-handler-redirect-live.test.d.ts.map +1 -0
  500. package/dist/types/next/tests/test-utils.d.ts.map +1 -1
  501. package/dist/types/runtimes/react/components/Document.d.ts +0 -1
  502. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  503. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +0 -1
  504. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -1
  505. package/dist/types/runtimes/react/components/Element.d.ts +0 -1
  506. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  507. package/dist/types/runtimes/react/components/ElementData.d.ts +0 -1
  508. package/dist/types/runtimes/react/components/ElementData.d.ts.map +1 -1
  509. package/dist/types/runtimes/react/components/ElementReference.d.ts +0 -1
  510. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  511. package/dist/types/runtimes/react/components/MakeswiftComponent.d.ts +0 -1
  512. package/dist/types/runtimes/react/components/MakeswiftComponent.d.ts.map +1 -1
  513. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +3 -2
  514. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  515. package/dist/types/runtimes/react/components/Slot.d.ts.map +1 -1
  516. package/dist/types/runtimes/react/components/framework-context.d.ts +13 -1
  517. package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
  518. package/dist/types/runtimes/react/components/page/HeadSnippet.d.ts +0 -1
  519. package/dist/types/runtimes/react/components/page/HeadSnippet.d.ts.map +1 -1
  520. package/dist/types/runtimes/react/components/page/Page.d.ts +0 -1
  521. package/dist/types/runtimes/react/components/page/Page.d.ts.map +1 -1
  522. package/dist/types/runtimes/react/components/page/PageHead.d.ts +0 -1
  523. package/dist/types/runtimes/react/components/page/PageHead.d.ts.map +1 -1
  524. package/dist/types/runtimes/react/components/page/index.d.ts +23 -3
  525. package/dist/types/runtimes/react/components/page/index.d.ts.map +1 -1
  526. package/dist/types/runtimes/react/components/preview-switcher/preview-switcher.d.ts +4 -0
  527. package/dist/types/runtimes/react/components/preview-switcher/preview-switcher.d.ts.map +1 -0
  528. package/dist/types/runtimes/react/components/preview-switcher/preview-toolbar.d.ts +2 -0
  529. package/dist/types/runtimes/react/components/preview-switcher/preview-toolbar.d.ts.map +1 -0
  530. package/dist/types/runtimes/react/components/render-hook.d.ts +0 -1
  531. package/dist/types/runtimes/react/components/render-hook.d.ts.map +1 -1
  532. package/dist/types/runtimes/react/controls/control.d.ts +0 -1
  533. package/dist/types/runtimes/react/controls/control.d.ts.map +1 -1
  534. package/dist/types/runtimes/react/controls/group.d.ts +0 -1
  535. package/dist/types/runtimes/react/controls/group.d.ts.map +1 -1
  536. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts +0 -1
  537. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -1
  538. package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts +0 -1
  539. package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -1
  540. package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +0 -1
  541. package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  542. package/dist/types/runtimes/react/controls/style.d.ts +1 -1
  543. package/dist/types/runtimes/react/controls/style.d.ts.map +1 -1
  544. package/dist/types/runtimes/react/controls.d.ts +0 -1
  545. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  546. package/dist/types/runtimes/react/hooks/makeswift-api.d.ts.map +1 -1
  547. package/dist/types/runtimes/react/hooks/use-disable-register-element.d.ts +0 -1
  548. package/dist/types/runtimes/react/hooks/use-disable-register-element.d.ts.map +1 -1
  549. package/dist/types/runtimes/react/hooks/use-document-context.d.ts +0 -1
  550. package/dist/types/runtimes/react/hooks/use-document-context.d.ts.map +1 -1
  551. package/dist/types/runtimes/react/hooks/use-document-cycles.d.ts +0 -1
  552. package/dist/types/runtimes/react/hooks/use-document-cycles.d.ts.map +1 -1
  553. package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts +0 -1
  554. package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts.map +1 -1
  555. package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -1
  556. package/dist/types/runtimes/react/hooks/use-store.d.ts +25 -2
  557. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  558. package/dist/types/runtimes/react/hooks/use-stylesheet-factory.d.ts.map +1 -1
  559. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +1 -1
  560. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -1
  561. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -1
  562. package/dist/types/runtimes/react/legacy-controls.d.ts +0 -1
  563. package/dist/types/runtimes/react/legacy-controls.d.ts.map +1 -1
  564. package/dist/types/runtimes/react/root-style-registry.d.ts +30 -10
  565. package/dist/types/runtimes/react/root-style-registry.d.ts.map +1 -1
  566. package/dist/types/runtimes/react/use-global-style.d.ts.map +1 -1
  567. package/dist/types/runtimes/react/use-style.d.ts +1 -1
  568. package/dist/types/runtimes/react/use-style.d.ts.map +1 -1
  569. package/dist/types/slate/BlockPlugin/index.d.ts +5 -5
  570. package/dist/types/slate/BlockPlugin/utils/location.d.ts.map +1 -1
  571. package/dist/types/slate/InlineModePlugin/index.d.ts +41 -41
  572. package/dist/types/slate/InlinePlugin/getValue.d.ts.map +1 -1
  573. package/dist/types/slate/InlinePlugin/index.d.ts +5 -6
  574. package/dist/types/slate/InlinePlugin/index.d.ts.map +1 -1
  575. package/dist/types/slate/InlinePlugin/onChange.d.ts.map +1 -1
  576. package/dist/types/slate/LinkPlugin/getValue.d.ts +1 -1
  577. package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -1
  578. package/dist/types/slate/LinkPlugin/index.d.ts +3 -4
  579. package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
  580. package/dist/types/slate/LinkPlugin/onChange.d.ts.map +1 -1
  581. package/dist/types/slate/TextAlignPlugin/index.d.ts +5 -6
  582. package/dist/types/slate/TextAlignPlugin/index.d.ts.map +1 -1
  583. package/dist/types/slate/TypographyPlugin/getValue.d.ts.map +1 -1
  584. package/dist/types/slate/TypographyPlugin/index.d.ts +2 -3
  585. package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
  586. package/dist/types/slate/test-helpers/editor-v1.d.ts +0 -1
  587. package/dist/types/slate/test-helpers/editor-v1.d.ts.map +1 -1
  588. package/dist/types/slate/test-helpers/editor-v2-inline.d.ts +0 -1
  589. package/dist/types/slate/test-helpers/editor-v2-inline.d.ts.map +1 -1
  590. package/dist/types/slate/test-helpers/editor-v2.d.ts +0 -1
  591. package/dist/types/slate/test-helpers/editor-v2.d.ts.map +1 -1
  592. package/dist/types/slate/test-helpers/slate-test-helper.d.ts +4 -4
  593. package/dist/types/slate/test-helpers/slate-test-helper.d.ts.map +1 -1
  594. package/dist/types/slate/test-helpers/test-elements.d.ts +8 -64
  595. package/dist/types/slate/test-helpers/test-elements.d.ts.map +1 -1
  596. package/dist/types/slate/utils/editor.d.ts.map +1 -1
  597. package/dist/types/slate/utils/element.d.ts.map +1 -1
  598. package/dist/types/slate/utils/location.d.ts.map +1 -1
  599. package/dist/types/slate/utils/responsive.d.ts.map +1 -1
  600. package/dist/types/state/__tests__/actions.test.d.ts +2 -0
  601. package/dist/types/state/__tests__/actions.test.d.ts.map +1 -0
  602. package/dist/types/state/actions.d.ts +3 -2
  603. package/dist/types/state/actions.d.ts.map +1 -1
  604. package/dist/types/state/makeswift-api-client.d.ts +19 -11
  605. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  606. package/dist/types/state/mixins/setup-teardown.d.ts +1 -1
  607. package/dist/types/state/mixins/setup-teardown.d.ts.map +1 -1
  608. package/dist/types/state/modules/api-resources.d.ts +2 -2
  609. package/dist/types/state/modules/api-resources.d.ts.map +1 -1
  610. package/dist/types/state/modules/box-models.d.ts +2 -2
  611. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  612. package/dist/types/state/modules/breakpoints.d.ts +2 -2
  613. package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
  614. package/dist/types/state/modules/builder-edit-mode.d.ts +2 -2
  615. package/dist/types/state/modules/builder-edit-mode.d.ts.map +1 -1
  616. package/dist/types/state/modules/components-meta.d.ts +2 -2
  617. package/dist/types/state/modules/components-meta.d.ts.map +1 -1
  618. package/dist/types/state/modules/element-imperative-handles.d.ts +2 -2
  619. package/dist/types/state/modules/element-imperative-handles.d.ts.map +1 -1
  620. package/dist/types/state/modules/element-trees.d.ts +2 -2
  621. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  622. package/dist/types/state/modules/is-in-builder.d.ts +2 -2
  623. package/dist/types/state/modules/is-in-builder.d.ts.map +1 -1
  624. package/dist/types/state/modules/is-preview.d.ts +2 -2
  625. package/dist/types/state/modules/is-preview.d.ts.map +1 -1
  626. package/dist/types/state/modules/localized-resources-map.d.ts +2 -2
  627. package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -1
  628. package/dist/types/state/modules/pointer.d.ts +2 -2
  629. package/dist/types/state/modules/pointer.d.ts.map +1 -1
  630. package/dist/types/state/modules/prop-controller-handles.d.ts +2 -2
  631. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -1
  632. package/dist/types/state/modules/prop-controllers.d.ts +2 -2
  633. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  634. package/dist/types/state/modules/react-components.d.ts +2 -2
  635. package/dist/types/state/modules/react-components.d.ts.map +1 -1
  636. package/dist/types/state/modules/read-only-documents.d.ts +2 -2
  637. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  638. package/dist/types/state/modules/read-write-documents.d.ts +2 -2
  639. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
  640. package/dist/types/state/react-builder-preview.d.ts +57 -10
  641. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  642. package/dist/types/state/react-page.d.ts +67 -36
  643. package/dist/types/state/react-page.d.ts.map +1 -1
  644. package/dist/types/state/toolkit.d.ts +11 -0
  645. package/dist/types/state/toolkit.d.ts.map +1 -0
  646. package/dist/types/testing/fixtures.d.ts +7 -0
  647. package/dist/types/testing/fixtures.d.ts.map +1 -0
  648. package/dist/types/utils/clamp.d.ts.map +1 -1
  649. package/dist/types/utils/esm-compat.d.ts +2 -0
  650. package/dist/types/utils/esm-compat.d.ts.map +1 -0
  651. package/dist/types/utils/keys.d.ts.map +1 -1
  652. package/package.json +13 -14
  653. package/dist/cjs/api/site-version.js +0 -42
  654. package/dist/cjs/api/site-version.js.map +0 -1
  655. package/dist/cjs/api-handler/handlers/clear-draft.js.map +0 -1
  656. package/dist/cjs/next/api-handler/draft.js.map +0 -1
  657. package/dist/cjs/next/api-handler/handlers/redirect-draft.js.map +0 -1
  658. package/dist/cjs/next/api-handler/handlers/redirect-preview.js.map +0 -1
  659. package/dist/cjs/next/draft-mode/index.js.map +0 -1
  660. package/dist/cjs/next/preview-mode.js.map +0 -1
  661. package/dist/cjs/runtimes/react/components/draft-switcher/draft-switcher.js.map +0 -1
  662. package/dist/cjs/runtimes/react/components/draft-switcher/draft-toolbar.js.map +0 -1
  663. package/dist/esm/api/site-version.js +0 -15
  664. package/dist/esm/api/site-version.js.map +0 -1
  665. package/dist/esm/api-handler/handlers/clear-draft.js +0 -17
  666. package/dist/esm/api-handler/handlers/clear-draft.js.map +0 -1
  667. package/dist/esm/next/api-handler/draft.js +0 -14
  668. package/dist/esm/next/api-handler/draft.js.map +0 -1
  669. package/dist/esm/next/api-handler/handlers/redirect-draft.js +0 -52
  670. package/dist/esm/next/api-handler/handlers/redirect-draft.js.map +0 -1
  671. package/dist/esm/next/api-handler/handlers/redirect-preview.js +0 -37
  672. package/dist/esm/next/api-handler/handlers/redirect-preview.js.map +0 -1
  673. package/dist/esm/next/draft-mode/index.js +0 -30
  674. package/dist/esm/next/draft-mode/index.js.map +0 -1
  675. package/dist/esm/next/preview-mode.js +0 -16
  676. package/dist/esm/next/preview-mode.js.map +0 -1
  677. package/dist/esm/runtimes/react/components/draft-switcher/draft-switcher.js.map +0 -1
  678. package/dist/esm/runtimes/react/components/draft-switcher/draft-toolbar.js.map +0 -1
  679. package/dist/types/api/site-version.d.ts +0 -7
  680. package/dist/types/api/site-version.d.ts.map +0 -1
  681. package/dist/types/api-handler/handlers/clear-draft.d.ts +0 -7
  682. package/dist/types/api-handler/handlers/clear-draft.d.ts.map +0 -1
  683. package/dist/types/next/api-handler/draft.d.ts +0 -8
  684. package/dist/types/next/api-handler/draft.d.ts.map +0 -1
  685. package/dist/types/next/api-handler/handlers/redirect-draft.d.ts +0 -6
  686. package/dist/types/next/api-handler/handlers/redirect-draft.d.ts.map +0 -1
  687. package/dist/types/next/api-handler/handlers/redirect-draft.test.d.ts +0 -2
  688. package/dist/types/next/api-handler/handlers/redirect-draft.test.d.ts.map +0 -1
  689. package/dist/types/next/api-handler/handlers/redirect-preview.d.ts +0 -5
  690. package/dist/types/next/api-handler/handlers/redirect-preview.d.ts.map +0 -1
  691. package/dist/types/next/draft-mode/index.d.ts +0 -15
  692. package/dist/types/next/draft-mode/index.d.ts.map +0 -1
  693. package/dist/types/next/preview-mode.d.ts +0 -17
  694. package/dist/types/next/preview-mode.d.ts.map +0 -1
  695. package/dist/types/next/tests/server.api-handler-clear-draft.test.d.ts +0 -2
  696. package/dist/types/next/tests/server.api-handler-clear-draft.test.d.ts.map +0 -1
  697. package/dist/types/next/tests/server.api-handler-redirect-draft.test.d.ts +0 -2
  698. package/dist/types/next/tests/server.api-handler-redirect-draft.test.d.ts.map +0 -1
  699. package/dist/types/next/tests/server.api-handler-redirect-preview.test.d.ts +0 -2
  700. package/dist/types/next/tests/server.api-handler-redirect-preview.test.d.ts.map +0 -1
  701. package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts +0 -4
  702. package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts.map +0 -1
  703. package/dist/types/runtimes/react/components/draft-switcher/draft-toolbar.d.ts +0 -6
  704. package/dist/types/runtimes/react/components/draft-switcher/draft-toolbar.d.ts.map +0 -1
@@ -22,7 +22,8 @@ __export(client_exports, {
22
22
  SnippetLocation: () => import_types2.SnippetLocation,
23
23
  componentDocumentToRootEmbeddedDocument: () => componentDocumentToRootEmbeddedDocument,
24
24
  failedResponseBody: () => failedResponseBody,
25
- pageToRootDocument: () => pageToRootDocument
25
+ pageToRootDocument: () => pageToRootDocument,
26
+ previewTokenPayloadSchema: () => previewTokenPayloadSchema
26
27
  });
27
28
  module.exports = __toCommonJS(client_exports);
28
29
  var import_zod = require("zod");
@@ -32,7 +33,6 @@ var import_documents = require("../api/graphql/documents");
32
33
  var import_react = require("../api/react");
33
34
  var import_introspection = require("../prop-controllers/introspection");
34
35
  var import_react_page = require("../state/react-page");
35
- var import_site_version = require("../api/site-version");
36
36
  var import_pagination = require("../utils/pagination");
37
37
  var import_deterministic_uuid = require("../utils/deterministic-uuid");
38
38
  var import_controls = require("@makeswift/controls");
@@ -117,6 +117,11 @@ const makeswiftComponentDocumentFallbackSchema = import_zod.z.object({
117
117
  locale: import_zod.z.string().nullable(),
118
118
  data: import_zod.z.null()
119
119
  });
120
+ const previewTokenPayloadSchema = import_zod.z.object({
121
+ payload: import_zod.z.object({
122
+ version: import_zod.z.string()
123
+ })
124
+ });
120
125
  function componentDocumentToRootEmbeddedDocument({
121
126
  document,
122
127
  documentKey,
@@ -208,13 +213,18 @@ Received "${apiKey}" instead.`
208
213
  this.runtime = runtime;
209
214
  }
210
215
  async fetch(path, siteVersion) {
211
- const response = await fetch(new URL(path, this.apiOrigin).toString(), {
212
- headers: {
213
- ["X-API-Key"]: this.apiKey,
214
- "Makeswift-Site-API-Key": this.apiKey,
215
- "Makeswift-Site-Version": siteVersion
216
- },
217
- ...siteVersion === import_site_version.MakeswiftSiteVersion.Working ? { cache: "no-store" } : {},
216
+ const requestUrl = new URL(path, this.apiOrigin);
217
+ const requestHeaders = new Headers({
218
+ "X-API-Key": this.apiKey,
219
+ "Makeswift-Site-API-Key": this.apiKey
220
+ });
221
+ if (siteVersion?.token) {
222
+ requestUrl.searchParams.set("version", siteVersion.version);
223
+ requestHeaders.set("makeswift-preview-token", siteVersion.token);
224
+ }
225
+ const response = await fetch(requestUrl.toString(), {
226
+ headers: requestHeaders,
227
+ ...siteVersion != null ? { cache: "no-store" } : {},
218
228
  ...this.fetchOptions(siteVersion)
219
229
  });
220
230
  return response;
@@ -226,11 +236,11 @@ Received "${apiKey}" instead.`
226
236
  return {};
227
237
  }
228
238
  getPagesInternal = async ({
229
- siteVersion = import_site_version.MakeswiftSiteVersion.Live,
239
+ siteVersion = null,
230
240
  ...params
231
241
  } = {}) => {
232
242
  const queryParams = getPagesQueryParams(params);
233
- const response = await this.fetch(`v4/pages?${queryParams.toString()}`, siteVersion);
243
+ const response = await this.fetch(`v5/pages?${queryParams.toString()}`, siteVersion);
234
244
  if (!response.ok) {
235
245
  console.error("Failed to get pages", {
236
246
  response: await failedResponseBody(response),
@@ -249,11 +259,8 @@ Received "${apiKey}" instead.`
249
259
  return parsedResponse.data;
250
260
  };
251
261
  getPages = (0, import_pagination.toIterablePaginationResult)(this.getPagesInternal);
252
- async getPage(pathname, {
253
- siteVersion = import_site_version.MakeswiftSiteVersion.Live,
254
- locale
255
- } = {}) {
256
- const url = new URL(`v2/pages/${encodeURIComponent(pathname)}`, this.apiOrigin);
262
+ async getPage(pathname, { siteVersion = null, locale } = {}) {
263
+ const url = new URL(`v3/pages/${encodeURIComponent(pathname)}`, this.apiOrigin);
257
264
  if (locale)
258
265
  url.searchParams.set("locale", locale);
259
266
  const response = await this.fetch(url.pathname + url.search, siteVersion);
@@ -273,7 +280,7 @@ Received "${apiKey}" instead.`
273
280
  async getTypographies(typographyIds, siteVersion) {
274
281
  if (typographyIds.length === 0)
275
282
  return [];
276
- const url = new URL(`v2/typographies/bulk`, this.apiOrigin);
283
+ const url = new URL(`v3/typographies/bulk`, this.apiOrigin);
277
284
  typographyIds.forEach((id) => {
278
285
  url.searchParams.append("ids", id);
279
286
  });
@@ -291,7 +298,7 @@ Received "${apiKey}" instead.`
291
298
  async getSwatches(ids, siteVersion) {
292
299
  if (ids.length === 0)
293
300
  return [];
294
- const url = new URL(`v2/swatches/bulk`, this.apiOrigin);
301
+ const url = new URL(`v3/swatches/bulk`, this.apiOrigin);
295
302
  ids.forEach((id) => {
296
303
  url.searchParams.append("ids", id);
297
304
  });
@@ -448,7 +455,7 @@ Received "${apiKey}" instead.`
448
455
  };
449
456
  const siteVersion = await siteVersionPromise;
450
457
  const response = await this.fetch(
451
- `v3/pages/${encodeURIComponent(pathname)}/document?${queryParams()}`,
458
+ `v4/pages/${encodeURIComponent(pathname)}/document?${queryParams()}`,
452
459
  siteVersion
453
460
  );
454
461
  if (!response.ok) {
@@ -491,11 +498,11 @@ Received "${apiKey}" instead.`
491
498
  const canAttemptLocaleFallback = !baseLocaleWasRequested && allowLocaleFallback;
492
499
  let response;
493
500
  const responseForRequestedLocale = await this.fetch(
494
- `v1/element-trees/${encodeURIComponent(id)}?${searchParams.toString()}`,
501
+ `v2/element-trees/${encodeURIComponent(id)}?${searchParams.toString()}`,
495
502
  siteVersion
496
503
  );
497
504
  if (responseForRequestedLocale.status === 404 && canAttemptLocaleFallback) {
498
- response = await this.fetch(`v1/element-trees/${encodeURIComponent(id)}`, siteVersion);
505
+ response = await this.fetch(`v2/element-trees/${encodeURIComponent(id)}`, siteVersion);
499
506
  } else {
500
507
  response = responseForRequestedLocale;
501
508
  }
@@ -535,7 +542,7 @@ Received "${apiKey}" instead.`
535
542
  };
536
543
  }
537
544
  async getSwatch(swatchId, siteVersion) {
538
- const response = await this.fetch(`v2/swatches/${swatchId}`, siteVersion);
545
+ const response = await this.fetch(`v3/swatches/${swatchId}`, siteVersion);
539
546
  if (!response.ok) {
540
547
  if (response.status !== 404) {
541
548
  console.error(`Failed to get swatch '${swatchId}'`, {
@@ -556,7 +563,7 @@ Received "${apiKey}" instead.`
556
563
  return result.file;
557
564
  }
558
565
  async getTypography(typographyId, siteVersion) {
559
- const response = await this.fetch(`v2/typographies/${typographyId}`, siteVersion);
566
+ const response = await this.fetch(`v3/typographies/${typographyId}`, siteVersion);
560
567
  if (!response.ok) {
561
568
  if (response.status !== 404) {
562
569
  console.error(`Failed to get typography '${typographyId}'`, {
@@ -570,7 +577,7 @@ Received "${apiKey}" instead.`
570
577
  return typography;
571
578
  }
572
579
  async getGlobalElement(globalElementId, siteVersion) {
573
- const response = await this.fetch(`v2/global-elements/${globalElementId}`, siteVersion);
580
+ const response = await this.fetch(`v3/global-elements/${globalElementId}`, siteVersion);
574
581
  if (!response.ok) {
575
582
  if (response.status !== 404) {
576
583
  console.error(`Failed to get global element '${globalElementId}'`, {
@@ -585,7 +592,7 @@ Received "${apiKey}" instead.`
585
592
  }
586
593
  async getLocalizedGlobalElement(globalElementId, locale, siteVersion) {
587
594
  const response = await this.fetch(
588
- `v2/localized-global-elements/${globalElementId}?locale=${locale}`,
595
+ `v3/localized-global-elements/${globalElementId}?locale=${locale}`,
589
596
  siteVersion
590
597
  );
591
598
  if (!response.ok) {
@@ -604,7 +611,7 @@ Received "${apiKey}" instead.`
604
611
  async getPagePathnameSlices(pageIds, siteVersion, { locale }) {
605
612
  if (pageIds.length === 0)
606
613
  return [];
607
- const url = new URL(`v2/page-pathname-slices/bulk`, this.apiOrigin);
614
+ const url = new URL(`v3/page-pathname-slices/bulk`, this.apiOrigin);
608
615
  pageIds.forEach((id) => url.searchParams.append("ids", id));
609
616
  if (locale != null)
610
617
  url.searchParams.set("locale", locale);
@@ -640,44 +647,44 @@ Received "${apiKey}" instead.`
640
647
  );
641
648
  return result.table;
642
649
  }
643
- /**
644
- * @deprecated `getSitemap` is deprecated. We recommend constructing a sitemap
645
- * using data from `getPages` instead.
646
- */
647
- async getSitemap({
648
- limit = 50,
649
- after,
650
- pathnamePrefix,
651
- locale
652
- } = {}) {
653
- const url = new URL("v1/sitemap", this.apiOrigin);
654
- url.searchParams.set("limit", limit.toString());
655
- if (after != null)
656
- url.searchParams.set("after", after);
657
- if (pathnamePrefix != null)
658
- url.searchParams.set("pathnamePrefix", pathnamePrefix);
659
- if (locale != null)
660
- url.searchParams.set("locale", locale);
661
- const response = await this.fetch(url.pathname + url.search, import_site_version.MakeswiftSiteVersion.Live);
662
- if (!response.ok) {
663
- console.error("Failed to get sitemap ", {
664
- response: await failedResponseBody(response),
665
- limit,
666
- after,
667
- pathnamePrefix,
668
- locale
669
- });
670
- throw new Error(`Failed to get sitemap with error: ${responseError(response)}`);
671
- }
672
- const sitemap = await response.json();
673
- return sitemap;
674
- }
675
650
  getTranslatableData(elementTree) {
676
651
  return this.runtime.getTranslatableData(elementTree);
677
652
  }
678
653
  mergeTranslatedData(elementTree, translatedData) {
679
654
  return this.runtime.mergeTranslatedData(elementTree, translatedData);
680
655
  }
656
+ async readPreviewToken(token) {
657
+ const response = await fetch(new URL("v1/preview-tokens/reads", this.apiOrigin).toString(), {
658
+ method: "POST",
659
+ headers: {
660
+ ["X-API-Key"]: this.apiKey,
661
+ "Makeswift-Site-API-Key": this.apiKey,
662
+ "Content-Type": "application/json"
663
+ },
664
+ body: JSON.stringify({ token }),
665
+ cache: "no-store"
666
+ });
667
+ if (!response.ok) {
668
+ if (response.status === 401) {
669
+ console.error(`Preview token is invalid or expired`, {
670
+ response: await failedResponseBody(response)
671
+ });
672
+ } else if (response.status !== 404) {
673
+ console.error(`Failed to verify preview token`, {
674
+ response: await failedResponseBody(response)
675
+ });
676
+ }
677
+ return null;
678
+ }
679
+ const json = await response.json();
680
+ const parsed = previewTokenPayloadSchema.safeParse(json);
681
+ if (!parsed.success) {
682
+ throw new Error(
683
+ `Failed to parse preview token payload: ${parsed.error.errors.map((e) => e.message).join("; ")}`
684
+ );
685
+ }
686
+ return parsed.data;
687
+ }
681
688
  }
682
689
  // Annotate the CommonJS export names for ESM import in node:
683
690
  0 && (module.exports = {
@@ -685,6 +692,7 @@ Received "${apiKey}" instead.`
685
692
  SnippetLocation,
686
693
  componentDocumentToRootEmbeddedDocument,
687
694
  failedResponseBody,
688
- pageToRootDocument
695
+ pageToRootDocument,
696
+ previewTokenPayloadSchema
689
697
  });
690
698
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/client/index.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n APIResourceType,\n File,\n GlobalElement,\n LocalizedGlobalElement,\n PagePathnameSlice,\n Swatch,\n Table,\n Typography,\n} from '../api'\nimport { GraphQLClient } from '../api/graphql/client'\nimport { FileQuery, IntrospectedResourcesQuery, TableQuery } from '../api/graphql/documents'\nimport {\n FileQueryResult,\n FileQueryVariables,\n IntrospectedResourcesQueryResult,\n IntrospectedResourcesQueryVariables,\n SnippetLocation,\n TableQueryResult,\n TableQueryVariables,\n} from '../api/graphql/generated/types'\n\nimport { CacheData } from '../api/react'\nimport { Descriptor as PropControllerDescriptor } from '../prop-controllers/descriptors'\nimport {\n getElementChildren,\n getSwatchIds,\n getFileIds,\n getPageIds,\n getTableIds,\n getTypographyIds,\n} from '../prop-controllers/introspection'\nimport { ReactRuntime } from '../runtimes/react'\nimport {\n type Element,\n type ElementData,\n type Data,\n type Document,\n getPropControllerDescriptors,\n isElementReference,\n} from '../state/react-page'\nimport { MakeswiftSiteVersion } from '../api/site-version'\nimport { toIterablePaginationResult } from '../utils/pagination'\nimport { deterministicUUID } from '../utils/deterministic-uuid'\nimport { Schema } from '@makeswift/controls'\nimport { EMBEDDED_DOCUMENT_TYPE, EmbeddedDocument } from '../state/modules/read-only-documents'\n\nexport { SnippetLocation } from '../api/graphql/generated/types'\n\nconst makeswiftPageResultSchema = z.object({\n id: z.string(),\n path: z.string(),\n title: z.string().nullable(),\n description: z.string().nullable(),\n canonicalUrl: z.string().nullable(),\n socialImageUrl: z.string().nullable(),\n sitemapPriority: z.number().nullable(),\n sitemapFrequency: z\n .enum(['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never'])\n .nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n publishedAt: z.string().nullable(),\n isOnline: z.boolean().nullable(),\n excludedFromSearch: z.boolean().nullable(),\n locale: z.string(),\n localizedVariants: z.array(\n z.object({\n locale: z.string(),\n path: z.string(),\n }),\n ),\n})\n\nconst makeswiftGetPagesResultAPISchema = z.object({\n data: z.array(makeswiftPageResultSchema),\n hasMore: z.boolean(),\n})\n\nconst makeswiftGetPagesParamsSchema = z.object({\n limit: z.number().optional(),\n after: z.string().optional(),\n sortBy: z.enum(['title', 'path', 'description', 'createdAt', 'updatedAt']).optional(),\n sortDirection: z.enum(['asc', 'desc']).optional(),\n includeOffline: z.boolean().optional(),\n pathPrefix: z.string().optional(),\n locale: z.string().optional(),\n})\n\nfunction getPagesQueryParams({\n limit = 20,\n after,\n sortBy,\n sortDirection,\n includeOffline,\n pathPrefix,\n locale,\n}: GetPagesParams): URLSearchParams {\n const params = new URLSearchParams()\n\n if (limit != null) params.set('limit', limit.toString())\n if (after != null) params.set('after', after)\n if (sortBy != null) params.set('sortBy', sortBy)\n if (sortDirection != null) params.set('sortDirection', sortDirection)\n if (includeOffline != null) params.set('includeOffline', includeOffline.toString())\n if (pathPrefix != null) params.set('pathPrefix', pathPrefix)\n if (locale != null) params.set('locale', locale)\n\n return params\n}\n\ntype GetPagesParams = z.infer<typeof makeswiftGetPagesParamsSchema>\nexport type MakeswiftPage = z.infer<typeof makeswiftPageResultSchema>\nexport type MakeswiftGetPagesResult = z.infer<typeof makeswiftGetPagesResultAPISchema>\n\nexport type MakeswiftPageDocument = {\n id: string\n site: { id: string }\n data: Element\n snippets: Snippet[]\n fonts: Font[]\n meta: Meta\n seo: Seo\n localizedPages: LocalizedPage[]\n locale: string | null\n}\n\nexport function pageToRootDocument(pageDocument: MakeswiftPageDocument): Document {\n const { locale, localizedPages, id, data } = pageDocument\n const localizedPage = localizedPages.find(({ parentId }) => parentId == null)\n return localizedPage\n ? { key: localizedPage.elementTreeId, rootElement: localizedPage.data, locale }\n : { key: id, rootElement: data, locale }\n}\n\nexport type MakeswiftPageSnapshot = {\n document: MakeswiftPageDocument\n cacheData: CacheData\n}\n\nconst makeswiftComponentDocumentSchema = z.object({\n id: z.string(),\n name: z.string().nullable(),\n locale: z.string().nullable(),\n data: Schema.element,\n siteId: z.string(),\n inheritsFromParent: z.boolean(),\n})\n\nexport type MakeswiftComponentDocument = z.infer<typeof makeswiftComponentDocumentSchema>\n\nconst makeswiftComponentDocumentFallbackSchema = z.object({\n id: z.string(),\n locale: z.string().nullable(),\n data: z.null(),\n})\n\nexport type MakeswiftComponentDocumentFallback = z.infer<\n typeof makeswiftComponentDocumentFallbackSchema\n>\n\nexport type MakeswiftComponentSnapshotMetadata = {\n allowLocaleFallback: boolean\n requestedLocale: string | null\n}\n\nexport type MakeswiftComponentSnapshot = {\n document: MakeswiftComponentDocument | MakeswiftComponentDocumentFallback\n key: string\n cacheData: CacheData\n meta: MakeswiftComponentSnapshotMetadata\n}\n\nexport function componentDocumentToRootEmbeddedDocument({\n document,\n documentKey,\n name,\n type,\n description,\n meta,\n}: {\n document: MakeswiftComponentDocument | MakeswiftComponentDocumentFallback\n documentKey: string\n name: string\n type: string\n description?: string\n meta: MakeswiftComponentSnapshotMetadata\n}): EmbeddedDocument {\n const { data: rootElement, locale, id } = document\n\n if (rootElement != null && rootElement.type !== type) {\n throw new Error(\n `Type \"${rootElement.type}\" does not match the expected type \"${type}\" from the snapshot`,\n )\n }\n\n const rootDocument: EmbeddedDocument = {\n key: documentKey,\n rootElement: rootElement ?? {\n // Fallback rootElement\n // Create a stable uuid so two different clients will have the same empty element data.\n // This is needed to make presence feature work for an element that is not yet created.\n key: deterministicUUID({ id, locale, seed: documentKey }),\n type,\n props: {},\n },\n locale,\n id,\n type,\n name,\n meta: { ...meta, description },\n __type: EMBEDDED_DOCUMENT_TYPE,\n }\n\n return rootDocument\n}\n\nexport async function failedResponseBody(response: Response): Promise<unknown> {\n try {\n const text = await response.text()\n try {\n return JSON.parse(text)\n } catch {\n return text\n }\n } catch (e) {\n return `Failed to extract response body: ${e}`\n }\n}\n\nfunction responseError(response: Response): string {\n return `${response.status} ${response.statusText}`\n}\n\nexport type Snippet = {\n id: string\n code: string\n location: SnippetLocation\n liveEnabled: boolean\n builderEnabled: boolean\n cleanup: string | null\n}\n\ntype Font = { family: string; variants: string[] }\n\ntype Meta = {\n title?: string | null\n description?: string | null\n keywords?: string | null\n socialImage?: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n favicon?: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n}\ntype Seo = {\n canonicalUrl?: string | null\n isIndexingBlocked?: boolean | null\n}\n\ntype LocalizedPage = {\n id: string\n data: Element\n elementTreeId: string\n parentId: string | null\n meta: Omit<Meta, 'favicon'>\n seo: Seo\n}\n\ntype MakeswiftConfig = {\n apiOrigin?: string\n runtime: ReactRuntime\n}\n\nexport type Sitemap = {\n id: string\n loc: string\n lastmod?: string\n changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'\n priority?: number\n alternateRefs?: {\n hreflang: string\n href: string\n }[]\n}[]\n\nconst pagePathnameSlicesAPISchema = z.array(\n z\n .object({\n id: z.string(),\n basePageId: z.string(),\n pathname: z.string(),\n localizedPathname: z.string().optional(),\n __typename: z.literal('PagePathnameSlice'),\n })\n .nullable(),\n)\n\nconst getPageAPISchema = z.object({\n pathname: z.string(),\n locale: z.string(),\n alternate: z.array(\n z.object({\n pathname: z.string(),\n locale: z.string(),\n }),\n ),\n})\n\ntype GetPageAPI = z.infer<typeof getPageAPISchema>\n\nexport class MakeswiftClient {\n private graphqlClient: GraphQLClient\n private runtime: ReactRuntime\n\n readonly apiKey: string\n readonly apiOrigin: URL\n\n constructor(\n apiKey: string,\n { apiOrigin = 'https://api.makeswift.com', runtime }: MakeswiftConfig,\n ) {\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift client must be passed a valid Makeswift site API key: ' +\n \"`new Makeswift('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n this.apiKey = apiKey\n\n try {\n this.apiOrigin = new URL(apiOrigin)\n } catch {\n throw new Error(\n `The Makeswift client received an invalid \\`apiOrigin\\` parameter: \"${apiOrigin}\".`,\n )\n }\n\n this.graphqlClient = new GraphQLClient(new URL('graphql', apiOrigin).href)\n this.runtime = runtime\n }\n\n private async fetch(path: string, siteVersion: MakeswiftSiteVersion): Promise<Response> {\n const response = await fetch(new URL(path, this.apiOrigin).toString(), {\n headers: {\n ['X-API-Key']: this.apiKey,\n 'Makeswift-Site-API-Key': this.apiKey,\n 'Makeswift-Site-Version': siteVersion,\n },\n ...(siteVersion === MakeswiftSiteVersion.Working ? { cache: 'no-store' } : {}),\n ...this.fetchOptions(siteVersion),\n })\n\n return response\n }\n\n /**\n * Override this method to provide additional fetch options, e.g. revalidation, cache tags, etc.\n */\n fetchOptions(_siteVersion: MakeswiftSiteVersion): Record<string, unknown> {\n return {}\n }\n\n private getPagesInternal = async ({\n siteVersion = MakeswiftSiteVersion.Live,\n ...params\n }: {\n siteVersion?: MakeswiftSiteVersion\n } & GetPagesParams = {}): Promise<MakeswiftGetPagesResult> => {\n const queryParams = getPagesQueryParams(params)\n\n const response = await this.fetch(`v4/pages?${queryParams.toString()}`, siteVersion)\n if (!response.ok) {\n console.error('Failed to get pages', {\n response: await failedResponseBody(response),\n siteVersion,\n params,\n })\n\n throw new Error(`Failed to get pages: ${responseError(response)}`)\n }\n\n const result = await response.json()\n const parsedResponse = makeswiftGetPagesResultAPISchema.safeParse(result)\n if (!parsedResponse.success) {\n throw new Error(\n `Failed to parse 'getPages' response: ${parsedResponse.error.errors.map(e => e.message).join('; ')}`,\n )\n }\n return parsedResponse.data\n }\n\n getPages = toIterablePaginationResult(this.getPagesInternal)\n\n async getPage(\n pathname: string,\n {\n siteVersion = MakeswiftSiteVersion.Live,\n locale,\n }: { siteVersion?: MakeswiftSiteVersion; locale?: string } = {},\n ): Promise<GetPageAPI | null> {\n const url = new URL(`v2/pages/${encodeURIComponent(pathname)}`, this.apiOrigin)\n if (locale) url.searchParams.set('locale', locale)\n\n const response = await this.fetch(url.pathname + url.search, siteVersion)\n\n if (!response.ok) {\n if (response.status === 404) return null\n\n console.error(`Failed to get page snapshot for '${pathname}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n locale,\n })\n\n throw new Error(`Failed to get page snapshot for '${pathname}': ${responseError(response)}`)\n }\n\n const json = await response.json()\n\n return getPageAPISchema.parse(json)\n }\n\n private async getTypographies(\n typographyIds: string[],\n siteVersion: MakeswiftSiteVersion,\n ): Promise<(Typography | null)[]> {\n if (typographyIds.length === 0) return []\n\n const url = new URL(`v2/typographies/bulk`, this.apiOrigin)\n\n typographyIds.forEach(id => {\n url.searchParams.append('ids', id)\n })\n\n const response = await this.fetch(url.pathname + url.search, siteVersion)\n\n if (!response.ok) {\n console.error(`Failed to get typographies for [${typographyIds.join(', ')}]`, {\n response: await failedResponseBody(response),\n siteVersion,\n })\n\n return []\n }\n\n const body = await response.json()\n\n return body\n }\n\n private async getSwatches(\n ids: string[],\n siteVersion: MakeswiftSiteVersion,\n ): Promise<(Swatch | null)[]> {\n if (ids.length === 0) return []\n\n const url = new URL(`v2/swatches/bulk`, this.apiOrigin)\n\n ids.forEach(id => {\n url.searchParams.append('ids', id)\n })\n\n const response = await this.fetch(url.pathname + url.search, siteVersion)\n\n if (!response.ok) {\n console.error(`Failed to get swatches for ${ids.join(', ')}`, {\n response: await failedResponseBody(response),\n siteVersion,\n })\n\n return []\n }\n\n return await response.json()\n }\n\n private async getIntrospectedResources(\n {\n swatchIds,\n ...introspectedResourceIds\n }: IntrospectedResourcesQueryVariables & { swatchIds: string[] },\n siteVersion: MakeswiftSiteVersion,\n ): Promise<IntrospectedResourcesQueryResult & { swatches: (Swatch | null)[] }> {\n const result = await this.graphqlClient.request<\n IntrospectedResourcesQueryResult,\n IntrospectedResourcesQueryVariables\n >(IntrospectedResourcesQuery, introspectedResourceIds)\n const swatches = await this.getSwatches(swatchIds, siteVersion)\n\n return { ...result, swatches }\n }\n\n private async introspect(\n element: Element,\n siteVersion: MakeswiftSiteVersion,\n locale: string | null,\n ): Promise<CacheData> {\n const runtime = this.runtime\n const descriptors = getPropControllerDescriptors(runtime.store.getState())\n const swatchIds = new Set<string>()\n const fileIds = new Set<string>()\n const typographyIds = new Set<string>()\n const tableIds = new Set<string>()\n const pageIds = new Set<string>()\n const globalElements = new Map<string, GlobalElement | null>()\n const localizedGlobalElements = new Map<string, LocalizedGlobalElement | null>()\n const localizedResourcesMap = new Map<string, string | null>()\n\n const remaining = [element]\n const seen = new Set<string>()\n let current: Element | undefined\n\n while ((current = remaining.pop())) {\n let element: ElementData\n\n if (isElementReference(current)) {\n const globalElementId = current.value\n const globalElement = await this.getGlobalElement(globalElementId, siteVersion)\n let elementData = globalElement?.data\n\n if (locale) {\n const localizedGlobalElement = await this.getLocalizedGlobalElement(\n globalElementId,\n locale,\n siteVersion,\n )\n\n if (localizedGlobalElement) {\n // Update the logic here when we can merge element trees\n elementData = localizedGlobalElement.data\n\n localizedResourcesMap.set(globalElementId, localizedGlobalElement.id)\n localizedGlobalElements.set(localizedGlobalElement.id, localizedGlobalElement)\n }\n }\n\n globalElements.set(globalElementId, globalElement)\n\n if (elementData == null) continue\n\n element = elementData as ElementData\n } else {\n element = current\n }\n\n const elementDescriptors = descriptors.get(element.type)\n\n if (elementDescriptors == null) continue\n\n getResourcesFromElementDescriptors(elementDescriptors, element.props)\n\n function getResourcesFromElementDescriptors(\n elementDescriptors: Record<string, PropControllerDescriptor>,\n props: ElementData['props'],\n ) {\n Object.entries(elementDescriptors).forEach(([propName, descriptor]) => {\n getSwatchIds(descriptor, props[propName]).forEach(swatchId => {\n swatchIds.add(swatchId)\n })\n\n getFileIds(descriptor, props[propName]).forEach(fileId => fileIds.add(fileId))\n\n getTypographyIds(descriptor, props[propName]).forEach(typographyId =>\n typographyIds.add(typographyId),\n )\n\n getTableIds(descriptor, props[propName]).forEach(tableId => tableIds.add(tableId))\n\n getPageIds(descriptor, props[propName]).forEach(pageId => pageIds.add(pageId))\n\n getElementChildren(descriptor, props[propName]).forEach(child => {\n if (!seen.has(child.key)) {\n seen.add(child.key)\n\n remaining.push(child)\n }\n })\n })\n }\n }\n\n const typographies = await this.getTypographies([...typographyIds], siteVersion)\n\n typographies.forEach(typography => {\n typography?.style.forEach(style => {\n const swatchId = style.value.color?.swatchId\n\n if (swatchId != null) swatchIds.add(swatchId)\n })\n })\n\n const pagePathnames = await this.getPagePathnameSlices([...pageIds], siteVersion, { locale })\n\n const { swatches, files, tables } = await this.getIntrospectedResources(\n {\n swatchIds: [...swatchIds],\n fileIds: [...fileIds],\n tableIds: [...tableIds],\n },\n siteVersion,\n )\n\n const apiResources = {\n [APIResourceType.Swatch]: [...swatchIds].map(id => ({\n id,\n value: swatches.find(swatch => swatch?.id === id) ?? null,\n })),\n [APIResourceType.File]: [...fileIds].map(id => ({\n id,\n value: files.find(file => file?.id === id) ?? null,\n })),\n [APIResourceType.Typography]: [...typographyIds].map(id => ({\n id,\n value: typographies.find(typography => typography?.id === id) ?? null,\n })),\n [APIResourceType.Table]: [...tableIds].map(id => ({\n id,\n value: tables.find(table => table?.id === id) ?? null,\n })),\n [APIResourceType.PagePathnameSlice]: [...pageIds].map(id => ({\n id,\n value: pagePathnames.find(pagePathnameSlice => pagePathnameSlice?.id === id) ?? null,\n locale,\n })),\n [APIResourceType.GlobalElement]: [...globalElements.entries()].map(([id, value]) => ({\n id,\n value,\n })),\n [APIResourceType.LocalizedGlobalElement]: [...localizedGlobalElements.entries()].map(\n ([id, value]) => ({\n id,\n value,\n locale,\n }),\n ),\n }\n\n return {\n apiResources,\n localizedResourcesMap:\n locale != null ? { [locale]: Object.fromEntries(localizedResourcesMap.entries()) } : {},\n }\n }\n\n async getPageSnapshot(\n pathname: string,\n {\n siteVersion: siteVersionPromise,\n locale,\n allowLocaleFallback = true,\n }: {\n siteVersion: MakeswiftSiteVersion | Promise<MakeswiftSiteVersion>\n locale?: string\n allowLocaleFallback?: boolean\n },\n ): Promise<MakeswiftPageSnapshot | null> {\n const queryParams = (): string => {\n const params = new URLSearchParams()\n if (locale) params.set('locale', locale)\n if (allowLocaleFallback != null) params.set('allowLocaleFallback', `${allowLocaleFallback}`)\n return params.toString()\n }\n\n const siteVersion = await siteVersionPromise\n const response = await this.fetch(\n `v3/pages/${encodeURIComponent(pathname)}/document?${queryParams()}`,\n siteVersion,\n )\n\n if (!response.ok) {\n if (response.status === 404) return null\n\n console.error(`Failed to get page snapshot for '${pathname}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n locale,\n })\n\n throw new Error(`Failed to get page snapshot for '${pathname}': ${responseError(response)}`)\n }\n\n const document: MakeswiftPageDocument = await response.json()\n const baseLocalizedPage = document.localizedPages.find(({ parentId }) => parentId == null)\n\n const cacheData = await this.introspect(\n baseLocalizedPage?.data ?? document.data,\n siteVersion,\n // The /v3/pages endpoint returns null for document.locale when the requested locale is the default.\n // This legacy behavior is set to change with the upcoming /v4/pages endpoint.\n // We rely on document.locale when reading from the API cache, so ensure the cache is built during\n // introspection using the same value.\n document.locale,\n )\n\n return {\n document,\n cacheData,\n }\n }\n\n async getComponentSnapshot(\n id: string,\n {\n siteVersion: siteVersionPromise,\n locale,\n allowLocaleFallback = true,\n }: {\n siteVersion: MakeswiftSiteVersion | Promise<MakeswiftSiteVersion>\n locale?: string\n allowLocaleFallback?: boolean\n },\n ): Promise<MakeswiftComponentSnapshot> {\n const searchParams = new URLSearchParams()\n if (locale) searchParams.set('locale', locale)\n\n const siteVersion = await siteVersionPromise\n const key = deterministicUUID({ id, locale, seed: this.apiKey.split('-').at(0) })\n const baseLocaleWasRequested = locale == null\n const canAttemptLocaleFallback = !baseLocaleWasRequested && allowLocaleFallback\n\n let response\n const responseForRequestedLocale = await this.fetch(\n `v1/element-trees/${encodeURIComponent(id)}?${searchParams.toString()}`,\n siteVersion,\n )\n\n if (responseForRequestedLocale.status === 404 && canAttemptLocaleFallback) {\n response = await this.fetch(`v1/element-trees/${encodeURIComponent(id)}`, siteVersion)\n } else {\n response = responseForRequestedLocale\n }\n\n if (!response.ok) {\n if (response.status === 404) {\n return {\n document: {\n id,\n locale: locale ?? null,\n data: null,\n },\n key,\n cacheData: CacheData.empty(),\n meta: {\n allowLocaleFallback,\n requestedLocale: locale ?? null,\n },\n }\n }\n\n console.error(`Failed to get component snapshot for '${id}':`, {\n response: await failedResponseBody(response),\n siteVersion,\n locale,\n })\n\n throw new Error(`Failed to get component snapshot for '${id}': ${responseError(response)}`)\n }\n\n const document = makeswiftComponentDocumentSchema.parse(await response.json())\n const cacheData = await this.introspect(document.data, siteVersion, locale ?? null)\n\n return {\n document,\n cacheData,\n key,\n meta: {\n allowLocaleFallback,\n requestedLocale: locale ?? null,\n },\n }\n }\n\n async getSwatch(swatchId: string, siteVersion: MakeswiftSiteVersion): Promise<Swatch | null> {\n const response = await this.fetch(`v2/swatches/${swatchId}`, siteVersion)\n\n if (!response.ok) {\n if (response.status !== 404) {\n console.error(`Failed to get swatch '${swatchId}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n })\n }\n\n return null\n }\n\n const swatch = await response.json()\n\n return swatch\n }\n\n async getFile(fileId: string): Promise<File | null> {\n const result = await this.graphqlClient.request<FileQueryResult, FileQueryVariables>(\n FileQuery,\n { fileId },\n )\n\n return result.file\n }\n\n async getTypography(\n typographyId: string,\n siteVersion: MakeswiftSiteVersion,\n ): Promise<Typography | null> {\n const response = await this.fetch(`v2/typographies/${typographyId}`, siteVersion)\n\n if (!response.ok) {\n if (response.status !== 404) {\n console.error(`Failed to get typography '${typographyId}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n })\n }\n\n return null\n }\n\n const typography = await response.json()\n\n return typography\n }\n\n async getGlobalElement(\n globalElementId: string,\n siteVersion: MakeswiftSiteVersion,\n ): Promise<GlobalElement | null> {\n const response = await this.fetch(`v2/global-elements/${globalElementId}`, siteVersion)\n\n if (!response.ok) {\n if (response.status !== 404) {\n console.error(`Failed to get global element '${globalElementId}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n })\n }\n\n return null\n }\n\n const globalElement = await response.json()\n\n return globalElement\n }\n\n async getLocalizedGlobalElement(\n globalElementId: string,\n locale: string,\n siteVersion: MakeswiftSiteVersion,\n ): Promise<LocalizedGlobalElement | null> {\n const response = await this.fetch(\n `v2/localized-global-elements/${globalElementId}?locale=${locale}`,\n siteVersion,\n )\n\n if (!response.ok) {\n if (response.status !== 404) {\n console.error(`Failed to get localized global element '${globalElementId}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n locale,\n })\n }\n\n return null\n }\n\n const localizedGlobalElement = await response.json()\n\n return localizedGlobalElement\n }\n\n async getPagePathnameSlices(\n pageIds: string[],\n siteVersion: MakeswiftSiteVersion,\n { locale }: { locale?: string | null },\n ): Promise<(PagePathnameSlice | null)[]> {\n if (pageIds.length === 0) return []\n\n const url = new URL(`v2/page-pathname-slices/bulk`, this.apiOrigin)\n\n pageIds.forEach(id => url.searchParams.append('ids', id))\n if (locale != null) url.searchParams.set('locale', locale)\n\n const response = await this.fetch(url.pathname + url.search, siteVersion)\n\n if (!response.ok) {\n console.error(`Failed to get page pathname slice(s) for ${pageIds.join(', ')}`, {\n response: await failedResponseBody(response),\n siteVersion,\n locale,\n })\n\n return []\n }\n\n const json = await response.json()\n\n const pagePathnameSlices = pagePathnameSlicesAPISchema.parse(json)\n\n // We're mapping the basePageId to be the id, because we're still using the GraphQL\n // fragment as our APIResource. The id on the APIResource needs to match the pageId\n // so that we can find the corresponding page pathname slice when we call getPagePathnameSlice(pageId).\n // TODO: Update this once we move away from the GraphQL fragments.\n return pagePathnameSlices.map(pagePathnameSlice => {\n if (pagePathnameSlice == null) return null\n\n return {\n ...pagePathnameSlice,\n id: pagePathnameSlice.basePageId,\n localizedPathname: pagePathnameSlice.localizedPathname ?? null,\n }\n })\n }\n\n async getPagePathnameSlice(\n pageId: string,\n siteVersion: MakeswiftSiteVersion,\n { locale }: { locale?: string } = {},\n ): Promise<PagePathnameSlice | null> {\n const pagePathnameSlices = await this.getPagePathnameSlices([pageId], siteVersion, { locale })\n\n return pagePathnameSlices.at(0) ?? null\n }\n\n async getTable(tableId: string): Promise<Table | null> {\n const result = await this.graphqlClient.request<TableQueryResult, TableQueryVariables>(\n TableQuery,\n { tableId },\n )\n\n return result.table\n }\n\n /**\n * @deprecated `getSitemap` is deprecated. We recommend constructing a sitemap\n * using data from `getPages` instead.\n */\n async getSitemap({\n limit = 50,\n after,\n pathnamePrefix,\n locale,\n }: {\n limit?: number\n after?: string\n pathnamePrefix?: string\n locale?: string\n } = {}): Promise<Sitemap> {\n const url = new URL('v1/sitemap', this.apiOrigin)\n\n url.searchParams.set('limit', limit.toString())\n if (after != null) url.searchParams.set('after', after)\n if (pathnamePrefix != null) url.searchParams.set('pathnamePrefix', pathnamePrefix)\n if (locale != null) url.searchParams.set('locale', locale)\n\n const response = await this.fetch(url.pathname + url.search, MakeswiftSiteVersion.Live)\n\n if (!response.ok) {\n console.error('Failed to get sitemap ', {\n response: await failedResponseBody(response),\n limit,\n after,\n pathnamePrefix,\n locale,\n })\n\n throw new Error(`Failed to get sitemap with error: ${responseError(response)}`)\n }\n\n const sitemap = await response.json()\n\n return sitemap\n }\n\n getTranslatableData(elementTree: ElementData): Record<string, Data> {\n return this.runtime.getTranslatableData(elementTree)\n }\n\n mergeTranslatedData(elementTree: ElementData, translatedData: Record<string, Data>): Element {\n return this.runtime.mergeTranslatedData(elementTree, translatedData)\n }\n}\n"],"mappings":"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","names":["import_types","getResourcesFromElementDescriptors","elementDescriptors","element"]}
1
+ {"version":3,"sources":["../../../src/client/index.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n APIResourceType,\n File,\n GlobalElement,\n LocalizedGlobalElement,\n PagePathnameSlice,\n Swatch,\n Table,\n Typography,\n} from '../api'\nimport { GraphQLClient } from '../api/graphql/client'\nimport { FileQuery, IntrospectedResourcesQuery, TableQuery } from '../api/graphql/documents'\nimport {\n FileQueryResult,\n FileQueryVariables,\n IntrospectedResourcesQueryResult,\n IntrospectedResourcesQueryVariables,\n SnippetLocation,\n TableQueryResult,\n TableQueryVariables,\n} from '../api/graphql/generated/types'\n\nimport { CacheData } from '../api/react'\nimport { Descriptor as PropControllerDescriptor } from '../prop-controllers/descriptors'\nimport {\n getElementChildren,\n getSwatchIds,\n getFileIds,\n getPageIds,\n getTableIds,\n getTypographyIds,\n} from '../prop-controllers/introspection'\nimport { ReactRuntime } from '../runtimes/react'\nimport {\n type Element,\n type ElementData,\n type Data,\n type Document,\n getPropControllerDescriptors,\n isElementReference,\n} from '../state/react-page'\nimport { type SiteVersion } from '../api/site-version'\nimport { toIterablePaginationResult } from '../utils/pagination'\nimport { deterministicUUID } from '../utils/deterministic-uuid'\nimport { Schema } from '@makeswift/controls'\nimport { EMBEDDED_DOCUMENT_TYPE, EmbeddedDocument } from '../state/modules/read-only-documents'\n\nexport { SnippetLocation } from '../api/graphql/generated/types'\n\nconst makeswiftPageResultSchema = z.object({\n id: z.string(),\n path: z.string(),\n title: z.string().nullable(),\n description: z.string().nullable(),\n canonicalUrl: z.string().nullable(),\n socialImageUrl: z.string().nullable(),\n sitemapPriority: z.number().nullable(),\n sitemapFrequency: z\n .enum(['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never'])\n .nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n publishedAt: z.string().nullable(),\n isOnline: z.boolean().nullable(),\n excludedFromSearch: z.boolean().nullable(),\n locale: z.string(),\n localizedVariants: z.array(\n z.object({\n locale: z.string(),\n path: z.string(),\n }),\n ),\n})\n\nconst makeswiftGetPagesResultAPISchema = z.object({\n data: z.array(makeswiftPageResultSchema),\n hasMore: z.boolean(),\n})\n\nconst makeswiftGetPagesParamsSchema = z.object({\n limit: z.number().optional(),\n after: z.string().optional(),\n sortBy: z.enum(['title', 'path', 'description', 'createdAt', 'updatedAt']).optional(),\n sortDirection: z.enum(['asc', 'desc']).optional(),\n includeOffline: z.boolean().optional(),\n pathPrefix: z.string().optional(),\n locale: z.string().optional(),\n})\n\nfunction getPagesQueryParams({\n limit = 20,\n after,\n sortBy,\n sortDirection,\n includeOffline,\n pathPrefix,\n locale,\n}: GetPagesParams): URLSearchParams {\n const params = new URLSearchParams()\n\n if (limit != null) params.set('limit', limit.toString())\n if (after != null) params.set('after', after)\n if (sortBy != null) params.set('sortBy', sortBy)\n if (sortDirection != null) params.set('sortDirection', sortDirection)\n if (includeOffline != null) params.set('includeOffline', includeOffline.toString())\n if (pathPrefix != null) params.set('pathPrefix', pathPrefix)\n if (locale != null) params.set('locale', locale)\n\n return params\n}\n\ntype GetPagesParams = z.infer<typeof makeswiftGetPagesParamsSchema>\nexport type MakeswiftPage = z.infer<typeof makeswiftPageResultSchema>\nexport type MakeswiftGetPagesResult = z.infer<typeof makeswiftGetPagesResultAPISchema>\n\nexport type MakeswiftPageDocument = {\n id: string\n site: { id: string }\n data: Element\n snippets: Snippet[]\n fonts: Font[]\n meta: Meta\n seo: Seo\n localizedPages: LocalizedPage[]\n locale: string | null\n}\n\nexport function pageToRootDocument(pageDocument: MakeswiftPageDocument): Document {\n const { locale, localizedPages, id, data } = pageDocument\n const localizedPage = localizedPages.find(({ parentId }) => parentId == null)\n return localizedPage\n ? { key: localizedPage.elementTreeId, rootElement: localizedPage.data, locale }\n : { key: id, rootElement: data, locale }\n}\n\nexport type MakeswiftPageSnapshot = {\n document: MakeswiftPageDocument\n cacheData: CacheData\n}\n\nconst makeswiftComponentDocumentSchema = z.object({\n id: z.string(),\n name: z.string().nullable(),\n locale: z.string().nullable(),\n data: Schema.element,\n siteId: z.string(),\n inheritsFromParent: z.boolean(),\n})\n\nexport type MakeswiftComponentDocument = z.infer<typeof makeswiftComponentDocumentSchema>\n\nconst makeswiftComponentDocumentFallbackSchema = z.object({\n id: z.string(),\n locale: z.string().nullable(),\n data: z.null(),\n})\n\nexport type MakeswiftComponentDocumentFallback = z.infer<\n typeof makeswiftComponentDocumentFallbackSchema\n>\n\nexport type MakeswiftComponentSnapshotMetadata = {\n allowLocaleFallback: boolean\n requestedLocale: string | null\n}\n\nexport type MakeswiftComponentSnapshot = {\n document: MakeswiftComponentDocument | MakeswiftComponentDocumentFallback\n key: string\n cacheData: CacheData\n meta: MakeswiftComponentSnapshotMetadata\n}\n\nexport const previewTokenPayloadSchema = z.object({\n payload: z.object({\n version: z.string(),\n }),\n})\n\nexport type PreviewTokenPayload = z.infer<typeof previewTokenPayloadSchema>\n\nexport function componentDocumentToRootEmbeddedDocument({\n document,\n documentKey,\n name,\n type,\n description,\n meta,\n}: {\n document: MakeswiftComponentDocument | MakeswiftComponentDocumentFallback\n documentKey: string\n name: string\n type: string\n description?: string\n meta: MakeswiftComponentSnapshotMetadata\n}): EmbeddedDocument {\n const { data: rootElement, locale, id } = document\n\n if (rootElement != null && rootElement.type !== type) {\n throw new Error(\n `Type \"${rootElement.type}\" does not match the expected type \"${type}\" from the snapshot`,\n )\n }\n\n const rootDocument: EmbeddedDocument = {\n key: documentKey,\n rootElement: rootElement ?? {\n // Fallback rootElement\n // Create a stable uuid so two different clients will have the same empty element data.\n // This is needed to make presence feature work for an element that is not yet created.\n key: deterministicUUID({ id, locale, seed: documentKey }),\n type,\n props: {},\n },\n locale,\n id,\n type,\n name,\n meta: { ...meta, description },\n __type: EMBEDDED_DOCUMENT_TYPE,\n }\n\n return rootDocument\n}\n\nexport async function failedResponseBody(response: Response): Promise<unknown> {\n try {\n const text = await response.text()\n try {\n return JSON.parse(text)\n } catch {\n return text\n }\n } catch (e) {\n return `Failed to extract response body: ${e}`\n }\n}\n\nfunction responseError(response: Response): string {\n return `${response.status} ${response.statusText}`\n}\n\nexport type Snippet = {\n id: string\n code: string\n location: SnippetLocation\n liveEnabled: boolean\n builderEnabled: boolean\n cleanup: string | null\n}\n\ntype Font = { family: string; variants: string[] }\n\ntype Meta = {\n title?: string | null\n description?: string | null\n keywords?: string | null\n socialImage?: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n favicon?: {\n id: string\n publicUrl: string\n mimetype: string\n } | null\n}\ntype Seo = {\n canonicalUrl?: string | null\n isIndexingBlocked?: boolean | null\n}\n\ntype LocalizedPage = {\n id: string\n data: Element\n elementTreeId: string\n parentId: string | null\n meta: Omit<Meta, 'favicon'>\n seo: Seo\n}\n\ntype MakeswiftConfig = {\n apiOrigin?: string\n runtime: ReactRuntime\n}\n\nexport type Sitemap = {\n id: string\n loc: string\n lastmod?: string\n changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'\n priority?: number\n alternateRefs?: {\n hreflang: string\n href: string\n }[]\n}[]\n\nconst pagePathnameSlicesAPISchema = z.array(\n z\n .object({\n id: z.string(),\n basePageId: z.string(),\n pathname: z.string(),\n localizedPathname: z.string().optional(),\n __typename: z.literal('PagePathnameSlice'),\n })\n .nullable(),\n)\n\nconst getPageAPISchema = z.object({\n pathname: z.string(),\n locale: z.string(),\n alternate: z.array(\n z.object({\n pathname: z.string(),\n locale: z.string(),\n }),\n ),\n})\n\ntype GetPageAPI = z.infer<typeof getPageAPISchema>\n\nexport class MakeswiftClient {\n private graphqlClient: GraphQLClient\n private runtime: ReactRuntime\n\n readonly apiKey: string\n readonly apiOrigin: URL\n\n constructor(\n apiKey: string,\n { apiOrigin = 'https://api.makeswift.com', runtime }: MakeswiftConfig,\n ) {\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift client must be passed a valid Makeswift site API key: ' +\n \"`new Makeswift('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n this.apiKey = apiKey\n\n try {\n this.apiOrigin = new URL(apiOrigin)\n } catch {\n throw new Error(\n `The Makeswift client received an invalid \\`apiOrigin\\` parameter: \"${apiOrigin}\".`,\n )\n }\n\n this.graphqlClient = new GraphQLClient(new URL('graphql', apiOrigin).href)\n this.runtime = runtime\n }\n\n private async fetch(path: string, siteVersion: SiteVersion | null): Promise<Response> {\n const requestUrl = new URL(path, this.apiOrigin)\n\n const requestHeaders = new Headers({\n 'X-API-Key': this.apiKey,\n 'Makeswift-Site-API-Key': this.apiKey,\n })\n\n if (siteVersion?.token) {\n requestUrl.searchParams.set('version', siteVersion.version)\n requestHeaders.set('makeswift-preview-token', siteVersion.token)\n }\n\n const response = await fetch(requestUrl.toString(), {\n headers: requestHeaders,\n ...(siteVersion != null ? { cache: 'no-store' } : {}),\n ...this.fetchOptions(siteVersion),\n })\n\n return response\n }\n\n /**\n * Override this method to provide additional fetch options, e.g. revalidation, cache tags, etc.\n */\n fetchOptions(_siteVersion: SiteVersion | null): Record<string, unknown> {\n return {}\n }\n\n private getPagesInternal = async ({\n siteVersion = null,\n ...params\n }: {\n siteVersion?: SiteVersion | null\n } & GetPagesParams = {}): Promise<MakeswiftGetPagesResult> => {\n const queryParams = getPagesQueryParams(params)\n\n const response = await this.fetch(`v5/pages?${queryParams.toString()}`, siteVersion)\n if (!response.ok) {\n console.error('Failed to get pages', {\n response: await failedResponseBody(response),\n siteVersion,\n params,\n })\n\n throw new Error(`Failed to get pages: ${responseError(response)}`)\n }\n\n const result = await response.json()\n const parsedResponse = makeswiftGetPagesResultAPISchema.safeParse(result)\n if (!parsedResponse.success) {\n throw new Error(\n `Failed to parse 'getPages' response: ${parsedResponse.error.errors.map(e => e.message).join('; ')}`,\n )\n }\n return parsedResponse.data\n }\n\n getPages = toIterablePaginationResult(this.getPagesInternal)\n\n async getPage(\n pathname: string,\n { siteVersion = null, locale }: { siteVersion?: SiteVersion | null; locale?: string } = {},\n ): Promise<GetPageAPI | null> {\n const url = new URL(`v3/pages/${encodeURIComponent(pathname)}`, this.apiOrigin)\n if (locale) url.searchParams.set('locale', locale)\n\n const response = await this.fetch(url.pathname + url.search, siteVersion)\n\n if (!response.ok) {\n if (response.status === 404) return null\n\n console.error(`Failed to get page snapshot for '${pathname}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n locale,\n })\n\n throw new Error(`Failed to get page snapshot for '${pathname}': ${responseError(response)}`)\n }\n\n const json = await response.json()\n\n return getPageAPISchema.parse(json)\n }\n\n private async getTypographies(\n typographyIds: string[],\n siteVersion: SiteVersion | null,\n ): Promise<(Typography | null)[]> {\n if (typographyIds.length === 0) return []\n\n const url = new URL(`v3/typographies/bulk`, this.apiOrigin)\n\n typographyIds.forEach(id => {\n url.searchParams.append('ids', id)\n })\n\n const response = await this.fetch(url.pathname + url.search, siteVersion)\n\n if (!response.ok) {\n console.error(`Failed to get typographies for [${typographyIds.join(', ')}]`, {\n response: await failedResponseBody(response),\n siteVersion,\n })\n\n return []\n }\n\n const body = await response.json()\n\n return body\n }\n\n private async getSwatches(\n ids: string[],\n siteVersion: SiteVersion | null,\n ): Promise<(Swatch | null)[]> {\n if (ids.length === 0) return []\n\n const url = new URL(`v3/swatches/bulk`, this.apiOrigin)\n\n ids.forEach(id => {\n url.searchParams.append('ids', id)\n })\n\n const response = await this.fetch(url.pathname + url.search, siteVersion)\n\n if (!response.ok) {\n console.error(`Failed to get swatches for ${ids.join(', ')}`, {\n response: await failedResponseBody(response),\n siteVersion,\n })\n\n return []\n }\n\n return await response.json()\n }\n\n private async getIntrospectedResources(\n {\n swatchIds,\n ...introspectedResourceIds\n }: IntrospectedResourcesQueryVariables & { swatchIds: string[] },\n siteVersion: SiteVersion | null,\n ): Promise<IntrospectedResourcesQueryResult & { swatches: (Swatch | null)[] }> {\n const result = await this.graphqlClient.request<\n IntrospectedResourcesQueryResult,\n IntrospectedResourcesQueryVariables\n >(IntrospectedResourcesQuery, introspectedResourceIds)\n const swatches = await this.getSwatches(swatchIds, siteVersion)\n\n return { ...result, swatches }\n }\n\n private async introspect(\n element: Element,\n siteVersion: SiteVersion | null,\n locale: string | null,\n ): Promise<CacheData> {\n const runtime = this.runtime\n const descriptors = getPropControllerDescriptors(runtime.store.getState())\n const swatchIds = new Set<string>()\n const fileIds = new Set<string>()\n const typographyIds = new Set<string>()\n const tableIds = new Set<string>()\n const pageIds = new Set<string>()\n const globalElements = new Map<string, GlobalElement | null>()\n const localizedGlobalElements = new Map<string, LocalizedGlobalElement | null>()\n const localizedResourcesMap = new Map<string, string | null>()\n\n const remaining = [element]\n const seen = new Set<string>()\n let current: Element | undefined\n\n while ((current = remaining.pop())) {\n let element: ElementData\n\n if (isElementReference(current)) {\n const globalElementId = current.value\n const globalElement = await this.getGlobalElement(globalElementId, siteVersion)\n let elementData = globalElement?.data\n\n if (locale) {\n const localizedGlobalElement = await this.getLocalizedGlobalElement(\n globalElementId,\n locale,\n siteVersion,\n )\n\n if (localizedGlobalElement) {\n // Update the logic here when we can merge element trees\n elementData = localizedGlobalElement.data\n\n localizedResourcesMap.set(globalElementId, localizedGlobalElement.id)\n localizedGlobalElements.set(localizedGlobalElement.id, localizedGlobalElement)\n }\n }\n\n globalElements.set(globalElementId, globalElement)\n\n if (elementData == null) continue\n\n element = elementData as ElementData\n } else {\n element = current\n }\n\n const elementDescriptors = descriptors.get(element.type)\n\n if (elementDescriptors == null) continue\n\n getResourcesFromElementDescriptors(elementDescriptors, element.props)\n\n function getResourcesFromElementDescriptors(\n elementDescriptors: Record<string, PropControllerDescriptor>,\n props: ElementData['props'],\n ) {\n Object.entries(elementDescriptors).forEach(([propName, descriptor]) => {\n getSwatchIds(descriptor, props[propName]).forEach(swatchId => {\n swatchIds.add(swatchId)\n })\n\n getFileIds(descriptor, props[propName]).forEach(fileId => fileIds.add(fileId))\n\n getTypographyIds(descriptor, props[propName]).forEach(typographyId =>\n typographyIds.add(typographyId),\n )\n\n getTableIds(descriptor, props[propName]).forEach(tableId => tableIds.add(tableId))\n\n getPageIds(descriptor, props[propName]).forEach(pageId => pageIds.add(pageId))\n\n getElementChildren(descriptor, props[propName]).forEach(child => {\n if (!seen.has(child.key)) {\n seen.add(child.key)\n\n remaining.push(child)\n }\n })\n })\n }\n }\n\n const typographies = await this.getTypographies([...typographyIds], siteVersion)\n\n typographies.forEach(typography => {\n typography?.style.forEach(style => {\n const swatchId = style.value.color?.swatchId\n\n if (swatchId != null) swatchIds.add(swatchId)\n })\n })\n\n const pagePathnames = await this.getPagePathnameSlices([...pageIds], siteVersion, { locale })\n\n const { swatches, files, tables } = await this.getIntrospectedResources(\n {\n swatchIds: [...swatchIds],\n fileIds: [...fileIds],\n tableIds: [...tableIds],\n },\n siteVersion,\n )\n\n const apiResources = {\n [APIResourceType.Swatch]: [...swatchIds].map(id => ({\n id,\n value: swatches.find(swatch => swatch?.id === id) ?? null,\n })),\n [APIResourceType.File]: [...fileIds].map(id => ({\n id,\n value: files.find(file => file?.id === id) ?? null,\n })),\n [APIResourceType.Typography]: [...typographyIds].map(id => ({\n id,\n value: typographies.find(typography => typography?.id === id) ?? null,\n })),\n [APIResourceType.Table]: [...tableIds].map(id => ({\n id,\n value: tables.find(table => table?.id === id) ?? null,\n })),\n [APIResourceType.PagePathnameSlice]: [...pageIds].map(id => ({\n id,\n value: pagePathnames.find(pagePathnameSlice => pagePathnameSlice?.id === id) ?? null,\n locale,\n })),\n [APIResourceType.GlobalElement]: [...globalElements.entries()].map(([id, value]) => ({\n id,\n value,\n })),\n [APIResourceType.LocalizedGlobalElement]: [...localizedGlobalElements.entries()].map(\n ([id, value]) => ({\n id,\n value,\n locale,\n }),\n ),\n }\n\n return {\n apiResources,\n localizedResourcesMap:\n locale != null ? { [locale]: Object.fromEntries(localizedResourcesMap.entries()) } : {},\n }\n }\n\n async getPageSnapshot(\n pathname: string,\n {\n siteVersion: siteVersionPromise,\n locale,\n allowLocaleFallback = true,\n }: {\n siteVersion: SiteVersion | null | Promise<SiteVersion | null>\n locale?: string\n allowLocaleFallback?: boolean\n },\n ): Promise<MakeswiftPageSnapshot | null> {\n const queryParams = (): string => {\n const params = new URLSearchParams()\n if (locale) params.set('locale', locale)\n if (allowLocaleFallback != null) params.set('allowLocaleFallback', `${allowLocaleFallback}`)\n return params.toString()\n }\n\n const siteVersion = await siteVersionPromise\n const response = await this.fetch(\n `v4/pages/${encodeURIComponent(pathname)}/document?${queryParams()}`,\n siteVersion,\n )\n\n if (!response.ok) {\n if (response.status === 404) return null\n\n console.error(`Failed to get page snapshot for '${pathname}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n locale,\n })\n\n throw new Error(`Failed to get page snapshot for '${pathname}': ${responseError(response)}`)\n }\n\n const document: MakeswiftPageDocument = await response.json()\n const baseLocalizedPage = document.localizedPages.find(({ parentId }) => parentId == null)\n\n const cacheData = await this.introspect(\n baseLocalizedPage?.data ?? document.data,\n siteVersion,\n // The /v3/pages endpoint returns null for document.locale when the requested locale is the default.\n // This legacy behavior is set to change with the upcoming /v4/pages endpoint.\n // We rely on document.locale when reading from the API cache, so ensure the cache is built during\n // introspection using the same value.\n document.locale,\n )\n\n return {\n document,\n cacheData,\n }\n }\n\n async getComponentSnapshot(\n id: string,\n {\n siteVersion: siteVersionPromise,\n locale,\n allowLocaleFallback = true,\n }: {\n siteVersion: SiteVersion | null | Promise<SiteVersion | null>\n locale?: string\n allowLocaleFallback?: boolean\n },\n ): Promise<MakeswiftComponentSnapshot> {\n const searchParams = new URLSearchParams()\n if (locale) searchParams.set('locale', locale)\n\n const siteVersion = await siteVersionPromise\n const key = deterministicUUID({ id, locale, seed: this.apiKey.split('-').at(0) })\n const baseLocaleWasRequested = locale == null\n const canAttemptLocaleFallback = !baseLocaleWasRequested && allowLocaleFallback\n\n let response\n const responseForRequestedLocale = await this.fetch(\n `v2/element-trees/${encodeURIComponent(id)}?${searchParams.toString()}`,\n siteVersion,\n )\n\n if (responseForRequestedLocale.status === 404 && canAttemptLocaleFallback) {\n response = await this.fetch(`v2/element-trees/${encodeURIComponent(id)}`, siteVersion)\n } else {\n response = responseForRequestedLocale\n }\n\n if (!response.ok) {\n if (response.status === 404) {\n return {\n document: {\n id,\n locale: locale ?? null,\n data: null,\n },\n key,\n cacheData: CacheData.empty(),\n meta: {\n allowLocaleFallback,\n requestedLocale: locale ?? null,\n },\n }\n }\n\n console.error(`Failed to get component snapshot for '${id}':`, {\n response: await failedResponseBody(response),\n siteVersion,\n locale,\n })\n\n throw new Error(`Failed to get component snapshot for '${id}': ${responseError(response)}`)\n }\n\n const document = makeswiftComponentDocumentSchema.parse(await response.json())\n const cacheData = await this.introspect(document.data, siteVersion, locale ?? null)\n\n return {\n document,\n cacheData,\n key,\n meta: {\n allowLocaleFallback,\n requestedLocale: locale ?? null,\n },\n }\n }\n\n async getSwatch(swatchId: string, siteVersion: SiteVersion | null): Promise<Swatch | null> {\n const response = await this.fetch(`v3/swatches/${swatchId}`, siteVersion)\n\n if (!response.ok) {\n if (response.status !== 404) {\n console.error(`Failed to get swatch '${swatchId}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n })\n }\n\n return null\n }\n\n const swatch = await response.json()\n\n return swatch\n }\n\n async getFile(fileId: string): Promise<File | null> {\n const result = await this.graphqlClient.request<FileQueryResult, FileQueryVariables>(\n FileQuery,\n { fileId },\n )\n\n return result.file\n }\n\n async getTypography(\n typographyId: string,\n siteVersion: SiteVersion | null,\n ): Promise<Typography | null> {\n const response = await this.fetch(`v3/typographies/${typographyId}`, siteVersion)\n\n if (!response.ok) {\n if (response.status !== 404) {\n console.error(`Failed to get typography '${typographyId}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n })\n }\n\n return null\n }\n\n const typography = await response.json()\n\n return typography\n }\n\n async getGlobalElement(\n globalElementId: string,\n siteVersion: SiteVersion | null,\n ): Promise<GlobalElement | null> {\n const response = await this.fetch(`v3/global-elements/${globalElementId}`, siteVersion)\n\n if (!response.ok) {\n if (response.status !== 404) {\n console.error(`Failed to get global element '${globalElementId}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n })\n }\n\n return null\n }\n\n const globalElement = await response.json()\n\n return globalElement\n }\n\n async getLocalizedGlobalElement(\n globalElementId: string,\n locale: string,\n siteVersion: SiteVersion | null,\n ): Promise<LocalizedGlobalElement | null> {\n const response = await this.fetch(\n `v3/localized-global-elements/${globalElementId}?locale=${locale}`,\n siteVersion,\n )\n\n if (!response.ok) {\n if (response.status !== 404) {\n console.error(`Failed to get localized global element '${globalElementId}'`, {\n response: await failedResponseBody(response),\n siteVersion,\n locale,\n })\n }\n\n return null\n }\n\n const localizedGlobalElement = await response.json()\n\n return localizedGlobalElement\n }\n\n async getPagePathnameSlices(\n pageIds: string[],\n siteVersion: SiteVersion | null,\n { locale }: { locale?: string | null },\n ): Promise<(PagePathnameSlice | null)[]> {\n if (pageIds.length === 0) return []\n\n const url = new URL(`v3/page-pathname-slices/bulk`, this.apiOrigin)\n\n pageIds.forEach(id => url.searchParams.append('ids', id))\n if (locale != null) url.searchParams.set('locale', locale)\n\n const response = await this.fetch(url.pathname + url.search, siteVersion)\n\n if (!response.ok) {\n console.error(`Failed to get page pathname slice(s) for ${pageIds.join(', ')}`, {\n response: await failedResponseBody(response),\n siteVersion,\n locale,\n })\n\n return []\n }\n\n const json = await response.json()\n\n const pagePathnameSlices = pagePathnameSlicesAPISchema.parse(json)\n\n // We're mapping the basePageId to be the id, because we're still using the GraphQL\n // fragment as our APIResource. The id on the APIResource needs to match the pageId\n // so that we can find the corresponding page pathname slice when we call getPagePathnameSlice(pageId).\n // TODO: Update this once we move away from the GraphQL fragments.\n return pagePathnameSlices.map(pagePathnameSlice => {\n if (pagePathnameSlice == null) return null\n\n return {\n ...pagePathnameSlice,\n id: pagePathnameSlice.basePageId,\n localizedPathname: pagePathnameSlice.localizedPathname ?? null,\n }\n })\n }\n\n async getPagePathnameSlice(\n pageId: string,\n siteVersion: SiteVersion | null,\n { locale }: { locale?: string } = {},\n ): Promise<PagePathnameSlice | null> {\n const pagePathnameSlices = await this.getPagePathnameSlices([pageId], siteVersion, { locale })\n\n return pagePathnameSlices.at(0) ?? null\n }\n\n async getTable(tableId: string): Promise<Table | null> {\n const result = await this.graphqlClient.request<TableQueryResult, TableQueryVariables>(\n TableQuery,\n { tableId },\n )\n\n return result.table\n }\n\n getTranslatableData(elementTree: ElementData): Record<string, Data> {\n return this.runtime.getTranslatableData(elementTree)\n }\n\n mergeTranslatedData(elementTree: ElementData, translatedData: Record<string, Data>): Element {\n return this.runtime.mergeTranslatedData(elementTree, translatedData)\n }\n\n async readPreviewToken(token: string): Promise<PreviewTokenPayload | null> {\n const response = await fetch(new URL('v1/preview-tokens/reads', this.apiOrigin).toString(), {\n method: 'POST',\n headers: {\n ['X-API-Key']: this.apiKey,\n 'Makeswift-Site-API-Key': this.apiKey,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ token }),\n cache: 'no-store',\n })\n\n if (!response.ok) {\n if (response.status === 401) {\n console.error(`Preview token is invalid or expired`, {\n response: await failedResponseBody(response),\n })\n } else if (response.status !== 404) {\n console.error(`Failed to verify preview token`, {\n response: await failedResponseBody(response),\n })\n }\n\n return null\n }\n\n const json = await response.json()\n\n const parsed = previewTokenPayloadSchema.safeParse(json)\n if (!parsed.success) {\n throw new Error(\n `Failed to parse preview token payload: ${parsed.error.errors.map(e => e.message).join('; ')}`,\n )\n }\n\n return parsed.data\n }\n}\n"],"mappings":"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","names":["import_types","getResourcesFromElementDescriptors","elementDescriptors","element"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/builtin/Box/animations.tsx"],"sourcesContent":["'use client'\n\nimport { CSSObject } from '@emotion/css'\nimport { useState, useEffect, useCallback, useRef } from 'react'\nimport { ResponsiveValue } from '../../../prop-controllers'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { useMediaQuery } from '../../hooks'\nimport { gridItemIdentifierClassName } from '../../shared/grid-item'\nimport {\n BoxAnimateIn,\n DEFAULT_BOX_ANIMATE_DELAY,\n DEFAULT_BOX_ANIMATE_DURATION,\n DEFAULT_BOX_ANIMATE_TYPE,\n DEFAULT_ITEM_ANIMATE_TYPE,\n DEFAULT_ITEM_STAGGER_DURATION,\n} from './constants'\nimport { type ResponsiveNumberValue, type ResponsiveSelectValue } from '@makeswift/prop-controllers'\n\nfunction useElementOnScreen(\n options: IntersectionObserverInit,\n): [boolean, (element: HTMLElement | null) => void] {\n const [isVisible, setIsVisible] = useState(false)\n const intersectionObserverRef = useRef<IntersectionObserver | null>(null)\n\n const setElement = useCallback((element: HTMLElement | null) => {\n if (element != null) {\n const observer = new IntersectionObserver(([entry]) => {\n if (entry?.isIntersecting) setIsVisible(true)\n }, options)\n\n observer.observe(element)\n\n intersectionObserverRef.current = observer\n } else {\n intersectionObserverRef.current?.disconnect()\n\n intersectionObserverRef.current = null\n }\n }, [])\n\n return [isVisible, setElement]\n}\n\nexport type BoxAnimationProps = {\n boxAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n boxAnimateDuration?: ResponsiveNumberValue\n boxAnimateDelay?: ResponsiveNumberValue\n itemAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n itemAnimateDuration?: ResponsiveNumberValue\n itemAnimateDelay?: ResponsiveNumberValue\n itemStaggerDuration?: ResponsiveNumberValue\n}\n\nfunction compareResponsiveValues<T>(a?: ResponsiveValue<T>, b?: ResponsiveValue<T>) {\n if (a == null && b == null) {\n return true\n }\n if (a != null && b != null) {\n let isEqual = true\n a.forEach((currentA, index) => {\n const currentB = b.at(index)\n if (currentB == null) {\n isEqual = false\n return\n }\n\n if (currentA.deviceId != currentB?.deviceId || currentA.value != currentB.value) {\n isEqual = false\n }\n })\n return isEqual\n }\n\n return false\n}\n\nexport function areBoxAnimationPropsEqual(prevProps: BoxAnimationProps, props: BoxAnimationProps) {\n return (\n compareResponsiveValues(prevProps.boxAnimateType, props.boxAnimateType) &&\n compareResponsiveValues(prevProps.boxAnimateDuration, props.boxAnimateDuration) &&\n compareResponsiveValues(prevProps.boxAnimateDelay, props.boxAnimateDelay) &&\n compareResponsiveValues(prevProps.itemAnimateType, props.itemAnimateType) &&\n compareResponsiveValues(prevProps.itemAnimateDuration, props.itemAnimateDuration) &&\n compareResponsiveValues(prevProps.itemAnimateDelay, props.itemAnimateDelay) &&\n compareResponsiveValues(prevProps.itemStaggerDuration, props.itemStaggerDuration)\n )\n}\n\nconst exitedBoxAnimationProperties: { [key in BoxAnimateIn]: CSSObject } = {\n none: { opacity: 1 },\n fadeIn: { opacity: 0 },\n fadeLeft: { transform: 'translate3d(60px,0,0)', opacity: 0 },\n fadeRight: { transform: 'translate3d(-60px,0,0)', opacity: 0 },\n fadeDown: { transform: 'translate3d(0,-80px,0)', opacity: 0 },\n fadeUp: { transform: 'translate3d(0,80px,0)', opacity: 0 },\n blurIn: { filter: 'blur(20px)', opacity: 0 },\n scaleDown: {\n transform: 'scale(1.2)',\n opacity: 0,\n },\n scaleUp: {\n transform: 'scale(.75)',\n opacity: 0,\n },\n}\n\nconst enteredBoxAnimationProperties: { [key in BoxAnimateIn]: CSSObject } = {\n none: { opacity: 1 },\n fadeIn: { opacity: 1 },\n fadeLeft: { transform: 'translate3d(0px,0,0)', opacity: 1 },\n fadeRight: { transform: 'translate3d(0px,0,0)', opacity: 1 },\n fadeDown: { transform: 'translate3d(0,0px,0)', opacity: 1 },\n fadeUp: { transform: 'translate3d(0,0px,0)', opacity: 1 },\n blurIn: { filter: 'blur(0px)', opacity: 1 },\n scaleDown: {\n transform: 'scale(1)',\n opacity: 1,\n },\n scaleUp: {\n transform: 'scale(1)',\n opacity: 1,\n },\n}\n\nexport function useBoxAnimation(\n responsiveAnimationType: ResponsiveValue<BoxAnimateIn> | undefined,\n responsiveDuration: ResponsiveValue<number> | undefined,\n responisveDelay: ResponsiveValue<number> | undefined,\n itemResponsiveAnimationType: ResponsiveValue<BoxAnimateIn> | undefined,\n): [string, () => void, (element: HTMLElement | null) => void] {\n const [isVisible, setElement] = useElementOnScreen({\n root: null,\n rootMargin: `0px 0px -10% 0px`,\n threshold: 0.2,\n })\n const animationType = useMediaQuery(responsiveAnimationType) || DEFAULT_BOX_ANIMATE_TYPE\n const itemAnimationType = useMediaQuery(itemResponsiveAnimationType) || DEFAULT_ITEM_ANIMATE_TYPE\n const duration = useMediaQuery(responsiveDuration) || DEFAULT_BOX_ANIMATE_DURATION\n const delay = useMediaQuery(responisveDelay) || DEFAULT_BOX_ANIMATE_DELAY\n const actualDelay = delay * 1000\n const actualDuration = duration * 1000\n\n const entered = {\n ...enteredBoxAnimationProperties[animationType],\n transition: `transform ${actualDuration}ms cubic-bezier(0.16, 0.84, 0.44, 1) ${actualDelay}ms,filter ${actualDuration}ms cubic-bezier(0.16, 0.84, 0.44, 1) ${actualDelay}ms, opacity ${actualDuration}ms ease ${actualDelay}ms`,\n [`& > div > .${gridItemIdentifierClassName}`]: {\n ...enteredBoxAnimationProperties[itemAnimationType],\n },\n }\n\n const exited = {\n ...exitedBoxAnimationProperties[animationType],\n transition: `all 0ms`,\n [`& > div > .${gridItemIdentifierClassName}`]: {\n ...exitedBoxAnimationProperties[itemAnimationType],\n },\n }\n\n const [isEntered, setEntered] = useState(false)\n\n useEffect(() => {\n if (isVisible && !isEntered) setEntered(true)\n }, [isVisible, entered])\n\n const replayAnimation = useCallback(() => {\n setEntered(false)\n }, [])\n\n return [\n useStyle({\n '@media (prefers-reduced-motion: no-preference)': isEntered ? entered : exited,\n }),\n replayAnimation,\n setElement,\n ]\n}\n\nexport function useItemAnimation(\n responsiveDuration: ResponsiveValue<number> | undefined,\n responisveDelay: ResponsiveValue<number> | undefined,\n responsiveStagger: ResponsiveValue<number> | undefined,\n index: number,\n) {\n const duration = useMediaQuery(responsiveDuration) || DEFAULT_BOX_ANIMATE_DURATION\n const delay = useMediaQuery(responisveDelay) || DEFAULT_BOX_ANIMATE_DELAY\n const stagger = useMediaQuery(responsiveStagger) || DEFAULT_ITEM_STAGGER_DURATION\n const delayFromStagger = responsiveStagger == null || index == null ? 0 : stagger * index\n const actualDelay = (delay + delayFromStagger) * 1000\n const actualDuration = duration * 1000\n\n return useStyle({\n '@media (prefers-reduced-motion: no-preference)': {\n transition: `transform ${actualDuration}ms cubic-bezier(0.16, 0.84, 0.44, 1) ${actualDelay}ms,filter ${actualDuration}ms cubic-bezier(0.16, 0.84, 0.44, 1) ${actualDelay}ms, opacity ${actualDuration}ms ease ${actualDelay}ms`,\n },\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAAyD;AAEzD,uBAAyB;AACzB,mBAA8B;AAC9B,uBAA4C;AAC5C,uBAOO;AAGP,SAAS,mBACP,SACkD;AAClD,QAAM,CAAC,WAAW,YAAY,QAAI,uBAAS,KAAK;AAChD,QAAM,8BAA0B,qBAAoC,IAAI;AAExE,QAAM,iBAAa,0BAAY,CAAC,YAAgC;AAC9D,QAAI,WAAW,MAAM;AACnB,YAAM,WAAW,IAAI,qBAAqB,CAAC,CAAC,KAAK,MAAM;AACrD,YAAI,OAAO;AAAgB,uBAAa,IAAI;AAAA,MAC9C,GAAG,OAAO;AAEV,eAAS,QAAQ,OAAO;AAExB,8BAAwB,UAAU;AAAA,IACpC,OAAO;AACL,8BAAwB,SAAS,WAAW;AAE5C,8BAAwB,UAAU;AAAA,IACpC;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO,CAAC,WAAW,UAAU;AAC/B;AAYA,SAAS,wBAA2B,GAAwB,GAAwB;AAClF,MAAI,KAAK,QAAQ,KAAK,MAAM;AAC1B,WAAO;AAAA,EACT;AACA,MAAI,KAAK,QAAQ,KAAK,MAAM;AAC1B,QAAI,UAAU;AACd,MAAE,QAAQ,CAAC,UAAU,UAAU;AAC7B,YAAM,WAAW,EAAE,GAAG,KAAK;AAC3B,UAAI,YAAY,MAAM;AACpB,kBAAU;AACV;AAAA,MACF;AAEA,UAAI,SAAS,YAAY,UAAU,YAAY,SAAS,SAAS,SAAS,OAAO;AAC/E,kBAAU;AAAA,MACZ;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,SAAS,0BAA0B,WAA8B,OAA0B;AAChG,SACE,wBAAwB,UAAU,gBAAgB,MAAM,cAAc,KACtE,wBAAwB,UAAU,oBAAoB,MAAM,kBAAkB,KAC9E,wBAAwB,UAAU,iBAAiB,MAAM,eAAe,KACxE,wBAAwB,UAAU,iBAAiB,MAAM,eAAe,KACxE,wBAAwB,UAAU,qBAAqB,MAAM,mBAAmB,KAChF,wBAAwB,UAAU,kBAAkB,MAAM,gBAAgB,KAC1E,wBAAwB,UAAU,qBAAqB,MAAM,mBAAmB;AAEpF;AAEA,MAAM,+BAAqE;AAAA,EACzE,MAAM,EAAE,SAAS,EAAE;AAAA,EACnB,QAAQ,EAAE,SAAS,EAAE;AAAA,EACrB,UAAU,EAAE,WAAW,yBAAyB,SAAS,EAAE;AAAA,EAC3D,WAAW,EAAE,WAAW,0BAA0B,SAAS,EAAE;AAAA,EAC7D,UAAU,EAAE,WAAW,0BAA0B,SAAS,EAAE;AAAA,EAC5D,QAAQ,EAAE,WAAW,yBAAyB,SAAS,EAAE;AAAA,EACzD,QAAQ,EAAE,QAAQ,cAAc,SAAS,EAAE;AAAA,EAC3C,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,SAAS;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AACF;AAEA,MAAM,gCAAsE;AAAA,EAC1E,MAAM,EAAE,SAAS,EAAE;AAAA,EACnB,QAAQ,EAAE,SAAS,EAAE;AAAA,EACrB,UAAU,EAAE,WAAW,wBAAwB,SAAS,EAAE;AAAA,EAC1D,WAAW,EAAE,WAAW,wBAAwB,SAAS,EAAE;AAAA,EAC3D,UAAU,EAAE,WAAW,wBAAwB,SAAS,EAAE;AAAA,EAC1D,QAAQ,EAAE,WAAW,wBAAwB,SAAS,EAAE;AAAA,EACxD,QAAQ,EAAE,QAAQ,aAAa,SAAS,EAAE;AAAA,EAC1C,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,SAAS;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AACF;AAEO,SAAS,gBACd,yBACA,oBACA,iBACA,6BAC6D;AAC7D,QAAM,CAAC,WAAW,UAAU,IAAI,mBAAmB;AAAA,IACjD,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,WAAW;AAAA,EACb,CAAC;AACD,QAAM,oBAAgB,4BAAc,uBAAuB,KAAK;AAChE,QAAM,wBAAoB,4BAAc,2BAA2B,KAAK;AACxE,QAAM,eAAW,4BAAc,kBAAkB,KAAK;AACtD,QAAM,YAAQ,4BAAc,eAAe,KAAK;AAChD,QAAM,cAAc,QAAQ;AAC5B,QAAM,iBAAiB,WAAW;AAElC,QAAM,UAAU;AAAA,IACd,GAAG,8BAA8B,aAAa;AAAA,IAC9C,YAAY,aAAa,cAAc,wCAAwC,WAAW,aAAa,cAAc,wCAAwC,WAAW,eAAe,cAAc,WAAW,WAAW;AAAA,IAC3N,CAAC,cAAc,4CAA2B,EAAE,GAAG;AAAA,MAC7C,GAAG,8BAA8B,iBAAiB;AAAA,IACpD;AAAA,EACF;AAEA,QAAM,SAAS;AAAA,IACb,GAAG,6BAA6B,aAAa;AAAA,IAC7C,YAAY;AAAA,IACZ,CAAC,cAAc,4CAA2B,EAAE,GAAG;AAAA,MAC7C,GAAG,6BAA6B,iBAAiB;AAAA,IACnD;AAAA,EACF;AAEA,QAAM,CAAC,WAAW,UAAU,QAAI,uBAAS,KAAK;AAE9C,8BAAU,MAAM;AACd,QAAI,aAAa,CAAC;AAAW,iBAAW,IAAI;AAAA,EAC9C,GAAG,CAAC,WAAW,OAAO,CAAC;AAEvB,QAAM,sBAAkB,0BAAY,MAAM;AACxC,eAAW,KAAK;AAAA,EAClB,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,QACL,2BAAS;AAAA,MACP,kDAAkD,YAAY,UAAU;AAAA,IAC1E,CAAC;AAAA,IACD;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,iBACd,oBACA,iBACA,mBACA,OACA;AACA,QAAM,eAAW,4BAAc,kBAAkB,KAAK;AACtD,QAAM,YAAQ,4BAAc,eAAe,KAAK;AAChD,QAAM,cAAU,4BAAc,iBAAiB,KAAK;AACpD,QAAM,mBAAmB,qBAAqB,QAAQ,SAAS,OAAO,IAAI,UAAU;AACpF,QAAM,eAAe,QAAQ,oBAAoB;AACjD,QAAM,iBAAiB,WAAW;AAElC,aAAO,2BAAS;AAAA,IACd,kDAAkD;AAAA,MAChD,YAAY,aAAa,cAAc,wCAAwC,WAAW,aAAa,cAAc,wCAAwC,WAAW,eAAe,cAAc,WAAW,WAAW;AAAA,IAC7N;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/components/builtin/Box/animations.tsx"],"sourcesContent":["'use client'\n\nimport { type CSSObject } from '@emotion/serialize'\nimport { useState, useEffect, useCallback, useRef } from 'react'\nimport { ResponsiveValue } from '../../../prop-controllers'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { useMediaQuery } from '../../hooks'\nimport { gridItemIdentifierClassName } from '../../shared/grid-item'\nimport {\n BoxAnimateIn,\n DEFAULT_BOX_ANIMATE_DELAY,\n DEFAULT_BOX_ANIMATE_DURATION,\n DEFAULT_BOX_ANIMATE_TYPE,\n DEFAULT_ITEM_ANIMATE_TYPE,\n DEFAULT_ITEM_STAGGER_DURATION,\n} from './constants'\nimport { type ResponsiveNumberValue, type ResponsiveSelectValue } from '@makeswift/prop-controllers'\n\nfunction useElementOnScreen(\n options: IntersectionObserverInit,\n): [boolean, (element: HTMLElement | null) => void] {\n const [isVisible, setIsVisible] = useState(false)\n const intersectionObserverRef = useRef<IntersectionObserver | null>(null)\n\n const setElement = useCallback((element: HTMLElement | null) => {\n if (element != null) {\n const observer = new IntersectionObserver(([entry]) => {\n if (entry?.isIntersecting) setIsVisible(true)\n }, options)\n\n observer.observe(element)\n\n intersectionObserverRef.current = observer\n } else {\n intersectionObserverRef.current?.disconnect()\n\n intersectionObserverRef.current = null\n }\n }, [])\n\n return [isVisible, setElement]\n}\n\nexport type BoxAnimationProps = {\n boxAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n boxAnimateDuration?: ResponsiveNumberValue\n boxAnimateDelay?: ResponsiveNumberValue\n itemAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n itemAnimateDuration?: ResponsiveNumberValue\n itemAnimateDelay?: ResponsiveNumberValue\n itemStaggerDuration?: ResponsiveNumberValue\n}\n\nfunction compareResponsiveValues<T>(a?: ResponsiveValue<T>, b?: ResponsiveValue<T>) {\n if (a == null && b == null) {\n return true\n }\n if (a != null && b != null) {\n let isEqual = true\n a.forEach((currentA, index) => {\n const currentB = b.at(index)\n if (currentB == null) {\n isEqual = false\n return\n }\n\n if (currentA.deviceId != currentB?.deviceId || currentA.value != currentB.value) {\n isEqual = false\n }\n })\n return isEqual\n }\n\n return false\n}\n\nexport function areBoxAnimationPropsEqual(prevProps: BoxAnimationProps, props: BoxAnimationProps) {\n return (\n compareResponsiveValues(prevProps.boxAnimateType, props.boxAnimateType) &&\n compareResponsiveValues(prevProps.boxAnimateDuration, props.boxAnimateDuration) &&\n compareResponsiveValues(prevProps.boxAnimateDelay, props.boxAnimateDelay) &&\n compareResponsiveValues(prevProps.itemAnimateType, props.itemAnimateType) &&\n compareResponsiveValues(prevProps.itemAnimateDuration, props.itemAnimateDuration) &&\n compareResponsiveValues(prevProps.itemAnimateDelay, props.itemAnimateDelay) &&\n compareResponsiveValues(prevProps.itemStaggerDuration, props.itemStaggerDuration)\n )\n}\n\nconst exitedBoxAnimationProperties: { [key in BoxAnimateIn]: CSSObject } = {\n none: { opacity: 1 },\n fadeIn: { opacity: 0 },\n fadeLeft: { transform: 'translate3d(60px,0,0)', opacity: 0 },\n fadeRight: { transform: 'translate3d(-60px,0,0)', opacity: 0 },\n fadeDown: { transform: 'translate3d(0,-80px,0)', opacity: 0 },\n fadeUp: { transform: 'translate3d(0,80px,0)', opacity: 0 },\n blurIn: { filter: 'blur(20px)', opacity: 0 },\n scaleDown: {\n transform: 'scale(1.2)',\n opacity: 0,\n },\n scaleUp: {\n transform: 'scale(.75)',\n opacity: 0,\n },\n}\n\nconst enteredBoxAnimationProperties: { [key in BoxAnimateIn]: CSSObject } = {\n none: { opacity: 1 },\n fadeIn: { opacity: 1 },\n fadeLeft: { transform: 'translate3d(0px,0,0)', opacity: 1 },\n fadeRight: { transform: 'translate3d(0px,0,0)', opacity: 1 },\n fadeDown: { transform: 'translate3d(0,0px,0)', opacity: 1 },\n fadeUp: { transform: 'translate3d(0,0px,0)', opacity: 1 },\n blurIn: { filter: 'blur(0px)', opacity: 1 },\n scaleDown: {\n transform: 'scale(1)',\n opacity: 1,\n },\n scaleUp: {\n transform: 'scale(1)',\n opacity: 1,\n },\n}\n\nexport function useBoxAnimation(\n responsiveAnimationType: ResponsiveValue<BoxAnimateIn> | undefined,\n responsiveDuration: ResponsiveValue<number> | undefined,\n responisveDelay: ResponsiveValue<number> | undefined,\n itemResponsiveAnimationType: ResponsiveValue<BoxAnimateIn> | undefined,\n): [string, () => void, (element: HTMLElement | null) => void] {\n const [isVisible, setElement] = useElementOnScreen({\n root: null,\n rootMargin: `0px 0px -10% 0px`,\n threshold: 0.2,\n })\n const animationType = useMediaQuery(responsiveAnimationType) || DEFAULT_BOX_ANIMATE_TYPE\n const itemAnimationType = useMediaQuery(itemResponsiveAnimationType) || DEFAULT_ITEM_ANIMATE_TYPE\n const duration = useMediaQuery(responsiveDuration) || DEFAULT_BOX_ANIMATE_DURATION\n const delay = useMediaQuery(responisveDelay) || DEFAULT_BOX_ANIMATE_DELAY\n const actualDelay = delay * 1000\n const actualDuration = duration * 1000\n\n const entered = {\n ...enteredBoxAnimationProperties[animationType],\n transition: `transform ${actualDuration}ms cubic-bezier(0.16, 0.84, 0.44, 1) ${actualDelay}ms,filter ${actualDuration}ms cubic-bezier(0.16, 0.84, 0.44, 1) ${actualDelay}ms, opacity ${actualDuration}ms ease ${actualDelay}ms`,\n [`& > div > .${gridItemIdentifierClassName}`]: {\n ...enteredBoxAnimationProperties[itemAnimationType],\n },\n }\n\n const exited = {\n ...exitedBoxAnimationProperties[animationType],\n transition: `all 0ms`,\n [`& > div > .${gridItemIdentifierClassName}`]: {\n ...exitedBoxAnimationProperties[itemAnimationType],\n },\n }\n\n const [isEntered, setEntered] = useState(false)\n\n useEffect(() => {\n if (isVisible && !isEntered) setEntered(true)\n }, [isVisible, entered])\n\n const replayAnimation = useCallback(() => {\n setEntered(false)\n }, [])\n\n return [\n useStyle({\n '@media (prefers-reduced-motion: no-preference)': isEntered ? entered : exited,\n }),\n replayAnimation,\n setElement,\n ]\n}\n\nexport function useItemAnimation(\n responsiveDuration: ResponsiveValue<number> | undefined,\n responisveDelay: ResponsiveValue<number> | undefined,\n responsiveStagger: ResponsiveValue<number> | undefined,\n index: number,\n) {\n const duration = useMediaQuery(responsiveDuration) || DEFAULT_BOX_ANIMATE_DURATION\n const delay = useMediaQuery(responisveDelay) || DEFAULT_BOX_ANIMATE_DELAY\n const stagger = useMediaQuery(responsiveStagger) || DEFAULT_ITEM_STAGGER_DURATION\n const delayFromStagger = responsiveStagger == null || index == null ? 0 : stagger * index\n const actualDelay = (delay + delayFromStagger) * 1000\n const actualDuration = duration * 1000\n\n return useStyle({\n '@media (prefers-reduced-motion: no-preference)': {\n transition: `transform ${actualDuration}ms cubic-bezier(0.16, 0.84, 0.44, 1) ${actualDelay}ms,filter ${actualDuration}ms cubic-bezier(0.16, 0.84, 0.44, 1) ${actualDelay}ms, opacity ${actualDuration}ms ease ${actualDelay}ms`,\n },\n })\n}\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/builtin/Form/components/Field/services/responsiveField.ts"],"sourcesContent":["import { colorToString } from '../../../../../utils/colorToString'\n\nimport {\n Size,\n Shape,\n Contrast,\n Shapes,\n Sizes,\n Contrasts,\n Value,\n} from '../../../context/FormContext'\nimport { useResponsiveStyle } from '../../../../../utils/responsive-style'\nimport { CSSObject } from '@emotion/css'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 30\n\n case Sizes.MEDIUM:\n return 38\n\n case Sizes.LARGE:\n return 48\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getSizeHorizontalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 8\n\n case Sizes.MEDIUM:\n return 12\n\n case Sizes.LARGE:\n return 16\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nfunction getSizeVerticalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 3\n\n case Sizes.MEDIUM:\n return 7\n\n case Sizes.LARGE:\n return 11\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getShapeBorderRadius(shape: Shape): number {\n switch (shape) {\n case Shapes.SQUARE:\n return 0\n\n case Shapes.ROUNDED:\n return 4\n\n case Shapes.PILL:\n return 500\n\n default:\n throw new Error(`Invalid form shape \"${shape}\"`)\n }\n}\n\nexport function getContrastBorderColor(contrast: Contrast, error?: boolean): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(0, 0, 0, 0.25)'\n\n case Contrasts.DARK:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.6)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastBackgroundColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'white'\n\n case Contrasts.DARK:\n return 'rgba(0, 0, 0, 0.7)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.95)'\n\n case Contrasts.DARK:\n return 'white'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nfunction getContrastPlaceholderColor(contrast: Contrast) {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.3)'\n\n case Contrasts.DARK:\n return 'rgba(255,255,255,0.3)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport default function responsiveField(\n props: Pick<Value, 'shape' | 'size' | 'contrast' | 'brandColor'> & { error?: boolean },\n): CSSObject {\n return {\n display: 'block',\n width: '100%',\n outline: 'none',\n borderWidth: 1,\n borderStyle: 'solid',\n transition: 'border-color 200ms',\n ...useResponsiveStyle(\n [props.shape, props.size, props.contrast, props.brandColor] as const,\n ([\n shape = Shapes.ROUNDED,\n size = Sizes.MEDIUM,\n contrast = Contrasts.LIGHT,\n brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => ({\n padding: `${getSizeVerticalPadding(size)}px ${getSizeHorizontalPadding(size)}px`,\n borderRadius: getShapeBorderRadius(shape),\n borderColor: getContrastBorderColor(contrast, props.error),\n color: getContrastColor(contrast),\n backgroundColor: getContrastBackgroundColor(contrast),\n\n ':focus, :focus-within': {\n borderColor: colorToString(brandColor),\n },\n\n '::placeholder': {\n color: getContrastPlaceholderColor(contrast),\n },\n }),\n ),\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA8B;AAE9B,yBAQO;AACP,8BAAmC;AAG5B,SAAS,cAAc,MAAoB;AAChD,UAAQ,MAAM;AAAA,IACZ,KAAK,yBAAM;AACT,aAAO;AAAA,IAET,KAAK,yBAAM;AACT,aAAO;AAAA,IAET,KAAK,yBAAM;AACT,aAAO;AAAA,IAET;AACE,YAAM,IAAI,MAAM,sBAAsB,IAAI,GAAG;AAAA,EACjD;AACF;AAEO,SAAS,yBAAyB,MAAoB;AAC3D,UAAQ,MAAM;AAAA,IACZ,KAAK,yBAAM;AACT,aAAO;AAAA,IAET,KAAK,yBAAM;AACT,aAAO;AAAA,IAET,KAAK,yBAAM;AACT,aAAO;AAAA,IAET;AACE,YAAM,IAAI,MAAM,sBAAsB,IAAI,GAAG;AAAA,EACjD;AACF;AAEA,SAAS,uBAAuB,MAAoB;AAClD,UAAQ,MAAM;AAAA,IACZ,KAAK,yBAAM;AACT,aAAO;AAAA,IAET,KAAK,yBAAM;AACT,aAAO;AAAA,IAET,KAAK,yBAAM;AACT,aAAO;AAAA,IAET;AACE,YAAM,IAAI,MAAM,sBAAsB,IAAI,GAAG;AAAA,EACjD;AACF;AAEO,SAAS,qBAAqB,OAAsB;AACzD,UAAQ,OAAO;AAAA,IACb,KAAK,0BAAO;AACV,aAAO;AAAA,IAET,KAAK,0BAAO;AACV,aAAO;AAAA,IAET,KAAK,0BAAO;AACV,aAAO;AAAA,IAET;AACE,YAAM,IAAI,MAAM,uBAAuB,KAAK,GAAG;AAAA,EACnD;AACF;AAEO,SAAS,uBAAuB,UAAoB,OAAyB;AAClF,UAAQ,UAAU;AAAA,IAChB,KAAK,6BAAU;AACb,aAAO,QAAQ,yBAAyB;AAAA,IAE1C,KAAK,6BAAU;AACb,aAAO,QAAQ,yBAAyB;AAAA,IAE1C;AACE,YAAM,IAAI,MAAM,0BAA0B,QAAQ,GAAG;AAAA,EACzD;AACF;AAEO,SAAS,2BAA2B,UAA4B;AACrE,UAAQ,UAAU;AAAA,IAChB,KAAK,6BAAU;AACb,aAAO;AAAA,IAET,KAAK,6BAAU;AACb,aAAO;AAAA,IAET;AACE,YAAM,IAAI,MAAM,0BAA0B,QAAQ,GAAG;AAAA,EACzD;AACF;AAEO,SAAS,iBAAiB,UAA4B;AAC3D,UAAQ,UAAU;AAAA,IAChB,KAAK,6BAAU;AACb,aAAO;AAAA,IAET,KAAK,6BAAU;AACb,aAAO;AAAA,IAET;AACE,YAAM,IAAI,MAAM,0BAA0B,QAAQ,GAAG;AAAA,EACzD;AACF;AAEA,SAAS,4BAA4B,UAAoB;AACvD,UAAQ,UAAU;AAAA,IAChB,KAAK,6BAAU;AACb,aAAO;AAAA,IAET,KAAK,6BAAU;AACb,aAAO;AAAA,IAET;AACE,YAAM,IAAI,MAAM,0BAA0B,QAAQ,GAAG;AAAA,EACzD;AACF;AAEe,SAAR,gBACL,OACW;AACX,SAAO;AAAA,IACL,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,OAAG;AAAA,MACD,CAAC,MAAM,OAAO,MAAM,MAAM,MAAM,UAAU,MAAM,UAAU;AAAA,MAC1D,CAAC;AAAA,QACC,QAAQ,0BAAO;AAAA,QACf,OAAO,yBAAM;AAAA,QACb,WAAW,6BAAU;AAAA,QACrB,aAAa,EAAE,QAAQ,EAAE,KAAK,GAAG,YAAY,GAAG,WAAW,EAAE,GAAG,OAAO,EAAE;AAAA,MAC3E,OAAO;AAAA,QACL,SAAS,GAAG,uBAAuB,IAAI,CAAC,MAAM,yBAAyB,IAAI,CAAC;AAAA,QAC5E,cAAc,qBAAqB,KAAK;AAAA,QACxC,aAAa,uBAAuB,UAAU,MAAM,KAAK;AAAA,QACzD,OAAO,iBAAiB,QAAQ;AAAA,QAChC,iBAAiB,2BAA2B,QAAQ;AAAA,QAEpD,yBAAyB;AAAA,UACvB,iBAAa,oCAAc,UAAU;AAAA,QACvC;AAAA,QAEA,iBAAiB;AAAA,UACf,OAAO,4BAA4B,QAAQ;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/builtin/Form/components/Field/services/responsiveField.ts"],"sourcesContent":["import { colorToString } from '../../../../../utils/colorToString'\n\nimport {\n Size,\n Shape,\n Contrast,\n Shapes,\n Sizes,\n Contrasts,\n Value,\n} from '../../../context/FormContext'\nimport { useResponsiveStyle } from '../../../../../utils/responsive-style'\nimport { type CSSObject } from '@emotion/serialize'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 30\n\n case Sizes.MEDIUM:\n return 38\n\n case Sizes.LARGE:\n return 48\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getSizeHorizontalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 8\n\n case Sizes.MEDIUM:\n return 12\n\n case Sizes.LARGE:\n return 16\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nfunction getSizeVerticalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 3\n\n case Sizes.MEDIUM:\n return 7\n\n case Sizes.LARGE:\n return 11\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getShapeBorderRadius(shape: Shape): number {\n switch (shape) {\n case Shapes.SQUARE:\n return 0\n\n case Shapes.ROUNDED:\n return 4\n\n case Shapes.PILL:\n return 500\n\n default:\n throw new Error(`Invalid form shape \"${shape}\"`)\n }\n}\n\nexport function getContrastBorderColor(contrast: Contrast, error?: boolean): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(0, 0, 0, 0.25)'\n\n case Contrasts.DARK:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.6)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastBackgroundColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'white'\n\n case Contrasts.DARK:\n return 'rgba(0, 0, 0, 0.7)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.95)'\n\n case Contrasts.DARK:\n return 'white'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nfunction getContrastPlaceholderColor(contrast: Contrast) {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.3)'\n\n case Contrasts.DARK:\n return 'rgba(255,255,255,0.3)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport default function responsiveField(\n props: Pick<Value, 'shape' | 'size' | 'contrast' | 'brandColor'> & { error?: boolean },\n): CSSObject {\n return {\n display: 'block',\n width: '100%',\n outline: 'none',\n borderWidth: 1,\n borderStyle: 'solid',\n transition: 'border-color 200ms',\n ...useResponsiveStyle(\n [props.shape, props.size, props.contrast, props.brandColor] as const,\n ([\n shape = Shapes.ROUNDED,\n size = Sizes.MEDIUM,\n contrast = Contrasts.LIGHT,\n brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => ({\n padding: `${getSizeVerticalPadding(size)}px ${getSizeHorizontalPadding(size)}px`,\n borderRadius: getShapeBorderRadius(shape),\n borderColor: getContrastBorderColor(contrast, props.error),\n color: getContrastColor(contrast),\n backgroundColor: getContrastBackgroundColor(contrast),\n\n ':focus, :focus-within': {\n borderColor: colorToString(brandColor),\n },\n\n '::placeholder': {\n color: getContrastPlaceholderColor(contrast),\n },\n }),\n ),\n }\n}\n"],"mappings":"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","names":[]}
@@ -34,13 +34,13 @@ module.exports = __toCommonJS(Root_exports);
34
34
  var import_jsx_runtime = require("react/jsx-runtime");
35
35
  var import_polished = require("polished");
36
36
  var import_react = require("react");
37
- var import_Placeholder = __toESM(require("./components/Placeholder"));
38
37
  var import_react2 = require("../../../runtimes/react");
39
- var import_BackgroundsContainer = __toESM(require("../../shared/BackgroundsContainer"));
40
38
  var import_use_global_style = require("../../../runtimes/react/use-global-style");
41
- var import_grid_item = require("../../shared/grid-item");
42
39
  var import_use_style = require("../../../runtimes/react/use-style");
43
- var import_root_style_registry = require("../../../next/root-style-registry");
40
+ var import_root_style_registry = require("../../../runtimes/react/root-style-registry");
41
+ var import_grid_item = require("../../shared/grid-item");
42
+ var import_BackgroundsContainer = __toESM(require("../../shared/BackgroundsContainer"));
43
+ var import_Placeholder = __toESM(require("./components/Placeholder"));
44
44
  const Root = (0, import_react.forwardRef)(function Page({ children, backgrounds, rowGap, columnGap }, ref) {
45
45
  const cssResetEnabled = (0, import_root_style_registry.useCSSResetEnabled)();
46
46
  (0, import_use_global_style.useGlobalStyle)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/builtin/Root/Root.tsx"],"sourcesContent":["import { normalize } from 'polished'\nimport { forwardRef, Ref } from 'react'\n\nimport Placeholder from './components/Placeholder'\nimport { Element } from '../../../runtimes/react'\nimport BackgroundsContainer from '../../shared/BackgroundsContainer'\nimport { useGlobalStyle } from '../../../runtimes/react/use-global-style'\nimport { GridItem } from '../../shared/grid-item'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { GridData, ResponsiveBackgroundsData, ResponsiveGapData } from '@makeswift/prop-controllers'\nimport { useCSSResetEnabled } from '../../../next/root-style-registry'\n\ntype Props = {\n children?: GridData\n backgrounds?: ResponsiveBackgroundsData\n rowGap?: ResponsiveGapData\n columnGap?: ResponsiveGapData\n}\n\nconst Root = forwardRef(function Page(\n { children, backgrounds, rowGap, columnGap }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const cssResetEnabled = useCSSResetEnabled()\n\n useGlobalStyle(\n cssResetEnabled\n ? [\n { html: { boxSizing: 'border-box' }, '*, *::before, *::after': { boxSizing: 'inherit' } },\n normalize(),\n ]\n : [],\n )\n\n return (\n <BackgroundsContainer ref={ref} style={{ background: 'white' }} backgrounds={backgrounds}>\n <div className={useStyle({ display: 'flex', flexWrap: 'wrap', width: '100%' })}>\n {children && children.elements.length > 0 ? (\n children.elements.map((child, index) => (\n <GridItem\n key={child.key}\n grid={children.columns}\n index={index}\n columnGap={columnGap}\n rowGap={rowGap}\n >\n <Element element={child} />\n </GridItem>\n ))\n ) : (\n <Placeholder />\n )}\n </div>\n </BackgroundsContainer>\n )\n})\n\nexport default Root\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8Cc;AA9Cd,sBAA0B;AAC1B,mBAAgC;AAEhC,yBAAwB;AACxB,IAAAA,gBAAwB;AACxB,kCAAiC;AACjC,8BAA+B;AAC/B,uBAAyB;AACzB,uBAAyB;AAEzB,iCAAmC;AASnC,MAAM,WAAO,yBAAW,SAAS,KAC/B,EAAE,UAAU,aAAa,QAAQ,UAAU,GAC3C,KACA;AACA,QAAM,sBAAkB,+CAAmB;AAE3C;AAAA,IACE,kBACI;AAAA,MACE,EAAE,MAAM,EAAE,WAAW,aAAa,GAAG,0BAA0B,EAAE,WAAW,UAAU,EAAE;AAAA,UACxF,2BAAU;AAAA,IACZ,IACA,CAAC;AAAA,EACP;AAEA,SACE,4CAAC,4BAAAC,SAAA,EAAqB,KAAU,OAAO,EAAE,YAAY,QAAQ,GAAG,aAC9D,sDAAC,SAAI,eAAW,2BAAS,EAAE,SAAS,QAAQ,UAAU,QAAQ,OAAO,OAAO,CAAC,GAC1E,sBAAY,SAAS,SAAS,SAAS,IACtC,SAAS,SAAS,IAAI,CAAC,OAAO,UAC5B;AAAA,IAAC;AAAA;AAAA,MAEC,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MAEA,sDAAC,yBAAQ,SAAS,OAAO;AAAA;AAAA,IANpB,MAAM;AAAA,EAOb,CACD,IAED,4CAAC,mBAAAC,SAAA,EAAY,GAEjB,GACF;AAEJ,CAAC;AAED,IAAO,eAAQ;","names":["import_react","BackgroundsContainer","Placeholder"]}
1
+ {"version":3,"sources":["../../../../../src/components/builtin/Root/Root.tsx"],"sourcesContent":["import { normalize } from 'polished'\nimport { forwardRef, type Ref } from 'react'\n\nimport {\n type GridData,\n type ResponsiveBackgroundsData,\n type ResponsiveGapData,\n} from '@makeswift/prop-controllers'\n\nimport { Element } from '../../../runtimes/react'\nimport { useGlobalStyle } from '../../../runtimes/react/use-global-style'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { useCSSResetEnabled } from '../../../runtimes/react/root-style-registry'\n\nimport { GridItem } from '../../shared/grid-item'\nimport BackgroundsContainer from '../../shared/BackgroundsContainer'\n\nimport Placeholder from './components/Placeholder'\n\ntype Props = {\n children?: GridData\n backgrounds?: ResponsiveBackgroundsData\n rowGap?: ResponsiveGapData\n columnGap?: ResponsiveGapData\n}\n\nconst Root = forwardRef(function Page(\n { children, backgrounds, rowGap, columnGap }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const cssResetEnabled = useCSSResetEnabled()\n\n useGlobalStyle(\n cssResetEnabled\n ? [\n { html: { boxSizing: 'border-box' }, '*, *::before, *::after': { boxSizing: 'inherit' } },\n normalize(),\n ]\n : [],\n )\n\n return (\n <BackgroundsContainer ref={ref} style={{ background: 'white' }} backgrounds={backgrounds}>\n <div className={useStyle({ display: 'flex', flexWrap: 'wrap', width: '100%' })}>\n {children && children.elements.length > 0 ? (\n children.elements.map((child, index) => (\n <GridItem\n key={child.key}\n grid={children.columns}\n index={index}\n columnGap={columnGap}\n rowGap={rowGap}\n >\n <Element element={child} />\n </GridItem>\n ))\n ) : (\n <Placeholder />\n )}\n </div>\n </BackgroundsContainer>\n )\n})\n\nexport default Root\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqDc;AArDd,sBAA0B;AAC1B,mBAAqC;AAQrC,IAAAA,gBAAwB;AACxB,8BAA+B;AAC/B,uBAAyB;AACzB,iCAAmC;AAEnC,uBAAyB;AACzB,kCAAiC;AAEjC,yBAAwB;AASxB,MAAM,WAAO,yBAAW,SAAS,KAC/B,EAAE,UAAU,aAAa,QAAQ,UAAU,GAC3C,KACA;AACA,QAAM,sBAAkB,+CAAmB;AAE3C;AAAA,IACE,kBACI;AAAA,MACE,EAAE,MAAM,EAAE,WAAW,aAAa,GAAG,0BAA0B,EAAE,WAAW,UAAU,EAAE;AAAA,UACxF,2BAAU;AAAA,IACZ,IACA,CAAC;AAAA,EACP;AAEA,SACE,4CAAC,4BAAAC,SAAA,EAAqB,KAAU,OAAO,EAAE,YAAY,QAAQ,GAAG,aAC9D,sDAAC,SAAI,eAAW,2BAAS,EAAE,SAAS,QAAQ,UAAU,QAAQ,OAAO,OAAO,CAAC,GAC1E,sBAAY,SAAS,SAAS,SAAS,IACtC,SAAS,SAAS,IAAI,CAAC,OAAO,UAC5B;AAAA,IAAC;AAAA;AAAA,MAEC,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MAEA,sDAAC,yBAAQ,SAAS,OAAO;AAAA;AAAA,IANpB,MAAM;AAAA,EAOb,CACD,IAED,4CAAC,mBAAAC,SAAA,EAAY,GAEjB,GACF;AAEJ,CAAC;AAED,IAAO,eAAQ;","names":["import_react","BackgroundsContainer","Placeholder"]}