@makeswift/runtime 0.23.13 → 0.23.14

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 (502) hide show
  1. package/dist/cjs/api/graphql/fragments.js +40 -0
  2. package/dist/cjs/api/graphql/fragments.js.map +1 -0
  3. package/dist/cjs/api/graphql/types.js +40 -0
  4. package/dist/cjs/api/graphql/types.js.map +1 -0
  5. package/dist/cjs/api/resource-types.js +24 -0
  6. package/dist/cjs/api/resource-types.js.map +1 -0
  7. package/dist/cjs/builder/serialization/controls/combobox.js +45 -0
  8. package/dist/cjs/builder/serialization/controls/combobox.js.map +1 -0
  9. package/dist/cjs/builder/serialization/controls/list.js +50 -0
  10. package/dist/cjs/builder/serialization/controls/list.js.map +1 -0
  11. package/dist/cjs/builder/serialization/controls/rich-text-v2.js +106 -0
  12. package/dist/cjs/builder/serialization/controls/rich-text-v2.js.map +1 -0
  13. package/dist/cjs/builder/serialization/controls/shape.js +54 -0
  14. package/dist/cjs/builder/serialization/controls/shape.js.map +1 -0
  15. package/dist/cjs/builder/serialization/controls/style-v2.js +62 -0
  16. package/dist/cjs/builder/serialization/controls/style-v2.js.map +1 -0
  17. package/dist/cjs/builder/unstructured-introspection/__fixtures__/element-containing-resources.js +899 -0
  18. package/dist/cjs/builder/unstructured-introspection/__fixtures__/element-containing-resources.js.map +1 -0
  19. package/dist/cjs/builder/unstructured-introspection/__fixtures__/index.js +23 -0
  20. package/dist/cjs/builder/unstructured-introspection/__fixtures__/index.js.map +1 -0
  21. package/dist/cjs/builder/unstructured-introspection/index.js +29 -0
  22. package/dist/cjs/builder/unstructured-introspection/index.js.map +1 -0
  23. package/dist/cjs/builder/unstructured-introspection/unstructured-introspection.js +85 -0
  24. package/dist/cjs/builder/unstructured-introspection/unstructured-introspection.js.map +1 -0
  25. package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +1 -0
  26. package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
  27. package/dist/cjs/controls/checkbox.js +41 -0
  28. package/dist/cjs/controls/checkbox.js.map +1 -0
  29. package/dist/cjs/controls/color.js +55 -0
  30. package/dist/cjs/controls/color.js.map +1 -0
  31. package/dist/cjs/controls/combobox.js +34 -0
  32. package/dist/cjs/controls/combobox.js.map +1 -0
  33. package/dist/cjs/controls/control-data-type-key.js +29 -0
  34. package/dist/cjs/controls/control-data-type-key.js.map +1 -0
  35. package/dist/cjs/controls/icon-radio-group.js +45 -0
  36. package/dist/cjs/controls/icon-radio-group.js.map +1 -0
  37. package/dist/cjs/controls/image.js +34 -0
  38. package/dist/cjs/controls/image.js.map +1 -0
  39. package/dist/cjs/controls/list.js +156 -0
  40. package/dist/cjs/controls/list.js.map +1 -0
  41. package/dist/cjs/controls/number.js +41 -0
  42. package/dist/cjs/controls/number.js.map +1 -0
  43. package/dist/cjs/controls/rich-text/copy.js +121 -0
  44. package/dist/cjs/controls/rich-text/copy.js.map +1 -0
  45. package/dist/cjs/controls/rich-text/dto-types.js +43 -0
  46. package/dist/cjs/controls/rich-text/dto-types.js.map +1 -0
  47. package/dist/cjs/controls/rich-text/dto.js +228 -0
  48. package/dist/cjs/controls/rich-text/dto.js.map +1 -0
  49. package/dist/cjs/controls/rich-text/fixtures/blockquote.js +77 -0
  50. package/dist/cjs/controls/rich-text/fixtures/blockquote.js.map +1 -0
  51. package/dist/cjs/controls/rich-text/fixtures/empty-blocks.js +176 -0
  52. package/dist/cjs/controls/rich-text/fixtures/empty-blocks.js.map +1 -0
  53. package/dist/cjs/controls/rich-text/fixtures/index.js +27 -0
  54. package/dist/cjs/controls/rich-text/fixtures/index.js.map +1 -0
  55. package/dist/cjs/controls/rich-text/fixtures/list.js +137 -0
  56. package/dist/cjs/controls/rich-text/fixtures/list.js.map +1 -0
  57. package/dist/cjs/controls/rich-text/fixtures/typography.js +926 -0
  58. package/dist/cjs/controls/rich-text/fixtures/typography.js.map +1 -0
  59. package/dist/cjs/controls/rich-text/fixtures/v2-data-types.js +114 -0
  60. package/dist/cjs/controls/rich-text/fixtures/v2-data-types.js.map +1 -0
  61. package/dist/cjs/controls/rich-text/introspection.js +104 -0
  62. package/dist/cjs/controls/rich-text/introspection.js.map +1 -0
  63. package/dist/cjs/controls/rich-text-v2/copy.js +115 -0
  64. package/dist/cjs/controls/rich-text-v2/copy.js.map +1 -0
  65. package/dist/cjs/controls/rich-text-v2/dto.js +44 -0
  66. package/dist/cjs/controls/rich-text-v2/dto.js.map +1 -0
  67. package/dist/cjs/controls/rich-text-v2/introspection.js +69 -0
  68. package/dist/cjs/controls/rich-text-v2/introspection.js.map +1 -0
  69. package/dist/cjs/controls/select.js +34 -0
  70. package/dist/cjs/controls/select.js.map +1 -0
  71. package/dist/cjs/controls/shape.js +149 -0
  72. package/dist/cjs/controls/shape.js.map +1 -0
  73. package/dist/cjs/controls/style-v2.js +74 -0
  74. package/dist/cjs/controls/style-v2.js.map +1 -0
  75. package/dist/cjs/controls/style.js +125 -0
  76. package/dist/cjs/controls/style.js.map +1 -0
  77. package/dist/cjs/controls/text-area.js +41 -0
  78. package/dist/cjs/controls/text-area.js.map +1 -0
  79. package/dist/cjs/controls/text-input.js +41 -0
  80. package/dist/cjs/controls/text-input.js.map +1 -0
  81. package/dist/cjs/controls/types.js +17 -0
  82. package/dist/cjs/controls/types.js.map +1 -0
  83. package/dist/cjs/controls/typography.js +47 -0
  84. package/dist/cjs/controls/typography.js.map +1 -0
  85. package/dist/cjs/next/api-handler/handlers/manifest.js +1 -1
  86. package/dist/cjs/next/api-handler/handlers/redirect-preview.js +4 -3
  87. package/dist/cjs/next/api-handler/handlers/redirect-preview.js.map +1 -1
  88. package/dist/cjs/next/context/makeswift-host-api-client.js +46 -0
  89. package/dist/cjs/next/context/makeswift-host-api-client.js.map +1 -0
  90. package/dist/cjs/next/context/react-runtime.js +44 -0
  91. package/dist/cjs/next/context/react-runtime.js.map +1 -0
  92. package/dist/cjs/next/hooks/use-sync-cache-data.js +41 -0
  93. package/dist/cjs/next/hooks/use-sync-cache-data.js.map +1 -0
  94. package/dist/cjs/prop-controllers/base.js +34 -0
  95. package/dist/cjs/prop-controllers/base.js.map +1 -0
  96. package/dist/cjs/prop-controllers/copy/backgrounds.js +86 -0
  97. package/dist/cjs/prop-controllers/copy/backgrounds.js.map +1 -0
  98. package/dist/cjs/prop-controllers/copy/element-id.js +36 -0
  99. package/dist/cjs/prop-controllers/copy/element-id.js.map +1 -0
  100. package/dist/cjs/prop-controllers/copy/grid.js +36 -0
  101. package/dist/cjs/prop-controllers/copy/grid.js.map +1 -0
  102. package/dist/cjs/prop-controllers/copy/image.js +35 -0
  103. package/dist/cjs/prop-controllers/copy/image.js.map +1 -0
  104. package/dist/cjs/prop-controllers/copy/images.js +49 -0
  105. package/dist/cjs/prop-controllers/copy/images.js.map +1 -0
  106. package/dist/cjs/prop-controllers/copy/navigation-links.js +58 -0
  107. package/dist/cjs/prop-controllers/copy/navigation-links.js.map +1 -0
  108. package/dist/cjs/prop-controllers/copy/rich-text.js +121 -0
  109. package/dist/cjs/prop-controllers/copy/rich-text.js.map +1 -0
  110. package/dist/cjs/prop-controllers/copy/table-form-fields.js +39 -0
  111. package/dist/cjs/prop-controllers/copy/table-form-fields.js.map +1 -0
  112. package/dist/cjs/prop-controllers/copy/table.js +33 -0
  113. package/dist/cjs/prop-controllers/copy/table.js.map +1 -0
  114. package/dist/cjs/runtimes/react/components/DocumentReference.js +42 -0
  115. package/dist/cjs/runtimes/react/components/DocumentReference.js.map +1 -0
  116. package/dist/cjs/runtimes/react/controls/checkbox.js +34 -0
  117. package/dist/cjs/runtimes/react/controls/checkbox.js.map +1 -0
  118. package/dist/cjs/runtimes/react/controls/color.js +58 -0
  119. package/dist/cjs/runtimes/react/controls/color.js.map +1 -0
  120. package/dist/cjs/runtimes/react/controls/combobox.js +31 -0
  121. package/dist/cjs/runtimes/react/controls/combobox.js.map +1 -0
  122. package/dist/cjs/runtimes/react/controls/icon-radio-group.js +31 -0
  123. package/dist/cjs/runtimes/react/controls/icon-radio-group.js.map +1 -0
  124. package/dist/cjs/runtimes/react/controls/image.js +53 -0
  125. package/dist/cjs/runtimes/react/controls/image.js.map +1 -0
  126. package/dist/cjs/runtimes/react/controls/link.js +110 -0
  127. package/dist/cjs/runtimes/react/controls/link.js.map +1 -0
  128. package/dist/cjs/runtimes/react/controls/list.js +58 -0
  129. package/dist/cjs/runtimes/react/controls/list.js.map +1 -0
  130. package/dist/cjs/runtimes/react/controls/number.js +34 -0
  131. package/dist/cjs/runtimes/react/controls/number.js.map +1 -0
  132. package/dist/cjs/runtimes/react/controls/select.js +31 -0
  133. package/dist/cjs/runtimes/react/controls/select.js.map +1 -0
  134. package/dist/cjs/runtimes/react/controls/shape.js +44 -0
  135. package/dist/cjs/runtimes/react/controls/shape.js.map +1 -0
  136. package/dist/cjs/runtimes/react/controls/style-v2.js +92 -0
  137. package/dist/cjs/runtimes/react/controls/style-v2.js.map +1 -0
  138. package/dist/cjs/runtimes/react/controls/text-area.js +34 -0
  139. package/dist/cjs/runtimes/react/controls/text-area.js.map +1 -0
  140. package/dist/cjs/runtimes/react/controls/text-input.js +34 -0
  141. package/dist/cjs/runtimes/react/controls/text-input.js.map +1 -0
  142. package/dist/cjs/runtimes/react/hooks/use-document-key.js +36 -0
  143. package/dist/cjs/runtimes/react/hooks/use-document-key.js.map +1 -0
  144. package/dist/cjs/runtimes/react/hooks/use-head-marker.js +40 -0
  145. package/dist/cjs/runtimes/react/hooks/use-head-marker.js.map +1 -0
  146. package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js +48 -0
  147. package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +1 -0
  148. package/dist/cjs/utils/coalesce.js +33 -0
  149. package/dist/cjs/utils/coalesce.js.map +1 -0
  150. package/dist/cjs/utils/index-signature-hack.js +17 -0
  151. package/dist/cjs/utils/index-signature-hack.js.map +1 -0
  152. package/dist/cjs/utils/shallowMerge.js +44 -0
  153. package/dist/cjs/utils/shallowMerge.js.map +1 -0
  154. package/dist/cjs/utils/tests/breakpoint-test-util.js +35 -0
  155. package/dist/cjs/utils/tests/breakpoint-test-util.js.map +1 -0
  156. package/dist/cjs/utils/tests/element-data-test-test.js +75 -0
  157. package/dist/cjs/utils/tests/element-data-test-test.js.map +1 -0
  158. package/dist/esm/api/graphql/fragments.js +6 -0
  159. package/dist/esm/api/graphql/fragments.js.map +1 -0
  160. package/dist/esm/api/graphql/types.js +16 -0
  161. package/dist/esm/api/graphql/types.js.map +1 -0
  162. package/dist/esm/api/resource-types.js +8 -0
  163. package/dist/esm/api/resource-types.js.map +1 -0
  164. package/dist/esm/builder/serialization/controls/combobox.js +20 -0
  165. package/dist/esm/builder/serialization/controls/combobox.js.map +1 -0
  166. package/dist/esm/builder/serialization/controls/list.js +25 -0
  167. package/dist/esm/builder/serialization/controls/list.js.map +1 -0
  168. package/dist/esm/builder/serialization/controls/rich-text-v2.js +81 -0
  169. package/dist/esm/builder/serialization/controls/rich-text-v2.js.map +1 -0
  170. package/dist/esm/builder/serialization/controls/shape.js +32 -0
  171. package/dist/esm/builder/serialization/controls/shape.js.map +1 -0
  172. package/dist/esm/builder/serialization/controls/style-v2.js +37 -0
  173. package/dist/esm/builder/serialization/controls/style-v2.js.map +1 -0
  174. package/dist/esm/builder/unstructured-introspection/__fixtures__/element-containing-resources.js +875 -0
  175. package/dist/esm/builder/unstructured-introspection/__fixtures__/element-containing-resources.js.map +1 -0
  176. package/dist/esm/builder/unstructured-introspection/__fixtures__/index.js +2 -0
  177. package/dist/esm/builder/unstructured-introspection/__fixtures__/index.js.map +1 -0
  178. package/dist/esm/builder/unstructured-introspection/index.js +5 -0
  179. package/dist/esm/builder/unstructured-introspection/index.js.map +1 -0
  180. package/dist/esm/builder/unstructured-introspection/unstructured-introspection.js +61 -0
  181. package/dist/esm/builder/unstructured-introspection/unstructured-introspection.js.map +1 -0
  182. package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +1 -0
  183. package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
  184. package/dist/esm/controls/checkbox.js +14 -0
  185. package/dist/esm/controls/checkbox.js.map +1 -0
  186. package/dist/esm/controls/color.js +27 -0
  187. package/dist/esm/controls/color.js.map +1 -0
  188. package/dist/esm/controls/combobox.js +9 -0
  189. package/dist/esm/controls/combobox.js.map +1 -0
  190. package/dist/esm/controls/control-data-type-key.js +5 -0
  191. package/dist/esm/controls/control-data-type-key.js.map +1 -0
  192. package/dist/esm/controls/icon-radio-group.js +19 -0
  193. package/dist/esm/controls/icon-radio-group.js.map +1 -0
  194. package/dist/esm/controls/image.js +10 -0
  195. package/dist/esm/controls/image.js.map +1 -0
  196. package/dist/esm/controls/list.js +132 -0
  197. package/dist/esm/controls/list.js.map +1 -0
  198. package/dist/esm/controls/number.js +14 -0
  199. package/dist/esm/controls/number.js.map +1 -0
  200. package/dist/esm/controls/rich-text/copy.js +97 -0
  201. package/dist/esm/controls/rich-text/copy.js.map +1 -0
  202. package/dist/esm/controls/rich-text/dto-types.js +19 -0
  203. package/dist/esm/controls/rich-text/dto-types.js.map +1 -0
  204. package/dist/esm/controls/rich-text/dto.js +203 -0
  205. package/dist/esm/controls/rich-text/dto.js.map +1 -0
  206. package/dist/esm/controls/rich-text/fixtures/blockquote.js +53 -0
  207. package/dist/esm/controls/rich-text/fixtures/blockquote.js.map +1 -0
  208. package/dist/esm/controls/rich-text/fixtures/empty-blocks.js +151 -0
  209. package/dist/esm/controls/rich-text/fixtures/empty-blocks.js.map +1 -0
  210. package/dist/esm/controls/rich-text/fixtures/index.js +4 -0
  211. package/dist/esm/controls/rich-text/fixtures/index.js.map +1 -0
  212. package/dist/esm/controls/rich-text/fixtures/list.js +113 -0
  213. package/dist/esm/controls/rich-text/fixtures/list.js.map +1 -0
  214. package/dist/esm/controls/rich-text/fixtures/typography.js +902 -0
  215. package/dist/esm/controls/rich-text/fixtures/typography.js.map +1 -0
  216. package/dist/esm/controls/rich-text/fixtures/v2-data-types.js +90 -0
  217. package/dist/esm/controls/rich-text/fixtures/v2-data-types.js.map +1 -0
  218. package/dist/esm/controls/rich-text/introspection.js +78 -0
  219. package/dist/esm/controls/rich-text/introspection.js.map +1 -0
  220. package/dist/esm/controls/rich-text-v2/copy.js +91 -0
  221. package/dist/esm/controls/rich-text-v2/copy.js.map +1 -0
  222. package/dist/esm/controls/rich-text-v2/dto.js +19 -0
  223. package/dist/esm/controls/rich-text-v2/dto.js.map +1 -0
  224. package/dist/esm/controls/rich-text-v2/introspection.js +43 -0
  225. package/dist/esm/controls/rich-text-v2/introspection.js.map +1 -0
  226. package/dist/esm/controls/select.js +9 -0
  227. package/dist/esm/controls/select.js.map +1 -0
  228. package/dist/esm/controls/shape.js +125 -0
  229. package/dist/esm/controls/shape.js.map +1 -0
  230. package/dist/esm/controls/style-v2.js +48 -0
  231. package/dist/esm/controls/style-v2.js.map +1 -0
  232. package/dist/esm/controls/style.js +95 -0
  233. package/dist/esm/controls/style.js.map +1 -0
  234. package/dist/esm/controls/text-area.js +14 -0
  235. package/dist/esm/controls/text-area.js.map +1 -0
  236. package/dist/esm/controls/text-input.js +14 -0
  237. package/dist/esm/controls/text-input.js.map +1 -0
  238. package/dist/esm/controls/types.js +1 -0
  239. package/dist/esm/controls/types.js.map +1 -0
  240. package/dist/esm/controls/typography.js +20 -0
  241. package/dist/esm/controls/typography.js.map +1 -0
  242. package/dist/esm/next/api-handler/handlers/manifest.js +1 -1
  243. package/dist/esm/next/api-handler/handlers/redirect-preview.js +4 -3
  244. package/dist/esm/next/api-handler/handlers/redirect-preview.js.map +1 -1
  245. package/dist/esm/next/context/makeswift-host-api-client.js +21 -0
  246. package/dist/esm/next/context/makeswift-host-api-client.js.map +1 -0
  247. package/dist/esm/next/context/react-runtime.js +19 -0
  248. package/dist/esm/next/context/react-runtime.js.map +1 -0
  249. package/dist/esm/next/hooks/use-sync-cache-data.js +17 -0
  250. package/dist/esm/next/hooks/use-sync-cache-data.js.map +1 -0
  251. package/dist/esm/prop-controllers/base.js +10 -0
  252. package/dist/esm/prop-controllers/base.js.map +1 -0
  253. package/dist/esm/prop-controllers/copy/backgrounds.js +62 -0
  254. package/dist/esm/prop-controllers/copy/backgrounds.js.map +1 -0
  255. package/dist/esm/prop-controllers/copy/element-id.js +12 -0
  256. package/dist/esm/prop-controllers/copy/element-id.js.map +1 -0
  257. package/dist/esm/prop-controllers/copy/grid.js +12 -0
  258. package/dist/esm/prop-controllers/copy/grid.js.map +1 -0
  259. package/dist/esm/prop-controllers/copy/image.js +11 -0
  260. package/dist/esm/prop-controllers/copy/image.js.map +1 -0
  261. package/dist/esm/prop-controllers/copy/images.js +25 -0
  262. package/dist/esm/prop-controllers/copy/images.js.map +1 -0
  263. package/dist/esm/prop-controllers/copy/navigation-links.js +34 -0
  264. package/dist/esm/prop-controllers/copy/navigation-links.js.map +1 -0
  265. package/dist/esm/prop-controllers/copy/rich-text.js +97 -0
  266. package/dist/esm/prop-controllers/copy/rich-text.js.map +1 -0
  267. package/dist/esm/prop-controllers/copy/table-form-fields.js +15 -0
  268. package/dist/esm/prop-controllers/copy/table-form-fields.js.map +1 -0
  269. package/dist/esm/prop-controllers/copy/table.js +9 -0
  270. package/dist/esm/prop-controllers/copy/table.js.map +1 -0
  271. package/dist/esm/runtimes/react/components/DocumentReference.js +18 -0
  272. package/dist/esm/runtimes/react/components/DocumentReference.js.map +1 -0
  273. package/dist/esm/runtimes/react/controls/checkbox.js +13 -0
  274. package/dist/esm/runtimes/react/controls/checkbox.js.map +1 -0
  275. package/dist/esm/runtimes/react/controls/color.js +24 -0
  276. package/dist/esm/runtimes/react/controls/color.js.map +1 -0
  277. package/dist/esm/runtimes/react/controls/combobox.js +7 -0
  278. package/dist/esm/runtimes/react/controls/combobox.js.map +1 -0
  279. package/dist/esm/runtimes/react/controls/icon-radio-group.js +7 -0
  280. package/dist/esm/runtimes/react/controls/icon-radio-group.js.map +1 -0
  281. package/dist/esm/runtimes/react/controls/image.js +29 -0
  282. package/dist/esm/runtimes/react/controls/image.js.map +1 -0
  283. package/dist/esm/runtimes/react/controls/link.js +76 -0
  284. package/dist/esm/runtimes/react/controls/link.js.map +1 -0
  285. package/dist/esm/runtimes/react/controls/list.js +34 -0
  286. package/dist/esm/runtimes/react/controls/list.js.map +1 -0
  287. package/dist/esm/runtimes/react/controls/number.js +13 -0
  288. package/dist/esm/runtimes/react/controls/number.js.map +1 -0
  289. package/dist/esm/runtimes/react/controls/select.js +7 -0
  290. package/dist/esm/runtimes/react/controls/select.js.map +1 -0
  291. package/dist/esm/runtimes/react/controls/shape.js +20 -0
  292. package/dist/esm/runtimes/react/controls/shape.js.map +1 -0
  293. package/dist/esm/runtimes/react/controls/style-v2.js +72 -0
  294. package/dist/esm/runtimes/react/controls/style-v2.js.map +1 -0
  295. package/dist/esm/runtimes/react/controls/text-area.js +13 -0
  296. package/dist/esm/runtimes/react/controls/text-area.js.map +1 -0
  297. package/dist/esm/runtimes/react/controls/text-input.js +13 -0
  298. package/dist/esm/runtimes/react/controls/text-input.js.map +1 -0
  299. package/dist/esm/runtimes/react/hooks/use-document-key.js +11 -0
  300. package/dist/esm/runtimes/react/hooks/use-document-key.js.map +1 -0
  301. package/dist/esm/runtimes/react/hooks/use-head-marker.js +16 -0
  302. package/dist/esm/runtimes/react/hooks/use-head-marker.js.map +1 -0
  303. package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js +24 -0
  304. package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +1 -0
  305. package/dist/esm/utils/coalesce.js +13 -0
  306. package/dist/esm/utils/coalesce.js.map +1 -0
  307. package/dist/esm/utils/index-signature-hack.js +1 -0
  308. package/dist/esm/utils/index-signature-hack.js.map +1 -0
  309. package/dist/esm/utils/shallowMerge.js +14 -0
  310. package/dist/esm/utils/shallowMerge.js.map +1 -0
  311. package/dist/esm/utils/tests/breakpoint-test-util.js +9 -0
  312. package/dist/esm/utils/tests/breakpoint-test-util.js.map +1 -0
  313. package/dist/esm/utils/tests/element-data-test-test.js +50 -0
  314. package/dist/esm/utils/tests/element-data-test-test.js.map +1 -0
  315. package/dist/types/api/graphql/fragments.d.ts +4 -0
  316. package/dist/types/api/graphql/fragments.d.ts.map +1 -0
  317. package/dist/types/api/graphql/types.d.ts +8 -0
  318. package/dist/types/api/graphql/types.d.ts.map +1 -0
  319. package/dist/types/api/resource-types.d.ts +20 -0
  320. package/dist/types/api/resource-types.d.ts.map +1 -0
  321. package/dist/types/builder/serialization/controls/combobox.d.ts +5 -0
  322. package/dist/types/builder/serialization/controls/combobox.d.ts.map +1 -0
  323. package/dist/types/builder/serialization/controls/list.d.ts +5 -0
  324. package/dist/types/builder/serialization/controls/list.d.ts.map +1 -0
  325. package/dist/types/builder/serialization/controls/rich-text-v2.d.ts +5 -0
  326. package/dist/types/builder/serialization/controls/rich-text-v2.d.ts.map +1 -0
  327. package/dist/types/builder/serialization/controls/shape.d.ts +5 -0
  328. package/dist/types/builder/serialization/controls/shape.d.ts.map +1 -0
  329. package/dist/types/builder/serialization/controls/style-v2.d.ts +5 -0
  330. package/dist/types/builder/serialization/controls/style-v2.d.ts.map +1 -0
  331. package/dist/types/builder/unstructured-introspection/__fixtures__/element-containing-resources.d.ts +3 -0
  332. package/dist/types/builder/unstructured-introspection/__fixtures__/element-containing-resources.d.ts.map +1 -0
  333. package/dist/types/builder/unstructured-introspection/__fixtures__/index.d.ts +2 -0
  334. package/dist/types/builder/unstructured-introspection/__fixtures__/index.d.ts.map +1 -0
  335. package/dist/types/builder/unstructured-introspection/index.d.ts +2 -0
  336. package/dist/types/builder/unstructured-introspection/index.d.ts.map +1 -0
  337. package/dist/types/builder/unstructured-introspection/unstructured-introspection.d.ts +10 -0
  338. package/dist/types/builder/unstructured-introspection/unstructured-introspection.d.ts.map +1 -0
  339. package/dist/types/builder/unstructured-introspection/unstructured-introspection.test.d.ts +2 -0
  340. package/dist/types/builder/unstructured-introspection/unstructured-introspection.test.d.ts.map +1 -0
  341. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
  342. package/dist/types/controls/checkbox.d.ts +21 -0
  343. package/dist/types/controls/checkbox.d.ts.map +1 -0
  344. package/dist/types/controls/color.d.ts +25 -0
  345. package/dist/types/controls/color.d.ts.map +1 -0
  346. package/dist/types/controls/combobox.d.ts +22 -0
  347. package/dist/types/controls/combobox.d.ts.map +1 -0
  348. package/dist/types/controls/control-data-type-key.d.ts +2 -0
  349. package/dist/types/controls/control-data-type-key.d.ts.map +1 -0
  350. package/dist/types/controls/icon-radio-group.d.ts +32 -0
  351. package/dist/types/controls/icon-radio-group.d.ts.map +1 -0
  352. package/dist/types/controls/image.d.ts +4 -0
  353. package/dist/types/controls/image.d.ts.map +1 -0
  354. package/dist/types/controls/image.test.d.ts +2 -0
  355. package/dist/types/controls/image.test.d.ts.map +1 -0
  356. package/dist/types/controls/link.test.d.ts +2 -0
  357. package/dist/types/controls/link.test.d.ts.map +1 -0
  358. package/dist/types/controls/list.d.ts +78 -0
  359. package/dist/types/controls/list.d.ts.map +1 -0
  360. package/dist/types/controls/number.d.ts +26 -0
  361. package/dist/types/controls/number.d.ts.map +1 -0
  362. package/dist/types/controls/rich-text/__tests__/copy.test.d.ts +2 -0
  363. package/dist/types/controls/rich-text/__tests__/copy.test.d.ts.map +1 -0
  364. package/dist/types/controls/rich-text/__tests__/dto.test.d.ts +2 -0
  365. package/dist/types/controls/rich-text/__tests__/dto.test.d.ts.map +1 -0
  366. package/dist/types/controls/rich-text/__tests__/introspection.test.d.ts +2 -0
  367. package/dist/types/controls/rich-text/__tests__/introspection.test.d.ts.map +1 -0
  368. package/dist/types/controls/rich-text/copy.d.ts +4 -0
  369. package/dist/types/controls/rich-text/copy.d.ts.map +1 -0
  370. package/dist/types/controls/rich-text/dto-types.d.ts +132 -0
  371. package/dist/types/controls/rich-text/dto-types.d.ts.map +1 -0
  372. package/dist/types/controls/rich-text/dto.d.ts +8 -0
  373. package/dist/types/controls/rich-text/dto.d.ts.map +1 -0
  374. package/dist/types/controls/rich-text/fixtures/blockquote.d.ts +3 -0
  375. package/dist/types/controls/rich-text/fixtures/blockquote.d.ts.map +1 -0
  376. package/dist/types/controls/rich-text/fixtures/empty-blocks.d.ts +4 -0
  377. package/dist/types/controls/rich-text/fixtures/empty-blocks.d.ts.map +1 -0
  378. package/dist/types/controls/rich-text/fixtures/index.d.ts +4 -0
  379. package/dist/types/controls/rich-text/fixtures/index.d.ts.map +1 -0
  380. package/dist/types/controls/rich-text/fixtures/list.d.ts +3 -0
  381. package/dist/types/controls/rich-text/fixtures/list.d.ts.map +1 -0
  382. package/dist/types/controls/rich-text/fixtures/typography.d.ts +3 -0
  383. package/dist/types/controls/rich-text/fixtures/typography.d.ts.map +1 -0
  384. package/dist/types/controls/rich-text/fixtures/v2-data-types.d.ts +3 -0
  385. package/dist/types/controls/rich-text/fixtures/v2-data-types.d.ts.map +1 -0
  386. package/dist/types/controls/rich-text/introspection.d.ts +5 -0
  387. package/dist/types/controls/rich-text/introspection.d.ts.map +1 -0
  388. package/dist/types/controls/rich-text-v2/copy.d.ts +4 -0
  389. package/dist/types/controls/rich-text-v2/copy.d.ts.map +1 -0
  390. package/dist/types/controls/rich-text-v2/dto.d.ts +5 -0
  391. package/dist/types/controls/rich-text-v2/dto.d.ts.map +1 -0
  392. package/dist/types/controls/rich-text-v2/introspection.d.ts +5 -0
  393. package/dist/types/controls/rich-text-v2/introspection.d.ts.map +1 -0
  394. package/dist/types/controls/select.d.ts +22 -0
  395. package/dist/types/controls/select.d.ts.map +1 -0
  396. package/dist/types/controls/shape.d.ts +50 -0
  397. package/dist/types/controls/shape.d.ts.map +1 -0
  398. package/dist/types/controls/style-v2.d.ts +64 -0
  399. package/dist/types/controls/style-v2.d.ts.map +1 -0
  400. package/dist/types/controls/style.d.ts +179 -0
  401. package/dist/types/controls/style.d.ts.map +1 -0
  402. package/dist/types/controls/text-area.d.ts +22 -0
  403. package/dist/types/controls/text-area.d.ts.map +1 -0
  404. package/dist/types/controls/text-input.d.ts +22 -0
  405. package/dist/types/controls/text-input.d.ts.map +1 -0
  406. package/dist/types/controls/types.d.ts +14 -0
  407. package/dist/types/controls/types.d.ts.map +1 -0
  408. package/dist/types/controls/typography.d.ts +33 -0
  409. package/dist/types/controls/typography.d.ts.map +1 -0
  410. package/dist/types/next/components/tests/controls/color-control.test.d.ts +3 -0
  411. package/dist/types/next/components/tests/controls/color-control.test.d.ts.map +1 -0
  412. package/dist/types/next/components/tests/controls/style-control.test.d.ts +2 -0
  413. package/dist/types/next/components/tests/controls/style-control.test.d.ts.map +1 -0
  414. package/dist/types/next/context/makeswift-host-api-client.d.ts +8 -0
  415. package/dist/types/next/context/makeswift-host-api-client.d.ts.map +1 -0
  416. package/dist/types/next/context/react-runtime.d.ts +8 -0
  417. package/dist/types/next/context/react-runtime.d.ts.map +1 -0
  418. package/dist/types/next/hooks/use-sync-cache-data.d.ts +3 -0
  419. package/dist/types/next/hooks/use-sync-cache-data.d.ts.map +1 -0
  420. package/dist/types/prop-controllers/base.d.ts +7 -0
  421. package/dist/types/prop-controllers/base.d.ts.map +1 -0
  422. package/dist/types/prop-controllers/copy/backgrounds.d.ts +4 -0
  423. package/dist/types/prop-controllers/copy/backgrounds.d.ts.map +1 -0
  424. package/dist/types/prop-controllers/copy/element-id.d.ts +3 -0
  425. package/dist/types/prop-controllers/copy/element-id.d.ts.map +1 -0
  426. package/dist/types/prop-controllers/copy/grid.d.ts +4 -0
  427. package/dist/types/prop-controllers/copy/grid.d.ts.map +1 -0
  428. package/dist/types/prop-controllers/copy/image.d.ts +4 -0
  429. package/dist/types/prop-controllers/copy/image.d.ts.map +1 -0
  430. package/dist/types/prop-controllers/copy/image.test.d.ts +2 -0
  431. package/dist/types/prop-controllers/copy/image.test.d.ts.map +1 -0
  432. package/dist/types/prop-controllers/copy/images.d.ts +4 -0
  433. package/dist/types/prop-controllers/copy/images.d.ts.map +1 -0
  434. package/dist/types/prop-controllers/copy/images.test.d.ts +2 -0
  435. package/dist/types/prop-controllers/copy/images.test.d.ts.map +1 -0
  436. package/dist/types/prop-controllers/copy/navigation-links.d.ts +4 -0
  437. package/dist/types/prop-controllers/copy/navigation-links.d.ts.map +1 -0
  438. package/dist/types/prop-controllers/copy/navigation-links.test.d.ts +2 -0
  439. package/dist/types/prop-controllers/copy/navigation-links.test.d.ts.map +1 -0
  440. package/dist/types/prop-controllers/copy/rich-text.d.ts +4 -0
  441. package/dist/types/prop-controllers/copy/rich-text.d.ts.map +1 -0
  442. package/dist/types/prop-controllers/copy/rich-text.test.d.ts +2 -0
  443. package/dist/types/prop-controllers/copy/rich-text.test.d.ts.map +1 -0
  444. package/dist/types/prop-controllers/copy/table-form-fields.d.ts +4 -0
  445. package/dist/types/prop-controllers/copy/table-form-fields.d.ts.map +1 -0
  446. package/dist/types/prop-controllers/copy/table-form-fields.test.d.ts +2 -0
  447. package/dist/types/prop-controllers/copy/table-form-fields.test.d.ts.map +1 -0
  448. package/dist/types/prop-controllers/copy/table.d.ts +4 -0
  449. package/dist/types/prop-controllers/copy/table.d.ts.map +1 -0
  450. package/dist/types/prop-controllers/copy/table.test.d.ts +2 -0
  451. package/dist/types/prop-controllers/copy/table.test.d.ts.map +1 -0
  452. package/dist/types/runtimes/react/components/DocumentReference.d.ts +9 -0
  453. package/dist/types/runtimes/react/components/DocumentReference.d.ts.map +1 -0
  454. package/dist/types/runtimes/react/controls/checkbox.d.ts +4 -0
  455. package/dist/types/runtimes/react/controls/checkbox.d.ts.map +1 -0
  456. package/dist/types/runtimes/react/controls/color.d.ts +4 -0
  457. package/dist/types/runtimes/react/controls/color.d.ts.map +1 -0
  458. package/dist/types/runtimes/react/controls/combobox.d.ts +4 -0
  459. package/dist/types/runtimes/react/controls/combobox.d.ts.map +1 -0
  460. package/dist/types/runtimes/react/controls/icon-radio-group.d.ts +4 -0
  461. package/dist/types/runtimes/react/controls/icon-radio-group.d.ts.map +1 -0
  462. package/dist/types/runtimes/react/controls/image.d.ts +4 -0
  463. package/dist/types/runtimes/react/controls/image.d.ts.map +1 -0
  464. package/dist/types/runtimes/react/controls/link.d.ts +4 -0
  465. package/dist/types/runtimes/react/controls/link.d.ts.map +1 -0
  466. package/dist/types/runtimes/react/controls/list.d.ts +12 -0
  467. package/dist/types/runtimes/react/controls/list.d.ts.map +1 -0
  468. package/dist/types/runtimes/react/controls/number.d.ts +4 -0
  469. package/dist/types/runtimes/react/controls/number.d.ts.map +1 -0
  470. package/dist/types/runtimes/react/controls/select.d.ts +4 -0
  471. package/dist/types/runtimes/react/controls/select.d.ts.map +1 -0
  472. package/dist/types/runtimes/react/controls/shape.d.ts +12 -0
  473. package/dist/types/runtimes/react/controls/shape.d.ts.map +1 -0
  474. package/dist/types/runtimes/react/controls/style-v2.d.ts +13 -0
  475. package/dist/types/runtimes/react/controls/style-v2.d.ts.map +1 -0
  476. package/dist/types/runtimes/react/controls/text-area.d.ts +4 -0
  477. package/dist/types/runtimes/react/controls/text-area.d.ts.map +1 -0
  478. package/dist/types/runtimes/react/controls/text-input.d.ts +4 -0
  479. package/dist/types/runtimes/react/controls/text-input.d.ts.map +1 -0
  480. package/dist/types/runtimes/react/hooks/use-document-key.d.ts +4 -0
  481. package/dist/types/runtimes/react/hooks/use-document-key.d.ts.map +1 -0
  482. package/dist/types/runtimes/react/hooks/use-head-marker.d.ts +3 -0
  483. package/dist/types/runtimes/react/hooks/use-head-marker.d.ts.map +1 -0
  484. package/dist/types/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts +16 -0
  485. package/dist/types/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts.map +1 -0
  486. package/dist/types/state/react-builder-preview.test.d.ts +2 -0
  487. package/dist/types/state/react-builder-preview.test.d.ts.map +1 -0
  488. package/dist/types/state/react-page.test.d.ts +2 -0
  489. package/dist/types/state/react-page.test.d.ts.map +1 -0
  490. package/dist/types/utils/coalesce.d.ts +3 -0
  491. package/dist/types/utils/coalesce.d.ts.map +1 -0
  492. package/dist/types/utils/index-signature-hack.d.ts +4 -0
  493. package/dist/types/utils/index-signature-hack.d.ts.map +1 -0
  494. package/dist/types/utils/shallowMerge.d.ts +2 -0
  495. package/dist/types/utils/shallowMerge.d.ts.map +1 -0
  496. package/dist/types/utils/tests/breakpoint-test-util.d.ts +4 -0
  497. package/dist/types/utils/tests/breakpoint-test-util.d.ts.map +1 -0
  498. package/dist/types/utils/tests/element-data-test-test.d.ts +51 -0
  499. package/dist/types/utils/tests/element-data-test-test.d.ts.map +1 -0
  500. package/package.json +3 -3
  501. package/dist/types/next/types.d.ts +0 -123
  502. package/dist/types/next/types.d.ts.map +0 -1
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var shape_exports = {};
20
+ __export(shape_exports, {
21
+ Shape: () => Shape,
22
+ ShapeControl: () => ShapeControl,
23
+ ShapeControlMessageType: () => ShapeControlMessageType,
24
+ ShapeControlType: () => ShapeControlType,
25
+ copyShapeData: () => copyShapeData,
26
+ getShapeElementChildren: () => getShapeElementChildren,
27
+ getShapeFileIds: () => getShapeFileIds,
28
+ getShapePageIds: () => getShapePageIds,
29
+ getShapeSwatchIds: () => getShapeSwatchIds,
30
+ getShapeTranslatableData: () => getShapeTranslatableData,
31
+ getShapeTypographyIds: () => getShapeTypographyIds,
32
+ mergeShapeTranslatedData: () => mergeShapeTranslatedData
33
+ });
34
+ module.exports = __toCommonJS(shape_exports);
35
+ var import_instances = require("../prop-controllers/instances");
36
+ var import_base = require("../prop-controllers/base");
37
+ var import_control = require("./control");
38
+ var import_control2 = require("./control");
39
+ var import_introspection = require("../prop-controllers/introspection");
40
+ const ShapeControlType = "makeswift::controls::shape";
41
+ function Shape(config) {
42
+ return { type: ShapeControlType, config };
43
+ }
44
+ const ShapeControlMessageType = {
45
+ SHAPE_CONTROL_CHILD_CONTROL_MESSAGE: "makeswift::controls::shape::message::child-control-message"
46
+ };
47
+ class ShapeControl extends import_base.PropController {
48
+ controls;
49
+ descriptor;
50
+ send;
51
+ constructor(send, descriptor) {
52
+ super(send);
53
+ this.descriptor = descriptor;
54
+ this.send = send;
55
+ this.controls = /* @__PURE__ */ new Map();
56
+ this.setControls();
57
+ }
58
+ setControls = () => {
59
+ const controls = /* @__PURE__ */ new Map();
60
+ const children = this.descriptor.config.type;
61
+ Object.keys(children).forEach((key) => {
62
+ const control = (0, import_instances.createPropController)(
63
+ children[key],
64
+ (message) => this.send({
65
+ type: ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE,
66
+ payload: { message, key }
67
+ })
68
+ );
69
+ controls.set(key, control);
70
+ });
71
+ this.controls = controls;
72
+ return this.controls;
73
+ };
74
+ recv = (message) => {
75
+ switch (message.type) {
76
+ case ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE: {
77
+ const control = this.controls.get(message.payload.key);
78
+ if (control == null)
79
+ return;
80
+ const recv = control.recv;
81
+ recv(message.payload.message);
82
+ }
83
+ }
84
+ };
85
+ }
86
+ function copyShapeData(definition, value, context) {
87
+ if (value == null)
88
+ return value;
89
+ const newValue = {};
90
+ for (const [key, itemDefinition] of Object.entries(definition.config.type)) {
91
+ const prop = value[key];
92
+ newValue[key] = (0, import_control2.copy)(itemDefinition, prop, context);
93
+ }
94
+ return newValue;
95
+ }
96
+ function introspectShapeData(definition, value, func) {
97
+ if (value == null)
98
+ return [];
99
+ return Object.entries(definition.config.type).flatMap(
100
+ ([key, definition2]) => func(definition2, value[key])
101
+ );
102
+ }
103
+ function getShapeElementChildren(definition, data) {
104
+ return introspectShapeData(definition, data, import_introspection.getElementChildren);
105
+ }
106
+ function getShapeSwatchIds(definition, data) {
107
+ return introspectShapeData(definition, data, import_introspection.getSwatchIds);
108
+ }
109
+ function getShapeTypographyIds(definition, data) {
110
+ return introspectShapeData(definition, data, import_introspection.getTypographyIds);
111
+ }
112
+ function getShapePageIds(definition, data) {
113
+ return introspectShapeData(definition, data, import_introspection.getPageIds);
114
+ }
115
+ function getShapeFileIds(definition, data) {
116
+ return introspectShapeData(definition, data, import_introspection.getFileIds);
117
+ }
118
+ function getShapeTranslatableData(definition, data) {
119
+ return Object.fromEntries(
120
+ Object.entries(definition.config.type).map(([key, definition2]) => [
121
+ key,
122
+ (0, import_control.getTranslatableData)(definition2, data[key])
123
+ ])
124
+ );
125
+ }
126
+ function mergeShapeTranslatedData(definition, data, translatedData, context) {
127
+ return Object.fromEntries(
128
+ Object.entries(definition.config.type).map(([key, definition2]) => [
129
+ key,
130
+ (0, import_control.mergeTranslatedData)(definition2, data[key], translatedData[key], context)
131
+ ])
132
+ );
133
+ }
134
+ // Annotate the CommonJS export names for ESM import in node:
135
+ 0 && (module.exports = {
136
+ Shape,
137
+ ShapeControl,
138
+ ShapeControlMessageType,
139
+ ShapeControlType,
140
+ copyShapeData,
141
+ getShapeElementChildren,
142
+ getShapeFileIds,
143
+ getShapePageIds,
144
+ getShapeSwatchIds,
145
+ getShapeTranslatableData,
146
+ getShapeTypographyIds,
147
+ mergeShapeTranslatedData
148
+ });
149
+ //# sourceMappingURL=shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/controls/shape.ts"],"sourcesContent":["import { Data } from '@makeswift/controls'\nimport {\n AnyPropController,\n createPropController,\n Send,\n PropControllerMessage,\n} from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { CopyContext, MergeTranslatableDataContext } from '../state/react-page'\nimport {\n ControlDefinition,\n ControlDefinitionData,\n getTranslatableData,\n mergeTranslatedData,\n} from './control'\n\nimport { copy as controlCopy } from './control'\nimport {\n getElementChildren,\n getFileIds,\n getPageIds,\n getSwatchIds,\n getTypographyIds,\n} from '../prop-controllers/introspection'\n\nexport const ShapeControlType = 'makeswift::controls::shape'\n\ntype ShapeControlConfig = {\n type: Record<string, ControlDefinition>\n}\n\nexport type ShapeControlDefinition<C extends ShapeControlConfig = ShapeControlConfig> = {\n type: typeof ShapeControlType\n config: C\n}\n\nexport function Shape<C extends ShapeControlConfig>(config: C): ShapeControlDefinition<C> {\n return { type: ShapeControlType, config }\n}\n\nexport type ShapeControlData<T extends ShapeControlDefinition = ShapeControlDefinition> = {\n [K in keyof T['config']['type']]?: ControlDefinitionData<T['config']['type'][K]>\n}\n\nexport const ShapeControlMessageType = {\n SHAPE_CONTROL_CHILD_CONTROL_MESSAGE: 'makeswift::controls::shape::message::child-control-message',\n} as const\n\ntype ShapeControlChildControlMessage = {\n type: typeof ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE\n payload: { message: PropControllerMessage; key: string }\n}\n\nexport type ShapeControlMessage = ShapeControlChildControlMessage\n\nexport class ShapeControl<\n T extends ShapeControlDefinition = ShapeControlDefinition,\n> extends PropController<ShapeControlMessage> {\n controls: Map<string, AnyPropController>\n descriptor: ShapeControlDefinition\n send: Send<ShapeControlMessage>\n\n constructor(send: Send<ShapeControlMessage>, descriptor: T) {\n super(send)\n\n this.descriptor = descriptor\n this.send = send\n\n this.controls = new Map<string, AnyPropController>()\n this.setControls()\n }\n\n setControls = () => {\n const controls = new Map<string, AnyPropController>()\n const children = this.descriptor.config.type\n\n Object.keys(children).forEach(key => {\n const control = createPropController(children[key], message =>\n this.send({\n type: ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE,\n payload: { message, key },\n }),\n )\n\n controls.set(key, control)\n })\n\n this.controls = controls\n\n return this.controls\n }\n\n recv = (message: ShapeControlMessage) => {\n switch (message.type) {\n case ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE: {\n const control = this.controls.get(message.payload.key)\n\n if (control == null) return\n\n // TODO: We're casting the type here as the arg0 type for control.recv is never\n const recv = control.recv as (arg0: PropControllerMessage) => void\n\n recv(message.payload.message)\n }\n }\n }\n}\n\nexport function copyShapeData(\n definition: ShapeControlDefinition,\n value: ShapeControlData | undefined,\n context: CopyContext,\n): ShapeControlData | undefined {\n if (value == null) return value\n\n const newValue: ShapeControlData = {}\n\n for (const [key, itemDefinition] of Object.entries(definition.config.type)) {\n const prop = value[key]\n\n newValue[key] = controlCopy(itemDefinition, prop, context)\n }\n\n return newValue\n}\n\nfunction introspectShapeData<T>(\n definition: ShapeControlDefinition,\n value: ShapeControlData | undefined,\n func: (definition: ControlDefinition, data: Data) => T[],\n): T[] {\n if (value == null) return []\n\n return Object.entries(definition.config.type).flatMap(([key, definition]) =>\n func(definition, value[key]),\n )\n}\n\nexport function getShapeElementChildren(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n) {\n return introspectShapeData(definition, data, getElementChildren)\n}\n\nexport function getShapeSwatchIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getSwatchIds)\n}\n\nexport function getShapeTypographyIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getTypographyIds)\n}\n\nexport function getShapePageIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getPageIds)\n}\n\nexport function getShapeFileIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getFileIds)\n}\n\nexport function getShapeTranslatableData(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n) {\n return Object.fromEntries(\n Object.entries(definition.config.type).map(([key, definition]) => [\n key,\n getTranslatableData(definition, data[key]),\n ]),\n )\n}\n\nexport type ShapeControlTranslationDto = Record<string, ShapeControlData>\n\nexport function mergeShapeTranslatedData(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n translatedData: ShapeControlTranslationDto,\n context: MergeTranslatableDataContext,\n) {\n return Object.fromEntries(\n Object.entries(definition.config.type).map(([key, definition]) => [\n key,\n mergeTranslatedData(definition, data[key], translatedData[key], context),\n ]),\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAKO;AACP,kBAA+B;AAE/B,qBAKO;AAEP,IAAAA,kBAAoC;AACpC,2BAMO;AAEA,MAAM,mBAAmB;AAWzB,SAAS,MAAoC,QAAsC;AACxF,SAAO,EAAE,MAAM,kBAAkB,OAAO;AAC1C;AAMO,MAAM,0BAA0B;AAAA,EACrC,qCAAqC;AACvC;AASO,MAAM,qBAEH,2BAAoC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,MAAiC,YAAe;AAC1D,UAAM,IAAI;AAEV,SAAK,aAAa;AAClB,SAAK,OAAO;AAEZ,SAAK,WAAW,oBAAI,IAA+B;AACnD,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,cAAc,MAAM;AAClB,UAAM,WAAW,oBAAI,IAA+B;AACpD,UAAM,WAAW,KAAK,WAAW,OAAO;AAExC,WAAO,KAAK,QAAQ,EAAE,QAAQ,SAAO;AACnC,YAAM,cAAU;AAAA,QAAqB,SAAS,GAAG;AAAA,QAAG,aAClD,KAAK,KAAK;AAAA,UACR,MAAM,wBAAwB;AAAA,UAC9B,SAAS,EAAE,SAAS,IAAI;AAAA,QAC1B,CAAC;AAAA,MACH;AAEA,eAAS,IAAI,KAAK,OAAO;AAAA,IAC3B,CAAC;AAED,SAAK,WAAW;AAEhB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,OAAO,CAAC,YAAiC;AACvC,YAAQ,QAAQ,MAAM;AAAA,MACpB,KAAK,wBAAwB,qCAAqC;AAChE,cAAM,UAAU,KAAK,SAAS,IAAI,QAAQ,QAAQ,GAAG;AAErD,YAAI,WAAW;AAAM;AAGrB,cAAM,OAAO,QAAQ;AAErB,aAAK,QAAQ,QAAQ,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,cACd,YACA,OACA,SAC8B;AAC9B,MAAI,SAAS;AAAM,WAAO;AAE1B,QAAM,WAA6B,CAAC;AAEpC,aAAW,CAAC,KAAK,cAAc,KAAK,OAAO,QAAQ,WAAW,OAAO,IAAI,GAAG;AAC1E,UAAM,OAAO,MAAM,GAAG;AAEtB,aAAS,GAAG,QAAI,gBAAAC,MAAY,gBAAgB,MAAM,OAAO;AAAA,EAC3D;AAEA,SAAO;AACT;AAEA,SAAS,oBACP,YACA,OACA,MACK;AACL,MAAI,SAAS;AAAM,WAAO,CAAC;AAE3B,SAAO,OAAO,QAAQ,WAAW,OAAO,IAAI,EAAE;AAAA,IAAQ,CAAC,CAAC,KAAKC,WAAU,MACrE,KAAKA,aAAY,MAAM,GAAG,CAAC;AAAA,EAC7B;AACF;AAEO,SAAS,wBACd,YACA,MACA;AACA,SAAO,oBAAoB,YAAY,MAAM,uCAAkB;AACjE;AAEO,SAAS,kBAAkB,YAAoC,MAAwB;AAC5F,SAAO,oBAAoB,YAAY,MAAM,iCAAY;AAC3D;AAEO,SAAS,sBAAsB,YAAoC,MAAwB;AAChG,SAAO,oBAAoB,YAAY,MAAM,qCAAgB;AAC/D;AAEO,SAAS,gBAAgB,YAAoC,MAAwB;AAC1F,SAAO,oBAAoB,YAAY,MAAM,+BAAU;AACzD;AAEO,SAAS,gBAAgB,YAAoC,MAAwB;AAC1F,SAAO,oBAAoB,YAAY,MAAM,+BAAU;AACzD;AAEO,SAAS,yBACd,YACA,MACA;AACA,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,WAAW,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,KAAKA,WAAU,MAAM;AAAA,MAChE;AAAA,UACA,oCAAoBA,aAAY,KAAK,GAAG,CAAC;AAAA,IAC3C,CAAC;AAAA,EACH;AACF;AAIO,SAAS,yBACd,YACA,MACA,gBACA,SACA;AACA,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,WAAW,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,KAAKA,WAAU,MAAM;AAAA,MAChE;AAAA,UACA,oCAAoBA,aAAY,KAAK,GAAG,GAAG,eAAe,GAAG,GAAG,OAAO;AAAA,IACzE,CAAC;AAAA,EACH;AACF;","names":["import_control","controlCopy","definition"]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var style_v2_exports = {};
20
+ __export(style_v2_exports, {
21
+ StyleV2Control: () => StyleV2Control,
22
+ StyleV2ControlMessageType: () => StyleV2ControlMessageType,
23
+ StyleV2ControlType: () => StyleV2ControlType,
24
+ unstable_StyleV2: () => unstable_StyleV2,
25
+ unstable_useStyleV2ClassName: () => unstable_useStyleV2ClassName
26
+ });
27
+ module.exports = __toCommonJS(style_v2_exports);
28
+ var import_base = require("../prop-controllers/base");
29
+ var import_instances = require("../prop-controllers/instances");
30
+ var import_use_style = require("../runtimes/react/use-style");
31
+ const StyleV2ControlType = "makeswift::controls::style-v2";
32
+ const unstable_useStyleV2ClassName = import_use_style.useStyle;
33
+ function unstable_StyleV2(config) {
34
+ return { type: StyleV2ControlType, config };
35
+ }
36
+ const StyleV2ControlMessageType = {
37
+ CHANGE_BOX_MODEL: "makeswift::controls::style::message::change-box-model",
38
+ STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE: "makeswift::controls::style-v2::message::child-control-message"
39
+ };
40
+ class StyleV2Control extends import_base.PropController {
41
+ control;
42
+ constructor(send, descriptor) {
43
+ super(send);
44
+ this.control = (0, import_instances.createPropController)(descriptor.config.type, (message) => {
45
+ this.send({
46
+ type: StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE,
47
+ payload: { message }
48
+ });
49
+ });
50
+ }
51
+ changeBoxModel(boxModel) {
52
+ this.send({ type: StyleV2ControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } });
53
+ }
54
+ recv(message) {
55
+ switch (message.type) {
56
+ case StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE: {
57
+ const control = this.control;
58
+ if (control == null)
59
+ return;
60
+ const recv = control.recv;
61
+ recv(message.payload.message);
62
+ }
63
+ }
64
+ }
65
+ }
66
+ // Annotate the CommonJS export names for ESM import in node:
67
+ 0 && (module.exports = {
68
+ StyleV2Control,
69
+ StyleV2ControlMessageType,
70
+ StyleV2ControlType,
71
+ unstable_StyleV2,
72
+ unstable_useStyleV2ClassName
73
+ });
74
+ //# sourceMappingURL=style-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/controls/style-v2.ts"],"sourcesContent":["import { ResponsiveValue } from '@makeswift/controls'\nimport { BoxModel } from 'css-box-model'\nimport { ControlDefinition } from './control'\nimport { PropController } from '../prop-controllers/base'\nimport {\n AnyPropController,\n PropControllerMessage,\n Send,\n createPropController,\n} from '../prop-controllers/instances'\nimport { CSSObject } from '@emotion/serialize'\nimport { useStyle } from '../runtimes/react/use-style'\nimport { ControlDefinitionValue } from '../runtimes/react/controls/control'\n\nexport const StyleV2ControlType = 'makeswift::controls::style-v2'\n\nexport type StyleV2CSSObject = CSSObject\nexport const unstable_useStyleV2ClassName = useStyle\n\ntype StyleV2ControlConfig<T extends ControlDefinition = ControlDefinition> = {\n type: T\n getStyle(item: ControlDefinitionValue<T> | undefined): CSSObject\n}\n\nexport type StyleV2ControlDefinition = {\n type: typeof StyleV2ControlType\n config: StyleV2ControlConfig\n}\n\nexport function unstable_StyleV2<C extends StyleV2ControlConfig>(\n config: C,\n): StyleV2ControlDefinition {\n return { type: StyleV2ControlType, config }\n}\n\n/**\n * TODO: Rewrite `ControlDefinitionData` as a tail recursive type.\n *\n * Explanation: Making `StyleV2ControlData` generic causes us to hit a limitation of TS conditional types for the definition of `ControlDefinitionData`.\n * We get \"Type instantiation is excessively deep and possibly infinite.\"\n *\n * Helpful links:\n * * The PR changing the limit of conditional types: https://github.com/microsoft/TypeScript/pull/45711\n * * TS 4.5 docs releasing this limitation: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#tail-recursion-elimination-on-conditional-types\n * * A SO user implementing a tail recursive type: https://stackoverflow.com/questions/72370456/tail-recursion-elimination-on-conditional-types-doesnt-work\n *\n *\n * This is what the type should be:\n * ```\n * export type StyleV2ControlData<T extends StyleV2ControlDefinition = StyleV2ControlDefinition> =\n * ResponsiveValue<ControlDefinitionData<T['config']['type']>>\n * ```\n */\nexport type StyleV2ControlData = ResponsiveValue<any>\n\nexport const StyleV2ControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE:\n 'makeswift::controls::style-v2::message::child-control-message',\n} as const\n\ntype StyleV2ControlItemBoxModelChangeMessage = {\n type: typeof StyleV2ControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\ntype StyleV2ControlChildControlMessage = {\n type: typeof StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE\n payload: { message: PropControllerMessage }\n}\n\nexport type StyleV2ControlMessage =\n | StyleV2ControlItemBoxModelChangeMessage\n | StyleV2ControlChildControlMessage\n\nexport class StyleV2Control<\n T extends StyleV2ControlDefinition = StyleV2ControlDefinition,\n> extends PropController<StyleV2ControlMessage> {\n control?: AnyPropController\n constructor(send: Send<StyleV2ControlMessage>, descriptor: T) {\n super(send)\n this.control = createPropController(descriptor.config.type, message => {\n this.send({\n type: StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE,\n payload: { message },\n })\n })\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleV2ControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv(message: StyleV2ControlMessage) {\n switch (message.type) {\n case StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE: {\n const control = this.control\n\n if (control == null) return\n\n const recv = control.recv as (arg0: PropControllerMessage) => void\n\n recv(message.payload.message)\n }\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA+B;AAC/B,uBAKO;AAEP,uBAAyB;AAGlB,MAAM,qBAAqB;AAG3B,MAAM,+BAA+B;AAYrC,SAAS,iBACd,QAC0B;AAC1B,SAAO,EAAE,MAAM,oBAAoB,OAAO;AAC5C;AAsBO,MAAM,4BAA4B;AAAA,EACvC,kBAAkB;AAAA,EAClB,wCACE;AACJ;AAeO,MAAM,uBAEH,2BAAsC;AAAA,EAC9C;AAAA,EACA,YAAY,MAAmC,YAAe;AAC5D,UAAM,IAAI;AACV,SAAK,cAAU,uCAAqB,WAAW,OAAO,MAAM,aAAW;AACrE,WAAK,KAAK;AAAA,QACR,MAAM,0BAA0B;AAAA,QAChC,SAAS,EAAE,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,0BAA0B,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACvF;AAAA,EAEA,KAAK,SAAgC;AACnC,YAAQ,QAAQ,MAAM;AAAA,MACpB,KAAK,0BAA0B,wCAAwC;AACrE,cAAM,UAAU,KAAK;AAErB,YAAI,WAAW;AAAM;AAErB,cAAM,OAAO,QAAQ;AAErB,aAAK,QAAQ,QAAQ,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var style_exports = {};
20
+ __export(style_exports, {
21
+ Style: () => Style,
22
+ StyleControl: () => StyleControl,
23
+ StyleControlMessageType: () => StyleControlMessageType,
24
+ StyleControlProperty: () => StyleControlProperty,
25
+ StyleControlType: () => StyleControlType,
26
+ copyStyleData: () => copyStyleData,
27
+ getStyleSwatchIds: () => getStyleSwatchIds
28
+ });
29
+ module.exports = __toCommonJS(style_exports);
30
+ var import_controls = require("@makeswift/controls");
31
+ var import_prop_controllers = require("@makeswift/prop-controllers");
32
+ var import_base = require("../prop-controllers/base");
33
+ const StyleControlType = "makeswift::controls::style";
34
+ const StyleControlProperty = {
35
+ Width: "makeswift::controls::style::property::width",
36
+ Margin: "makeswift::controls::style::property::margin",
37
+ Padding: "makeswift::controls::style::property::padding",
38
+ Border: "makeswift::controls::style::property::border",
39
+ BorderRadius: "makeswift::controls::style::property::border-radius",
40
+ TextStyle: "makeswift::controls::style::property::text-style"
41
+ };
42
+ const StyleControlDefaultProperties = [
43
+ StyleControlProperty.Width,
44
+ StyleControlProperty.Margin
45
+ ];
46
+ const AllStyleControlProperties = [
47
+ StyleControlProperty.Width,
48
+ StyleControlProperty.Margin,
49
+ StyleControlProperty.Padding,
50
+ StyleControlProperty.Border,
51
+ StyleControlProperty.BorderRadius,
52
+ StyleControlProperty.TextStyle
53
+ ];
54
+ function Style(params) {
55
+ return {
56
+ type: StyleControlType,
57
+ config: { properties: params?.properties ?? StyleControlDefaultProperties }
58
+ };
59
+ }
60
+ Style.Default = StyleControlDefaultProperties;
61
+ Style.All = AllStyleControlProperties;
62
+ Style.Width = StyleControlProperty.Width;
63
+ Style.Margin = StyleControlProperty.Margin;
64
+ Style.Padding = StyleControlProperty.Padding;
65
+ Style.Border = StyleControlProperty.Border;
66
+ Style.BorderRadius = StyleControlProperty.BorderRadius;
67
+ Style.TextStyle = StyleControlProperty.TextStyle;
68
+ const StyleControlMessageType = {
69
+ CHANGE_BOX_MODEL: "makeswift::controls::style::message::change-box-model"
70
+ };
71
+ class StyleControl extends import_base.PropController {
72
+ constructor(send) {
73
+ super(send);
74
+ }
75
+ changeBoxModel(boxModel) {
76
+ this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } });
77
+ }
78
+ recv() {
79
+ }
80
+ }
81
+ function getStyleSwatchIds(data) {
82
+ return (0, import_prop_controllers.getBorderPropControllerDataSwatchIds)(data.border);
83
+ }
84
+ function copyStyleData(value, context) {
85
+ if (value == null)
86
+ return value;
87
+ function copyResponsiveBorder(responsiveBorder) {
88
+ if (responsiveBorder == null)
89
+ return void 0;
90
+ return responsiveBorder.map((deviceBorder) => ({
91
+ ...deviceBorder,
92
+ value: copyBorder(deviceBorder.value)
93
+ }));
94
+ }
95
+ function copyBorder(border) {
96
+ function copyBorderSide(side) {
97
+ if (side == null)
98
+ return null;
99
+ if (side.color == null)
100
+ return side;
101
+ return {
102
+ ...side,
103
+ color: (0, import_controls.copyColorData)(side.color, context)
104
+ };
105
+ }
106
+ return {
107
+ borderTop: copyBorderSide(border.borderTop),
108
+ borderBottom: copyBorderSide(border.borderBottom),
109
+ borderRight: copyBorderSide(border.borderRight),
110
+ borderLeft: copyBorderSide(border.borderLeft)
111
+ };
112
+ }
113
+ return { ...value, border: copyResponsiveBorder(value.border) };
114
+ }
115
+ // Annotate the CommonJS export names for ESM import in node:
116
+ 0 && (module.exports = {
117
+ Style,
118
+ StyleControl,
119
+ StyleControlMessageType,
120
+ StyleControlProperty,
121
+ StyleControlType,
122
+ copyStyleData,
123
+ getStyleSwatchIds
124
+ });
125
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/controls/style.ts"],"sourcesContent":["import { ColorData, copyColorData, ResponsiveValue } from '@makeswift/controls'\nimport { getBorderPropControllerDataSwatchIds } from '@makeswift/prop-controllers'\n\nimport { BorderRadiusPropertyData } from '../css/border-radius'\nimport type { LengthPercentageData } from '../css/length-percentage'\nimport { MarginPropertyData } from '../css/margin'\nimport { PaddingPropertyData } from '../css/padding'\nimport { CopyContext } from '../state/react-page'\nimport { Send } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\n\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/width */\nexport type WidthPropertyData = LengthPercentageData\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-style\n */\ntype BorderStyle = 'dotted' | 'dashed' | 'solid'\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-top#constituent_properties\n *\n * @todos\n * - Change `width` to be a `Length`\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderSideShorthandPropertyData = {\n width: number | null | undefined\n style: BorderStyle\n color?: ColorData | null\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border\n *\n * @todos\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderPropertyData = {\n borderTop: BorderSideShorthandPropertyData | null | undefined\n borderRight: BorderSideShorthandPropertyData | null | undefined\n borderBottom: BorderSideShorthandPropertyData | null | undefined\n borderLeft: BorderSideShorthandPropertyData | null | undefined\n}\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-family\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontFamilyPropertyData = string | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type LetterSpacingPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-size\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontSizePropertyData =\n | {\n value: number\n unit: 'px'\n }\n | null\n | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontWeightPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform\n *\n * @todos\n * - Match the type with specification\n */\nexport type TextTransformPropertyData = 'uppercase'[]\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\n *\n * @todos\n * - Match the type with specification\n */\nexport type FontStylePropertyData = 'italic'[]\n\n/**\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type TextStylePropertyData = {\n fontFamily?: FontFamilyPropertyData | null | undefined\n letterSpacing: LetterSpacingPropertyData | null | undefined\n fontSize: FontSizePropertyData | null | undefined\n fontWeight: FontWeightPropertyData | null | undefined\n textTransform: TextTransformPropertyData\n fontStyle: FontStylePropertyData\n}\n\n/**\n * Primitives like `string` and `number` are excluded from the style data because the relevant\n * panels from the Makeswift builder were originally implemented only to support object values, and\n * not CSS strings. For example, 100 pixels would be `{ value: 100, unit: 'px' }` but never `100` or\n * `'100px'`.\n */\nexport type StyleControlData = {\n width?: ResponsiveValue<Exclude<WidthPropertyData, string | number>>\n margin?: ResponsiveValue<{\n [K in keyof MarginPropertyData]: Exclude<MarginPropertyData[K], string | number> | 'auto'\n }>\n padding?: ResponsiveValue<{\n [K in keyof PaddingPropertyData]: Exclude<PaddingPropertyData[K], string | number>\n }>\n border?: ResponsiveValue<BorderPropertyData>\n borderRadius?: ResponsiveValue<{\n [K in keyof BorderRadiusPropertyData]: Exclude<BorderRadiusPropertyData[K], string | number>\n }>\n textStyle?: ResponsiveValue<TextStylePropertyData>\n}\n\nexport const StyleControlType = 'makeswift::controls::style'\n\nexport const StyleControlProperty = {\n Width: 'makeswift::controls::style::property::width',\n Margin: 'makeswift::controls::style::property::margin',\n Padding: 'makeswift::controls::style::property::padding',\n Border: 'makeswift::controls::style::property::border',\n BorderRadius: 'makeswift::controls::style::property::border-radius',\n TextStyle: 'makeswift::controls::style::property::text-style',\n} as const\n\nexport type StyleControlProperty = typeof StyleControlProperty[keyof typeof StyleControlProperty]\n\ntype StyleControlParams = { properties?: StyleControlProperty[] }\n\nexport type StyleControlConfig = { properties: StyleControlProperty[] }\n\nconst StyleControlDefaultProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n]\n\nconst AllStyleControlProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n StyleControlProperty.Padding,\n StyleControlProperty.Border,\n StyleControlProperty.BorderRadius,\n StyleControlProperty.TextStyle,\n]\n\nexport type StyleControlDefinition = {\n type: typeof StyleControlType\n config: StyleControlConfig\n}\n\n/**\n * @todos\n * - Add support for custom panel labels.\n * - Add support for default values. Internally, default values must be represented with the same\n * format as the underlying data so that controls can show these values.\n */\nexport function Style(params?: StyleControlParams): StyleControlDefinition {\n return {\n type: StyleControlType,\n config: { properties: params?.properties ?? StyleControlDefaultProperties },\n }\n}\n\nStyle.Default = StyleControlDefaultProperties\nStyle.All = AllStyleControlProperties\n\nStyle.Width = StyleControlProperty.Width\nStyle.Margin = StyleControlProperty.Margin\nStyle.Padding = StyleControlProperty.Padding\nStyle.Border = StyleControlProperty.Border\nStyle.BorderRadius = StyleControlProperty.BorderRadius\nStyle.TextStyle = StyleControlProperty.TextStyle\n\nexport const StyleControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n} as const\n\ntype StyleControlItemBoxModelChangeMessage = {\n type: typeof StyleControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type StyleControlMessage = StyleControlItemBoxModelChangeMessage\n\nexport class StyleControl extends PropController<StyleControlMessage> {\n constructor(send: Send<StyleControlMessage>) {\n super(send)\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv() {}\n}\n\nexport function getStyleSwatchIds(data: StyleControlData): string[] {\n return getBorderPropControllerDataSwatchIds(data.border)\n}\n\nexport function copyStyleData(\n value: StyleControlData | undefined,\n context: CopyContext,\n): StyleControlData | undefined {\n if (value == null) return value\n\n function copyResponsiveBorder(\n responsiveBorder: ResponsiveValue<BorderPropertyData> | undefined,\n ): ResponsiveValue<BorderPropertyData> | undefined {\n if (responsiveBorder == null) return undefined\n return responsiveBorder.map(deviceBorder => ({\n ...deviceBorder,\n value: copyBorder(deviceBorder.value),\n }))\n }\n\n function copyBorder(border: BorderPropertyData): BorderPropertyData {\n function copyBorderSide(side: BorderSideShorthandPropertyData | null | undefined) {\n if (side == null) return null\n\n if (side.color == null) return side\n\n return {\n ...side,\n color: copyColorData(side.color, context),\n }\n }\n\n return {\n borderTop: copyBorderSide(border.borderTop),\n borderBottom: copyBorderSide(border.borderBottom),\n borderRight: copyBorderSide(border.borderRight),\n borderLeft: copyBorderSide(border.borderLeft),\n }\n }\n\n return { ...value, border: copyResponsiveBorder(value.border) }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA0D;AAC1D,8BAAqD;AAQrD,kBAA+B;AAoIxB,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB;AAAA,EAClC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,WAAW;AACb;AAQA,MAAM,gCAAwD;AAAA,EAC5D,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAEA,MAAM,4BAAoD;AAAA,EACxD,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAaO,SAAS,MAAM,QAAqD;AACzE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,EAAE,YAAY,QAAQ,cAAc,8BAA8B;AAAA,EAC5E;AACF;AAEA,MAAM,UAAU;AAChB,MAAM,MAAM;AAEZ,MAAM,QAAQ,qBAAqB;AACnC,MAAM,SAAS,qBAAqB;AACpC,MAAM,UAAU,qBAAqB;AACrC,MAAM,SAAS,qBAAqB;AACpC,MAAM,eAAe,qBAAqB;AAC1C,MAAM,YAAY,qBAAqB;AAEhC,MAAM,0BAA0B;AAAA,EACrC,kBAAkB;AACpB;AASO,MAAM,qBAAqB,2BAAoC;AAAA,EACpE,YAAY,MAAiC;AAC3C,UAAM,IAAI;AAAA,EACZ;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,wBAAwB,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACrF;AAAA,EAEA,OAAO;AAAA,EAAC;AACV;AAEO,SAAS,kBAAkB,MAAkC;AAClE,aAAO,8DAAqC,KAAK,MAAM;AACzD;AAEO,SAAS,cACd,OACA,SAC8B;AAC9B,MAAI,SAAS;AAAM,WAAO;AAE1B,WAAS,qBACP,kBACiD;AACjD,QAAI,oBAAoB;AAAM,aAAO;AACrC,WAAO,iBAAiB,IAAI,mBAAiB;AAAA,MAC3C,GAAG;AAAA,MACH,OAAO,WAAW,aAAa,KAAK;AAAA,IACtC,EAAE;AAAA,EACJ;AAEA,WAAS,WAAW,QAAgD;AAClE,aAAS,eAAe,MAA0D;AAChF,UAAI,QAAQ;AAAM,eAAO;AAEzB,UAAI,KAAK,SAAS;AAAM,eAAO;AAE/B,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAO,+BAAc,KAAK,OAAO,OAAO;AAAA,MAC1C;AAAA,IACF;AAEA,WAAO;AAAA,MACL,WAAW,eAAe,OAAO,SAAS;AAAA,MAC1C,cAAc,eAAe,OAAO,YAAY;AAAA,MAChD,aAAa,eAAe,OAAO,WAAW;AAAA,MAC9C,YAAY,eAAe,OAAO,UAAU;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,OAAO,QAAQ,qBAAqB,MAAM,MAAM,EAAE;AAChE;","names":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var text_area_exports = {};
20
+ __export(text_area_exports, {
21
+ TextArea: () => TextArea,
22
+ TextAreaControlDataTypeKey: () => TextAreaControlDataTypeKey,
23
+ TextAreaControlDataTypeValueV1: () => TextAreaControlDataTypeValueV1,
24
+ TextAreaControlType: () => TextAreaControlType
25
+ });
26
+ module.exports = __toCommonJS(text_area_exports);
27
+ var import_control_data_type_key = require("./control-data-type-key");
28
+ const TextAreaControlDataTypeKey = import_control_data_type_key.ControlDataTypeKey;
29
+ const TextAreaControlDataTypeValueV1 = "text-area::v1";
30
+ const TextAreaControlType = "makeswift::controls::text-area";
31
+ function TextArea(config = {}) {
32
+ return { type: TextAreaControlType, config, version: 1 };
33
+ }
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ TextArea,
37
+ TextAreaControlDataTypeKey,
38
+ TextAreaControlDataTypeValueV1,
39
+ TextAreaControlType
40
+ });
41
+ //# sourceMappingURL=text-area.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/controls/text-area.ts"],"sourcesContent":["import { ControlDataTypeKey } from \"./control-data-type-key\"\n\nexport const TextAreaControlDataTypeKey = ControlDataTypeKey\n\nexport const TextAreaControlDataTypeValueV1 = 'text-area::v1'\n\nexport type TextAreaControlDataV0 = string\n\nexport type TextAreaControlDataV1 = {\n [TextAreaControlDataTypeKey]: typeof TextAreaControlDataTypeValueV1\n value: string,\n}\n\nexport type TextAreaControlData = TextAreaControlDataV0 | TextAreaControlDataV1\n\nexport const TextAreaControlType = 'makeswift::controls::text-area'\n\ntype TextAreaControlConfig = {\n label?: string\n defaultValue?: string\n rows?: number\n}\n\nexport type TextAreaControlDefinition<C extends TextAreaControlConfig = TextAreaControlConfig> = {\n type: typeof TextAreaControlType\n config: C\n version?: 1\n}\n\nexport function TextArea<C extends TextAreaControlConfig>(\n config: C = {} as C,\n): TextAreaControlDefinition<C> {\n return { type: TextAreaControlType, config, version: 1 }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAAmC;AAE5B,MAAM,6BAA6B;AAEnC,MAAM,iCAAiC;AAWvC,MAAM,sBAAsB;AAc5B,SAAS,SACd,SAAY,CAAC,GACiB;AAC9B,SAAO,EAAE,MAAM,qBAAqB,QAAQ,SAAS,EAAE;AACzD;","names":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var text_input_exports = {};
20
+ __export(text_input_exports, {
21
+ TextInput: () => TextInput,
22
+ TextInputControlDataTypeKey: () => TextInputControlDataTypeKey,
23
+ TextInputControlDataTypeValueV1: () => TextInputControlDataTypeValueV1,
24
+ TextInputControlType: () => TextInputControlType
25
+ });
26
+ module.exports = __toCommonJS(text_input_exports);
27
+ var import_control_data_type_key = require("./control-data-type-key");
28
+ const TextInputControlDataTypeKey = import_control_data_type_key.ControlDataTypeKey;
29
+ const TextInputControlDataTypeValueV1 = "text-input::v1";
30
+ const TextInputControlType = "makeswift::controls::text-input";
31
+ function TextInput(config = {}) {
32
+ return { type: TextInputControlType, config, version: 1 };
33
+ }
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ TextInput,
37
+ TextInputControlDataTypeKey,
38
+ TextInputControlDataTypeValueV1,
39
+ TextInputControlType
40
+ });
41
+ //# sourceMappingURL=text-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/controls/text-input.ts"],"sourcesContent":["import { ControlDataTypeKey } from \"./control-data-type-key\"\n\nexport const TextInputControlDataTypeKey = ControlDataTypeKey\n\nexport const TextInputControlDataTypeValueV1 = 'text-input::v1'\n\nexport type TextInputControlDataV0 = string\n\nexport type TextInputControlDataV1 = {\n [ControlDataTypeKey]: typeof TextInputControlDataTypeValueV1\n value: string,\n}\n\nexport type TextInputControlData = TextInputControlDataV0 | TextInputControlDataV1\n\nexport const TextInputControlType = 'makeswift::controls::text-input'\n\ntype TextInputControlConfig = {\n label?: string\n defaultValue?: string\n}\n\nexport type TextInputControlDefinition<C extends TextInputControlConfig = TextInputControlConfig> =\n {\n type: typeof TextInputControlType\n config: C\n version?: 1\n }\n\nexport function TextInput<C extends TextInputControlConfig>(\n config: C = {} as C,\n): TextInputControlDefinition<C> {\n return { type: TextInputControlType, config, version: 1 }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAAmC;AAE5B,MAAM,8BAA8B;AAEpC,MAAM,kCAAkC;AAWxC,MAAM,uBAAuB;AAc7B,SAAS,UACd,SAAY,CAAC,GACkB;AAC/B,SAAO,EAAE,MAAM,sBAAsB,QAAQ,SAAS,EAAE;AAC1D;","names":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
17
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/controls/types.ts"],"sourcesContent":["export type Device = string\n\nexport type DeviceOverride<T> = { deviceId: Device; value: T }\n\nexport type ResponsiveValue<T> = DeviceOverride<T>[]\n\nexport type ColorData = { swatchId: string; alpha: number }\n\nexport type Data = undefined | null | boolean | number | string | Data[] | { [key: string]: Data }\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var typography_exports = {};
20
+ __export(typography_exports, {
21
+ TypographyControlType: () => TypographyControlType,
22
+ getTypographySwatchIds: () => getTypographySwatchIds,
23
+ getTypographyTypographyIds: () => getTypographyTypographyIds,
24
+ unstable_Typography: () => unstable_Typography
25
+ });
26
+ module.exports = __toCommonJS(typography_exports);
27
+ var import_isNonNullable = require("../utils/isNonNullable");
28
+ const TypographyControlType = "makeswift::controls::typography";
29
+ function unstable_Typography() {
30
+ return {
31
+ type: TypographyControlType
32
+ };
33
+ }
34
+ function getTypographySwatchIds(value) {
35
+ return value?.style.flatMap((style) => style.value.color?.swatchId ?? []).filter(import_isNonNullable.isNonNullable) ?? [];
36
+ }
37
+ function getTypographyTypographyIds(value) {
38
+ return [value?.id].filter(import_isNonNullable.isNonNullable);
39
+ }
40
+ // Annotate the CommonJS export names for ESM import in node:
41
+ 0 && (module.exports = {
42
+ TypographyControlType,
43
+ getTypographySwatchIds,
44
+ getTypographyTypographyIds,
45
+ unstable_Typography
46
+ });
47
+ //# sourceMappingURL=typography.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/controls/typography.ts"],"sourcesContent":["import { isNonNullable } from '../utils/isNonNullable'\n\nexport type TypographyControlData = (\n | {\n id?: string\n style: Array<{\n deviceId: string\n value: {\n fontFamily?: string | null\n lineHeight?: number | null\n letterSpacing?: number | null\n fontWeight?: number | null\n textAlign?: string | null\n uppercase?: boolean | null\n underline?: boolean | null\n strikethrough?: boolean | null\n italic?: boolean | null\n fontSize?: { value: number | null; unit: string | null } | null\n color?: { swatchId: string | null; alpha: number | null } | null\n }\n }>\n }\n | undefined\n)[]\n\nexport const TypographyControlType = 'makeswift::controls::typography'\n\nexport type TypographyControlDefinition = {\n type: typeof TypographyControlType\n}\n\nexport function unstable_Typography(): TypographyControlDefinition {\n return {\n type: TypographyControlType,\n }\n}\n\nexport function getTypographySwatchIds(value: TypographyControlData[number]) {\n return (\n value?.style.flatMap(style => style.value.color?.swatchId ?? []).filter(isNonNullable) ?? []\n )\n}\n\nexport function getTypographyTypographyIds(value: TypographyControlData[number]) {\n return [value?.id].filter(isNonNullable)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA8B;AAyBvB,MAAM,wBAAwB;AAM9B,SAAS,sBAAmD;AACjE,SAAO;AAAA,IACL,MAAM;AAAA,EACR;AACF;AAEO,SAAS,uBAAuB,OAAsC;AAC3E,SACE,OAAO,MAAM,QAAQ,WAAS,MAAM,MAAM,OAAO,YAAY,CAAC,CAAC,EAAE,OAAO,kCAAa,KAAK,CAAC;AAE/F;AAEO,SAAS,2BAA2B,OAAsC;AAC/E,SAAO,CAAC,OAAO,EAAE,EAAE,OAAO,kCAAa;AACzC;","names":[]}
@@ -37,7 +37,7 @@ async function handler(...args) {
37
37
  const supportsDraftMode = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
38
38
  const supportsWebhook = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
39
39
  const body = {
40
- version: "0.23.13",
40
+ version: "0.23.14",
41
41
  previewMode: supportsPreviewMode,
42
42
  draftMode: supportsDraftMode,
43
43
  interactionMode: true,
@@ -39,14 +39,15 @@ async function redirectPreviewRouteHandler(_request, _context, {}) {
39
39
  }
40
40
  async function redirectPreviewApiRouteHandler(req, res, { apiKey }) {
41
41
  const secret = req.query[import_draft.SearchParams.PreviewMode];
42
+ const pathname = req.query.path;
42
43
  if (secret == null) {
43
44
  return res.status(401).send("Unauthorized to enable preview mode: no secret provided");
44
45
  }
45
46
  if (secret !== apiKey) {
46
47
  return res.status(401).send("Unauthorized to enable preview mode: secret is incorrect");
47
48
  }
48
- if (req.url == null) {
49
- return res.status(400).send("Bad request: incoming request does not have URL property");
49
+ if (pathname == null) {
50
+ return res.status(400).send("Bad request: incoming request does not have an associated pathname");
50
51
  }
51
52
  const setCookie = res.setPreviewData({ makeswift: true, siteVersion: import_site_version.MakeswiftSiteVersion.Working }).getHeader(import_draft.SET_COOKIE_HEADER);
52
53
  res.removeHeader(import_draft.SET_COOKIE_HEADER);
@@ -60,7 +61,7 @@ async function redirectPreviewApiRouteHandler(req, res, { apiKey }) {
60
61
  return (0, import_cookie.serialize)(name, value, { ...import_draft.cookieSettingOptions });
61
62
  });
62
63
  res.setHeader(import_draft.SET_COOKIE_HEADER, patchedCookies);
63
- const destinationUrl = new URL(req.url, "http://test.com");
64
+ const destinationUrl = new URL(pathname, "http://test.com");
64
65
  destinationUrl.searchParams.delete(import_draft.SearchParams.PreviewMode);
65
66
  res.redirect(`${destinationUrl.pathname}?${destinationUrl.searchParams.toString()}`);
66
67
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/next/api-handler/handlers/redirect-preview.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\n\nimport { parse as parseSetCookie } from 'set-cookie-parser'\nimport { serialize as serializeCookie } from 'cookie'\n\nimport { MakeswiftSiteVersion } from '../../../api/site-version'\nimport {\n cookieSettingOptions,\n PRERENDER_BYPASS_COOKIE,\n PREVIEW_DATA_COOKIE,\n SearchParams,\n SET_COOKIE_HEADER,\n} from './utils/draft'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype RedirectPreviewError = string\n\ntype Response = unknown\n\nexport type RedirectPreviewResponse = RedirectPreviewError | Response\n\ntype RedirectPreviewHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<RedirectPreviewResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function redirectPreviewHandler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectPreviewResponse>>\nexport default async function redirectPreviewHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectPreviewResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function redirectPreviewHandler(\n ...args: RedirectPreviewHandlerArgs\n): Promise<NextResponse<RedirectPreviewResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, args => redirectPreviewRouteHandler(...args))\n .with(apiRoutePattern, args => redirectPreviewApiRouteHandler(...args))\n .exhaustive()\n}\n\nasync function redirectPreviewRouteHandler(\n _request: NextRequest,\n _context: Context,\n {}: { apiKey: string },\n): Promise<NextResponse<RedirectPreviewResponse>> {\n const message =\n 'Cannot request preview endpoint from an API handler registered in `app`. Move your Makeswift API handler to the `pages/api` directory'\n console.error(message)\n return NextResponse.json(message, { status: 500 })\n}\n\nasync function redirectPreviewApiRouteHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectPreviewResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void> {\n const secret = req.query[SearchParams.PreviewMode]\n\n if (secret == null) {\n return res.status(401).send('Unauthorized to enable preview mode: no secret provided')\n }\n if (secret !== apiKey) {\n return res.status(401).send('Unauthorized to enable preview mode: secret is incorrect')\n }\n\n if (req.url == null) {\n return res.status(400).send('Bad request: incoming request does not have URL property')\n }\n\n const setCookie = res\n // Eventually, we can make the preview data value dynamic using the request\n .setPreviewData({ makeswift: true, siteVersion: MakeswiftSiteVersion.Working })\n .getHeader(SET_COOKIE_HEADER)\n\n res.removeHeader(SET_COOKIE_HEADER)\n\n const parsedCookies = parseSetCookie(Array.isArray(setCookie) ? setCookie : '')\n\n const prerenderBypassCookie = parsedCookies.find(c => c.name === PRERENDER_BYPASS_COOKIE)\n const previewDataCookie = parsedCookies.find(c => c.name === PREVIEW_DATA_COOKIE)\n\n if (prerenderBypassCookie?.value == null || previewDataCookie?.value == null) {\n return res.status(500).send('Could not retrieve preview mode cookies')\n }\n\n const patchedCookies = [prerenderBypassCookie, previewDataCookie].map(({ name, value }) => {\n return serializeCookie(name, value, { ...cookieSettingOptions })\n })\n\n res.setHeader(SET_COOKIE_HEADER, patchedCookies)\n\n const destinationUrl = new URL(req.url, 'http://test.com')\n destinationUrl.searchParams.delete(SearchParams.PreviewMode)\n\n res.redirect(`${destinationUrl.pathname}?${destinationUrl.searchParams.toString()}`)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA0C;AAC1C,wBAAyB;AAEzB,+BAAwC;AACxC,oBAA6C;AAE7C,0BAAqC;AACrC,mBAMO;AAcP,MAAM,sBAAsB,CAAC,oBAAE,WAAW,OAAO,GAAG,oBAAE,KAAK,oBAAE,GAAG;AAChE,MAAM,kBAAkB,CAAC,oBAAE,KAAK,oBAAE,KAAK,oBAAE,GAAG;AAY5C,eAAO,0BACF,MACoD;AACvD,aAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,UAAQ,4BAA4B,GAAGA,KAAI,CAAC,EACtE,KAAK,iBAAiB,CAAAA,UAAQ,+BAA+B,GAAGA,KAAI,CAAC,EACrE,WAAW;AAChB;AAEA,eAAe,4BACb,UACA,UACA,CAAC,GAC+C;AAChD,QAAM,UACJ;AACF,UAAQ,MAAM,OAAO;AACrB,SAAO,2BAAa,KAAK,SAAS,EAAE,QAAQ,IAAI,CAAC;AACnD;AAEA,eAAe,+BACb,KACA,KACA,EAAE,OAAO,GACM;AACf,QAAM,SAAS,IAAI,MAAM,0BAAa,WAAW;AAEjD,MAAI,UAAU,MAAM;AAClB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,yDAAyD;AAAA,EACvF;AACA,MAAI,WAAW,QAAQ;AACrB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,0DAA0D;AAAA,EACxF;AAEA,MAAI,IAAI,OAAO,MAAM;AACnB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,0DAA0D;AAAA,EACxF;AAEA,QAAM,YAAY,IAEf,eAAe,EAAE,WAAW,MAAM,aAAa,yCAAqB,QAAQ,CAAC,EAC7E,UAAU,8BAAiB;AAE9B,MAAI,aAAa,8BAAiB;AAElC,QAAM,oBAAgB,yBAAAC,OAAe,MAAM,QAAQ,SAAS,IAAI,YAAY,EAAE;AAE9E,QAAM,wBAAwB,cAAc,KAAK,OAAK,EAAE,SAAS,oCAAuB;AACxF,QAAM,oBAAoB,cAAc,KAAK,OAAK,EAAE,SAAS,gCAAmB;AAEhF,MAAI,uBAAuB,SAAS,QAAQ,mBAAmB,SAAS,MAAM;AAC5E,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,yCAAyC;AAAA,EACvE;AAEA,QAAM,iBAAiB,CAAC,uBAAuB,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,MAAM,MAAM;AACzF,eAAO,cAAAC,WAAgB,MAAM,OAAO,EAAE,GAAG,kCAAqB,CAAC;AAAA,EACjE,CAAC;AAED,MAAI,UAAU,gCAAmB,cAAc;AAE/C,QAAM,iBAAiB,IAAI,IAAI,IAAI,KAAK,iBAAiB;AACzD,iBAAe,aAAa,OAAO,0BAAa,WAAW;AAE3D,MAAI,SAAS,GAAG,eAAe,QAAQ,IAAI,eAAe,aAAa,SAAS,CAAC,EAAE;AACrF;","names":["args","parseSetCookie","serializeCookie"]}
1
+ {"version":3,"sources":["../../../../../src/next/api-handler/handlers/redirect-preview.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\n\nimport { parse as parseSetCookie } from 'set-cookie-parser'\nimport { serialize as serializeCookie } from 'cookie'\n\nimport { MakeswiftSiteVersion } from '../../../api/site-version'\nimport {\n cookieSettingOptions,\n PRERENDER_BYPASS_COOKIE,\n PREVIEW_DATA_COOKIE,\n SearchParams,\n SET_COOKIE_HEADER,\n} from './utils/draft'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype RedirectPreviewError = string\n\ntype Response = unknown\n\nexport type RedirectPreviewResponse = RedirectPreviewError | Response\n\ntype RedirectPreviewHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<RedirectPreviewResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function redirectPreviewHandler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectPreviewResponse>>\nexport default async function redirectPreviewHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectPreviewResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function redirectPreviewHandler(\n ...args: RedirectPreviewHandlerArgs\n): Promise<NextResponse<RedirectPreviewResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, args => redirectPreviewRouteHandler(...args))\n .with(apiRoutePattern, args => redirectPreviewApiRouteHandler(...args))\n .exhaustive()\n}\n\nasync function redirectPreviewRouteHandler(\n _request: NextRequest,\n _context: Context,\n { }: { apiKey: string },\n): Promise<NextResponse<RedirectPreviewResponse>> {\n const message =\n 'Cannot request preview endpoint from an API handler registered in `app`. Move your Makeswift API handler to the `pages/api` directory'\n console.error(message)\n return NextResponse.json(message, { status: 500 })\n}\n\n\nasync function redirectPreviewApiRouteHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectPreviewResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void> {\n const secret = req.query[SearchParams.PreviewMode]\n // Next.js automatically strips the locale prefix from rewritten request's URL, even when the\n // rewrite's `locale` option is set to `false`: https://github.com/vercel/next.js/discussions/21798.\n // At the same time, it also maps rewrite's URL segments (e.g. `:path`) to query parameters\n // on the rewritten request, so we use `query.path` to recover the original request path.\n const pathname = req.query.path as string | undefined\n\n if (secret == null) {\n return res.status(401).send('Unauthorized to enable preview mode: no secret provided')\n }\n\n if (secret !== apiKey) {\n return res.status(401).send('Unauthorized to enable preview mode: secret is incorrect')\n }\n\n if (pathname == null) {\n return res.status(400).send('Bad request: incoming request does not have an associated pathname')\n }\n\n const setCookie = res\n // Eventually, we can make the preview data value dynamic using the request\n .setPreviewData({ makeswift: true, siteVersion: MakeswiftSiteVersion.Working })\n .getHeader(SET_COOKIE_HEADER)\n\n res.removeHeader(SET_COOKIE_HEADER)\n\n const parsedCookies = parseSetCookie(Array.isArray(setCookie) ? setCookie : '')\n\n const prerenderBypassCookie = parsedCookies.find(c => c.name === PRERENDER_BYPASS_COOKIE)\n const previewDataCookie = parsedCookies.find(c => c.name === PREVIEW_DATA_COOKIE)\n\n if (prerenderBypassCookie?.value == null || previewDataCookie?.value == null) {\n return res.status(500).send('Could not retrieve preview mode cookies')\n }\n\n const patchedCookies = [prerenderBypassCookie, previewDataCookie].map(({ name, value }) => {\n return serializeCookie(name, value, { ...cookieSettingOptions })\n })\n\n res.setHeader(SET_COOKIE_HEADER, patchedCookies)\n\n const destinationUrl = new URL(pathname, 'http://test.com')\n destinationUrl.searchParams.delete(SearchParams.PreviewMode)\n\n res.redirect(`${destinationUrl.pathname}?${destinationUrl.searchParams.toString()}`)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA0C;AAC1C,wBAAyB;AAEzB,+BAAwC;AACxC,oBAA6C;AAE7C,0BAAqC;AACrC,mBAMO;AAcP,MAAM,sBAAsB,CAAC,oBAAE,WAAW,OAAO,GAAG,oBAAE,KAAK,oBAAE,GAAG;AAChE,MAAM,kBAAkB,CAAC,oBAAE,KAAK,oBAAE,KAAK,oBAAE,GAAG;AAY5C,eAAO,0BACF,MACoD;AACvD,aAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,UAAQ,4BAA4B,GAAGA,KAAI,CAAC,EACtE,KAAK,iBAAiB,CAAAA,UAAQ,+BAA+B,GAAGA,KAAI,CAAC,EACrE,WAAW;AAChB;AAEA,eAAe,4BACb,UACA,UACA,CAAE,GAC8C;AAChD,QAAM,UACJ;AACF,UAAQ,MAAM,OAAO;AACrB,SAAO,2BAAa,KAAK,SAAS,EAAE,QAAQ,IAAI,CAAC;AACnD;AAGA,eAAe,+BACb,KACA,KACA,EAAE,OAAO,GACM;AACf,QAAM,SAAS,IAAI,MAAM,0BAAa,WAAW;AAKjD,QAAM,WAAW,IAAI,MAAM;AAE3B,MAAI,UAAU,MAAM;AAClB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,yDAAyD;AAAA,EACvF;AAEA,MAAI,WAAW,QAAQ;AACrB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,0DAA0D;AAAA,EACxF;AAEA,MAAI,YAAY,MAAM;AACpB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,oEAAoE;AAAA,EAClG;AAEA,QAAM,YAAY,IAEf,eAAe,EAAE,WAAW,MAAM,aAAa,yCAAqB,QAAQ,CAAC,EAC7E,UAAU,8BAAiB;AAE9B,MAAI,aAAa,8BAAiB;AAElC,QAAM,oBAAgB,yBAAAC,OAAe,MAAM,QAAQ,SAAS,IAAI,YAAY,EAAE;AAE9E,QAAM,wBAAwB,cAAc,KAAK,OAAK,EAAE,SAAS,oCAAuB;AACxF,QAAM,oBAAoB,cAAc,KAAK,OAAK,EAAE,SAAS,gCAAmB;AAEhF,MAAI,uBAAuB,SAAS,QAAQ,mBAAmB,SAAS,MAAM;AAC5E,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,yCAAyC;AAAA,EACvE;AAEA,QAAM,iBAAiB,CAAC,uBAAuB,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,MAAM,MAAM;AACzF,eAAO,cAAAC,WAAgB,MAAM,OAAO,EAAE,GAAG,kCAAqB,CAAC;AAAA,EACjE,CAAC;AAED,MAAI,UAAU,gCAAmB,cAAc;AAE/C,QAAM,iBAAiB,IAAI,IAAI,UAAU,iBAAiB;AAC1D,iBAAe,aAAa,OAAO,0BAAa,WAAW;AAE3D,MAAI,SAAS,GAAG,eAAe,QAAQ,IAAI,eAAe,aAAa,SAAS,CAAC,EAAE;AACrF;","names":["args","parseSetCookie","serializeCookie"]}