@makeswift/runtime 0.19.4 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (884) hide show
  1. package/builder/rich-text/package.json +5 -0
  2. package/core/package.json +5 -0
  3. package/dist/cjs/api/graphql/generated/types.js.map +1 -1
  4. package/dist/cjs/api/react.js.map +1 -1
  5. package/dist/cjs/{prop-controllers/base.js → builder/rich-text/index.js} +7 -12
  6. package/dist/cjs/builder/rich-text/index.js.map +1 -0
  7. package/dist/cjs/builder/serialization/control-serialization.js +51 -27
  8. package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
  9. package/dist/cjs/components/builtin/Button/Button.js.map +1 -1
  10. package/dist/cjs/components/builtin/Carousel/Carousel.js +2 -2
  11. package/dist/cjs/components/builtin/Carousel/Carousel.js.map +1 -1
  12. package/dist/cjs/components/builtin/Countdown/Countdown.js.map +1 -1
  13. package/dist/cjs/components/builtin/Divider/Divider.js.map +1 -1
  14. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  15. package/dist/cjs/components/builtin/Form/context/FormContext.js.map +1 -1
  16. package/dist/cjs/components/builtin/Image/Image.js +2 -2
  17. package/dist/cjs/components/builtin/Image/Image.js.map +1 -1
  18. package/dist/cjs/components/builtin/Navigation/Navigation.js.map +1 -1
  19. package/dist/cjs/components/builtin/Navigation/components/MobileMenu/index.js.map +1 -1
  20. package/dist/cjs/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
  21. package/dist/cjs/components/builtin/Text/register.js.map +1 -1
  22. package/dist/cjs/components/builtin/register.js.map +1 -1
  23. package/dist/cjs/components/hooks/useMediaQuery.js +2 -2
  24. package/dist/cjs/components/hooks/useMediaQuery.js.map +1 -1
  25. package/dist/cjs/components/hooks/useResponsiveColor.js +1 -1
  26. package/dist/cjs/components/hooks/useResponsiveColor.js.map +1 -1
  27. package/dist/cjs/components/shared/Link/index.js +2 -2
  28. package/dist/cjs/components/shared/Link/index.js.map +1 -1
  29. package/dist/cjs/components/utils/responsive-style.js +9 -9
  30. package/dist/cjs/components/utils/responsive-style.js.map +1 -1
  31. package/dist/cjs/components/utils/types.js.map +1 -1
  32. package/dist/cjs/controls/control.js +14 -78
  33. package/dist/cjs/controls/control.js.map +1 -1
  34. package/dist/cjs/controls/index.js +99 -21
  35. package/dist/cjs/controls/index.js.map +1 -1
  36. package/dist/cjs/controls/{image.js → link.js} +20 -11
  37. package/dist/cjs/controls/link.js.map +1 -0
  38. package/dist/cjs/controls/rich-text/control.js +97 -0
  39. package/dist/cjs/controls/rich-text/control.js.map +1 -0
  40. package/dist/cjs/controls/rich-text/index.js +1 -7
  41. package/dist/cjs/controls/rich-text/index.js.map +1 -1
  42. package/dist/cjs/controls/rich-text/rich-text.js +16 -69
  43. package/dist/cjs/controls/rich-text/rich-text.js.map +1 -1
  44. package/dist/cjs/controls/rich-text-v2/control.js +138 -0
  45. package/dist/cjs/controls/rich-text-v2/control.js.map +1 -0
  46. package/dist/cjs/controls/rich-text-v2/index.js +1 -5
  47. package/dist/cjs/controls/rich-text-v2/index.js.map +1 -1
  48. package/dist/cjs/controls/rich-text-v2/plugin.js +3 -3
  49. package/dist/cjs/controls/rich-text-v2/plugin.js.map +1 -1
  50. package/dist/cjs/controls/rich-text-v2/rich-text-v2.js +105 -121
  51. package/dist/cjs/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  52. package/dist/cjs/controls/rich-text-v2/translation.js +35 -48
  53. package/dist/cjs/controls/rich-text-v2/translation.js.map +1 -1
  54. package/dist/cjs/controls/slot.js +13 -59
  55. package/dist/cjs/controls/slot.js.map +1 -1
  56. package/dist/cjs/controls/{rich-text/fixtures → style-v2}/index.js +4 -8
  57. package/dist/cjs/controls/style-v2/index.js.map +1 -0
  58. package/dist/cjs/controls/style-v2/style-v2.js +50 -0
  59. package/dist/cjs/controls/style-v2/style-v2.js.map +1 -0
  60. package/dist/cjs/{controls/select.js → core/index.js} +11 -12
  61. package/dist/cjs/core/index.js.map +1 -0
  62. package/dist/cjs/jest-setup.js +3 -0
  63. package/dist/cjs/jest-setup.js.map +1 -1
  64. package/dist/cjs/next/api-handler/handlers/manifest.js +1 -1
  65. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +18 -5
  66. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  67. package/dist/cjs/prop-controllers/copy.js +20 -18
  68. package/dist/cjs/prop-controllers/copy.js.map +1 -1
  69. package/dist/cjs/prop-controllers/deleted.js.map +1 -1
  70. package/dist/cjs/prop-controllers/descriptors.js +6 -6
  71. package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
  72. package/dist/cjs/prop-controllers/index.js +0 -2
  73. package/dist/cjs/prop-controllers/index.js.map +1 -1
  74. package/dist/cjs/prop-controllers/instances.js +12 -90
  75. package/dist/cjs/prop-controllers/instances.js.map +1 -1
  76. package/dist/cjs/prop-controllers/introspection.js +26 -97
  77. package/dist/cjs/prop-controllers/introspection.js.map +1 -1
  78. package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
  79. package/dist/cjs/runtimes/react/controls/checkbox.js +1 -4
  80. package/dist/cjs/runtimes/react/controls/checkbox.js.map +1 -1
  81. package/dist/cjs/runtimes/react/controls/color.js.map +1 -1
  82. package/dist/cjs/runtimes/react/controls/combobox.js.map +1 -1
  83. package/dist/cjs/runtimes/react/controls/control.js +48 -39
  84. package/dist/cjs/runtimes/react/controls/control.js.map +1 -1
  85. package/dist/cjs/runtimes/react/controls/icon-radio-group.js.map +1 -1
  86. package/dist/cjs/runtimes/react/controls/image.js +6 -10
  87. package/dist/cjs/runtimes/react/controls/image.js.map +1 -1
  88. package/dist/cjs/runtimes/react/controls/link.js.map +1 -1
  89. package/dist/cjs/runtimes/react/controls/list.js +3 -1
  90. package/dist/cjs/runtimes/react/controls/list.js.map +1 -1
  91. package/dist/cjs/runtimes/react/controls/number.js +1 -4
  92. package/dist/cjs/runtimes/react/controls/number.js.map +1 -1
  93. package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js +4 -2
  94. package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
  95. package/dist/cjs/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js +1 -1
  96. package/dist/cjs/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js.map +1 -1
  97. package/dist/cjs/runtimes/react/controls/rich-text/ReadOnlyText.js +2 -7
  98. package/dist/cjs/runtimes/react/controls/rich-text/ReadOnlyText.js.map +1 -1
  99. package/dist/cjs/runtimes/react/controls/rich-text/components/Element/block.js +14 -14
  100. package/dist/cjs/runtimes/react/controls/rich-text/components/Element/block.js.map +1 -1
  101. package/dist/cjs/runtimes/react/controls/rich-text/components/Element/element.js +7 -23
  102. package/dist/cjs/runtimes/react/controls/rich-text/components/Element/element.js.map +1 -1
  103. package/dist/cjs/runtimes/react/controls/rich-text/components/Element/inline.js +1 -1
  104. package/dist/cjs/runtimes/react/controls/rich-text/components/Element/inline.js.map +1 -1
  105. package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  106. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +3 -16
  107. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -1
  108. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js.map +1 -1
  109. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js.map +1 -1
  110. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js +8 -8
  111. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js.map +1 -1
  112. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js +2 -2
  113. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js.map +1 -1
  114. package/dist/cjs/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js +7 -13
  115. package/dist/cjs/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js.map +1 -1
  116. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
  117. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  118. package/dist/cjs/runtimes/react/controls/select.js +1 -1
  119. package/dist/cjs/runtimes/react/controls/select.js.map +1 -1
  120. package/dist/cjs/runtimes/react/controls/shape.js +2 -7
  121. package/dist/cjs/runtimes/react/controls/shape.js.map +1 -1
  122. package/dist/cjs/runtimes/react/controls/slot.js +13 -5
  123. package/dist/cjs/runtimes/react/controls/slot.js.map +1 -1
  124. package/dist/cjs/runtimes/react/controls/style-v2.js +6 -11
  125. package/dist/cjs/runtimes/react/controls/style-v2.js.map +1 -1
  126. package/dist/cjs/runtimes/react/controls/style.js +8 -8
  127. package/dist/cjs/runtimes/react/controls/style.js.map +1 -1
  128. package/dist/cjs/runtimes/react/controls/text-area.js +1 -4
  129. package/dist/cjs/runtimes/react/controls/text-area.js.map +1 -1
  130. package/dist/cjs/runtimes/react/controls/text-input.js +1 -4
  131. package/dist/cjs/runtimes/react/controls/text-input.js.map +1 -1
  132. package/dist/cjs/runtimes/react/controls/typography.js.map +1 -1
  133. package/dist/cjs/runtimes/react/controls.js +79 -73
  134. package/dist/cjs/runtimes/react/controls.js.map +1 -1
  135. package/dist/cjs/runtimes/react/hooks/use-store.js +2 -2
  136. package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
  137. package/dist/cjs/runtimes/react/poll-box-model.js +1 -1
  138. package/dist/cjs/runtimes/react/poll-box-model.js.map +1 -1
  139. package/dist/cjs/runtimes/react/react-runtime.js +3 -32
  140. package/dist/cjs/runtimes/react/react-runtime.js.map +1 -1
  141. package/dist/cjs/runtimes/react/runtime-core.js +67 -0
  142. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -0
  143. package/dist/cjs/slate/BlockPlugin/clearBlockKeyForDevice.js +2 -2
  144. package/dist/cjs/slate/BlockPlugin/clearBlockKeyForDevice.js.map +1 -1
  145. package/dist/cjs/slate/BlockPlugin/indent.js +3 -2
  146. package/dist/cjs/slate/BlockPlugin/indent.js.map +1 -1
  147. package/dist/cjs/slate/BlockPlugin/index.js +17 -15
  148. package/dist/cjs/slate/BlockPlugin/index.js.map +1 -1
  149. package/dist/cjs/slate/BlockPlugin/setBlockKeyForDevice.js +2 -2
  150. package/dist/cjs/slate/BlockPlugin/setBlockKeyForDevice.js.map +1 -1
  151. package/dist/cjs/slate/BlockPlugin/toggleList.js +2 -2
  152. package/dist/cjs/slate/BlockPlugin/toggleList.js.map +1 -1
  153. package/dist/cjs/slate/BlockPlugin/types.js.map +1 -1
  154. package/dist/cjs/slate/BlockPlugin/unwrapInline.js +2 -2
  155. package/dist/cjs/slate/BlockPlugin/unwrapInline.js.map +1 -1
  156. package/dist/cjs/slate/BlockPlugin/unwrapList.js +3 -4
  157. package/dist/cjs/slate/BlockPlugin/unwrapList.js.map +1 -1
  158. package/dist/cjs/slate/BlockPlugin/utils/getSelectedListItems.js +2 -2
  159. package/dist/cjs/slate/BlockPlugin/utils/getSelectedListItems.js.map +1 -1
  160. package/dist/cjs/slate/BlockPlugin/wrapInline.js.map +1 -1
  161. package/dist/cjs/slate/BlockPlugin/wrapList.js +4 -3
  162. package/dist/cjs/slate/BlockPlugin/wrapList.js.map +1 -1
  163. package/dist/cjs/slate/BuilderPlugin/index.js +3 -3
  164. package/dist/cjs/slate/BuilderPlugin/index.js.map +1 -1
  165. package/dist/cjs/slate/InlineModePlugin/index.js +4 -5
  166. package/dist/cjs/slate/InlineModePlugin/index.js.map +1 -1
  167. package/dist/cjs/slate/InlinePlugin/getValue.js +4 -4
  168. package/dist/cjs/slate/InlinePlugin/getValue.js.map +1 -1
  169. package/dist/cjs/slate/InlinePlugin/index.js +10 -14
  170. package/dist/cjs/slate/InlinePlugin/index.js.map +1 -1
  171. package/dist/cjs/slate/InlinePlugin/onChange.js +3 -3
  172. package/dist/cjs/slate/InlinePlugin/onChange.js.map +1 -1
  173. package/dist/cjs/slate/InlinePlugin/types.js +9 -6
  174. package/dist/cjs/slate/InlinePlugin/types.js.map +1 -1
  175. package/dist/cjs/slate/LinkPlugin/getValue.js +4 -5
  176. package/dist/cjs/slate/LinkPlugin/getValue.js.map +1 -1
  177. package/dist/cjs/slate/LinkPlugin/index.js +8 -10
  178. package/dist/cjs/slate/LinkPlugin/index.js.map +1 -1
  179. package/dist/cjs/slate/LinkPlugin/onChange.js +6 -6
  180. package/dist/cjs/slate/LinkPlugin/onChange.js.map +1 -1
  181. package/dist/cjs/slate/LinkPlugin/types.js +3 -8
  182. package/dist/cjs/slate/LinkPlugin/types.js.map +1 -1
  183. package/dist/cjs/slate/TextAlignPlugin/getValue.js +2 -2
  184. package/dist/cjs/slate/TextAlignPlugin/getValue.js.map +1 -1
  185. package/dist/cjs/slate/TextAlignPlugin/index.js +12 -12
  186. package/dist/cjs/slate/TextAlignPlugin/index.js.map +1 -1
  187. package/dist/cjs/slate/TypographyPlugin/clearActiveTypographyStyle.js.map +1 -1
  188. package/dist/cjs/slate/TypographyPlugin/clearDeviceActiveTypography.js.map +1 -1
  189. package/dist/cjs/slate/TypographyPlugin/detachActiveTypography.js.map +1 -1
  190. package/dist/cjs/slate/TypographyPlugin/getValue.js.map +1 -1
  191. package/dist/cjs/slate/TypographyPlugin/index.js +4 -4
  192. package/dist/cjs/slate/TypographyPlugin/index.js.map +1 -1
  193. package/dist/cjs/slate/TypographyPlugin/normalizeTypographyDown.js.map +1 -1
  194. package/dist/cjs/slate/TypographyPlugin/normalizeTypographyUp.js +6 -3
  195. package/dist/cjs/slate/TypographyPlugin/normalizeTypographyUp.js.map +1 -1
  196. package/dist/cjs/slate/TypographyPlugin/setActiveTypographyStyle.js.map +1 -1
  197. package/dist/cjs/slate/index.js +8 -8
  198. package/dist/cjs/slate/index.js.map +1 -1
  199. package/dist/cjs/slate/selectors.js +15 -12
  200. package/dist/cjs/slate/selectors.js.map +1 -1
  201. package/dist/cjs/slate/types.js +5 -36
  202. package/dist/cjs/slate/types.js.map +1 -1
  203. package/dist/cjs/slate/utils/editor.js +3 -3
  204. package/dist/cjs/slate/utils/editor.js.map +1 -1
  205. package/dist/cjs/slate/utils/element.js +5 -27
  206. package/dist/cjs/slate/utils/element.js.map +1 -1
  207. package/dist/cjs/slate/utils/responsive.js.map +1 -1
  208. package/dist/cjs/slate/utils/toText.js +16 -52
  209. package/dist/cjs/slate/utils/toText.js.map +1 -1
  210. package/dist/cjs/state/actions.js.map +1 -1
  211. package/dist/cjs/state/modules/box-models.js.map +1 -1
  212. package/dist/cjs/state/modules/breakpoints.js +1 -1
  213. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  214. package/dist/cjs/state/modules/prop-controller-handles.js.map +1 -1
  215. package/dist/cjs/state/modules/read-only-documents.js +2 -4
  216. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  217. package/dist/cjs/state/react-builder-preview.js +10 -7
  218. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  219. package/dist/cjs/state/react-page.js +10 -41
  220. package/dist/cjs/state/react-page.js.map +1 -1
  221. package/dist/esm/api/graphql/generated/types.js.map +1 -1
  222. package/dist/esm/api/react.js.map +1 -1
  223. package/dist/esm/builder/rich-text/index.js +5 -0
  224. package/dist/esm/builder/rich-text/index.js.map +1 -0
  225. package/dist/esm/builder/serialization/control-serialization.js +66 -37
  226. package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
  227. package/dist/esm/components/builtin/Button/Button.js.map +1 -1
  228. package/dist/esm/components/builtin/Carousel/Carousel.js +1 -1
  229. package/dist/esm/components/builtin/Carousel/Carousel.js.map +1 -1
  230. package/dist/esm/components/builtin/Countdown/Countdown.js.map +1 -1
  231. package/dist/esm/components/builtin/Divider/Divider.js.map +1 -1
  232. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  233. package/dist/esm/components/builtin/Form/context/FormContext.js.map +1 -1
  234. package/dist/esm/components/builtin/Image/Image.js +1 -1
  235. package/dist/esm/components/builtin/Image/Image.js.map +1 -1
  236. package/dist/esm/components/builtin/Navigation/Navigation.js.map +1 -1
  237. package/dist/esm/components/builtin/Navigation/components/MobileMenu/index.js.map +1 -1
  238. package/dist/esm/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
  239. package/dist/esm/components/builtin/Text/register.js.map +1 -1
  240. package/dist/esm/components/builtin/register.js.map +1 -1
  241. package/dist/esm/components/hooks/useMediaQuery.js +1 -1
  242. package/dist/esm/components/hooks/useMediaQuery.js.map +1 -1
  243. package/dist/esm/components/hooks/useResponsiveColor.js +3 -1
  244. package/dist/esm/components/hooks/useResponsiveColor.js.map +1 -1
  245. package/dist/esm/components/shared/Link/index.js +1 -1
  246. package/dist/esm/components/shared/Link/index.js.map +1 -1
  247. package/dist/esm/components/utils/responsive-style.js +1 -1
  248. package/dist/esm/components/utils/responsive-style.js.map +1 -1
  249. package/dist/esm/controls/control.js +14 -109
  250. package/dist/esm/controls/control.js.map +1 -1
  251. package/dist/esm/controls/index.js +82 -10
  252. package/dist/esm/controls/index.js.map +1 -1
  253. package/dist/esm/controls/link.js +18 -0
  254. package/dist/esm/controls/link.js.map +1 -0
  255. package/dist/esm/controls/rich-text/control.js +76 -0
  256. package/dist/esm/controls/rich-text/control.js.map +1 -0
  257. package/dist/esm/controls/rich-text/index.js +0 -3
  258. package/dist/esm/controls/rich-text/index.js.map +1 -1
  259. package/dist/esm/controls/rich-text/rich-text.js +14 -66
  260. package/dist/esm/controls/rich-text/rich-text.js.map +1 -1
  261. package/dist/esm/controls/rich-text-v2/control.js +117 -0
  262. package/dist/esm/controls/rich-text-v2/control.js.map +1 -0
  263. package/dist/esm/controls/rich-text-v2/index.js +0 -2
  264. package/dist/esm/controls/rich-text-v2/index.js.map +1 -1
  265. package/dist/esm/controls/rich-text-v2/plugin.js +2 -2
  266. package/dist/esm/controls/rich-text-v2/plugin.js.map +1 -1
  267. package/dist/esm/controls/rich-text-v2/rich-text-v2.js +111 -116
  268. package/dist/esm/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  269. package/dist/esm/controls/rich-text-v2/translation.js +33 -46
  270. package/dist/esm/controls/rich-text-v2/translation.js.map +1 -1
  271. package/dist/esm/controls/slot.js +13 -54
  272. package/dist/esm/controls/slot.js.map +1 -1
  273. package/dist/esm/controls/style-v2/index.js +2 -0
  274. package/dist/esm/controls/style-v2/index.js.map +1 -0
  275. package/dist/esm/controls/style-v2/style-v2.js +28 -0
  276. package/dist/esm/controls/style-v2/style-v2.js.map +1 -0
  277. package/dist/esm/core/index.js +11 -0
  278. package/dist/esm/core/index.js.map +1 -0
  279. package/dist/esm/jest-setup.js +3 -0
  280. package/dist/esm/jest-setup.js.map +1 -1
  281. package/dist/esm/next/api-handler/handlers/manifest.js +1 -1
  282. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +19 -6
  283. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  284. package/dist/esm/prop-controllers/copy.js +7 -5
  285. package/dist/esm/prop-controllers/copy.js.map +1 -1
  286. package/dist/esm/prop-controllers/deleted.js.map +1 -1
  287. package/dist/esm/prop-controllers/descriptors.js +7 -5
  288. package/dist/esm/prop-controllers/descriptors.js.map +1 -1
  289. package/dist/esm/prop-controllers/index.js +1 -2
  290. package/dist/esm/prop-controllers/index.js.map +1 -1
  291. package/dist/esm/prop-controllers/instances.js +15 -107
  292. package/dist/esm/prop-controllers/instances.js.map +1 -1
  293. package/dist/esm/prop-controllers/introspection.js +28 -131
  294. package/dist/esm/prop-controllers/introspection.js.map +1 -1
  295. package/dist/esm/runtimes/react/components/Element.js.map +1 -1
  296. package/dist/esm/runtimes/react/controls/checkbox.js +1 -7
  297. package/dist/esm/runtimes/react/controls/checkbox.js.map +1 -1
  298. package/dist/esm/runtimes/react/controls/color.js.map +1 -1
  299. package/dist/esm/runtimes/react/controls/combobox.js.map +1 -1
  300. package/dist/esm/runtimes/react/controls/control.js +66 -58
  301. package/dist/esm/runtimes/react/controls/control.js.map +1 -1
  302. package/dist/esm/runtimes/react/controls/icon-radio-group.js.map +1 -1
  303. package/dist/esm/runtimes/react/controls/image.js +6 -12
  304. package/dist/esm/runtimes/react/controls/image.js.map +1 -1
  305. package/dist/esm/runtimes/react/controls/link.js.map +1 -1
  306. package/dist/esm/runtimes/react/controls/list.js +3 -1
  307. package/dist/esm/runtimes/react/controls/list.js.map +1 -1
  308. package/dist/esm/runtimes/react/controls/number.js +1 -7
  309. package/dist/esm/runtimes/react/controls/number.js.map +1 -1
  310. package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js +7 -11
  311. package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
  312. package/dist/esm/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js +1 -1
  313. package/dist/esm/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js.map +1 -1
  314. package/dist/esm/runtimes/react/controls/rich-text/ReadOnlyText.js +2 -7
  315. package/dist/esm/runtimes/react/controls/rich-text/ReadOnlyText.js.map +1 -1
  316. package/dist/esm/runtimes/react/controls/rich-text/components/Element/block.js +1 -1
  317. package/dist/esm/runtimes/react/controls/rich-text/components/Element/block.js.map +1 -1
  318. package/dist/esm/runtimes/react/controls/rich-text/components/Element/element.js +7 -23
  319. package/dist/esm/runtimes/react/controls/rich-text/components/Element/element.js.map +1 -1
  320. package/dist/esm/runtimes/react/controls/rich-text/components/Element/inline.js +1 -1
  321. package/dist/esm/runtimes/react/controls/rich-text/components/Element/inline.js.map +1 -1
  322. package/dist/esm/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
  323. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +5 -27
  324. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -1
  325. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js.map +1 -1
  326. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js.map +1 -1
  327. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js +7 -7
  328. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js.map +1 -1
  329. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js +2 -2
  330. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js.map +1 -1
  331. package/dist/esm/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js +9 -25
  332. package/dist/esm/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js.map +1 -1
  333. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -4
  334. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  335. package/dist/esm/runtimes/react/controls/select.js +1 -1
  336. package/dist/esm/runtimes/react/controls/select.js.map +1 -1
  337. package/dist/esm/runtimes/react/controls/shape.js +2 -7
  338. package/dist/esm/runtimes/react/controls/shape.js.map +1 -1
  339. package/dist/esm/runtimes/react/controls/slot.js +14 -6
  340. package/dist/esm/runtimes/react/controls/slot.js.map +1 -1
  341. package/dist/esm/runtimes/react/controls/style-v2.js +6 -11
  342. package/dist/esm/runtimes/react/controls/style-v2.js.map +1 -1
  343. package/dist/esm/runtimes/react/controls/style.js +10 -10
  344. package/dist/esm/runtimes/react/controls/style.js.map +1 -1
  345. package/dist/esm/runtimes/react/controls/text-area.js +1 -7
  346. package/dist/esm/runtimes/react/controls/text-area.js.map +1 -1
  347. package/dist/esm/runtimes/react/controls/text-input.js +1 -7
  348. package/dist/esm/runtimes/react/controls/text-input.js.map +1 -1
  349. package/dist/esm/runtimes/react/controls/typography.js.map +1 -1
  350. package/dist/esm/runtimes/react/controls.js +96 -91
  351. package/dist/esm/runtimes/react/controls.js.map +1 -1
  352. package/dist/esm/runtimes/react/hooks/use-store.js +2 -2
  353. package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
  354. package/dist/esm/runtimes/react/poll-box-model.js +1 -1
  355. package/dist/esm/runtimes/react/poll-box-model.js.map +1 -1
  356. package/dist/esm/runtimes/react/react-runtime.js +3 -40
  357. package/dist/esm/runtimes/react/react-runtime.js.map +1 -1
  358. package/dist/esm/runtimes/react/runtime-core.js +51 -0
  359. package/dist/esm/runtimes/react/runtime-core.js.map +1 -0
  360. package/dist/esm/slate/BlockPlugin/clearBlockKeyForDevice.js +2 -2
  361. package/dist/esm/slate/BlockPlugin/clearBlockKeyForDevice.js.map +1 -1
  362. package/dist/esm/slate/BlockPlugin/indent.js +3 -2
  363. package/dist/esm/slate/BlockPlugin/indent.js.map +1 -1
  364. package/dist/esm/slate/BlockPlugin/index.js +17 -15
  365. package/dist/esm/slate/BlockPlugin/index.js.map +1 -1
  366. package/dist/esm/slate/BlockPlugin/setBlockKeyForDevice.js +2 -2
  367. package/dist/esm/slate/BlockPlugin/setBlockKeyForDevice.js.map +1 -1
  368. package/dist/esm/slate/BlockPlugin/toggleList.js +2 -2
  369. package/dist/esm/slate/BlockPlugin/toggleList.js.map +1 -1
  370. package/dist/esm/slate/BlockPlugin/unwrapInline.js +2 -2
  371. package/dist/esm/slate/BlockPlugin/unwrapInline.js.map +1 -1
  372. package/dist/esm/slate/BlockPlugin/unwrapList.js +3 -4
  373. package/dist/esm/slate/BlockPlugin/unwrapList.js.map +1 -1
  374. package/dist/esm/slate/BlockPlugin/utils/getSelectedListItems.js +2 -2
  375. package/dist/esm/slate/BlockPlugin/utils/getSelectedListItems.js.map +1 -1
  376. package/dist/esm/slate/BlockPlugin/wrapInline.js.map +1 -1
  377. package/dist/esm/slate/BlockPlugin/wrapList.js +4 -3
  378. package/dist/esm/slate/BlockPlugin/wrapList.js.map +1 -1
  379. package/dist/esm/slate/BuilderPlugin/index.js +3 -3
  380. package/dist/esm/slate/BuilderPlugin/index.js.map +1 -1
  381. package/dist/esm/slate/InlineModePlugin/index.js +5 -6
  382. package/dist/esm/slate/InlineModePlugin/index.js.map +1 -1
  383. package/dist/esm/slate/InlinePlugin/getValue.js +4 -4
  384. package/dist/esm/slate/InlinePlugin/getValue.js.map +1 -1
  385. package/dist/esm/slate/InlinePlugin/index.js +9 -13
  386. package/dist/esm/slate/InlinePlugin/index.js.map +1 -1
  387. package/dist/esm/slate/InlinePlugin/onChange.js +3 -3
  388. package/dist/esm/slate/InlinePlugin/onChange.js.map +1 -1
  389. package/dist/esm/slate/InlinePlugin/types.js +9 -7
  390. package/dist/esm/slate/InlinePlugin/types.js.map +1 -1
  391. package/dist/esm/slate/LinkPlugin/getValue.js +4 -5
  392. package/dist/esm/slate/LinkPlugin/getValue.js.map +1 -1
  393. package/dist/esm/slate/LinkPlugin/index.js +8 -10
  394. package/dist/esm/slate/LinkPlugin/index.js.map +1 -1
  395. package/dist/esm/slate/LinkPlugin/onChange.js +4 -4
  396. package/dist/esm/slate/LinkPlugin/onChange.js.map +1 -1
  397. package/dist/esm/slate/LinkPlugin/types.js +3 -7
  398. package/dist/esm/slate/LinkPlugin/types.js.map +1 -1
  399. package/dist/esm/slate/TextAlignPlugin/getValue.js +2 -2
  400. package/dist/esm/slate/TextAlignPlugin/getValue.js.map +1 -1
  401. package/dist/esm/slate/TextAlignPlugin/index.js +12 -16
  402. package/dist/esm/slate/TextAlignPlugin/index.js.map +1 -1
  403. package/dist/esm/slate/TypographyPlugin/clearActiveTypographyStyle.js.map +1 -1
  404. package/dist/esm/slate/TypographyPlugin/clearDeviceActiveTypography.js.map +1 -1
  405. package/dist/esm/slate/TypographyPlugin/detachActiveTypography.js.map +1 -1
  406. package/dist/esm/slate/TypographyPlugin/getValue.js.map +1 -1
  407. package/dist/esm/slate/TypographyPlugin/index.js +5 -5
  408. package/dist/esm/slate/TypographyPlugin/index.js.map +1 -1
  409. package/dist/esm/slate/TypographyPlugin/normalizeTypographyDown.js.map +1 -1
  410. package/dist/esm/slate/TypographyPlugin/normalizeTypographyUp.js +6 -3
  411. package/dist/esm/slate/TypographyPlugin/normalizeTypographyUp.js.map +1 -1
  412. package/dist/esm/slate/TypographyPlugin/setActiveTypographyStyle.js.map +1 -1
  413. package/dist/esm/slate/index.js +4 -4
  414. package/dist/esm/slate/index.js.map +1 -1
  415. package/dist/esm/slate/selectors.js +15 -12
  416. package/dist/esm/slate/selectors.js.map +1 -1
  417. package/dist/esm/slate/types.js +4 -33
  418. package/dist/esm/slate/types.js.map +1 -1
  419. package/dist/esm/slate/utils/editor.js +3 -3
  420. package/dist/esm/slate/utils/editor.js.map +1 -1
  421. package/dist/esm/slate/utils/element.js +5 -30
  422. package/dist/esm/slate/utils/element.js.map +1 -1
  423. package/dist/esm/slate/utils/responsive.js.map +1 -1
  424. package/dist/esm/slate/utils/toText.js +16 -52
  425. package/dist/esm/slate/utils/toText.js.map +1 -1
  426. package/dist/esm/state/actions.js.map +1 -1
  427. package/dist/esm/state/modules/box-models.js.map +1 -1
  428. package/dist/esm/state/modules/breakpoints.js +1 -1
  429. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  430. package/dist/esm/state/modules/prop-controller-handles.js.map +1 -1
  431. package/dist/esm/state/modules/read-only-documents.js +3 -3
  432. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  433. package/dist/esm/state/react-builder-preview.js +10 -7
  434. package/dist/esm/state/react-builder-preview.js.map +1 -1
  435. package/dist/esm/state/react-page.js +13 -41
  436. package/dist/esm/state/react-page.js.map +1 -1
  437. package/dist/types/api/graphql/generated/types.d.ts +1 -1
  438. package/dist/types/api/graphql/generated/types.d.ts.map +1 -1
  439. package/dist/types/api/react.d.ts +1 -1
  440. package/dist/types/builder/rich-text/index.d.ts +3 -0
  441. package/dist/types/builder/rich-text/index.d.ts.map +1 -0
  442. package/dist/types/builder/serialization/control-serialization.d.ts +12 -7
  443. package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
  444. package/dist/types/components/builtin/Box/Box.d.ts +23 -1
  445. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  446. package/dist/types/components/builtin/Button/Button.d.ts +3 -3
  447. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
  448. package/dist/types/components/builtin/Carousel/Carousel.d.ts +1 -1
  449. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  450. package/dist/types/components/builtin/Countdown/Countdown.d.ts +1 -1
  451. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  452. package/dist/types/components/builtin/Divider/Divider.d.ts +1 -1
  453. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
  454. package/dist/types/components/builtin/Form/Form.d.ts +1 -1
  455. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  456. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  457. package/dist/types/components/builtin/Form/context/FormContext.d.ts +7 -8
  458. package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -1
  459. package/dist/types/components/builtin/Navigation/Navigation.d.ts +1 -1
  460. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  461. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +2 -2
  462. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  463. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +1 -1
  464. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  465. package/dist/types/components/builtin/Text/register.d.ts +1 -1
  466. package/dist/types/components/builtin/Text/register.d.ts.map +1 -1
  467. package/dist/types/components/builtin/register.d.ts +1 -1
  468. package/dist/types/components/builtin/register.d.ts.map +1 -1
  469. package/dist/types/components/hooks/useResponsiveColor.d.ts +1 -2
  470. package/dist/types/components/hooks/useResponsiveColor.d.ts.map +1 -1
  471. package/dist/types/components/utils/responsive-style.d.ts +2 -1
  472. package/dist/types/components/utils/responsive-style.d.ts.map +1 -1
  473. package/dist/types/components/utils/types.d.ts +2 -0
  474. package/dist/types/components/utils/types.d.ts.map +1 -1
  475. package/dist/types/controls/__tests__/fixtures/shape.d.ts +19 -8
  476. package/dist/types/controls/__tests__/fixtures/shape.d.ts.map +1 -1
  477. package/dist/types/controls/control.d.ts +28 -17
  478. package/dist/types/controls/control.d.ts.map +1 -1
  479. package/dist/types/controls/index.d.ts +6 -10
  480. package/dist/types/controls/index.d.ts.map +1 -1
  481. package/dist/types/controls/link.d.ts +9 -0
  482. package/dist/types/controls/link.d.ts.map +1 -0
  483. package/dist/types/controls/rich-text/control.d.ts +57 -0
  484. package/dist/types/controls/rich-text/control.d.ts.map +1 -0
  485. package/dist/types/controls/rich-text/index.d.ts +0 -3
  486. package/dist/types/controls/rich-text/index.d.ts.map +1 -1
  487. package/dist/types/controls/rich-text/rich-text.d.ts +9 -61
  488. package/dist/types/controls/rich-text/rich-text.d.ts.map +1 -1
  489. package/dist/types/controls/rich-text-v2/__tests__/fixtures/nested-paragraph-edge-case-3728.d.ts +3 -2
  490. package/dist/types/controls/rich-text-v2/__tests__/fixtures/nested-paragraph-edge-case-3728.d.ts.map +1 -1
  491. package/dist/types/controls/rich-text-v2/__tests__/fixtures/rearranged.d.ts +4 -3
  492. package/dist/types/controls/rich-text-v2/__tests__/fixtures/rearranged.d.ts.map +1 -1
  493. package/dist/types/controls/rich-text-v2/__tests__/fixtures/simple.d.ts +4 -3
  494. package/dist/types/controls/rich-text-v2/__tests__/fixtures/simple.d.ts.map +1 -1
  495. package/dist/types/controls/rich-text-v2/__tests__/serialization.test.d.ts +2 -0
  496. package/dist/types/controls/rich-text-v2/__tests__/serialization.test.d.ts.map +1 -0
  497. package/dist/types/controls/rich-text-v2/control.d.ts +102 -0
  498. package/dist/types/controls/rich-text-v2/control.d.ts.map +1 -0
  499. package/dist/types/controls/rich-text-v2/index.d.ts +0 -2
  500. package/dist/types/controls/rich-text-v2/index.d.ts.map +1 -1
  501. package/dist/types/controls/rich-text-v2/plugin.d.ts +9 -17
  502. package/dist/types/controls/rich-text-v2/plugin.d.ts.map +1 -1
  503. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +863 -103
  504. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  505. package/dist/types/controls/rich-text-v2/translation.d.ts +5 -4
  506. package/dist/types/controls/rich-text-v2/translation.d.ts.map +1 -1
  507. package/dist/types/controls/slot.d.ts +8 -54
  508. package/dist/types/controls/slot.d.ts.map +1 -1
  509. package/dist/types/controls/style-v2/index.d.ts +2 -0
  510. package/dist/types/controls/style-v2/index.d.ts.map +1 -0
  511. package/dist/types/controls/style-v2/style-v2.d.ts +10 -0
  512. package/dist/types/controls/style-v2/style-v2.d.ts.map +1 -0
  513. package/dist/types/controls/style-v2/style-v2.test.d.ts +2 -0
  514. package/dist/types/controls/style-v2/style-v2.test.d.ts.map +1 -0
  515. package/dist/types/core/index.d.ts +2 -0
  516. package/dist/types/core/index.d.ts.map +1 -0
  517. package/dist/types/locale.d.ts +1 -1
  518. package/dist/types/next/client.d.ts +16 -16
  519. package/dist/types/next/components/tests/controls/combobox-control.test.d.ts +2 -0
  520. package/dist/types/next/components/tests/controls/combobox-control.test.d.ts.map +1 -0
  521. package/dist/types/next/components/tests/controls/icon-radio-group-control.test.d.ts +2 -0
  522. package/dist/types/next/components/tests/controls/icon-radio-group-control.test.d.ts.map +1 -0
  523. package/dist/types/next/components/tests/controls/image-control.test.d.ts +3 -0
  524. package/dist/types/next/components/tests/controls/image-control.test.d.ts.map +1 -0
  525. package/dist/types/next/components/tests/controls/link-control.test.d.ts +2 -0
  526. package/dist/types/next/components/tests/controls/link-control.test.d.ts.map +1 -0
  527. package/dist/types/next/components/tests/controls/list-control.test.d.ts +2 -0
  528. package/dist/types/next/components/tests/controls/list-control.test.d.ts.map +1 -0
  529. package/dist/types/next/components/tests/controls/number-control.test.d.ts +2 -0
  530. package/dist/types/next/components/tests/controls/number-control.test.d.ts.map +1 -0
  531. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +9 -5
  532. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  533. package/dist/types/next/components/tests/controls/select-control.test.d.ts +2 -0
  534. package/dist/types/next/components/tests/controls/select-control.test.d.ts.map +1 -0
  535. package/dist/types/next/components/tests/controls/shape-control.test.d.ts +2 -0
  536. package/dist/types/next/components/tests/controls/shape-control.test.d.ts.map +1 -0
  537. package/dist/types/next/components/tests/controls/slot-control.test.d.ts +2 -0
  538. package/dist/types/next/components/tests/controls/slot-control.test.d.ts.map +1 -0
  539. package/dist/types/next/components/tests/controls/style-control.test.d.ts +2 -0
  540. package/dist/types/next/components/tests/controls/style-control.test.d.ts.map +1 -0
  541. package/dist/types/next/components/tests/controls/text-area-control.test.d.ts +2 -0
  542. package/dist/types/next/components/tests/controls/text-area-control.test.d.ts.map +1 -0
  543. package/dist/types/next/components/tests/controls/text-input-control.test.d.ts +2 -0
  544. package/dist/types/next/components/tests/controls/text-input-control.test.d.ts.map +1 -0
  545. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts +15 -2
  546. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts.map +1 -1
  547. package/dist/types/prop-controllers/copy.d.ts +2 -2
  548. package/dist/types/prop-controllers/copy.d.ts.map +1 -1
  549. package/dist/types/prop-controllers/deleted.d.ts +1 -1
  550. package/dist/types/prop-controllers/deleted.d.ts.map +1 -1
  551. package/dist/types/prop-controllers/descriptors.d.ts +8 -27
  552. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  553. package/dist/types/prop-controllers/index.d.ts +3 -3
  554. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  555. package/dist/types/prop-controllers/instances.d.ts +10 -72
  556. package/dist/types/prop-controllers/instances.d.ts.map +1 -1
  557. package/dist/types/prop-controllers/introspection.d.ts +2 -2
  558. package/dist/types/prop-controllers/introspection.d.ts.map +1 -1
  559. package/dist/types/runtimes/react/components/Element.d.ts +2 -2
  560. package/dist/types/runtimes/react/controls/checkbox.d.ts +3 -3
  561. package/dist/types/runtimes/react/controls/checkbox.d.ts.map +1 -1
  562. package/dist/types/runtimes/react/controls/color.d.ts +3 -3
  563. package/dist/types/runtimes/react/controls/color.d.ts.map +1 -1
  564. package/dist/types/runtimes/react/controls/combobox.d.ts +3 -3
  565. package/dist/types/runtimes/react/controls/combobox.d.ts.map +1 -1
  566. package/dist/types/runtimes/react/controls/control.d.ts +7 -28
  567. package/dist/types/runtimes/react/controls/control.d.ts.map +1 -1
  568. package/dist/types/runtimes/react/controls/icon-radio-group.d.ts +3 -3
  569. package/dist/types/runtimes/react/controls/icon-radio-group.d.ts.map +1 -1
  570. package/dist/types/runtimes/react/controls/image.d.ts +3 -12
  571. package/dist/types/runtimes/react/controls/image.d.ts.map +1 -1
  572. package/dist/types/runtimes/react/controls/link.d.ts +3 -10
  573. package/dist/types/runtimes/react/controls/link.d.ts.map +1 -1
  574. package/dist/types/runtimes/react/controls/list.d.ts +7 -9
  575. package/dist/types/runtimes/react/controls/list.d.ts.map +1 -1
  576. package/dist/types/runtimes/react/controls/number.d.ts +3 -3
  577. package/dist/types/runtimes/react/controls/number.d.ts.map +1 -1
  578. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts +1 -1
  579. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -1
  580. package/dist/types/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts +2 -2
  581. package/dist/types/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts.map +1 -1
  582. package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts +3 -4
  583. package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -1
  584. package/dist/types/runtimes/react/controls/rich-text/components/Element/block.d.ts +2 -2
  585. package/dist/types/runtimes/react/controls/rich-text/components/Element/block.d.ts.map +1 -1
  586. package/dist/types/runtimes/react/controls/rich-text/components/Element/element.d.ts +1 -1
  587. package/dist/types/runtimes/react/controls/rich-text/components/Element/element.d.ts.map +1 -1
  588. package/dist/types/runtimes/react/controls/rich-text/components/Element/inline.d.ts +2 -2
  589. package/dist/types/runtimes/react/controls/rich-text/components/Element/inline.d.ts.map +1 -1
  590. package/dist/types/runtimes/react/controls/rich-text/rich-text.d.ts +4 -3
  591. package/dist/types/runtimes/react/controls/rich-text/rich-text.d.ts.map +1 -1
  592. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts +4 -4
  593. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -1
  594. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts +2 -2
  595. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts.map +1 -1
  596. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts +2 -2
  597. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts.map +1 -1
  598. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts +2 -2
  599. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts.map +1 -1
  600. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts +2 -2
  601. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts.map +1 -1
  602. package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +4 -3
  603. package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  604. package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts +4 -3
  605. package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  606. package/dist/types/runtimes/react/controls/select.d.ts +3 -3
  607. package/dist/types/runtimes/react/controls/select.d.ts.map +1 -1
  608. package/dist/types/runtimes/react/controls/shape.d.ts +7 -10
  609. package/dist/types/runtimes/react/controls/shape.d.ts.map +1 -1
  610. package/dist/types/runtimes/react/controls/slot.d.ts +3 -4
  611. package/dist/types/runtimes/react/controls/slot.d.ts.map +1 -1
  612. package/dist/types/runtimes/react/controls/style-v2.d.ts +7 -7
  613. package/dist/types/runtimes/react/controls/style-v2.d.ts.map +1 -1
  614. package/dist/types/runtimes/react/controls/style.d.ts +2 -2
  615. package/dist/types/runtimes/react/controls/style.d.ts.map +1 -1
  616. package/dist/types/runtimes/react/controls/text-area.d.ts +3 -3
  617. package/dist/types/runtimes/react/controls/text-area.d.ts.map +1 -1
  618. package/dist/types/runtimes/react/controls/text-input.d.ts +3 -3
  619. package/dist/types/runtimes/react/controls/text-input.d.ts.map +1 -1
  620. package/dist/types/runtimes/react/controls/typography.d.ts +6 -6
  621. package/dist/types/runtimes/react/controls/typography.d.ts.map +1 -1
  622. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  623. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  624. package/dist/types/runtimes/react/poll-box-model.d.ts +1 -1
  625. package/dist/types/runtimes/react/poll-box-model.d.ts.map +1 -1
  626. package/dist/types/runtimes/react/react-runtime.d.ts +9 -18
  627. package/dist/types/runtimes/react/react-runtime.d.ts.map +1 -1
  628. package/dist/types/runtimes/react/runtime-core.d.ts +19 -0
  629. package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -0
  630. package/dist/types/slate/BlockPlugin/clearBlockKeyForDevice.d.ts.map +1 -1
  631. package/dist/types/slate/BlockPlugin/indent.d.ts.map +1 -1
  632. package/dist/types/slate/BlockPlugin/index.d.ts +19 -41
  633. package/dist/types/slate/BlockPlugin/index.d.ts.map +1 -1
  634. package/dist/types/slate/BlockPlugin/setBlockKeyForDevice.d.ts.map +1 -1
  635. package/dist/types/slate/BlockPlugin/toggleList.d.ts.map +1 -1
  636. package/dist/types/slate/BlockPlugin/types.d.ts +2 -2
  637. package/dist/types/slate/BlockPlugin/types.d.ts.map +1 -1
  638. package/dist/types/slate/BlockPlugin/unwrapInline.d.ts +2 -2
  639. package/dist/types/slate/BlockPlugin/unwrapInline.d.ts.map +1 -1
  640. package/dist/types/slate/BlockPlugin/utils/getSelectedListItems.d.ts +3 -2
  641. package/dist/types/slate/BlockPlugin/utils/getSelectedListItems.d.ts.map +1 -1
  642. package/dist/types/slate/BlockPlugin/wrapInline.d.ts +2 -2
  643. package/dist/types/slate/BlockPlugin/wrapInline.d.ts.map +1 -1
  644. package/dist/types/slate/BlockPlugin/wrapList.d.ts +1 -1
  645. package/dist/types/slate/BlockPlugin/wrapList.d.ts.map +1 -1
  646. package/dist/types/slate/BuilderPlugin/index.d.ts.map +1 -1
  647. package/dist/types/slate/InlineModePlugin/index.d.ts +79 -7
  648. package/dist/types/slate/InlineModePlugin/index.d.ts.map +1 -1
  649. package/dist/types/slate/InlinePlugin/getValue.d.ts.map +1 -1
  650. package/dist/types/slate/InlinePlugin/index.d.ts +22 -11
  651. package/dist/types/slate/InlinePlugin/index.d.ts.map +1 -1
  652. package/dist/types/slate/InlinePlugin/onChange.d.ts.map +1 -1
  653. package/dist/types/slate/InlinePlugin/types.d.ts +18 -6
  654. package/dist/types/slate/InlinePlugin/types.d.ts.map +1 -1
  655. package/dist/types/slate/LinkPlugin/getValue.d.ts +36 -3
  656. package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -1
  657. package/dist/types/slate/LinkPlugin/index.d.ts +40 -9
  658. package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
  659. package/dist/types/slate/LinkPlugin/onChange.d.ts +4 -3
  660. package/dist/types/slate/LinkPlugin/onChange.d.ts.map +1 -1
  661. package/dist/types/slate/LinkPlugin/types.d.ts +3 -4
  662. package/dist/types/slate/LinkPlugin/types.d.ts.map +1 -1
  663. package/dist/types/slate/TextAlignPlugin/getValue.d.ts +2 -2
  664. package/dist/types/slate/TextAlignPlugin/getValue.d.ts.map +1 -1
  665. package/dist/types/slate/TextAlignPlugin/index.d.ts +21 -6
  666. package/dist/types/slate/TextAlignPlugin/index.d.ts.map +1 -1
  667. package/dist/types/slate/TypographyPlugin/detachActiveTypography.d.ts +1 -1
  668. package/dist/types/slate/TypographyPlugin/detachActiveTypography.d.ts.map +1 -1
  669. package/dist/types/slate/TypographyPlugin/getValue.d.ts +25 -2
  670. package/dist/types/slate/TypographyPlugin/getValue.d.ts.map +1 -1
  671. package/dist/types/slate/TypographyPlugin/index.d.ts +27 -3
  672. package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
  673. package/dist/types/slate/TypographyPlugin/normalizeTypographyDown.d.ts +2 -1
  674. package/dist/types/slate/TypographyPlugin/normalizeTypographyDown.d.ts.map +1 -1
  675. package/dist/types/slate/TypographyPlugin/normalizeTypographyUp.d.ts +1 -1
  676. package/dist/types/slate/TypographyPlugin/normalizeTypographyUp.d.ts.map +1 -1
  677. package/dist/types/slate/TypographyPlugin/setActiveTypographyStyle.d.ts.map +1 -1
  678. package/dist/types/slate/index.d.ts +4 -4
  679. package/dist/types/slate/index.d.ts.map +1 -1
  680. package/dist/types/slate/selectors.d.ts +7 -7
  681. package/dist/types/slate/selectors.d.ts.map +1 -1
  682. package/dist/types/slate/test-helpers/slate-test-helper.d.ts +4 -4
  683. package/dist/types/slate/test-helpers/test-elements.d.ts +61 -5
  684. package/dist/types/slate/test-helpers/test-elements.d.ts.map +1 -1
  685. package/dist/types/slate/types.d.ts +1 -206
  686. package/dist/types/slate/types.d.ts.map +1 -1
  687. package/dist/types/slate/utils/editor.d.ts +4 -4
  688. package/dist/types/slate/utils/editor.d.ts.map +1 -1
  689. package/dist/types/slate/utils/element.d.ts +4 -12
  690. package/dist/types/slate/utils/element.d.ts.map +1 -1
  691. package/dist/types/slate/utils/responsive.d.ts +1 -1
  692. package/dist/types/slate/utils/responsive.d.ts.map +1 -1
  693. package/dist/types/slate/utils/toText.d.ts +3 -3
  694. package/dist/types/slate/utils/toText.d.ts.map +1 -1
  695. package/dist/types/state/actions.d.ts +3 -3
  696. package/dist/types/state/actions.d.ts.map +1 -1
  697. package/dist/types/state/modules/box-models.d.ts +2 -1
  698. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  699. package/dist/types/state/modules/breakpoints.d.ts +2 -4
  700. package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
  701. package/dist/types/state/modules/prop-controller-handles.d.ts +4 -4
  702. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -1
  703. package/dist/types/state/modules/read-only-documents.d.ts +2 -15
  704. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  705. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  706. package/dist/types/state/react-page.d.ts +55 -57
  707. package/dist/types/state/react-page.d.ts.map +1 -1
  708. package/dist/types/utils/tests/element-data-test-test.d.ts +29 -1
  709. package/dist/types/utils/tests/element-data-test-test.d.ts.map +1 -1
  710. package/package.json +16 -4
  711. package/dist/cjs/builder/serialization/controls/combobox.js +0 -45
  712. package/dist/cjs/builder/serialization/controls/combobox.js.map +0 -1
  713. package/dist/cjs/builder/serialization/controls/list.js +0 -50
  714. package/dist/cjs/builder/serialization/controls/list.js.map +0 -1
  715. package/dist/cjs/builder/serialization/controls/rich-text-v2.js +0 -106
  716. package/dist/cjs/builder/serialization/controls/rich-text-v2.js.map +0 -1
  717. package/dist/cjs/builder/serialization/controls/shape.js +0 -54
  718. package/dist/cjs/builder/serialization/controls/shape.js.map +0 -1
  719. package/dist/cjs/builder/serialization/controls/style-v2.js +0 -62
  720. package/dist/cjs/builder/serialization/controls/style-v2.js.map +0 -1
  721. package/dist/cjs/controls/image.js.map +0 -1
  722. package/dist/cjs/controls/list.js +0 -156
  723. package/dist/cjs/controls/list.js.map +0 -1
  724. package/dist/cjs/controls/rich-text/copy.js +0 -121
  725. package/dist/cjs/controls/rich-text/copy.js.map +0 -1
  726. package/dist/cjs/controls/rich-text/dto-types.js +0 -43
  727. package/dist/cjs/controls/rich-text/dto-types.js.map +0 -1
  728. package/dist/cjs/controls/rich-text/dto.js +0 -228
  729. package/dist/cjs/controls/rich-text/dto.js.map +0 -1
  730. package/dist/cjs/controls/rich-text/fixtures/blockquote.js +0 -77
  731. package/dist/cjs/controls/rich-text/fixtures/blockquote.js.map +0 -1
  732. package/dist/cjs/controls/rich-text/fixtures/empty-blocks.js +0 -176
  733. package/dist/cjs/controls/rich-text/fixtures/empty-blocks.js.map +0 -1
  734. package/dist/cjs/controls/rich-text/fixtures/index.js.map +0 -1
  735. package/dist/cjs/controls/rich-text/fixtures/list.js +0 -137
  736. package/dist/cjs/controls/rich-text/fixtures/list.js.map +0 -1
  737. package/dist/cjs/controls/rich-text/fixtures/typography.js +0 -926
  738. package/dist/cjs/controls/rich-text/fixtures/typography.js.map +0 -1
  739. package/dist/cjs/controls/rich-text/fixtures/v2-data-types.js +0 -114
  740. package/dist/cjs/controls/rich-text/fixtures/v2-data-types.js.map +0 -1
  741. package/dist/cjs/controls/rich-text/introspection.js +0 -104
  742. package/dist/cjs/controls/rich-text/introspection.js.map +0 -1
  743. package/dist/cjs/controls/rich-text-v2/copy.js +0 -115
  744. package/dist/cjs/controls/rich-text-v2/copy.js.map +0 -1
  745. package/dist/cjs/controls/rich-text-v2/dto.js +0 -44
  746. package/dist/cjs/controls/rich-text-v2/dto.js.map +0 -1
  747. package/dist/cjs/controls/rich-text-v2/introspection.js +0 -69
  748. package/dist/cjs/controls/rich-text-v2/introspection.js.map +0 -1
  749. package/dist/cjs/controls/select.js.map +0 -1
  750. package/dist/cjs/controls/shape.js +0 -149
  751. package/dist/cjs/controls/shape.js.map +0 -1
  752. package/dist/cjs/controls/style-v2.js +0 -74
  753. package/dist/cjs/controls/style-v2.js.map +0 -1
  754. package/dist/cjs/controls/style.js +0 -125
  755. package/dist/cjs/controls/style.js.map +0 -1
  756. package/dist/cjs/controls/typography.js +0 -47
  757. package/dist/cjs/controls/typography.js.map +0 -1
  758. package/dist/cjs/prop-controllers/base.js.map +0 -1
  759. package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js +0 -48
  760. package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +0 -1
  761. package/dist/cjs/utils/index-signature-hack.js +0 -17
  762. package/dist/cjs/utils/index-signature-hack.js.map +0 -1
  763. package/dist/esm/builder/serialization/controls/combobox.js +0 -20
  764. package/dist/esm/builder/serialization/controls/combobox.js.map +0 -1
  765. package/dist/esm/builder/serialization/controls/list.js +0 -25
  766. package/dist/esm/builder/serialization/controls/list.js.map +0 -1
  767. package/dist/esm/builder/serialization/controls/rich-text-v2.js +0 -81
  768. package/dist/esm/builder/serialization/controls/rich-text-v2.js.map +0 -1
  769. package/dist/esm/builder/serialization/controls/shape.js +0 -32
  770. package/dist/esm/builder/serialization/controls/shape.js.map +0 -1
  771. package/dist/esm/builder/serialization/controls/style-v2.js +0 -37
  772. package/dist/esm/builder/serialization/controls/style-v2.js.map +0 -1
  773. package/dist/esm/controls/image.js +0 -10
  774. package/dist/esm/controls/image.js.map +0 -1
  775. package/dist/esm/controls/list.js +0 -132
  776. package/dist/esm/controls/list.js.map +0 -1
  777. package/dist/esm/controls/rich-text/copy.js +0 -97
  778. package/dist/esm/controls/rich-text/copy.js.map +0 -1
  779. package/dist/esm/controls/rich-text/dto-types.js +0 -19
  780. package/dist/esm/controls/rich-text/dto-types.js.map +0 -1
  781. package/dist/esm/controls/rich-text/dto.js +0 -203
  782. package/dist/esm/controls/rich-text/dto.js.map +0 -1
  783. package/dist/esm/controls/rich-text/fixtures/blockquote.js +0 -53
  784. package/dist/esm/controls/rich-text/fixtures/blockquote.js.map +0 -1
  785. package/dist/esm/controls/rich-text/fixtures/empty-blocks.js +0 -151
  786. package/dist/esm/controls/rich-text/fixtures/empty-blocks.js.map +0 -1
  787. package/dist/esm/controls/rich-text/fixtures/index.js +0 -4
  788. package/dist/esm/controls/rich-text/fixtures/index.js.map +0 -1
  789. package/dist/esm/controls/rich-text/fixtures/list.js +0 -113
  790. package/dist/esm/controls/rich-text/fixtures/list.js.map +0 -1
  791. package/dist/esm/controls/rich-text/fixtures/typography.js +0 -902
  792. package/dist/esm/controls/rich-text/fixtures/typography.js.map +0 -1
  793. package/dist/esm/controls/rich-text/fixtures/v2-data-types.js +0 -90
  794. package/dist/esm/controls/rich-text/fixtures/v2-data-types.js.map +0 -1
  795. package/dist/esm/controls/rich-text/introspection.js +0 -78
  796. package/dist/esm/controls/rich-text/introspection.js.map +0 -1
  797. package/dist/esm/controls/rich-text-v2/copy.js +0 -91
  798. package/dist/esm/controls/rich-text-v2/copy.js.map +0 -1
  799. package/dist/esm/controls/rich-text-v2/dto.js +0 -19
  800. package/dist/esm/controls/rich-text-v2/dto.js.map +0 -1
  801. package/dist/esm/controls/rich-text-v2/introspection.js +0 -43
  802. package/dist/esm/controls/rich-text-v2/introspection.js.map +0 -1
  803. package/dist/esm/controls/select.js +0 -9
  804. package/dist/esm/controls/select.js.map +0 -1
  805. package/dist/esm/controls/shape.js +0 -125
  806. package/dist/esm/controls/shape.js.map +0 -1
  807. package/dist/esm/controls/style-v2.js +0 -48
  808. package/dist/esm/controls/style-v2.js.map +0 -1
  809. package/dist/esm/controls/style.js +0 -95
  810. package/dist/esm/controls/style.js.map +0 -1
  811. package/dist/esm/controls/typography.js +0 -20
  812. package/dist/esm/controls/typography.js.map +0 -1
  813. package/dist/esm/prop-controllers/base.js +0 -10
  814. package/dist/esm/prop-controllers/base.js.map +0 -1
  815. package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js +0 -24
  816. package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +0 -1
  817. package/dist/esm/utils/index-signature-hack.js +0 -1
  818. package/dist/esm/utils/index-signature-hack.js.map +0 -1
  819. package/dist/types/builder/serialization/controls/combobox.d.ts +0 -5
  820. package/dist/types/builder/serialization/controls/combobox.d.ts.map +0 -1
  821. package/dist/types/builder/serialization/controls/list.d.ts +0 -5
  822. package/dist/types/builder/serialization/controls/list.d.ts.map +0 -1
  823. package/dist/types/builder/serialization/controls/rich-text-v2.d.ts +0 -5
  824. package/dist/types/builder/serialization/controls/rich-text-v2.d.ts.map +0 -1
  825. package/dist/types/builder/serialization/controls/shape.d.ts +0 -5
  826. package/dist/types/builder/serialization/controls/shape.d.ts.map +0 -1
  827. package/dist/types/builder/serialization/controls/style-v2.d.ts +0 -5
  828. package/dist/types/builder/serialization/controls/style-v2.d.ts.map +0 -1
  829. package/dist/types/controls/image.d.ts +0 -4
  830. package/dist/types/controls/image.d.ts.map +0 -1
  831. package/dist/types/controls/image.test.d.ts +0 -2
  832. package/dist/types/controls/image.test.d.ts.map +0 -1
  833. package/dist/types/controls/link.test.d.ts +0 -2
  834. package/dist/types/controls/link.test.d.ts.map +0 -1
  835. package/dist/types/controls/list.d.ts +0 -78
  836. package/dist/types/controls/list.d.ts.map +0 -1
  837. package/dist/types/controls/rich-text/__tests__/copy.test.d.ts +0 -2
  838. package/dist/types/controls/rich-text/__tests__/copy.test.d.ts.map +0 -1
  839. package/dist/types/controls/rich-text/__tests__/dto.test.d.ts +0 -2
  840. package/dist/types/controls/rich-text/__tests__/dto.test.d.ts.map +0 -1
  841. package/dist/types/controls/rich-text/__tests__/introspection.test.d.ts +0 -2
  842. package/dist/types/controls/rich-text/__tests__/introspection.test.d.ts.map +0 -1
  843. package/dist/types/controls/rich-text/copy.d.ts +0 -4
  844. package/dist/types/controls/rich-text/copy.d.ts.map +0 -1
  845. package/dist/types/controls/rich-text/dto-types.d.ts +0 -132
  846. package/dist/types/controls/rich-text/dto-types.d.ts.map +0 -1
  847. package/dist/types/controls/rich-text/dto.d.ts +0 -8
  848. package/dist/types/controls/rich-text/dto.d.ts.map +0 -1
  849. package/dist/types/controls/rich-text/fixtures/blockquote.d.ts +0 -3
  850. package/dist/types/controls/rich-text/fixtures/blockquote.d.ts.map +0 -1
  851. package/dist/types/controls/rich-text/fixtures/empty-blocks.d.ts +0 -4
  852. package/dist/types/controls/rich-text/fixtures/empty-blocks.d.ts.map +0 -1
  853. package/dist/types/controls/rich-text/fixtures/index.d.ts +0 -4
  854. package/dist/types/controls/rich-text/fixtures/index.d.ts.map +0 -1
  855. package/dist/types/controls/rich-text/fixtures/list.d.ts +0 -3
  856. package/dist/types/controls/rich-text/fixtures/list.d.ts.map +0 -1
  857. package/dist/types/controls/rich-text/fixtures/typography.d.ts +0 -3
  858. package/dist/types/controls/rich-text/fixtures/typography.d.ts.map +0 -1
  859. package/dist/types/controls/rich-text/fixtures/v2-data-types.d.ts +0 -3
  860. package/dist/types/controls/rich-text/fixtures/v2-data-types.d.ts.map +0 -1
  861. package/dist/types/controls/rich-text/introspection.d.ts +0 -5
  862. package/dist/types/controls/rich-text/introspection.d.ts.map +0 -1
  863. package/dist/types/controls/rich-text-v2/copy.d.ts +0 -4
  864. package/dist/types/controls/rich-text-v2/copy.d.ts.map +0 -1
  865. package/dist/types/controls/rich-text-v2/dto.d.ts +0 -5
  866. package/dist/types/controls/rich-text-v2/dto.d.ts.map +0 -1
  867. package/dist/types/controls/rich-text-v2/introspection.d.ts +0 -5
  868. package/dist/types/controls/rich-text-v2/introspection.d.ts.map +0 -1
  869. package/dist/types/controls/select.d.ts +0 -22
  870. package/dist/types/controls/select.d.ts.map +0 -1
  871. package/dist/types/controls/shape.d.ts +0 -50
  872. package/dist/types/controls/shape.d.ts.map +0 -1
  873. package/dist/types/controls/style-v2.d.ts +0 -64
  874. package/dist/types/controls/style-v2.d.ts.map +0 -1
  875. package/dist/types/controls/style.d.ts +0 -179
  876. package/dist/types/controls/style.d.ts.map +0 -1
  877. package/dist/types/controls/typography.d.ts +0 -33
  878. package/dist/types/controls/typography.d.ts.map +0 -1
  879. package/dist/types/prop-controllers/base.d.ts +0 -7
  880. package/dist/types/prop-controllers/base.d.ts.map +0 -1
  881. package/dist/types/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts +0 -16
  882. package/dist/types/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts.map +0 -1
  883. package/dist/types/utils/index-signature-hack.d.ts +0 -4
  884. package/dist/types/utils/index-signature-hack.d.ts.map +0 -1
@@ -1,17 +1,25 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { useEffect, useState } from "react";
2
+ import { useEffect, useState, memo } from "react";
3
+ import { cx } from "@emotion/css";
3
4
  import { Element } from "../components/Element";
4
5
  import { getIndexes } from "../../../components/utils/columns";
5
6
  import { useResponsiveStyle } from "../../../components/utils/responsive-style";
6
7
  import { useStyle } from "../use-style";
7
- import { cx } from "@emotion/css";
8
8
  import { pollBoxModel } from "../poll-box-model";
9
9
  function useSlot(data, control) {
10
- if (data == null || data.elements.length === 0) {
11
- return /* @__PURE__ */ jsx(Slot.Placeholder, { control });
12
- }
13
- return /* @__PURE__ */ jsx(Slot, { control, children: data.elements.map((element, i) => /* @__PURE__ */ jsx(Slot.Item, { control, grid: data.columns, index: i, children: /* @__PURE__ */ jsx(Element, { element }) }, element.key)) });
10
+ return /* @__PURE__ */ jsx(SlotValue, { data, control });
14
11
  }
12
+ const SlotValue = memo(
13
+ ({
14
+ data,
15
+ control
16
+ }) => {
17
+ if (data == null || data.elements.length === 0) {
18
+ return /* @__PURE__ */ jsx(Slot.Placeholder, { control });
19
+ }
20
+ return /* @__PURE__ */ jsx(Slot, { control, children: data.elements.map((element, i) => /* @__PURE__ */ jsx(Slot.Item, { control, grid: data.columns, index: i, children: /* @__PURE__ */ jsx(Element, { element }) }, element.key)) });
21
+ }
22
+ );
15
23
  function Slot({
16
24
  as,
17
25
  control,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/slot.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, ElementType, ReactNode, useEffect, useState } from 'react'\nimport { SlotControl, SlotControlData } from '../../../controls'\n\nimport { Element } from '../components/Element'\nimport { getIndexes } from '../../../components/utils/columns'\nimport { useResponsiveStyle } from '../../../components/utils/responsive-style'\nimport { useStyle } from '../use-style'\nimport { cx } from '@emotion/css'\nimport { pollBoxModel } from '../poll-box-model'\n\nexport type SlotControlValue = ReactNode\n\nexport function useSlot(data: SlotControlData, control: SlotControl | null) {\n // TODO(miguel): While the UI shouldn't allow the state, we should probably check that at least\n // one element is visible.\n if (data == null || data.elements.length === 0) {\n return <Slot.Placeholder control={control} />\n }\n\n return (\n <Slot control={control}>\n {data.elements.map((element, i) => (\n <Slot.Item key={element.key} control={control} grid={data.columns} index={i}>\n <Element element={element} />\n </Slot.Item>\n ))}\n </Slot>\n )\n}\n\ntype SlotProps<T extends ElementType> = {\n as?: T\n control: SlotControl | null\n children?: ReactNode\n className?: string\n}\n\nexport function Slot<T extends ElementType = 'div'>({\n as,\n control,\n children,\n className,\n ...restOfProps\n}: SlotProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof SlotProps<T>>) {\n const As = as ?? 'div'\n const [element, setElement] = useState<Element | null>(null)\n const baseClassName = useStyle({\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n })\n\n useEffect(() => {\n if (element == null || control == null) return\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => control.changeContainerBoxModel(boxModel),\n })\n }, [element, control])\n\n return (\n <As {...restOfProps} ref={setElement} className={cx(baseClassName, className)}>\n {children}\n </As>\n )\n}\n\nSlot.Placeholder = SlotPlaceholder\n\nSlot.Item = SlotItem\n\ntype SlotItemProps<T extends ElementType> = {\n as?: T\n control: SlotControl | null\n grid: SlotControlData['columns']\n index: number\n children?: ReactNode\n className?: string\n}\n\nfunction SlotItem<T extends ElementType = 'div'>({\n as,\n control,\n grid,\n index,\n children,\n className,\n ...restOfProps\n}: SlotItemProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof SlotItemProps<T>>): JSX.Element {\n const As = as ?? 'div'\n const [element, setElement] = useState<Element | null>(null)\n const baseClassName = useStyle({\n display: 'flex',\n ...useResponsiveStyle([grid], ([{ count = 12, spans = [[12]] } = {}]) => {\n const [rowIndex, columnIndex] = getIndexes(spans, index)\n const span = spans[rowIndex][columnIndex]\n const flexBasis = `calc(100% * ${(span / count).toFixed(5)})`\n\n return span === 0 ? { display: 'none' } : { flexBasis, minWidth: flexBasis }\n }),\n })\n\n useEffect(() => {\n if (element == null || control == null) return\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => control.changeItemBoxModel(index, boxModel),\n })\n }, [element, control, index])\n\n return (\n <As {...restOfProps} ref={setElement} className={cx(baseClassName, className)}>\n {children}\n </As>\n )\n}\n\ntype SlotPlaceholderProps = {\n control: SlotControl | null\n}\n\nfunction SlotPlaceholder({ control }: SlotPlaceholderProps): JSX.Element {\n const [element, setElement] = useState<Element | null>(null)\n\n useEffect(() => {\n if (element == null || control == null) return\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => control.changeContainerBoxModel(boxModel),\n })\n }, [element, control])\n\n return (\n <div\n ref={setElement}\n className={useStyle({\n width: '100%',\n background: 'rgba(161, 168, 194, 0.18)',\n height: '80px',\n })}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n className={useStyle({ overflow: 'visible', padding: 8 })}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </div>\n )\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/slot.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, ElementType, ReactNode, useEffect, useState, memo } from 'react'\nimport { cx } from '@emotion/css'\n\nimport { SlotDefinition, SlotControl, type DataType } from '@makeswift/controls'\n\nimport { Element } from '../components/Element'\nimport { getIndexes } from '../../../components/utils/columns'\nimport { useResponsiveStyle } from '../../../components/utils/responsive-style'\nimport { useStyle } from '../use-style'\nimport { pollBoxModel } from '../poll-box-model'\n\nexport function useSlot(\n data: DataType<SlotDefinition<ReactNode>> | undefined,\n control: SlotControl | null,\n) {\n return <SlotValue data={data} control={control} />\n}\n\nconst SlotValue = memo(\n ({\n data,\n control,\n }: {\n data: DataType<SlotDefinition<ReactNode>> | undefined\n control: SlotControl | null\n }): ReactNode => {\n // TODO(miguel): While the UI shouldn't allow the state, we should probably check that at least\n // one element is visible.\n if (data == null || data.elements.length === 0) {\n return <Slot.Placeholder control={control} />\n }\n\n return (\n <Slot control={control}>\n {data.elements.map((element, i) => (\n <Slot.Item key={element.key} control={control} grid={data.columns} index={i}>\n <Element element={element} />\n </Slot.Item>\n ))}\n </Slot>\n )\n },\n)\n\ntype SlotProps<T extends ElementType> = {\n as?: T\n control: SlotControl | null\n children?: ReactNode\n className?: string\n}\n\nexport function Slot<T extends ElementType = 'div'>({\n as,\n control,\n children,\n className,\n ...restOfProps\n}: SlotProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof SlotProps<T>>) {\n const As = as ?? 'div'\n const [element, setElement] = useState<Element | null>(null)\n const baseClassName = useStyle({\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n })\n\n useEffect(() => {\n if (element == null || control == null) return\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => control.changeContainerBoxModel(boxModel),\n })\n }, [element, control])\n\n return (\n <As {...restOfProps} ref={setElement} className={cx(baseClassName, className)}>\n {children}\n </As>\n )\n}\n\nSlot.Placeholder = SlotPlaceholder\n\nSlot.Item = SlotItem\n\ntype SlotItemProps<T extends ElementType> = {\n as?: T\n control: SlotControl | null\n // @arvin: review for correctness\n grid: DataType<SlotDefinition<ReactNode>> extends undefined\n ? undefined\n : NonNullable<DataType<SlotDefinition<ReactNode>>>['columns']\n index: number\n children?: ReactNode\n className?: string\n}\n\nfunction SlotItem<T extends ElementType = 'div'>({\n as,\n control,\n grid,\n index,\n children,\n className,\n ...restOfProps\n}: SlotItemProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof SlotItemProps<T>>): JSX.Element {\n const As = as ?? 'div'\n const [element, setElement] = useState<Element | null>(null)\n const baseClassName = useStyle({\n display: 'flex',\n ...useResponsiveStyle([grid], ([{ count = 12, spans = [[12]] } = {}]) => {\n const [rowIndex, columnIndex] = getIndexes(spans, index)\n const span = spans[rowIndex][columnIndex]\n const flexBasis = `calc(100% * ${(span / count).toFixed(5)})`\n\n return span === 0 ? { display: 'none' } : { flexBasis, minWidth: flexBasis }\n }),\n })\n\n useEffect(() => {\n if (element == null || control == null) return\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => control.changeItemBoxModel(index, boxModel),\n })\n }, [element, control, index])\n\n return (\n <As {...restOfProps} ref={setElement} className={cx(baseClassName, className)}>\n {children}\n </As>\n )\n}\n\ntype SlotPlaceholderProps = {\n control: SlotControl | null\n}\n\nfunction SlotPlaceholder({ control }: SlotPlaceholderProps): JSX.Element {\n const [element, setElement] = useState<Element | null>(null)\n\n useEffect(() => {\n if (element == null || control == null) return\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => control.changeContainerBoxModel(boxModel),\n })\n }, [element, control])\n\n return (\n <div\n ref={setElement}\n className={useStyle({\n width: '100%',\n background: 'rgba(161, 168, 194, 0.18)',\n height: '80px',\n })}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n className={useStyle({ overflow: 'visible', padding: 8 })}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </div>\n )\n}\n"],"mappings":"AAeS;AAfT,SAA2D,WAAW,UAAU,YAAY;AAC5F,SAAS,UAAU;AAInB,SAAS,eAAe;AACxB,SAAS,kBAAkB;AAC3B,SAAS,0BAA0B;AACnC,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAEtB,SAAS,QACd,MACA,SACA;AACA,SAAO,oBAAC,aAAU,MAAY,SAAkB;AAClD;AAEA,MAAM,YAAY;AAAA,EAChB,CAAC;AAAA,IACC;AAAA,IACA;AAAA,EACF,MAGiB;AAGf,QAAI,QAAQ,QAAQ,KAAK,SAAS,WAAW,GAAG;AAC9C,aAAO,oBAAC,KAAK,aAAL,EAAiB,SAAkB;AAAA,IAC7C;AAEA,WACE,oBAAC,QAAK,SACH,eAAK,SAAS,IAAI,CAAC,SAAS,MAC3B,oBAAC,KAAK,MAAL,EAA4B,SAAkB,MAAM,KAAK,SAAS,OAAO,GACxE,8BAAC,WAAQ,SAAkB,KADb,QAAQ,GAExB,CACD,GACH;AAAA,EAEJ;AACF;AASO,SAAS,KAAoC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyE;AACvE,QAAM,KAAK,MAAM;AACjB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAyB,IAAI;AAC3D,QAAM,gBAAgB,SAAS;AAAA,IAC7B,SAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,EACT,CAAC;AAED,YAAU,MAAM;AACd,QAAI,WAAW,QAAQ,WAAW;AAAM;AAExC,WAAO,aAAa;AAAA,MAClB;AAAA,MACA,kBAAkB,cAAY,QAAQ,wBAAwB,QAAQ;AAAA,IACxE,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,SACE,oBAAC,MAAI,GAAG,aAAa,KAAK,YAAY,WAAW,GAAG,eAAe,SAAS,GACzE,UACH;AAEJ;AAEA,KAAK,cAAc;AAEnB,KAAK,OAAO;AAcZ,SAAS,SAAwC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA8F;AAC5F,QAAM,KAAK,MAAM;AACjB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAyB,IAAI;AAC3D,QAAM,gBAAgB,SAAS;AAAA,IAC7B,SAAS;AAAA,IACT,GAAG,mBAAmB,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,QAAQ,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM;AACvE,YAAM,CAAC,UAAU,WAAW,IAAI,WAAW,OAAO,KAAK;AACvD,YAAM,OAAO,MAAM,QAAQ,EAAE,WAAW;AACxC,YAAM,YAAY,gBAAgB,OAAO,OAAO,QAAQ,CAAC,CAAC;AAE1D,aAAO,SAAS,IAAI,EAAE,SAAS,OAAO,IAAI,EAAE,WAAW,UAAU,UAAU;AAAA,IAC7E,CAAC;AAAA,EACH,CAAC;AAED,YAAU,MAAM;AACd,QAAI,WAAW,QAAQ,WAAW;AAAM;AAExC,WAAO,aAAa;AAAA,MAClB;AAAA,MACA,kBAAkB,cAAY,QAAQ,mBAAmB,OAAO,QAAQ;AAAA,IAC1E,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,SAAS,KAAK,CAAC;AAE5B,SACE,oBAAC,MAAI,GAAG,aAAa,KAAK,YAAY,WAAW,GAAG,eAAe,SAAS,GACzE,UACH;AAEJ;AAMA,SAAS,gBAAgB,EAAE,QAAQ,GAAsC;AACvE,QAAM,CAAC,SAAS,UAAU,IAAI,SAAyB,IAAI;AAE3D,YAAU,MAAM;AACd,QAAI,WAAW,QAAQ,WAAW;AAAM;AAExC,WAAO,aAAa;AAAA,MAClB;AAAA,MACA,kBAAkB,cAAY,QAAQ,wBAAwB,QAAQ;AAAA,IACxE,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAW,SAAS;AAAA,QAClB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,QAAQ;AAAA,MACV,CAAC;AAAA,MAED;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,OAAM;AAAA,UACN,QAAO;AAAA,UACP,WAAW,SAAS,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC;AAAA,UAEvD;AAAA,YAAC;AAAA;AAAA,cACC,GAAG;AAAA,cACH,GAAG;AAAA,cACH,OAAM;AAAA,cACN,QAAO;AAAA,cACP,aAAa;AAAA,cACb,iBAAgB;AAAA,cAChB,MAAK;AAAA,cACL,QAAO;AAAA,cACP,IAAG;AAAA,cACH,IAAG;AAAA;AAAA,UACL;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -46,16 +46,11 @@ function StyleV2ControlValue({
46
46
  control
47
47
  }) {
48
48
  return (data ?? []).reduceRight(
49
- (renderFn, deviceOverrideData) => (responsiveValue) => {
50
- return /* @__PURE__ */ jsx(
51
- ControlValue,
52
- {
53
- definition: definition.config.type,
54
- data: deviceOverrideData.value,
55
- control: control?.control,
56
- children: (value) => renderFn([{ ...deviceOverrideData, value }, ...responsiveValue])
57
- }
58
- );
49
+ (renderFn, { deviceId, value }) => (responsiveValue) => {
50
+ return /* @__PURE__ */ jsx(ControlValue, { definition: definition.config.type, data: value, control: control?.child(), children: (value2) => renderFn([
51
+ { deviceId, value: value2 },
52
+ ...responsiveValue
53
+ ]) });
59
54
  },
60
55
  (value) => {
61
56
  return /* @__PURE__ */ jsx(
@@ -65,7 +60,7 @@ function StyleV2ControlValue({
65
60
  parameters: [value, definition],
66
61
  children: (value2) => children(value2)
67
62
  },
68
- definition.type
63
+ definition.controlType
69
64
  );
70
65
  }
71
66
  )([]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/style-v2.tsx"],"sourcesContent":["import { DeviceOverride } from '@makeswift/controls'\nimport { StyleV2Control, StyleV2ControlData, StyleV2ControlDefinition } from '../../../controls'\nimport { useStyle } from '../use-style'\nimport {\n findBreakpointOverride,\n getBaseBreakpoint,\n getBreakpointMediaQuery,\n mergeOrCoalesceFallbacks,\n} from '../../../state/modules/breakpoints'\nimport { CSSObject } from '@emotion/css'\n\nimport { ControlDefinitionValue, ControlValue } from './control'\nimport { RenderHook } from '../components'\nimport { useBreakpoints } from '../hooks/use-breakpoints'\n\nfunction useStyleControlCssObject(\n styleControlData: StyleV2ControlData,\n controlDefinition: StyleV2ControlDefinition,\n): CSSObject {\n const breakpoints = useBreakpoints()\n\n return {\n ...controlDefinition.config.getStyle(\n findBreakpointOverride(\n breakpoints,\n styleControlData,\n getBaseBreakpoint(breakpoints).id,\n mergeOrCoalesceFallbacks,\n )?.value,\n ),\n ...breakpoints.reduce((styles, breakpoint) => {\n return {\n ...styles,\n [getBreakpointMediaQuery(breakpoint)]: controlDefinition.config.getStyle(\n findBreakpointOverride(\n breakpoints,\n styleControlData,\n breakpoint.id,\n mergeOrCoalesceFallbacks,\n )?.value,\n ),\n }\n }, {}),\n }\n}\n\nexport type StyleV2ControlFormattedValue = string\n\nexport function useFormattedStyleV2<T extends StyleV2ControlDefinition>(\n styleControlData: StyleV2ControlData,\n controlDefinition: T,\n): StyleV2ControlFormattedValue {\n const styles = useStyleControlCssObject(styleControlData, controlDefinition)\n\n return useStyle(styles)\n}\n\ntype StyleV2ControlValueProps<T extends StyleV2ControlDefinition> = {\n definition: T\n data: StyleV2ControlData | undefined\n children(value: string): JSX.Element\n control?: StyleV2Control\n}\n\nexport function StyleV2ControlValue<T extends StyleV2ControlDefinition>({\n definition,\n data,\n children,\n control,\n}: StyleV2ControlValueProps<T>): JSX.Element {\n return (data ?? []).reduceRight(\n (renderFn, deviceOverrideData: DeviceOverride<any>) => responsiveValue => {\n return (\n <ControlValue\n definition={definition.config.type}\n data={deviceOverrideData.value}\n control={control?.control}\n >\n {value => renderFn([{ ...deviceOverrideData, value }, ...responsiveValue])}\n </ControlValue>\n )\n },\n (value: StyleV2ControlData) => {\n return (\n <RenderHook\n key={definition.type}\n hook={useFormattedStyleV2}\n parameters={[value, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n },\n )([])\n}\n"],"mappings":"AAyEQ;AAvER,SAAS,gBAAgB;AACzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,SAAiC,oBAAoB;AACrD,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAE/B,SAAS,yBACP,kBACA,mBACW;AACX,QAAM,cAAc,eAAe;AAEnC,SAAO;AAAA,IACL,GAAG,kBAAkB,OAAO;AAAA,MAC1B;AAAA,QACE;AAAA,QACA;AAAA,QACA,kBAAkB,WAAW,EAAE;AAAA,QAC/B;AAAA,MACF,GAAG;AAAA,IACL;AAAA,IACA,GAAG,YAAY,OAAO,CAAC,QAAQ,eAAe;AAC5C,aAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,wBAAwB,UAAU,CAAC,GAAG,kBAAkB,OAAO;AAAA,UAC9D;AAAA,YACE;AAAA,YACA;AAAA,YACA,WAAW;AAAA,YACX;AAAA,UACF,GAAG;AAAA,QACL;AAAA,MACF;AAAA,IACF,GAAG,CAAC,CAAC;AAAA,EACP;AACF;AAIO,SAAS,oBACd,kBACA,mBAC8B;AAC9B,QAAM,SAAS,yBAAyB,kBAAkB,iBAAiB;AAE3E,SAAO,SAAS,MAAM;AACxB;AASO,SAAS,oBAAwD;AAAA,EACtE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6C;AAC3C,UAAQ,QAAQ,CAAC,GAAG;AAAA,IAClB,CAAC,UAAU,uBAA4C,qBAAmB;AACxE,aACE;AAAA,QAAC;AAAA;AAAA,UACC,YAAY,WAAW,OAAO;AAAA,UAC9B,MAAM,mBAAmB;AAAA,UACzB,SAAS,SAAS;AAAA,UAEjB,qBAAS,SAAS,CAAC,EAAE,GAAG,oBAAoB,MAAM,GAAG,GAAG,eAAe,CAAC;AAAA;AAAA,MAC3E;AAAA,IAEJ;AAAA,IACA,CAAC,UAA8B;AAC7B,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,OAAO,UAAU;AAAA,UAE7B,WAAAA,WAAS,SAASA,MAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAEJ;AAAA,EACF,EAAE,CAAC,CAAC;AACN;","names":["value"]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/style-v2.tsx"],"sourcesContent":["import { CSSObject } from '@emotion/css'\nimport {\n type ResponsiveValue,\n type ResolvedValueType,\n type DataType,\n type DeviceOverride,\n} from '@makeswift/controls'\n\nimport { StyleV2Definition, StyleV2Control } from '../../../controls/style-v2/style-v2'\n\nimport { useStyle } from '../use-style'\nimport {\n findBreakpointOverride,\n getBaseBreakpoint,\n getBreakpointMediaQuery,\n mergeOrCoalesceFallbacks,\n} from '../../../state/modules/breakpoints'\n\nimport { ControlValue } from './control'\nimport { RenderHook } from '../components'\nimport { useBreakpoints } from '../hooks/use-breakpoints'\n\nfunction useStyleControlCssObject(\n styleControlData: ResponsiveValue<ResolvedValueType<StyleV2Definition>>,\n controlDefinition: StyleV2Definition,\n): CSSObject {\n const breakpoints = useBreakpoints()\n\n return {\n ...controlDefinition.config.getStyle(\n findBreakpointOverride(\n breakpoints,\n styleControlData,\n getBaseBreakpoint(breakpoints).id,\n mergeOrCoalesceFallbacks,\n )?.value,\n ),\n ...breakpoints.reduce((styles, breakpoint) => {\n return {\n ...styles,\n [getBreakpointMediaQuery(breakpoint)]: controlDefinition.config.getStyle(\n findBreakpointOverride(\n breakpoints,\n styleControlData,\n breakpoint.id,\n mergeOrCoalesceFallbacks,\n )?.value,\n ),\n }\n }, {}),\n }\n}\n\nexport function useFormattedStyleV2(\n styleControlData: ResponsiveValue<ResolvedValueType<StyleV2Definition>>,\n controlDefinition: StyleV2Definition,\n): ResolvedValueType<StyleV2Definition> {\n const styles = useStyleControlCssObject(styleControlData, controlDefinition)\n\n return useStyle(styles)\n}\n\ntype ValueProps = {\n definition: StyleV2Definition\n data: DataType<StyleV2Definition> | undefined\n children(value: string): JSX.Element\n control?: StyleV2Control\n}\n\nexport function StyleV2ControlValue({\n definition,\n data,\n children,\n control,\n}: ValueProps): JSX.Element {\n return (data ?? []).reduceRight(\n (renderFn, { deviceId, value }: DeviceOverride<DataType<StyleV2Definition>>) =>\n responsiveValue => {\n return (\n <ControlValue definition={definition.config.type} data={value} control={control?.child()}>\n {value =>\n renderFn([\n { deviceId, value: value as ResolvedValueType<typeof definition.config.type> },\n ...responsiveValue,\n ])\n }\n </ControlValue>\n )\n },\n (value: ResponsiveValue<ResolvedValueType<StyleV2Definition>>) => {\n return (\n <RenderHook\n key={definition.controlType}\n hook={useFormattedStyleV2}\n parameters={[value, definition]}\n >\n {value => children(value)}\n </RenderHook>\n )\n },\n )([])\n}\n"],"mappings":"AA+EU;AArEV,SAAS,gBAAgB;AACzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAE/B,SAAS,yBACP,kBACA,mBACW;AACX,QAAM,cAAc,eAAe;AAEnC,SAAO;AAAA,IACL,GAAG,kBAAkB,OAAO;AAAA,MAC1B;AAAA,QACE;AAAA,QACA;AAAA,QACA,kBAAkB,WAAW,EAAE;AAAA,QAC/B;AAAA,MACF,GAAG;AAAA,IACL;AAAA,IACA,GAAG,YAAY,OAAO,CAAC,QAAQ,eAAe;AAC5C,aAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,wBAAwB,UAAU,CAAC,GAAG,kBAAkB,OAAO;AAAA,UAC9D;AAAA,YACE;AAAA,YACA;AAAA,YACA,WAAW;AAAA,YACX;AAAA,UACF,GAAG;AAAA,QACL;AAAA,MACF;AAAA,IACF,GAAG,CAAC,CAAC;AAAA,EACP;AACF;AAEO,SAAS,oBACd,kBACA,mBACsC;AACtC,QAAM,SAAS,yBAAyB,kBAAkB,iBAAiB;AAE3E,SAAO,SAAS,MAAM;AACxB;AASO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;AAC1B,UAAQ,QAAQ,CAAC,GAAG;AAAA,IAClB,CAAC,UAAU,EAAE,UAAU,MAAM,MAC3B,qBAAmB;AACjB,aACE,oBAAC,gBAAa,YAAY,WAAW,OAAO,MAAM,MAAM,OAAO,SAAS,SAAS,MAAM,GACpF,WAAAA,WACC,SAAS;AAAA,QACP,EAAE,UAAU,OAAOA,OAA0D;AAAA,QAC7E,GAAG;AAAA,MACL,CAAC,GAEL;AAAA,IAEJ;AAAA,IACF,CAAC,UAAiE;AAChE,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,OAAO,UAAU;AAAA,UAE7B,WAAAA,WAAS,SAASA,MAAK;AAAA;AAAA,QAJnB,WAAW;AAAA,MAKlB;AAAA,IAEJ;AAAA,EACF,EAAE,CAAC,CAAC;AACN;","names":["value"]}
@@ -1,10 +1,10 @@
1
1
  import { useEffect, useId } from "react";
2
+ import {
3
+ Style
4
+ } from "@makeswift/controls";
2
5
  import { useBorder } from "../../../components/hooks";
3
6
  import { colorToString } from "../../../components/utils/colorToString";
4
7
  import { useResponsiveStyle } from "../../../components/utils/responsive-style";
5
- import {
6
- StyleControlProperty
7
- } from "../../../controls";
8
8
  import { useStyle } from "../use-style";
9
9
  import { lengthPercentageDataToString } from "../../../css/length-percentage";
10
10
  import { marginPropertyDataToStyle } from "../../../css/margin";
@@ -26,7 +26,7 @@ const defaultPadding = {
26
26
  function useStyleControlCssObject(style, controlDefinition) {
27
27
  const { properties } = controlDefinition.config;
28
28
  return {
29
- ...properties.includes(StyleControlProperty.Width) && {
29
+ ...properties.includes(Style.Width) && {
30
30
  maxWidth: "100%"
31
31
  },
32
32
  ...useResponsiveStyle(
@@ -39,24 +39,24 @@ function useStyleControlCssObject(style, controlDefinition) {
39
39
  style?.textStyle
40
40
  ],
41
41
  ([width, margin, padding, border, borderRadius, textStyle]) => ({
42
- ...properties.includes(StyleControlProperty.Width) && {
42
+ ...properties.includes(Style.Width) && {
43
43
  width: widthToString(width) ?? "100%"
44
44
  },
45
- ...properties.includes(StyleControlProperty.Margin) && marginPropertyDataToStyle(margin ?? defaultMargin, defaultMargin),
46
- ...properties.includes(StyleControlProperty.Padding) && paddingPropertyDataToStyle(padding ?? defaultPadding, defaultPadding),
47
- ...properties.includes(StyleControlProperty.Border) && {
45
+ ...properties.includes(Style.Margin) && marginPropertyDataToStyle(margin ?? defaultMargin, defaultMargin),
46
+ ...properties.includes(Style.Padding) && paddingPropertyDataToStyle(padding ?? defaultPadding, defaultPadding),
47
+ ...properties.includes(Style.Border) && {
48
48
  borderTop: borderSideToString(border?.borderTop) ?? "0 solid black",
49
49
  borderRight: borderSideToString(border?.borderRight) ?? "0 solid black",
50
50
  borderBottom: borderSideToString(border?.borderBottom) ?? "0 solid black",
51
51
  borderLeft: borderSideToString(border?.borderLeft) ?? "0 solid black"
52
52
  },
53
- ...properties.includes(StyleControlProperty.BorderRadius) && {
53
+ ...properties.includes(Style.BorderRadius) && {
54
54
  borderTopLeftRadius: borderRadiusToString(borderRadius?.borderTopLeftRadius) ?? 0,
55
55
  borderTopRightRadius: borderRadiusToString(borderRadius?.borderTopRightRadius) ?? 0,
56
56
  borderBottomRightRadius: borderRadiusToString(borderRadius?.borderBottomRightRadius) ?? 0,
57
57
  borderBottomLeftRadius: borderRadiusToString(borderRadius?.borderBottomLeftRadius) ?? 0
58
58
  },
59
- ...properties.includes(StyleControlProperty.TextStyle) && {
59
+ ...properties.includes(Style.TextStyle) && {
60
60
  ...textStyle?.fontFamily && { fontFamily: `"${textStyle.fontFamily}"` },
61
61
  ...textStyle?.letterSpacing && { letterSpacing: textStyle.letterSpacing },
62
62
  ...textStyle?.fontSize && { fontSize: fontSizeToString(textStyle.fontSize) },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/style.ts"],"sourcesContent":["import { CSSObject } from '@emotion/css'\nimport { useEffect, useId } from 'react'\n\nimport { useBorder, BorderSide } from '../../../components/hooks'\nimport { colorToString } from '../../../components/utils/colorToString'\nimport { useResponsiveStyle } from '../../../components/utils/responsive-style'\n\nimport {\n FontSizePropertyData,\n StyleControl,\n StyleControlData,\n StyleControlDefinition,\n StyleControlProperty,\n WidthPropertyData,\n} from '../../../controls'\nimport { useStyle } from '../use-style'\nimport { BorderRadiusLonghandPropertyData } from '../../../css/border-radius'\nimport { lengthPercentageDataToString } from '../../../css/length-percentage'\nimport { marginPropertyDataToStyle } from '../../../css/margin'\nimport { paddingPropertyDataToStyle } from '../../../css/padding'\nimport { BoxModel, getBox } from '../../../box-model'\nimport deepEqual from '../../../utils/deepEqual'\n\nconst defaultMargin = {\n marginTop: 0,\n marginRight: 'auto',\n marginBottom: 0,\n marginLeft: 'auto',\n}\n\nconst defaultPadding = {\n paddingTop: 0,\n paddingRight: 0,\n paddingBottom: 0,\n paddingLeft: 0,\n}\n\nfunction useStyleControlCssObject(\n style: StyleControlData | undefined,\n controlDefinition: StyleControlDefinition,\n): CSSObject {\n const { properties } = controlDefinition.config\n\n return {\n ...(properties.includes(StyleControlProperty.Width) && {\n maxWidth: '100%',\n }),\n ...useResponsiveStyle(\n [\n style?.width,\n style?.margin,\n style?.padding,\n useBorder(style?.border),\n style?.borderRadius,\n style?.textStyle,\n ] as const,\n ([width, margin, padding, border, borderRadius, textStyle]) => ({\n ...(properties.includes(StyleControlProperty.Width) && {\n width: widthToString(width) ?? '100%',\n }),\n ...(properties.includes(StyleControlProperty.Margin) &&\n marginPropertyDataToStyle(margin ?? defaultMargin, defaultMargin)),\n ...(properties.includes(StyleControlProperty.Padding) &&\n paddingPropertyDataToStyle(padding ?? defaultPadding, defaultPadding)),\n ...(properties.includes(StyleControlProperty.Border) && {\n borderTop: borderSideToString(border?.borderTop) ?? '0 solid black',\n borderRight: borderSideToString(border?.borderRight) ?? '0 solid black',\n borderBottom: borderSideToString(border?.borderBottom) ?? '0 solid black',\n borderLeft: borderSideToString(border?.borderLeft) ?? '0 solid black',\n }),\n ...(properties.includes(StyleControlProperty.BorderRadius) && {\n borderTopLeftRadius: borderRadiusToString(borderRadius?.borderTopLeftRadius) ?? 0,\n borderTopRightRadius: borderRadiusToString(borderRadius?.borderTopRightRadius) ?? 0,\n borderBottomRightRadius: borderRadiusToString(borderRadius?.borderBottomRightRadius) ?? 0,\n borderBottomLeftRadius: borderRadiusToString(borderRadius?.borderBottomLeftRadius) ?? 0,\n }),\n ...(properties.includes(StyleControlProperty.TextStyle) && {\n ...(textStyle?.fontFamily && { fontFamily: `\"${textStyle.fontFamily}\"` }),\n ...(textStyle?.letterSpacing && { letterSpacing: textStyle.letterSpacing }),\n ...(textStyle?.fontSize && { fontSize: fontSizeToString(textStyle.fontSize) }),\n ...(textStyle?.fontWeight && { fontWeight: textStyle.fontWeight }),\n textTransform: textStyle?.textTransform ?? [],\n fontStyle: textStyle?.fontStyle ?? [],\n }),\n }),\n ),\n }\n\n function widthToString(widthProperty: WidthPropertyData | undefined): string | null {\n if (widthProperty == null) return null\n\n return lengthPercentageDataToString(widthProperty)\n }\n\n function borderSideToString(borderSide: BorderSide | null | undefined): string | null {\n if (borderSide == null) return null\n\n const { width, color, style } = borderSide\n return `${width != null ? width : 0}px ${style} ${\n color != null ? colorToString(color) : 'black'\n }`\n }\n\n function borderRadiusToString(\n borderRadius: BorderRadiusLonghandPropertyData | null | undefined,\n ): string | null {\n if (borderRadius == null) return null\n\n return lengthPercentageDataToString(borderRadius)\n }\n\n function fontSizeToString(fontSize: NonNullable<FontSizePropertyData>) {\n return `${fontSize.value}${fontSize.unit}`\n }\n}\n\nexport type StyleControlFormattedValue = string\n\nexport function useFormattedStyle(\n styleControlData: StyleControlData | undefined,\n controlDefinition: StyleControlDefinition,\n control: StyleControl | null,\n): StyleControlFormattedValue {\n const style = useStyleControlCssObject(styleControlData, controlDefinition)\n // We're removing the colons because useId returns a string wrapped with colons, e.g. \":R3d5sm:\",\n // and we cannot use colons in a class name.\n const guid = useId().replaceAll(':', '')\n const styleClassName = useStyle(style)\n const classNames = `${styleClassName} ${guid}`\n\n useEffect(() => {\n let currentBoxModel: BoxModel | null = null\n\n const handleAnimationFrameRequest = () => {\n if (control == null) return\n\n const element = document.querySelector(`.${guid}`)\n\n const measuredBoxModel = element == null ? null : getBox(element)\n\n if (!deepEqual(currentBoxModel, measuredBoxModel)) {\n currentBoxModel = measuredBoxModel\n\n control.changeBoxModel(currentBoxModel)\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n\n control?.changeBoxModel(null)\n }\n }, [guid, control])\n\n return classNames\n}\n"],"mappings":"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","names":["style"]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/style.ts"],"sourcesContent":["import { CSSObject } from '@emotion/css'\nimport { useEffect, useId } from 'react'\n\nimport {\n Style,\n StyleDefinition,\n StyleControl,\n type DataType,\n type FontSizePropertyData,\n type WidthPropertyData,\n} from '@makeswift/controls'\n\nimport { useBorder, BorderSide } from '../../../components/hooks'\nimport { colorToString } from '../../../components/utils/colorToString'\nimport { useResponsiveStyle } from '../../../components/utils/responsive-style'\n\nimport { useStyle } from '../use-style'\nimport { BorderRadiusLonghandPropertyData } from '../../../css/border-radius'\nimport { lengthPercentageDataToString } from '../../../css/length-percentage'\nimport { marginPropertyDataToStyle } from '../../../css/margin'\nimport { paddingPropertyDataToStyle } from '../../../css/padding'\nimport { BoxModel, getBox } from '../../../box-model'\nimport deepEqual from '../../../utils/deepEqual'\n\nconst defaultMargin = {\n marginTop: 0,\n marginRight: 'auto',\n marginBottom: 0,\n marginLeft: 'auto',\n}\n\nconst defaultPadding = {\n paddingTop: 0,\n paddingRight: 0,\n paddingBottom: 0,\n paddingLeft: 0,\n}\n\nfunction useStyleControlCssObject(\n style: DataType<StyleDefinition> | undefined,\n controlDefinition: StyleDefinition,\n): CSSObject {\n const { properties } = controlDefinition.config\n\n return {\n ...(properties.includes(Style.Width) && {\n maxWidth: '100%',\n }),\n ...useResponsiveStyle(\n [\n style?.width,\n style?.margin,\n style?.padding,\n useBorder(style?.border),\n style?.borderRadius,\n style?.textStyle,\n ] as const,\n ([width, margin, padding, border, borderRadius, textStyle]) => ({\n ...(properties.includes(Style.Width) && {\n width: widthToString(width) ?? '100%',\n }),\n ...(properties.includes(Style.Margin) &&\n marginPropertyDataToStyle(margin ?? defaultMargin, defaultMargin)),\n ...(properties.includes(Style.Padding) &&\n paddingPropertyDataToStyle(padding ?? defaultPadding, defaultPadding)),\n ...(properties.includes(Style.Border) && {\n borderTop: borderSideToString(border?.borderTop) ?? '0 solid black',\n borderRight: borderSideToString(border?.borderRight) ?? '0 solid black',\n borderBottom: borderSideToString(border?.borderBottom) ?? '0 solid black',\n borderLeft: borderSideToString(border?.borderLeft) ?? '0 solid black',\n }),\n ...(properties.includes(Style.BorderRadius) && {\n borderTopLeftRadius: borderRadiusToString(borderRadius?.borderTopLeftRadius) ?? 0,\n borderTopRightRadius: borderRadiusToString(borderRadius?.borderTopRightRadius) ?? 0,\n borderBottomRightRadius: borderRadiusToString(borderRadius?.borderBottomRightRadius) ?? 0,\n borderBottomLeftRadius: borderRadiusToString(borderRadius?.borderBottomLeftRadius) ?? 0,\n }),\n ...(properties.includes(Style.TextStyle) && {\n ...(textStyle?.fontFamily && { fontFamily: `\"${textStyle.fontFamily}\"` }),\n ...(textStyle?.letterSpacing && { letterSpacing: textStyle.letterSpacing }),\n ...(textStyle?.fontSize && { fontSize: fontSizeToString(textStyle.fontSize) }),\n ...(textStyle?.fontWeight && { fontWeight: textStyle.fontWeight }),\n textTransform: textStyle?.textTransform ?? [],\n fontStyle: textStyle?.fontStyle ?? [],\n }),\n }),\n ),\n }\n\n function widthToString(widthProperty: WidthPropertyData | undefined): string | null {\n if (widthProperty == null) return null\n\n return lengthPercentageDataToString(widthProperty)\n }\n\n function borderSideToString(borderSide: BorderSide | null | undefined): string | null {\n if (borderSide == null) return null\n\n const { width, color, style } = borderSide\n return `${width != null ? width : 0}px ${style} ${\n color != null ? colorToString(color) : 'black'\n }`\n }\n\n function borderRadiusToString(\n borderRadius: BorderRadiusLonghandPropertyData | null | undefined,\n ): string | null {\n if (borderRadius == null) return null\n\n return lengthPercentageDataToString(borderRadius)\n }\n\n function fontSizeToString(fontSize: NonNullable<FontSizePropertyData>) {\n return `${fontSize.value}${fontSize.unit}`\n }\n}\n\nexport type StyleControlFormattedValue = string\n\nexport function useFormattedStyle(\n styleControlData: DataType<StyleDefinition> | undefined,\n controlDefinition: StyleDefinition,\n control: StyleControl | null,\n): StyleControlFormattedValue {\n const style = useStyleControlCssObject(styleControlData, controlDefinition)\n // We're removing the colons because useId returns a string wrapped with colons, e.g. \":R3d5sm:\",\n // and we cannot use colons in a class name.\n const guid = useId().replaceAll(':', '')\n const styleClassName = useStyle(style)\n const classNames = `${styleClassName} ${guid}`\n\n useEffect(() => {\n let currentBoxModel: BoxModel | null = null\n\n const handleAnimationFrameRequest = () => {\n if (control == null) return\n\n const element = document.querySelector(`.${guid}`)\n\n const measuredBoxModel = element == null ? null : getBox(element)\n\n if (!deepEqual(currentBoxModel, measuredBoxModel)) {\n currentBoxModel = measuredBoxModel\n\n control.changeBoxModel(currentBoxModel)\n }\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n\n control?.changeBoxModel(null)\n }\n }, [guid, control])\n\n return classNames\n}\n"],"mappings":"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","names":["style"]}
@@ -1,11 +1,5 @@
1
- import { match } from "ts-pattern";
2
- import {
3
- TextAreaControlDataTypeKey,
4
- TextAreaControlDataTypeValueV1
5
- } from "@makeswift/controls";
6
1
  function useTextAreaValue(data, definition) {
7
- const value = match(data).with({ [TextAreaControlDataTypeKey]: TextAreaControlDataTypeValueV1 }, (val) => val.value).otherwise((val) => val) ?? definition.config.defaultValue;
8
- return value;
2
+ return definition.fromData(data) ?? definition.config.defaultValue;
9
3
  }
10
4
  export {
11
5
  useTextAreaValue
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/text-area.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n TextAreaControlData,\n TextAreaControlDataTypeKey,\n TextAreaControlDataTypeValueV1,\n TextAreaControlDefinition,\n} from '@makeswift/controls'\n\nexport type TextAreaControlValue<T extends TextAreaControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextAreaValue<T extends TextAreaControlDefinition>(\n data: TextAreaControlData | undefined,\n definition: T,\n): TextAreaControlValue<T> {\n const value: string | undefined =\n match(data)\n .with({ [TextAreaControlDataTypeKey]: TextAreaControlDataTypeValueV1 }, val => val.value)\n .otherwise(val => val) ?? definition.config.defaultValue\n\n return value as TextAreaControlValue<T>\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAKA,SAAS,iBACd,MACA,YACyB;AACzB,QAAM,QACJ,MAAM,IAAI,EACP,KAAK,EAAE,CAAC,0BAA0B,GAAG,+BAA+B,GAAG,SAAO,IAAI,KAAK,EACvF,UAAU,SAAO,GAAG,KAAK,WAAW,OAAO;AAEhD,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/text-area.ts"],"sourcesContent":["import { type DataType, type ResolvedValueType } from '@makeswift/controls'\n\nimport { TextAreaDefinition } from '../../../controls'\n\nexport function useTextAreaValue(\n data: DataType<TextAreaDefinition> | undefined,\n definition: TextAreaDefinition,\n): ResolvedValueType<TextAreaDefinition> {\n return definition.fromData(data) ?? definition.config.defaultValue\n}\n"],"mappings":"AAIO,SAAS,iBACd,MACA,YACuC;AACvC,SAAO,WAAW,SAAS,IAAI,KAAK,WAAW,OAAO;AACxD;","names":[]}
@@ -1,11 +1,5 @@
1
- import { match } from "ts-pattern";
2
- import {
3
- TextInputControlDataTypeKey,
4
- TextInputControlDataTypeValueV1
5
- } from "@makeswift/controls";
6
1
  function useTextInputValue(data, definition) {
7
- const value = match(data).with({ [TextInputControlDataTypeKey]: TextInputControlDataTypeValueV1 }, (val) => val.value).otherwise((val) => val) ?? definition.config.defaultValue;
8
- return value;
2
+ return definition.fromData(data) ?? definition.config.defaultValue;
9
3
  }
10
4
  export {
11
5
  useTextInputValue
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/text-input.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n TextInputControlData,\n TextInputControlDataTypeKey,\n TextInputControlDataTypeValueV1,\n TextInputControlDefinition,\n} from '@makeswift/controls'\n\nexport type TextInputControlValue<T extends TextInputControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextInputValue<T extends TextInputControlDefinition>(\n data: TextInputControlData | undefined,\n definition: T,\n): TextInputControlValue<T> {\n const value: string | undefined =\n match(data)\n .with({ [TextInputControlDataTypeKey]: TextInputControlDataTypeValueV1 }, val => val.value)\n .otherwise(val => val) ?? definition.config.defaultValue\n\n return value as TextInputControlValue<T>\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAKA,SAAS,kBACd,MACA,YAC0B;AAC1B,QAAM,QACJ,MAAM,IAAI,EACP,KAAK,EAAE,CAAC,2BAA2B,GAAG,gCAAgC,GAAG,SAAO,IAAI,KAAK,EACzF,UAAU,SAAO,GAAG,KAAK,WAAW,OAAO;AAEhD,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/text-input.ts"],"sourcesContent":["import { type DataType, type ResolvedValueType } from '@makeswift/controls'\n\nimport { TextInputDefinition } from '../../../controls'\n\nexport function useTextInputValue(\n data: DataType<TextInputDefinition> | undefined,\n definition: TextInputDefinition,\n): ResolvedValueType<TextInputDefinition> {\n return definition.fromData(data) ?? definition.config.defaultValue\n}\n"],"mappings":"AAIO,SAAS,kBACd,MACA,YACwC;AACxC,SAAO,WAAW,SAAS,IAAI,KAAK,WAAW,OAAO;AACxD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/typography.ts"],"sourcesContent":["import { CSSObject } from '@emotion/serialize'\nimport { TypographyControlData } from '../../../controls/typography'\nimport { useSwatches, useTypography } from '../hooks/makeswift-api'\nimport { Typography, Swatch } from '../../../api'\nimport { colorToString } from '../../../components/utils/colorToString'\nimport { useResponsiveStyle } from '../../../components/utils/responsive-style'\nimport { ColorValue } from '../../../components/utils/types'\nimport { DeviceOverride, ResponsiveValue } from '../../../prop-controllers'\nimport { findBreakpointOverride, shallowMergeFallbacks } from '../../../state/modules/breakpoints'\nimport { isNonNullable } from '../../../utils/isNonNullable'\nimport { useStyle } from '../use-style'\nimport { useBreakpoints } from '../hooks/use-breakpoints'\n\nexport function typographyFragementToTypographyControlData(\n typography: Typography | null,\n): TypographyControlData[number] | undefined {\n if (typography == null) return undefined\n return {\n id: typography.id,\n style: typography.style.map(({ deviceId, value }) => ({\n deviceId,\n value: {\n fontFamily: value.fontFamily ?? undefined,\n lineHeight: value.lineHeight ?? undefined,\n letterSpacing: value.letterSpacing ?? undefined,\n fontWeight: value.fontWeight ?? undefined,\n textAlign: value.textAlign ?? undefined,\n uppercase: value.uppercase ?? undefined,\n underline: value.underline ?? undefined,\n strikethrough: value.strikethrough ?? undefined,\n italic: value.italic ?? undefined,\n fontSize: value.fontSize ?? undefined,\n color: value.color ?? undefined,\n },\n })),\n }\n}\n\ntype EnhancedColor = {\n color?: ColorValue\n}\n\nexport type TypographyControlDataValue = Exclude<\n TypographyControlData[number],\n undefined\n>['style'][number]['value']\n\ntype EnhancedTypographyValue = Omit<TypographyControlDataValue, keyof EnhancedColor> & EnhancedColor\n\nexport type EnhancedTypography = Array<DeviceOverride<EnhancedTypographyValue>>\n\nexport function getTypographyStyleSwatchIds(\n style:\n | Exclude<TypographyControlData[number], undefined>['style']\n | Typography['style']\n | null\n | undefined,\n): string[] {\n return (\n style\n ?.map(override => override.value)\n .flatMap(typographyStyle => typographyStyle.color?.swatchId)\n .filter(isNonNullable) ?? []\n )\n}\n\nconst withColor =\n (swatches: Swatch[]) =>\n (\n deviceRawTypographyValue: DeviceOverride<TypographyControlDataValue>,\n ): DeviceOverride<EnhancedTypographyValue> => {\n const { value, deviceId } = deviceRawTypographyValue\n\n if (value.color == null) {\n const { color, ...nextValue } = value\n return {\n deviceId,\n value: nextValue,\n }\n }\n return {\n deviceId,\n value: {\n ...value,\n color: {\n swatch: swatches.find(s => s && s.id === value.color?.swatchId),\n alpha: value.color?.alpha ?? undefined,\n },\n },\n }\n }\n\nconst getDeviceId = ({ deviceId }: DeviceOverride<unknown>) => deviceId\n\n/**\n * `enhanced` here just means typography ids have been replaced with the related entity.\n */\nexport default function useEnhancedTypography(\n value?: TypographyControlData[number] | null,\n): EnhancedTypography {\n const typography = typographyFragementToTypographyControlData(useTypography(value?.id ?? null))\n const source = typography?.style ?? []\n const override = value?.style ?? []\n const breakpoints = useBreakpoints()\n\n const swatchIds = [\n ...getTypographyStyleSwatchIds(value?.style),\n ...getTypographyStyleSwatchIds(typography?.style),\n ]\n const swatches = useSwatches(swatchIds).filter(isNonNullable)\n\n const enhancedSource = source.map(withColor(swatches))\n const enhancedOverride = override.map(withColor(swatches))\n\n const devices = [\n ...new Set(enhancedSource.map(getDeviceId).concat(enhancedOverride.map(getDeviceId))),\n ]\n\n return devices\n .map(deviceId => {\n const deviceSource = findBreakpointOverride(breakpoints, enhancedSource, deviceId)?.value\n const deviceOverride = findBreakpointOverride(\n breakpoints,\n enhancedOverride,\n deviceId,\n v => v,\n )?.value\n\n if (deviceSource && deviceOverride) {\n return {\n deviceId,\n value: { ...deviceSource, ...deviceOverride },\n }\n } else if (deviceOverride) {\n return {\n deviceId,\n value: deviceOverride,\n }\n } else if (deviceSource) {\n return {\n deviceId,\n value: deviceSource,\n }\n }\n return null\n })\n .filter(isNonNullable)\n}\n\nexport function useTypographyClassName(value: EnhancedTypography): string {\n return useStyle(\n useResponsiveStyle<\n EnhancedTypographyValue,\n [ResponsiveValue<EnhancedTypographyValue> | null | undefined]\n >(\n [value],\n ([value]) => {\n if (value === undefined) return {}\n\n let styles: CSSObject = {}\n if (value.color != null) styles.color = colorToString(value.color)\n if (value.fontFamily != null) styles.fontFamily = value.fontFamily\n if (value.fontSize != null && value.fontSize.value != null && value.fontSize.unit != null)\n styles.fontSize = `${value.fontSize.value}${value.fontSize.unit}`\n if (value.fontWeight != null) styles.fontWeight = value.fontWeight\n if (value.lineHeight != null) styles.lineHeight = value.lineHeight\n if (value.letterSpacing != null) styles.letterSpacing = `${value.letterSpacing / 10}em`\n if (value.uppercase != null)\n styles.textTransform = value.uppercase === true ? 'uppercase' : 'initial'\n if (value.underline != null || value.strikethrough != null)\n styles.textDecoration = [\n Boolean(value.underline) && 'underline',\n Boolean(value.strikethrough) && 'line-through',\n ]\n .filter(Boolean)\n .join(' ')\n if (value.italic != null) styles.fontStyle = value.italic === true ? 'italic' : 'initial'\n\n return styles\n },\n shallowMergeFallbacks,\n ),\n )\n}\n\nexport type TypographyControlValue = string\n\nexport function useTypographyValue(\n data: TypographyControlData[number] | undefined,\n): TypographyControlValue {\n // for each breakpoint fetch related resources and merge its value with its override\n const enhancedTypography = useEnhancedTypography(data)\n\n // for each breakpoint shallow merge back up through the breakpoints and create a className\n return useTypographyClassName(enhancedTypography)\n}\n"],"mappings":"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","names":["value"]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/typography.ts"],"sourcesContent":["import { CSSObject } from '@emotion/serialize'\nimport { unstable_TypographyDefinition, type DataType } from '@makeswift/controls'\n\nimport { useSwatches, useTypography } from '../hooks/makeswift-api'\nimport { Typography, Swatch } from '../../../api'\nimport { colorToString } from '../../../components/utils/colorToString'\nimport { useResponsiveStyle } from '../../../components/utils/responsive-style'\nimport { ColorValue } from '../../../components/utils/types'\nimport { DeviceOverride, ResponsiveValue } from '../../../prop-controllers'\nimport { findBreakpointOverride, shallowMergeFallbacks } from '../../../state/modules/breakpoints'\nimport { isNonNullable } from '../../../utils/isNonNullable'\nimport { useStyle } from '../use-style'\nimport { useBreakpoints } from '../hooks/use-breakpoints'\n\nexport function typographyFragementToTypographyControlData(\n typography: Typography | null,\n): DataType<unstable_TypographyDefinition> | undefined {\n if (typography == null) return undefined\n return {\n id: typography.id,\n style: typography.style.map(({ deviceId, value }) => ({\n deviceId,\n value: {\n fontFamily: value.fontFamily ?? undefined,\n lineHeight: value.lineHeight ?? undefined,\n letterSpacing: value.letterSpacing ?? undefined,\n fontWeight: value.fontWeight ?? undefined,\n textAlign: value.textAlign ?? undefined,\n uppercase: value.uppercase ?? undefined,\n underline: value.underline ?? undefined,\n strikethrough: value.strikethrough ?? undefined,\n italic: value.italic ?? undefined,\n fontSize: value.fontSize ?? undefined,\n color: value.color ?? undefined,\n },\n })),\n }\n}\n\ntype EnhancedColor = {\n color?: ColorValue\n}\n\nexport type TypographyControlDataValue = Exclude<\n DataType<unstable_TypographyDefinition>,\n undefined\n>['style'][number]['value']\n\ntype EnhancedTypographyValue = Omit<TypographyControlDataValue, keyof EnhancedColor> & EnhancedColor\n\nexport type EnhancedTypography = Array<DeviceOverride<EnhancedTypographyValue>>\n\nexport function getTypographyStyleSwatchIds(\n style:\n | Exclude<DataType<unstable_TypographyDefinition>, undefined>['style']\n | Typography['style']\n | null\n | undefined,\n): string[] {\n return (\n style\n ?.map(override => override.value)\n .flatMap(typographyStyle => typographyStyle.color?.swatchId)\n .filter(isNonNullable) ?? []\n )\n}\n\nconst withColor =\n (swatches: Swatch[]) =>\n (\n deviceRawTypographyValue: DeviceOverride<TypographyControlDataValue>,\n ): DeviceOverride<EnhancedTypographyValue> => {\n const { value, deviceId } = deviceRawTypographyValue\n\n if (value.color == null) {\n const { color, ...nextValue } = value\n return {\n deviceId,\n value: nextValue,\n }\n }\n return {\n deviceId,\n value: {\n ...value,\n color: {\n swatch: swatches.find(s => s && s.id === value.color?.swatchId),\n alpha: value.color?.alpha ?? undefined,\n },\n },\n }\n }\n\nconst getDeviceId = ({ deviceId }: DeviceOverride<unknown>) => deviceId\n\n/**\n * `enhanced` here just means typography ids have been replaced with the related entity.\n */\nexport default function useEnhancedTypography(\n value?: DataType<unstable_TypographyDefinition> | null,\n): EnhancedTypography {\n const typography = typographyFragementToTypographyControlData(useTypography(value?.id ?? null))\n const source = typography?.style ?? []\n const override = value?.style ?? []\n const breakpoints = useBreakpoints()\n\n const swatchIds = [\n ...getTypographyStyleSwatchIds(value?.style),\n ...getTypographyStyleSwatchIds(typography?.style),\n ]\n const swatches = useSwatches(swatchIds).filter(isNonNullable)\n\n const enhancedSource = source.map(withColor(swatches))\n const enhancedOverride = override.map(withColor(swatches))\n\n const devices = [\n ...new Set(enhancedSource.map(getDeviceId).concat(enhancedOverride.map(getDeviceId))),\n ]\n\n return devices\n .map(deviceId => {\n const deviceSource = findBreakpointOverride(breakpoints, enhancedSource, deviceId)?.value\n const deviceOverride = findBreakpointOverride(\n breakpoints,\n enhancedOverride,\n deviceId,\n v => v,\n )?.value\n\n if (deviceSource && deviceOverride) {\n return {\n deviceId,\n value: { ...deviceSource, ...deviceOverride },\n }\n } else if (deviceOverride) {\n return {\n deviceId,\n value: deviceOverride,\n }\n } else if (deviceSource) {\n return {\n deviceId,\n value: deviceSource,\n }\n }\n return null\n })\n .filter(isNonNullable)\n}\n\nexport function useTypographyClassName(value: EnhancedTypography): string {\n return useStyle(\n useResponsiveStyle<\n EnhancedTypographyValue,\n [ResponsiveValue<EnhancedTypographyValue> | null | undefined]\n >(\n [value],\n ([value]) => {\n if (value === undefined) return {}\n\n let styles: CSSObject = {}\n if (value.color != null) styles.color = colorToString(value.color)\n if (value.fontFamily != null) styles.fontFamily = value.fontFamily\n if (value.fontSize != null && value.fontSize.value != null && value.fontSize.unit != null)\n styles.fontSize = `${value.fontSize.value}${value.fontSize.unit}`\n if (value.fontWeight != null) styles.fontWeight = value.fontWeight\n if (value.lineHeight != null) styles.lineHeight = value.lineHeight\n if (value.letterSpacing != null) styles.letterSpacing = `${value.letterSpacing / 10}em`\n if (value.uppercase != null)\n styles.textTransform = value.uppercase === true ? 'uppercase' : 'initial'\n if (value.underline != null || value.strikethrough != null)\n styles.textDecoration = [\n Boolean(value.underline) && 'underline',\n Boolean(value.strikethrough) && 'line-through',\n ]\n .filter(Boolean)\n .join(' ')\n if (value.italic != null) styles.fontStyle = value.italic === true ? 'italic' : 'initial'\n\n return styles\n },\n shallowMergeFallbacks,\n ),\n )\n}\n\nexport type TypographyControlValue = string\n\nexport function useTypographyValue(\n data: DataType<unstable_TypographyDefinition> | undefined,\n): TypographyControlValue {\n // for each breakpoint fetch related resources and merge its value with its override\n const enhancedTypography = useEnhancedTypography(data)\n\n // for each breakpoint shallow merge back up through the breakpoints and create a className\n return useTypographyClassName(enhancedTypography)\n}\n"],"mappings":"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","names":["value"]}
@@ -1,12 +1,5 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useRef } from "react";
3
- import {
4
- CheckboxControlType,
5
- IconRadioGroupControlType,
6
- NumberControlType,
7
- TextInputControlType,
8
- TextAreaControlType
9
- } from "@makeswift/controls";
10
3
  import * as ReactPage from "../../state/react-page";
11
4
  import {
12
5
  useBoxShadow,
@@ -27,19 +20,24 @@ import {
27
20
  useResponsiveWidth
28
21
  } from "../../components/utils/responsive-style";
29
22
  import {
30
- ColorControlType,
31
- ComboboxControlType,
32
- ImageControlType,
33
- LinkControlType,
34
- ListControlType,
35
- SelectControlType,
36
- ShapeControlType,
37
- SlotControlType,
38
- StyleControlType,
39
- RichTextControlType,
40
- RichTextV2ControlType,
41
- StyleV2ControlType,
42
- TypographyControlType
23
+ CheckboxDefinition,
24
+ NumberDefinition,
25
+ RichTextV2Definition,
26
+ ColorDefinition,
27
+ ComboboxDefinition,
28
+ IconRadioGroupDefinition,
29
+ ImageDefinition,
30
+ LinkDefinition,
31
+ ListDefinition,
32
+ RichTextV1Definition,
33
+ SelectDefinition,
34
+ ShapeDefinition,
35
+ SlotDefinition,
36
+ StyleDefinition,
37
+ StyleV2Definition,
38
+ TextAreaDefinition,
39
+ TextInputDefinition,
40
+ unstable_TypographyDefinition
43
41
  } from "../../controls";
44
42
  import { useFormattedStyle } from "./controls/style";
45
43
  import { ControlValue } from "./controls/control";
@@ -72,6 +70,7 @@ import {
72
70
  ResponsiveOpacity,
73
71
  getSocialLinksPropControllerDataSocialLinksData
74
72
  } from "@makeswift/prop-controllers";
73
+ import { isLegacyDescriptor } from "../../prop-controllers/descriptors";
75
74
  import { useResponsiveLengthPropControllerData } from "../../components/hooks/useResponsiveLengthPropControllerData";
76
75
  import { useNumberPropControllerData } from "../../components/hooks/useNumberPropControllerData";
77
76
  import { useResponsiveColorPropControllerData } from "../../components/hooks/useResponsiveColorPropControllerData";
@@ -125,78 +124,84 @@ function PropsValue({ element, children }) {
125
124
  });
126
125
  return Object.entries(propControllerDescriptorsRef.current).reduceRight(
127
126
  (renderFn, [propName, descriptor]) => (propsValue) => {
128
- switch (descriptor.type) {
129
- case CheckboxControlType:
130
- case NumberControlType:
131
- case TextInputControlType:
132
- case TextAreaControlType:
133
- case SelectControlType:
134
- case ColorControlType:
135
- case IconRadioGroupControlType:
136
- case ImageControlType:
137
- case ComboboxControlType:
138
- case ShapeControlType:
139
- case ListControlType:
140
- case LinkControlType:
141
- case StyleV2ControlType:
142
- case TypographyControlType:
143
- return /* @__PURE__ */ jsx(
144
- ControlValue,
145
- {
146
- definition: descriptor,
147
- data: props[propName],
148
- control: propControllers?.[propName],
149
- children: (value) => renderFn({ ...propsValue, [propName]: value })
150
- }
151
- );
152
- case StyleControlType: {
153
- const control = propControllers?.[propName] ?? null;
154
- return /* @__PURE__ */ jsx(
155
- RenderHook,
156
- {
157
- hook: useFormattedStyle,
158
- parameters: [props[propName], descriptor, control],
159
- children: (value) => renderFn({ ...propsValue, [propName]: value })
160
- },
161
- descriptor.type
162
- );
163
- }
164
- case RichTextControlType: {
165
- const control = propControllers?.[propName] ?? null;
166
- return /* @__PURE__ */ jsx(
167
- RenderHook,
168
- {
169
- hook: useRichText,
170
- parameters: [props[propName], control],
171
- children: (value) => renderFn({ ...propsValue, [propName]: value })
172
- },
173
- descriptor.type
174
- );
175
- }
176
- case RichTextV2ControlType: {
177
- const control = propControllers?.[propName] ?? null;
178
- return /* @__PURE__ */ jsx(
179
- RenderHook,
180
- {
181
- hook: useRichTextV2,
182
- parameters: [props[propName], descriptor, control],
183
- children: (value) => renderFn({ ...propsValue, [propName]: value })
184
- },
185
- descriptor.type
186
- );
187
- }
188
- case SlotControlType: {
189
- const control = propControllers?.[propName] ?? null;
190
- return /* @__PURE__ */ jsx(
191
- RenderHook,
192
- {
193
- hook: useSlot,
194
- parameters: [props[propName], control],
195
- children: (value) => renderFn({ ...propsValue, [propName]: value })
196
- },
197
- descriptor.type
198
- );
127
+ if (!isLegacyDescriptor(descriptor)) {
128
+ switch (descriptor.controlType) {
129
+ case CheckboxDefinition.type:
130
+ case NumberDefinition.type:
131
+ case TextInputDefinition.type:
132
+ case TextAreaDefinition.type:
133
+ case SelectDefinition.type:
134
+ case ColorDefinition.type:
135
+ case IconRadioGroupDefinition.type:
136
+ case ImageDefinition.type:
137
+ case ComboboxDefinition.type:
138
+ case ShapeDefinition.type:
139
+ case ListDefinition.type:
140
+ case LinkDefinition.type:
141
+ case StyleV2Definition.type:
142
+ case unstable_TypographyDefinition.type:
143
+ return /* @__PURE__ */ jsx(
144
+ ControlValue,
145
+ {
146
+ definition: descriptor,
147
+ data: props[propName],
148
+ control: propControllers?.[propName],
149
+ children: (value) => renderFn({ ...propsValue, [propName]: value })
150
+ }
151
+ );
152
+ case StyleDefinition.type: {
153
+ const control = propControllers?.[propName] ?? null;
154
+ return /* @__PURE__ */ jsx(
155
+ RenderHook,
156
+ {
157
+ hook: useFormattedStyle,
158
+ parameters: [props[propName], descriptor, control],
159
+ children: (value) => renderFn({ ...propsValue, [propName]: value })
160
+ },
161
+ descriptor.controlType
162
+ );
163
+ }
164
+ case RichTextV1Definition.type: {
165
+ const control = propControllers?.[propName] ?? null;
166
+ return /* @__PURE__ */ jsx(
167
+ RenderHook,
168
+ {
169
+ hook: useRichText,
170
+ parameters: [props[propName], control],
171
+ children: (value) => renderFn({ ...propsValue, [propName]: value })
172
+ },
173
+ descriptor.controlType
174
+ );
175
+ }
176
+ case RichTextV2Definition.type: {
177
+ const control = propControllers?.[propName] ?? null;
178
+ return /* @__PURE__ */ jsx(
179
+ RenderHook,
180
+ {
181
+ hook: useRichTextV2,
182
+ parameters: [props[propName], descriptor, control],
183
+ children: (value) => renderFn({ ...propsValue, [propName]: value })
184
+ },
185
+ descriptor.controlType
186
+ );
187
+ }
188
+ case SlotDefinition.type: {
189
+ const control = propControllers?.[propName] ?? null;
190
+ return /* @__PURE__ */ jsx(
191
+ RenderHook,
192
+ {
193
+ hook: useSlot,
194
+ parameters: [props[propName], control],
195
+ children: (value) => renderFn({ ...propsValue, [propName]: value })
196
+ },
197
+ descriptor.controlType
198
+ );
199
+ }
199
200
  }
201
+ console.error(`Unknown control type: ${descriptor.controlType}`);
202
+ return renderFn({ ...propsValue, [propName]: props[propName] });
203
+ }
204
+ switch (descriptor.type) {
200
205
  case PropControllerTypes.Width:
201
206
  switch (descriptor.options.format) {
202
207
  case WidthPropControllerFormat.ClassName: