@makeswift/runtime 0.28.10-canary.9 → 0.29.0-canary.20

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 (685) hide show
  1. package/dist/cjs/api/graphql-api-client.js +1 -1
  2. package/dist/cjs/api/rest-api-client.js +27 -2
  3. package/dist/cjs/api/rest-api-client.js.map +1 -1
  4. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  5. package/dist/cjs/client/index.js +99 -203
  6. package/dist/cjs/client/index.js.map +1 -1
  7. package/dist/cjs/components/builtin/Box/Box.js +58 -54
  8. package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
  9. package/dist/cjs/components/builtin/Box/animations.js +7 -9
  10. package/dist/cjs/components/builtin/Box/animations.js.map +1 -1
  11. package/dist/cjs/components/builtin/Box/components/Placeholder/index.js +43 -39
  12. package/dist/cjs/components/builtin/Box/components/Placeholder/index.js.map +1 -1
  13. package/dist/cjs/components/builtin/Button/Button.js +165 -176
  14. package/dist/cjs/components/builtin/Button/Button.js.map +1 -1
  15. package/dist/cjs/components/builtin/Carousel/Carousel.js +168 -142
  16. package/dist/cjs/components/builtin/Carousel/Carousel.js.map +1 -1
  17. package/dist/cjs/components/builtin/Countdown/Countdown.js +165 -171
  18. package/dist/cjs/components/builtin/Countdown/Countdown.js.map +1 -1
  19. package/dist/cjs/components/builtin/Divider/Divider.js +56 -64
  20. package/dist/cjs/components/builtin/Divider/Divider.js.map +1 -1
  21. package/dist/cjs/components/builtin/Embed/Embed.js +14 -12
  22. package/dist/cjs/components/builtin/Embed/Embed.js.map +1 -1
  23. package/dist/cjs/components/builtin/Form/Form.js +65 -74
  24. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  25. package/dist/cjs/components/builtin/Form/components/Field/components/Checkbox/index.js +113 -121
  26. package/dist/cjs/components/builtin/Form/components/Field/components/Checkbox/index.js.map +1 -1
  27. package/dist/cjs/components/builtin/Form/components/Field/components/CheckboxTableField/index.js +29 -31
  28. package/dist/cjs/components/builtin/Form/components/Field/components/CheckboxTableField/index.js.map +1 -1
  29. package/dist/cjs/components/builtin/Form/components/Field/components/Input/index.js +14 -18
  30. package/dist/cjs/components/builtin/Form/components/Field/components/Input/index.js.map +1 -1
  31. package/dist/cjs/components/builtin/Form/components/Field/components/Label/index.js +17 -20
  32. package/dist/cjs/components/builtin/Form/components/Field/components/Label/index.js.map +1 -1
  33. package/dist/cjs/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js +23 -18
  34. package/dist/cjs/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js.map +1 -1
  35. package/dist/cjs/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js +43 -46
  36. package/dist/cjs/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js.map +1 -1
  37. package/dist/cjs/components/builtin/Form/components/Field/components/RadioButton/index.js +96 -105
  38. package/dist/cjs/components/builtin/Form/components/Field/components/RadioButton/index.js.map +1 -1
  39. package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js +20 -19
  40. package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js.map +1 -1
  41. package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js +48 -54
  42. package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js.map +1 -1
  43. package/dist/cjs/components/builtin/Form/components/Field/components/TextArea/index.js +8 -13
  44. package/dist/cjs/components/builtin/Form/components/Field/components/TextArea/index.js.map +1 -1
  45. package/dist/cjs/components/builtin/Form/components/Field/services/responsiveField.js +2 -2
  46. package/dist/cjs/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -1
  47. package/dist/cjs/components/builtin/Form/components/Placeholder/index.js +57 -64
  48. package/dist/cjs/components/builtin/Form/components/Placeholder/index.js.map +1 -1
  49. package/dist/cjs/components/builtin/Form/components/Spinner/index.js +19 -19
  50. package/dist/cjs/components/builtin/Form/components/Spinner/index.js.map +1 -1
  51. package/dist/cjs/components/builtin/Image/Image.js +33 -17
  52. package/dist/cjs/components/builtin/Image/Image.js.map +1 -1
  53. package/dist/cjs/components/builtin/Image/register.js +11 -0
  54. package/dist/cjs/components/builtin/Image/register.js.map +1 -1
  55. package/dist/cjs/components/builtin/Navigation/Navigation.js +60 -68
  56. package/dist/cjs/components/builtin/Navigation/Navigation.js.map +1 -1
  57. package/dist/cjs/components/builtin/Navigation/components/DropDownButton/index.js +91 -97
  58. package/dist/cjs/components/builtin/Navigation/components/DropDownButton/index.js.map +1 -1
  59. package/dist/cjs/components/builtin/Navigation/components/LinksPlaceholder/index.js +12 -13
  60. package/dist/cjs/components/builtin/Navigation/components/LinksPlaceholder/index.js.map +1 -1
  61. package/dist/cjs/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js +44 -33
  62. package/dist/cjs/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js.map +1 -1
  63. package/dist/cjs/components/builtin/Navigation/components/MobileMenu/index.js +67 -70
  64. package/dist/cjs/components/builtin/Navigation/components/MobileMenu/index.js.map +1 -1
  65. package/dist/cjs/components/builtin/Root/Root.js +30 -21
  66. package/dist/cjs/components/builtin/Root/Root.js.map +1 -1
  67. package/dist/cjs/components/builtin/Root/components/Placeholder/index.js +33 -36
  68. package/dist/cjs/components/builtin/Root/components/Placeholder/index.js.map +1 -1
  69. package/dist/cjs/components/builtin/SocialLinks/SocialLinks.js +72 -79
  70. package/dist/cjs/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
  71. package/dist/cjs/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js +11 -12
  72. package/dist/cjs/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js.map +1 -1
  73. package/dist/cjs/components/builtin/Text/Text.js +12 -2
  74. package/dist/cjs/components/builtin/Text/Text.js.map +1 -1
  75. package/dist/cjs/components/builtin/Video/Video.js +23 -28
  76. package/dist/cjs/components/builtin/Video/Video.js.map +1 -1
  77. package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +30 -35
  78. package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
  79. package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js +84 -66
  80. package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
  81. package/dist/cjs/components/shared/BackgroundsContainer/index.js +31 -27
  82. package/dist/cjs/components/shared/BackgroundsContainer/index.js.map +1 -1
  83. package/dist/cjs/components/shared/FallbackComponent/FallbackComponent.js +27 -26
  84. package/dist/cjs/components/shared/FallbackComponent/FallbackComponent.js.map +1 -1
  85. package/dist/cjs/components/shared/GutterContainer/index.js +13 -16
  86. package/dist/cjs/components/shared/GutterContainer/index.js.map +1 -1
  87. package/dist/cjs/components/shared/grid-item.js +27 -11
  88. package/dist/cjs/components/shared/grid-item.js.map +1 -1
  89. package/dist/cjs/controls/index.js.map +1 -1
  90. package/dist/cjs/controls/rich-text-v2/rich-text-v2.js +24 -13
  91. package/dist/cjs/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  92. package/dist/cjs/controls/serialization/base/visitor.js +5 -3
  93. package/dist/cjs/controls/serialization/base/visitor.js.map +1 -1
  94. package/dist/cjs/controls/visitors/merge-translations-visitor.js +1 -1
  95. package/dist/cjs/controls/visitors/merge-translations-visitor.js.map +1 -1
  96. package/dist/cjs/next/components/page.js +14 -1
  97. package/dist/cjs/next/components/page.js.map +1 -1
  98. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +3 -3
  99. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  100. package/dist/cjs/next/document.js +39 -10
  101. package/dist/cjs/next/document.js.map +1 -1
  102. package/dist/cjs/next/root-style-registry.js +2 -9
  103. package/dist/cjs/next/root-style-registry.js.map +1 -1
  104. package/dist/cjs/react/server/index.js +0 -2
  105. package/dist/cjs/react/server/index.js.map +1 -1
  106. package/dist/cjs/runtimes/react/components/ElementData.js +11 -2
  107. package/dist/cjs/runtimes/react/components/ElementData.js.map +1 -1
  108. package/dist/cjs/runtimes/react/components/GoogleFontLink.js +2 -1
  109. package/dist/cjs/runtimes/react/components/GoogleFontLink.js.map +1 -1
  110. package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
  111. package/dist/cjs/runtimes/react/components/page/PageHead.js +0 -8
  112. package/dist/cjs/runtimes/react/components/page/PageHead.js.map +1 -1
  113. package/dist/cjs/runtimes/react/components/page/head-tags.js +0 -6
  114. package/dist/cjs/runtimes/react/components/page/head-tags.js.map +1 -1
  115. package/dist/cjs/runtimes/react/components/resolve-props.js +24 -5
  116. package/dist/cjs/runtimes/react/components/resolve-props.js.map +1 -1
  117. package/dist/cjs/runtimes/react/controls/control.js +22 -8
  118. package/dist/cjs/runtimes/react/controls/control.js.map +1 -1
  119. package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js +20 -17
  120. package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
  121. package/dist/cjs/runtimes/react/controls/rich-text/ReadOnlyText.js +98 -42
  122. package/dist/cjs/runtimes/react/controls/rich-text/ReadOnlyText.js.map +1 -1
  123. package/dist/cjs/runtimes/react/controls/rich-text/components/Element/block.js +87 -20
  124. package/dist/cjs/runtimes/react/controls/rich-text/components/Element/block.js.map +1 -1
  125. package/dist/cjs/runtimes/react/controls/rich-text/components/Element/inline.js +17 -3
  126. package/dist/cjs/runtimes/react/controls/rich-text/components/Element/inline.js.map +1 -1
  127. package/dist/cjs/runtimes/react/controls/rich-text/components/Leaf/leaf.js +5 -2
  128. package/dist/cjs/runtimes/react/controls/rich-text/components/Leaf/leaf.js.map +1 -1
  129. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +74 -32
  130. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -1
  131. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js +2 -18
  132. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js.map +1 -1
  133. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js +36 -3
  134. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js.map +1 -1
  135. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js +27 -3
  136. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js.map +1 -1
  137. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js +4 -4
  138. package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js.map +1 -1
  139. package/dist/cjs/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js +91 -31
  140. package/dist/cjs/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js.map +1 -1
  141. package/dist/cjs/runtimes/react/controls/rich-text-v2/index.js +9 -3
  142. package/dist/cjs/runtimes/react/controls/rich-text-v2/index.js.map +1 -1
  143. package/dist/cjs/runtimes/react/controls/rich-text-v2/render-rich-text-v2.js +59 -0
  144. package/dist/cjs/runtimes/react/controls/rich-text-v2/render-rich-text-v2.js.map +1 -0
  145. package/dist/cjs/runtimes/react/controls/rich-text-v2/{rich-text-v2.js → rich-text-v2-value.js} +20 -15
  146. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2-value.js.map +1 -0
  147. package/dist/cjs/runtimes/react/controls/slot/slot-value.js +52 -34
  148. package/dist/cjs/runtimes/react/controls/slot/slot-value.js.map +1 -1
  149. package/dist/cjs/runtimes/react/controls/typography.js +6 -5
  150. package/dist/cjs/runtimes/react/controls/typography.js.map +1 -1
  151. package/dist/cjs/runtimes/react/controls/use-slate-reset.js +1 -1
  152. package/dist/cjs/runtimes/react/controls/use-slate-reset.js.map +1 -1
  153. package/dist/cjs/runtimes/react/css-runtime/browser-dynamic-styles-bridge.js +55 -0
  154. package/dist/cjs/runtimes/react/css-runtime/browser-dynamic-styles-bridge.js.map +1 -0
  155. package/dist/cjs/runtimes/react/css-runtime/components/controlled-styles.js +76 -0
  156. package/dist/cjs/runtimes/react/css-runtime/components/controlled-styles.js.map +1 -0
  157. package/dist/cjs/runtimes/react/css-runtime/components/makeswift-style.js +42 -0
  158. package/dist/cjs/runtimes/react/css-runtime/components/makeswift-style.js.map +1 -0
  159. package/dist/cjs/runtimes/react/css-runtime/components/rsc-emitted-style.js +46 -0
  160. package/dist/cjs/runtimes/react/css-runtime/components/rsc-emitted-style.js.map +1 -0
  161. package/dist/cjs/runtimes/react/css-runtime/components/styles-context-provider.js +54 -0
  162. package/dist/cjs/runtimes/react/css-runtime/components/styles-context-provider.js.map +1 -0
  163. package/dist/cjs/runtimes/react/css-runtime/constants.js +39 -0
  164. package/dist/cjs/runtimes/react/css-runtime/constants.js.map +1 -0
  165. package/dist/cjs/runtimes/react/css-runtime/hooks/use-base-styles.js +67 -0
  166. package/dist/cjs/runtimes/react/css-runtime/hooks/use-base-styles.js.map +1 -0
  167. package/dist/cjs/runtimes/react/css-runtime/hooks/use-controlled-styles.js +79 -0
  168. package/dist/cjs/runtimes/react/css-runtime/hooks/use-controlled-styles.js.map +1 -0
  169. package/dist/cjs/runtimes/react/css-runtime/hooks/use-css-reset.js +70 -0
  170. package/dist/cjs/runtimes/react/css-runtime/hooks/use-css-reset.js.map +1 -0
  171. package/dist/cjs/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.js +41 -0
  172. package/dist/cjs/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.js.map +1 -0
  173. package/dist/cjs/runtimes/react/css-runtime/hooks/use-keyframes.js +64 -0
  174. package/dist/cjs/runtimes/react/css-runtime/hooks/use-keyframes.js.map +1 -0
  175. package/dist/cjs/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.js +78 -0
  176. package/dist/cjs/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.js.map +1 -0
  177. package/dist/cjs/runtimes/react/{use-style.js → css-runtime/hooks/use-style.js} +49 -30
  178. package/dist/cjs/runtimes/react/css-runtime/hooks/use-style.js.map +1 -0
  179. package/dist/cjs/runtimes/react/css-runtime/hooks/use-styles-context.js +39 -0
  180. package/dist/cjs/runtimes/react/css-runtime/hooks/use-styles-context.js.map +1 -0
  181. package/dist/cjs/runtimes/react/css-runtime/serialize-css.js +51 -0
  182. package/dist/cjs/runtimes/react/css-runtime/serialize-css.js.map +1 -0
  183. package/dist/cjs/runtimes/react/css-runtime/style-element-updater.js +56 -0
  184. package/dist/cjs/runtimes/react/css-runtime/style-element-updater.js.map +1 -0
  185. package/dist/cjs/runtimes/react/css-runtime/styles-registry.js +283 -0
  186. package/dist/cjs/runtimes/react/css-runtime/styles-registry.js.map +1 -0
  187. package/dist/cjs/runtimes/react/css-runtime/stylesheet-engine.js +89 -0
  188. package/dist/cjs/runtimes/react/css-runtime/stylesheet-engine.js.map +1 -0
  189. package/dist/cjs/runtimes/react/{hooks/use-css-id.js → css-runtime/types.js} +12 -10
  190. package/dist/cjs/runtimes/react/css-runtime/types.js.map +1 -0
  191. package/dist/cjs/runtimes/react/css-runtime/utils.js +53 -0
  192. package/dist/cjs/runtimes/react/css-runtime/utils.js.map +1 -0
  193. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +10 -9
  194. package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  195. package/dist/cjs/runtimes/react/hooks/use-resolved-value.js +2 -2
  196. package/dist/cjs/runtimes/react/hooks/use-resolved-value.js.map +1 -1
  197. package/dist/cjs/runtimes/react/legacy-controls.js +91 -21
  198. package/dist/cjs/runtimes/react/legacy-controls.js.map +1 -1
  199. package/dist/cjs/runtimes/react/poll-box-model.js +2 -1
  200. package/dist/cjs/runtimes/react/poll-box-model.js.map +1 -1
  201. package/dist/cjs/runtimes/react/root-style-registry.js +32 -75
  202. package/dist/cjs/runtimes/react/root-style-registry.js.map +1 -1
  203. package/dist/cjs/runtimes/react/server/components/editable-server-element.js +7 -4
  204. package/dist/cjs/runtimes/react/server/components/editable-server-element.js.map +1 -1
  205. package/dist/cjs/runtimes/react/server/components/element-data.js +16 -8
  206. package/dist/cjs/runtimes/react/server/components/element-data.js.map +1 -1
  207. package/dist/cjs/runtimes/react/server/components/server-elements-cache.js +1 -2
  208. package/dist/cjs/runtimes/react/server/components/server-elements-cache.js.map +1 -1
  209. package/dist/cjs/runtimes/react/server/index.js +0 -3
  210. package/dist/cjs/runtimes/react/server/index.js.map +1 -1
  211. package/dist/cjs/runtimes/react/server/render-context.js.map +1 -1
  212. package/dist/cjs/slate/BlockPlugin/index.js +101 -21
  213. package/dist/cjs/slate/BlockPlugin/index.js.map +1 -1
  214. package/dist/cjs/slate/LinkPlugin/index.js +32 -17
  215. package/dist/cjs/slate/LinkPlugin/index.js.map +1 -1
  216. package/dist/cjs/slate/TypographyPlugin/index.js +12 -2
  217. package/dist/cjs/slate/TypographyPlugin/index.js.map +1 -1
  218. package/dist/cjs/testing/jest-snapshot-serializer.js +134 -0
  219. package/dist/cjs/testing/jest-snapshot-serializer.js.map +1 -0
  220. package/dist/cjs/unstable-framework-support/index.js +4 -5
  221. package/dist/cjs/unstable-framework-support/index.js.map +1 -1
  222. package/dist/esm/api/graphql-api-client.js +1 -1
  223. package/dist/esm/api/rest-api-client.js +27 -2
  224. package/dist/esm/api/rest-api-client.js.map +1 -1
  225. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  226. package/dist/esm/client/index.js +99 -203
  227. package/dist/esm/client/index.js.map +1 -1
  228. package/dist/esm/components/builtin/Box/Box.js +59 -55
  229. package/dist/esm/components/builtin/Box/Box.js.map +1 -1
  230. package/dist/esm/components/builtin/Box/animations.js +7 -9
  231. package/dist/esm/components/builtin/Box/animations.js.map +1 -1
  232. package/dist/esm/components/builtin/Box/components/Placeholder/index.js +44 -40
  233. package/dist/esm/components/builtin/Box/components/Placeholder/index.js.map +1 -1
  234. package/dist/esm/components/builtin/Button/Button.js +166 -177
  235. package/dist/esm/components/builtin/Button/Button.js.map +1 -1
  236. package/dist/esm/components/builtin/Carousel/Carousel.js +169 -143
  237. package/dist/esm/components/builtin/Carousel/Carousel.js.map +1 -1
  238. package/dist/esm/components/builtin/Countdown/Countdown.js +166 -172
  239. package/dist/esm/components/builtin/Countdown/Countdown.js.map +1 -1
  240. package/dist/esm/components/builtin/Divider/Divider.js +54 -62
  241. package/dist/esm/components/builtin/Divider/Divider.js.map +1 -1
  242. package/dist/esm/components/builtin/Embed/Embed.js +15 -13
  243. package/dist/esm/components/builtin/Embed/Embed.js.map +1 -1
  244. package/dist/esm/components/builtin/Form/Form.js +65 -74
  245. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  246. package/dist/esm/components/builtin/Form/components/Field/components/Checkbox/index.js +117 -122
  247. package/dist/esm/components/builtin/Form/components/Field/components/Checkbox/index.js.map +1 -1
  248. package/dist/esm/components/builtin/Form/components/Field/components/CheckboxTableField/index.js +33 -32
  249. package/dist/esm/components/builtin/Form/components/Field/components/CheckboxTableField/index.js.map +1 -1
  250. package/dist/esm/components/builtin/Form/components/Field/components/Input/index.js +18 -19
  251. package/dist/esm/components/builtin/Form/components/Field/components/Input/index.js.map +1 -1
  252. package/dist/esm/components/builtin/Form/components/Field/components/Label/index.js +21 -21
  253. package/dist/esm/components/builtin/Form/components/Field/components/Label/index.js.map +1 -1
  254. package/dist/esm/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js +27 -19
  255. package/dist/esm/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js.map +1 -1
  256. package/dist/esm/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js +46 -46
  257. package/dist/esm/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js.map +1 -1
  258. package/dist/esm/components/builtin/Form/components/Field/components/RadioButton/index.js +100 -106
  259. package/dist/esm/components/builtin/Form/components/Field/components/RadioButton/index.js.map +1 -1
  260. package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js +24 -20
  261. package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js.map +1 -1
  262. package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js +51 -54
  263. package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js.map +1 -1
  264. package/dist/esm/components/builtin/Form/components/Field/components/TextArea/index.js +12 -14
  265. package/dist/esm/components/builtin/Form/components/Field/components/TextArea/index.js.map +1 -1
  266. package/dist/esm/components/builtin/Form/components/Field/services/responsiveField.js +2 -2
  267. package/dist/esm/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -1
  268. package/dist/esm/components/builtin/Form/components/Placeholder/index.js +58 -65
  269. package/dist/esm/components/builtin/Form/components/Placeholder/index.js.map +1 -1
  270. package/dist/esm/components/builtin/Form/components/Spinner/index.js +20 -20
  271. package/dist/esm/components/builtin/Form/components/Spinner/index.js.map +1 -1
  272. package/dist/esm/components/builtin/Image/Image.js +34 -18
  273. package/dist/esm/components/builtin/Image/Image.js.map +1 -1
  274. package/dist/esm/components/builtin/Image/register.js +12 -0
  275. package/dist/esm/components/builtin/Image/register.js.map +1 -1
  276. package/dist/esm/components/builtin/Navigation/Navigation.js +61 -69
  277. package/dist/esm/components/builtin/Navigation/Navigation.js.map +1 -1
  278. package/dist/esm/components/builtin/Navigation/components/DropDownButton/index.js +92 -98
  279. package/dist/esm/components/builtin/Navigation/components/DropDownButton/index.js.map +1 -1
  280. package/dist/esm/components/builtin/Navigation/components/LinksPlaceholder/index.js +13 -14
  281. package/dist/esm/components/builtin/Navigation/components/LinksPlaceholder/index.js.map +1 -1
  282. package/dist/esm/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js +44 -33
  283. package/dist/esm/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js.map +1 -1
  284. package/dist/esm/components/builtin/Navigation/components/MobileMenu/index.js +70 -73
  285. package/dist/esm/components/builtin/Navigation/components/MobileMenu/index.js.map +1 -1
  286. package/dist/esm/components/builtin/Root/Root.js +31 -22
  287. package/dist/esm/components/builtin/Root/Root.js.map +1 -1
  288. package/dist/esm/components/builtin/Root/components/Placeholder/index.js +34 -37
  289. package/dist/esm/components/builtin/Root/components/Placeholder/index.js.map +1 -1
  290. package/dist/esm/components/builtin/SocialLinks/SocialLinks.js +73 -80
  291. package/dist/esm/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
  292. package/dist/esm/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js +12 -13
  293. package/dist/esm/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js.map +1 -1
  294. package/dist/esm/components/builtin/Text/Text.js +2 -2
  295. package/dist/esm/components/builtin/Text/Text.js.map +1 -1
  296. package/dist/esm/components/builtin/Video/Video.js +24 -29
  297. package/dist/esm/components/builtin/Video/Video.js.map +1 -1
  298. package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +30 -35
  299. package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
  300. package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js +85 -67
  301. package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
  302. package/dist/esm/components/shared/BackgroundsContainer/index.js +32 -28
  303. package/dist/esm/components/shared/BackgroundsContainer/index.js.map +1 -1
  304. package/dist/esm/components/shared/FallbackComponent/FallbackComponent.js +28 -27
  305. package/dist/esm/components/shared/FallbackComponent/FallbackComponent.js.map +1 -1
  306. package/dist/esm/components/shared/GutterContainer/index.js +14 -17
  307. package/dist/esm/components/shared/GutterContainer/index.js.map +1 -1
  308. package/dist/esm/components/shared/grid-item.js +18 -12
  309. package/dist/esm/components/shared/grid-item.js.map +1 -1
  310. package/dist/esm/controls/index.js.map +1 -1
  311. package/dist/esm/controls/rich-text-v2/rich-text-v2.js +24 -13
  312. package/dist/esm/controls/rich-text-v2/rich-text-v2.js.map +1 -1
  313. package/dist/esm/controls/serialization/base/visitor.js +5 -3
  314. package/dist/esm/controls/serialization/base/visitor.js.map +1 -1
  315. package/dist/esm/controls/visitors/merge-translations-visitor.js +1 -1
  316. package/dist/esm/controls/visitors/merge-translations-visitor.js.map +1 -1
  317. package/dist/esm/next/components/page.js +15 -2
  318. package/dist/esm/next/components/page.js.map +1 -1
  319. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +3 -3
  320. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  321. package/dist/esm/next/document.js +42 -10
  322. package/dist/esm/next/document.js.map +1 -1
  323. package/dist/esm/next/root-style-registry.js +3 -12
  324. package/dist/esm/next/root-style-registry.js.map +1 -1
  325. package/dist/esm/react/server/index.js +0 -2
  326. package/dist/esm/react/server/index.js.map +1 -1
  327. package/dist/esm/runtimes/react/components/ElementData.js +12 -3
  328. package/dist/esm/runtimes/react/components/ElementData.js.map +1 -1
  329. package/dist/esm/runtimes/react/components/GoogleFontLink.js +2 -1
  330. package/dist/esm/runtimes/react/components/GoogleFontLink.js.map +1 -1
  331. package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
  332. package/dist/esm/runtimes/react/components/page/PageHead.js +1 -9
  333. package/dist/esm/runtimes/react/components/page/PageHead.js.map +1 -1
  334. package/dist/esm/runtimes/react/components/page/head-tags.js +0 -5
  335. package/dist/esm/runtimes/react/components/page/head-tags.js.map +1 -1
  336. package/dist/esm/runtimes/react/components/resolve-props.js +24 -5
  337. package/dist/esm/runtimes/react/components/resolve-props.js.map +1 -1
  338. package/dist/esm/runtimes/react/controls/control.js +22 -8
  339. package/dist/esm/runtimes/react/controls/control.js.map +1 -1
  340. package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js +21 -18
  341. package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
  342. package/dist/esm/runtimes/react/controls/rich-text/ReadOnlyText.js +100 -44
  343. package/dist/esm/runtimes/react/controls/rich-text/ReadOnlyText.js.map +1 -1
  344. package/dist/esm/runtimes/react/controls/rich-text/components/Element/block.js +78 -21
  345. package/dist/esm/runtimes/react/controls/rich-text/components/Element/block.js.map +1 -1
  346. package/dist/esm/runtimes/react/controls/rich-text/components/Element/inline.js +8 -4
  347. package/dist/esm/runtimes/react/controls/rich-text/components/Element/inline.js.map +1 -1
  348. package/dist/esm/runtimes/react/controls/rich-text/components/Leaf/leaf.js +7 -4
  349. package/dist/esm/runtimes/react/controls/rich-text/components/Leaf/leaf.js.map +1 -1
  350. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +78 -33
  351. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -1
  352. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js +2 -3
  353. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js.map +1 -1
  354. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js +36 -3
  355. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js.map +1 -1
  356. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js +27 -3
  357. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js.map +1 -1
  358. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js +4 -4
  359. package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js.map +1 -1
  360. package/dist/esm/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js +97 -34
  361. package/dist/esm/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js.map +1 -1
  362. package/dist/esm/runtimes/react/controls/rich-text-v2/index.js +4 -1
  363. package/dist/esm/runtimes/react/controls/rich-text-v2/index.js.map +1 -1
  364. package/dist/esm/runtimes/react/controls/rich-text-v2/render-rich-text-v2.js +25 -0
  365. package/dist/esm/runtimes/react/controls/rich-text-v2/render-rich-text-v2.js.map +1 -0
  366. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2-value.js +26 -0
  367. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2-value.js.map +1 -0
  368. package/dist/esm/runtimes/react/controls/slot/slot-value.js +43 -35
  369. package/dist/esm/runtimes/react/controls/slot/slot-value.js.map +1 -1
  370. package/dist/esm/runtimes/react/controls/typography.js +5 -4
  371. package/dist/esm/runtimes/react/controls/typography.js.map +1 -1
  372. package/dist/esm/runtimes/react/controls/use-slate-reset.js +1 -1
  373. package/dist/esm/runtimes/react/controls/use-slate-reset.js.map +1 -1
  374. package/dist/esm/runtimes/react/css-runtime/browser-dynamic-styles-bridge.js +31 -0
  375. package/dist/esm/runtimes/react/css-runtime/browser-dynamic-styles-bridge.js.map +1 -0
  376. package/dist/esm/runtimes/react/css-runtime/components/controlled-styles.js +51 -0
  377. package/dist/esm/runtimes/react/css-runtime/components/controlled-styles.js.map +1 -0
  378. package/dist/esm/runtimes/react/css-runtime/components/makeswift-style.js +18 -0
  379. package/dist/esm/runtimes/react/css-runtime/components/makeswift-style.js.map +1 -0
  380. package/dist/esm/runtimes/react/css-runtime/components/rsc-emitted-style.js +22 -0
  381. package/dist/esm/runtimes/react/css-runtime/components/rsc-emitted-style.js.map +1 -0
  382. package/dist/esm/runtimes/react/css-runtime/components/styles-context-provider.js +29 -0
  383. package/dist/esm/runtimes/react/css-runtime/components/styles-context-provider.js.map +1 -0
  384. package/dist/esm/runtimes/react/css-runtime/constants.js +12 -0
  385. package/dist/esm/runtimes/react/css-runtime/constants.js.map +1 -0
  386. package/dist/esm/runtimes/react/css-runtime/hooks/use-base-styles.js +33 -0
  387. package/dist/esm/runtimes/react/css-runtime/hooks/use-base-styles.js.map +1 -0
  388. package/dist/esm/runtimes/react/css-runtime/hooks/use-controlled-styles.js +45 -0
  389. package/dist/esm/runtimes/react/css-runtime/hooks/use-controlled-styles.js.map +1 -0
  390. package/dist/esm/runtimes/react/css-runtime/hooks/use-css-reset.js +36 -0
  391. package/dist/esm/runtimes/react/css-runtime/hooks/use-css-reset.js.map +1 -0
  392. package/dist/esm/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.js +17 -0
  393. package/dist/esm/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.js.map +1 -0
  394. package/dist/esm/runtimes/react/css-runtime/hooks/use-keyframes.js +30 -0
  395. package/dist/esm/runtimes/react/css-runtime/hooks/use-keyframes.js.map +1 -0
  396. package/dist/esm/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.js +44 -0
  397. package/dist/esm/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.js.map +1 -0
  398. package/dist/esm/runtimes/react/css-runtime/hooks/use-style.js +56 -0
  399. package/dist/esm/runtimes/react/css-runtime/hooks/use-style.js.map +1 -0
  400. package/dist/esm/runtimes/react/css-runtime/hooks/use-styles-context.js +15 -0
  401. package/dist/esm/runtimes/react/css-runtime/hooks/use-styles-context.js.map +1 -0
  402. package/dist/esm/runtimes/react/css-runtime/serialize-css.js +25 -0
  403. package/dist/esm/runtimes/react/css-runtime/serialize-css.js.map +1 -0
  404. package/dist/esm/runtimes/react/css-runtime/style-element-updater.js +32 -0
  405. package/dist/esm/runtimes/react/css-runtime/style-element-updater.js.map +1 -0
  406. package/dist/esm/runtimes/react/css-runtime/styles-registry.js +261 -0
  407. package/dist/esm/runtimes/react/css-runtime/styles-registry.js.map +1 -0
  408. package/dist/esm/runtimes/react/css-runtime/stylesheet-engine.js +65 -0
  409. package/dist/esm/runtimes/react/css-runtime/stylesheet-engine.js.map +1 -0
  410. package/dist/esm/runtimes/react/css-runtime/types.js +10 -0
  411. package/dist/esm/runtimes/react/css-runtime/types.js.map +1 -0
  412. package/dist/esm/runtimes/react/css-runtime/utils.js +26 -0
  413. package/dist/esm/runtimes/react/css-runtime/utils.js.map +1 -0
  414. package/dist/esm/runtimes/react/hooks/use-resolved-props.js +10 -9
  415. package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
  416. package/dist/esm/runtimes/react/hooks/use-resolved-value.js +2 -2
  417. package/dist/esm/runtimes/react/hooks/use-resolved-value.js.map +1 -1
  418. package/dist/esm/runtimes/react/legacy-controls.js +92 -22
  419. package/dist/esm/runtimes/react/legacy-controls.js.map +1 -1
  420. package/dist/esm/runtimes/react/poll-box-model.js +2 -1
  421. package/dist/esm/runtimes/react/poll-box-model.js.map +1 -1
  422. package/dist/esm/runtimes/react/root-style-registry.js +36 -60
  423. package/dist/esm/runtimes/react/root-style-registry.js.map +1 -1
  424. package/dist/esm/runtimes/react/server/components/editable-server-element.js +8 -5
  425. package/dist/esm/runtimes/react/server/components/editable-server-element.js.map +1 -1
  426. package/dist/esm/runtimes/react/server/components/element-data.js +16 -12
  427. package/dist/esm/runtimes/react/server/components/element-data.js.map +1 -1
  428. package/dist/esm/runtimes/react/server/components/server-elements-cache.js +1 -2
  429. package/dist/esm/runtimes/react/server/components/server-elements-cache.js.map +1 -1
  430. package/dist/esm/runtimes/react/server/index.js +0 -2
  431. package/dist/esm/runtimes/react/server/index.js.map +1 -1
  432. package/dist/esm/runtimes/react/server/render-context.js.map +1 -1
  433. package/dist/esm/slate/BlockPlugin/index.js +102 -22
  434. package/dist/esm/slate/BlockPlugin/index.js.map +1 -1
  435. package/dist/esm/slate/LinkPlugin/index.js +23 -18
  436. package/dist/esm/slate/LinkPlugin/index.js.map +1 -1
  437. package/dist/esm/slate/TypographyPlugin/index.js +2 -2
  438. package/dist/esm/slate/TypographyPlugin/index.js.map +1 -1
  439. package/dist/esm/testing/jest-snapshot-serializer.js +100 -0
  440. package/dist/esm/testing/jest-snapshot-serializer.js.map +1 -0
  441. package/dist/esm/unstable-framework-support/index.js +3 -6
  442. package/dist/esm/unstable-framework-support/index.js.map +1 -1
  443. package/dist/types/api/rest-api-client.d.ts +7 -0
  444. package/dist/types/api/rest-api-client.d.ts.map +1 -1
  445. package/dist/types/client/index.d.ts.map +1 -1
  446. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  447. package/dist/types/components/builtin/Box/animations.d.ts +3 -2
  448. package/dist/types/components/builtin/Box/animations.d.ts.map +1 -1
  449. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -1
  450. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
  451. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  452. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  453. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
  454. package/dist/types/components/builtin/Embed/Embed.d.ts.map +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.map +1 -1
  457. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -1
  458. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
  459. package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -1
  460. package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -1
  461. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -1
  462. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
  463. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -1
  464. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
  465. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
  466. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
  467. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -1
  468. package/dist/types/components/builtin/Image/Image.d.ts +3 -1
  469. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
  470. package/dist/types/components/builtin/Image/register.d.ts.map +1 -1
  471. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  472. package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -1
  473. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
  474. package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -1
  475. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  476. package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
  477. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -1
  478. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  479. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -1
  480. package/dist/types/components/builtin/Video/Video.d.ts.map +1 -1
  481. package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  482. package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -1
  483. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
  484. package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  485. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -1
  486. package/dist/types/components/shared/GutterContainer/index.d.ts.map +1 -1
  487. package/dist/types/components/shared/grid-item.d.ts.map +1 -1
  488. package/dist/types/controls/__tests__/fixtures/list.d.ts +1 -0
  489. package/dist/types/controls/__tests__/fixtures/list.d.ts.map +1 -1
  490. package/dist/types/controls/__tests__/fixtures/shape.d.ts +2 -0
  491. package/dist/types/controls/__tests__/fixtures/shape.d.ts.map +1 -1
  492. package/dist/types/controls/index.d.ts +1 -1
  493. package/dist/types/controls/index.d.ts.map +1 -1
  494. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +161 -24
  495. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  496. package/dist/types/controls/serialization/base/visitor.d.ts.map +1 -1
  497. package/dist/types/next/components/page.d.ts.map +1 -1
  498. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  499. package/dist/types/next/document.d.ts.map +1 -1
  500. package/dist/types/next/root-style-registry.d.ts +1 -1
  501. package/dist/types/next/root-style-registry.d.ts.map +1 -1
  502. package/dist/types/react/server/index.d.ts +1 -1
  503. package/dist/types/react/server/index.d.ts.map +1 -1
  504. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts.map +1 -1
  505. package/dist/types/runtimes/react/components/framework-context.d.ts +1 -0
  506. package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
  507. package/dist/types/runtimes/react/components/page/PageHead.d.ts.map +1 -1
  508. package/dist/types/runtimes/react/components/page/head-tags.d.ts +0 -6
  509. package/dist/types/runtimes/react/components/page/head-tags.d.ts.map +1 -1
  510. package/dist/types/runtimes/react/components/resolve-props.d.ts.map +1 -1
  511. package/dist/types/{controls/__tests__/slot.test.d.ts → runtimes/react/controls/__tests__/react-node-controls.test.d.ts} +1 -1
  512. package/dist/types/runtimes/react/controls/__tests__/react-node-controls.test.d.ts.map +1 -0
  513. package/dist/types/runtimes/react/controls/control.d.ts +3 -1
  514. package/dist/types/runtimes/react/controls/control.d.ts.map +1 -1
  515. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -1
  516. package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -1
  517. package/dist/types/runtimes/react/controls/rich-text/components/Element/block.d.ts.map +1 -1
  518. package/dist/types/runtimes/react/controls/rich-text/components/Element/inline.d.ts.map +1 -1
  519. package/dist/types/runtimes/react/controls/rich-text/components/Leaf/leaf.d.ts.map +1 -1
  520. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts +7 -10
  521. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -1
  522. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts +2 -3
  523. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts.map +1 -1
  524. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts +3 -3
  525. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts.map +1 -1
  526. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts +3 -3
  527. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts.map +1 -1
  528. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts +2 -1
  529. package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts.map +1 -1
  530. package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +9 -6
  531. package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  532. package/dist/types/runtimes/react/controls/rich-text-v2/index.d.ts +7 -1
  533. package/dist/types/runtimes/react/controls/rich-text-v2/index.d.ts.map +1 -1
  534. package/dist/types/runtimes/react/controls/rich-text-v2/render-rich-text-v2.d.ts +10 -0
  535. package/dist/types/runtimes/react/controls/rich-text-v2/render-rich-text-v2.d.ts.map +1 -0
  536. package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2-value.d.ts +9 -0
  537. package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2-value.d.ts.map +1 -0
  538. package/dist/types/runtimes/react/controls/slot/slot-value.d.ts.map +1 -1
  539. package/dist/types/runtimes/react/controls/typography.d.ts +8 -1
  540. package/dist/types/runtimes/react/controls/typography.d.ts.map +1 -1
  541. package/dist/types/runtimes/react/controls/use-slate-reset.d.ts +8 -1
  542. package/dist/types/runtimes/react/controls/use-slate-reset.d.ts.map +1 -1
  543. package/dist/types/runtimes/react/css-runtime/__tests__/__fixtures__/sample-js-styles-objects.d.ts +7 -0
  544. package/dist/types/runtimes/react/css-runtime/__tests__/__fixtures__/sample-js-styles-objects.d.ts.map +1 -0
  545. package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/__fixtures__/sample-stylev1-data.d.ts +9 -0
  546. package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/__fixtures__/sample-stylev1-data.d.ts.map +1 -0
  547. package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/__fixtures__/sample-stylev2-data.d.ts +10 -0
  548. package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/__fixtures__/sample-stylev2-data.d.ts.map +1 -0
  549. package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/controlled-styles-integration.test.d.ts +3 -0
  550. package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/controlled-styles-integration.test.d.ts.map +1 -0
  551. package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/utils.d.ts +24 -0
  552. package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/utils.d.ts.map +1 -0
  553. package/dist/types/runtimes/react/css-runtime/__tests__/serialize-css.test.d.ts +2 -0
  554. package/dist/types/runtimes/react/css-runtime/__tests__/serialize-css.test.d.ts.map +1 -0
  555. package/dist/types/runtimes/react/css-runtime/__tests__/styles-registry.test.d.ts +2 -0
  556. package/dist/types/runtimes/react/css-runtime/__tests__/styles-registry.test.d.ts.map +1 -0
  557. package/dist/types/runtimes/react/css-runtime/__tests__/utils.d.ts +6 -0
  558. package/dist/types/runtimes/react/css-runtime/__tests__/utils.d.ts.map +1 -0
  559. package/dist/types/runtimes/react/css-runtime/browser-dynamic-styles-bridge.d.ts +16 -0
  560. package/dist/types/runtimes/react/css-runtime/browser-dynamic-styles-bridge.d.ts.map +1 -0
  561. package/dist/types/runtimes/react/css-runtime/components/controlled-styles.d.ts +12 -0
  562. package/dist/types/runtimes/react/css-runtime/components/controlled-styles.d.ts.map +1 -0
  563. package/dist/types/runtimes/react/css-runtime/components/makeswift-style.d.ts +6 -0
  564. package/dist/types/runtimes/react/css-runtime/components/makeswift-style.d.ts.map +1 -0
  565. package/dist/types/runtimes/react/css-runtime/components/rsc-emitted-style.d.ts +30 -0
  566. package/dist/types/runtimes/react/css-runtime/components/rsc-emitted-style.d.ts.map +1 -0
  567. package/dist/types/runtimes/react/css-runtime/components/styles-context-provider.d.ts +20 -0
  568. package/dist/types/runtimes/react/css-runtime/components/styles-context-provider.d.ts.map +1 -0
  569. package/dist/types/runtimes/react/css-runtime/constants.d.ts +5 -0
  570. package/dist/types/runtimes/react/css-runtime/constants.d.ts.map +1 -0
  571. package/dist/types/runtimes/react/css-runtime/hooks/use-base-styles.d.ts +12 -0
  572. package/dist/types/runtimes/react/css-runtime/hooks/use-base-styles.d.ts.map +1 -0
  573. package/dist/types/runtimes/react/css-runtime/hooks/use-controlled-styles.d.ts +11 -0
  574. package/dist/types/runtimes/react/css-runtime/hooks/use-controlled-styles.d.ts.map +1 -0
  575. package/dist/types/runtimes/react/css-runtime/hooks/use-css-reset.d.ts +14 -0
  576. package/dist/types/runtimes/react/css-runtime/hooks/use-css-reset.d.ts.map +1 -0
  577. package/dist/types/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.d.ts +3 -0
  578. package/dist/types/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.d.ts.map +1 -0
  579. package/dist/types/runtimes/react/css-runtime/hooks/use-keyframes.d.ts +6 -0
  580. package/dist/types/runtimes/react/css-runtime/hooks/use-keyframes.d.ts.map +1 -0
  581. package/dist/types/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.d.ts +10 -0
  582. package/dist/types/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.d.ts.map +1 -0
  583. package/dist/types/runtimes/react/css-runtime/hooks/use-style.d.ts +62 -0
  584. package/dist/types/runtimes/react/css-runtime/hooks/use-style.d.ts.map +1 -0
  585. package/dist/types/runtimes/react/css-runtime/hooks/use-styles-context.d.ts +3 -0
  586. package/dist/types/runtimes/react/css-runtime/hooks/use-styles-context.d.ts.map +1 -0
  587. package/dist/types/runtimes/react/css-runtime/serialize-css.d.ts +40 -0
  588. package/dist/types/runtimes/react/css-runtime/serialize-css.d.ts.map +1 -0
  589. package/dist/types/runtimes/react/css-runtime/style-element-updater.d.ts +10 -0
  590. package/dist/types/runtimes/react/css-runtime/style-element-updater.d.ts.map +1 -0
  591. package/dist/types/runtimes/react/css-runtime/styles-registry.d.ts +66 -0
  592. package/dist/types/runtimes/react/css-runtime/styles-registry.d.ts.map +1 -0
  593. package/dist/types/runtimes/react/css-runtime/stylesheet-engine.d.ts +23 -0
  594. package/dist/types/runtimes/react/css-runtime/stylesheet-engine.d.ts.map +1 -0
  595. package/dist/types/runtimes/react/css-runtime/types.d.ts +52 -0
  596. package/dist/types/runtimes/react/css-runtime/types.d.ts.map +1 -0
  597. package/dist/types/runtimes/react/css-runtime/utils.d.ts +20 -0
  598. package/dist/types/runtimes/react/css-runtime/utils.d.ts.map +1 -0
  599. package/dist/types/runtimes/react/hooks/use-resolved-props.d.ts +3 -3
  600. package/dist/types/runtimes/react/hooks/use-resolved-props.d.ts.map +1 -1
  601. package/dist/types/runtimes/react/hooks/use-resolved-value.d.ts +1 -1
  602. package/dist/types/runtimes/react/hooks/use-resolved-value.d.ts.map +1 -1
  603. package/dist/types/runtimes/react/legacy-controls.d.ts +1 -1
  604. package/dist/types/runtimes/react/legacy-controls.d.ts.map +1 -1
  605. package/dist/types/runtimes/react/poll-box-model.d.ts +2 -2
  606. package/dist/types/runtimes/react/poll-box-model.d.ts.map +1 -1
  607. package/dist/types/runtimes/react/root-style-registry.d.ts +9 -30
  608. package/dist/types/runtimes/react/root-style-registry.d.ts.map +1 -1
  609. package/dist/types/runtimes/react/server/components/element-data.d.ts.map +1 -1
  610. package/dist/types/runtimes/react/server/components/server-elements-cache.d.ts.map +1 -1
  611. package/dist/types/runtimes/react/server/index.d.ts +0 -1
  612. package/dist/types/runtimes/react/server/index.d.ts.map +1 -1
  613. package/dist/types/runtimes/react/server/render-context.d.ts +2 -0
  614. package/dist/types/runtimes/react/server/render-context.d.ts.map +1 -1
  615. package/dist/types/slate/BlockPlugin/index.d.ts +13 -1
  616. package/dist/types/slate/BlockPlugin/index.d.ts.map +1 -1
  617. package/dist/types/slate/InlinePlugin/index.d.ts +13 -1
  618. package/dist/types/slate/InlinePlugin/index.d.ts.map +1 -1
  619. package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
  620. package/dist/types/slate/TextAlignPlugin/index.d.ts +13 -1
  621. package/dist/types/slate/TextAlignPlugin/index.d.ts.map +1 -1
  622. package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
  623. package/dist/types/testing/jest-snapshot-serializer.d.ts +2 -0
  624. package/dist/types/testing/jest-snapshot-serializer.d.ts.map +1 -0
  625. package/dist/types/unstable-framework-support/index.d.ts +3 -1
  626. package/dist/types/unstable-framework-support/index.d.ts.map +1 -1
  627. package/package.json +15 -15
  628. package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +0 -1
  629. package/dist/cjs/runtimes/react/hooks/use-css-id.js.map +0 -1
  630. package/dist/cjs/runtimes/react/hooks/use-editable-element-stylesheet-factory.js +0 -58
  631. package/dist/cjs/runtimes/react/hooks/use-editable-element-stylesheet-factory.js.map +0 -1
  632. package/dist/cjs/runtimes/react/hooks/use-stylesheet-factory.js +0 -87
  633. package/dist/cjs/runtimes/react/hooks/use-stylesheet-factory.js.map +0 -1
  634. package/dist/cjs/runtimes/react/server/css/client-css.js +0 -112
  635. package/dist/cjs/runtimes/react/server/css/client-css.js.map +0 -1
  636. package/dist/cjs/runtimes/react/server/css/css-runtime.js +0 -102
  637. package/dist/cjs/runtimes/react/server/css/css-runtime.js.map +0 -1
  638. package/dist/cjs/runtimes/react/server/css/server-css.js +0 -71
  639. package/dist/cjs/runtimes/react/server/css/server-css.js.map +0 -1
  640. package/dist/cjs/runtimes/react/stylesheet-factory.js +0 -17
  641. package/dist/cjs/runtimes/react/stylesheet-factory.js.map +0 -1
  642. package/dist/cjs/runtimes/react/use-global-style.js +0 -101
  643. package/dist/cjs/runtimes/react/use-global-style.js.map +0 -1
  644. package/dist/cjs/runtimes/react/use-style.js.map +0 -1
  645. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js +0 -23
  646. package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +0 -1
  647. package/dist/esm/runtimes/react/hooks/use-css-id.js +0 -8
  648. package/dist/esm/runtimes/react/hooks/use-css-id.js.map +0 -1
  649. package/dist/esm/runtimes/react/hooks/use-editable-element-stylesheet-factory.js +0 -34
  650. package/dist/esm/runtimes/react/hooks/use-editable-element-stylesheet-factory.js.map +0 -1
  651. package/dist/esm/runtimes/react/hooks/use-stylesheet-factory.js +0 -65
  652. package/dist/esm/runtimes/react/hooks/use-stylesheet-factory.js.map +0 -1
  653. package/dist/esm/runtimes/react/server/css/client-css.js +0 -87
  654. package/dist/esm/runtimes/react/server/css/client-css.js.map +0 -1
  655. package/dist/esm/runtimes/react/server/css/css-runtime.js +0 -77
  656. package/dist/esm/runtimes/react/server/css/css-runtime.js.map +0 -1
  657. package/dist/esm/runtimes/react/server/css/server-css.js +0 -45
  658. package/dist/esm/runtimes/react/server/css/server-css.js.map +0 -1
  659. package/dist/esm/runtimes/react/stylesheet-factory.js +0 -1
  660. package/dist/esm/runtimes/react/stylesheet-factory.js.map +0 -1
  661. package/dist/esm/runtimes/react/use-global-style.js +0 -67
  662. package/dist/esm/runtimes/react/use-global-style.js.map +0 -1
  663. package/dist/esm/runtimes/react/use-style.js +0 -36
  664. package/dist/esm/runtimes/react/use-style.js.map +0 -1
  665. package/dist/types/controls/__tests__/slot.test.d.ts.map +0 -1
  666. package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts +0 -9
  667. package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts.map +0 -1
  668. package/dist/types/runtimes/react/hooks/use-css-id.d.ts +0 -2
  669. package/dist/types/runtimes/react/hooks/use-css-id.d.ts.map +0 -1
  670. package/dist/types/runtimes/react/hooks/use-editable-element-stylesheet-factory.d.ts +0 -5
  671. package/dist/types/runtimes/react/hooks/use-editable-element-stylesheet-factory.d.ts.map +0 -1
  672. package/dist/types/runtimes/react/hooks/use-stylesheet-factory.d.ts +0 -3
  673. package/dist/types/runtimes/react/hooks/use-stylesheet-factory.d.ts.map +0 -1
  674. package/dist/types/runtimes/react/server/css/client-css.d.ts +0 -10
  675. package/dist/types/runtimes/react/server/css/client-css.d.ts.map +0 -1
  676. package/dist/types/runtimes/react/server/css/css-runtime.d.ts +0 -16
  677. package/dist/types/runtimes/react/server/css/css-runtime.d.ts.map +0 -1
  678. package/dist/types/runtimes/react/server/css/server-css.d.ts +0 -14
  679. package/dist/types/runtimes/react/server/css/server-css.d.ts.map +0 -1
  680. package/dist/types/runtimes/react/stylesheet-factory.d.ts +0 -6
  681. package/dist/types/runtimes/react/stylesheet-factory.d.ts.map +0 -1
  682. package/dist/types/runtimes/react/use-global-style.d.ts +0 -3
  683. package/dist/types/runtimes/react/use-global-style.d.ts.map +0 -1
  684. package/dist/types/runtimes/react/use-style.d.ts +0 -7
  685. package/dist/types/runtimes/react/use-style.d.ts.map +0 -1
@@ -0,0 +1,25 @@
1
+ import { serializeStyles as emotionSerializeStyles } from "@emotion/serialize";
2
+ import { serialize, compile, stringify, prefixer, middleware } from "stylis";
3
+ function toCssStatements(stylesObject, className) {
4
+ const { content: rawCssContent, contentHash } = toRawCss([stylesObject]);
5
+ const classNameRawCss = `.${className} {${rawCssContent}}`;
6
+ const css = processCss({ content: classNameRawCss });
7
+ return { css, contentHash };
8
+ }
9
+ function processCss({ content }) {
10
+ const cssElementTree = compile(content);
11
+ return serialize(cssElementTree, middleware([prefixer, stringify]));
12
+ }
13
+ function toRawCss(styles) {
14
+ const emotionSerializationResult = emotionSerializeStyles(styles);
15
+ return {
16
+ content: emotionSerializationResult.styles,
17
+ contentHash: emotionSerializationResult.name
18
+ };
19
+ }
20
+ export {
21
+ processCss,
22
+ toCssStatements,
23
+ toRawCss
24
+ };
25
+ //# sourceMappingURL=serialize-css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/serialize-css.ts"],"sourcesContent":["import { CSSObject, serializeStyles as emotionSerializeStyles } from '@emotion/serialize'\nimport { serialize, compile, stringify, prefixer, middleware } from 'stylis'\n\n/**\n * Creates a css string from the styles object and provided class name.\n *\n * The output of this function is the \"final\" css that is intended to be used directly\n * as `<style>` content, constructible stylesheet content, etc.\n *\n * For \"controlled\" styles, this represents the last step in the conversion of:\n * Makeswift prop data -> JS styles object -> css string\n *\n * For \"uncontrolled\" styles, this is used to convert an inline JS styles object\n * into a css string.\n */\nexport function toCssStatements(\n stylesObject: CSSObject,\n className: string,\n): { css: string; contentHash: string } {\n const { content: rawCssContent, contentHash } = toRawCss([stylesObject])\n const classNameRawCss = `.${className} {${rawCssContent}}`\n const css = processCss({ content: classNameRawCss })\n return { css, contentHash }\n}\n\n/**\n * This is a layer in the css pipeline that uses a css preprocessor\n * to apply select transformations to \"raw\" css input.\n *\n * Converts the inputted css content into an abstract syntax tree for manipulation\n * (performing unnesting, applying vendor prefixes, etc.). Re-serializes and returns\n * the transformed css string.\n */\nexport function processCss({ content }: { content: string }): string {\n const cssElementTree = compile(content)\n return serialize(cssElementTree, middleware([prefixer, stringify]))\n}\n\n/**\n * Uses Emotion's `serializeStyles` function to create a css string\n * which is returned along with a content hash.\n *\n * The resulting css content is \"raw\" in the sense that it hasn't been passed\n * through our css preprocessing layer.\n */\nexport function toRawCss(styles: Array<CSSObject>): { content: string; contentHash: string } {\n const emotionSerializationResult = emotionSerializeStyles(styles)\n return {\n content: emotionSerializationResult.styles,\n contentHash: emotionSerializationResult.name,\n }\n}\n"],"mappings":"AAAA,SAAoB,mBAAmB,8BAA8B;AACrE,SAAS,WAAW,SAAS,WAAW,UAAU,kBAAkB;AAc7D,SAAS,gBACd,cACA,WACsC;AACtC,QAAM,EAAE,SAAS,eAAe,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC;AACvE,QAAM,kBAAkB,IAAI,SAAS,KAAK,aAAa;AACvD,QAAM,MAAM,WAAW,EAAE,SAAS,gBAAgB,CAAC;AACnD,SAAO,EAAE,KAAK,YAAY;AAC5B;AAUO,SAAS,WAAW,EAAE,QAAQ,GAAgC;AACnE,QAAM,iBAAiB,QAAQ,OAAO;AACtC,SAAO,UAAU,gBAAgB,WAAW,CAAC,UAAU,SAAS,CAAC,CAAC;AACpE;AASO,SAAS,SAAS,QAAoE;AAC3F,QAAM,6BAA6B,uBAAuB,MAAM;AAChE,SAAO;AAAA,IACL,SAAS,2BAA2B;AAAA,IACpC,aAAa,2BAA2B;AAAA,EAC1C;AACF;","names":[]}
@@ -0,0 +1,32 @@
1
+ class StyleElementUpdater {
2
+ constructor() {
3
+ }
4
+ apply({ className, css }) {
5
+ const styleElement = this.findStyleElement(className);
6
+ if (styleElement) {
7
+ styleElement.textContent = css;
8
+ }
9
+ }
10
+ findStyleElement(className) {
11
+ const matchingStyleElements = document.querySelectorAll(
12
+ `style[data-href="${className}"]`
13
+ );
14
+ if (matchingStyleElements.length === 0) {
15
+ console.warn(
16
+ `Attempted to remove stale style rules for an editable Makeswift class '${className}', but found no corresponding style element`
17
+ );
18
+ return null;
19
+ }
20
+ if (matchingStyleElements.length > 1) {
21
+ console.warn(
22
+ `Attempted to remove stale style rules for an editable Makeswift class '${className}', but found multiple corresponding style elements`
23
+ );
24
+ return null;
25
+ }
26
+ return matchingStyleElements[0];
27
+ }
28
+ }
29
+ export {
30
+ StyleElementUpdater
31
+ };
32
+ //# sourceMappingURL=style-element-updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/style-element-updater.ts"],"sourcesContent":["import { BrowserStyleApplier } from './types'\n\nexport class StyleElementUpdater implements BrowserStyleApplier {\n constructor() {}\n\n apply({ className, css }: { className: string; css: string }): void {\n const styleElement = this.findStyleElement(className)\n if (styleElement) {\n styleElement.textContent = css\n }\n }\n\n private findStyleElement(className: string): HTMLStyleElement | null {\n const matchingStyleElements = document.querySelectorAll<HTMLStyleElement>(\n `style[data-href=\"${className}\"]`,\n )\n if (matchingStyleElements.length === 0) {\n console.warn(\n `Attempted to remove stale style rules for an editable Makeswift class '${className}', but found no corresponding style element`,\n )\n return null\n }\n if (matchingStyleElements.length > 1) {\n console.warn(\n `Attempted to remove stale style rules for an editable Makeswift class '${className}', but found multiple corresponding style elements`,\n )\n return null\n }\n return matchingStyleElements[0]\n }\n}\n"],"mappings":"AAEO,MAAM,oBAAmD;AAAA,EAC9D,cAAc;AAAA,EAAC;AAAA,EAEf,MAAM,EAAE,WAAW,IAAI,GAA6C;AAClE,UAAM,eAAe,KAAK,iBAAiB,SAAS;AACpD,QAAI,cAAc;AAChB,mBAAa,cAAc;AAAA,IAC7B;AAAA,EACF;AAAA,EAEQ,iBAAiB,WAA4C;AACnE,UAAM,wBAAwB,SAAS;AAAA,MACrC,oBAAoB,SAAS;AAAA,IAC/B;AACA,QAAI,sBAAsB,WAAW,GAAG;AACtC,cAAQ;AAAA,QACN,0EAA0E,SAAS;AAAA,MACrF;AACA,aAAO;AAAA,IACT;AACA,QAAI,sBAAsB,SAAS,GAAG;AACpC,cAAQ;AAAA,QACN,0EAA0E,SAAS;AAAA,MACrF;AACA,aAAO;AAAA,IACT;AACA,WAAO,sBAAsB,CAAC;AAAA,EAChC;AACF;","names":[]}
@@ -0,0 +1,261 @@
1
+ import { getControlledStylePrecedence, styleTagHtml } from "./utils";
2
+ import {
3
+ MakeswiftStylePrecedence
4
+ } from "./types";
5
+ class StylesRegistry {
6
+ // Keyed by class name
7
+ uncontrolledClassStyles;
8
+ // Outer map keyed by namespace, inner map keyed by class name
9
+ namespaceControlledStyles;
10
+ // Keyed by keyframes name
11
+ keyframes;
12
+ // Keyed by content hash
13
+ cssResets;
14
+ // Keyed by content hash
15
+ baseStyles;
16
+ // Keyed by class name
17
+ controlledStylesInitialData;
18
+ controlledStyleWriteListeners;
19
+ constructor() {
20
+ this.uncontrolledClassStyles = /* @__PURE__ */ new Map();
21
+ this.namespaceControlledStyles = /* @__PURE__ */ new Map();
22
+ this.keyframes = /* @__PURE__ */ new Map();
23
+ this.cssResets = /* @__PURE__ */ new Map();
24
+ this.baseStyles = /* @__PURE__ */ new Map();
25
+ this.controlledStyleWriteListeners = /* @__PURE__ */ new Set();
26
+ this.controlledStylesInitialData = /* @__PURE__ */ new Map();
27
+ }
28
+ /*
29
+ Getters
30
+ */
31
+ getUncontrolledClassStyles() {
32
+ return this.uncontrolledClassStyles;
33
+ }
34
+ getControlledStyles(namespace) {
35
+ return this.getOrCreateControlledStylesMapForNamespace(namespace);
36
+ }
37
+ getKeyframes() {
38
+ return this.keyframes;
39
+ }
40
+ getCssResets() {
41
+ return this.cssResets;
42
+ }
43
+ getBaseStyles() {
44
+ return this.baseStyles;
45
+ }
46
+ /*
47
+ Setters
48
+ */
49
+ setControlledStyle({
50
+ namespace,
51
+ className,
52
+ data
53
+ }) {
54
+ const namespaceControlledStyleData = this.getOrCreateControlledStylesMapForNamespace(namespace);
55
+ const previousData = namespaceControlledStyleData.get(className);
56
+ if (previousData != null && previousData.contentHash === data.contentHash) {
57
+ return;
58
+ }
59
+ namespaceControlledStyleData.set(className, data);
60
+ let initialData = this.controlledStylesInitialData.get(className);
61
+ if (initialData == null) {
62
+ initialData = data;
63
+ this.controlledStylesInitialData.set(className, data);
64
+ }
65
+ this.notifyOnControlledStyleWrite({
66
+ className,
67
+ currentData: data,
68
+ initialData
69
+ });
70
+ }
71
+ setUncontrolledClassStyle(data) {
72
+ this.uncontrolledClassStyles.set(data.className, data);
73
+ }
74
+ setKeyframes(data) {
75
+ this.keyframes.set(data.keyframesName, data);
76
+ }
77
+ setCssReset(data) {
78
+ this.cssResets.set(data.contentHash, data);
79
+ }
80
+ setBaseStyles(data) {
81
+ this.baseStyles.set(data.contentHash, data);
82
+ }
83
+ /*
84
+ Serialization
85
+ */
86
+ /**
87
+ * Creates an HTML string containing `<style>` elements for the contents of the
88
+ * registry, ordered by precedence (lower precedences first).
89
+ *
90
+ * This is intended to be used server-side in scenarios where we can't
91
+ * depend on React's hoisting behavior to place `<style>` elements in the page
92
+ * `<head>`.
93
+ *
94
+ * When using this for SSR, the `RootStyleRegistry` should be configured so that
95
+ * it does not render `<style>` elements alongside components (to avoid creating
96
+ * duplicates).
97
+ *
98
+ * There's an argument for providing these as an array of raw style data so
99
+ * that applications which render multiple React roots can deduplicate styles
100
+ * between them.
101
+ */
102
+ serializeToHtmlStyleTags() {
103
+ return this.serializeToStyleProps().map((stylePropsForPrecedence) => styleTagHtml(stylePropsForPrecedence)).join("");
104
+ }
105
+ /**
106
+ * Returns an array of `MakeswiftStyle` component props for the contents of the
107
+ * registry, ordered by precedence (lower precedences first).
108
+ *
109
+ * It might be desirable in some cases to avoid filtering out empty data, since
110
+ * an empty `<style>` tag in the page `<head>` can still serve as an anchor to
111
+ * which client-side React can hoist `<style>`s added after page load.
112
+ */
113
+ serializeToStyleProps(includeEmpty = false) {
114
+ const resetPrecedenceStylesProps = this.getPropsForResetPrecedenceStyles();
115
+ const mediumPrecedenceStylesProps = this.getPropsForMediumPrecedenceStyles();
116
+ const highPrecedenceStylesProps = this.getPropsForHighPrecedenceStyles();
117
+ const perPrecedenceProps = [
118
+ resetPrecedenceStylesProps,
119
+ mediumPrecedenceStylesProps,
120
+ highPrecedenceStylesProps,
121
+ ...this.getPropsForCustomPrecedenceStyles()
122
+ ];
123
+ return includeEmpty ? perPrecedenceProps : perPrecedenceProps.filter((props) => props.href.length > 0);
124
+ }
125
+ /*
126
+ Subscriptions
127
+ */
128
+ subscribeToControlledStyleWrites(listener) {
129
+ this.controlledStyleWriteListeners.add(listener);
130
+ const unsubscribe = () => {
131
+ this.controlledStyleWriteListeners.delete(listener);
132
+ };
133
+ return unsubscribe;
134
+ }
135
+ notifyOnControlledStyleWrite({
136
+ className,
137
+ currentData,
138
+ initialData
139
+ }) {
140
+ if (this.controlledStyleWriteListeners.size > 0) {
141
+ queueMicrotask(() => {
142
+ for (const listener of this.controlledStyleWriteListeners) {
143
+ try {
144
+ listener({ className, currentData, initialData });
145
+ } catch (e) {
146
+ console.error(`Error notifying listener for className ${className}:`, e);
147
+ }
148
+ }
149
+ });
150
+ }
151
+ }
152
+ /*
153
+ Helpers
154
+ */
155
+ getOrCreateControlledStylesMapForNamespace(namespace) {
156
+ let namespaceControlledStyles = this.namespaceControlledStyles.get(namespace);
157
+ if (namespaceControlledStyles == null) {
158
+ namespaceControlledStyles = /* @__PURE__ */ new Map();
159
+ this.namespaceControlledStyles.set(namespace, namespaceControlledStyles);
160
+ }
161
+ return namespaceControlledStyles;
162
+ }
163
+ getAllControlledStyles() {
164
+ const result = /* @__PURE__ */ new Map();
165
+ const controlledStyleNamespaces = Array.from(this.namespaceControlledStyles.keys());
166
+ for (const namespace of controlledStyleNamespaces) {
167
+ const namespaceControlledStyles = this.namespaceControlledStyles.get(namespace);
168
+ if (namespaceControlledStyles == null)
169
+ continue;
170
+ for (const [className, data] of namespaceControlledStyles.entries()) {
171
+ result.set(className, data);
172
+ }
173
+ }
174
+ return result;
175
+ }
176
+ getPropsForResetPrecedenceStyles() {
177
+ const cssResets = this.getCssResets();
178
+ const hrefValues = new Array();
179
+ const allCss = new Array();
180
+ for (const [contentHash, cssResetData] of cssResets.entries()) {
181
+ hrefValues.push(`makeswift-css-reset-${contentHash}`);
182
+ allCss.push(cssResetData.css);
183
+ }
184
+ const combinedHref = hrefValues.join(" ");
185
+ const combinedCss = allCss.join("");
186
+ return {
187
+ href: combinedHref,
188
+ css: combinedCss,
189
+ precedence: MakeswiftStylePrecedence.RESET
190
+ };
191
+ }
192
+ getPropsForMediumPrecedenceStyles() {
193
+ const styles = this.getUncontrolledClassStyles();
194
+ const keyframes = this.getKeyframes();
195
+ const hrefValues = new Array();
196
+ const allCss = new Array();
197
+ for (const [className, uncontrolledStyleData] of styles.entries()) {
198
+ hrefValues.push(className);
199
+ allCss.push(uncontrolledStyleData.css);
200
+ }
201
+ for (const [keyframesName, keyframesData] of keyframes.entries()) {
202
+ hrefValues.push(keyframesName);
203
+ allCss.push(keyframesData.css);
204
+ }
205
+ const combinedHref = hrefValues.join(" ");
206
+ const combinedCss = allCss.join("");
207
+ return {
208
+ href: combinedHref,
209
+ css: combinedCss,
210
+ precedence: MakeswiftStylePrecedence.MEDIUM
211
+ };
212
+ }
213
+ getPropsForHighPrecedenceStyles() {
214
+ const baseStyles = this.getBaseStyles();
215
+ const hrefValues = new Array();
216
+ const allCss = new Array();
217
+ for (const [contentHash, baseStylesData] of baseStyles.entries()) {
218
+ hrefValues.push(`makeswift-base-styles-${contentHash}`);
219
+ allCss.push(baseStylesData.css);
220
+ }
221
+ const combinedHref = hrefValues.join(" ");
222
+ const combinedCss = allCss.join("");
223
+ return {
224
+ href: combinedHref,
225
+ css: combinedCss,
226
+ precedence: MakeswiftStylePrecedence.HIGH
227
+ };
228
+ }
229
+ getPropsForCustomPrecedenceStyles() {
230
+ const controlledStyles = this.getAllControlledStyles();
231
+ const customPrecedenceValues = /* @__PURE__ */ new Set();
232
+ const customPrecedenceToHrefValues = /* @__PURE__ */ new Map();
233
+ const customPrecedenceToCss = /* @__PURE__ */ new Map();
234
+ for (const [className, controlledStyleData] of controlledStyles.entries()) {
235
+ const precedence = getControlledStylePrecedence(controlledStyleData);
236
+ customPrecedenceValues.add(precedence);
237
+ const hrefValues = customPrecedenceToHrefValues.get(precedence) ?? [];
238
+ const css = customPrecedenceToCss.get(precedence) ?? [];
239
+ hrefValues.push(className);
240
+ css.push(controlledStyleData.css);
241
+ customPrecedenceToHrefValues.set(precedence, hrefValues);
242
+ customPrecedenceToCss.set(precedence, css);
243
+ }
244
+ return Array.from(customPrecedenceValues.values()).map((customPrecedenceValue) => {
245
+ const hrefValues = customPrecedenceToHrefValues.get(customPrecedenceValue) ?? [];
246
+ const allCss = customPrecedenceToCss.get(customPrecedenceValue) ?? [];
247
+ const combinedHref = hrefValues.join(" ");
248
+ const combinedCss = allCss.join("");
249
+ const propsForCustomPrecedence = {
250
+ href: combinedHref,
251
+ css: combinedCss,
252
+ precedence: customPrecedenceValue
253
+ };
254
+ return propsForCustomPrecedence;
255
+ });
256
+ }
257
+ }
258
+ export {
259
+ StylesRegistry
260
+ };
261
+ //# sourceMappingURL=styles-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/styles-registry.ts"],"sourcesContent":["import { getControlledStylePrecedence, styleTagHtml } from './utils'\nimport {\n BaseStylesData,\n ClassStyleData,\n ControlledStyleData,\n CssResetData,\n KeyframesData,\n MakeswiftStylePrecedence,\n OnControlledStyleDataWrite,\n} from './types'\nimport { ComponentProps } from 'react'\nimport { MakeswiftStyle } from './components/makeswift-style'\n\nexport class StylesRegistry {\n // Keyed by class name\n private uncontrolledClassStyles: Map<string, ClassStyleData>\n\n // Outer map keyed by namespace, inner map keyed by class name\n private namespaceControlledStyles: Map<string, Map<string, ControlledStyleData>>\n\n // Keyed by keyframes name\n private keyframes: Map<string, KeyframesData>\n\n // Keyed by content hash\n private cssResets: Map<string, CssResetData>\n\n // Keyed by content hash\n private baseStyles: Map<string, BaseStylesData>\n\n // Keyed by class name\n private controlledStylesInitialData: Map<string, ControlledStyleData>\n private controlledStyleWriteListeners: Set<OnControlledStyleDataWrite>\n\n constructor() {\n this.uncontrolledClassStyles = new Map()\n this.namespaceControlledStyles = new Map()\n this.keyframes = new Map()\n this.cssResets = new Map()\n this.baseStyles = new Map()\n this.controlledStyleWriteListeners = new Set()\n this.controlledStylesInitialData = new Map()\n }\n\n /*\n Getters\n */\n\n getUncontrolledClassStyles(): ReadonlyMap<string, ClassStyleData> {\n return this.uncontrolledClassStyles\n }\n\n getControlledStyles(namespace: string): ReadonlyMap<string, ControlledStyleData> {\n return this.getOrCreateControlledStylesMapForNamespace(namespace)\n }\n\n getKeyframes(): ReadonlyMap<string, KeyframesData> {\n return this.keyframes\n }\n\n getCssResets(): ReadonlyMap<string, CssResetData> {\n return this.cssResets\n }\n\n getBaseStyles(): ReadonlyMap<string, BaseStylesData> {\n return this.baseStyles\n }\n\n /*\n Setters\n */\n\n setControlledStyle({\n namespace,\n className,\n data,\n }: {\n namespace: string\n className: string\n data: ControlledStyleData\n }) {\n const namespaceControlledStyleData = this.getOrCreateControlledStylesMapForNamespace(namespace)\n\n const previousData = namespaceControlledStyleData.get(className)\n if (previousData != null && previousData.contentHash === data.contentHash) {\n return\n }\n\n namespaceControlledStyleData.set(className, data)\n\n let initialData = this.controlledStylesInitialData.get(className)\n if (initialData == null) {\n initialData = data\n this.controlledStylesInitialData.set(className, data)\n }\n this.notifyOnControlledStyleWrite({\n className,\n currentData: data,\n initialData,\n })\n }\n\n setUncontrolledClassStyle(data: ClassStyleData) {\n this.uncontrolledClassStyles.set(data.className, data)\n }\n\n setKeyframes(data: KeyframesData) {\n this.keyframes.set(data.keyframesName, data)\n }\n\n setCssReset(data: CssResetData) {\n this.cssResets.set(data.contentHash, data)\n }\n\n setBaseStyles(data: BaseStylesData) {\n this.baseStyles.set(data.contentHash, data)\n }\n\n /*\n Serialization\n */\n\n /**\n * Creates an HTML string containing `<style>` elements for the contents of the\n * registry, ordered by precedence (lower precedences first).\n *\n * This is intended to be used server-side in scenarios where we can't\n * depend on React's hoisting behavior to place `<style>` elements in the page\n * `<head>`.\n *\n * When using this for SSR, the `RootStyleRegistry` should be configured so that\n * it does not render `<style>` elements alongside components (to avoid creating\n * duplicates).\n *\n * There's an argument for providing these as an array of raw style data so\n * that applications which render multiple React roots can deduplicate styles\n * between them.\n */\n serializeToHtmlStyleTags(): string {\n return this.serializeToStyleProps()\n .map(stylePropsForPrecedence => styleTagHtml(stylePropsForPrecedence))\n .join('')\n }\n\n /**\n * Returns an array of `MakeswiftStyle` component props for the contents of the\n * registry, ordered by precedence (lower precedences first).\n *\n * It might be desirable in some cases to avoid filtering out empty data, since\n * an empty `<style>` tag in the page `<head>` can still serve as an anchor to\n * which client-side React can hoist `<style>`s added after page load.\n */\n serializeToStyleProps(\n includeEmpty: boolean = false,\n ): Array<ComponentProps<typeof MakeswiftStyle>> {\n const resetPrecedenceStylesProps = this.getPropsForResetPrecedenceStyles()\n const mediumPrecedenceStylesProps = this.getPropsForMediumPrecedenceStyles()\n const highPrecedenceStylesProps = this.getPropsForHighPrecedenceStyles()\n\n const perPrecedenceProps = [\n resetPrecedenceStylesProps,\n mediumPrecedenceStylesProps,\n highPrecedenceStylesProps,\n ...this.getPropsForCustomPrecedenceStyles(),\n ]\n return includeEmpty\n ? perPrecedenceProps\n : perPrecedenceProps.filter(props => props.href.length > 0)\n }\n\n /*\n Subscriptions\n */\n subscribeToControlledStyleWrites(listener: OnControlledStyleDataWrite): () => void {\n this.controlledStyleWriteListeners.add(listener)\n const unsubscribe = () => {\n this.controlledStyleWriteListeners.delete(listener)\n }\n return unsubscribe\n }\n\n notifyOnControlledStyleWrite({\n className,\n currentData,\n initialData,\n }: {\n className: string\n currentData: ControlledStyleData\n initialData: ControlledStyleData\n }) {\n if (this.controlledStyleWriteListeners.size > 0) {\n queueMicrotask(() => {\n for (const listener of this.controlledStyleWriteListeners) {\n try {\n listener({ className, currentData, initialData })\n } catch (e) {\n console.error(`Error notifying listener for className ${className}:`, e)\n }\n }\n })\n }\n }\n\n /*\n Helpers\n */\n\n private getOrCreateControlledStylesMapForNamespace(\n namespace: string,\n ): Map<string, ControlledStyleData> {\n let namespaceControlledStyles = this.namespaceControlledStyles.get(namespace)\n if (namespaceControlledStyles == null) {\n namespaceControlledStyles = new Map()\n this.namespaceControlledStyles.set(namespace, namespaceControlledStyles)\n }\n return namespaceControlledStyles\n }\n\n private getAllControlledStyles(): Map<string, ControlledStyleData> {\n const result = new Map<string, ControlledStyleData>()\n const controlledStyleNamespaces = Array.from(this.namespaceControlledStyles.keys())\n for (const namespace of controlledStyleNamespaces) {\n const namespaceControlledStyles = this.namespaceControlledStyles.get(namespace)\n if (namespaceControlledStyles == null) continue\n for (const [className, data] of namespaceControlledStyles.entries()) {\n result.set(className, data)\n }\n }\n return result\n }\n\n private getPropsForResetPrecedenceStyles(): ComponentProps<typeof MakeswiftStyle> {\n const cssResets = this.getCssResets()\n const hrefValues = new Array<string>()\n const allCss = new Array<string>()\n for (const [contentHash, cssResetData] of cssResets.entries()) {\n hrefValues.push(`makeswift-css-reset-${contentHash}`)\n allCss.push(cssResetData.css)\n }\n const combinedHref = hrefValues.join(' ')\n const combinedCss = allCss.join('')\n return {\n href: combinedHref,\n css: combinedCss,\n precedence: MakeswiftStylePrecedence.RESET,\n }\n }\n\n private getPropsForMediumPrecedenceStyles(): ComponentProps<typeof MakeswiftStyle> {\n const styles = this.getUncontrolledClassStyles()\n const keyframes = this.getKeyframes()\n\n const hrefValues = new Array<string>()\n const allCss = new Array<string>()\n for (const [className, uncontrolledStyleData] of styles.entries()) {\n hrefValues.push(className)\n allCss.push(uncontrolledStyleData.css)\n }\n for (const [keyframesName, keyframesData] of keyframes.entries()) {\n hrefValues.push(keyframesName)\n allCss.push(keyframesData.css)\n }\n const combinedHref = hrefValues.join(' ')\n const combinedCss = allCss.join('')\n return {\n href: combinedHref,\n css: combinedCss,\n precedence: MakeswiftStylePrecedence.MEDIUM,\n }\n }\n\n private getPropsForHighPrecedenceStyles(): ComponentProps<typeof MakeswiftStyle> {\n const baseStyles = this.getBaseStyles()\n const hrefValues = new Array<string>()\n const allCss = new Array<string>()\n for (const [contentHash, baseStylesData] of baseStyles.entries()) {\n hrefValues.push(`makeswift-base-styles-${contentHash}`)\n allCss.push(baseStylesData.css)\n }\n const combinedHref = hrefValues.join(' ')\n const combinedCss = allCss.join('')\n return {\n href: combinedHref,\n css: combinedCss,\n precedence: MakeswiftStylePrecedence.HIGH,\n }\n }\n\n private getPropsForCustomPrecedenceStyles(): Array<ComponentProps<typeof MakeswiftStyle>> {\n const controlledStyles = this.getAllControlledStyles()\n const customPrecedenceValues = new Set<string>()\n const customPrecedenceToHrefValues = new Map<string, Array<string>>()\n const customPrecedenceToCss = new Map<string, Array<string>>()\n for (const [className, controlledStyleData] of controlledStyles.entries()) {\n const precedence = getControlledStylePrecedence(controlledStyleData)\n customPrecedenceValues.add(precedence)\n\n const hrefValues = customPrecedenceToHrefValues.get(precedence) ?? []\n const css = customPrecedenceToCss.get(precedence) ?? []\n\n hrefValues.push(className)\n css.push(controlledStyleData.css)\n\n customPrecedenceToHrefValues.set(precedence, hrefValues)\n customPrecedenceToCss.set(precedence, css)\n }\n\n return Array.from(customPrecedenceValues.values()).map(customPrecedenceValue => {\n const hrefValues = customPrecedenceToHrefValues.get(customPrecedenceValue) ?? []\n const allCss = customPrecedenceToCss.get(customPrecedenceValue) ?? []\n const combinedHref = hrefValues.join(' ')\n const combinedCss = allCss.join('')\n const propsForCustomPrecedence: ComponentProps<typeof MakeswiftStyle> = {\n href: combinedHref,\n css: combinedCss,\n precedence: customPrecedenceValue,\n }\n return propsForCustomPrecedence\n })\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,65 @@
1
+ import { generateClassName } from "./utils";
2
+ import { resolvedStyleToCss } from "../lib/resolved-style-to-css";
3
+ import { toCssStatements } from "./serialize-css";
4
+ class StylesheetEngine {
5
+ breakpointsData;
6
+ documentKey;
7
+ elementKey;
8
+ propPathComponents;
9
+ onDefineStyle;
10
+ classNamePrefix;
11
+ constructor({
12
+ breakpointsData,
13
+ documentKey,
14
+ elementKey,
15
+ propPathComponents,
16
+ onDefineStyle,
17
+ classNamePrefix
18
+ }) {
19
+ this.breakpointsData = breakpointsData;
20
+ this.documentKey = documentKey;
21
+ this.elementKey = elementKey;
22
+ this.propPathComponents = propPathComponents;
23
+ this.onDefineStyle = onDefineStyle;
24
+ this.classNamePrefix = classNamePrefix;
25
+ }
26
+ breakpoints() {
27
+ return this.breakpointsData;
28
+ }
29
+ defineStyle(resolvedStyle, onBoxModelChange) {
30
+ const joinedPropPath = this.propPathComponents.join(".");
31
+ const className = generateClassName({
32
+ data: this.key(),
33
+ classNamePrefix: this.classNamePrefix
34
+ });
35
+ const cssObject = resolvedStyleToCss(this.breakpointsData, resolvedStyle);
36
+ const { css, contentHash } = toCssStatements(cssObject, className);
37
+ this.onDefineStyle?.({
38
+ className,
39
+ css,
40
+ cssObject,
41
+ contentHash,
42
+ elementKey: this.elementKey,
43
+ joinedPropPath,
44
+ onBoxModelChange
45
+ });
46
+ return className;
47
+ }
48
+ child(propName) {
49
+ return new StylesheetEngine({
50
+ breakpointsData: this.breakpointsData,
51
+ documentKey: this.documentKey,
52
+ elementKey: this.elementKey,
53
+ propPathComponents: [...this.propPathComponents, propName],
54
+ onDefineStyle: this.onDefineStyle,
55
+ classNamePrefix: this.classNamePrefix
56
+ });
57
+ }
58
+ key() {
59
+ return `${this.documentKey}-${this.elementKey}-${this.propPathComponents.join(".")}`;
60
+ }
61
+ }
62
+ export {
63
+ StylesheetEngine
64
+ };
65
+ //# sourceMappingURL=stylesheet-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/stylesheet-engine.ts"],"sourcesContent":["import { BoxDisplayModel, Breakpoints, ResolvedStyle, Stylesheet } from '@makeswift/controls'\nimport { generateClassName } from './utils'\nimport { ControlledStyleData } from './types'\nimport { resolvedStyleToCss } from '../lib/resolved-style-to-css'\nimport { toCssStatements } from './serialize-css'\n\nexport class StylesheetEngine implements Stylesheet {\n private breakpointsData: Breakpoints\n private documentKey: string\n private elementKey: string\n private propPathComponents: readonly string[]\n private onDefineStyle: (data: ControlledStyleData) => void\n private classNamePrefix?: string\n\n constructor({\n breakpointsData,\n documentKey,\n elementKey,\n propPathComponents,\n onDefineStyle,\n classNamePrefix,\n }: {\n breakpointsData: Breakpoints\n documentKey: string\n elementKey: string\n propPathComponents: readonly string[]\n onDefineStyle: (data: ControlledStyleData) => void\n classNamePrefix?: string\n }) {\n this.breakpointsData = breakpointsData\n this.documentKey = documentKey\n this.elementKey = elementKey\n this.propPathComponents = propPathComponents\n this.onDefineStyle = onDefineStyle\n this.classNamePrefix = classNamePrefix\n }\n\n breakpoints(): Breakpoints {\n return this.breakpointsData\n }\n\n defineStyle(\n resolvedStyle: ResolvedStyle,\n onBoxModelChange?: (boxModel: BoxDisplayModel | null) => void,\n ): string {\n const joinedPropPath = this.propPathComponents.join('.')\n const className = generateClassName({\n data: this.key(),\n classNamePrefix: this.classNamePrefix,\n })\n const cssObject = resolvedStyleToCss(this.breakpointsData, resolvedStyle)\n const { css, contentHash } = toCssStatements(cssObject, className)\n\n this.onDefineStyle?.({\n className,\n css,\n cssObject,\n contentHash,\n elementKey: this.elementKey,\n joinedPropPath,\n onBoxModelChange,\n })\n return className\n }\n\n child(propName: string): Stylesheet {\n return new StylesheetEngine({\n breakpointsData: this.breakpointsData,\n documentKey: this.documentKey,\n elementKey: this.elementKey,\n propPathComponents: [...this.propPathComponents, propName],\n onDefineStyle: this.onDefineStyle,\n classNamePrefix: this.classNamePrefix,\n })\n }\n\n key(): string {\n return `${this.documentKey}-${this.elementKey}-${this.propPathComponents.join('.')}`\n }\n}\n"],"mappings":"AACA,SAAS,yBAAyB;AAElC,SAAS,0BAA0B;AACnC,SAAS,uBAAuB;AAEzB,MAAM,iBAAuC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAOG;AACD,SAAK,kBAAkB;AACvB,SAAK,cAAc;AACnB,SAAK,aAAa;AAClB,SAAK,qBAAqB;AAC1B,SAAK,gBAAgB;AACrB,SAAK,kBAAkB;AAAA,EACzB;AAAA,EAEA,cAA2B;AACzB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YACE,eACA,kBACQ;AACR,UAAM,iBAAiB,KAAK,mBAAmB,KAAK,GAAG;AACvD,UAAM,YAAY,kBAAkB;AAAA,MAClC,MAAM,KAAK,IAAI;AAAA,MACf,iBAAiB,KAAK;AAAA,IACxB,CAAC;AACD,UAAM,YAAY,mBAAmB,KAAK,iBAAiB,aAAa;AACxE,UAAM,EAAE,KAAK,YAAY,IAAI,gBAAgB,WAAW,SAAS;AAEjE,SAAK,gBAAgB;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAA8B;AAClC,WAAO,IAAI,iBAAiB;AAAA,MAC1B,iBAAiB,KAAK;AAAA,MACtB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK;AAAA,MACjB,oBAAoB,CAAC,GAAG,KAAK,oBAAoB,QAAQ;AAAA,MACzD,eAAe,KAAK;AAAA,MACpB,iBAAiB,KAAK;AAAA,IACxB,CAAC;AAAA,EACH;AAAA,EAEA,MAAc;AACZ,WAAO,GAAG,KAAK,WAAW,IAAI,KAAK,UAAU,IAAI,KAAK,mBAAmB,KAAK,GAAG,CAAC;AAAA,EACpF;AACF;","names":[]}
@@ -0,0 +1,10 @@
1
+ const MakeswiftStylePrecedence = {
2
+ RESET: "reset",
3
+ LOW: "low",
4
+ MEDIUM: "medium",
5
+ HIGH: "high"
6
+ };
7
+ export {
8
+ MakeswiftStylePrecedence
9
+ };
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/types.ts"],"sourcesContent":["import { CSSObject } from '@emotion/serialize'\nimport { BoxDisplayModel, Breakpoints, Stylesheet } from '@makeswift/controls'\n\n/*\n Per React's `<style>` documentation:\n \"React will infer that precedence values it discovers first are 'lower' and precedence\n values it discovers later are 'higher'\"\n*/\nexport const MakeswiftStylePrecedence = {\n RESET: 'reset',\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n} as const\nexport type MakeswiftStylePrecedence =\n (typeof MakeswiftStylePrecedence)[keyof typeof MakeswiftStylePrecedence]\n\nexport interface BrowserStyleApplier {\n apply({ className, css }: { className: string; css: string }): void\n dispose?(): void\n}\n\nexport type GetStylesheet = ({\n breakpointsData,\n elementKey,\n propPathComponents,\n}: {\n breakpointsData: Breakpoints\n elementKey: string\n propPathComponents: readonly string[]\n}) => Stylesheet\n\nexport type ClassStyleData = {\n className: string\n css: string\n cssObject: CSSObject\n}\n\nexport type ControlledStyleData = ClassStyleData & {\n contentHash: string\n elementKey: string\n joinedPropPath: string\n onBoxModelChange?: (boxModel: BoxDisplayModel | null) => void\n}\n\nexport type OnControlledStyleDataWrite = ({\n className,\n currentData,\n initialData,\n}: {\n className: string\n currentData: ControlledStyleData\n initialData: ControlledStyleData\n}) => void\n\nexport type CssResetData = {\n css: string\n contentHash: string\n\n // This array type is to accommodate our use of `normalize` from `polished`\n cssObjects: Array<CSSObject>\n}\n\nexport type KeyframesData = {\n keyframesName: string\n css: string\n}\n\nexport type BaseStylesData = {\n css: string\n contentHash: string\n cssObject: CSSObject\n}\n"],"mappings":"AAQO,MAAM,2BAA2B;AAAA,EACtC,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AACR;","names":[]}
@@ -0,0 +1,26 @@
1
+ import { murmur3 } from "murmurhash-js";
2
+ import { DEFAULT_CSS_CLASS_NAME_PREFIX, DEFAULT_CSS_PRECEDENCE } from "./constants";
3
+ import { StylesRegistry } from "./styles-registry";
4
+ function generateClassName({
5
+ data,
6
+ classNamePrefix
7
+ }) {
8
+ const prefix = classNamePrefix ?? DEFAULT_CSS_CLASS_NAME_PREFIX;
9
+ return `${prefix}-${murmur3(data).toString(36)}`;
10
+ }
11
+ function createMakeswiftStylesRegistry() {
12
+ return new StylesRegistry();
13
+ }
14
+ function styleTagHtml({ href, precedence, css }) {
15
+ return `<style data-href="${href}" data-precedence="${precedence ?? DEFAULT_CSS_PRECEDENCE}">${css}</style>`;
16
+ }
17
+ function getControlledStylePrecedence(styleData) {
18
+ return styleData.className;
19
+ }
20
+ export {
21
+ createMakeswiftStylesRegistry,
22
+ generateClassName,
23
+ getControlledStylePrecedence,
24
+ styleTagHtml
25
+ };
26
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/utils.ts"],"sourcesContent":["import { murmur3 } from 'murmurhash-js'\nimport { DEFAULT_CSS_CLASS_NAME_PREFIX, DEFAULT_CSS_PRECEDENCE } from './constants'\nimport { StylesRegistry } from './styles-registry'\nimport { MakeswiftStyle } from './components/makeswift-style'\nimport { ComponentProps } from 'react'\nimport { ControlledStyleData } from './types'\n\nexport function generateClassName({\n data,\n classNamePrefix,\n}: {\n data: string\n classNamePrefix?: string\n}): string {\n const prefix = classNamePrefix ?? DEFAULT_CSS_CLASS_NAME_PREFIX\n return `${prefix}-${murmur3(data).toString(36)}`\n}\n\nexport function createMakeswiftStylesRegistry(): StylesRegistry {\n return new StylesRegistry()\n}\n\n/**\n * Creates an html string of a style element in the format that React's hoisting mechanism\n * would create.\n *\n * If that format is not matched, then client-side React will not recognize\n * the `<style>` elements derived from the string returned below, and will hoist new\n * (duplicate) `<style>` elements during hydration.\n */\nexport function styleTagHtml({ href, precedence, css }: ComponentProps<typeof MakeswiftStyle>) {\n return `<style data-href=\"${href}\" data-precedence=\"${precedence ?? DEFAULT_CSS_PRECEDENCE}\">${css}</style>`\n}\n\nexport function getControlledStylePrecedence(styleData: ControlledStyleData): string {\n return styleData.className\n}\n"],"mappings":"AAAA,SAAS,eAAe;AACxB,SAAS,+BAA+B,8BAA8B;AACtE,SAAS,sBAAsB;AAKxB,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AACF,GAGW;AACT,QAAM,SAAS,mBAAmB;AAClC,SAAO,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,SAAS,EAAE,CAAC;AAChD;AAEO,SAAS,gCAAgD;AAC9D,SAAO,IAAI,eAAe;AAC5B;AAUO,SAAS,aAAa,EAAE,MAAM,YAAY,IAAI,GAA0C;AAC7F,SAAO,qBAAqB,IAAI,sBAAsB,cAAc,sBAAsB,KAAK,GAAG;AACpG;AAEO,SAAS,6BAA6B,WAAwC;AACnF,SAAO,UAAU;AACnB;","names":[]}
@@ -4,14 +4,16 @@ import {
4
4
  } from "@makeswift/controls";
5
5
  import { useResourceResolver } from "./use-resource-resolver";
6
6
  import { propErrorHandlingProxy } from "../utils/prop-error-handling-proxy";
7
+ import { useBreakpoints } from "./use-breakpoints";
7
8
  import { useResolvableRecord } from "./use-resolvable-record";
8
9
  function useResolvedProps({
9
10
  elementKey,
10
11
  propDefs,
11
12
  propData,
12
13
  controlInstances,
13
- stylesheetFactory
14
+ getStylesheet
14
15
  }) {
16
+ const breakpoints = useBreakpoints();
15
17
  const resourceResolver = useResourceResolver();
16
18
  const cache = useRef({}).current;
17
19
  const resolveProp = useCallback(
@@ -21,16 +23,16 @@ function useResolvedProps({
21
23
  if (cache[propName] != null && data === cache[propName].data && control === cache[propName].control) {
22
24
  return cache[propName].resolvedValue;
23
25
  }
24
- const resolvedValue = def.resolveValue(
25
- data,
26
- resourceResolver,
27
- stylesheetFactory.get(propName),
28
- control
29
- );
26
+ const stylesheet = getStylesheet({
27
+ breakpointsData: breakpoints,
28
+ elementKey,
29
+ propPathComponents: [propName]
30
+ });
31
+ const resolvedValue = def.resolveValue(data, resourceResolver, stylesheet, control);
30
32
  cache[propName] = { data, control, resolvedValue };
31
33
  return resolvedValue;
32
34
  },
33
- [propData, cache, resourceResolver, controlInstances, stylesheetFactory]
35
+ [propData, cache, resourceResolver, controlInstances, breakpoints, elementKey, getStylesheet]
34
36
  );
35
37
  const resolvables = useMemo(
36
38
  () => mapValues(propDefs, (def, propName) => {
@@ -51,7 +53,6 @@ function useResolvedProps({
51
53
  });
52
54
  }, [props, elementKey]);
53
55
  const resolvedProps = useSyncExternalStore(props.subscribe, props.readStable, props.readStable);
54
- stylesheetFactory.useDefinedStyles();
55
56
  return resolvedProps;
56
57
  }
57
58
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-props.ts"],"sourcesContent":["import { useMemo, useEffect, useRef, useSyncExternalStore, useCallback } from 'react'\nimport {\n ControlDefinition,\n ControlInstance,\n mapValues,\n type Data,\n type Resolvable,\n} from '@makeswift/controls'\n\nimport { useResourceResolver } from './use-resource-resolver'\n\nimport { type StylesheetFactory } from '../stylesheet-factory'\nimport { propErrorHandlingProxy } from '../utils/prop-error-handling-proxy'\n\nimport { useResolvableRecord } from './use-resolvable-record'\n\ntype CacheItem = {\n data: Data\n control: ControlInstance | undefined\n resolvedValue: Resolvable<unknown>\n}\n\n/**\n * Client-side prop resolution. See `resolveProps` for server-side counterpart.\n */\nexport function useResolvedProps({\n elementKey,\n propDefs,\n propData,\n controlInstances,\n stylesheetFactory,\n}: {\n elementKey: string\n propDefs: Record<string, ControlDefinition>\n propData: Record<string, Data>\n controlInstances: Record<string, ControlInstance> | null\n stylesheetFactory: StylesheetFactory\n}): Record<string, unknown> {\n const resourceResolver = useResourceResolver()\n\n const cache = useRef<Record<string, CacheItem>>({}).current\n const resolveProp = useCallback(\n (def: ControlDefinition, propName: string) => {\n const data = propData[propName]\n const control = controlInstances?.[propName]\n\n if (\n cache[propName] != null &&\n data === cache[propName].data &&\n control === cache[propName].control\n ) {\n return cache[propName].resolvedValue\n }\n\n const resolvedValue = def.resolveValue(\n data,\n resourceResolver,\n stylesheetFactory.get(propName),\n control,\n )\n\n cache[propName] = { data, control, resolvedValue }\n return resolvedValue\n },\n [propData, cache, resourceResolver, controlInstances, stylesheetFactory],\n )\n\n const resolvables = useMemo<Record<string, Resolvable<unknown>>>(\n () =>\n mapValues(propDefs, (def, propName) => {\n const defaultValue = (def.config as any)?.defaultValue\n return propErrorHandlingProxy(resolveProp(def, propName), defaultValue, error => {\n console.warn(\n `Error reading value for prop \"${propName}\" of element ${elementKey}, falling back to \\`${defaultValue}\\`.`,\n { control: def, error },\n )\n })\n }),\n [propDefs, resolveProp, elementKey],\n )\n\n const props = useResolvableRecord(resolvables)\n\n // no need to call `triggerResolve` on the server, all the resources should already be in\n // the host API client's cache (populated from the snapshot's cache)\n useEffect(() => {\n props.triggerResolve().catch(err => {\n console.log(`Error while resolving props for element ${elementKey}`, err)\n })\n }, [props, elementKey])\n\n // the order is important here, the styles are defined in the process of the props resolution,\n // calling `useDefinedStyles` before the props are resolved would effectively be a noop\n const resolvedProps = useSyncExternalStore(props.subscribe, props.readStable, props.readStable)\n\n stylesheetFactory.useDefinedStyles()\n\n return resolvedProps\n}\n"],"mappings":"AAAA,SAAS,SAAS,WAAW,QAAQ,sBAAsB,mBAAmB;AAC9E;AAAA,EAGE;AAAA,OAGK;AAEP,SAAS,2BAA2B;AAGpC,SAAS,8BAA8B;AAEvC,SAAS,2BAA2B;AAW7B,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAM4B;AAC1B,QAAM,mBAAmB,oBAAoB;AAE7C,QAAM,QAAQ,OAAkC,CAAC,CAAC,EAAE;AACpD,QAAM,cAAc;AAAA,IAClB,CAAC,KAAwB,aAAqB;AAC5C,YAAM,OAAO,SAAS,QAAQ;AAC9B,YAAM,UAAU,mBAAmB,QAAQ;AAE3C,UACE,MAAM,QAAQ,KAAK,QACnB,SAAS,MAAM,QAAQ,EAAE,QACzB,YAAY,MAAM,QAAQ,EAAE,SAC5B;AACA,eAAO,MAAM,QAAQ,EAAE;AAAA,MACzB;AAEA,YAAM,gBAAgB,IAAI;AAAA,QACxB;AAAA,QACA;AAAA,QACA,kBAAkB,IAAI,QAAQ;AAAA,QAC9B;AAAA,MACF;AAEA,YAAM,QAAQ,IAAI,EAAE,MAAM,SAAS,cAAc;AACjD,aAAO;AAAA,IACT;AAAA,IACA,CAAC,UAAU,OAAO,kBAAkB,kBAAkB,iBAAiB;AAAA,EACzE;AAEA,QAAM,cAAc;AAAA,IAClB,MACE,UAAU,UAAU,CAAC,KAAK,aAAa;AACrC,YAAM,eAAgB,IAAI,QAAgB;AAC1C,aAAO,uBAAuB,YAAY,KAAK,QAAQ,GAAG,cAAc,WAAS;AAC/E,gBAAQ;AAAA,UACN,iCAAiC,QAAQ,gBAAgB,UAAU,uBAAuB,YAAY;AAAA,UACtG,EAAE,SAAS,KAAK,MAAM;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,IACH,CAAC,UAAU,aAAa,UAAU;AAAA,EACpC;AAEA,QAAM,QAAQ,oBAAoB,WAAW;AAI7C,YAAU,MAAM;AACd,UAAM,eAAe,EAAE,MAAM,SAAO;AAClC,cAAQ,IAAI,2CAA2C,UAAU,IAAI,GAAG;AAAA,IAC1E,CAAC;AAAA,EACH,GAAG,CAAC,OAAO,UAAU,CAAC;AAItB,QAAM,gBAAgB,qBAAqB,MAAM,WAAW,MAAM,YAAY,MAAM,UAAU;AAE9F,oBAAkB,iBAAiB;AAEnC,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-props.ts"],"sourcesContent":["import { useMemo, useEffect, useRef, useSyncExternalStore, useCallback } from 'react'\nimport {\n ControlDefinition,\n ControlInstance,\n mapValues,\n type Data,\n type Resolvable,\n} from '@makeswift/controls'\n\nimport { useResourceResolver } from './use-resource-resolver'\n\nimport { propErrorHandlingProxy } from '../utils/prop-error-handling-proxy'\nimport { useBreakpoints } from './use-breakpoints'\n\nimport { useResolvableRecord } from './use-resolvable-record'\nimport { GetStylesheet } from '../css-runtime/types'\n\ntype CacheItem = {\n data: Data\n control: ControlInstance | undefined\n resolvedValue: Resolvable<unknown>\n}\n\n/**\n * Client-side prop resolution. See `resolveProps` for server-side counterpart.\n */\nexport function useResolvedProps({\n elementKey,\n propDefs,\n propData,\n controlInstances,\n getStylesheet,\n}: {\n elementKey: string\n propDefs: Record<string, ControlDefinition>\n propData: Record<string, Data>\n controlInstances: Record<string, ControlInstance> | null\n getStylesheet: GetStylesheet\n}): Record<string, unknown> {\n const breakpoints = useBreakpoints()\n const resourceResolver = useResourceResolver()\n\n const cache = useRef<Record<string, CacheItem>>({}).current\n const resolveProp = useCallback(\n (def: ControlDefinition, propName: string) => {\n const data = propData[propName]\n const control = controlInstances?.[propName]\n\n if (\n cache[propName] != null &&\n data === cache[propName].data &&\n control === cache[propName].control\n ) {\n return cache[propName].resolvedValue\n }\n\n const stylesheet = getStylesheet({\n breakpointsData: breakpoints,\n elementKey,\n propPathComponents: [propName],\n })\n\n const resolvedValue = def.resolveValue(data, resourceResolver, stylesheet, control)\n\n cache[propName] = { data, control, resolvedValue }\n return resolvedValue\n },\n [propData, cache, resourceResolver, controlInstances, breakpoints, elementKey, getStylesheet],\n )\n\n const resolvables = useMemo<Record<string, Resolvable<unknown>>>(\n () =>\n mapValues(propDefs, (def, propName) => {\n const defaultValue = (def.config as any)?.defaultValue\n return propErrorHandlingProxy(resolveProp(def, propName), defaultValue, error => {\n console.warn(\n `Error reading value for prop \"${propName}\" of element ${elementKey}, falling back to \\`${defaultValue}\\`.`,\n { control: def, error },\n )\n })\n }),\n [propDefs, resolveProp, elementKey],\n )\n\n const props = useResolvableRecord(resolvables)\n\n // no need to call `triggerResolve` on the server, all the resources should already be in\n // the host API client's cache (populated from the snapshot's cache)\n useEffect(() => {\n props.triggerResolve().catch(err => {\n console.log(`Error while resolving props for element ${elementKey}`, err)\n })\n }, [props, elementKey])\n\n const resolvedProps = useSyncExternalStore(props.subscribe, props.readStable, props.readStable)\n\n return resolvedProps\n}\n"],"mappings":"AAAA,SAAS,SAAS,WAAW,QAAQ,sBAAsB,mBAAmB;AAC9E;AAAA,EAGE;AAAA,OAGK;AAEP,SAAS,2BAA2B;AAEpC,SAAS,8BAA8B;AACvC,SAAS,sBAAsB;AAE/B,SAAS,2BAA2B;AAY7B,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAM4B;AAC1B,QAAM,cAAc,eAAe;AACnC,QAAM,mBAAmB,oBAAoB;AAE7C,QAAM,QAAQ,OAAkC,CAAC,CAAC,EAAE;AACpD,QAAM,cAAc;AAAA,IAClB,CAAC,KAAwB,aAAqB;AAC5C,YAAM,OAAO,SAAS,QAAQ;AAC9B,YAAM,UAAU,mBAAmB,QAAQ;AAE3C,UACE,MAAM,QAAQ,KAAK,QACnB,SAAS,MAAM,QAAQ,EAAE,QACzB,YAAY,MAAM,QAAQ,EAAE,SAC5B;AACA,eAAO,MAAM,QAAQ,EAAE;AAAA,MACzB;AAEA,YAAM,aAAa,cAAc;AAAA,QAC/B,iBAAiB;AAAA,QACjB;AAAA,QACA,oBAAoB,CAAC,QAAQ;AAAA,MAC/B,CAAC;AAED,YAAM,gBAAgB,IAAI,aAAa,MAAM,kBAAkB,YAAY,OAAO;AAElF,YAAM,QAAQ,IAAI,EAAE,MAAM,SAAS,cAAc;AACjD,aAAO;AAAA,IACT;AAAA,IACA,CAAC,UAAU,OAAO,kBAAkB,kBAAkB,aAAa,YAAY,aAAa;AAAA,EAC9F;AAEA,QAAM,cAAc;AAAA,IAClB,MACE,UAAU,UAAU,CAAC,KAAK,aAAa;AACrC,YAAM,eAAgB,IAAI,QAAgB;AAC1C,aAAO,uBAAuB,YAAY,KAAK,QAAQ,GAAG,cAAc,WAAS;AAC/E,gBAAQ;AAAA,UACN,iCAAiC,QAAQ,gBAAgB,UAAU,uBAAuB,YAAY;AAAA,UACtG,EAAE,SAAS,KAAK,MAAM;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,IACH,CAAC,UAAU,aAAa,UAAU;AAAA,EACpC;AAEA,QAAM,QAAQ,oBAAoB,WAAW;AAI7C,YAAU,MAAM;AACd,UAAM,eAAe,EAAE,MAAM,SAAO;AAClC,cAAQ,IAAI,2CAA2C,UAAU,IAAI,GAAG;AAAA,IAC1E,CAAC;AAAA,EACH,GAAG,CAAC,OAAO,UAAU,CAAC;AAEtB,QAAM,gBAAgB,qBAAqB,MAAM,WAAW,MAAM,YAAY,MAAM,UAAU;AAE9F,SAAO;AACT;","names":[]}
@@ -1,13 +1,13 @@
1
1
  import { useMemo, useEffect, useSyncExternalStore } from "react";
2
2
  import { useResourceResolver } from "./use-resource-resolver";
3
3
  import { propErrorHandlingProxy } from "../utils/prop-error-handling-proxy";
4
- function useResolvedValue(data, resolver, defaultValue) {
4
+ function useResolvedValue(data, resolver, defaultValue, extraDeps = []) {
5
5
  const resourceResolver = useResourceResolver();
6
6
  const resolvable = useMemo(() => {
7
7
  return propErrorHandlingProxy(resolver(data, resourceResolver), defaultValue, (error) => {
8
8
  console.warn(`Error resolving data, falling back to \`${defaultValue}\`.`, { error, data });
9
9
  });
10
- }, [data, resourceResolver, defaultValue]);
10
+ }, [data, resourceResolver, defaultValue, ...extraDeps]);
11
11
  useEffect(() => {
12
12
  resolvable.triggerResolve();
13
13
  }, [resolvable]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-value.ts"],"sourcesContent":["import { useMemo, useEffect, useSyncExternalStore } from 'react'\nimport { Resolvable, ResourceResolver } from '@makeswift/controls'\n\nimport { useResourceResolver } from './use-resource-resolver'\nimport { propErrorHandlingProxy } from '../utils/prop-error-handling-proxy'\n\nexport function useResolvedValue<D, T>(\n data: D,\n resolver: (data: D, resourceResolver: ResourceResolver) => Resolvable<T>,\n defaultValue?: T,\n): T | undefined {\n const resourceResolver = useResourceResolver()\n const resolvable = useMemo(() => {\n return propErrorHandlingProxy(resolver(data, resourceResolver), defaultValue, error => {\n console.warn(`Error resolving data, falling back to \\`${defaultValue}\\`.`, { error, data })\n })\n }, [data, resourceResolver, defaultValue])\n\n useEffect(() => {\n resolvable.triggerResolve()\n }, [resolvable])\n\n return useSyncExternalStore(resolvable.subscribe, resolvable.readStable, resolvable.readStable)\n}\n"],"mappings":"AAAA,SAAS,SAAS,WAAW,4BAA4B;AAGzD,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AAEhC,SAAS,iBACd,MACA,UACA,cACe;AACf,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,aAAa,QAAQ,MAAM;AAC/B,WAAO,uBAAuB,SAAS,MAAM,gBAAgB,GAAG,cAAc,WAAS;AACrF,cAAQ,KAAK,2CAA2C,YAAY,OAAO,EAAE,OAAO,KAAK,CAAC;AAAA,IAC5F,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,kBAAkB,YAAY,CAAC;AAEzC,YAAU,MAAM;AACd,eAAW,eAAe;AAAA,EAC5B,GAAG,CAAC,UAAU,CAAC;AAEf,SAAO,qBAAqB,WAAW,WAAW,WAAW,YAAY,WAAW,UAAU;AAChG;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-value.ts"],"sourcesContent":["import { useMemo, useEffect, useSyncExternalStore } from 'react'\nimport { Resolvable, ResourceResolver } from '@makeswift/controls'\n\nimport { useResourceResolver } from './use-resource-resolver'\nimport { propErrorHandlingProxy } from '../utils/prop-error-handling-proxy'\n\nexport function useResolvedValue<D, T>(\n data: D,\n resolver: (data: D, resourceResolver: ResourceResolver) => Resolvable<T>,\n defaultValue?: T,\n extraDeps: readonly unknown[] = [],\n): T | undefined {\n const resourceResolver = useResourceResolver()\n const resolvable = useMemo(() => {\n return propErrorHandlingProxy(resolver(data, resourceResolver), defaultValue, error => {\n console.warn(`Error resolving data, falling back to \\`${defaultValue}\\`.`, { error, data })\n })\n }, [data, resourceResolver, defaultValue, ...extraDeps])\n\n useEffect(() => {\n resolvable.triggerResolve()\n }, [resolvable])\n\n return useSyncExternalStore(resolvable.subscribe, resolvable.readStable, resolvable.readStable)\n}\n"],"mappings":"AAAA,SAAS,SAAS,WAAW,4BAA4B;AAGzD,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AAEhC,SAAS,iBACd,MACA,UACA,cACA,YAAgC,CAAC,GAClB;AACf,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,aAAa,QAAQ,MAAM;AAC/B,WAAO,uBAAuB,SAAS,MAAM,gBAAgB,GAAG,cAAc,WAAS;AACrF,cAAQ,KAAK,2CAA2C,YAAY,OAAO,EAAE,OAAO,KAAK,CAAC;AAAA,IAC5F,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,kBAAkB,cAAc,GAAG,SAAS,CAAC;AAEvD,YAAU,MAAM;AACd,eAAW,eAAe;AAAA,EAC5B,GAAG,CAAC,UAAU,CAAC;AAEf,SAAO,qBAAqB,WAAW,WAAW,WAAW,YAAY,WAAW,UAAU;AAChG;","names":[]}