@makeswift/runtime 0.0.0-a8dd080 → 0.0.0-b87dd43

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 (344) hide show
  1. package/api.js +1 -0
  2. package/box-model.js +1 -0
  3. package/builder.js +1 -0
  4. package/components.js +1 -0
  5. package/dist/Page.cjs.js +215 -0
  6. package/dist/Page.cjs.js.map +1 -0
  7. package/dist/Page.es.js +209 -0
  8. package/dist/Page.es.js.map +1 -0
  9. package/dist/actions.cjs.js +121 -17
  10. package/dist/actions.cjs.js.map +1 -1
  11. package/dist/actions.es.js +106 -16
  12. package/dist/actions.es.js.map +1 -1
  13. package/dist/api.cjs.js +5 -0
  14. package/dist/api.cjs.js.map +1 -0
  15. package/dist/api.es.js +2 -0
  16. package/dist/api.es.js.map +1 -0
  17. package/dist/box-model.cjs.js +2 -2
  18. package/dist/box-model.es.js +1 -0
  19. package/dist/box-model.es.js.map +1 -1
  20. package/dist/box-models.cjs.js +28 -156
  21. package/dist/box-models.cjs.js.map +1 -1
  22. package/dist/box-models.es.js +31 -159
  23. package/dist/box-models.es.js.map +1 -1
  24. package/dist/builder.cjs.js +10 -0
  25. package/dist/builder.cjs.js.map +1 -0
  26. package/dist/builder.es.js +3 -0
  27. package/dist/builder.es.js.map +1 -0
  28. package/dist/components.cjs.js +71 -6900
  29. package/dist/components.cjs.js.map +1 -1
  30. package/dist/components.es.js +32 -6866
  31. package/dist/components.es.js.map +1 -1
  32. package/dist/constants.cjs.js +241 -0
  33. package/dist/constants.cjs.js.map +1 -0
  34. package/dist/constants.es.js +240 -0
  35. package/dist/constants.es.js.map +1 -0
  36. package/dist/control-serialization.cjs.js +223 -0
  37. package/dist/control-serialization.cjs.js.map +1 -0
  38. package/dist/control-serialization.es.js +218 -0
  39. package/dist/control-serialization.es.js.map +1 -0
  40. package/dist/descriptors.cjs.js +223 -0
  41. package/dist/descriptors.cjs.js.map +1 -0
  42. package/dist/descriptors.es.js +188 -0
  43. package/dist/descriptors.es.js.map +1 -0
  44. package/dist/instances.cjs.js +106 -0
  45. package/dist/instances.cjs.js.map +1 -0
  46. package/dist/instances.es.js +103 -0
  47. package/dist/instances.es.js.map +1 -0
  48. package/dist/main.cjs.js +14 -2
  49. package/dist/main.cjs.js.map +1 -1
  50. package/dist/main.es.js +5 -1
  51. package/dist/main.es.js.map +1 -1
  52. package/dist/next.cjs.js +190 -0
  53. package/dist/next.cjs.js.map +1 -0
  54. package/dist/next.es.js +180 -0
  55. package/dist/next.es.js.map +1 -0
  56. package/dist/prop-controllers.cjs.js +6 -175
  57. package/dist/prop-controllers.cjs.js.map +1 -1
  58. package/dist/prop-controllers.es.js +2 -173
  59. package/dist/prop-controllers.es.js.map +1 -1
  60. package/dist/react-builder-preview.cjs.js +274 -4130
  61. package/dist/react-builder-preview.cjs.js.map +1 -1
  62. package/dist/react-builder-preview.es.js +267 -4127
  63. package/dist/react-builder-preview.es.js.map +1 -1
  64. package/dist/react-page.cjs.js +262 -0
  65. package/dist/react-page.cjs.js.map +1 -0
  66. package/dist/react-page.es.js +241 -0
  67. package/dist/react-page.es.js.map +1 -0
  68. package/dist/react.cjs.js +34 -3
  69. package/dist/react.cjs.js.map +1 -1
  70. package/dist/react.cjs2.js +7831 -687
  71. package/dist/react.cjs2.js.map +1 -1
  72. package/dist/react.es.js +30 -1
  73. package/dist/react.es.js.map +1 -1
  74. package/dist/react.es2.js +7752 -664
  75. package/dist/react.es2.js.map +1 -1
  76. package/dist/types/api/constants.d.ts +4 -0
  77. package/dist/types/api/constants.d.ts.map +1 -0
  78. package/dist/types/api/generated/graphql.d.ts +120 -0
  79. package/dist/types/api/generated/graphql.d.ts.map +1 -0
  80. package/dist/types/api/index.d.ts +3 -0
  81. package/dist/types/api/index.d.ts.map +1 -0
  82. package/dist/types/api/react.d.ts +27 -0
  83. package/dist/types/api/react.d.ts.map +1 -0
  84. package/dist/types/api/types.d.ts +4 -0
  85. package/dist/types/api/types.d.ts.map +1 -0
  86. package/dist/types/builder/index.d.ts +2 -0
  87. package/dist/types/builder/index.d.ts.map +1 -0
  88. package/dist/types/builder/serialization/control-serialization.d.ts +144 -0
  89. package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -0
  90. package/dist/types/builder/serialization/function-serialization.d.ts +12 -0
  91. package/dist/types/builder/serialization/function-serialization.d.ts.map +1 -0
  92. package/dist/types/builder/serialization/index.d.ts +3 -0
  93. package/dist/types/builder/serialization/index.d.ts.map +1 -0
  94. package/dist/types/components/{Box → builtin/Box}/Box.d.ts +10 -4
  95. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -0
  96. package/dist/types/components/{Box → builtin/Box}/animations.d.ts +2 -2
  97. package/dist/types/components/builtin/Box/animations.d.ts.map +1 -0
  98. package/dist/types/components/{Box → builtin/Box}/components/Placeholder/index.d.ts +0 -0
  99. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -0
  100. package/dist/types/components/{Box → builtin/Box}/index.d.ts +1 -1
  101. package/dist/types/components/builtin/Box/index.d.ts.map +1 -0
  102. package/dist/types/components/builtin/Button/Button.d.ts +118 -0
  103. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -0
  104. package/dist/types/components/builtin/Button/index.d.ts +2 -0
  105. package/dist/types/components/builtin/Button/index.d.ts.map +1 -0
  106. package/dist/types/components/builtin/Carousel/Carousel.d.ts +28 -0
  107. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -0
  108. package/dist/types/components/builtin/Carousel/index.d.ts +2 -0
  109. package/dist/types/components/builtin/Carousel/index.d.ts.map +1 -0
  110. package/dist/types/components/builtin/Countdown/Countdown.d.ts +27 -0
  111. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -0
  112. package/dist/types/components/builtin/Countdown/index.d.ts +2 -0
  113. package/dist/types/components/builtin/Countdown/index.d.ts.map +1 -0
  114. package/dist/types/components/builtin/Divider/Divider.d.ts +17 -0
  115. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -0
  116. package/dist/types/components/builtin/Divider/index.d.ts +2 -0
  117. package/dist/types/components/builtin/Divider/index.d.ts.map +1 -0
  118. package/dist/types/components/builtin/Embed/Embed.d.ts +14 -0
  119. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -0
  120. package/dist/types/components/builtin/Embed/index.d.ts +2 -0
  121. package/dist/types/components/builtin/Embed/index.d.ts.map +1 -0
  122. package/dist/types/components/builtin/Form/Form.d.ts +41 -0
  123. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -0
  124. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +15 -0
  125. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -0
  126. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +15 -0
  127. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -0
  128. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +11 -0
  129. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -0
  130. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts +14 -0
  131. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -0
  132. package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts +16 -0
  133. package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -0
  134. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +10 -0
  135. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -0
  136. package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts +23 -0
  137. package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -0
  138. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +11 -0
  139. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -0
  140. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +11 -0
  141. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -0
  142. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +3 -0
  143. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -0
  144. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +17 -0
  145. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -0
  146. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +11 -0
  147. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -0
  148. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts +23 -0
  149. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -0
  150. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +19 -0
  151. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -0
  152. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts +24 -0
  153. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +1 -0
  154. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts +13 -0
  155. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -0
  156. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +11 -0
  157. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -0
  158. package/dist/types/components/builtin/Form/components/Field/index.d.ts +19 -0
  159. package/dist/types/components/builtin/Form/components/Field/index.d.ts.map +1 -0
  160. package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts +11 -0
  161. package/dist/types/components/builtin/Form/components/Field/services/cssField.d.ts.map +1 -0
  162. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts +9 -0
  163. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -0
  164. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts +3 -0
  165. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -0
  166. package/dist/types/components/builtin/Form/context/FormContext.d.ts +32 -0
  167. package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -0
  168. package/dist/types/components/builtin/Form/index.d.ts +2 -0
  169. package/dist/types/components/builtin/Form/index.d.ts.map +1 -0
  170. package/dist/types/components/builtin/Image/Image.d.ts +29 -0
  171. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -0
  172. package/dist/types/components/builtin/Image/index.d.ts +2 -0
  173. package/dist/types/components/builtin/Image/index.d.ts.map +1 -0
  174. package/dist/types/components/builtin/Navigation/Navigation.d.ts +26 -0
  175. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -0
  176. package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts +100 -0
  177. package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -0
  178. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +8 -0
  179. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -0
  180. package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +101 -0
  181. package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -0
  182. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +13 -0
  183. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -0
  184. package/dist/types/components/builtin/Navigation/index.d.ts +2 -0
  185. package/dist/types/components/builtin/Navigation/index.d.ts.map +1 -0
  186. package/dist/types/components/builtin/Root/Root.d.ts +14 -0
  187. package/dist/types/components/builtin/Root/Root.d.ts.map +1 -0
  188. package/dist/types/components/{Root → builtin/Root}/components/Placeholder/index.d.ts +0 -0
  189. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -0
  190. package/dist/types/components/builtin/Root/index.d.ts +2 -0
  191. package/dist/types/components/builtin/Root/index.d.ts.map +1 -0
  192. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +21 -0
  193. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -0
  194. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +8 -0
  195. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -0
  196. package/dist/types/components/builtin/SocialLinks/index.d.ts +2 -0
  197. package/dist/types/components/builtin/SocialLinks/index.d.ts.map +1 -0
  198. package/dist/types/components/builtin/SocialLinks/options.d.ts +113 -0
  199. package/dist/types/components/builtin/SocialLinks/options.d.ts.map +1 -0
  200. package/dist/types/components/builtin/Text/Text.d.ts +19 -0
  201. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -0
  202. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +24 -0
  203. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
  204. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +25 -0
  205. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  206. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +13 -0
  207. package/dist/types/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  208. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts +5 -0
  209. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
  210. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  211. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  212. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  213. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  214. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +3 -0
  215. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  216. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +3 -0
  217. package/dist/types/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
  218. package/dist/types/components/builtin/Text/index.d.ts +2 -0
  219. package/dist/types/components/builtin/Text/index.d.ts.map +1 -0
  220. package/dist/types/components/builtin/Video/Video.d.ts +15 -0
  221. package/dist/types/components/builtin/Video/Video.d.ts.map +1 -0
  222. package/dist/types/components/builtin/Video/index.d.ts +2 -0
  223. package/dist/types/components/builtin/Video/index.d.ts.map +1 -0
  224. package/dist/types/components/builtin/index.d.ts +16 -0
  225. package/dist/types/components/builtin/index.d.ts.map +1 -0
  226. package/dist/types/components/hooks/index.d.ts +7 -0
  227. package/dist/types/components/hooks/index.d.ts.map +1 -1
  228. package/dist/types/components/hooks/useBackgrounds.d.ts +59 -0
  229. package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -0
  230. package/dist/types/components/hooks/useBorder.d.ts +19 -0
  231. package/dist/types/components/hooks/useBorder.d.ts.map +1 -0
  232. package/dist/types/components/hooks/useBoxShadow.d.ts +19 -0
  233. package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -0
  234. package/dist/types/components/hooks/useColor.d.ts +7 -0
  235. package/dist/types/components/hooks/useColor.d.ts.map +1 -0
  236. package/dist/types/components/hooks/useFile.d.ts +13 -0
  237. package/dist/types/components/hooks/useFile.d.ts.map +1 -0
  238. package/dist/types/components/hooks/usePage.d.ts +7 -0
  239. package/dist/types/components/hooks/usePage.d.ts.map +1 -0
  240. package/dist/types/components/hooks/useTable.d.ts +66 -0
  241. package/dist/types/components/hooks/useTable.d.ts.map +1 -0
  242. package/dist/types/components/hooks/useTableFormFieldRefs.d.ts +8 -0
  243. package/dist/types/components/hooks/useTableFormFieldRefs.d.ts.map +1 -0
  244. package/dist/types/components/hooks/useTypography.d.ts +24 -0
  245. package/dist/types/components/hooks/useTypography.d.ts.map +1 -0
  246. package/dist/types/components/index.d.ts +4 -3
  247. package/dist/types/components/index.d.ts.map +1 -1
  248. package/dist/types/components/page/BodySnippet.d.ts +7 -0
  249. package/dist/types/components/page/BodySnippet.d.ts.map +1 -0
  250. package/dist/types/components/page/Page.d.ts +45 -0
  251. package/dist/types/components/page/Page.d.ts.map +1 -0
  252. package/dist/types/components/page/index.d.ts +2 -0
  253. package/dist/types/components/page/index.d.ts.map +1 -0
  254. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +11 -0
  255. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -0
  256. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +8 -0
  257. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -0
  258. package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts +11 -0
  259. package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -0
  260. package/dist/types/components/shared/BackgroundsContainer/index.d.ts +11 -0
  261. package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -0
  262. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts +7 -0
  263. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -0
  264. package/dist/types/components/shared/FallbackComponent/index.d.ts +2 -0
  265. package/dist/types/components/shared/FallbackComponent/index.d.ts.map +1 -0
  266. package/dist/types/components/shared/GutterContainer/index.d.ts +8 -0
  267. package/dist/types/components/shared/GutterContainer/index.d.ts.map +1 -0
  268. package/dist/types/components/shared/Link/index.d.ts +9 -0
  269. package/dist/types/components/shared/Link/index.d.ts.map +1 -0
  270. package/dist/types/components/utils/colorToString.d.ts +3 -0
  271. package/dist/types/components/utils/colorToString.d.ts.map +1 -0
  272. package/dist/types/components/utils/cssMediaRules.d.ts +23 -1
  273. package/dist/types/components/utils/cssMediaRules.d.ts.map +1 -1
  274. package/dist/types/components/utils/devices.d.ts +1 -0
  275. package/dist/types/components/utils/devices.d.ts.map +1 -1
  276. package/dist/types/components/utils/isNonNullable.d.ts +2 -0
  277. package/dist/types/components/utils/isNonNullable.d.ts.map +1 -0
  278. package/dist/types/components/utils/placeholders.d.ts +17 -0
  279. package/dist/types/components/utils/placeholders.d.ts.map +1 -0
  280. package/dist/types/components/utils/queries.d.ts +8 -0
  281. package/dist/types/components/utils/queries.d.ts.map +1 -0
  282. package/dist/types/components/utils/types.d.ts +10 -0
  283. package/dist/types/components/utils/types.d.ts.map +1 -0
  284. package/dist/types/controls.d.ts +4 -0
  285. package/dist/types/controls.d.ts.map +1 -0
  286. package/dist/types/index.d.ts +3 -1
  287. package/dist/types/index.d.ts.map +1 -1
  288. package/dist/types/next.d.ts +22 -0
  289. package/dist/types/next.d.ts.map +1 -0
  290. package/dist/types/prop-controllers/descriptors.d.ts +69 -14
  291. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  292. package/dist/types/prop-controllers/index.d.ts +3 -1
  293. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  294. package/dist/types/prop-controllers/instances.d.ts +101 -0
  295. package/dist/types/prop-controllers/instances.d.ts.map +1 -0
  296. package/dist/types/prop-controllers/introspection.d.ts +5 -0
  297. package/dist/types/prop-controllers/introspection.d.ts.map +1 -0
  298. package/dist/types/react.d.ts +1 -1
  299. package/dist/types/react.d.ts.map +1 -1
  300. package/dist/types/runtimes/react.d.ts +27 -12
  301. package/dist/types/runtimes/react.d.ts.map +1 -1
  302. package/dist/types/state/actions.d.ts +161 -13
  303. package/dist/types/state/actions.d.ts.map +1 -1
  304. package/dist/types/state/modules/box-models.d.ts +5 -5
  305. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  306. package/dist/types/state/modules/prop-controller-handles.d.ts +16 -0
  307. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -0
  308. package/dist/types/state/modules/prop-controllers.d.ts +1 -0
  309. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  310. package/dist/types/state/modules/read-only-documents.d.ts +8 -4
  311. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  312. package/dist/types/state/modules/read-write-documents.d.ts +1 -1
  313. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
  314. package/dist/types/state/react-builder-preview.d.ts +16 -11
  315. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  316. package/dist/types/state/react-page.d.ts +8 -3
  317. package/dist/types/state/react-page.d.ts.map +1 -1
  318. package/dist/types/utils/clamp.d.ts +3 -0
  319. package/dist/types/utils/clamp.d.ts.map +1 -0
  320. package/dist/types/utils/coalesce.d.ts +3 -0
  321. package/dist/types/utils/coalesce.d.ts.map +1 -0
  322. package/dist/types/utils/constants.d.ts +6 -0
  323. package/dist/types/utils/constants.d.ts.map +1 -0
  324. package/dist/types/utils/deepEqual.d.ts.map +1 -1
  325. package/dist/types/utils/intersection.d.ts +4 -0
  326. package/dist/types/utils/intersection.d.ts.map +1 -0
  327. package/dist/types/utils/keys.d.ts +5 -0
  328. package/dist/types/utils/keys.d.ts.map +1 -0
  329. package/dist/types/utils/shallowEqual.d.ts.map +1 -1
  330. package/dist/types/utils/shallowMerge.d.ts +2 -0
  331. package/dist/types/utils/shallowMerge.d.ts.map +1 -0
  332. package/next.js +1 -0
  333. package/package.json +73 -15
  334. package/prop-controllers.js +1 -0
  335. package/react.js +1 -0
  336. package/dist/types/components/Box/Box.d.ts.map +0 -1
  337. package/dist/types/components/Box/animations.d.ts.map +0 -1
  338. package/dist/types/components/Box/components/Placeholder/index.d.ts.map +0 -1
  339. package/dist/types/components/Box/index.d.ts.map +0 -1
  340. package/dist/types/components/Root/Root.d.ts +0 -11
  341. package/dist/types/components/Root/Root.d.ts.map +0 -1
  342. package/dist/types/components/Root/components/Placeholder/index.d.ts.map +0 -1
  343. package/dist/types/components/Root/index.d.ts +0 -2
  344. package/dist/types/components/Root/index.d.ts.map +0 -1
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
+ var descriptors = require("./descriptors.cjs.js");
22
+ function isSerializedFunction(value) {
23
+ return value instanceof MessagePort;
24
+ }
25
+ function serializeFunction(func) {
26
+ const messageChannel = new MessageChannel();
27
+ messageChannel.port1.onmessage = ({ data: [callId, args] }) => {
28
+ Promise.resolve().then(() => func.apply(null, args)).then((result) => messageChannel.port1.postMessage([callId, result]));
29
+ };
30
+ return messageChannel.port2;
31
+ }
32
+ function deserializeFunction(serializedFunction) {
33
+ let nextCallId = 0;
34
+ const calls = /* @__PURE__ */ new Map();
35
+ serializedFunction.onmessage = ({ data: [callId, result] }) => {
36
+ var _a;
37
+ (_a = calls.get(callId)) == null ? void 0 : _a(result);
38
+ calls.delete(callId);
39
+ };
40
+ return function deserializedFunction(...args) {
41
+ return new Promise((resolve) => {
42
+ const callId = nextCallId++;
43
+ calls.set(callId, resolve);
44
+ serializedFunction.postMessage([callId, args]);
45
+ });
46
+ };
47
+ }
48
+ function serializeShapeControl(control) {
49
+ const { type } = control.options;
50
+ const transferables = [];
51
+ const serializedType = {};
52
+ Object.entries(type).forEach(([key, control2]) => {
53
+ const [serializedControl, serializedControlTransferables] = serializeControl(control2);
54
+ serializedType[key] = serializedControl;
55
+ transferables.push(...serializedControlTransferables);
56
+ });
57
+ return [__spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { type: serializedType }) }), transferables];
58
+ }
59
+ function deserializeShapeControl(control) {
60
+ const { type } = control.options;
61
+ const deserializedType = {};
62
+ Object.entries(type).forEach(([key, control2]) => {
63
+ deserializedType[key] = deserializeControl(control2);
64
+ });
65
+ return __spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { type: deserializedType }) });
66
+ }
67
+ function serializeListControl(control) {
68
+ const { type, getItemLabel } = control.options;
69
+ const transferables = [];
70
+ const [serializedType, serializedTypeTransferables] = serializeControl(type);
71
+ const serializedGetItemLabel = getItemLabel && serializeFunction(getItemLabel);
72
+ transferables.push(...serializedTypeTransferables);
73
+ if (serializedGetItemLabel != null)
74
+ transferables.push(serializedGetItemLabel);
75
+ return [
76
+ __spreadProps(__spreadValues({}, control), {
77
+ options: __spreadProps(__spreadValues({}, control.options), {
78
+ type: serializedType,
79
+ getItemLabel: serializedGetItemLabel
80
+ })
81
+ }),
82
+ transferables
83
+ ];
84
+ }
85
+ function deserializeListControl(serializedControl) {
86
+ const { type, getItemLabel } = serializedControl.options;
87
+ const deserializedType = deserializeControl(type);
88
+ const deserializedGetItemLabel = getItemLabel && deserializeFunction(getItemLabel);
89
+ return __spreadProps(__spreadValues({}, serializedControl), {
90
+ options: __spreadProps(__spreadValues({}, serializedControl.options), {
91
+ type: deserializedType,
92
+ getItemLabel: deserializedGetItemLabel
93
+ })
94
+ });
95
+ }
96
+ function serializeTypeaheadControl(control) {
97
+ const { getItems } = control.options;
98
+ const serializedGetItems = getItems && serializeFunction(getItems);
99
+ return [
100
+ __spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { getItems: serializedGetItems }) }),
101
+ serializedGetItems == null ? [] : [serializedGetItems]
102
+ ];
103
+ }
104
+ function deserializeTypeaheadControl(serializedControl) {
105
+ const { getItems } = serializedControl.options;
106
+ const deserializedGetItems = getItems && deserializeFunction(getItems);
107
+ return __spreadProps(__spreadValues({}, serializedControl), {
108
+ options: __spreadProps(__spreadValues({}, serializedControl.options), { getItems: deserializedGetItems })
109
+ });
110
+ }
111
+ function serializeGapXControl(control) {
112
+ const { options } = control;
113
+ if (typeof options !== "function")
114
+ return [__spreadProps(__spreadValues({}, control), { options }), []];
115
+ const serializedOptions = serializeFunction(options);
116
+ return [__spreadProps(__spreadValues({}, control), { options: serializedOptions }), [serializedOptions]];
117
+ }
118
+ function deserializeGapXControl(serializedControl) {
119
+ const { options } = serializedControl;
120
+ if (!isSerializedFunction(options))
121
+ return __spreadProps(__spreadValues({}, serializedControl), { options });
122
+ const deserializedOptions = deserializeFunction(options);
123
+ return __spreadProps(__spreadValues({}, serializedControl), { options: deserializedOptions });
124
+ }
125
+ function serializeGapYControl(control) {
126
+ const { options } = control;
127
+ if (typeof options !== "function")
128
+ return [__spreadProps(__spreadValues({}, control), { options }), []];
129
+ const serializedOptions = serializeFunction(options);
130
+ return [__spreadProps(__spreadValues({}, control), { options: serializedOptions }), [serializedOptions]];
131
+ }
132
+ function deserializeGapYControl(serializedControl) {
133
+ const { options } = serializedControl;
134
+ if (!isSerializedFunction(options))
135
+ return __spreadProps(__spreadValues({}, serializedControl), { options });
136
+ const deserializedOptions = deserializeFunction(options);
137
+ return __spreadProps(__spreadValues({}, serializedControl), { options: deserializedOptions });
138
+ }
139
+ function serializeResponsiveNumberControl(control) {
140
+ const { options } = control;
141
+ if (typeof options !== "function")
142
+ return [__spreadProps(__spreadValues({}, control), { options }), []];
143
+ const serializedOptions = serializeFunction(options);
144
+ return [__spreadProps(__spreadValues({}, control), { options: serializedOptions }), [serializedOptions]];
145
+ }
146
+ function deserializeResponsiveNumberControl(serializedControl) {
147
+ const { options } = serializedControl;
148
+ if (!isSerializedFunction(options))
149
+ return __spreadProps(__spreadValues({}, serializedControl), { options });
150
+ const deserializedOptions = deserializeFunction(options);
151
+ return __spreadProps(__spreadValues({}, serializedControl), { options: deserializedOptions });
152
+ }
153
+ function serializeCheckboxControl(control) {
154
+ const { options } = control;
155
+ if (typeof options !== "function")
156
+ return [__spreadProps(__spreadValues({}, control), { options }), []];
157
+ const serializedOptions = serializeFunction(options);
158
+ return [__spreadProps(__spreadValues({}, control), { options: serializedOptions }), [serializedOptions]];
159
+ }
160
+ function deserializeCheckboxControl(serializedControl) {
161
+ const { options } = serializedControl;
162
+ if (!isSerializedFunction(options))
163
+ return __spreadProps(__spreadValues({}, serializedControl), { options });
164
+ const deserializedOptions = deserializeFunction(options);
165
+ return __spreadProps(__spreadValues({}, serializedControl), { options: deserializedOptions });
166
+ }
167
+ function serializeControl(control) {
168
+ switch (control.type) {
169
+ case descriptors.Types.Checkbox:
170
+ return serializeCheckboxControl(control);
171
+ case descriptors.Types.List:
172
+ return serializeListControl(control);
173
+ case descriptors.Types.Shape:
174
+ return serializeShapeControl(control);
175
+ case descriptors.Types.Typeahead:
176
+ return serializeTypeaheadControl(control);
177
+ case descriptors.Types.GapX:
178
+ return serializeGapXControl(control);
179
+ case descriptors.Types.GapY:
180
+ return serializeGapYControl(control);
181
+ case descriptors.Types.ResponsiveNumber:
182
+ return serializeResponsiveNumberControl(control);
183
+ default:
184
+ return [control, []];
185
+ }
186
+ }
187
+ function deserializeControl(serializedControl) {
188
+ switch (serializedControl.type) {
189
+ case descriptors.Types.Checkbox:
190
+ return deserializeCheckboxControl(serializedControl);
191
+ case descriptors.Types.List:
192
+ return deserializeListControl(serializedControl);
193
+ case descriptors.Types.Shape:
194
+ return deserializeShapeControl(serializedControl);
195
+ case descriptors.Types.Typeahead:
196
+ return deserializeTypeaheadControl(serializedControl);
197
+ case descriptors.Types.GapX:
198
+ return deserializeGapXControl(serializedControl);
199
+ case descriptors.Types.GapY:
200
+ return deserializeGapYControl(serializedControl);
201
+ case descriptors.Types.ResponsiveNumber:
202
+ return deserializeResponsiveNumberControl(serializedControl);
203
+ default:
204
+ return serializedControl;
205
+ }
206
+ }
207
+ function serializeControls(controls) {
208
+ return Object.entries(controls).reduce(([accControls, accTransferables], [key, control]) => {
209
+ const [serializedControl, transferables] = serializeControl(control);
210
+ return [__spreadProps(__spreadValues({}, accControls), { [key]: serializedControl }), [...accTransferables, ...transferables]];
211
+ }, [{}, []]);
212
+ }
213
+ function deserializeControls(serializedControls) {
214
+ return Object.entries(serializedControls).reduce((deserializedControls, [key, serializedControl]) => {
215
+ return __spreadProps(__spreadValues({}, deserializedControls), { [key]: deserializeControl(serializedControl) });
216
+ }, {});
217
+ }
218
+ exports.deserializeControls = deserializeControls;
219
+ exports.deserializeFunction = deserializeFunction;
220
+ exports.isSerializedFunction = isSerializedFunction;
221
+ exports.serializeControls = serializeControls;
222
+ exports.serializeFunction = serializeFunction;
223
+ //# sourceMappingURL=control-serialization.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-serialization.cjs.js","sources":["../src/builder/serialization/function-serialization.ts","../src/builder/serialization/control-serialization.ts"],"sourcesContent":["declare const SerializedFunctionTag: unique symbol\n\ntype AnyFunction = (...args: any) => any\n\nexport type SerializedFunction<T extends AnyFunction> = MessagePort & {\n readonly [SerializedFunctionTag]: T\n}\n\ntype SerializedFunctionReturnType<T extends AnyFunction> = Awaited<ReturnType<T>>\n\nexport type DeserializedFunction<T extends AnyFunction> = (\n ...args: Parameters<T>\n) => Promise<SerializedFunctionReturnType<T>>\n\nexport function isSerializedFunction(value: any): value is SerializedFunction<AnyFunction> {\n return value instanceof MessagePort\n}\n\ntype CallID = number\n\nexport function serializeFunction<T extends AnyFunction>(func: T): SerializedFunction<T> {\n type CallMessageEvent = MessageEvent<[CallID, Parameters<T>]>\n\n const messageChannel = new MessageChannel()\n\n messageChannel.port1.onmessage = ({ data: [callId, args] }: CallMessageEvent) => {\n Promise.resolve()\n .then(() => func.apply(null, args))\n .then(result => messageChannel.port1.postMessage([callId, result]))\n }\n\n return messageChannel.port2 as SerializedFunction<T>\n}\n\nexport function deserializeFunction<T extends AnyFunction>(\n serializedFunction: SerializedFunction<T>,\n): DeserializedFunction<T> {\n type Result = SerializedFunctionReturnType<T>\n type ResultMessageEvent = MessageEvent<[CallID, Result]>\n type ResolveCallPromise = (value: Result | PromiseLike<Result>) => void\n\n let nextCallId = 0\n const calls = new Map<CallID, ResolveCallPromise>()\n\n serializedFunction.onmessage = ({ data: [callId, result] }: ResultMessageEvent) => {\n calls.get(callId)?.(result)\n\n calls.delete(callId)\n }\n\n return function deserializedFunction(...args) {\n return new Promise(resolve => {\n const callId = nextCallId++\n\n calls.set(callId, resolve)\n\n serializedFunction.postMessage([callId, args])\n })\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('serializeFunction & deserializeFunction', () => {\n test('simple call', async () => {\n // Arrange\n const add = deserializeFunction(serializeFunction((a, b) => a + b))\n\n // Act\n const result = await add(2, 2)\n\n // Assert\n expect(result).toBe(4)\n })\n\n test('multiple synchronous calls', async () => {\n // Arrange\n const add = deserializeFunction(serializeFunction((a, b) => a + b))\n\n // Act\n const results = await Promise.all(Array.from({ length: 5 }, (_, i) => add(1, i)))\n\n // Assert\n expect(results).toEqual([1, 2, 3, 4, 5])\n })\n })\n\n describe.concurrent('isSerializedFunction', () => {\n test('trivial case', () => {\n // Arrange\n const add = serializeFunction((a, b) => a + b)\n\n // Act\n const result = isSerializedFunction(add)\n\n // Assert\n expect(result).toBe(true)\n })\n\n test('false positive', () => {\n // Arrange\n const add = (a: number, b: number) => a + b\n\n // Act\n const result = isSerializedFunction(add)\n\n // Assert\n expect(result).toBe(false)\n })\n })\n}\n","import {\n CheckboxDescriptor as CheckboxControl,\n CheckboxValue as CheckboxControlValue,\n Data,\n Device,\n Gap,\n GapXDescriptor as GapXControl,\n GapXValue as GapXControlValue,\n GapYDescriptor as GapYControl,\n GapYValue as GapYControlValue,\n ListDescriptor as ListControl,\n ListOptions as ListControlConfig,\n ListValue as ListControlValue,\n ResponsiveNumberDescriptor as ResponsiveNumberControl,\n ResponsiveNumberValue as ResponsiveNumberControlValue,\n ShapeDescriptor as ShapeControl,\n ShapeValue as ShapeControlValue,\n TypeaheadDescriptor as TypeaheadControl,\n TypeaheadOptions as TypeaheadControlConfig,\n TypeaheadValue as TypeaheadControlValue,\n PanelDescriptor as PanelControl,\n PanelDescriptorType as PanelControlType,\n PanelDescriptorValueType as PanelControlValueType,\n PropControllerDescriptor as Control,\n Props as Controls,\n} from '../../prop-controllers'\nimport {\n DeserializedFunction,\n deserializeFunction,\n isSerializedFunction,\n SerializedFunction,\n serializeFunction,\n} from './function-serialization'\n\ntype SerializedShapeControlConfig<T extends Record<string, SerializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: SerializedPanelControlValueType<T[K]> }\n}\n\ntype SerializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n> = {\n type: typeof Controls.Types.Shape\n options: SerializedShapeControlConfig<U>\n}\n\nfunction serializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, PanelControl>,\n>(\n control: ShapeControl<T, U>,\n): [\n SerializedShapeControl<\n T,\n { [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>> }\n >,\n Transferable[],\n] {\n const { type } = control.options\n const transferables: Transferable[] = []\n const serializedType = {} as {\n [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n const [serializedControl, serializedControlTransferables] = serializeControl(control)\n\n serializedType[key as keyof typeof type] = serializedControl as SerializedPanelControl\n transferables.push(...serializedControlTransferables)\n })\n\n // @ts-expect-error: preset types are incompatible\n return [{ ...control, options: { ...control.options, type: serializedType } }, transferables]\n}\n\ntype DeserializedShapeControlConfig<T extends Record<string, DeserializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: DeserializedPanelControlValueType<T[K]> }\n}\n\ntype DeserializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, DeserializedPanelControl>,\n> = {\n type: typeof Controls.Types.Shape\n options: DeserializedShapeControlConfig<U>\n}\n\nfunction deserializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n>(\n control: SerializedShapeControl<T, U>,\n): DeserializedShapeControl<\n T,\n { [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>> }\n> {\n const { type } = control.options\n const deserializedType = {} as {\n [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n deserializedType[key as keyof typeof type] = deserializeControl(\n control,\n ) as DeserializedPanelControl\n })\n\n // @ts-expect-error: preset types are incompatible\n return { ...control, options: { ...control.options, type: deserializedType } }\n}\n\ntype SerializedListControlConfig<T extends Data> = {\n type: SerializedPanelControl<T>\n label?: string\n getItemLabel?: SerializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype SerializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof Controls.Types.List\n options: SerializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction serializeListControl<T extends Data>(\n control: ListControl<ListControlValue<T>>,\n): [SerializedListControl<ListControlValue<T>>, Transferable[]] {\n const { type, getItemLabel } = control.options\n const transferables: Transferable[] = []\n\n const [serializedType, serializedTypeTransferables] = serializeControl(type)\n const serializedGetItemLabel = getItemLabel && serializeFunction(getItemLabel)\n\n transferables.push(...serializedTypeTransferables)\n if (serializedGetItemLabel != null) transferables.push(serializedGetItemLabel)\n\n return [\n {\n ...control,\n options: {\n ...control.options,\n type: serializedType as SerializedPanelControl,\n getItemLabel: serializedGetItemLabel,\n },\n },\n transferables,\n ]\n}\n\ntype DeserializedListControlConfig<T extends Data> = {\n type: DeserializedPanelControl<T>\n label?: string\n getItemLabel?: DeserializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype DeserializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof Controls.Types.List\n options: DeserializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction deserializeListControl<T extends Data>(\n serializedControl: SerializedListControl<ListControlValue<T>>,\n): DeserializedListControl<ListControlValue<T>> {\n const { type, getItemLabel } = serializedControl.options\n\n const deserializedType = deserializeControl(type) as DeserializedPanelControl\n const deserializedGetItemLabel = getItemLabel && deserializeFunction(getItemLabel)\n\n return {\n ...serializedControl,\n options: {\n ...serializedControl.options,\n type: deserializedType,\n getItemLabel: deserializedGetItemLabel,\n },\n }\n}\n\ntype SerializedTypeaheadControlConfig<T extends Data> = {\n getItems: SerializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype SerializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof Controls.Types.Typeahead\n options: SerializedTypeaheadControlConfig<T['value']>\n}\n\nfunction serializeTypeaheadControl<T extends Data>(\n control: TypeaheadControl<TypeaheadControlValue<T>>,\n): [SerializedTypeaheadControl<TypeaheadControlValue<T>>, Transferable[]] {\n const { getItems } = control.options\n\n const serializedGetItems = getItems && serializeFunction(getItems)\n\n return [\n { ...control, options: { ...control.options, getItems: serializedGetItems } },\n serializedGetItems == null ? [] : [serializedGetItems],\n ]\n}\n\ntype DeserializedTypeaheadControlConfig<T extends Data> = {\n getItems: DeserializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype DeserializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof Controls.Types.Typeahead\n options: DeserializedTypeaheadControlConfig<T['value']>\n}\n\nfunction deserializeTypeaheadControl<T extends Data>(\n serializedControl: SerializedTypeaheadControl<TypeaheadControlValue<T>>,\n): DeserializedTypeaheadControl<TypeaheadControlValue<T>> {\n const { getItems } = serializedControl.options\n\n const deserializedGetItems = getItems && deserializeFunction(getItems)\n\n return {\n ...serializedControl,\n options: { ...serializedControl.options, getItems: deserializedGetItems },\n }\n}\n\ntype SerializedConfig<T> =\n | T\n | SerializedFunction<(props: Record<string, unknown>, deviceMode: Device) => T>\n\ntype DeserializedConfig<T> =\n | T\n | DeserializedFunction<(props: Record<string, unknown>, deviceMode: Device) => T>\n\ntype GapXControlConfig = {\n preset?: GapXControlValue\n label?: string\n defaultValue?: Gap\n min?: number\n max?: number\n step?: number\n hidden?: boolean\n}\n\ntype SerializedGapXControl<_T = GapXControlValue> = {\n type: typeof Controls.Types.GapX\n options: SerializedConfig<GapXControlConfig>\n}\n\nfunction serializeGapXControl(control: GapXControl): [SerializedGapXControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedGapXControl<_T = GapXControlValue> = {\n type: typeof Controls.Types.GapX\n options: DeserializedConfig<GapXControlConfig>\n}\n\nfunction deserializeGapXControl(serializedControl: SerializedGapXControl): DeserializedGapXControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype GapYControlConfig = {\n preset?: GapYControlValue\n label?: string\n defaultValue?: Gap\n min?: number\n max?: number\n step?: number\n hidden?: boolean\n}\n\ntype SerializedGapYControl<_T = GapYControlValue> = {\n type: typeof Controls.Types.GapY\n options: SerializedConfig<GapYControlConfig>\n}\n\nfunction serializeGapYControl(control: GapYControl): [SerializedGapYControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedGapYControl<_T = GapYControlValue> = {\n type: typeof Controls.Types.GapY\n options: DeserializedConfig<GapYControlConfig>\n}\n\nfunction deserializeGapYControl(serializedControl: SerializedGapYControl): DeserializedGapYControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype ResponsiveNumberControlConfig = {\n preset?: ResponsiveNumberControlValue\n label?: string\n defaultValue?: number\n min?: number\n max?: number\n step?: number\n hidden?: boolean\n}\n\ntype SerializedResponsiveNumberControl<_T = ResponsiveNumberControlValue> = {\n type: typeof Controls.Types.ResponsiveNumber\n options: SerializedConfig<ResponsiveNumberControlConfig>\n}\n\nfunction serializeResponsiveNumberControl(\n control: ResponsiveNumberControl,\n): [SerializedResponsiveNumberControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedResponsiveNumberControl<_T = ResponsiveNumberControlValue> = {\n type: typeof Controls.Types.ResponsiveNumber\n options: DeserializedConfig<ResponsiveNumberControlConfig>\n}\n\nfunction deserializeResponsiveNumberControl(\n serializedControl: SerializedResponsiveNumberControl,\n): DeserializedResponsiveNumberControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype CheckboxControlConfig = {\n preset?: CheckboxControlValue\n label: string\n hidden?: boolean\n}\n\ntype SerializedCheckboxControl<_T = CheckboxControlValue> = {\n type: typeof Controls.Types.Checkbox\n options: SerializedConfig<CheckboxControlConfig>\n}\n\nfunction serializeCheckboxControl(\n control: CheckboxControl,\n): [SerializedCheckboxControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedCheckboxControl<_T = CheckboxControlValue> = {\n type: typeof Controls.Types.Checkbox\n options: DeserializedConfig<CheckboxControlConfig>\n}\n\nfunction deserializeCheckboxControl(\n serializedControl: SerializedCheckboxControl,\n): DeserializedCheckboxControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\nexport type SerializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | GapXControl<T>\n | GapYControl<T>\n | ResponsiveNumberControl<T>\n | CheckboxControl<T>\n >\n | SerializedListControl<T extends ListControlValue ? T : ListControlValue>\n | SerializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | SerializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | SerializedGapXControl<T>\n | SerializedGapYControl<T>\n | SerializedResponsiveNumberControl<T>\n | SerializedCheckboxControl<T>\n\ntype SerializedPanelControl<T extends Data = Data> = Extract<\n SerializedControl<T>,\n { type: PanelControlType }\n>\n\ntype SerializedPanelControlValueType<T extends SerializedPanelControl> =\n T extends SerializedPanelControl<infer U> ? U : never\n\nexport type DeserializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | GapXControl<T>\n | GapYControl<T>\n | ResponsiveNumberControl<T>\n | CheckboxControl<T>\n >\n | DeserializedListControl<T extends ListControlValue ? T : ListControlValue>\n | DeserializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | DeserializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | DeserializedGapXControl<T>\n | DeserializedGapYControl<T>\n | DeserializedResponsiveNumberControl<T>\n | DeserializedCheckboxControl<T>\n\nexport type DeserializedPanelControl<T extends Data = Data> = Extract<\n DeserializedControl<T>,\n { type: PanelControlType }\n>\n\ntype DeserializedPanelControlValueType<T extends DeserializedPanelControl> =\n T extends DeserializedPanelControl<infer U> ? U : never\n\nfunction serializeControl<T extends Data>(\n control: Control<T>,\n): [SerializedControl<T>, Transferable[]] {\n switch (control.type) {\n case Controls.Types.Checkbox:\n return serializeCheckboxControl(control)\n\n case Controls.Types.List:\n return serializeListControl(control)\n\n case Controls.Types.Shape:\n return serializeShapeControl(control)\n\n case Controls.Types.Typeahead:\n return serializeTypeaheadControl(control)\n\n case Controls.Types.GapX:\n return serializeGapXControl(control)\n\n case Controls.Types.GapY:\n return serializeGapYControl(control)\n\n case Controls.Types.ResponsiveNumber:\n return serializeResponsiveNumberControl(control)\n\n default:\n return [control, []]\n }\n}\n\nfunction deserializeControl<T extends Data>(\n serializedControl: SerializedControl<T>,\n): DeserializedControl<T> {\n switch (serializedControl.type) {\n case Controls.Types.Checkbox:\n return deserializeCheckboxControl(serializedControl)\n\n case Controls.Types.List:\n return deserializeListControl(serializedControl)\n\n case Controls.Types.Shape:\n return deserializeShapeControl(serializedControl)\n\n case Controls.Types.Typeahead:\n return deserializeTypeaheadControl(serializedControl)\n\n case Controls.Types.GapX:\n return deserializeGapXControl(serializedControl)\n\n case Controls.Types.GapY:\n return deserializeGapYControl(serializedControl)\n\n case Controls.Types.ResponsiveNumber:\n return deserializeResponsiveNumberControl(serializedControl)\n\n default:\n return serializedControl\n }\n}\n\nexport function serializeControls(\n controls: Record<string, Control>,\n): [Record<string, SerializedControl>, Transferable[]] {\n return Object.entries(controls).reduce(\n ([accControls, accTransferables], [key, control]) => {\n const [serializedControl, transferables] = serializeControl(control)\n\n return [{ ...accControls, [key]: serializedControl }, [...accTransferables, ...transferables]]\n },\n [{}, []] as [Record<string, SerializedControl>, Transferable[]],\n )\n}\n\nexport function deserializeControls(\n serializedControls: Record<string, SerializedControl>,\n): Record<string, DeserializedControl> {\n return Object.entries(serializedControls).reduce(\n (deserializedControls, [key, serializedControl]) => {\n return { ...deserializedControls, [key]: deserializeControl(serializedControl) }\n },\n {} as Record<string, DeserializedControl>,\n )\n}\n"],"names":["Controls.Types"],"mappings":"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"}
@@ -0,0 +1,218 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { T as Types } from "./descriptors.es.js";
21
+ function isSerializedFunction(value) {
22
+ return value instanceof MessagePort;
23
+ }
24
+ function serializeFunction(func) {
25
+ const messageChannel = new MessageChannel();
26
+ messageChannel.port1.onmessage = ({ data: [callId, args] }) => {
27
+ Promise.resolve().then(() => func.apply(null, args)).then((result) => messageChannel.port1.postMessage([callId, result]));
28
+ };
29
+ return messageChannel.port2;
30
+ }
31
+ function deserializeFunction(serializedFunction) {
32
+ let nextCallId = 0;
33
+ const calls = /* @__PURE__ */ new Map();
34
+ serializedFunction.onmessage = ({ data: [callId, result] }) => {
35
+ var _a;
36
+ (_a = calls.get(callId)) == null ? void 0 : _a(result);
37
+ calls.delete(callId);
38
+ };
39
+ return function deserializedFunction(...args) {
40
+ return new Promise((resolve) => {
41
+ const callId = nextCallId++;
42
+ calls.set(callId, resolve);
43
+ serializedFunction.postMessage([callId, args]);
44
+ });
45
+ };
46
+ }
47
+ function serializeShapeControl(control) {
48
+ const { type } = control.options;
49
+ const transferables = [];
50
+ const serializedType = {};
51
+ Object.entries(type).forEach(([key, control2]) => {
52
+ const [serializedControl, serializedControlTransferables] = serializeControl(control2);
53
+ serializedType[key] = serializedControl;
54
+ transferables.push(...serializedControlTransferables);
55
+ });
56
+ return [__spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { type: serializedType }) }), transferables];
57
+ }
58
+ function deserializeShapeControl(control) {
59
+ const { type } = control.options;
60
+ const deserializedType = {};
61
+ Object.entries(type).forEach(([key, control2]) => {
62
+ deserializedType[key] = deserializeControl(control2);
63
+ });
64
+ return __spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { type: deserializedType }) });
65
+ }
66
+ function serializeListControl(control) {
67
+ const { type, getItemLabel } = control.options;
68
+ const transferables = [];
69
+ const [serializedType, serializedTypeTransferables] = serializeControl(type);
70
+ const serializedGetItemLabel = getItemLabel && serializeFunction(getItemLabel);
71
+ transferables.push(...serializedTypeTransferables);
72
+ if (serializedGetItemLabel != null)
73
+ transferables.push(serializedGetItemLabel);
74
+ return [
75
+ __spreadProps(__spreadValues({}, control), {
76
+ options: __spreadProps(__spreadValues({}, control.options), {
77
+ type: serializedType,
78
+ getItemLabel: serializedGetItemLabel
79
+ })
80
+ }),
81
+ transferables
82
+ ];
83
+ }
84
+ function deserializeListControl(serializedControl) {
85
+ const { type, getItemLabel } = serializedControl.options;
86
+ const deserializedType = deserializeControl(type);
87
+ const deserializedGetItemLabel = getItemLabel && deserializeFunction(getItemLabel);
88
+ return __spreadProps(__spreadValues({}, serializedControl), {
89
+ options: __spreadProps(__spreadValues({}, serializedControl.options), {
90
+ type: deserializedType,
91
+ getItemLabel: deserializedGetItemLabel
92
+ })
93
+ });
94
+ }
95
+ function serializeTypeaheadControl(control) {
96
+ const { getItems } = control.options;
97
+ const serializedGetItems = getItems && serializeFunction(getItems);
98
+ return [
99
+ __spreadProps(__spreadValues({}, control), { options: __spreadProps(__spreadValues({}, control.options), { getItems: serializedGetItems }) }),
100
+ serializedGetItems == null ? [] : [serializedGetItems]
101
+ ];
102
+ }
103
+ function deserializeTypeaheadControl(serializedControl) {
104
+ const { getItems } = serializedControl.options;
105
+ const deserializedGetItems = getItems && deserializeFunction(getItems);
106
+ return __spreadProps(__spreadValues({}, serializedControl), {
107
+ options: __spreadProps(__spreadValues({}, serializedControl.options), { getItems: deserializedGetItems })
108
+ });
109
+ }
110
+ function serializeGapXControl(control) {
111
+ const { options } = control;
112
+ if (typeof options !== "function")
113
+ return [__spreadProps(__spreadValues({}, control), { options }), []];
114
+ const serializedOptions = serializeFunction(options);
115
+ return [__spreadProps(__spreadValues({}, control), { options: serializedOptions }), [serializedOptions]];
116
+ }
117
+ function deserializeGapXControl(serializedControl) {
118
+ const { options } = serializedControl;
119
+ if (!isSerializedFunction(options))
120
+ return __spreadProps(__spreadValues({}, serializedControl), { options });
121
+ const deserializedOptions = deserializeFunction(options);
122
+ return __spreadProps(__spreadValues({}, serializedControl), { options: deserializedOptions });
123
+ }
124
+ function serializeGapYControl(control) {
125
+ const { options } = control;
126
+ if (typeof options !== "function")
127
+ return [__spreadProps(__spreadValues({}, control), { options }), []];
128
+ const serializedOptions = serializeFunction(options);
129
+ return [__spreadProps(__spreadValues({}, control), { options: serializedOptions }), [serializedOptions]];
130
+ }
131
+ function deserializeGapYControl(serializedControl) {
132
+ const { options } = serializedControl;
133
+ if (!isSerializedFunction(options))
134
+ return __spreadProps(__spreadValues({}, serializedControl), { options });
135
+ const deserializedOptions = deserializeFunction(options);
136
+ return __spreadProps(__spreadValues({}, serializedControl), { options: deserializedOptions });
137
+ }
138
+ function serializeResponsiveNumberControl(control) {
139
+ const { options } = control;
140
+ if (typeof options !== "function")
141
+ return [__spreadProps(__spreadValues({}, control), { options }), []];
142
+ const serializedOptions = serializeFunction(options);
143
+ return [__spreadProps(__spreadValues({}, control), { options: serializedOptions }), [serializedOptions]];
144
+ }
145
+ function deserializeResponsiveNumberControl(serializedControl) {
146
+ const { options } = serializedControl;
147
+ if (!isSerializedFunction(options))
148
+ return __spreadProps(__spreadValues({}, serializedControl), { options });
149
+ const deserializedOptions = deserializeFunction(options);
150
+ return __spreadProps(__spreadValues({}, serializedControl), { options: deserializedOptions });
151
+ }
152
+ function serializeCheckboxControl(control) {
153
+ const { options } = control;
154
+ if (typeof options !== "function")
155
+ return [__spreadProps(__spreadValues({}, control), { options }), []];
156
+ const serializedOptions = serializeFunction(options);
157
+ return [__spreadProps(__spreadValues({}, control), { options: serializedOptions }), [serializedOptions]];
158
+ }
159
+ function deserializeCheckboxControl(serializedControl) {
160
+ const { options } = serializedControl;
161
+ if (!isSerializedFunction(options))
162
+ return __spreadProps(__spreadValues({}, serializedControl), { options });
163
+ const deserializedOptions = deserializeFunction(options);
164
+ return __spreadProps(__spreadValues({}, serializedControl), { options: deserializedOptions });
165
+ }
166
+ function serializeControl(control) {
167
+ switch (control.type) {
168
+ case Types.Checkbox:
169
+ return serializeCheckboxControl(control);
170
+ case Types.List:
171
+ return serializeListControl(control);
172
+ case Types.Shape:
173
+ return serializeShapeControl(control);
174
+ case Types.Typeahead:
175
+ return serializeTypeaheadControl(control);
176
+ case Types.GapX:
177
+ return serializeGapXControl(control);
178
+ case Types.GapY:
179
+ return serializeGapYControl(control);
180
+ case Types.ResponsiveNumber:
181
+ return serializeResponsiveNumberControl(control);
182
+ default:
183
+ return [control, []];
184
+ }
185
+ }
186
+ function deserializeControl(serializedControl) {
187
+ switch (serializedControl.type) {
188
+ case Types.Checkbox:
189
+ return deserializeCheckboxControl(serializedControl);
190
+ case Types.List:
191
+ return deserializeListControl(serializedControl);
192
+ case Types.Shape:
193
+ return deserializeShapeControl(serializedControl);
194
+ case Types.Typeahead:
195
+ return deserializeTypeaheadControl(serializedControl);
196
+ case Types.GapX:
197
+ return deserializeGapXControl(serializedControl);
198
+ case Types.GapY:
199
+ return deserializeGapYControl(serializedControl);
200
+ case Types.ResponsiveNumber:
201
+ return deserializeResponsiveNumberControl(serializedControl);
202
+ default:
203
+ return serializedControl;
204
+ }
205
+ }
206
+ function serializeControls(controls) {
207
+ return Object.entries(controls).reduce(([accControls, accTransferables], [key, control]) => {
208
+ const [serializedControl, transferables] = serializeControl(control);
209
+ return [__spreadProps(__spreadValues({}, accControls), { [key]: serializedControl }), [...accTransferables, ...transferables]];
210
+ }, [{}, []]);
211
+ }
212
+ function deserializeControls(serializedControls) {
213
+ return Object.entries(serializedControls).reduce((deserializedControls, [key, serializedControl]) => {
214
+ return __spreadProps(__spreadValues({}, deserializedControls), { [key]: deserializeControl(serializedControl) });
215
+ }, {});
216
+ }
217
+ export { serializeFunction as a, deserializeFunction as b, deserializeControls as d, isSerializedFunction as i, serializeControls as s };
218
+ //# sourceMappingURL=control-serialization.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-serialization.es.js","sources":["../src/builder/serialization/function-serialization.ts","../src/builder/serialization/control-serialization.ts"],"sourcesContent":["declare const SerializedFunctionTag: unique symbol\n\ntype AnyFunction = (...args: any) => any\n\nexport type SerializedFunction<T extends AnyFunction> = MessagePort & {\n readonly [SerializedFunctionTag]: T\n}\n\ntype SerializedFunctionReturnType<T extends AnyFunction> = Awaited<ReturnType<T>>\n\nexport type DeserializedFunction<T extends AnyFunction> = (\n ...args: Parameters<T>\n) => Promise<SerializedFunctionReturnType<T>>\n\nexport function isSerializedFunction(value: any): value is SerializedFunction<AnyFunction> {\n return value instanceof MessagePort\n}\n\ntype CallID = number\n\nexport function serializeFunction<T extends AnyFunction>(func: T): SerializedFunction<T> {\n type CallMessageEvent = MessageEvent<[CallID, Parameters<T>]>\n\n const messageChannel = new MessageChannel()\n\n messageChannel.port1.onmessage = ({ data: [callId, args] }: CallMessageEvent) => {\n Promise.resolve()\n .then(() => func.apply(null, args))\n .then(result => messageChannel.port1.postMessage([callId, result]))\n }\n\n return messageChannel.port2 as SerializedFunction<T>\n}\n\nexport function deserializeFunction<T extends AnyFunction>(\n serializedFunction: SerializedFunction<T>,\n): DeserializedFunction<T> {\n type Result = SerializedFunctionReturnType<T>\n type ResultMessageEvent = MessageEvent<[CallID, Result]>\n type ResolveCallPromise = (value: Result | PromiseLike<Result>) => void\n\n let nextCallId = 0\n const calls = new Map<CallID, ResolveCallPromise>()\n\n serializedFunction.onmessage = ({ data: [callId, result] }: ResultMessageEvent) => {\n calls.get(callId)?.(result)\n\n calls.delete(callId)\n }\n\n return function deserializedFunction(...args) {\n return new Promise(resolve => {\n const callId = nextCallId++\n\n calls.set(callId, resolve)\n\n serializedFunction.postMessage([callId, args])\n })\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('serializeFunction & deserializeFunction', () => {\n test('simple call', async () => {\n // Arrange\n const add = deserializeFunction(serializeFunction((a, b) => a + b))\n\n // Act\n const result = await add(2, 2)\n\n // Assert\n expect(result).toBe(4)\n })\n\n test('multiple synchronous calls', async () => {\n // Arrange\n const add = deserializeFunction(serializeFunction((a, b) => a + b))\n\n // Act\n const results = await Promise.all(Array.from({ length: 5 }, (_, i) => add(1, i)))\n\n // Assert\n expect(results).toEqual([1, 2, 3, 4, 5])\n })\n })\n\n describe.concurrent('isSerializedFunction', () => {\n test('trivial case', () => {\n // Arrange\n const add = serializeFunction((a, b) => a + b)\n\n // Act\n const result = isSerializedFunction(add)\n\n // Assert\n expect(result).toBe(true)\n })\n\n test('false positive', () => {\n // Arrange\n const add = (a: number, b: number) => a + b\n\n // Act\n const result = isSerializedFunction(add)\n\n // Assert\n expect(result).toBe(false)\n })\n })\n}\n","import {\n CheckboxDescriptor as CheckboxControl,\n CheckboxValue as CheckboxControlValue,\n Data,\n Device,\n Gap,\n GapXDescriptor as GapXControl,\n GapXValue as GapXControlValue,\n GapYDescriptor as GapYControl,\n GapYValue as GapYControlValue,\n ListDescriptor as ListControl,\n ListOptions as ListControlConfig,\n ListValue as ListControlValue,\n ResponsiveNumberDescriptor as ResponsiveNumberControl,\n ResponsiveNumberValue as ResponsiveNumberControlValue,\n ShapeDescriptor as ShapeControl,\n ShapeValue as ShapeControlValue,\n TypeaheadDescriptor as TypeaheadControl,\n TypeaheadOptions as TypeaheadControlConfig,\n TypeaheadValue as TypeaheadControlValue,\n PanelDescriptor as PanelControl,\n PanelDescriptorType as PanelControlType,\n PanelDescriptorValueType as PanelControlValueType,\n PropControllerDescriptor as Control,\n Props as Controls,\n} from '../../prop-controllers'\nimport {\n DeserializedFunction,\n deserializeFunction,\n isSerializedFunction,\n SerializedFunction,\n serializeFunction,\n} from './function-serialization'\n\ntype SerializedShapeControlConfig<T extends Record<string, SerializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: SerializedPanelControlValueType<T[K]> }\n}\n\ntype SerializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n> = {\n type: typeof Controls.Types.Shape\n options: SerializedShapeControlConfig<U>\n}\n\nfunction serializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, PanelControl>,\n>(\n control: ShapeControl<T, U>,\n): [\n SerializedShapeControl<\n T,\n { [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>> }\n >,\n Transferable[],\n] {\n const { type } = control.options\n const transferables: Transferable[] = []\n const serializedType = {} as {\n [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n const [serializedControl, serializedControlTransferables] = serializeControl(control)\n\n serializedType[key as keyof typeof type] = serializedControl as SerializedPanelControl\n transferables.push(...serializedControlTransferables)\n })\n\n // @ts-expect-error: preset types are incompatible\n return [{ ...control, options: { ...control.options, type: serializedType } }, transferables]\n}\n\ntype DeserializedShapeControlConfig<T extends Record<string, DeserializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: DeserializedPanelControlValueType<T[K]> }\n}\n\ntype DeserializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, DeserializedPanelControl>,\n> = {\n type: typeof Controls.Types.Shape\n options: DeserializedShapeControlConfig<U>\n}\n\nfunction deserializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n>(\n control: SerializedShapeControl<T, U>,\n): DeserializedShapeControl<\n T,\n { [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>> }\n> {\n const { type } = control.options\n const deserializedType = {} as {\n [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n deserializedType[key as keyof typeof type] = deserializeControl(\n control,\n ) as DeserializedPanelControl\n })\n\n // @ts-expect-error: preset types are incompatible\n return { ...control, options: { ...control.options, type: deserializedType } }\n}\n\ntype SerializedListControlConfig<T extends Data> = {\n type: SerializedPanelControl<T>\n label?: string\n getItemLabel?: SerializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype SerializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof Controls.Types.List\n options: SerializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction serializeListControl<T extends Data>(\n control: ListControl<ListControlValue<T>>,\n): [SerializedListControl<ListControlValue<T>>, Transferable[]] {\n const { type, getItemLabel } = control.options\n const transferables: Transferable[] = []\n\n const [serializedType, serializedTypeTransferables] = serializeControl(type)\n const serializedGetItemLabel = getItemLabel && serializeFunction(getItemLabel)\n\n transferables.push(...serializedTypeTransferables)\n if (serializedGetItemLabel != null) transferables.push(serializedGetItemLabel)\n\n return [\n {\n ...control,\n options: {\n ...control.options,\n type: serializedType as SerializedPanelControl,\n getItemLabel: serializedGetItemLabel,\n },\n },\n transferables,\n ]\n}\n\ntype DeserializedListControlConfig<T extends Data> = {\n type: DeserializedPanelControl<T>\n label?: string\n getItemLabel?: DeserializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype DeserializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof Controls.Types.List\n options: DeserializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction deserializeListControl<T extends Data>(\n serializedControl: SerializedListControl<ListControlValue<T>>,\n): DeserializedListControl<ListControlValue<T>> {\n const { type, getItemLabel } = serializedControl.options\n\n const deserializedType = deserializeControl(type) as DeserializedPanelControl\n const deserializedGetItemLabel = getItemLabel && deserializeFunction(getItemLabel)\n\n return {\n ...serializedControl,\n options: {\n ...serializedControl.options,\n type: deserializedType,\n getItemLabel: deserializedGetItemLabel,\n },\n }\n}\n\ntype SerializedTypeaheadControlConfig<T extends Data> = {\n getItems: SerializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype SerializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof Controls.Types.Typeahead\n options: SerializedTypeaheadControlConfig<T['value']>\n}\n\nfunction serializeTypeaheadControl<T extends Data>(\n control: TypeaheadControl<TypeaheadControlValue<T>>,\n): [SerializedTypeaheadControl<TypeaheadControlValue<T>>, Transferable[]] {\n const { getItems } = control.options\n\n const serializedGetItems = getItems && serializeFunction(getItems)\n\n return [\n { ...control, options: { ...control.options, getItems: serializedGetItems } },\n serializedGetItems == null ? [] : [serializedGetItems],\n ]\n}\n\ntype DeserializedTypeaheadControlConfig<T extends Data> = {\n getItems: DeserializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype DeserializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof Controls.Types.Typeahead\n options: DeserializedTypeaheadControlConfig<T['value']>\n}\n\nfunction deserializeTypeaheadControl<T extends Data>(\n serializedControl: SerializedTypeaheadControl<TypeaheadControlValue<T>>,\n): DeserializedTypeaheadControl<TypeaheadControlValue<T>> {\n const { getItems } = serializedControl.options\n\n const deserializedGetItems = getItems && deserializeFunction(getItems)\n\n return {\n ...serializedControl,\n options: { ...serializedControl.options, getItems: deserializedGetItems },\n }\n}\n\ntype SerializedConfig<T> =\n | T\n | SerializedFunction<(props: Record<string, unknown>, deviceMode: Device) => T>\n\ntype DeserializedConfig<T> =\n | T\n | DeserializedFunction<(props: Record<string, unknown>, deviceMode: Device) => T>\n\ntype GapXControlConfig = {\n preset?: GapXControlValue\n label?: string\n defaultValue?: Gap\n min?: number\n max?: number\n step?: number\n hidden?: boolean\n}\n\ntype SerializedGapXControl<_T = GapXControlValue> = {\n type: typeof Controls.Types.GapX\n options: SerializedConfig<GapXControlConfig>\n}\n\nfunction serializeGapXControl(control: GapXControl): [SerializedGapXControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedGapXControl<_T = GapXControlValue> = {\n type: typeof Controls.Types.GapX\n options: DeserializedConfig<GapXControlConfig>\n}\n\nfunction deserializeGapXControl(serializedControl: SerializedGapXControl): DeserializedGapXControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype GapYControlConfig = {\n preset?: GapYControlValue\n label?: string\n defaultValue?: Gap\n min?: number\n max?: number\n step?: number\n hidden?: boolean\n}\n\ntype SerializedGapYControl<_T = GapYControlValue> = {\n type: typeof Controls.Types.GapY\n options: SerializedConfig<GapYControlConfig>\n}\n\nfunction serializeGapYControl(control: GapYControl): [SerializedGapYControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedGapYControl<_T = GapYControlValue> = {\n type: typeof Controls.Types.GapY\n options: DeserializedConfig<GapYControlConfig>\n}\n\nfunction deserializeGapYControl(serializedControl: SerializedGapYControl): DeserializedGapYControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype ResponsiveNumberControlConfig = {\n preset?: ResponsiveNumberControlValue\n label?: string\n defaultValue?: number\n min?: number\n max?: number\n step?: number\n hidden?: boolean\n}\n\ntype SerializedResponsiveNumberControl<_T = ResponsiveNumberControlValue> = {\n type: typeof Controls.Types.ResponsiveNumber\n options: SerializedConfig<ResponsiveNumberControlConfig>\n}\n\nfunction serializeResponsiveNumberControl(\n control: ResponsiveNumberControl,\n): [SerializedResponsiveNumberControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedResponsiveNumberControl<_T = ResponsiveNumberControlValue> = {\n type: typeof Controls.Types.ResponsiveNumber\n options: DeserializedConfig<ResponsiveNumberControlConfig>\n}\n\nfunction deserializeResponsiveNumberControl(\n serializedControl: SerializedResponsiveNumberControl,\n): DeserializedResponsiveNumberControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype CheckboxControlConfig = {\n preset?: CheckboxControlValue\n label: string\n hidden?: boolean\n}\n\ntype SerializedCheckboxControl<_T = CheckboxControlValue> = {\n type: typeof Controls.Types.Checkbox\n options: SerializedConfig<CheckboxControlConfig>\n}\n\nfunction serializeCheckboxControl(\n control: CheckboxControl,\n): [SerializedCheckboxControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedCheckboxControl<_T = CheckboxControlValue> = {\n type: typeof Controls.Types.Checkbox\n options: DeserializedConfig<CheckboxControlConfig>\n}\n\nfunction deserializeCheckboxControl(\n serializedControl: SerializedCheckboxControl,\n): DeserializedCheckboxControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\nexport type SerializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | GapXControl<T>\n | GapYControl<T>\n | ResponsiveNumberControl<T>\n | CheckboxControl<T>\n >\n | SerializedListControl<T extends ListControlValue ? T : ListControlValue>\n | SerializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | SerializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | SerializedGapXControl<T>\n | SerializedGapYControl<T>\n | SerializedResponsiveNumberControl<T>\n | SerializedCheckboxControl<T>\n\ntype SerializedPanelControl<T extends Data = Data> = Extract<\n SerializedControl<T>,\n { type: PanelControlType }\n>\n\ntype SerializedPanelControlValueType<T extends SerializedPanelControl> =\n T extends SerializedPanelControl<infer U> ? U : never\n\nexport type DeserializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | GapXControl<T>\n | GapYControl<T>\n | ResponsiveNumberControl<T>\n | CheckboxControl<T>\n >\n | DeserializedListControl<T extends ListControlValue ? T : ListControlValue>\n | DeserializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | DeserializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | DeserializedGapXControl<T>\n | DeserializedGapYControl<T>\n | DeserializedResponsiveNumberControl<T>\n | DeserializedCheckboxControl<T>\n\nexport type DeserializedPanelControl<T extends Data = Data> = Extract<\n DeserializedControl<T>,\n { type: PanelControlType }\n>\n\ntype DeserializedPanelControlValueType<T extends DeserializedPanelControl> =\n T extends DeserializedPanelControl<infer U> ? U : never\n\nfunction serializeControl<T extends Data>(\n control: Control<T>,\n): [SerializedControl<T>, Transferable[]] {\n switch (control.type) {\n case Controls.Types.Checkbox:\n return serializeCheckboxControl(control)\n\n case Controls.Types.List:\n return serializeListControl(control)\n\n case Controls.Types.Shape:\n return serializeShapeControl(control)\n\n case Controls.Types.Typeahead:\n return serializeTypeaheadControl(control)\n\n case Controls.Types.GapX:\n return serializeGapXControl(control)\n\n case Controls.Types.GapY:\n return serializeGapYControl(control)\n\n case Controls.Types.ResponsiveNumber:\n return serializeResponsiveNumberControl(control)\n\n default:\n return [control, []]\n }\n}\n\nfunction deserializeControl<T extends Data>(\n serializedControl: SerializedControl<T>,\n): DeserializedControl<T> {\n switch (serializedControl.type) {\n case Controls.Types.Checkbox:\n return deserializeCheckboxControl(serializedControl)\n\n case Controls.Types.List:\n return deserializeListControl(serializedControl)\n\n case Controls.Types.Shape:\n return deserializeShapeControl(serializedControl)\n\n case Controls.Types.Typeahead:\n return deserializeTypeaheadControl(serializedControl)\n\n case Controls.Types.GapX:\n return deserializeGapXControl(serializedControl)\n\n case Controls.Types.GapY:\n return deserializeGapYControl(serializedControl)\n\n case Controls.Types.ResponsiveNumber:\n return deserializeResponsiveNumberControl(serializedControl)\n\n default:\n return serializedControl\n }\n}\n\nexport function serializeControls(\n controls: Record<string, Control>,\n): [Record<string, SerializedControl>, Transferable[]] {\n return Object.entries(controls).reduce(\n ([accControls, accTransferables], [key, control]) => {\n const [serializedControl, transferables] = serializeControl(control)\n\n return [{ ...accControls, [key]: serializedControl }, [...accTransferables, ...transferables]]\n },\n [{}, []] as [Record<string, SerializedControl>, Transferable[]],\n )\n}\n\nexport function deserializeControls(\n serializedControls: Record<string, SerializedControl>,\n): Record<string, DeserializedControl> {\n return Object.entries(serializedControls).reduce(\n (deserializedControls, [key, serializedControl]) => {\n return { ...deserializedControls, [key]: deserializeControl(serializedControl) }\n },\n {} as Record<string, DeserializedControl>,\n )\n}\n"],"names":["Controls.Types"],"mappings":"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"}