@makeswift/runtime 0.22.3 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/dist/cjs/api/{graphql/fragments.js → fragments.js} +1 -1
  2. package/dist/cjs/api/fragments.js.map +1 -0
  3. package/dist/cjs/api/index.js +4 -4
  4. package/dist/cjs/api/index.js.map +1 -1
  5. package/dist/cjs/api/react.js +46 -46
  6. package/dist/cjs/api/react.js.map +1 -1
  7. package/dist/cjs/api/{graphql/types.js → types.js} +9 -4
  8. package/dist/cjs/api/types.js.map +1 -0
  9. package/dist/cjs/builder/serialization/control-serialization.js +13 -9
  10. package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
  11. package/dist/cjs/components/builtin/Form/Form.js +2 -2
  12. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  13. package/dist/cjs/components/builtin/Slot/Slot.js +33 -0
  14. package/dist/cjs/components/builtin/Slot/Slot.js.map +1 -0
  15. package/dist/cjs/components/builtin/Slot/index.js +35 -0
  16. package/dist/cjs/components/builtin/Slot/index.js.map +1 -0
  17. package/dist/cjs/components/builtin/Slot/register.js +56 -0
  18. package/dist/cjs/components/builtin/Slot/register.js.map +1 -0
  19. package/dist/cjs/components/builtin/constants.js +1 -0
  20. package/dist/cjs/components/builtin/constants.js.map +1 -1
  21. package/dist/cjs/components/builtin/index.js +3 -0
  22. package/dist/cjs/components/builtin/index.js.map +1 -1
  23. package/dist/cjs/components/builtin/register.js +9 -6
  24. package/dist/cjs/components/builtin/register.js.map +1 -1
  25. package/dist/cjs/components/hooks/usePageSnippets.js +2 -2
  26. package/dist/cjs/components/hooks/usePageSnippets.js.map +1 -1
  27. package/dist/cjs/components/page/Page.js +2 -3
  28. package/dist/cjs/components/page/Page.js.map +1 -1
  29. package/dist/cjs/components/page/PageHead.js +2 -2
  30. package/dist/cjs/components/page/PageHead.js.map +1 -1
  31. package/dist/cjs/components/shared/BackgroundsContainer/index.js +5 -3
  32. package/dist/cjs/components/shared/BackgroundsContainer/index.js.map +1 -1
  33. package/dist/cjs/controls/index.js +10 -0
  34. package/dist/cjs/controls/index.js.map +1 -1
  35. package/dist/cjs/core/index.js +4 -2
  36. package/dist/cjs/core/index.js.map +1 -1
  37. package/dist/cjs/index.js +2 -2
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/jest-setup.js +2 -1
  40. package/dist/cjs/jest-setup.js.map +1 -1
  41. package/dist/cjs/next/api-handler/handlers/manifest.js +4 -2
  42. package/dist/cjs/next/api-handler/handlers/manifest.js.map +1 -1
  43. package/dist/cjs/next/api-handler/handlers/webhook/index.js +55 -0
  44. package/dist/cjs/next/api-handler/handlers/webhook/index.js.map +1 -0
  45. package/dist/cjs/next/api-handler/handlers/webhook/site-published.js +36 -0
  46. package/dist/cjs/next/api-handler/handlers/webhook/site-published.js.map +1 -0
  47. package/dist/cjs/next/api-handler/handlers/webhook/types.js +46 -0
  48. package/dist/cjs/next/api-handler/handlers/webhook/types.js.map +1 -0
  49. package/dist/cjs/next/api-handler/index.js +7 -7
  50. package/dist/cjs/next/api-handler/index.js.map +1 -1
  51. package/dist/cjs/next/client.js +136 -18
  52. package/dist/cjs/next/client.js.map +1 -1
  53. package/dist/cjs/next/components/MakeswiftComponent.js +50 -0
  54. package/dist/cjs/next/components/MakeswiftComponent.js.map +1 -0
  55. package/dist/cjs/next/components/Slot.js +50 -0
  56. package/dist/cjs/next/components/Slot.js.map +1 -0
  57. package/dist/cjs/next/components/SlotProvider.js +41 -0
  58. package/dist/cjs/next/components/SlotProvider.js.map +1 -0
  59. package/dist/cjs/next/components/page.js +20 -18
  60. package/dist/cjs/next/components/page.js.map +1 -1
  61. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +6 -5
  62. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  63. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js +6 -6
  64. package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  65. package/dist/cjs/next/document.js +1 -1
  66. package/dist/cjs/next/document.js.map +1 -1
  67. package/dist/cjs/next/draft-mode/draft-mode-script.js +17 -3
  68. package/dist/cjs/next/draft-mode/draft-mode-script.js.map +1 -1
  69. package/dist/cjs/next/index.js +10 -4
  70. package/dist/cjs/next/index.js.map +1 -1
  71. package/dist/cjs/next/preview-mode.js +4 -1
  72. package/dist/cjs/next/preview-mode.js.map +1 -1
  73. package/dist/cjs/prop-controllers/introspection.js +1 -1
  74. package/dist/cjs/prop-controllers/introspection.js.map +1 -1
  75. package/dist/cjs/react.js +2 -4
  76. package/dist/cjs/react.js.map +1 -1
  77. package/dist/cjs/runtimes/react/components/Document.js +3 -2
  78. package/dist/cjs/runtimes/react/components/Document.js.map +1 -1
  79. package/dist/cjs/runtimes/react/components/{DocumentReference.js → DocumentRoot.js} +9 -9
  80. package/dist/cjs/runtimes/react/components/DocumentRoot.js.map +1 -0
  81. package/dist/cjs/runtimes/react/components/Element.js +10 -22
  82. package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
  83. package/dist/cjs/runtimes/react/components/ElementReference.js +3 -1
  84. package/dist/cjs/runtimes/react/components/ElementReference.js.map +1 -1
  85. package/dist/cjs/runtimes/react/components/ElementRegistration.js +55 -0
  86. package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -0
  87. package/dist/cjs/runtimes/react/components/LiveProvider.js +10 -8
  88. package/dist/cjs/runtimes/react/components/LiveProvider.js.map +1 -1
  89. package/dist/cjs/runtimes/react/components/PreviewProvider.js +9 -22
  90. package/dist/cjs/runtimes/react/components/PreviewProvider.js.map +1 -1
  91. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +23 -5
  92. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  93. package/dist/cjs/runtimes/react/controls/group.js +45 -0
  94. package/dist/cjs/runtimes/react/controls/group.js.map +1 -0
  95. package/dist/cjs/runtimes/react/hooks/makeswift-api.js +20 -18
  96. package/dist/cjs/runtimes/react/hooks/makeswift-api.js.map +1 -1
  97. package/dist/cjs/runtimes/react/hooks/use-cache-data.js +35 -0
  98. package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -0
  99. package/dist/cjs/runtimes/react/hooks/use-dispatch.js +1 -2
  100. package/dist/cjs/runtimes/react/hooks/use-dispatch.js.map +1 -1
  101. package/dist/cjs/runtimes/react/hooks/use-document-context.js +49 -0
  102. package/dist/cjs/runtimes/react/hooks/use-document-context.js.map +1 -0
  103. package/dist/cjs/runtimes/react/hooks/use-element-id.js +2 -2
  104. package/dist/cjs/runtimes/react/hooks/use-element-id.js.map +1 -1
  105. package/dist/cjs/{next/context/react-runtime.js → runtimes/react/hooks/use-react-runtime.js} +12 -16
  106. package/dist/cjs/runtimes/react/hooks/use-react-runtime.js.map +1 -0
  107. package/dist/cjs/runtimes/react/hooks/use-register-document.js +42 -0
  108. package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -0
  109. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +2 -2
  110. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  111. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js +6 -6
  112. package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  113. package/dist/cjs/runtimes/react/hooks/use-store.js +6 -3
  114. package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
  115. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js +38 -0
  116. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -0
  117. package/dist/cjs/{next/context/makeswift-host-api-client.js → runtimes/react/host-api-client.js} +4 -4
  118. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -0
  119. package/dist/cjs/runtimes/react/index.js +8 -8
  120. package/dist/cjs/runtimes/react/index.js.map +1 -1
  121. package/dist/cjs/runtimes/react/react-runtime.js +0 -24
  122. package/dist/cjs/runtimes/react/react-runtime.js.map +1 -1
  123. package/dist/cjs/runtimes/react/runtime-core.js +2 -17
  124. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
  125. package/dist/cjs/state/actions.js +33 -16
  126. package/dist/cjs/state/actions.js.map +1 -1
  127. package/dist/cjs/state/makeswift-api-client.js +98 -18
  128. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  129. package/dist/cjs/{runtimes/react/hooks/use-document-key.js → state/mixins/setup-teardown.js} +12 -13
  130. package/dist/cjs/state/mixins/setup-teardown.js.map +1 -0
  131. package/dist/cjs/state/modules/api-resources.js +62 -24
  132. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  133. package/dist/cjs/state/modules/element-trees.js +14 -7
  134. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  135. package/dist/cjs/state/modules/localized-resources-map.js +80 -0
  136. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -0
  137. package/dist/cjs/state/modules/read-only-documents.js +16 -13
  138. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  139. package/dist/cjs/state/modules/read-write-documents.js +9 -8
  140. package/dist/cjs/state/modules/read-write-documents.js.map +1 -1
  141. package/dist/cjs/state/react-builder-preview.js +18 -61
  142. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  143. package/dist/cjs/state/react-page.js +64 -8
  144. package/dist/cjs/state/react-page.js.map +1 -1
  145. package/dist/cjs/{api/resource-types.js → utils/branded.js} +3 -10
  146. package/dist/cjs/utils/branded.js.map +1 -0
  147. package/dist/cjs/utils/canonicalize.js +39 -0
  148. package/dist/cjs/utils/canonicalize.js.map +1 -0
  149. package/dist/cjs/utils/deterministic-uuid.js +35 -0
  150. package/dist/cjs/utils/deterministic-uuid.js.map +1 -0
  151. package/dist/cjs/utils/is-server.js +31 -0
  152. package/dist/cjs/utils/is-server.js.map +1 -0
  153. package/dist/cjs/utils/serializeState.js +42 -0
  154. package/dist/cjs/utils/serializeState.js.map +1 -0
  155. package/dist/cjs/utils/tests/element-data-test-test.js +10 -9
  156. package/dist/cjs/utils/tests/element-data-test-test.js.map +1 -1
  157. package/dist/esm/api/fragments.js +6 -0
  158. package/dist/esm/api/fragments.js.map +1 -0
  159. package/dist/esm/api/index.js +2 -2
  160. package/dist/esm/api/index.js.map +1 -1
  161. package/dist/esm/api/react.js +45 -46
  162. package/dist/esm/api/react.js.map +1 -1
  163. package/dist/esm/api/{graphql/types.js → types.js} +7 -3
  164. package/dist/esm/api/types.js.map +1 -0
  165. package/dist/esm/builder/serialization/control-serialization.js +19 -11
  166. package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
  167. package/dist/esm/components/builtin/Form/Form.js +1 -1
  168. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  169. package/dist/esm/components/builtin/Slot/Slot.js +13 -0
  170. package/dist/esm/components/builtin/Slot/Slot.js.map +1 -0
  171. package/dist/esm/components/builtin/Slot/index.js +5 -0
  172. package/dist/esm/components/builtin/Slot/index.js.map +1 -0
  173. package/dist/esm/components/builtin/Slot/register.js +22 -0
  174. package/dist/esm/components/builtin/Slot/register.js.map +1 -0
  175. package/dist/esm/components/builtin/constants.js +1 -0
  176. package/dist/esm/components/builtin/constants.js.map +1 -1
  177. package/dist/esm/components/builtin/index.js +8 -6
  178. package/dist/esm/components/builtin/index.js.map +1 -1
  179. package/dist/esm/components/builtin/register.js +3 -0
  180. package/dist/esm/components/builtin/register.js.map +1 -1
  181. package/dist/esm/components/hooks/usePageSnippets.js +1 -1
  182. package/dist/esm/components/hooks/usePageSnippets.js.map +1 -1
  183. package/dist/esm/components/page/Page.js +3 -4
  184. package/dist/esm/components/page/Page.js.map +1 -1
  185. package/dist/esm/components/page/PageHead.js +1 -1
  186. package/dist/esm/components/page/PageHead.js.map +1 -1
  187. package/dist/esm/components/shared/BackgroundsContainer/index.js +5 -3
  188. package/dist/esm/components/shared/BackgroundsContainer/index.js.map +1 -1
  189. package/dist/esm/controls/index.js +17 -7
  190. package/dist/esm/controls/index.js.map +1 -1
  191. package/dist/esm/core/index.js +4 -2
  192. package/dist/esm/core/index.js.map +1 -1
  193. package/dist/esm/index.js +2 -2
  194. package/dist/esm/index.js.map +1 -1
  195. package/dist/esm/jest-setup.js +2 -1
  196. package/dist/esm/jest-setup.js.map +1 -1
  197. package/dist/esm/next/api-handler/handlers/manifest.js +4 -2
  198. package/dist/esm/next/api-handler/handlers/manifest.js.map +1 -1
  199. package/dist/esm/next/api-handler/handlers/webhook/index.js +38 -0
  200. package/dist/esm/next/api-handler/handlers/webhook/index.js.map +1 -0
  201. package/dist/esm/next/api-handler/handlers/webhook/site-published.js +11 -0
  202. package/dist/esm/next/api-handler/handlers/webhook/site-published.js.map +1 -0
  203. package/dist/esm/next/api-handler/handlers/webhook/types.js +21 -0
  204. package/dist/esm/next/api-handler/handlers/webhook/types.js.map +1 -0
  205. package/dist/esm/next/api-handler/index.js +7 -7
  206. package/dist/esm/next/api-handler/index.js.map +1 -1
  207. package/dist/esm/next/client.js +133 -17
  208. package/dist/esm/next/client.js.map +1 -1
  209. package/dist/esm/next/components/MakeswiftComponent.js +26 -0
  210. package/dist/esm/next/components/MakeswiftComponent.js.map +1 -0
  211. package/dist/esm/next/components/Slot.js +16 -0
  212. package/dist/esm/next/components/Slot.js.map +1 -0
  213. package/dist/esm/next/components/SlotProvider.js +17 -0
  214. package/dist/esm/next/components/SlotProvider.js.map +1 -0
  215. package/dist/esm/next/components/page.js +24 -20
  216. package/dist/esm/next/components/page.js.map +1 -1
  217. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +4 -3
  218. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  219. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js +3 -3
  220. package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
  221. package/dist/esm/next/document.js +1 -1
  222. package/dist/esm/next/document.js.map +1 -1
  223. package/dist/esm/next/draft-mode/draft-mode-script.js +7 -3
  224. package/dist/esm/next/draft-mode/draft-mode-script.js.map +1 -1
  225. package/dist/esm/next/index.js +6 -2
  226. package/dist/esm/next/index.js.map +1 -1
  227. package/dist/esm/next/preview-mode.js +4 -1
  228. package/dist/esm/next/preview-mode.js.map +1 -1
  229. package/dist/esm/prop-controllers/introspection.js +2 -2
  230. package/dist/esm/prop-controllers/introspection.js.map +1 -1
  231. package/dist/esm/react.js +2 -4
  232. package/dist/esm/react.js.map +1 -1
  233. package/dist/esm/runtimes/react/components/Document.js +3 -2
  234. package/dist/esm/runtimes/react/components/Document.js.map +1 -1
  235. package/dist/esm/runtimes/react/components/{DocumentReference.js → DocumentRoot.js} +7 -7
  236. package/dist/esm/runtimes/react/components/DocumentRoot.js.map +1 -0
  237. package/dist/esm/runtimes/react/components/Element.js +11 -23
  238. package/dist/esm/runtimes/react/components/Element.js.map +1 -1
  239. package/dist/esm/runtimes/react/components/ElementReference.js +3 -1
  240. package/dist/esm/runtimes/react/components/ElementReference.js.map +1 -1
  241. package/dist/esm/runtimes/react/components/ElementRegistration.js +31 -0
  242. package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -0
  243. package/dist/esm/runtimes/react/components/LiveProvider.js +9 -7
  244. package/dist/esm/runtimes/react/components/LiveProvider.js.map +1 -1
  245. package/dist/esm/runtimes/react/components/PreviewProvider.js +8 -21
  246. package/dist/esm/runtimes/react/components/PreviewProvider.js.map +1 -1
  247. package/dist/esm/runtimes/react/components/RuntimeProvider.js +23 -5
  248. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  249. package/dist/esm/runtimes/react/controls/group.js +23 -0
  250. package/dist/esm/runtimes/react/controls/group.js.map +1 -0
  251. package/dist/esm/runtimes/react/hooks/makeswift-api.js +11 -9
  252. package/dist/esm/runtimes/react/hooks/makeswift-api.js.map +1 -1
  253. package/dist/esm/runtimes/react/hooks/use-cache-data.js +11 -0
  254. package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -0
  255. package/dist/esm/runtimes/react/hooks/use-dispatch.js +2 -3
  256. package/dist/esm/runtimes/react/hooks/use-dispatch.js.map +1 -1
  257. package/dist/esm/runtimes/react/hooks/use-document-context.js +22 -0
  258. package/dist/esm/runtimes/react/hooks/use-document-context.js.map +1 -0
  259. package/dist/esm/runtimes/react/hooks/use-element-id.js +1 -1
  260. package/dist/esm/runtimes/react/hooks/use-element-id.js.map +1 -1
  261. package/dist/esm/runtimes/react/hooks/use-react-runtime.js +15 -0
  262. package/dist/esm/runtimes/react/hooks/use-react-runtime.js.map +1 -0
  263. package/dist/esm/runtimes/react/hooks/use-register-document.js +18 -0
  264. package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -0
  265. package/dist/esm/runtimes/react/hooks/use-resolved-props.js +1 -1
  266. package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  267. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js +5 -5
  268. package/dist/esm/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
  269. package/dist/esm/runtimes/react/hooks/use-store.js +6 -3
  270. package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
  271. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js +14 -0
  272. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -0
  273. package/dist/esm/{next/context/makeswift-host-api-client.js → runtimes/react/host-api-client.js} +1 -1
  274. package/dist/esm/runtimes/react/host-api-client.js.map +1 -0
  275. package/dist/esm/runtimes/react/index.js +5 -5
  276. package/dist/esm/runtimes/react/index.js.map +1 -1
  277. package/dist/esm/runtimes/react/react-runtime.js +0 -24
  278. package/dist/esm/runtimes/react/react-runtime.js.map +1 -1
  279. package/dist/esm/runtimes/react/runtime-core.js +2 -17
  280. package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
  281. package/dist/esm/state/actions.js +29 -14
  282. package/dist/esm/state/actions.js.map +1 -1
  283. package/dist/esm/state/makeswift-api-client.js +103 -18
  284. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  285. package/dist/esm/state/mixins/setup-teardown.js +11 -0
  286. package/dist/esm/state/mixins/setup-teardown.js.map +1 -0
  287. package/dist/esm/state/modules/api-resources.js +66 -25
  288. package/dist/esm/state/modules/api-resources.js.map +1 -1
  289. package/dist/esm/state/modules/element-trees.js +14 -7
  290. package/dist/esm/state/modules/element-trees.js.map +1 -1
  291. package/dist/esm/state/modules/localized-resources-map.js +53 -0
  292. package/dist/esm/state/modules/localized-resources-map.js.map +1 -0
  293. package/dist/esm/state/modules/read-only-documents.js +13 -12
  294. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  295. package/dist/esm/state/modules/read-write-documents.js +9 -8
  296. package/dist/esm/state/modules/read-write-documents.js.map +1 -1
  297. package/dist/esm/state/react-builder-preview.js +18 -64
  298. package/dist/esm/state/react-builder-preview.js.map +1 -1
  299. package/dist/esm/state/react-page.js +73 -9
  300. package/dist/esm/state/react-page.js.map +1 -1
  301. package/dist/esm/utils/branded.js +1 -0
  302. package/dist/esm/utils/branded.js.map +1 -0
  303. package/dist/esm/utils/canonicalize.js +15 -0
  304. package/dist/esm/utils/canonicalize.js.map +1 -0
  305. package/dist/esm/utils/deterministic-uuid.js +11 -0
  306. package/dist/esm/utils/deterministic-uuid.js.map +1 -0
  307. package/dist/esm/utils/is-server.js +7 -0
  308. package/dist/esm/utils/is-server.js.map +1 -0
  309. package/dist/esm/utils/serializeState.js +18 -0
  310. package/dist/esm/utils/serializeState.js.map +1 -0
  311. package/dist/esm/utils/tests/element-data-test-test.js +10 -9
  312. package/dist/esm/utils/tests/element-data-test-test.js.map +1 -1
  313. package/dist/types/api/{graphql/fragments.d.ts → fragments.d.ts} +1 -1
  314. package/dist/types/api/fragments.d.ts.map +1 -0
  315. package/dist/types/api/index.d.ts +2 -2
  316. package/dist/types/api/index.d.ts.map +1 -1
  317. package/dist/types/api/react.d.ts +28 -22
  318. package/dist/types/api/react.d.ts.map +1 -1
  319. package/dist/types/api/types.d.ts +18 -0
  320. package/dist/types/api/types.d.ts.map +1 -0
  321. package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
  322. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  323. package/dist/types/components/builtin/Slot/Slot.d.ts +8 -0
  324. package/dist/types/components/builtin/Slot/Slot.d.ts.map +1 -0
  325. package/dist/types/components/builtin/Slot/index.d.ts +2 -0
  326. package/dist/types/components/builtin/Slot/index.d.ts.map +1 -0
  327. package/dist/types/components/builtin/Slot/register.d.ts +3 -0
  328. package/dist/types/components/builtin/Slot/register.d.ts.map +1 -0
  329. package/dist/types/components/builtin/constants.d.ts +1 -0
  330. package/dist/types/components/builtin/constants.d.ts.map +1 -1
  331. package/dist/types/components/builtin/index.d.ts +1 -0
  332. package/dist/types/components/builtin/index.d.ts.map +1 -1
  333. package/dist/types/components/builtin/register.d.ts.map +1 -1
  334. package/dist/types/components/hooks/usePageSnippets.d.ts +1 -1
  335. package/dist/types/components/hooks/usePageSnippets.d.ts.map +1 -1
  336. package/dist/types/components/page/Page.d.ts +4 -3
  337. package/dist/types/components/page/Page.d.ts.map +1 -1
  338. package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  339. package/dist/types/controls/index.d.ts +1 -1
  340. package/dist/types/controls/index.d.ts.map +1 -1
  341. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +4 -4
  342. package/dist/types/core/index.d.ts +1 -1
  343. package/dist/types/core/index.d.ts.map +1 -1
  344. package/dist/types/index.d.ts +1 -1
  345. package/dist/types/index.d.ts.map +1 -1
  346. package/dist/types/locale.d.ts +1 -1
  347. package/dist/types/next/api-handler/handlers/manifest.d.ts +1 -0
  348. package/dist/types/next/api-handler/handlers/manifest.d.ts.map +1 -1
  349. package/dist/types/next/api-handler/handlers/webhook/index.d.ts +21 -0
  350. package/dist/types/next/api-handler/handlers/webhook/index.d.ts.map +1 -0
  351. package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts +4 -0
  352. package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts.map +1 -0
  353. package/dist/types/next/api-handler/handlers/webhook/types.d.ts +121 -0
  354. package/dist/types/next/api-handler/handlers/webhook/types.d.ts.map +1 -0
  355. package/dist/types/next/api-handler/index.d.ts +4 -3
  356. package/dist/types/next/api-handler/index.d.ts.map +1 -1
  357. package/dist/types/next/client.d.ts +356 -50
  358. package/dist/types/next/client.d.ts.map +1 -1
  359. package/dist/types/next/components/MakeswiftComponent.d.ts +10 -0
  360. package/dist/types/next/components/MakeswiftComponent.d.ts.map +1 -0
  361. package/dist/types/next/components/Slot.d.ts +10 -0
  362. package/dist/types/next/components/Slot.d.ts.map +1 -0
  363. package/dist/types/next/components/SlotProvider.d.ts +12 -0
  364. package/dist/types/next/components/SlotProvider.d.ts.map +1 -0
  365. package/dist/types/next/components/page.d.ts +1 -1
  366. package/dist/types/next/components/page.d.ts.map +1 -1
  367. package/dist/types/next/components/tests/controls/font-control.test.d.ts +2 -0
  368. package/dist/types/next/components/tests/controls/font-control.test.d.ts.map +1 -0
  369. package/dist/types/next/components/tests/controls/group-control.test.d.ts +2 -0
  370. package/dist/types/next/components/tests/controls/group-control.test.d.ts.map +1 -0
  371. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +3 -2
  372. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  373. package/dist/types/next/components/tests/global-element-rendering.test.d.ts +3 -0
  374. package/dist/types/next/components/tests/global-element-rendering.test.d.ts.map +1 -0
  375. package/dist/types/next/components/tests/makeswift-component-rendering.test.d.ts +3 -0
  376. package/dist/types/next/components/tests/makeswift-component-rendering.test.d.ts.map +1 -0
  377. package/dist/types/next/document.d.ts +5 -1
  378. package/dist/types/next/document.d.ts.map +1 -1
  379. package/dist/types/next/draft-mode/draft-mode-script.d.ts.map +1 -1
  380. package/dist/types/next/index.d.ts +3 -1
  381. package/dist/types/next/index.d.ts.map +1 -1
  382. package/dist/types/next/preview-mode.d.ts.map +1 -1
  383. package/dist/types/next/tests/client.get-component-snapshot.test.d.ts +2 -0
  384. package/dist/types/next/tests/client.get-component-snapshot.test.d.ts.map +1 -0
  385. package/dist/types/react.d.ts +1 -1
  386. package/dist/types/react.d.ts.map +1 -1
  387. package/dist/types/runtimes/react/components/Document.d.ts +1 -1
  388. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  389. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +9 -0
  390. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -0
  391. package/dist/types/runtimes/react/components/Element.d.ts +3 -3
  392. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  393. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  394. package/dist/types/runtimes/react/components/ElementRegistration.d.ts +10 -0
  395. package/dist/types/runtimes/react/components/ElementRegistration.d.ts.map +1 -0
  396. package/dist/types/runtimes/react/components/LiveProvider.d.ts +2 -10
  397. package/dist/types/runtimes/react/components/LiveProvider.d.ts.map +1 -1
  398. package/dist/types/runtimes/react/components/PreviewProvider.d.ts +2 -10
  399. package/dist/types/runtimes/react/components/PreviewProvider.d.ts.map +1 -1
  400. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +7 -11
  401. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  402. package/dist/types/runtimes/react/controls/group.d.ts +11 -0
  403. package/dist/types/runtimes/react/controls/group.d.ts.map +1 -0
  404. package/dist/types/runtimes/react/hooks/makeswift-api.d.ts +2 -3
  405. package/dist/types/runtimes/react/hooks/makeswift-api.d.ts.map +1 -1
  406. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +3 -0
  407. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -0
  408. package/dist/types/runtimes/react/hooks/use-dispatch.d.ts.map +1 -1
  409. package/dist/types/runtimes/react/hooks/use-document-context.d.ts +11 -0
  410. package/dist/types/runtimes/react/hooks/use-document-context.d.ts.map +1 -0
  411. package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts +5 -0
  412. package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts.map +1 -0
  413. package/dist/types/runtimes/react/hooks/use-register-document.d.ts +6 -0
  414. package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -0
  415. package/dist/types/runtimes/react/hooks/use-store.d.ts +1 -1
  416. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  417. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +6 -0
  418. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -0
  419. package/dist/types/{next/context/makeswift-host-api-client.d.ts → runtimes/react/host-api-client.d.ts} +1 -1
  420. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -0
  421. package/dist/types/runtimes/react/index.d.ts +3 -3
  422. package/dist/types/runtimes/react/index.d.ts.map +1 -1
  423. package/dist/types/runtimes/react/react-runtime.d.ts +0 -9
  424. package/dist/types/runtimes/react/react-runtime.d.ts.map +1 -1
  425. package/dist/types/runtimes/react/runtime-core.d.ts +0 -5
  426. package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
  427. package/dist/types/slate/test-helpers/slate-test-helper.d.ts +4 -4
  428. package/dist/types/state/actions.d.ts +45 -13
  429. package/dist/types/state/actions.d.ts.map +1 -1
  430. package/dist/types/state/makeswift-api-client.d.ts +18 -11
  431. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  432. package/dist/types/state/mixins/setup-teardown.d.ts +7 -0
  433. package/dist/types/state/mixins/setup-teardown.d.ts.map +1 -0
  434. package/dist/types/state/modules/__tests__/api-resources.test.d.ts +2 -0
  435. package/dist/types/state/modules/__tests__/api-resources.test.d.ts.map +1 -0
  436. package/dist/types/state/modules/__tests__/fixtures/element-trees.d.ts +1 -1
  437. package/dist/types/state/modules/__tests__/localized-resources-map.test.d.ts +2 -0
  438. package/dist/types/state/modules/__tests__/localized-resources-map.test.d.ts.map +1 -0
  439. package/dist/types/state/modules/api-resources.d.ts +8 -5
  440. package/dist/types/state/modules/api-resources.d.ts.map +1 -1
  441. package/dist/types/state/modules/element-trees.d.ts +2 -1
  442. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  443. package/dist/types/state/modules/localized-resources-map.d.ts +13 -0
  444. package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -0
  445. package/dist/types/state/modules/read-only-documents.d.ts +22 -5
  446. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  447. package/dist/types/state/modules/read-write-documents.d.ts +2 -2
  448. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
  449. package/dist/types/state/react-builder-preview.d.ts +5 -11
  450. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  451. package/dist/types/state/react-page.d.ts +8 -6
  452. package/dist/types/state/react-page.d.ts.map +1 -1
  453. package/dist/types/utils/__tests__/serializeState.test.d.ts +2 -0
  454. package/dist/types/utils/__tests__/serializeState.test.d.ts.map +1 -0
  455. package/dist/types/utils/branded.d.ts +7 -0
  456. package/dist/types/utils/branded.d.ts.map +1 -0
  457. package/dist/types/utils/canonicalize.d.ts +7 -0
  458. package/dist/types/utils/canonicalize.d.ts.map +1 -0
  459. package/dist/types/utils/canonicalize.test.d.ts +2 -0
  460. package/dist/types/utils/canonicalize.test.d.ts.map +1 -0
  461. package/dist/types/utils/deterministic-uuid.d.ts +2 -0
  462. package/dist/types/utils/deterministic-uuid.d.ts.map +1 -0
  463. package/dist/types/utils/is-server.d.ts +2 -0
  464. package/dist/types/utils/is-server.d.ts.map +1 -0
  465. package/dist/types/utils/serializeState.d.ts +3 -0
  466. package/dist/types/utils/serializeState.d.ts.map +1 -0
  467. package/dist/types/utils/tests/element-data-test-test.d.ts +6 -3
  468. package/dist/types/utils/tests/element-data-test-test.d.ts.map +1 -1
  469. package/package.json +5 -4
  470. package/dist/cjs/api/graphql/fragments.js.map +0 -1
  471. package/dist/cjs/api/graphql/types.js.map +0 -1
  472. package/dist/cjs/api/resource-types.js.map +0 -1
  473. package/dist/cjs/next/context/makeswift-host-api-client.js.map +0 -1
  474. package/dist/cjs/next/context/react-runtime.js.map +0 -1
  475. package/dist/cjs/runtimes/react/components/DocumentReference.js.map +0 -1
  476. package/dist/cjs/runtimes/react/hooks/use-document-key.js.map +0 -1
  477. package/dist/esm/api/graphql/fragments.js +0 -6
  478. package/dist/esm/api/graphql/fragments.js.map +0 -1
  479. package/dist/esm/api/graphql/types.js.map +0 -1
  480. package/dist/esm/api/resource-types.js +0 -8
  481. package/dist/esm/api/resource-types.js.map +0 -1
  482. package/dist/esm/next/context/makeswift-host-api-client.js.map +0 -1
  483. package/dist/esm/next/context/react-runtime.js +0 -19
  484. package/dist/esm/next/context/react-runtime.js.map +0 -1
  485. package/dist/esm/runtimes/react/components/DocumentReference.js.map +0 -1
  486. package/dist/esm/runtimes/react/hooks/use-document-key.js +0 -11
  487. package/dist/esm/runtimes/react/hooks/use-document-key.js.map +0 -1
  488. package/dist/types/api/graphql/fragments.d.ts.map +0 -1
  489. package/dist/types/api/graphql/types.d.ts +0 -8
  490. package/dist/types/api/graphql/types.d.ts.map +0 -1
  491. package/dist/types/api/resource-types.d.ts +0 -20
  492. package/dist/types/api/resource-types.d.ts.map +0 -1
  493. package/dist/types/next/context/makeswift-host-api-client.d.ts.map +0 -1
  494. package/dist/types/next/context/react-runtime.d.ts +0 -8
  495. package/dist/types/next/context/react-runtime.d.ts.map +0 -1
  496. package/dist/types/runtimes/react/components/DocumentReference.d.ts +0 -9
  497. package/dist/types/runtimes/react/components/DocumentReference.d.ts.map +0 -1
  498. package/dist/types/runtimes/react/hooks/use-document-key.d.ts +0 -4
  499. package/dist/types/runtimes/react/hooks/use-document-key.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/builtin/Form/Form.tsx"],"sourcesContent":["'use client'\n\nimport {\n useState,\n useEffect,\n useRef,\n useMemo,\n forwardRef,\n ComponentPropsWithoutRef,\n Ref,\n useImperativeHandle,\n ForwardedRef,\n} from 'react'\nimport { Formik, getIn } from 'formik'\n\nimport { Check12 } from '../../icons/Check12'\n\nimport { getSizeHeight as getInputSizeHeight } from './components/Field/components/Input'\n\nimport {\n Size,\n Sizes,\n Provider as FormContextProvider,\n Shape,\n Contrast,\n Alignment,\n Alignments,\n} from './context/FormContext'\nimport Placeholder from './components/Placeholder'\nimport Field from './components/Field'\nimport Spinner from './components/Spinner'\nimport Button from '../Button'\nimport type { TableColumn } from './types'\nimport { Link } from '../../shared/Link'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\nimport { useTableFormFieldRefs } from '../../hooks/useTableFormFieldRefs'\nimport { useMakeswiftHostApiClient } from '../../../next/context/makeswift-host-api-client'\nimport { cx } from '@emotion/css'\nimport { useResponsiveGridItem, useResponsiveStyle } from '../../utils/responsive-style'\nimport { type ResponsiveColor } from '../../utils/types'\n\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { useTable } from '../../../runtimes/react/hooks/makeswift-api'\nimport {\n type LinkData,\n type ResponsiveGapData,\n type ResponsiveLengthData,\n type ResponsiveIconRadioGroupValue,\n type ResponsiveTextStyleData,\n type ResponsiveSelectValue,\n type ResponsiveValue,\n type TableFormFieldsData,\n type TableFormFieldsDescriptor,\n} from '@makeswift/prop-controllers'\n\nconst LOCAL_STORAGE_NAMESPACE = '@@makeswift/components/form'\n\nfunction getSizeFontSize(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 12\n\n case Sizes.MEDIUM:\n return 14\n\n case Sizes.LARGE:\n return 18\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\ntype Props = {\n id?: string\n tableId?: string\n fields?: TableFormFieldsData\n submitLink?: LinkData\n gap?: ResponsiveGapData\n shape?: ResponsiveIconRadioGroupValue<Shape>\n size?: ResponsiveIconRadioGroupValue<Size>\n contrast?: ResponsiveIconRadioGroupValue<Contrast>\n labelTextStyle?: ResponsiveTextStyleData\n labelTextColor?: ResponsiveColor | null\n submitTextStyle?: ResponsiveTextStyleData\n brandColor?: ResponsiveColor | null\n submitTextColor?: ResponsiveColor | null\n submitLabel?: string\n submitVariant?: ResponsiveSelectValue<\n 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n >\n submitWidth?: ResponsiveLengthData\n submitAlignment?: ResponsiveIconRadioGroupValue<Alignment>\n width?: string\n margin?: string\n}\n\ntype GridFormBaseProps = { size?: Props['size'] }\n\ntype GridFormProps = GridFormBaseProps &\n Omit<ComponentPropsWithoutRef<'form'>, keyof GridFormBaseProps>\n\nconst GridForm = forwardRef(function GridFrom(\n { className, size, ...restOfProps }: GridFormProps,\n ref: ForwardedRef<HTMLFormElement>,\n) {\n return (\n <form\n {...restOfProps}\n ref={ref}\n className={cx(\n useStyle({ display: 'flex', flexWrap: 'wrap', width: '100%' }),\n useStyle(\n useResponsiveStyle([size] as const, ([size = Sizes.MEDIUM]) => ({\n fontSize: getSizeFontSize(size),\n })),\n ),\n className,\n )}\n />\n )\n})\n\ntype GridItemBaseProps = {\n grid: ResponsiveValue<{ spans: number[][]; count: number }>\n index: number\n rowGap: Props['gap']\n columnGap: Props['gap']\n}\n\ntype GridItemProps = GridItemBaseProps &\n Omit<ComponentPropsWithoutRef<'div'>, keyof GridItemBaseProps>\n\nconst GridItem = forwardRef(function GridItem(\n { className, grid, index, rowGap, columnGap, ...restOfProps }: GridItemProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n return (\n <div\n {...restOfProps}\n ref={ref}\n className={cx(\n useStyle({ alignSelf: 'flex-end', flexDirection: 'column' }),\n useStyle(useResponsiveGridItem({ grid, index, rowGap, columnGap })),\n className,\n )}\n />\n )\n})\n\nfunction getAlignmentMargin(alignment: Alignment): string {\n switch (alignment) {\n case Alignments.LEFT:\n return '0 auto 0 0'\n case Alignments.RIGHT:\n return '0 0 0 auto'\n default:\n return '0 auto'\n }\n}\n\ntype StyledButtonBaseProps = { size?: Props['size']; alignment?: Props['submitAlignment'] }\n\ntype StyledButtonProps = StyledButtonBaseProps &\n Omit<ComponentPropsWithoutRef<typeof Button>, keyof StyledButtonBaseProps>\n\nfunction StyledButton({ className, size, alignment, ...restOfProps }: StyledButtonProps) {\n return (\n <Button\n {...restOfProps}\n as=\"button\"\n className={cx(\n useStyle({ display: 'flex', alignItems: 'center', justifyContent: 'center' }),\n useStyle(\n useResponsiveStyle(\n [size, alignment] as const,\n ([size = Sizes.MEDIUM, alignment = Alignments.CENTER]) => ({\n minHeight: getInputSizeHeight(size),\n maxHeight: getInputSizeHeight(size),\n margin: getAlignmentMargin(alignment),\n paddingTop: 0,\n paddingBottom: 0,\n }),\n ),\n ),\n className,\n )}\n />\n )\n}\n\nfunction ErrorContainer({ className, ...restOfProps }: ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n {...restOfProps}\n className={cx(\n useStyle({\n padding: '8px 16px',\n backgroundColor: '#f19eb9',\n borderRadius: 4,\n marginTop: 16,\n }),\n className,\n )}\n />\n )\n}\n\nfunction IconContainer({ className, ...restOfProps }: ComponentPropsWithoutRef<'div'>) {\n return <div {...restOfProps} className={cx(useStyle({ fill: 'currentColor' }), className)} />\n}\n\nfunction ErrorMessage({ className, ...restOfProps }: ComponentPropsWithoutRef<'p'>) {\n return (\n <p\n {...restOfProps}\n className={cx(\n useStyle({ fontSize: 12, margin: '8px 0', color: 'rgba(127, 0, 0, 0.95)' }),\n className,\n )}\n />\n )\n}\n\nfunction getTableColumnDefaultValue(tableColumn: TableColumn) {\n switch (tableColumn.__typename) {\n case 'CheckboxTableColumn':\n return false\n\n case 'MultipleSelectTableColumn':\n return []\n\n case 'SingleLineTextTableColumn':\n case 'LongTextTableColumn':\n case 'SingleSelectTableColumn':\n case 'PhoneNumberTableColumn':\n case 'EmailTableColumn':\n case 'URLTableColumn':\n case 'NumberTableColumn':\n default:\n return ''\n }\n}\n\ntype Column = { columnId: string; data: Record<string, any> }\ntype Fields = Record<string, string | string[] | boolean>\n\ntype Descriptors = { fields?: TableFormFieldsDescriptor }\n\nconst Form = forwardRef(function Form(\n {\n id,\n tableId,\n fields: fieldsProp,\n submitLabel = 'Submit',\n submitLink,\n shape,\n size,\n contrast,\n brandColor,\n gap,\n width,\n margin,\n submitTextStyle,\n submitVariant,\n submitTextColor,\n submitWidth,\n submitAlignment,\n labelTextStyle,\n labelTextColor,\n }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const fields = useMemo(() => fieldsProp?.fields ?? [], [fieldsProp])\n const grid = useMemo(() => fieldsProp?.grid ?? [], [fieldsProp])\n const table = useTable(tableId ?? null)\n const client = useMakeswiftHostApiClient()\n const [refEl, setRefEl] = useState<HTMLElement | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const [initialValues, setInitialValues] = useState<Fields>(() =>\n fields.reduce((acc, formField) => {\n const tableColumn = table && table.columns.find(field => field.id === formField.tableColumnId)\n const defaultValue = formField ? formField.defaultValue : null\n\n if (tableColumn) {\n acc[tableColumn.name] =\n defaultValue == null ? getTableColumnDefaultValue(tableColumn) : defaultValue\n }\n\n return acc\n }, {} as Fields),\n )\n const controller = propControllers?.fields\n const { container, items } = useTableFormFieldRefs(controller, { fieldsCount: fields.length })\n const [isDone, setIsDone] = useState(false)\n const linkRef = useRef<HTMLAnchorElement>(null)\n\n useImperativeHandle(\n ref,\n () => ({\n getDomNode() {\n return refEl instanceof Element ? refEl : null\n },\n getBoxModel() {\n return refEl instanceof Element ? getBox(refEl) : null\n },\n setPropControllers,\n }),\n [refEl, setPropControllers],\n )\n\n useEffect(() => {\n container(refEl)\n }, [container, refEl])\n\n useEffect(() => {\n if (!isDone) return\n\n let timeoutId = setTimeout(() => setIsDone(false), 2500)\n\n return () => clearTimeout(timeoutId)\n }, [isDone])\n\n function getTableColumn({ tableColumnId }: any) {\n return table && table.columns.find(field => tableColumnId === field.id)\n }\n\n async function handleSubmit(values: any, { setSubmitting, resetForm, setStatus }: any) {\n if (table) {\n const columns: Column[] = []\n\n fields.forEach(field => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data) {\n columns.push({ columnId: field.tableColumnId, data })\n\n if (field.autofill) {\n localStorage.setItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n JSON.stringify(data),\n )\n }\n }\n }\n })\n\n try {\n await client.createTableRecord(table.id, columns)\n setIsDone(true)\n setInitialValues(prev =>\n fields.reduce(\n (acc, field) => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data && field.autofill) return { ...acc, [tableColumn.name]: data }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n resetForm()\n\n if (linkRef.current != null) linkRef.current.click()\n } catch (error) {\n setStatus({ error: 'An unexpected error has occurred, please try again later' })\n } finally {\n setSubmitting(false)\n }\n }\n }\n\n useEffect(() => {\n setInitialValues(prev =>\n fields.reduce(\n (acc, formField) => {\n const tableColumn =\n table && table.columns.find(field => field.id === formField.tableColumnId)\n\n if (tableColumn && formField.autofill) {\n const storedValue = localStorage.getItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n )\n\n if (storedValue) {\n try {\n acc[tableColumn.name] = JSON.parse(storedValue)\n } catch (e) {\n // Ignore\n }\n }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n }, [fields, table])\n\n return (\n <FormContextProvider\n value={{ shape, size, contrast, brandColor, labelTextStyle, labelTextColor }}\n >\n {tableId == null ? (\n <Placeholder ref={setRefEl} width={width} margin={margin} />\n ) : (\n <>\n <Formik\n onSubmit={handleSubmit}\n initialValues={initialValues}\n initialStatus={{ error: null }}\n enableReinitialize\n >\n {formik => {\n const error = formik.status && formik.status.error\n const errors = fields\n .map(field => {\n const tableColumn = getTableColumn(field)\n\n return (\n tableColumn &&\n getIn(formik.touched, tableColumn.name) &&\n getIn(formik.errors, tableColumn.name)\n )\n })\n .filter(message => typeof message === 'string')\n\n return (\n <>\n <GridForm\n ref={setRefEl}\n id={id}\n className={cx(width, margin)}\n size={size}\n onSubmit={formik.handleSubmit}\n onReset={formik.handleReset}\n noValidate\n >\n {fields.map((field, index) => {\n const tableColumn = getTableColumn(field)\n\n return (\n <GridItem\n key={field.id}\n ref={items[index]}\n grid={grid}\n index={index}\n rowGap={gap}\n columnGap={gap}\n >\n <Field tableColumn={tableColumn} tableFormField={field} />\n </GridItem>\n )\n })}\n <GridItem\n ref={items[fields.length]}\n grid={grid}\n index={fields.length}\n rowGap={gap}\n columnGap={gap}\n >\n <StyledButton\n type=\"submit\"\n // @ts-ignore: `disabled` is in `'button'` but not in `T`.\n disabled={formik.isSubmitting || isDone}\n shape={shape}\n size={size}\n color={brandColor}\n variant={submitVariant}\n textColor={submitTextColor}\n width={submitWidth}\n alignment={submitAlignment}\n textStyle={submitTextStyle}\n >\n {formik.isSubmitting ? (\n <Spinner />\n ) : isDone ? (\n <IconContainer>\n <Check12 />\n </IconContainer>\n ) : (\n submitLabel\n )}\n </StyledButton>\n {(errors.length > 0 || error) && (\n <ErrorContainer>\n {errors.map(message => (\n <ErrorMessage key={message}>{message}</ErrorMessage>\n ))}\n {error != null && <ErrorMessage>{error}</ErrorMessage>}\n </ErrorContainer>\n )}\n </GridItem>\n </GridForm>\n {submitLink != null && <Link ref={linkRef} hidden link={submitLink} />}\n </>\n )\n }}\n </Formik>\n </>\n )}\n </FormContextProvider>\n )\n})\n\nexport default Form\n"],"mappings":"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","names":["size","GridItem","Button","alignment","getInputSizeHeight","Form","FormContextProvider","Placeholder","Field","Spinner"]}
1
+ {"version":3,"sources":["../../../../../src/components/builtin/Form/Form.tsx"],"sourcesContent":["'use client'\n\nimport {\n useState,\n useEffect,\n useRef,\n useMemo,\n forwardRef,\n ComponentPropsWithoutRef,\n Ref,\n useImperativeHandle,\n ForwardedRef,\n} from 'react'\nimport { Formik, getIn } from 'formik'\n\nimport { Check12 } from '../../icons/Check12'\n\nimport { getSizeHeight as getInputSizeHeight } from './components/Field/components/Input'\n\nimport {\n Size,\n Sizes,\n Provider as FormContextProvider,\n Shape,\n Contrast,\n Alignment,\n Alignments,\n} from './context/FormContext'\nimport Placeholder from './components/Placeholder'\nimport Field from './components/Field'\nimport Spinner from './components/Spinner'\nimport Button from '../Button'\nimport type { TableColumn } from './types'\nimport { Link } from '../../shared/Link'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\nimport { useTableFormFieldRefs } from '../../hooks/useTableFormFieldRefs'\nimport { cx } from '@emotion/css'\nimport { useResponsiveGridItem, useResponsiveStyle } from '../../utils/responsive-style'\nimport { type ResponsiveColor } from '../../utils/types'\n\nimport { useMakeswiftHostApiClient } from '../../../runtimes/react/host-api-client'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { useTable } from '../../../runtimes/react/hooks/makeswift-api'\nimport {\n type LinkData,\n type ResponsiveGapData,\n type ResponsiveLengthData,\n type ResponsiveIconRadioGroupValue,\n type ResponsiveTextStyleData,\n type ResponsiveSelectValue,\n type ResponsiveValue,\n type TableFormFieldsData,\n type TableFormFieldsDescriptor,\n} from '@makeswift/prop-controllers'\n\nconst LOCAL_STORAGE_NAMESPACE = '@@makeswift/components/form'\n\nfunction getSizeFontSize(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 12\n\n case Sizes.MEDIUM:\n return 14\n\n case Sizes.LARGE:\n return 18\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\ntype Props = {\n id?: string\n tableId?: string\n fields?: TableFormFieldsData\n submitLink?: LinkData\n gap?: ResponsiveGapData\n shape?: ResponsiveIconRadioGroupValue<Shape>\n size?: ResponsiveIconRadioGroupValue<Size>\n contrast?: ResponsiveIconRadioGroupValue<Contrast>\n labelTextStyle?: ResponsiveTextStyleData\n labelTextColor?: ResponsiveColor | null\n submitTextStyle?: ResponsiveTextStyleData\n brandColor?: ResponsiveColor | null\n submitTextColor?: ResponsiveColor | null\n submitLabel?: string\n submitVariant?: ResponsiveSelectValue<\n 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n >\n submitWidth?: ResponsiveLengthData\n submitAlignment?: ResponsiveIconRadioGroupValue<Alignment>\n width?: string\n margin?: string\n}\n\ntype GridFormBaseProps = { size?: Props['size'] }\n\ntype GridFormProps = GridFormBaseProps &\n Omit<ComponentPropsWithoutRef<'form'>, keyof GridFormBaseProps>\n\nconst GridForm = forwardRef(function GridFrom(\n { className, size, ...restOfProps }: GridFormProps,\n ref: ForwardedRef<HTMLFormElement>,\n) {\n return (\n <form\n {...restOfProps}\n ref={ref}\n className={cx(\n useStyle({ display: 'flex', flexWrap: 'wrap', width: '100%' }),\n useStyle(\n useResponsiveStyle([size] as const, ([size = Sizes.MEDIUM]) => ({\n fontSize: getSizeFontSize(size),\n })),\n ),\n className,\n )}\n />\n )\n})\n\ntype GridItemBaseProps = {\n grid: ResponsiveValue<{ spans: number[][]; count: number }>\n index: number\n rowGap: Props['gap']\n columnGap: Props['gap']\n}\n\ntype GridItemProps = GridItemBaseProps &\n Omit<ComponentPropsWithoutRef<'div'>, keyof GridItemBaseProps>\n\nconst GridItem = forwardRef(function GridItem(\n { className, grid, index, rowGap, columnGap, ...restOfProps }: GridItemProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n return (\n <div\n {...restOfProps}\n ref={ref}\n className={cx(\n useStyle({ alignSelf: 'flex-end', flexDirection: 'column' }),\n useStyle(useResponsiveGridItem({ grid, index, rowGap, columnGap })),\n className,\n )}\n />\n )\n})\n\nfunction getAlignmentMargin(alignment: Alignment): string {\n switch (alignment) {\n case Alignments.LEFT:\n return '0 auto 0 0'\n case Alignments.RIGHT:\n return '0 0 0 auto'\n default:\n return '0 auto'\n }\n}\n\ntype StyledButtonBaseProps = { size?: Props['size']; alignment?: Props['submitAlignment'] }\n\ntype StyledButtonProps = StyledButtonBaseProps &\n Omit<ComponentPropsWithoutRef<typeof Button>, keyof StyledButtonBaseProps>\n\nfunction StyledButton({ className, size, alignment, ...restOfProps }: StyledButtonProps) {\n return (\n <Button\n {...restOfProps}\n as=\"button\"\n className={cx(\n useStyle({ display: 'flex', alignItems: 'center', justifyContent: 'center' }),\n useStyle(\n useResponsiveStyle(\n [size, alignment] as const,\n ([size = Sizes.MEDIUM, alignment = Alignments.CENTER]) => ({\n minHeight: getInputSizeHeight(size),\n maxHeight: getInputSizeHeight(size),\n margin: getAlignmentMargin(alignment),\n paddingTop: 0,\n paddingBottom: 0,\n }),\n ),\n ),\n className,\n )}\n />\n )\n}\n\nfunction ErrorContainer({ className, ...restOfProps }: ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n {...restOfProps}\n className={cx(\n useStyle({\n padding: '8px 16px',\n backgroundColor: '#f19eb9',\n borderRadius: 4,\n marginTop: 16,\n }),\n className,\n )}\n />\n )\n}\n\nfunction IconContainer({ className, ...restOfProps }: ComponentPropsWithoutRef<'div'>) {\n return <div {...restOfProps} className={cx(useStyle({ fill: 'currentColor' }), className)} />\n}\n\nfunction ErrorMessage({ className, ...restOfProps }: ComponentPropsWithoutRef<'p'>) {\n return (\n <p\n {...restOfProps}\n className={cx(\n useStyle({ fontSize: 12, margin: '8px 0', color: 'rgba(127, 0, 0, 0.95)' }),\n className,\n )}\n />\n )\n}\n\nfunction getTableColumnDefaultValue(tableColumn: TableColumn) {\n switch (tableColumn.__typename) {\n case 'CheckboxTableColumn':\n return false\n\n case 'MultipleSelectTableColumn':\n return []\n\n case 'SingleLineTextTableColumn':\n case 'LongTextTableColumn':\n case 'SingleSelectTableColumn':\n case 'PhoneNumberTableColumn':\n case 'EmailTableColumn':\n case 'URLTableColumn':\n case 'NumberTableColumn':\n default:\n return ''\n }\n}\n\ntype Column = { columnId: string; data: Record<string, any> }\ntype Fields = Record<string, string | string[] | boolean>\n\ntype Descriptors = { fields?: TableFormFieldsDescriptor }\n\nconst Form = forwardRef(function Form(\n {\n id,\n tableId,\n fields: fieldsProp,\n submitLabel = 'Submit',\n submitLink,\n shape,\n size,\n contrast,\n brandColor,\n gap,\n width,\n margin,\n submitTextStyle,\n submitVariant,\n submitTextColor,\n submitWidth,\n submitAlignment,\n labelTextStyle,\n labelTextColor,\n }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const fields = useMemo(() => fieldsProp?.fields ?? [], [fieldsProp])\n const grid = useMemo(() => fieldsProp?.grid ?? [], [fieldsProp])\n const table = useTable(tableId ?? null)\n const client = useMakeswiftHostApiClient()\n const [refEl, setRefEl] = useState<HTMLElement | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const [initialValues, setInitialValues] = useState<Fields>(() =>\n fields.reduce((acc, formField) => {\n const tableColumn = table && table.columns.find(field => field.id === formField.tableColumnId)\n const defaultValue = formField ? formField.defaultValue : null\n\n if (tableColumn) {\n acc[tableColumn.name] =\n defaultValue == null ? getTableColumnDefaultValue(tableColumn) : defaultValue\n }\n\n return acc\n }, {} as Fields),\n )\n const controller = propControllers?.fields\n const { container, items } = useTableFormFieldRefs(controller, { fieldsCount: fields.length })\n const [isDone, setIsDone] = useState(false)\n const linkRef = useRef<HTMLAnchorElement>(null)\n\n useImperativeHandle(\n ref,\n () => ({\n getDomNode() {\n return refEl instanceof Element ? refEl : null\n },\n getBoxModel() {\n return refEl instanceof Element ? getBox(refEl) : null\n },\n setPropControllers,\n }),\n [refEl, setPropControllers],\n )\n\n useEffect(() => {\n container(refEl)\n }, [container, refEl])\n\n useEffect(() => {\n if (!isDone) return\n\n let timeoutId = setTimeout(() => setIsDone(false), 2500)\n\n return () => clearTimeout(timeoutId)\n }, [isDone])\n\n function getTableColumn({ tableColumnId }: any) {\n return table && table.columns.find(field => tableColumnId === field.id)\n }\n\n async function handleSubmit(values: any, { setSubmitting, resetForm, setStatus }: any) {\n if (table) {\n const columns: Column[] = []\n\n fields.forEach(field => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data) {\n columns.push({ columnId: field.tableColumnId, data })\n\n if (field.autofill) {\n localStorage.setItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n JSON.stringify(data),\n )\n }\n }\n }\n })\n\n try {\n await client.createTableRecord(table.id, columns)\n setIsDone(true)\n setInitialValues(prev =>\n fields.reduce(\n (acc, field) => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data && field.autofill) return { ...acc, [tableColumn.name]: data }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n resetForm()\n\n if (linkRef.current != null) linkRef.current.click()\n } catch (error) {\n setStatus({ error: 'An unexpected error has occurred, please try again later' })\n } finally {\n setSubmitting(false)\n }\n }\n }\n\n useEffect(() => {\n setInitialValues(prev =>\n fields.reduce(\n (acc, formField) => {\n const tableColumn =\n table && table.columns.find(field => field.id === formField.tableColumnId)\n\n if (tableColumn && formField.autofill) {\n const storedValue = localStorage.getItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n )\n\n if (storedValue) {\n try {\n acc[tableColumn.name] = JSON.parse(storedValue)\n } catch (e) {\n // Ignore\n }\n }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n }, [fields, table])\n\n return (\n <FormContextProvider\n value={{ shape, size, contrast, brandColor, labelTextStyle, labelTextColor }}\n >\n {tableId == null ? (\n <Placeholder ref={setRefEl} width={width} margin={margin} />\n ) : (\n <>\n <Formik\n onSubmit={handleSubmit}\n initialValues={initialValues}\n initialStatus={{ error: null }}\n enableReinitialize\n >\n {formik => {\n const error = formik.status && formik.status.error\n const errors = fields\n .map(field => {\n const tableColumn = getTableColumn(field)\n\n return (\n tableColumn &&\n getIn(formik.touched, tableColumn.name) &&\n getIn(formik.errors, tableColumn.name)\n )\n })\n .filter(message => typeof message === 'string')\n\n return (\n <>\n <GridForm\n ref={setRefEl}\n id={id}\n className={cx(width, margin)}\n size={size}\n onSubmit={formik.handleSubmit}\n onReset={formik.handleReset}\n noValidate\n >\n {fields.map((field, index) => {\n const tableColumn = getTableColumn(field)\n\n return (\n <GridItem\n key={field.id}\n ref={items[index]}\n grid={grid}\n index={index}\n rowGap={gap}\n columnGap={gap}\n >\n <Field tableColumn={tableColumn} tableFormField={field} />\n </GridItem>\n )\n })}\n <GridItem\n ref={items[fields.length]}\n grid={grid}\n index={fields.length}\n rowGap={gap}\n columnGap={gap}\n >\n <StyledButton\n type=\"submit\"\n // @ts-ignore: `disabled` is in `'button'` but not in `T`.\n disabled={formik.isSubmitting || isDone}\n shape={shape}\n size={size}\n color={brandColor}\n variant={submitVariant}\n textColor={submitTextColor}\n width={submitWidth}\n alignment={submitAlignment}\n textStyle={submitTextStyle}\n >\n {formik.isSubmitting ? (\n <Spinner />\n ) : isDone ? (\n <IconContainer>\n <Check12 />\n </IconContainer>\n ) : (\n submitLabel\n )}\n </StyledButton>\n {(errors.length > 0 || error) && (\n <ErrorContainer>\n {errors.map(message => (\n <ErrorMessage key={message}>{message}</ErrorMessage>\n ))}\n {error != null && <ErrorMessage>{error}</ErrorMessage>}\n </ErrorContainer>\n )}\n </GridItem>\n </GridForm>\n {submitLink != null && <Link ref={linkRef} hidden link={submitLink} />}\n </>\n )\n }}\n </Formik>\n </>\n )}\n </FormContextProvider>\n )\n})\n\nexport default Form\n"],"mappings":"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","names":["size","GridItem","Button","alignment","getInputSizeHeight","Form","FormContextProvider","Placeholder","Field","Spinner"]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var Slot_exports = {};
21
+ __export(Slot_exports, {
22
+ default: () => Slot_default
23
+ });
24
+ module.exports = __toCommonJS(Slot_exports);
25
+ var import_jsx_runtime = require("react/jsx-runtime");
26
+ var import_react = require("react");
27
+ var import_SlotProvider = require("../../../next/components/SlotProvider");
28
+ function Slot(props) {
29
+ const ctx = (0, import_react.useContext)(import_SlotProvider.PropsContext);
30
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: props.showFallback ? ctx.fallback : props.children });
31
+ }
32
+ var Slot_default = Slot;
33
+ //# sourceMappingURL=Slot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/builtin/Slot/Slot.tsx"],"sourcesContent":["'use client'\n\nimport { ReactNode, useContext } from 'react'\nimport { PropsContext } from '../../../next/components/SlotProvider'\n\ntype Props = {\n children: ReactNode\n showFallback: boolean\n}\n\nfunction Slot(props: Props) {\n const ctx = useContext(PropsContext)\n\n return <>{props.showFallback ? ctx.fallback : props.children}</>\n}\n\nexport default Slot\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAaS;AAXT,mBAAsC;AACtC,0BAA6B;AAO7B,SAAS,KAAK,OAAc;AAC1B,QAAM,UAAM,yBAAW,gCAAY;AAEnC,SAAO,2EAAG,gBAAM,eAAe,IAAI,WAAW,MAAM,UAAS;AAC/D;AAEA,IAAO,eAAQ;","names":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var Slot_exports = {};
30
+ __export(Slot_exports, {
31
+ default: () => import_Slot.default
32
+ });
33
+ module.exports = __toCommonJS(Slot_exports);
34
+ var import_Slot = __toESM(require("./Slot"));
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/builtin/Slot/index.tsx"],"sourcesContent":["export { default } from './Slot'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwB;","names":[]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var register_exports = {};
30
+ __export(register_exports, {
31
+ registerComponent: () => registerComponent
32
+ });
33
+ module.exports = __toCommonJS(register_exports);
34
+ var import_react = require("react");
35
+ var import_constants = require("../constants");
36
+ var import_controls = require("@makeswift/controls");
37
+ var import_controls2 = require("../../../controls");
38
+ function registerComponent(runtime) {
39
+ return runtime.registerComponent(
40
+ (0, import_react.lazy)(() => Promise.resolve().then(() => __toESM(require("./Slot")))),
41
+ {
42
+ type: import_constants.MakeswiftComponentType.Slot,
43
+ label: "Slot",
44
+ hidden: true,
45
+ props: {
46
+ children: (0, import_controls2.Slot)(),
47
+ showFallback: (0, import_controls.Checkbox)({ label: "Use fallback", defaultValue: true })
48
+ }
49
+ }
50
+ );
51
+ }
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ registerComponent
55
+ });
56
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/builtin/Slot/register.ts"],"sourcesContent":["import { lazy } from 'react'\nimport { ReactRuntime } from '../../../react'\nimport { MakeswiftComponentType } from '../constants'\nimport { Checkbox } from '@makeswift/controls'\nimport { Slot } from '../../../controls'\n\nexport function registerComponent(runtime: ReactRuntime) {\n return runtime.registerComponent(\n lazy(() => import('./Slot')),\n {\n type: MakeswiftComponentType.Slot,\n label: 'Slot',\n hidden: true,\n props: {\n children: Slot(),\n showFallback: Checkbox({ label: 'Use fallback', defaultValue: true }),\n },\n },\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAqB;AAErB,uBAAuC;AACvC,sBAAyB;AACzB,IAAAA,mBAAqB;AAEd,SAAS,kBAAkB,SAAuB;AACvD,SAAO,QAAQ;AAAA,QACb,mBAAK,MAAM,6CAAO,QAAQ,GAAC;AAAA,IAC3B;AAAA,MACE,MAAM,wCAAuB;AAAA,MAC7B,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,cAAU,uBAAK;AAAA,QACf,kBAAc,0BAAS,EAAE,OAAO,gBAAgB,cAAc,KAAK,CAAC;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AACF;","names":["import_controls"]}
@@ -32,6 +32,7 @@ const MakeswiftComponentType = {
32
32
  Image: "./components/Image/index.js",
33
33
  Navigation: "./components/Navigation/index.js",
34
34
  Root: "./components/Root/index.js",
35
+ Slot: "makeswift::components::slot::v1",
35
36
  SocialLinks: "./components/SocialLinks/index.js",
36
37
  Text: "./components/Text/index.js",
37
38
  Video: "./components/Video/index.js"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/builtin/constants.ts"],"sourcesContent":["/**\n * These are the element types that have been used since the beginning of Makeswift and are saved in\n * the database.\n */\nexport const MakeswiftComponentType = {\n Box: './components/Box/index.js',\n Button: './components/Button/index.js',\n Carousel: './components/Carousel/index.js',\n Countdown: './components/Countdown/index.js',\n Divider: './components/Divider/index.js',\n Embed: './components/Embed/index.js',\n Form: './components/Form/index.js',\n Image: './components/Image/index.js',\n Navigation: './components/Navigation/index.js',\n Root: './components/Root/index.js',\n SocialLinks: './components/SocialLinks/index.js',\n Text: './components/Text/index.js',\n Video: './components/Video/index.js',\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,MAAM,yBAAyB;AAAA,EACpC,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/builtin/constants.ts"],"sourcesContent":["/**\n * These are the element types that have been used since the beginning of Makeswift and are saved in\n * the database.\n */\nexport const MakeswiftComponentType = {\n Box: './components/Box/index.js',\n Button: './components/Button/index.js',\n Carousel: './components/Carousel/index.js',\n Countdown: './components/Countdown/index.js',\n Divider: './components/Divider/index.js',\n Embed: './components/Embed/index.js',\n Form: './components/Form/index.js',\n Image: './components/Image/index.js',\n Navigation: './components/Navigation/index.js',\n Root: './components/Root/index.js',\n Slot: 'makeswift::components::slot::v1',\n SocialLinks: './components/SocialLinks/index.js',\n Text: './components/Text/index.js',\n Video: './components/Video/index.js',\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,MAAM,yBAAyB;AAAA,EACpC,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AACT;","names":[]}
@@ -40,6 +40,7 @@ __export(builtin_exports, {
40
40
  MakeswiftComponentType: () => import_constants.MakeswiftComponentType,
41
41
  Navigation: () => import_Navigation.default,
42
42
  Root: () => import_Root.default,
43
+ Slot: () => import_Slot.default,
43
44
  SocialLinks: () => import_SocialLinks.default,
44
45
  Text: () => import_Text.default,
45
46
  Video: () => import_Video.default
@@ -56,6 +57,7 @@ var import_Form = __toESM(require("./Form"));
56
57
  var import_Image = __toESM(require("./Image"));
57
58
  var import_Navigation = __toESM(require("./Navigation"));
58
59
  var import_Root = __toESM(require("./Root"));
60
+ var import_Slot = __toESM(require("./Slot"));
59
61
  var import_SocialLinks = __toESM(require("./SocialLinks"));
60
62
  var import_Text = __toESM(require("./Text"));
61
63
  var import_Video = __toESM(require("./Video"));
@@ -73,6 +75,7 @@ var import_constants = require("./constants");
73
75
  MakeswiftComponentType,
74
76
  Navigation,
75
77
  Root,
78
+ Slot,
76
79
  SocialLinks,
77
80
  Text,
78
81
  Video,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/builtin/index.ts"],"sourcesContent":["export * from './Box'\nexport { default as Box } from './Box'\nexport { default as Button } from './Button'\nexport { default as Carousel } from './Carousel'\nexport { default as Countdown } from './Countdown'\nexport { default as Divider } from './Divider'\nexport { default as Embed } from './Embed'\nexport { default as Form } from './Form'\nexport { default as Image } from './Image'\nexport { default as Navigation } from './Navigation'\nexport { default as Root } from './Root'\nexport { default as SocialLinks } from './SocialLinks'\nexport { default as Text } from './Text'\nexport { default as Video } from './Video'\n\nexport { MakeswiftComponentType } from './constants'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAc,kBAAd;AACA,iBAA+B;AAC/B,oBAAkC;AAClC,sBAAoC;AACpC,uBAAqC;AACrC,qBAAmC;AACnC,mBAAiC;AACjC,kBAAgC;AAChC,mBAAiC;AACjC,wBAAsC;AACtC,kBAAgC;AAChC,yBAAuC;AACvC,kBAAgC;AAChC,mBAAiC;AAEjC,uBAAuC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/builtin/index.ts"],"sourcesContent":["export * from './Box'\nexport { default as Box } from './Box'\nexport { default as Button } from './Button'\nexport { default as Carousel } from './Carousel'\nexport { default as Countdown } from './Countdown'\nexport { default as Divider } from './Divider'\nexport { default as Embed } from './Embed'\nexport { default as Form } from './Form'\nexport { default as Image } from './Image'\nexport { default as Navigation } from './Navigation'\nexport { default as Root } from './Root'\nexport { default as Slot } from './Slot'\nexport { default as SocialLinks } from './SocialLinks'\nexport { default as Text } from './Text'\nexport { default as Video } from './Video'\n\nexport { MakeswiftComponentType } from './constants'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAc,kBAAd;AACA,iBAA+B;AAC/B,oBAAkC;AAClC,sBAAoC;AACpC,uBAAqC;AACrC,qBAAmC;AACnC,mBAAiC;AACjC,kBAAgC;AAChC,mBAAiC;AACjC,wBAAsC;AACtC,kBAAgC;AAChC,kBAAgC;AAChC,yBAAuC;AACvC,kBAAgC;AAChC,mBAAiC;AAEjC,uBAAuC;","names":[]}
@@ -31,9 +31,10 @@ var import_register7 = require("./Form/register");
31
31
  var import_register8 = require("./Image/register");
32
32
  var import_register9 = require("./Navigation/register");
33
33
  var import_register10 = require("./Root/register");
34
- var import_register11 = require("./SocialLinks/register");
35
- var import_register12 = require("./Text/register");
36
- var import_register13 = require("./Video/register");
34
+ var import_register11 = require("./Slot/register");
35
+ var import_register12 = require("./SocialLinks/register");
36
+ var import_register13 = require("./Text/register");
37
+ var import_register14 = require("./Video/register");
37
38
  function registerBuiltinComponents(runtime) {
38
39
  const unregisterBoxComponent = (0, import_register.registerComponent)(runtime);
39
40
  const unregisterButtonComponent = (0, import_register2.registerComponent)(runtime);
@@ -45,9 +46,10 @@ function registerBuiltinComponents(runtime) {
45
46
  const unregisterImageComponent = (0, import_register8.registerComponent)(runtime);
46
47
  const unregisterNavigationComponent = (0, import_register9.registerComponent)(runtime);
47
48
  const unregisterRootComponent = (0, import_register10.registerComponent)(runtime);
48
- const unregisterSocialLinksComponent = (0, import_register11.registerComponent)(runtime);
49
- const unregisterTextComponent = (0, import_register12.registerComponent)(runtime);
50
- const unregisterVideoComponent = (0, import_register13.registerComponent)(runtime);
49
+ const unregisterSlotComponent = (0, import_register11.registerComponent)(runtime);
50
+ const unregisterSocialLinksComponent = (0, import_register12.registerComponent)(runtime);
51
+ const unregisterTextComponent = (0, import_register13.registerComponent)(runtime);
52
+ const unregisterVideoComponent = (0, import_register14.registerComponent)(runtime);
51
53
  return () => {
52
54
  unregisterBoxComponent();
53
55
  unregisterButtonComponent();
@@ -59,6 +61,7 @@ function registerBuiltinComponents(runtime) {
59
61
  unregisterImageComponent();
60
62
  unregisterNavigationComponent();
61
63
  unregisterRootComponent();
64
+ unregisterSlotComponent();
62
65
  unregisterSocialLinksComponent();
63
66
  unregisterTextComponent();
64
67
  unregisterVideoComponent();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/builtin/register.ts"],"sourcesContent":["import { type ReactRuntime } from '../../runtimes/react'\nimport { registerComponent as registerBoxComponent } from './Box/register'\nimport { registerComponent as registerButtonComponent } from './Button/register'\nimport { registerComponent as registerCarouselComponent } from './Carousel/register'\nimport { registerComponent as registerCountdownComponent } from './Countdown/register'\nimport { registerComponent as registerDividerComponent } from './Divider/register'\nimport { registerComponent as registerEmbedComponent } from './Embed/register'\nimport { registerComponent as registerFormComponent } from './Form/register'\nimport { registerComponent as registerImageComponent } from './Image/register'\nimport { registerComponent as registerNavigationComponent } from './Navigation/register'\nimport { registerComponent as registerRootComponent } from './Root/register'\nimport { registerComponent as registerSocialLinksComponent } from './SocialLinks/register'\nimport { registerComponent as registerTextComponent } from './Text/register'\nimport { registerComponent as registerVideoComponent } from './Video/register'\n\nexport function registerBuiltinComponents(runtime: ReactRuntime) {\n const unregisterBoxComponent = registerBoxComponent(runtime)\n const unregisterButtonComponent = registerButtonComponent(runtime)\n const unregisterCarouselComponent = registerCarouselComponent(runtime)\n const unregisterCountdownComponent = registerCountdownComponent(runtime)\n const unregisterDividerComponent = registerDividerComponent(runtime)\n const unregisterEmbedComponent = registerEmbedComponent(runtime)\n const unregisterFormComponent = registerFormComponent(runtime)\n const unregisterImageComponent = registerImageComponent(runtime)\n const unregisterNavigationComponent = registerNavigationComponent(runtime)\n const unregisterRootComponent = registerRootComponent(runtime)\n const unregisterSocialLinksComponent = registerSocialLinksComponent(runtime)\n const unregisterTextComponent = registerTextComponent(runtime)\n const unregisterVideoComponent = registerVideoComponent(runtime)\n\n return () => {\n unregisterBoxComponent()\n unregisterButtonComponent()\n unregisterCarouselComponent()\n unregisterCountdownComponent()\n unregisterDividerComponent()\n unregisterEmbedComponent()\n unregisterFormComponent()\n unregisterImageComponent()\n unregisterNavigationComponent()\n unregisterRootComponent()\n unregisterSocialLinksComponent()\n unregisterTextComponent()\n unregisterVideoComponent()\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAA0D;AAC1D,IAAAA,mBAA6D;AAC7D,IAAAA,mBAA+D;AAC/D,IAAAA,mBAAgE;AAChE,IAAAA,mBAA8D;AAC9D,IAAAA,mBAA4D;AAC5D,IAAAA,mBAA2D;AAC3D,IAAAA,mBAA4D;AAC5D,IAAAA,mBAAiE;AACjE,IAAAA,oBAA2D;AAC3D,IAAAA,oBAAkE;AAClE,IAAAA,oBAA2D;AAC3D,IAAAA,oBAA4D;AAErD,SAAS,0BAA0B,SAAuB;AAC/D,QAAM,6BAAyB,gBAAAC,mBAAqB,OAAO;AAC3D,QAAM,gCAA4B,iBAAAC,mBAAwB,OAAO;AACjE,QAAM,kCAA8B,iBAAAC,mBAA0B,OAAO;AACrE,QAAM,mCAA+B,iBAAAC,mBAA2B,OAAO;AACvE,QAAM,iCAA6B,iBAAAC,mBAAyB,OAAO;AACnE,QAAM,+BAA2B,iBAAAC,mBAAuB,OAAO;AAC/D,QAAM,8BAA0B,iBAAAC,mBAAsB,OAAO;AAC7D,QAAM,+BAA2B,iBAAAC,mBAAuB,OAAO;AAC/D,QAAM,oCAAgC,iBAAAC,mBAA4B,OAAO;AACzE,QAAM,8BAA0B,kBAAAC,mBAAsB,OAAO;AAC7D,QAAM,qCAAiC,kBAAAC,mBAA6B,OAAO;AAC3E,QAAM,8BAA0B,kBAAAC,mBAAsB,OAAO;AAC7D,QAAM,+BAA2B,kBAAAC,mBAAuB,OAAO;AAE/D,SAAO,MAAM;AACX,2BAAuB;AACvB,8BAA0B;AAC1B,gCAA4B;AAC5B,iCAA6B;AAC7B,+BAA2B;AAC3B,6BAAyB;AACzB,4BAAwB;AACxB,6BAAyB;AACzB,kCAA8B;AAC9B,4BAAwB;AACxB,mCAA+B;AAC/B,4BAAwB;AACxB,6BAAyB;AAAA,EAC3B;AACF;","names":["import_register","registerBoxComponent","registerButtonComponent","registerCarouselComponent","registerCountdownComponent","registerDividerComponent","registerEmbedComponent","registerFormComponent","registerImageComponent","registerNavigationComponent","registerRootComponent","registerSocialLinksComponent","registerTextComponent","registerVideoComponent"]}
1
+ {"version":3,"sources":["../../../../src/components/builtin/register.ts"],"sourcesContent":["import { type ReactRuntime } from '../../runtimes/react'\nimport { registerComponent as registerBoxComponent } from './Box/register'\nimport { registerComponent as registerButtonComponent } from './Button/register'\nimport { registerComponent as registerCarouselComponent } from './Carousel/register'\nimport { registerComponent as registerCountdownComponent } from './Countdown/register'\nimport { registerComponent as registerDividerComponent } from './Divider/register'\nimport { registerComponent as registerEmbedComponent } from './Embed/register'\nimport { registerComponent as registerFormComponent } from './Form/register'\nimport { registerComponent as registerImageComponent } from './Image/register'\nimport { registerComponent as registerNavigationComponent } from './Navigation/register'\nimport { registerComponent as registerRootComponent } from './Root/register'\nimport { registerComponent as registerSlotComponent } from './Slot/register'\nimport { registerComponent as registerSocialLinksComponent } from './SocialLinks/register'\nimport { registerComponent as registerTextComponent } from './Text/register'\nimport { registerComponent as registerVideoComponent } from './Video/register'\n\nexport function registerBuiltinComponents(runtime: ReactRuntime) {\n const unregisterBoxComponent = registerBoxComponent(runtime)\n const unregisterButtonComponent = registerButtonComponent(runtime)\n const unregisterCarouselComponent = registerCarouselComponent(runtime)\n const unregisterCountdownComponent = registerCountdownComponent(runtime)\n const unregisterDividerComponent = registerDividerComponent(runtime)\n const unregisterEmbedComponent = registerEmbedComponent(runtime)\n const unregisterFormComponent = registerFormComponent(runtime)\n const unregisterImageComponent = registerImageComponent(runtime)\n const unregisterNavigationComponent = registerNavigationComponent(runtime)\n const unregisterRootComponent = registerRootComponent(runtime)\n const unregisterSlotComponent = registerSlotComponent(runtime)\n const unregisterSocialLinksComponent = registerSocialLinksComponent(runtime)\n const unregisterTextComponent = registerTextComponent(runtime)\n const unregisterVideoComponent = registerVideoComponent(runtime)\n\n return () => {\n unregisterBoxComponent()\n unregisterButtonComponent()\n unregisterCarouselComponent()\n unregisterCountdownComponent()\n unregisterDividerComponent()\n unregisterEmbedComponent()\n unregisterFormComponent()\n unregisterImageComponent()\n unregisterNavigationComponent()\n unregisterRootComponent()\n unregisterSlotComponent()\n unregisterSocialLinksComponent()\n unregisterTextComponent()\n unregisterVideoComponent()\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAA0D;AAC1D,IAAAA,mBAA6D;AAC7D,IAAAA,mBAA+D;AAC/D,IAAAA,mBAAgE;AAChE,IAAAA,mBAA8D;AAC9D,IAAAA,mBAA4D;AAC5D,IAAAA,mBAA2D;AAC3D,IAAAA,mBAA4D;AAC5D,IAAAA,mBAAiE;AACjE,IAAAA,oBAA2D;AAC3D,IAAAA,oBAA2D;AAC3D,IAAAA,oBAAkE;AAClE,IAAAA,oBAA2D;AAC3D,IAAAA,oBAA4D;AAErD,SAAS,0BAA0B,SAAuB;AAC/D,QAAM,6BAAyB,gBAAAC,mBAAqB,OAAO;AAC3D,QAAM,gCAA4B,iBAAAC,mBAAwB,OAAO;AACjE,QAAM,kCAA8B,iBAAAC,mBAA0B,OAAO;AACrE,QAAM,mCAA+B,iBAAAC,mBAA2B,OAAO;AACvE,QAAM,iCAA6B,iBAAAC,mBAAyB,OAAO;AACnE,QAAM,+BAA2B,iBAAAC,mBAAuB,OAAO;AAC/D,QAAM,8BAA0B,iBAAAC,mBAAsB,OAAO;AAC7D,QAAM,+BAA2B,iBAAAC,mBAAuB,OAAO;AAC/D,QAAM,oCAAgC,iBAAAC,mBAA4B,OAAO;AACzE,QAAM,8BAA0B,kBAAAC,mBAAsB,OAAO;AAC7D,QAAM,8BAA0B,kBAAAC,mBAAsB,OAAO;AAC7D,QAAM,qCAAiC,kBAAAC,mBAA6B,OAAO;AAC3E,QAAM,8BAA0B,kBAAAC,mBAAsB,OAAO;AAC7D,QAAM,+BAA2B,kBAAAC,mBAAuB,OAAO;AAE/D,SAAO,MAAM;AACX,2BAAuB;AACvB,8BAA0B;AAC1B,gCAA4B;AAC5B,iCAA6B;AAC7B,+BAA2B;AAC3B,6BAAyB;AACzB,4BAAwB;AACxB,6BAAyB;AACzB,kCAA8B;AAC9B,4BAAwB;AACxB,4BAAwB;AACxB,mCAA+B;AAC/B,4BAAwB;AACxB,6BAAyB;AAAA,EAC3B;AACF;","names":["import_register","registerBoxComponent","registerButtonComponent","registerCarouselComponent","registerCountdownComponent","registerDividerComponent","registerEmbedComponent","registerFormComponent","registerImageComponent","registerNavigationComponent","registerRootComponent","registerSlotComponent","registerSocialLinksComponent","registerTextComponent","registerVideoComponent"]}
@@ -34,7 +34,7 @@ module.exports = __toCommonJS(usePageSnippets_exports);
34
34
  var import_react = require("react");
35
35
  var import_react2 = require("../../react");
36
36
  var import_deepEqual = __toESM(require("../../utils/deepEqual"));
37
- var import_makeswift_host_api_client = require("../../next/context/makeswift-host-api-client");
37
+ var import_host_api_client = require("../../runtimes/react/host-api-client");
38
38
  var import_shim = require("use-sync-external-store/shim");
39
39
  const SnippetLocation = {
40
40
  Body: "BODY",
@@ -81,7 +81,7 @@ function usePageSnippets({ page }) {
81
81
  return { headSnippets, bodySnippets };
82
82
  }
83
83
  function useCachedPage(pageId) {
84
- const client = (0, import_makeswift_host_api_client.useMakeswiftHostApiClient)();
84
+ const client = (0, import_host_api_client.useMakeswiftHostApiClient)();
85
85
  const getSnapshot = () => pageId == null ? null : client.readPage(pageId);
86
86
  const page = (0, import_shim.useSyncExternalStore)(client.subscribe, getSnapshot, getSnapshot);
87
87
  return page;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/hooks/usePageSnippets.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { useIsInBuilder } from '../../react'\nimport { MakeswiftPageDocument } from '../../next'\nimport deepEqual from '../../utils/deepEqual'\nimport { useMakeswiftHostApiClient } from '../../next/context/makeswift-host-api-client'\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\nimport { Page as PageType } from '../../api'\n\nconst SnippetLocation = {\n Body: 'BODY',\n Head: 'HEAD',\n} as const\n\nexport type SnippetLocation = typeof SnippetLocation[keyof typeof SnippetLocation]\n\nexport type Snippet = {\n builderEnabled: boolean\n cleanup: string | null\n code: string\n id: string\n liveEnabled: boolean\n location: SnippetLocation\n}\n\nconst filterUsedSnippetProperties = ({\n code,\n builderEnabled,\n liveEnabled,\n location,\n cleanup,\n}: Snippet) => ({\n code,\n builderEnabled,\n liveEnabled,\n location,\n cleanup,\n})\n\nexport function usePageSnippets({ page }: { page: MakeswiftPageDocument }) {\n const isInBuilder = useIsInBuilder()\n const [snippets, setSnippets] = useState(page.snippets)\n\n // We're using cached results here for page snippets so that anytime the user\n // changes the snippets or fonts on the builder, the change would be reflected\n // here. See this PR for discussions and things we can do to improve it in the\n // future: https://github.com/makeswift/makeswift/pull/77\n const cachedPage = useCachedPage(isInBuilder ? page.id : null)\n useEffect(() => {\n if (cachedPage == null) return\n\n const oldSnippets = snippets.map(filterUsedSnippetProperties)\n const newSnippets = cachedPage.snippets.map(filterUsedSnippetProperties)\n\n if (deepEqual(newSnippets, oldSnippets)) return\n\n setSnippets(cachedPage.snippets)\n }, [cachedPage])\n\n const filteredSnippets = useMemo(\n () => snippets.filter(snippet => (isInBuilder ? snippet.builderEnabled : snippet.liveEnabled)),\n [snippets, isInBuilder],\n )\n\n const headSnippets = useMemo(\n () => filteredSnippets.filter(snippet => snippet.location === SnippetLocation.Head),\n [filteredSnippets],\n )\n\n const bodySnippets = useMemo(\n () => filteredSnippets.filter(snippet => snippet.location === SnippetLocation.Body),\n [filteredSnippets],\n )\n\n return { headSnippets, bodySnippets }\n}\n\nfunction useCachedPage(pageId: string | null): PageType | null {\n const client = useMakeswiftHostApiClient()\n const getSnapshot = () => (pageId == null ? null : client.readPage(pageId))\n\n const page = useSyncExternalStore(client.subscribe, getSnapshot, getSnapshot)\n\n return page\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6C;AAC7C,IAAAA,gBAA+B;AAE/B,uBAAsB;AACtB,uCAA0C;AAC1C,kBAAqC;AAGrC,MAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,EACN,MAAM;AACR;AAaA,MAAM,8BAA8B,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,OAAgB;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,gBAAgB,EAAE,KAAK,GAAoC;AACzE,QAAM,kBAAc,8BAAe;AACnC,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAS,KAAK,QAAQ;AAMtD,QAAM,aAAa,cAAc,cAAc,KAAK,KAAK,IAAI;AAC7D,8BAAU,MAAM;AACd,QAAI,cAAc;AAAM;AAExB,UAAM,cAAc,SAAS,IAAI,2BAA2B;AAC5D,UAAM,cAAc,WAAW,SAAS,IAAI,2BAA2B;AAEvE,YAAI,iBAAAC,SAAU,aAAa,WAAW;AAAG;AAEzC,gBAAY,WAAW,QAAQ;AAAA,EACjC,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,uBAAmB;AAAA,IACvB,MAAM,SAAS,OAAO,aAAY,cAAc,QAAQ,iBAAiB,QAAQ,WAAY;AAAA,IAC7F,CAAC,UAAU,WAAW;AAAA,EACxB;AAEA,QAAM,mBAAe;AAAA,IACnB,MAAM,iBAAiB,OAAO,aAAW,QAAQ,aAAa,gBAAgB,IAAI;AAAA,IAClF,CAAC,gBAAgB;AAAA,EACnB;AAEA,QAAM,mBAAe;AAAA,IACnB,MAAM,iBAAiB,OAAO,aAAW,QAAQ,aAAa,gBAAgB,IAAI;AAAA,IAClF,CAAC,gBAAgB;AAAA,EACnB;AAEA,SAAO,EAAE,cAAc,aAAa;AACtC;AAEA,SAAS,cAAc,QAAwC;AAC7D,QAAM,aAAS,4DAA0B;AACzC,QAAM,cAAc,MAAO,UAAU,OAAO,OAAO,OAAO,SAAS,MAAM;AAEzE,QAAM,WAAO,kCAAqB,OAAO,WAAW,aAAa,WAAW;AAE5E,SAAO;AACT;","names":["import_react","deepEqual"]}
1
+ {"version":3,"sources":["../../../../src/components/hooks/usePageSnippets.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { useIsInBuilder } from '../../react'\nimport { MakeswiftPageDocument } from '../../next'\nimport deepEqual from '../../utils/deepEqual'\nimport { useMakeswiftHostApiClient } from '../../runtimes/react/host-api-client'\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\nimport { Page as PageType } from '../../api'\n\nconst SnippetLocation = {\n Body: 'BODY',\n Head: 'HEAD',\n} as const\n\nexport type SnippetLocation = (typeof SnippetLocation)[keyof typeof SnippetLocation]\n\nexport type Snippet = {\n builderEnabled: boolean\n cleanup: string | null\n code: string\n id: string\n liveEnabled: boolean\n location: SnippetLocation\n}\n\nconst filterUsedSnippetProperties = ({\n code,\n builderEnabled,\n liveEnabled,\n location,\n cleanup,\n}: Snippet) => ({\n code,\n builderEnabled,\n liveEnabled,\n location,\n cleanup,\n})\n\nexport function usePageSnippets({ page }: { page: MakeswiftPageDocument }) {\n const isInBuilder = useIsInBuilder()\n const [snippets, setSnippets] = useState(page.snippets)\n\n // We're using cached results here for page snippets so that anytime the user\n // changes the snippets or fonts on the builder, the change would be reflected\n // here. See this PR for discussions and things we can do to improve it in the\n // future: https://github.com/makeswift/makeswift/pull/77\n const cachedPage = useCachedPage(isInBuilder ? page.id : null)\n useEffect(() => {\n if (cachedPage == null) return\n\n const oldSnippets = snippets.map(filterUsedSnippetProperties)\n const newSnippets = cachedPage.snippets.map(filterUsedSnippetProperties)\n\n if (deepEqual(newSnippets, oldSnippets)) return\n\n setSnippets(cachedPage.snippets)\n }, [cachedPage])\n\n const filteredSnippets = useMemo(\n () => snippets.filter(snippet => (isInBuilder ? snippet.builderEnabled : snippet.liveEnabled)),\n [snippets, isInBuilder],\n )\n\n const headSnippets = useMemo(\n () => filteredSnippets.filter(snippet => snippet.location === SnippetLocation.Head),\n [filteredSnippets],\n )\n\n const bodySnippets = useMemo(\n () => filteredSnippets.filter(snippet => snippet.location === SnippetLocation.Body),\n [filteredSnippets],\n )\n\n return { headSnippets, bodySnippets }\n}\n\nfunction useCachedPage(pageId: string | null): PageType | null {\n const client = useMakeswiftHostApiClient()\n const getSnapshot = () => (pageId == null ? null : client.readPage(pageId))\n\n const page = useSyncExternalStore(client.subscribe, getSnapshot, getSnapshot)\n\n return page\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6C;AAC7C,IAAAA,gBAA+B;AAE/B,uBAAsB;AACtB,6BAA0C;AAC1C,kBAAqC;AAGrC,MAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,EACN,MAAM;AACR;AAaA,MAAM,8BAA8B,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,OAAgB;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,gBAAgB,EAAE,KAAK,GAAoC;AACzE,QAAM,kBAAc,8BAAe;AACnC,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAS,KAAK,QAAQ;AAMtD,QAAM,aAAa,cAAc,cAAc,KAAK,KAAK,IAAI;AAC7D,8BAAU,MAAM;AACd,QAAI,cAAc;AAAM;AAExB,UAAM,cAAc,SAAS,IAAI,2BAA2B;AAC5D,UAAM,cAAc,WAAW,SAAS,IAAI,2BAA2B;AAEvE,YAAI,iBAAAC,SAAU,aAAa,WAAW;AAAG;AAEzC,gBAAY,WAAW,QAAQ;AAAA,EACjC,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,uBAAmB;AAAA,IACvB,MAAM,SAAS,OAAO,aAAY,cAAc,QAAQ,iBAAiB,QAAQ,WAAY;AAAA,IAC7F,CAAC,UAAU,WAAW;AAAA,EACxB;AAEA,QAAM,mBAAe;AAAA,IACnB,MAAM,iBAAiB,OAAO,aAAW,QAAQ,aAAa,gBAAgB,IAAI;AAAA,IAClF,CAAC,gBAAgB;AAAA,EACnB;AAEA,QAAM,mBAAe;AAAA,IACnB,MAAM,iBAAiB,OAAO,aAAW,QAAQ,aAAa,gBAAgB,IAAI;AAAA,IAClF,CAAC,gBAAgB;AAAA,EACnB;AAEA,SAAO,EAAE,cAAc,aAAa;AACtC;AAEA,SAAS,cAAc,QAAwC;AAC7D,QAAM,aAAS,kDAA0B;AACzC,QAAM,cAAc,MAAO,UAAU,OAAO,OAAO,OAAO,SAAS,MAAM;AAEzE,QAAM,WAAO,kCAAqB,OAAO,WAAW,aAAa,WAAW;AAE5E,SAAO;AACT;","names":["import_react","deepEqual"]}
@@ -25,16 +25,15 @@ module.exports = __toCommonJS(Page_exports);
25
25
  var import_jsx_runtime = require("react/jsx-runtime");
26
26
  var import_BodySnippet = require("./BodySnippet");
27
27
  var import_react = require("../../runtimes/react");
28
- var import_react_page = require("../../state/react-page");
29
28
  var import_useRouterLocaleSync = require("../hooks/useRouterLocaleSync");
30
29
  var import_usePageSnippets = require("../hooks/usePageSnippets");
31
30
  var import_PageHead = require("./PageHead");
32
- function Page({ pageDocument: page, documentKey }) {
31
+ function Page({ page, rootDocument }) {
33
32
  const { bodySnippets } = (0, import_usePageSnippets.usePageSnippets)({ page });
34
33
  (0, import_useRouterLocaleSync.useRouterLocaleSync)();
35
34
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
36
35
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_PageHead.PageHead, { document: page }),
37
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.DocumentReference, { documentReference: (0, import_react_page.createDocumentReference)(documentKey) }),
36
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.DocumentRoot, { rootDocument }),
38
37
  bodySnippets.map((snippet) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_BodySnippet.BodySnippet, { code: snippet.code, cleanup: snippet.cleanup }, snippet.id))
39
38
  ] });
40
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/page/Page.tsx"],"sourcesContent":["'use client'\n\nimport { BodySnippet } from './BodySnippet'\nimport { DocumentReference } from '../../runtimes/react'\nimport { createDocumentReference } from '../../state/react-page'\nimport { MakeswiftPageDocument } from '../../next'\nimport { useRouterLocaleSync } from '../hooks/useRouterLocaleSync'\nimport { usePageSnippets } from '../hooks/usePageSnippets'\nimport { PageHead } from './PageHead'\n\ntype Props = {\n pageDocument: MakeswiftPageDocument\n documentKey: string\n}\n\nexport function Page({ pageDocument: page, documentKey }: Props): JSX.Element {\n const { bodySnippets } = usePageSnippets({ page })\n\n useRouterLocaleSync()\n\n return (\n <>\n <PageHead document={page} />\n\n <DocumentReference documentReference={createDocumentReference(documentKey)} />\n\n {bodySnippets.map(snippet => (\n <BodySnippet key={snippet.id} code={snippet.code} cleanup={snippet.cleanup} />\n ))}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBI;AAnBJ,yBAA4B;AAC5B,mBAAkC;AAClC,wBAAwC;AAExC,iCAAoC;AACpC,6BAAgC;AAChC,sBAAyB;AAOlB,SAAS,KAAK,EAAE,cAAc,MAAM,YAAY,GAAuB;AAC5E,QAAM,EAAE,aAAa,QAAI,wCAAgB,EAAE,KAAK,CAAC;AAEjD,sDAAoB;AAEpB,SACE,4EACE;AAAA,gDAAC,4BAAS,UAAU,MAAM;AAAA,IAE1B,4CAAC,kCAAkB,uBAAmB,2CAAwB,WAAW,GAAG;AAAA,IAE3E,aAAa,IAAI,aAChB,4CAAC,kCAA6B,MAAM,QAAQ,MAAM,SAAS,QAAQ,WAAjD,QAAQ,EAAkD,CAC7E;AAAA,KACH;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/page/Page.tsx"],"sourcesContent":["'use client'\n\nimport { BodySnippet } from './BodySnippet'\nimport { DocumentRoot } from '../../runtimes/react'\nimport { type Document } from '../../state/react-page'\nimport { MakeswiftPageDocument } from '../../next'\nimport { useRouterLocaleSync } from '../hooks/useRouterLocaleSync'\nimport { usePageSnippets } from '../hooks/usePageSnippets'\nimport { PageHead } from './PageHead'\n\ntype Props = {\n page: MakeswiftPageDocument\n rootDocument: Document\n}\n\nexport function Page({ page, rootDocument }: Props): JSX.Element {\n const { bodySnippets } = usePageSnippets({ page })\n\n useRouterLocaleSync()\n\n return (\n <>\n <PageHead document={page} />\n\n <DocumentRoot rootDocument={rootDocument} />\n\n {bodySnippets.map(snippet => (\n <BodySnippet key={snippet.id} code={snippet.code} cleanup={snippet.cleanup} />\n ))}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBI;AAnBJ,yBAA4B;AAC5B,mBAA6B;AAG7B,iCAAoC;AACpC,6BAAgC;AAChC,sBAAyB;AAOlB,SAAS,KAAK,EAAE,MAAM,aAAa,GAAuB;AAC/D,QAAM,EAAE,aAAa,QAAI,wCAAgB,EAAE,KAAK,CAAC;AAEjD,sDAAoB;AAEpB,SACE,4EACE;AAAA,gDAAC,4BAAS,UAAU,MAAM;AAAA,IAE1B,4CAAC,6BAAa,cAA4B;AAAA,IAEzC,aAAa,IAAI,aAChB,4CAAC,kCAA6B,MAAM,QAAQ,MAAM,SAAS,QAAQ,WAAjD,QAAQ,EAAkD,CAC7E;AAAA,KACH;AAEJ;","names":[]}
@@ -26,7 +26,7 @@ var import_jsx_runtime = require("react/jsx-runtime");
26
26
  var import_react = require("react");
27
27
  var import_usePageSnippets = require("../hooks/usePageSnippets");
28
28
  var import_react2 = require("../../react");
29
- var import_makeswift_host_api_client = require("../../next/context/makeswift-host-api-client");
29
+ var import_host_api_client = require("../../runtimes/react/host-api-client");
30
30
  var import_shim = require("use-sync-external-store/shim");
31
31
  var import_head_tags = require("../../next/components/head-tags");
32
32
  var import_HeadSnippet = require("./HeadSnippet");
@@ -97,7 +97,7 @@ function PageHead({ document: page }) {
97
97
  ] });
98
98
  }
99
99
  function useCachedSite(siteId) {
100
- const client = (0, import_makeswift_host_api_client.useMakeswiftHostApiClient)();
100
+ const client = (0, import_host_api_client.useMakeswiftHostApiClient)();
101
101
  const getSnapshot = () => siteId == null ? null : client.readSite(siteId);
102
102
  const site = (0, import_shim.useSyncExternalStore)(client.subscribe, getSnapshot, getSnapshot);
103
103
  return site;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/page/PageHead.tsx"],"sourcesContent":["'use client'\n\nimport { useMemo } from 'react'\nimport { MakeswiftPageDocument } from '../../next'\nimport { usePageSnippets } from '../hooks/usePageSnippets'\nimport { useIsInBuilder } from '../../react'\nimport { useMakeswiftHostApiClient } from '../../next/context/makeswift-host-api-client'\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\nimport { Site } from '../../api'\nimport { PageTitle, PageMeta, PageLink, PageStyle } from '../../next/components/head-tags'\nimport { HeadSnippet } from './HeadSnippet'\n\nconst defaultFavicon = {\n id: 'default-favicon',\n mimetype: 'image/png',\n publicUrl:\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAABcRAAAXEQHKJvM/AAABjElEQVRYhc2XzU3EMBCFB8TddAAXn6EE6GCpgNABZ1/IXnymBOgAOmA7YM8+ABVsXEHQQFaKQryeN3Yk3ilKJtEnv/nLUd/3pFG0riGi88yrnQn+UfJ5FUi0riWiB2H4nQn+KRd0DFP8agXEfkqCYJBoHdtxIQxfm+DfFgEhoith3NYE30o/qgGR2BJB+xY7kdYEL8oNFUi0jiFMJuxVWrJqEMFxsyUNCsE6AeNztvBp7aJ143vXksoRnwhYtmNdSoIQa6RlO9YXEWW7KgoCleOgxgTf1QZBT+RZ2lXFING6UxCCq+ceeUE8fYdknY599v9sJvzGBP+yCEgC7GPmETc0OJ+0awAlkhe2pAbIXAeFZ8xe2g2Nk3c3ub0xwWt6zY9qbmiqGVMbZK21ZC/YmhlbeBMTzZNDQqcvDb1kM1x32iqZSt1HaqukfKvq34BAOTLsrH+ETNmUkKHHA+428RgeclPVWozeSyAI2EdWB34jtqXNTAySOY3i/KgFIlqOa4GkFmBegorzg4joG07he/M7zl6jAAAAAElFTkSuQmCC',\n}\n\ntype Props = {\n document: MakeswiftPageDocument\n}\n\nexport function PageHead({ document: page }: Props): JSX.Element {\n const { headSnippets } = usePageSnippets({ page })\n\n const isInBuilder = useIsInBuilder()\n\n const site = useCachedSite(isInBuilder ? page.site.id : null)\n const baseLocalizedPage = page.localizedPages.find(({ parentId }) => parentId == null)\n\n const favicon = page.meta.favicon ?? defaultFavicon\n const title = baseLocalizedPage?.meta.title ?? page.meta.title\n const description = baseLocalizedPage?.meta.description ?? page.meta.description\n const keywords = baseLocalizedPage?.meta.keywords ?? page.meta.keywords\n const socialImage = baseLocalizedPage?.meta.socialImage ?? page.meta.socialImage\n const canonicalUrl = baseLocalizedPage?.seo.canonicalUrl ?? page.seo.canonicalUrl\n const isIndexingBlocked = baseLocalizedPage?.seo.isIndexingBlocked ?? page.seo.isIndexingBlocked\n\n const fontFamilyParamValue = useMemo(() => {\n if (site == null) {\n return page.fonts\n .map(({ family, variants }) => {\n return `${family.replace(/ /g, '+')}:${variants.join()}`\n })\n .join('|')\n }\n\n return site.googleFonts.edges\n .filter((edge): edge is NonNullable<typeof edge> => edge != null)\n .map(({ activeVariants, node: { family, variants } }) => {\n const activeVariantSpecifiers = variants\n .filter(variant =>\n activeVariants.some(activeVariant => activeVariant.specifier === variant.specifier),\n )\n .map(variant => variant.specifier)\n .join()\n\n return `${family.replace(/ /g, '+')}:${activeVariantSpecifiers}`\n })\n .join('|')\n }, [site, page])\n\n return (\n <>\n <PageStyle precedence=\"high\" href=\"makeswift-base-styles\">\n {`\n html {\n font-family: sans-serif;\n }\n div#__next {\n overflow: hidden;\n }\n `}\n </PageStyle>\n {title && <PageTitle>{title}</PageTitle>}\n {favicon && <PageLink rel=\"icon\" type={favicon.mimetype} href={favicon.publicUrl} />}\n {canonicalUrl && <PageLink rel=\"canonical\" href={canonicalUrl} />}\n {isIndexingBlocked && <PageMeta name=\"robots\" content=\"noindex\" />}\n {description && (\n <>\n <PageMeta name=\"description\" content={description} />\n <PageMeta property=\"og:description\" content={description} />\n <PageMeta name=\"twitter:description\" content={description} />\n </>\n )}\n {keywords && <PageMeta name=\"keywords\" content={keywords} />}\n {socialImage && (\n <>\n <PageMeta property=\"og:image\" content={socialImage.publicUrl} />\n <PageMeta property=\"og:image:type\" content={socialImage.mimetype} />\n <PageMeta name=\"twitter:image\" content={socialImage.publicUrl} />\n <PageMeta name=\"twitter:card\" content=\"summary_large_image\" />\n </>\n )}\n {fontFamilyParamValue !== '' && (\n <PageLink\n precedence=\"medium\"\n rel=\"stylesheet\"\n href={`https://fonts.googleapis.com/css?family=${fontFamilyParamValue}&display=swap`}\n />\n )}\n {headSnippets.map(snippet => (\n <HeadSnippet key={snippet.id} snippet={snippet} />\n ))}\n </>\n )\n}\n\nfunction useCachedSite(siteId: string | null): Site | null {\n const client = useMakeswiftHostApiClient()\n const getSnapshot = () => (siteId == null ? null : client.readSite(siteId))\n\n const site = useSyncExternalStore(client.subscribe, getSnapshot, getSnapshot)\n\n return site\n}\n"],"mappings":"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","names":["import_react"]}
1
+ {"version":3,"sources":["../../../../src/components/page/PageHead.tsx"],"sourcesContent":["'use client'\n\nimport { useMemo } from 'react'\nimport { MakeswiftPageDocument } from '../../next'\nimport { usePageSnippets } from '../hooks/usePageSnippets'\nimport { useIsInBuilder } from '../../react'\nimport { useMakeswiftHostApiClient } from '../../runtimes/react/host-api-client'\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\nimport { Site } from '../../api'\nimport { PageTitle, PageMeta, PageLink, PageStyle } from '../../next/components/head-tags'\nimport { HeadSnippet } from './HeadSnippet'\n\nconst defaultFavicon = {\n id: 'default-favicon',\n mimetype: 'image/png',\n publicUrl:\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAABcRAAAXEQHKJvM/AAABjElEQVRYhc2XzU3EMBCFB8TddAAXn6EE6GCpgNABZ1/IXnymBOgAOmA7YM8+ABVsXEHQQFaKQryeN3Yk3ilKJtEnv/nLUd/3pFG0riGi88yrnQn+UfJ5FUi0riWiB2H4nQn+KRd0DFP8agXEfkqCYJBoHdtxIQxfm+DfFgEhoith3NYE30o/qgGR2BJB+xY7kdYEL8oNFUi0jiFMJuxVWrJqEMFxsyUNCsE6AeNztvBp7aJ143vXksoRnwhYtmNdSoIQa6RlO9YXEWW7KgoCleOgxgTf1QZBT+RZ2lXFING6UxCCq+ceeUE8fYdknY599v9sJvzGBP+yCEgC7GPmETc0OJ+0awAlkhe2pAbIXAeFZ8xe2g2Nk3c3ub0xwWt6zY9qbmiqGVMbZK21ZC/YmhlbeBMTzZNDQqcvDb1kM1x32iqZSt1HaqukfKvq34BAOTLsrH+ETNmUkKHHA+428RgeclPVWozeSyAI2EdWB34jtqXNTAySOY3i/KgFIlqOa4GkFmBegorzg4joG07he/M7zl6jAAAAAElFTkSuQmCC',\n}\n\ntype Props = {\n document: MakeswiftPageDocument\n}\n\nexport function PageHead({ document: page }: Props): JSX.Element {\n const { headSnippets } = usePageSnippets({ page })\n\n const isInBuilder = useIsInBuilder()\n\n const site = useCachedSite(isInBuilder ? page.site.id : null)\n const baseLocalizedPage = page.localizedPages.find(({ parentId }) => parentId == null)\n\n const favicon = page.meta.favicon ?? defaultFavicon\n const title = baseLocalizedPage?.meta.title ?? page.meta.title\n const description = baseLocalizedPage?.meta.description ?? page.meta.description\n const keywords = baseLocalizedPage?.meta.keywords ?? page.meta.keywords\n const socialImage = baseLocalizedPage?.meta.socialImage ?? page.meta.socialImage\n const canonicalUrl = baseLocalizedPage?.seo.canonicalUrl ?? page.seo.canonicalUrl\n const isIndexingBlocked = baseLocalizedPage?.seo.isIndexingBlocked ?? page.seo.isIndexingBlocked\n\n const fontFamilyParamValue = useMemo(() => {\n if (site == null) {\n return page.fonts\n .map(({ family, variants }) => {\n return `${family.replace(/ /g, '+')}:${variants.join()}`\n })\n .join('|')\n }\n\n return site.googleFonts.edges\n .filter((edge): edge is NonNullable<typeof edge> => edge != null)\n .map(({ activeVariants, node: { family, variants } }) => {\n const activeVariantSpecifiers = variants\n .filter(variant =>\n activeVariants.some(activeVariant => activeVariant.specifier === variant.specifier),\n )\n .map(variant => variant.specifier)\n .join()\n\n return `${family.replace(/ /g, '+')}:${activeVariantSpecifiers}`\n })\n .join('|')\n }, [site, page])\n\n return (\n <>\n <PageStyle precedence=\"high\" href=\"makeswift-base-styles\">\n {`\n html {\n font-family: sans-serif;\n }\n div#__next {\n overflow: hidden;\n }\n `}\n </PageStyle>\n {title && <PageTitle>{title}</PageTitle>}\n {favicon && <PageLink rel=\"icon\" type={favicon.mimetype} href={favicon.publicUrl} />}\n {canonicalUrl && <PageLink rel=\"canonical\" href={canonicalUrl} />}\n {isIndexingBlocked && <PageMeta name=\"robots\" content=\"noindex\" />}\n {description && (\n <>\n <PageMeta name=\"description\" content={description} />\n <PageMeta property=\"og:description\" content={description} />\n <PageMeta name=\"twitter:description\" content={description} />\n </>\n )}\n {keywords && <PageMeta name=\"keywords\" content={keywords} />}\n {socialImage && (\n <>\n <PageMeta property=\"og:image\" content={socialImage.publicUrl} />\n <PageMeta property=\"og:image:type\" content={socialImage.mimetype} />\n <PageMeta name=\"twitter:image\" content={socialImage.publicUrl} />\n <PageMeta name=\"twitter:card\" content=\"summary_large_image\" />\n </>\n )}\n {fontFamilyParamValue !== '' && (\n <PageLink\n precedence=\"medium\"\n rel=\"stylesheet\"\n href={`https://fonts.googleapis.com/css?family=${fontFamilyParamValue}&display=swap`}\n />\n )}\n {headSnippets.map(snippet => (\n <HeadSnippet key={snippet.id} snippet={snippet} />\n ))}\n </>\n )\n}\n\nfunction useCachedSite(siteId: string | null): Site | null {\n const client = useMakeswiftHostApiClient()\n const getSnapshot = () => (siteId == null ? null : client.readSite(siteId))\n\n const site = useSyncExternalStore(client.subscribe, getSnapshot, getSnapshot)\n\n return site\n}\n"],"mappings":"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","names":["import_react"]}
@@ -39,6 +39,10 @@ var import_use_style = require("../../../runtimes/react/use-style");
39
39
  var import_hooks = require("../../hooks");
40
40
  var import_Backgrounds = __toESM(require("./components/Backgrounds"));
41
41
  var BackgroundsContainer_default = (0, import_react.forwardRef)(function BackgroundsContainer({ backgrounds, children, className, ...restOfProps }, ref) {
42
+ const widthAndMarginStyle = (0, import_use_style.useStyle)({
43
+ width: "100%",
44
+ margin: "0 auto"
45
+ });
42
46
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
43
47
  "div",
44
48
  {
@@ -47,8 +51,6 @@ var BackgroundsContainer_default = (0, import_react.forwardRef)(function Backgro
47
51
  className: (0, import_css.cx)(
48
52
  (0, import_use_style.useStyle)({
49
53
  position: "relative",
50
- width: "100%",
51
- margin: "0 auto",
52
54
  "> *": {
53
55
  borderRadius: "inherit",
54
56
  height: "inherit"
@@ -57,7 +59,7 @@ var BackgroundsContainer_default = (0, import_react.forwardRef)(function Backgro
57
59
  position: "relative"
58
60
  }
59
61
  }),
60
- className
62
+ className ? className : widthAndMarginStyle
61
63
  ),
62
64
  children: [
63
65
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Backgrounds.default, { backgrounds: (0, import_hooks.useBackgrounds)(backgrounds) }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/shared/BackgroundsContainer/index.tsx"],"sourcesContent":["'use client'\n\nimport { cx } from '@emotion/css'\nimport {\n Children,\n ComponentPropsWithoutRef,\n ElementType,\n forwardRef,\n ReactElement,\n Ref,\n} from 'react'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { useBackgrounds } from '../../hooks'\nimport Backgrounds from './components/Backgrounds'\nimport { ResponsiveBackgroundsData } from '@makeswift/prop-controllers'\n\ntype BaseProps = {\n backgrounds: ResponsiveBackgroundsData | undefined\n children: ReactElement<ElementType>\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<'div'>, keyof BaseProps>\n\nexport default forwardRef<HTMLDivElement | null, Props>(function BackgroundsContainer(\n { backgrounds, children, className, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <div\n {...restOfProps}\n ref={ref}\n className={cx(\n useStyle({\n position: 'relative',\n width: '100%',\n margin: '0 auto',\n '> *': {\n borderRadius: 'inherit',\n height: 'inherit',\n },\n '> :last-child': {\n position: 'relative',\n },\n }),\n className,\n )}\n >\n <Backgrounds backgrounds={useBackgrounds(backgrounds)} />\n {Children.only(children)}\n </div>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4BI;AA1BJ,iBAAmB;AACnB,mBAOO;AACP,uBAAyB;AACzB,mBAA+B;AAC/B,yBAAwB;AAUxB,IAAO,mCAAQ,yBAAyC,SAAS,qBAC/D,EAAE,aAAa,UAAU,WAAW,GAAG,YAAY,GACnD,KACA;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAW;AAAA,YACT,2BAAS;AAAA,UACP,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,OAAO;AAAA,YACL,cAAc;AAAA,YACd,QAAQ;AAAA,UACV;AAAA,UACA,iBAAiB;AAAA,YACf,UAAU;AAAA,UACZ;AAAA,QACF,CAAC;AAAA,QACD;AAAA,MACF;AAAA,MAEA;AAAA,oDAAC,mBAAAA,SAAA,EAAY,iBAAa,6BAAe,WAAW,GAAG;AAAA,QACtD,sBAAS,KAAK,QAAQ;AAAA;AAAA;AAAA,EACzB;AAEJ,CAAC;","names":["Backgrounds"]}
1
+ {"version":3,"sources":["../../../../../src/components/shared/BackgroundsContainer/index.tsx"],"sourcesContent":["'use client'\n\nimport { cx } from '@emotion/css'\nimport {\n Children,\n ComponentPropsWithoutRef,\n ElementType,\n forwardRef,\n ReactElement,\n Ref,\n} from 'react'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { useBackgrounds } from '../../hooks'\nimport Backgrounds from './components/Backgrounds'\nimport { ResponsiveBackgroundsData } from '@makeswift/prop-controllers'\n\ntype BaseProps = {\n backgrounds: ResponsiveBackgroundsData | undefined\n children: ReactElement<ElementType>\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<'div'>, keyof BaseProps>\n\nexport default forwardRef<HTMLDivElement | null, Props>(function BackgroundsContainer(\n { backgrounds, children, className, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const widthAndMarginStyle = useStyle({\n width: '100%',\n margin: '0 auto',\n })\n\n return (\n <div\n {...restOfProps}\n ref={ref}\n className={cx(\n useStyle({\n position: 'relative',\n '> *': {\n borderRadius: 'inherit',\n height: 'inherit',\n },\n '> :last-child': {\n position: 'relative',\n },\n }),\n className ? className : widthAndMarginStyle,\n )}\n >\n <Backgrounds backgrounds={useBackgrounds(backgrounds)} />\n {Children.only(children)}\n </div>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiCI;AA/BJ,iBAAmB;AACnB,mBAOO;AACP,uBAAyB;AACzB,mBAA+B;AAC/B,yBAAwB;AAUxB,IAAO,mCAAQ,yBAAyC,SAAS,qBAC/D,EAAE,aAAa,UAAU,WAAW,GAAG,YAAY,GACnD,KACA;AACA,QAAM,0BAAsB,2BAAS;AAAA,IACnC,OAAO;AAAA,IACP,QAAQ;AAAA,EACV,CAAC;AAED,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAW;AAAA,YACT,2BAAS;AAAA,UACP,UAAU;AAAA,UACV,OAAO;AAAA,YACL,cAAc;AAAA,YACd,QAAQ;AAAA,UACV;AAAA,UACA,iBAAiB;AAAA,YACf,UAAU;AAAA,UACZ;AAAA,QACF,CAAC;AAAA,QACD,YAAY,YAAY;AAAA,MAC1B;AAAA,MAEA;AAAA,oDAAC,mBAAAA,SAAA,EAAY,iBAAa,6BAAe,WAAW,GAAG;AAAA,QACtD,sBAAS,KAAK,QAAQ;AAAA;AAAA;AAAA,EACzB;AAEJ,CAAC;","names":["Backgrounds"]}
@@ -26,6 +26,11 @@ __export(controls_exports, {
26
26
  Combobox: () => import_controls.Combobox,
27
27
  ComboboxDefinition: () => import_controls.ComboboxDefinition,
28
28
  ControlDefinition: () => import_controls.ControlDefinition,
29
+ Font: () => import_controls.Font,
30
+ FontDefinition: () => import_controls.FontDefinition,
31
+ Group: () => import_controls.Group,
32
+ GroupControl: () => import_controls.GroupControl,
33
+ GroupDefinition: () => import_controls.GroupDefinition,
29
34
  IconRadioGroupDefinition: () => import_controls.IconRadioGroupDefinition,
30
35
  Image: () => import_controls.Image,
31
36
  ImageDefinition: () => import_controls.ImageDefinition,
@@ -80,6 +85,11 @@ var import_style_v2 = require("./style-v2/style-v2");
80
85
  Combobox,
81
86
  ComboboxDefinition,
82
87
  ControlDefinition,
88
+ Font,
89
+ FontDefinition,
90
+ Group,
91
+ GroupControl,
92
+ GroupDefinition,
83
93
  IconRadioGroupDefinition,
84
94
  Image,
85
95
  ImageDefinition,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/index.ts"],"sourcesContent":["export * from './control'\n\nexport {\n ControlDefinition,\n Checkbox,\n CheckboxDefinition,\n Color,\n ColorDefinition,\n Combobox,\n ComboboxDefinition,\n IconRadioGroupDefinition,\n type IconRadioGroupIcon,\n unstable_IconRadioGroup,\n Image,\n ImageDefinition,\n List,\n ListDefinition,\n ListControl,\n Shape,\n ShapeDefinition,\n ShapeControl,\n Number,\n NumberDefinition,\n TextInput,\n TextInputDefinition,\n TextArea,\n TextAreaDefinition,\n Select,\n SelectDefinition,\n Style,\n StyleDefinition,\n type StyleProperty,\n StyleControl,\n unstable_Typography,\n unstable_TypographyDefinition,\n} from '@makeswift/controls'\n\nexport { Link, LinkDefinition } from './link'\nexport { RichTextV1Definition, RichTextV1Control } from './rich-text'\nexport { RichText, RichTextV2Definition, RichTextV2Control } from './rich-text-v2'\nexport { Slot, SlotDefinition, SlotControl } from './slot'\nexport { unstable_StyleV2, StyleV2Definition, StyleV2Control } from './style-v2/style-v2'\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAc,sBAAd;AAEA,sBAiCO;AAEP,kBAAqC;AACrC,uBAAwD;AACxD,0BAAkE;AAClE,kBAAkD;AAClD,sBAAoE;","names":[]}
1
+ {"version":3,"sources":["../../../src/controls/index.ts"],"sourcesContent":["export * from './control'\n\nexport {\n ControlDefinition,\n Checkbox,\n CheckboxDefinition,\n Color,\n ColorDefinition,\n Combobox,\n ComboboxDefinition,\n Font,\n FontDefinition,\n Group,\n GroupDefinition,\n GroupControl,\n IconRadioGroupDefinition,\n type IconRadioGroupIcon,\n unstable_IconRadioGroup,\n Image,\n ImageDefinition,\n List,\n ListDefinition,\n ListControl,\n Number,\n NumberDefinition,\n Select,\n SelectDefinition,\n Shape,\n ShapeDefinition,\n ShapeControl,\n Style,\n StyleDefinition,\n type StyleProperty,\n StyleControl,\n TextInput,\n TextInputDefinition,\n TextArea,\n TextAreaDefinition,\n unstable_Typography,\n unstable_TypographyDefinition,\n} from '@makeswift/controls'\n\nexport { Link, LinkDefinition } from './link'\nexport { RichTextV1Definition, RichTextV1Control } from './rich-text'\nexport { RichText, RichTextV2Definition, RichTextV2Control } from './rich-text-v2'\nexport { Slot, SlotDefinition, SlotControl } from './slot'\nexport { unstable_StyleV2, StyleV2Definition, StyleV2Control } from './style-v2/style-v2'\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAc,sBAAd;AAEA,sBAsCO;AAEP,kBAAqC;AACrC,uBAAwD;AACxD,0BAAkE;AAClE,kBAAkD;AAClD,sBAAoE;","names":[]}
@@ -20,7 +20,8 @@ var core_exports = {};
20
20
  __export(core_exports, {
21
21
  ControlDefinition: () => import_controls.ControlDefinition,
22
22
  ControlInstance: () => import_controls.ControlInstance,
23
- DefaultControlInstance: () => import_controls.DefaultControlInstance
23
+ DefaultControlInstance: () => import_controls.DefaultControlInstance,
24
+ ShapeV2Control: () => import_controls.ShapeV2Control
24
25
  });
25
26
  module.exports = __toCommonJS(core_exports);
26
27
  var import_controls = require("@makeswift/controls");
@@ -28,6 +29,7 @@ var import_controls = require("@makeswift/controls");
28
29
  0 && (module.exports = {
29
30
  ControlDefinition,
30
31
  ControlInstance,
31
- DefaultControlInstance
32
+ DefaultControlInstance,
33
+ ShapeV2Control
32
34
  });
33
35
  //# sourceMappingURL=index.js.map