@makeswift/runtime 0.8.9 → 0.8.11

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 (519) hide show
  1. package/dist/Box.cjs.js +6 -6
  2. package/dist/Box.es.js +6 -6
  3. package/dist/Button.cjs.js +5 -6
  4. package/dist/Button.cjs.js.map +1 -1
  5. package/dist/Button.es.js +5 -6
  6. package/dist/Button.es.js.map +1 -1
  7. package/dist/Carousel.cjs.js +7 -8
  8. package/dist/Carousel.cjs.js.map +1 -1
  9. package/dist/Carousel.es.js +7 -8
  10. package/dist/Carousel.es.js.map +1 -1
  11. package/dist/Countdown.cjs.js +5 -6
  12. package/dist/Countdown.cjs.js.map +1 -1
  13. package/dist/Countdown.es.js +5 -6
  14. package/dist/Countdown.es.js.map +1 -1
  15. package/dist/Divider.cjs.js +5 -6
  16. package/dist/Divider.cjs.js.map +1 -1
  17. package/dist/Divider.es.js +5 -6
  18. package/dist/Divider.es.js.map +1 -1
  19. package/dist/Embed.cjs.js +7 -7
  20. package/dist/Embed.cjs.js.map +1 -1
  21. package/dist/Embed.es.js +7 -7
  22. package/dist/Form.cjs.js +5 -6
  23. package/dist/Form.cjs.js.map +1 -1
  24. package/dist/Form.es.js +6 -7
  25. package/dist/Form.es.js.map +1 -1
  26. package/dist/Image.cjs.js +4 -5
  27. package/dist/Image.cjs.js.map +1 -1
  28. package/dist/Image.es.js +5 -6
  29. package/dist/Image.es.js.map +1 -1
  30. package/dist/LiveProvider.cjs.js +8 -9
  31. package/dist/LiveProvider.cjs.js.map +1 -1
  32. package/dist/LiveProvider.es.js +8 -9
  33. package/dist/LiveProvider.es.js.map +1 -1
  34. package/dist/Navigation.cjs.js +7 -7
  35. package/dist/Navigation.cjs.js.map +1 -1
  36. package/dist/Navigation.es.js +7 -7
  37. package/dist/PreviewProvider.cjs.js +34 -35
  38. package/dist/PreviewProvider.cjs.js.map +1 -1
  39. package/dist/PreviewProvider.es.js +6 -7
  40. package/dist/PreviewProvider.es.js.map +1 -1
  41. package/dist/ReadOnlyText.cjs.js +72 -66
  42. package/dist/ReadOnlyText.cjs.js.map +1 -1
  43. package/dist/ReadOnlyText.es.js +18 -12
  44. package/dist/ReadOnlyText.es.js.map +1 -1
  45. package/dist/ReadOnlyTextV2.cjs.js +362 -0
  46. package/dist/ReadOnlyTextV2.cjs.js.map +1 -0
  47. package/dist/ReadOnlyTextV2.es.js +358 -0
  48. package/dist/ReadOnlyTextV2.es.js.map +1 -0
  49. package/dist/Root.cjs.js +6 -6
  50. package/dist/Root.es.js +6 -6
  51. package/dist/SocialLinks.cjs.js +5 -6
  52. package/dist/SocialLinks.cjs.js.map +1 -1
  53. package/dist/SocialLinks.es.js +5 -6
  54. package/dist/SocialLinks.es.js.map +1 -1
  55. package/dist/Text.cjs.js +6 -7
  56. package/dist/Text.cjs.js.map +1 -1
  57. package/dist/Text.es.js +7 -8
  58. package/dist/Text.es.js.map +1 -1
  59. package/dist/Video.cjs.js +5 -6
  60. package/dist/Video.cjs.js.map +1 -1
  61. package/dist/Video.es.js +5 -6
  62. package/dist/Video.es.js.map +1 -1
  63. package/dist/actions.cjs.js.map +1 -1
  64. package/dist/actions.es.js.map +1 -1
  65. package/dist/builder.cjs.js +6 -2
  66. package/dist/builder.cjs.js.map +1 -1
  67. package/dist/builder.es.js +6 -2
  68. package/dist/builder.es.js.map +1 -1
  69. package/dist/components.cjs.js +9 -9
  70. package/dist/components.es.js +9 -9
  71. package/dist/constants.cjs.js +0 -408
  72. package/dist/constants.cjs.js.map +1 -1
  73. package/dist/constants.es.js +1 -372
  74. package/dist/constants.es.js.map +1 -1
  75. package/dist/control-serialization.cjs.js +82 -41
  76. package/dist/control-serialization.cjs.js.map +1 -1
  77. package/dist/control-serialization.es.js +42 -1
  78. package/dist/control-serialization.es.js.map +1 -1
  79. package/dist/controls.cjs.js +58 -53
  80. package/dist/controls.cjs.js.map +1 -1
  81. package/dist/controls.es.js +8 -3
  82. package/dist/controls.es.js.map +1 -1
  83. package/dist/index.cjs.js +315 -394
  84. package/dist/index.cjs.js.map +1 -1
  85. package/dist/index.cjs10.js +371 -0
  86. package/dist/index.cjs10.js.map +1 -0
  87. package/dist/index.cjs2.js +11 -10
  88. package/dist/index.cjs2.js.map +1 -1
  89. package/dist/index.cjs5.js +108 -98
  90. package/dist/index.cjs5.js.map +1 -1
  91. package/dist/index.cjs6.js +41 -42
  92. package/dist/index.cjs6.js.map +1 -1
  93. package/dist/index.cjs7.js +65 -362
  94. package/dist/index.cjs7.js.map +1 -1
  95. package/dist/index.cjs8.js +43 -0
  96. package/dist/index.cjs8.js.map +1 -0
  97. package/dist/index.cjs9.js +257 -0
  98. package/dist/index.cjs9.js.map +1 -0
  99. package/dist/index.es.js +77 -158
  100. package/dist/index.es.js.map +1 -1
  101. package/dist/index.es10.js +364 -0
  102. package/dist/index.es10.js.map +1 -0
  103. package/dist/index.es2.js +5 -4
  104. package/dist/index.es2.js.map +1 -1
  105. package/dist/index.es3.js +1 -1
  106. package/dist/index.es5.js +72 -63
  107. package/dist/index.es5.js.map +1 -1
  108. package/dist/index.es6.js +36 -40
  109. package/dist/index.es6.js.map +1 -1
  110. package/dist/index.es7.js +66 -358
  111. package/dist/index.es7.js.map +1 -1
  112. package/dist/index.es8.js +40 -0
  113. package/dist/index.es8.js.map +1 -0
  114. package/dist/index.es9.js +250 -0
  115. package/dist/index.es9.js.map +1 -0
  116. package/dist/leaf.cjs.js +4 -4
  117. package/dist/leaf.cjs.js.map +1 -1
  118. package/dist/leaf.es.js +2 -2
  119. package/dist/leaf.es.js.map +1 -1
  120. package/dist/main.cjs.js +4 -4
  121. package/dist/main.es.js +4 -4
  122. package/dist/next.cjs.js +5 -6
  123. package/dist/next.cjs.js.map +1 -1
  124. package/dist/next.es.js +6 -7
  125. package/dist/next.es.js.map +1 -1
  126. package/dist/prop-controllers.cjs.js +10 -7
  127. package/dist/prop-controllers.cjs.js.map +1 -1
  128. package/dist/prop-controllers.es.js +6 -3
  129. package/dist/prop-controllers.es.js.map +1 -1
  130. package/dist/{descriptors.cjs.js → react-page.cjs.js} +865 -93
  131. package/dist/react-page.cjs.js.map +1 -0
  132. package/dist/{descriptors.es.js → react-page.es.js} +811 -92
  133. package/dist/react-page.es.js.map +1 -0
  134. package/dist/react.cjs.js +5 -6
  135. package/dist/react.cjs.js.map +1 -1
  136. package/dist/react.es.js +5 -6
  137. package/dist/react.es.js.map +1 -1
  138. package/dist/select.cjs.js +8 -0
  139. package/dist/select.cjs.js.map +1 -0
  140. package/dist/select.es.js +6 -0
  141. package/dist/select.es.js.map +1 -0
  142. package/dist/slate.cjs.js +19 -6
  143. package/dist/slate.cjs.js.map +1 -1
  144. package/dist/slate.es.js +9 -4
  145. package/dist/slate.es.js.map +1 -1
  146. package/dist/state/breakpoints.cjs.js.map +1 -1
  147. package/dist/state/breakpoints.es.js.map +1 -1
  148. package/dist/text-input.cjs.js +0 -6
  149. package/dist/text-input.cjs.js.map +1 -1
  150. package/dist/text-input.es.js +1 -5
  151. package/dist/text-input.es.js.map +1 -1
  152. package/dist/types/src/api/graphql/generated/types.d.ts +36 -36
  153. package/dist/types/src/api/graphql/generated/types.d.ts.map +1 -1
  154. package/dist/types/src/api/graphql/types.d.ts +2 -2
  155. package/dist/types/src/api/graphql/types.d.ts.map +1 -1
  156. package/dist/types/src/api/react.d.ts +3 -3
  157. package/dist/types/src/api/react.d.ts.map +1 -1
  158. package/dist/types/src/builder/serialization/control-serialization.d.ts +66 -66
  159. package/dist/types/src/builder/serialization/control-serialization.d.ts.map +1 -1
  160. package/dist/types/src/builder/serialization/controls/rich-text-v2.d.ts +5 -0
  161. package/dist/types/src/builder/serialization/controls/rich-text-v2.d.ts.map +1 -0
  162. package/dist/types/src/builder/serialization/controls/types.d.ts +3 -3
  163. package/dist/types/src/builder/serialization/controls/types.d.ts.map +1 -1
  164. package/dist/types/src/builder/serialization/function-serialization.d.ts +4 -4
  165. package/dist/types/src/builder/serialization/function-serialization.d.ts.map +1 -1
  166. package/dist/types/src/components/builtin/Box/animations.d.ts +1 -1
  167. package/dist/types/src/components/builtin/Box/animations.d.ts.map +1 -1
  168. package/dist/types/src/components/builtin/Box/components/Placeholder/index.d.ts +1 -1
  169. package/dist/types/src/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -1
  170. package/dist/types/src/components/builtin/Box/constants.d.ts +1 -1
  171. package/dist/types/src/components/builtin/Box/constants.d.ts.map +1 -1
  172. package/dist/types/src/components/builtin/Button/Button.d.ts +3 -3
  173. package/dist/types/src/components/builtin/Button/Button.d.ts.map +1 -1
  174. package/dist/types/src/components/builtin/Button/contants.d.ts +1 -1
  175. package/dist/types/src/components/builtin/Button/contants.d.ts.map +1 -1
  176. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts +1 -1
  177. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  178. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts +1 -1
  179. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  180. package/dist/types/src/components/builtin/Divider/Divider.d.ts +2 -2
  181. package/dist/types/src/components/builtin/Divider/Divider.d.ts.map +1 -1
  182. package/dist/types/src/components/builtin/Embed/Embed.d.ts +1 -1
  183. package/dist/types/src/components/builtin/Embed/Embed.d.ts.map +1 -1
  184. package/dist/types/src/components/builtin/Form/Form.d.ts +2 -2
  185. package/dist/types/src/components/builtin/Form/Form.d.ts.map +1 -1
  186. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +2 -2
  187. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -1
  188. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +1 -1
  189. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -1
  190. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +1 -1
  191. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -1
  192. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts +1 -1
  193. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
  194. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts +2 -2
  195. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -1
  196. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +1 -1
  197. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -1
  198. package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts +1 -1
  199. package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -1
  200. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +1 -1
  201. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -1
  202. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +1 -1
  203. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -1
  204. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +1 -1
  205. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
  206. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +1 -1
  207. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -1
  208. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts +1 -1
  209. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -1
  210. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +1 -1
  211. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
  212. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts +1 -1
  213. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +1 -1
  214. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts +1 -1
  215. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
  216. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +1 -1
  217. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -1
  218. package/dist/types/src/components/builtin/Form/components/Field/index.d.ts +2 -2
  219. package/dist/types/src/components/builtin/Form/components/Field/index.d.ts.map +1 -1
  220. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts +1 -1
  221. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
  222. package/dist/types/src/components/builtin/Form/context/FormContext.d.ts +5 -5
  223. package/dist/types/src/components/builtin/Form/context/FormContext.d.ts.map +1 -1
  224. package/dist/types/src/components/builtin/Form/types.d.ts +13 -13
  225. package/dist/types/src/components/builtin/Form/types.d.ts.map +1 -1
  226. package/dist/types/src/components/builtin/Image/Image.d.ts +1 -1
  227. package/dist/types/src/components/builtin/Image/Image.d.ts.map +1 -1
  228. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts +1 -1
  229. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  230. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts +3 -3
  231. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -1
  232. package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +1 -1
  233. package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
  234. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +3 -3
  235. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -1
  236. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts +1 -1
  237. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  238. package/dist/types/src/components/builtin/Root/Root.d.ts +1 -1
  239. package/dist/types/src/components/builtin/Root/Root.d.ts.map +1 -1
  240. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts +1 -1
  241. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  242. package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +1 -1
  243. package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -1
  244. package/dist/types/src/components/builtin/Text/EditableText/editable-text.d.ts +1 -1
  245. package/dist/types/src/components/builtin/Text/EditableText/editable-text.d.ts.map +1 -1
  246. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts +4 -3
  247. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +1 -1
  248. package/dist/types/src/components/builtin/Text/Text.d.ts +1 -1
  249. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -1
  250. package/dist/types/src/components/builtin/Text/components/Element/block.d.ts +2 -2
  251. package/dist/types/src/components/builtin/Text/components/Element/block.d.ts.map +1 -1
  252. package/dist/types/src/components/builtin/Text/components/Element/inline.d.ts +1 -1
  253. package/dist/types/src/components/builtin/Text/components/Element/inline.d.ts.map +1 -1
  254. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts +5 -5
  255. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts.map +1 -1
  256. package/dist/types/src/components/builtin/Video/Video.d.ts +1 -1
  257. package/dist/types/src/components/builtin/Video/Video.d.ts.map +1 -1
  258. package/dist/types/src/components/hooks/useBackgrounds.d.ts +8 -8
  259. package/dist/types/src/components/hooks/useBackgrounds.d.ts.map +1 -1
  260. package/dist/types/src/components/hooks/useBorder.d.ts +3 -3
  261. package/dist/types/src/components/hooks/useBorder.d.ts.map +1 -1
  262. package/dist/types/src/components/hooks/useBoxShadow.d.ts +3 -3
  263. package/dist/types/src/components/hooks/useBoxShadow.d.ts.map +1 -1
  264. package/dist/types/src/components/page/BodySnippet.d.ts +1 -1
  265. package/dist/types/src/components/page/BodySnippet.d.ts.map +1 -1
  266. package/dist/types/src/components/page/Page.d.ts +1 -1
  267. package/dist/types/src/components/page/Page.d.ts.map +1 -1
  268. package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +1 -1
  269. package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
  270. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +1 -1
  271. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  272. package/dist/types/src/components/shared/BackgroundsContainer/components/Parallax/index.d.ts +1 -1
  273. package/dist/types/src/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -1
  274. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts +1 -1
  275. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  276. package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts +1 -1
  277. package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -1
  278. package/dist/types/src/components/shared/GutterContainer/index.d.ts +2 -2
  279. package/dist/types/src/components/shared/GutterContainer/index.d.ts.map +1 -1
  280. package/dist/types/src/components/shared/Link/index.d.ts +1 -1
  281. package/dist/types/src/components/shared/Link/index.d.ts.map +1 -1
  282. package/dist/types/src/components/shared/grid-item.d.ts +2 -2
  283. package/dist/types/src/components/shared/grid-item.d.ts.map +1 -1
  284. package/dist/types/src/components/utils/drop-first.d.ts +1 -1
  285. package/dist/types/src/components/utils/drop-first.d.ts.map +1 -1
  286. package/dist/types/src/components/utils/types.d.ts +2 -2
  287. package/dist/types/src/components/utils/types.d.ts.map +1 -1
  288. package/dist/types/src/controls/checkbox.d.ts +3 -3
  289. package/dist/types/src/controls/checkbox.d.ts.map +1 -1
  290. package/dist/types/src/controls/color.d.ts +3 -3
  291. package/dist/types/src/controls/color.d.ts.map +1 -1
  292. package/dist/types/src/controls/combobox.d.ts +5 -5
  293. package/dist/types/src/controls/combobox.d.ts.map +1 -1
  294. package/dist/types/src/controls/control.d.ts +6 -4
  295. package/dist/types/src/controls/control.d.ts.map +1 -1
  296. package/dist/types/src/controls/image.d.ts +4 -4
  297. package/dist/types/src/controls/image.d.ts.map +1 -1
  298. package/dist/types/src/controls/link.d.ts +8 -8
  299. package/dist/types/src/controls/link.d.ts.map +1 -1
  300. package/dist/types/src/controls/list.d.ts +8 -7
  301. package/dist/types/src/controls/list.d.ts.map +1 -1
  302. package/dist/types/src/controls/number.d.ts +3 -3
  303. package/dist/types/src/controls/number.d.ts.map +1 -1
  304. package/dist/types/src/controls/rich-text/dto-types.d.ts +4 -4
  305. package/dist/types/src/controls/rich-text/dto-types.d.ts.map +1 -1
  306. package/dist/types/src/controls/rich-text/index.d.ts +0 -1
  307. package/dist/types/src/controls/rich-text/index.d.ts.map +1 -1
  308. package/dist/types/src/controls/rich-text/rich-text.d.ts +12 -12
  309. package/dist/types/src/controls/rich-text/rich-text.d.ts.map +1 -1
  310. package/dist/types/src/controls/rich-text/translation.d.ts +1 -1
  311. package/dist/types/src/controls/rich-text/translation.d.ts.map +1 -1
  312. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts +55 -13
  313. package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  314. package/dist/types/src/controls/select.d.ts +5 -5
  315. package/dist/types/src/controls/select.d.ts.map +1 -1
  316. package/dist/types/src/controls/shape.d.ts +7 -6
  317. package/dist/types/src/controls/shape.d.ts.map +1 -1
  318. package/dist/types/src/controls/slot.d.ts +18 -9
  319. package/dist/types/src/controls/slot.d.ts.map +1 -1
  320. package/dist/types/src/controls/style.d.ts +20 -19
  321. package/dist/types/src/controls/style.d.ts.map +1 -1
  322. package/dist/types/src/controls/text-area.d.ts +3 -3
  323. package/dist/types/src/controls/text-area.d.ts.map +1 -1
  324. package/dist/types/src/controls/text-input.d.ts +3 -3
  325. package/dist/types/src/controls/text-input.d.ts.map +1 -1
  326. package/dist/types/src/controls/types.d.ts +5 -5
  327. package/dist/types/src/controls/types.d.ts.map +1 -1
  328. package/dist/types/src/css/border-radius.d.ts +2 -2
  329. package/dist/types/src/css/border-radius.d.ts.map +1 -1
  330. package/dist/types/src/css/border.d.ts +2 -2
  331. package/dist/types/src/css/border.d.ts.map +1 -1
  332. package/dist/types/src/css/length-percentage.d.ts +2 -2
  333. package/dist/types/src/css/length-percentage.d.ts.map +1 -1
  334. package/dist/types/src/css/length.d.ts +1 -1
  335. package/dist/types/src/css/length.d.ts.map +1 -1
  336. package/dist/types/src/css/margin.d.ts +2 -2
  337. package/dist/types/src/css/margin.d.ts.map +1 -1
  338. package/dist/types/src/css/padding.d.ts +2 -2
  339. package/dist/types/src/css/padding.d.ts.map +1 -1
  340. package/dist/types/src/next/api-handler/handlers/element-tree.d.ts +3 -3
  341. package/dist/types/src/next/api-handler/handlers/element-tree.d.ts.map +1 -1
  342. package/dist/types/src/next/api-handler/handlers/fonts.d.ts +5 -5
  343. package/dist/types/src/next/api-handler/handlers/fonts.d.ts.map +1 -1
  344. package/dist/types/src/next/api-handler/handlers/manifest.d.ts +3 -3
  345. package/dist/types/src/next/api-handler/handlers/manifest.d.ts.map +1 -1
  346. package/dist/types/src/next/api-handler/handlers/proxy-preview-mode.d.ts +2 -2
  347. package/dist/types/src/next/api-handler/handlers/proxy-preview-mode.d.ts.map +1 -1
  348. package/dist/types/src/next/api-handler/handlers/revalidate.d.ts +3 -3
  349. package/dist/types/src/next/api-handler/handlers/revalidate.d.ts.map +1 -1
  350. package/dist/types/src/next/api-handler/index.d.ts +3 -3
  351. package/dist/types/src/next/api-handler/index.d.ts.map +1 -1
  352. package/dist/types/src/next/client.d.ts +8 -8
  353. package/dist/types/src/next/client.d.ts.map +1 -1
  354. package/dist/types/src/next/dynamic.d.ts +4 -4
  355. package/dist/types/src/next/dynamic.d.ts.map +1 -1
  356. package/dist/types/src/next/index.d.ts +2 -2
  357. package/dist/types/src/next/index.d.ts.map +1 -1
  358. package/dist/types/src/next/preview-mode.d.ts +2 -2
  359. package/dist/types/src/next/preview-mode.d.ts.map +1 -1
  360. package/dist/types/src/prop-controllers/base.d.ts +7 -0
  361. package/dist/types/src/prop-controllers/base.d.ts.map +1 -0
  362. package/dist/types/src/prop-controllers/descriptors.d.ts +179 -179
  363. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  364. package/dist/types/src/prop-controllers/instances.d.ts +18 -22
  365. package/dist/types/src/prop-controllers/instances.d.ts.map +1 -1
  366. package/dist/types/src/runtimes/react/components/LiveProvider.d.ts +1 -1
  367. package/dist/types/src/runtimes/react/components/LiveProvider.d.ts.map +1 -1
  368. package/dist/types/src/runtimes/react/components/PreviewProvider.d.ts +1 -1
  369. package/dist/types/src/runtimes/react/components/PreviewProvider.d.ts.map +1 -1
  370. package/dist/types/src/runtimes/react/components/render-hook.d.ts +1 -1
  371. package/dist/types/src/runtimes/react/components/render-hook.d.ts.map +1 -1
  372. package/dist/types/src/runtimes/react/controls/checkbox.d.ts +1 -1
  373. package/dist/types/src/runtimes/react/controls/checkbox.d.ts.map +1 -1
  374. package/dist/types/src/runtimes/react/controls/color.d.ts +1 -1
  375. package/dist/types/src/runtimes/react/controls/color.d.ts.map +1 -1
  376. package/dist/types/src/runtimes/react/controls/combobox.d.ts +1 -1
  377. package/dist/types/src/runtimes/react/controls/combobox.d.ts.map +1 -1
  378. package/dist/types/src/runtimes/react/controls/control.d.ts +2 -2
  379. package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -1
  380. package/dist/types/src/runtimes/react/controls/image.d.ts +3 -3
  381. package/dist/types/src/runtimes/react/controls/image.d.ts.map +1 -1
  382. package/dist/types/src/runtimes/react/controls/link.d.ts +2 -2
  383. package/dist/types/src/runtimes/react/controls/link.d.ts.map +1 -1
  384. package/dist/types/src/runtimes/react/controls/list.d.ts +3 -3
  385. package/dist/types/src/runtimes/react/controls/list.d.ts.map +1 -1
  386. package/dist/types/src/runtimes/react/controls/number.d.ts +1 -1
  387. package/dist/types/src/runtimes/react/controls/number.d.ts.map +1 -1
  388. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts +13 -0
  389. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -0
  390. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts +4 -0
  391. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts.map +1 -0
  392. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.d.ts +9 -0
  393. package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.d.ts.map +1 -0
  394. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +24 -0
  395. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -0
  396. package/dist/types/src/runtimes/react/controls/rich-text-v2/index.d.ts +2 -0
  397. package/dist/types/src/runtimes/react/controls/rich-text-v2/index.d.ts.map +1 -0
  398. package/dist/types/src/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts +8 -0
  399. package/dist/types/src/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -0
  400. package/dist/types/src/runtimes/react/controls/rich-text.d.ts +2 -2
  401. package/dist/types/src/runtimes/react/controls/rich-text.d.ts.map +1 -1
  402. package/dist/types/src/runtimes/react/controls/select.d.ts +1 -1
  403. package/dist/types/src/runtimes/react/controls/select.d.ts.map +1 -1
  404. package/dist/types/src/runtimes/react/controls/shape.d.ts +2 -2
  405. package/dist/types/src/runtimes/react/controls/shape.d.ts.map +1 -1
  406. package/dist/types/src/runtimes/react/controls/slot.d.ts +4 -4
  407. package/dist/types/src/runtimes/react/controls/slot.d.ts.map +1 -1
  408. package/dist/types/src/runtimes/react/controls/style.d.ts +1 -1
  409. package/dist/types/src/runtimes/react/controls/style.d.ts.map +1 -1
  410. package/dist/types/src/runtimes/react/controls/text-area.d.ts +1 -1
  411. package/dist/types/src/runtimes/react/controls/text-area.d.ts.map +1 -1
  412. package/dist/types/src/runtimes/react/controls/text-input.d.ts +1 -1
  413. package/dist/types/src/runtimes/react/controls/text-input.d.ts.map +1 -1
  414. package/dist/types/src/runtimes/react/controls.d.ts +8 -8
  415. package/dist/types/src/runtimes/react/controls.d.ts.map +1 -1
  416. package/dist/types/src/runtimes/react/element-imperative-handle.d.ts +1 -1
  417. package/dist/types/src/runtimes/react/element-imperative-handle.d.ts.map +1 -1
  418. package/dist/types/src/runtimes/react/find-dom-node.d.ts +1 -1
  419. package/dist/types/src/runtimes/react/find-dom-node.d.ts.map +1 -1
  420. package/dist/types/src/runtimes/react/index.d.ts +7 -7
  421. package/dist/types/src/runtimes/react/index.d.ts.map +1 -1
  422. package/dist/types/src/slate/BlockPlugin/index.d.ts +33 -2
  423. package/dist/types/src/slate/BlockPlugin/index.d.ts.map +1 -1
  424. package/dist/types/src/slate/BlockPlugin/setBlockKeyForDevice.d.ts +1 -1
  425. package/dist/types/src/slate/BlockPlugin/setBlockKeyForDevice.d.ts.map +1 -1
  426. package/dist/types/src/slate/BlockPlugin/types.d.ts +3 -3
  427. package/dist/types/src/slate/BlockPlugin/types.d.ts.map +1 -1
  428. package/dist/types/src/slate/BlockPlugin/unwrapInline.d.ts +1 -1
  429. package/dist/types/src/slate/BlockPlugin/unwrapInline.d.ts.map +1 -1
  430. package/dist/types/src/slate/BlockPlugin/wrapInline.d.ts +1 -1
  431. package/dist/types/src/slate/BlockPlugin/wrapInline.d.ts.map +1 -1
  432. package/dist/types/src/slate/BuilderPlugin/index.d.ts +7 -0
  433. package/dist/types/src/slate/BuilderPlugin/index.d.ts.map +1 -0
  434. package/dist/types/src/slate/InlineModePlugin/index.d.ts +9 -0
  435. package/dist/types/src/slate/InlineModePlugin/index.d.ts.map +1 -0
  436. package/dist/types/src/slate/ListPlugin/index.d.ts +2 -2
  437. package/dist/types/src/slate/ListPlugin/index.d.ts.map +1 -1
  438. package/dist/types/src/slate/ListPlugin/toggleList.d.ts +2 -2
  439. package/dist/types/src/slate/ListPlugin/toggleList.d.ts.map +1 -1
  440. package/dist/types/src/slate/ListPlugin/unwrapList.d.ts +1 -1
  441. package/dist/types/src/slate/ListPlugin/unwrapList.d.ts.map +1 -1
  442. package/dist/types/src/slate/ListPlugin/wrapList.d.ts +2 -2
  443. package/dist/types/src/slate/ListPlugin/wrapList.d.ts.map +1 -1
  444. package/dist/types/src/slate/TypographyPlugin/clearActiveTypographyStyle.d.ts +1 -1
  445. package/dist/types/src/slate/TypographyPlugin/clearActiveTypographyStyle.d.ts.map +1 -1
  446. package/dist/types/src/slate/TypographyPlugin/clearDeviceActiveTypography.d.ts +1 -1
  447. package/dist/types/src/slate/TypographyPlugin/clearDeviceActiveTypography.d.ts.map +1 -1
  448. package/dist/types/src/slate/TypographyPlugin/detachActiveTypography.d.ts +2 -2
  449. package/dist/types/src/slate/TypographyPlugin/detachActiveTypography.d.ts.map +1 -1
  450. package/dist/types/src/slate/TypographyPlugin/index.d.ts +2 -2
  451. package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
  452. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyId.d.ts +1 -1
  453. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyId.d.ts.map +1 -1
  454. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyStyle.d.ts +1 -1
  455. package/dist/types/src/slate/TypographyPlugin/setActiveTypographyStyle.d.ts.map +1 -1
  456. package/dist/types/src/slate/index.d.ts +3 -0
  457. package/dist/types/src/slate/index.d.ts.map +1 -1
  458. package/dist/types/src/slate/selectors.d.ts +1 -1
  459. package/dist/types/src/slate/selectors.d.ts.map +1 -1
  460. package/dist/types/src/{controls/rich-text → slate}/types.d.ts +56 -46
  461. package/dist/types/src/slate/types.d.ts.map +1 -0
  462. package/dist/types/src/slate/utils/editor.d.ts +1 -1
  463. package/dist/types/src/slate/utils/editor.d.ts.map +1 -1
  464. package/dist/types/src/slate/utils/element.d.ts +1 -1
  465. package/dist/types/src/slate/utils/element.d.ts.map +1 -1
  466. package/dist/types/src/state/actions.d.ts +43 -42
  467. package/dist/types/src/state/actions.d.ts.map +1 -1
  468. package/dist/types/src/state/makeswift-api-client.d.ts +5 -5
  469. package/dist/types/src/state/makeswift-api-client.d.ts.map +1 -1
  470. package/dist/types/src/state/modules/api-resources.d.ts +2 -2
  471. package/dist/types/src/state/modules/api-resources.d.ts.map +1 -1
  472. package/dist/types/src/state/modules/box-models.d.ts +2 -2
  473. package/dist/types/src/state/modules/box-models.d.ts.map +1 -1
  474. package/dist/types/src/state/modules/breakpoints.d.ts +9 -9
  475. package/dist/types/src/state/modules/breakpoints.d.ts.map +1 -1
  476. package/dist/types/src/state/modules/builder-edit-mode.d.ts +2 -2
  477. package/dist/types/src/state/modules/builder-edit-mode.d.ts.map +1 -1
  478. package/dist/types/src/state/modules/components-meta.d.ts +3 -3
  479. package/dist/types/src/state/modules/components-meta.d.ts.map +1 -1
  480. package/dist/types/src/state/modules/element-imperative-handles.d.ts +1 -1
  481. package/dist/types/src/state/modules/element-imperative-handles.d.ts.map +1 -1
  482. package/dist/types/src/state/modules/is-in-builder.d.ts +1 -1
  483. package/dist/types/src/state/modules/is-in-builder.d.ts.map +1 -1
  484. package/dist/types/src/state/modules/is-preview.d.ts +1 -1
  485. package/dist/types/src/state/modules/is-preview.d.ts.map +1 -1
  486. package/dist/types/src/state/modules/pointer.d.ts +2 -2
  487. package/dist/types/src/state/modules/pointer.d.ts.map +1 -1
  488. package/dist/types/src/state/modules/prop-controller-handles.d.ts +3 -2
  489. package/dist/types/src/state/modules/prop-controller-handles.d.ts.map +1 -1
  490. package/dist/types/src/state/modules/prop-controllers.d.ts +1 -1
  491. package/dist/types/src/state/modules/prop-controllers.d.ts.map +1 -1
  492. package/dist/types/src/state/modules/react-components.d.ts +2 -2
  493. package/dist/types/src/state/modules/react-components.d.ts.map +1 -1
  494. package/dist/types/src/state/modules/read-only-documents.d.ts +7 -7
  495. package/dist/types/src/state/modules/read-only-documents.d.ts.map +1 -1
  496. package/dist/types/src/state/modules/read-write-documents.d.ts +1 -1
  497. package/dist/types/src/state/modules/read-write-documents.d.ts.map +1 -1
  498. package/dist/types/src/state/react-builder-preview.d.ts +5 -6
  499. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  500. package/dist/types/src/state/react-page.d.ts +11 -7
  501. package/dist/types/src/state/react-page.d.ts.map +1 -1
  502. package/dist/types/src/state/react-page.test.d.ts +3 -0
  503. package/dist/types/src/state/react-page.test.d.ts.map +1 -0
  504. package/dist/types/src/utils/isErrorWithMessage.d.ts +1 -1
  505. package/dist/types/src/utils/isErrorWithMessage.d.ts.map +1 -1
  506. package/dist/useIsomorphicLayoutEffect.cjs.js +6 -0
  507. package/dist/useIsomorphicLayoutEffect.cjs.js.map +1 -0
  508. package/dist/useIsomorphicLayoutEffect.es.js +5 -0
  509. package/dist/useIsomorphicLayoutEffect.es.js.map +1 -0
  510. package/package.json +4 -3
  511. package/dist/descriptors.cjs.js.map +0 -1
  512. package/dist/descriptors.es.js.map +0 -1
  513. package/dist/introspection.cjs.js +0 -331
  514. package/dist/introspection.cjs.js.map +0 -1
  515. package/dist/introspection.es.js +0 -317
  516. package/dist/introspection.es.js.map +0 -1
  517. package/dist/types/src/controls/rich-text/types.d.ts.map +0 -1
  518. package/dist/types/src/runtimes/react/controls/rich-text-v2.d.ts +0 -15
  519. package/dist/types/src/runtimes/react/controls/rich-text-v2.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs5.js","sources":["../src/slate/ListPlugin/constants.ts","../src/slate/utils/element.ts","../src/slate/utils/editor.ts","../src/slate/ListPlugin/utils/filterForSubtreeRoots.ts","../src/slate/ListPlugin/utils/location.ts","../src/slate/ListPlugin/utils/getSelectedListItems.ts","../src/slate/ListPlugin/indent.ts","../src/slate/ListPlugin/dedent.ts","../src/slate/ListPlugin/unwrapList.ts","../src/slate/ListPlugin/wrapList.ts","../src/slate/ListPlugin/toggleList.ts","../src/slate/ListPlugin/index.ts","../src/slate/TypographyPlugin/clearActiveTypographyStyle.ts","../src/slate/TypographyPlugin/clearDeviceActiveTypography.ts","../src/slate/TypographyPlugin/detachActiveTypography.ts","../src/slate/TypographyPlugin/setActiveTypographyId.ts","../src/slate/TypographyPlugin/setActiveTypographyStyle.ts","../src/slate/TypographyPlugin/index.ts","../src/slate/utils/unhangRange.ts","../src/slate/selectors.ts","../src/slate/BlockPlugin/setBlockKeyForDevice.ts","../src/slate/BlockPlugin/clearBlockKeyForDevice.ts","../src/slate/BlockPlugin/wrapInline.ts","../src/slate/BlockPlugin/unwrapInline.ts","../src/slate/BlockPlugin/index.ts"],"sourcesContent":["export const LIST_ITEM_CHILD_POSITION = 0\nexport const LIST_ITEM_LIST_POSITION = 1\n","import { Node, Element } from 'slate'\nimport {\n RootBlock,\n BlockType,\n Block,\n Inline,\n InlineType,\n ParagraphElement,\n OrderedListElement,\n UnorderedListElement,\n ListItemElement,\n ListItemChildElement,\n} from '../../controls'\n\nexport const ElementUtils = {\n isRootBlock(node: Node): node is RootBlock {\n return (\n Element.isElement(node) &&\n (Element.isElementType(node, BlockType.Paragraph) ||\n Element.isElementType(node, BlockType.Heading1) ||\n Element.isElementType(node, BlockType.Heading2) ||\n Element.isElementType(node, BlockType.Heading3) ||\n Element.isElementType(node, BlockType.Heading3) ||\n Element.isElementType(node, BlockType.Heading4) ||\n Element.isElementType(node, BlockType.Heading5) ||\n Element.isElementType(node, BlockType.Heading6) ||\n Element.isElementType(node, BlockType.BlockQuote) ||\n Element.isElementType(node, BlockType.UnorderedList) ||\n Element.isElementType(node, BlockType.OrderedList))\n )\n },\n isBlock(node: Node): node is Block {\n return (\n Element.isElement(node) &&\n (this.isRootBlock(node) ||\n Element.isElementType(node, BlockType.ListItem) ||\n Element.isElementType(node, BlockType.ListItemChild))\n )\n },\n isInline(node: Node): node is Inline {\n return (\n Element.isElementType(node, InlineType.Code) ||\n Element.isElementType(node, InlineType.Link) ||\n Element.isElementType(node, InlineType.SubScript) ||\n Element.isElementType(node, InlineType.SuperScript)\n )\n },\n isConvertibleToListTextNode(node: Node) {\n return !this.isList(node) && !this.isListItem(node) && !this.isListItemChild(node)\n },\n isParagraph(node: Node): node is ParagraphElement {\n return Element.isElementType(node, BlockType.Paragraph)\n },\n isList(node: Node): node is OrderedListElement | UnorderedListElement {\n return (\n Element.isElementType(node, BlockType.OrderedList) ||\n Element.isElementType(node, BlockType.UnorderedList)\n )\n },\n isListItem(node: Node): node is ListItemElement {\n return Element.isElementType(node, BlockType.ListItem)\n },\n isListItemChild(node: Node): node is ListItemChildElement {\n return Element.isElementType(node, BlockType.ListItemChild)\n },\n createText() {\n return { text: '' }\n },\n createParagraph() {\n return {\n children: [this.createText()],\n type: BlockType.Paragraph,\n }\n },\n createList(type: BlockType = BlockType.UnorderedList): Block {\n return { children: [this.createText()], type }\n },\n createListItem(): Block {\n return {\n children: [this.createListItemChild()],\n type: BlockType.ListItem,\n }\n },\n createListItemChild(): Block {\n return {\n children: [this.createText()],\n type: BlockType.ListItemChild,\n }\n },\n}\n","import { Path, Editor, NodeEntry } from 'slate'\n\nimport { ElementUtils } from './element'\nimport { ListElement, ListItemElement } from '../../controls'\n\nexport const EditorUtils = {\n getFirstAncestorList(editor: Editor, path: Path): NodeEntry<ListElement> | null {\n try {\n const parentList = Editor.above(editor, {\n at: path,\n match: (node): node is ListElement => ElementUtils.isList(node),\n })\n return parentList ?? null\n } catch (e) {\n return null\n }\n },\n getFirstAncestorListItem(editor: Editor, path: Path): NodeEntry<ListItemElement> | null {\n try {\n const parentListItem = Editor.above(editor, {\n at: path,\n match: (node): node is ListItemElement => ElementUtils.isListItem(node),\n })\n\n return parentListItem ?? null\n } catch (e) {\n return null\n }\n },\n}\n","import type { Node, NodeEntry } from 'slate'\nimport { Path } from 'slate'\n\nexport function filterForSubtreeRoots(entries: NodeEntry<Node>[]): NodeEntry<Node>[] {\n return entries.filter(\n ([, nodePath]) =>\n !Path.ancestors(nodePath).some(ancestor => {\n return entries.some(([, path]) => Path.equals(path, ancestor))\n }),\n )\n}\n","import { Range, Point, Path, Location } from 'slate'\n\nexport const LocationUtils = {\n getStartPath(location: Location): Path {\n if (Range.isRange(location)) return Range.start(location).path\n if (Point.isPoint(location)) return location.path\n return location\n },\n}\n","import type { Element, NodeEntry } from 'slate'\nimport { Editor, Path } from 'slate'\nimport { EditorUtils } from '../../utils/editor'\nimport { ElementUtils } from '../../utils/element'\nimport { LocationUtils } from './location'\n\nexport function getSelectedListItems(editor: Editor): NodeEntry<Element>[] {\n if (!editor.selection) return []\n\n const start = LocationUtils.getStartPath(editor.selection)\n const listItems = Editor.nodes(editor, {\n at: editor.selection,\n match: node => ElementUtils.isListItem(node),\n })\n const firstAncestorPath = EditorUtils.getFirstAncestorListItem(editor, start)?.[1] ?? []\n\n return Array.from(listItems).filter((node): node is NodeEntry<Element> =>\n Path.isDescendant(start, node[1])\n ? Path.equals(node[1], firstAncestorPath)\n : !Path.isAfter(start, node[1]),\n )\n}\n","import { Editor, Node, Path, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { LIST_ITEM_LIST_POSITION } from './constants'\nimport { filterForSubtreeRoots } from './utils/filterForSubtreeRoots'\nimport { getSelectedListItems } from './utils/getSelectedListItems'\n\nexport function indentPath(editor: Editor, path: Path) {\n const parent = Node.parent(editor, path)\n if (!path || !Path.hasPrevious(path) || !ElementUtils.isList(parent)) return\n\n const previosPath = Path.previous(path)\n\n const previousChildListPath = [...previosPath, LIST_ITEM_LIST_POSITION]\n const previousHasChildList = Node.has(editor, previousChildListPath)\n\n Editor.withoutNormalizing(editor, () => {\n if (!previousHasChildList) {\n Transforms.insertNodes(editor, ElementUtils.createList(parent.type), {\n at: previousChildListPath,\n })\n }\n\n const previousChildList = Node.get(editor, previousChildListPath)\n\n if (ElementUtils.isList(previousChildList)) {\n const index = previousHasChildList ? previousChildList.children.length : 0\n Transforms.moveNodes(editor, {\n at: path,\n to: [...previousChildListPath, index],\n })\n }\n })\n}\n\nexport function indent(editor: Editor) {\n if (!editor.selection) return\n\n const listItems = getSelectedListItems(editor)\n const subRoots = filterForSubtreeRoots(listItems)\n const refs = subRoots.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n if (ref.current) {\n indentPath(editor, ref.current)\n }\n ref.unref()\n })\n}\n","import { Editor, Path, Transforms } from 'slate'\nimport { indentPath } from './indent'\nimport { getSelectedListItems } from './utils/getSelectedListItems'\nimport { filterForSubtreeRoots } from './utils/filterForSubtreeRoots'\nimport { EditorUtils } from '../utils/editor'\n\nfunction dedentPath(editor: Editor, listItemPath: Path) {\n const parentList = EditorUtils.getFirstAncestorList(editor, listItemPath)\n const listItemContainingParentList = EditorUtils.getFirstAncestorListItem(editor, listItemPath)\n if (!parentList || !listItemContainingParentList) return\n\n const [parentListNode, parentListPath] = parentList\n const [_, listItemContainingParentListPath] = listItemContainingParentList\n\n const listItemPosition = listItemPath[listItemPath.length - 1]\n const previousSiblings = parentListNode.children.slice(0, listItemPosition)\n const nextSiblings = parentListNode.children.slice(listItemPosition + 1)\n\n Editor.withoutNormalizing(editor, () => {\n // put next siblings into list item\n nextSiblings.forEach(() => {\n const nextSiblingPath = [...parentListPath, listItemPosition + 1]\n indentPath(editor, nextSiblingPath)\n })\n // move list item to parent list\n Transforms.moveNodes(editor, {\n at: listItemPath,\n to: Path.next(listItemContainingParentListPath),\n })\n // delete old parent list if there are no other list items\n if (previousSiblings.length === 0) {\n Transforms.removeNodes(editor, { at: parentListPath })\n }\n })\n}\n\nexport function dedent(editor: Editor) {\n if (!editor.selection) return\n\n const listItems = getSelectedListItems(editor)\n const subRoots = filterForSubtreeRoots(listItems)\n const refs = subRoots.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n if (ref.current) {\n dedentPath(editor, ref.current)\n }\n ref.unref()\n })\n}\n","import { Editor, Element, Transforms, Path, Node, Location, Span } from 'slate'\nimport { EditorUtils } from '../utils/editor'\nimport { LIST_ITEM_CHILD_POSITION, LIST_ITEM_LIST_POSITION } from './constants'\nimport { filterForSubtreeRoots } from './utils/filterForSubtreeRoots'\nimport { ElementUtils } from '../utils/element'\nimport { BlockType } from '../../controls'\n\nexport function unwrapPath(editor: Editor, listItemPath: Path) {\n const parentList = EditorUtils.getFirstAncestorList(editor, listItemPath)\n const listItemContainingParentList = EditorUtils.getFirstAncestorListItem(editor, listItemPath)\n //if this is a nested item we don't want to unwrap it\n if (!parentList || listItemContainingParentList) return\n\n Editor.withoutNormalizing(editor, () => {\n const listItemTextPath = [...listItemPath, LIST_ITEM_CHILD_POSITION]\n const listItemNestedListPath = [...listItemPath, LIST_ITEM_LIST_POSITION]\n\n if (Node.has(editor, listItemNestedListPath)) {\n Transforms.setNodes(editor, { type: parentList[0].type }, { at: listItemNestedListPath })\n Transforms.liftNodes(editor, { at: listItemNestedListPath })\n Transforms.liftNodes(editor, { at: Path.next(listItemPath) })\n }\n\n if (Node.has(editor, listItemTextPath)) {\n Transforms.setNodes(\n editor,\n { type: BlockType.Paragraph },\n {\n at: listItemTextPath,\n },\n )\n Transforms.liftNodes(editor, { at: listItemTextPath })\n Transforms.liftNodes(editor, { at: listItemPath })\n }\n })\n}\n\ntype UnwrapListOptions = {\n at?: Location | Span\n}\n\nexport function unwrapList(editor: Editor, options?: UnwrapListOptions) {\n const at = options?.at ?? editor.selection\n if (!at) return\n\n const listItems = Array.from(\n Editor.nodes(editor, {\n at,\n match: node => {\n return Element.isElement(node) && ElementUtils.isListItem(node)\n },\n }),\n )\n const subRoots = filterForSubtreeRoots(listItems)\n const refs = subRoots.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n if (ref.current) {\n unwrapPath(editor, ref.current)\n }\n ref.unref()\n })\n}\n","import { Editor, Element, Location, Span, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { BlockType } from '../../controls'\n\ntype WrapListOptions = {\n type: typeof BlockType.UnorderedList | typeof BlockType.OrderedList\n at?: Location | Span\n}\n\nexport function wrapList(\n editor: Editor,\n options: WrapListOptions = { type: BlockType.UnorderedList },\n) {\n const at = options.at ?? editor.selection\n if (!at) return\n\n const nonListEntries = Array.from(\n Editor.nodes(editor, {\n at,\n match: node => {\n return Element.isElement(node) && ElementUtils.isConvertibleToListTextNode(node)\n },\n }),\n )\n\n const refs = nonListEntries.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n const path = ref.current\n if (path) {\n Editor.withoutNormalizing(editor, () => {\n Transforms.setNodes(\n editor,\n { type: BlockType.ListItemChild },\n {\n at: path,\n },\n )\n Transforms.wrapNodes(editor, ElementUtils.createListItem(), {\n match: node => ElementUtils.isListItemChild(node),\n at: path,\n })\n Transforms.wrapNodes(editor, ElementUtils.createList(options.type), {\n at: path,\n })\n })\n }\n ref.unref()\n })\n}\n","import { Editor, Location, Node, Path, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { unwrapList } from './unwrapList'\nimport { LocationUtils } from './utils/location'\nimport { wrapList } from './wrapList'\nimport { BlockType } from '../../controls'\n\ntype ToggleListOptions = {\n type: typeof BlockType.UnorderedList | typeof BlockType.OrderedList\n at?: Location\n}\n\nexport function toggleList(\n editor: Editor,\n options: ToggleListOptions = { type: BlockType.UnorderedList },\n) {\n const at = options.at ?? editor.selection\n if (at == null) return\n const start = LocationUtils.getStartPath(at)\n const ancestorPath = Path.ancestors(start).at(1)\n if (!ancestorPath || !Node.has(editor, ancestorPath)) return\n const ancestor = Node.get(editor, ancestorPath)\n\n if (!ElementUtils.isList(ancestor)) {\n return wrapList(editor, { type: options.type, at })\n }\n\n if (ancestor.type === options.type) {\n unwrapList(editor, { at })\n } else {\n Transforms.setNodes(editor, { type: options.type }, { at: ancestorPath })\n }\n}\n","import type { KeyboardEvent } from 'react'\nimport { Editor, Transforms, Range, Node, PathRef, Text } from 'slate'\nimport isHotkey from 'is-hotkey'\nimport { LIST_ITEM_CHILD_POSITION } from './constants'\nimport { EditorUtils } from '../utils/editor'\nimport { ElementUtils } from '../utils/element'\nimport { dedent } from './dedent'\nimport { indent } from './indent'\nimport { toggleList } from './toggleList'\nimport { unwrapList } from './unwrapList'\nimport { wrapList } from './wrapList'\nimport { BlockType } from '../../controls'\n\nexport const List = {\n unwrapList,\n wrapList,\n indent,\n dedent,\n toggleList,\n}\n\nexport function onKeyDown(e: KeyboardEvent, editor: Editor) {\n if (\n !editor.selection ||\n Array.from(Editor.nodes(editor, { match: node => ElementUtils.isListItem(node) })).length === 0\n )\n return\n\n if (isHotkey('shift+tab', e)) {\n e.preventDefault()\n List.dedent(editor)\n }\n\n if (isHotkey('tab', e)) {\n e.preventDefault()\n List.indent(editor)\n }\n\n if (isHotkey('backspace', e)) {\n if (!editor.selection) return\n if (Range.isExpanded(editor.selection)) return\n const listItem = EditorUtils.getFirstAncestorListItem(editor, editor.selection.anchor.path)\n if (editor.selection.anchor.offset === 0 && listItem) {\n e.preventDefault()\n const parentListItem = EditorUtils.getFirstAncestorListItem(editor, listItem[1])\n const list = EditorUtils.getFirstAncestorList(editor, listItem[1])\n\n if (parentListItem) {\n List.dedent(editor)\n } else if (list) {\n List.unwrapList(editor)\n }\n return\n }\n }\n\n if (isHotkey('enter', e)) {\n e.preventDefault()\n\n if (!editor.selection) return\n\n if (Range.isExpanded(editor.selection)) {\n Transforms.delete(editor)\n return\n }\n\n const listItem = EditorUtils.getFirstAncestorListItem(editor, editor.selection.anchor.path)\n if (\n editor.selection.anchor.offset === 0 &&\n listItem &&\n Editor.string(editor, listItem[1]) === ''\n ) {\n const parentListItem = EditorUtils.getFirstAncestorListItem(editor, listItem[1])\n\n if (parentListItem) {\n List.dedent(editor)\n } else {\n List.unwrapList(editor)\n }\n return\n }\n\n Transforms.splitNodes(editor, {\n at: editor.selection,\n always: true,\n match: node => ElementUtils.isListItem(node),\n })\n }\n\n if (isHotkey('shift+enter', e)) {\n e.preventDefault()\n editor.insertText('\\n')\n }\n}\n\nexport function withList(editor: Editor) {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n\n // Normalization for converting children of list items to list item children\n // In the case of backspace from position 0 of node into a list this converts the node into a list item.\n if (ElementUtils.isListItem(normalizationNode)) {\n const pathToListItemText = [...normalizationPath, LIST_ITEM_CHILD_POSITION]\n\n if (Node.has(editor, pathToListItemText)) {\n const nodeInListItemTextPosition = Node.get(editor, pathToListItemText)\n if (ElementUtils.isParagraph(nodeInListItemTextPosition)) {\n Transforms.setNodes(\n editor,\n { type: BlockType.ListItemChild },\n {\n at: pathToListItemText,\n },\n )\n return\n }\n } else {\n Transforms.insertNodes(editor, ElementUtils.createListItem(), {\n at: pathToListItemText,\n })\n return\n }\n }\n\n // Normalization for merging adjacent lists of the same type\n if (!Text.isText(normalizationNode)) {\n const mergeableChildren = Array.from(Node.children(editor, normalizationPath))\n .map((child, index, children) => {\n const potentialNodeToBeMerged = children.at(index + 1)\n if (\n !potentialNodeToBeMerged ||\n !ElementUtils.isList(potentialNodeToBeMerged[0]) ||\n !ElementUtils.isList(child[0]) ||\n potentialNodeToBeMerged[0].type !== child[0].type\n ) {\n return null\n }\n return [\n Editor.pathRef(editor, child[1]),\n Editor.pathRef(editor, potentialNodeToBeMerged[1]),\n ]\n })\n .filter((mergeableNodes): mergeableNodes is PathRef[] => Boolean(mergeableNodes))\n\n if (mergeableChildren.length !== 0) {\n mergeableChildren.reverse().forEach(([nodePathRef, nodeToBeMergedPathRef]) => {\n const nodePath = nodePathRef.current\n const nodeToBeMergedPath = nodeToBeMergedPathRef.current\n if (nodePath == null || nodeToBeMergedPath == null) return\n const nodeChildren = Array.from(Node.children(editor, nodePath))\n const childrenToBeMerged = Array.from(Node.children(editor, nodeToBeMergedPath))\n Editor.withoutNormalizing(editor, () => {\n childrenToBeMerged.reverse().forEach(([_, childPath]) => {\n Transforms.moveNodes(editor, {\n at: childPath,\n to: [...nodePath, nodeChildren.length],\n })\n })\n Transforms.removeNodes(editor, { at: nodeToBeMergedPath })\n })\n nodePathRef.unref()\n nodeToBeMergedPathRef.unref()\n })\n return\n }\n }\n\n normalizeNode(entry)\n }\n\n return editor\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { RichTextTypography } from '../../controls'\n\ntype ClearActiveTypographyStyleOptions = {\n at?: Range\n}\n\nexport function clearActiveTypographyStyle(\n editor: Editor,\n options?: ClearActiveTypographyStyleOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n const typography: RichTextTypography = {\n ...node.typography,\n style: [],\n }\n\n Transforms.setNodes(\n editor,\n {\n typography,\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { RichTextTypography } from '../../controls'\n\ntype ClearDeviceActiveTypographyOptions = {\n at?: Range\n}\n\nexport function clearDeviceActiveTypography(\n editor: Editor,\n currentDeviceId: string,\n options?: ClearDeviceActiveTypographyOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n const typography: RichTextTypography = {\n ...node.typography,\n style:\n node?.typography?.style.filter(({ deviceId }) => deviceId !== currentDeviceId) ?? [],\n }\n\n Transforms.setNodes(\n editor,\n {\n typography,\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { RichTextTypography } from '../../controls'\n\ntype SetActiveTypographyIdOptions = {\n at?: Range\n}\n\nexport function detachActiveTypography(\n editor: Editor,\n value: RichTextTypography['style'],\n options?: SetActiveTypographyIdOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n Transforms.setNodes(\n editor,\n {\n typography: {\n style: value,\n },\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\n\ntype SetActiveTypographyIdOptions = {\n at?: Range\n}\n\nexport function setActiveTypographyId(\n editor: Editor,\n id?: string,\n options?: SetActiveTypographyIdOptions,\n) {\n const at = options?.at ?? editor.selection\n if (!at) return\n Transforms.setNodes(\n editor,\n {\n typography: {\n id,\n style: [],\n },\n },\n {\n at,\n match: node => Text.isText(node),\n split: Range.isExpanded(at),\n },\n )\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { RichTextTypography } from '../../controls'\nimport { Breakpoints, findBreakpointOverride, BreakpointId } from '../../state/modules/breakpoints'\n\ntype SetActiveTypographyStyleOptions = {\n at?: Range\n}\n\nexport function setActiveTypographyStyle(\n editor: Editor,\n breakpoints: Breakpoints,\n deviceId: string,\n prop: string,\n value?: unknown,\n options?: SetActiveTypographyStyleOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n const deviceOverrides = node?.typography?.style ?? []\n const deviceStyle = findBreakpointOverride(\n breakpoints,\n deviceOverrides,\n deviceId as BreakpointId,\n v => v,\n ) || {\n value: {},\n }\n const nextDeviceStyle = {\n deviceId,\n value: { ...deviceStyle.value, [prop]: value },\n }\n\n const nextTypography: RichTextTypography = {\n ...node.typography,\n style: [...deviceOverrides.filter(v => v.deviceId !== deviceId), nextDeviceStyle],\n }\n\n Transforms.setNodes(\n editor,\n {\n typography: nextTypography,\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Text, Transforms } from 'slate'\nimport { clearActiveTypographyStyle } from './clearActiveTypographyStyle'\nimport { clearDeviceActiveTypography } from './clearDeviceActiveTypography'\nimport { detachActiveTypography } from './detachActiveTypography'\nimport { setActiveTypographyId } from './setActiveTypographyId'\nimport { setActiveTypographyStyle } from './setActiveTypographyStyle'\n\nexport const Typography = {\n setActiveTypographyId,\n setActiveTypographyStyle,\n clearActiveTypographyStyle,\n clearDeviceActiveTypography,\n detachActiveTypography,\n}\n\nexport function withTypography(editor: Editor) {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n if (\n Text.isText(normalizationNode) &&\n normalizationNode?.typography?.id == null &&\n normalizationNode?.typography?.style.length === 0\n ) {\n Transforms.unsetNodes(editor, 'typography', { at: normalizationPath })\n return\n }\n\n if (Text.isText(normalizationNode) && normalizationNode?.slice != null) {\n Transforms.unsetNodes(editor, 'slice', { at: normalizationPath })\n return\n }\n\n normalizeNode(entry)\n }\n\n return editor\n}\n","import { Editor, Range, Element, Text, Path } from 'slate'\n\n/**\n * The `Editor.unhangeRange` within Slate early exits if `Path.hasPrevious(end.path)` ie if this isn't a root block.\n * Unfortunately when you `setNode(..., {split:true})` or `wrapNodes()` you also have a hanging selection, but not in the root position.\n *\n * This c/p removes the `Path.hasPrevious(end.path)` from the early exit but it the same otherwise\n */\nfunction unhangRange(editor: Editor, range: Range): Range {\n // eslint-disable-next-line prefer-const\n let [start, end] = Range.edges(range)\n // PERF: exit early if we can guarantee that the range isn't hanging.\n if (start.offset !== 0 || end.offset !== 0 || Range.isCollapsed(range)) {\n return range\n }\n\n const endBlock = Editor.above(editor, {\n at: end,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n })\n const blockPath = endBlock ? endBlock[1] : []\n const first = Editor.start(editor, start)\n const before = { anchor: first, focus: end }\n let skip = true\n\n for (const [node, path] of Editor.nodes(editor, {\n at: before,\n match: Text.isText,\n reverse: true,\n })) {\n if (skip) {\n skip = false\n continue\n }\n\n if (node.text !== '' || Path.isBefore(path, blockPath)) {\n end = { path, offset: node.text.length }\n break\n }\n }\n\n return { anchor: start, focus: end }\n}\n\nexport default unhangRange\n","import { Editor, NodeEntry, Range, Text } from 'slate'\nimport { EditableBlockKey } from './BlockPlugin/types'\nimport { ElementUtils } from './utils/element'\n\nimport unhangRange from './utils/unhangRange'\nimport shallowEqual from '../utils/shallowEqual'\nimport { isNonNullable } from '../utils/isNonNullable'\n\nimport {\n RootBlock,\n Inline,\n RootBlockType,\n ResponsiveBlockTextAlignment,\n BlockTextAlignment,\n RichTextTypography,\n} from '../controls'\nimport { Breakpoints, BreakpointId, findBreakpointOverride } from '../state/modules/breakpoints'\nimport deepEqual from '../utils/deepEqual'\nimport keys from '../utils/keys'\n\nexport function getSelection(editor: Editor): Range {\n if (editor.selection) return unhangRange(editor, editor.selection)\n return {\n anchor: Editor.start(editor, []),\n focus: Editor.end(editor, []),\n }\n}\n\nexport function getBlocksInSelection(editor: Editor): NodeEntry<RootBlock>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => ElementUtils.isRootBlock(node),\n }),\n ).filter((entry): entry is NodeEntry<RootBlock> => ElementUtils.isRootBlock(entry[0]))\n}\n\nexport function getInlinesInSelection(editor: Editor): NodeEntry<Inline>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => ElementUtils.isInline(node),\n }),\n ).filter((entry): entry is NodeEntry<Inline> => ElementUtils.isInline(entry[0]))\n}\n\nexport function getActiveBlockType(editor: Editor): RootBlockType | null {\n const rootBlocks = getBlocksInSelection(editor).map(([node]) => node.type)\n\n return rootBlocks.reduce<RootBlockType | null>(\n (a, b) => (a === b ? b : null),\n rootBlocks.at(0) ?? null,\n )\n}\n\nexport function getActiveBlockValue(editor: Editor, key: EditableBlockKey) {\n const blocks = getBlocksInSelection(editor)\n\n const active = blocks.map(\n ([block]) => block[key] ?? null,\n ) as (ResponsiveBlockTextAlignment | null)[]\n\n return active.length === 0 ? null : active.reduce((a, b) => (shallowEqual(a, b) ? b : null))\n}\n\nexport function getActiveBlockDeviceOverrideValue(\n editor: Editor,\n key: EditableBlockKey,\n breakpoints: Breakpoints,\n deviceId: BreakpointId,\n) {\n const active: (BlockTextAlignment | null)[] = []\n const blocks = getBlocksInSelection(editor)\n\n blocks.forEach(([block]) => {\n const deviceOverride =\n findBreakpointOverride<BlockTextAlignment>(breakpoints, block[key], deviceId) || null\n active.push(deviceOverride?.value ?? null)\n })\n\n return active.length === 0 ? null : active.reduce((a, b) => (shallowEqual(a, b) ? b : null))\n}\n\n// Typography\n\nconst concat = (a: unknown[], b: unknown[]) => a.concat(b)\n\n// TODO: This is more cruft from trying to remove null from the typography type. This optimization is not worth it.\n/**\n * This is a c/p of the intersection of the utils from the root utils folder.\n * The only change is defaulting to undefined instead of to null.\n */\nexport default function intersection<A extends Record<string, unknown>, B extends A>(\n a: A,\n b: B,\n isEqual: (a: unknown, b: unknown) => boolean = deepEqual,\n): { [K in keyof A]: A[K] | undefined } {\n const allKeys = [...new Set([...keys(a), ...keys(b)])] as (keyof A)[]\n\n return allKeys.reduce((acc, k) => {\n if (isEqual(a[k], b[k])) acc[k] = a[k]\n else acc[k] = undefined\n\n return acc\n }, {} as { [K in keyof A]: A[K] | undefined })\n}\n\nconst fuseTypographyMarks = (\n values: Array<RichTextTypography | null | undefined>,\n breakpoints: Breakpoints,\n): RichTextTypography => {\n const devices = [\n ...new Set(\n values\n .filter(isNonNullable)\n .map(({ style }) => style.map(({ deviceId }) => deviceId))\n .reduce(concat, []),\n ),\n ] as BreakpointId[]\n\n return {\n id: values.map(v => v && v.id).reduce((a, b) => (a === b ? a : undefined)) ?? undefined,\n style: devices.map(deviceId =>\n values\n .map(\n v =>\n (v && findBreakpointOverride(breakpoints, v.style, deviceId)) || {\n deviceId,\n value: {},\n },\n )\n .reduce((acc, { value }) => {\n const a = intersection(acc.value, value)\n return {\n deviceId,\n value: a,\n }\n }),\n ),\n }\n}\n\nexport function getActiveTypographyMark(\n editor: Editor,\n breakpoints: Breakpoints,\n): RichTextTypography {\n const active: RichTextTypography[] = []\n\n const textNodes = Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => Text.isText(node),\n })\n\n for (const [node] of textNodes) {\n if (Text.isText(node) && 'typography' in node && node.typography != undefined) {\n active.push(node.typography)\n }\n }\n return active.length === 0 ? { style: [] } : fuseTypographyMarks(active, breakpoints)\n}\n","import { Editor, Transforms, Location } from 'slate'\nimport { getBlocksInSelection } from '../selectors'\nimport { ElementUtils } from '../utils/element'\nimport { EditableBlockKey, EditableBlockValue } from './types'\nimport { Breakpoints, BreakpointId, findBreakpointOverride } from '../../state/modules/breakpoints'\n\ntype SetBlockKeyForDeviceOptions = {\n at?: Location\n}\n\nexport function setBlockKeyForDevice(\n editor: Editor,\n breakpoints: Breakpoints,\n deviceId: BreakpointId,\n key: EditableBlockKey,\n value: EditableBlockValue[number]['value'],\n options?: SetBlockKeyForDeviceOptions,\n) {\n const at = options?.at ?? editor.selection\n if (!at) return\n\n const rootElements = getBlocksInSelection(editor)\n\n for (const [node, path] of rootElements) {\n if (ElementUtils.isBlock(node)) {\n const deviceValues = node[key] ?? []\n const currentDeviceValue = findBreakpointOverride(breakpoints, deviceValues, deviceId, v => v)\n const nextDeviceValue = {\n ...currentDeviceValue,\n deviceId,\n value,\n }\n Transforms.setNodes(\n editor,\n {\n [key]: [...deviceValues.filter(v => v.deviceId !== deviceId), nextDeviceValue],\n },\n { at: path },\n )\n }\n }\n}\n","import { Editor, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { EditableBlockKey } from './types'\nimport { getBlocksInSelection } from '../selectors'\nimport { BreakpointId } from '../../state/modules/breakpoints'\n\nexport function clearBlockKeyForDevice(\n editor: Editor,\n deviceId: BreakpointId,\n key: EditableBlockKey,\n) {\n const rootElements = getBlocksInSelection(editor)\n\n for (const [node, path] of rootElements) {\n if (ElementUtils.isBlock(node)) {\n const deviceOverrides = node[key] ?? []\n Transforms.setNodes(\n editor,\n {\n [key]: deviceOverrides.filter(v => v.deviceId !== deviceId),\n },\n { at: path },\n )\n }\n }\n}\n","import { Editor, Transforms } from 'slate'\nimport { getSelection } from '../selectors'\nimport { Inline } from '../../controls'\n\nexport function wrapInline(editor: Editor, inline: Inline) {\n Transforms.wrapNodes(editor, inline, {\n at: getSelection(editor),\n split: true,\n })\n}\n","import { Editor, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { getSelection } from '../selectors'\nimport { InlineType } from '../../controls'\n\nexport function unwrapInline(editor: Editor, type: InlineType) {\n Transforms.unwrapNodes(editor, {\n match: node => ElementUtils.isInline(node) && node.type === type,\n at: getSelection(editor),\n })\n}\n","import { Editor, Transforms } from 'slate'\nimport { setBlockKeyForDevice } from './setBlockKeyForDevice'\nimport { clearBlockKeyForDevice } from './clearBlockKeyForDevice'\nimport { wrapInline } from './wrapInline'\nimport { unwrapInline } from './unwrapInline'\nimport { ElementUtils } from '../utils/element'\n\nexport const Block = {\n setBlockKeyForDevice,\n clearBlockKeyForDevice,\n wrapInline,\n unwrapInline,\n}\n\nexport function withBlock(editor: Editor) {\n const { normalizeNode } = editor\n\n editor.isInline = entry => {\n return ElementUtils.isInline(entry)\n }\n\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n // Normalization textAlign with empty array of values\n if (ElementUtils.isBlock(normalizationNode) && normalizationNode?.textAlign?.length == 0) {\n Transforms.unsetNodes(editor, 'textAlign', { at: normalizationPath })\n return\n }\n\n normalizeNode(entry)\n }\n\n return editor\n}\n"],"names":["Element","BlockType","InlineType","Editor","Path","Range","Point","Node","Transforms","isHotkey","Text","findBreakpointOverride"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs5.js","sources":["../src/slate/ListPlugin/constants.ts","../src/slate/utils/editor.ts","../src/slate/ListPlugin/utils/filterForSubtreeRoots.ts","../src/slate/ListPlugin/utils/location.ts","../src/slate/ListPlugin/utils/getSelectedListItems.ts","../src/slate/ListPlugin/indent.ts","../src/slate/ListPlugin/dedent.ts","../src/slate/ListPlugin/unwrapList.ts","../src/slate/ListPlugin/wrapList.ts","../src/slate/ListPlugin/toggleList.ts","../src/slate/ListPlugin/index.ts","../src/slate/TypographyPlugin/clearActiveTypographyStyle.ts","../src/slate/TypographyPlugin/clearDeviceActiveTypography.ts","../src/slate/TypographyPlugin/detachActiveTypography.ts","../src/slate/TypographyPlugin/setActiveTypographyId.ts","../src/slate/TypographyPlugin/setActiveTypographyStyle.ts","../src/slate/TypographyPlugin/index.ts","../src/slate/utils/unhangRange.ts","../src/slate/selectors.ts","../src/slate/BlockPlugin/setBlockKeyForDevice.ts","../src/slate/BlockPlugin/clearBlockKeyForDevice.ts","../src/slate/BlockPlugin/wrapInline.ts","../src/slate/BlockPlugin/unwrapInline.ts","../src/slate/BlockPlugin/index.ts"],"sourcesContent":["export const LIST_ITEM_CHILD_POSITION = 0\nexport const LIST_ITEM_LIST_POSITION = 1\n","import { Path, Editor, NodeEntry } from 'slate'\n\nimport { ElementUtils } from './element'\nimport { ListElement, ListItemElement } from '../types'\n\nexport const EditorUtils = {\n getFirstAncestorList(editor: Editor, path: Path): NodeEntry<ListElement> | null {\n try {\n const parentList = Editor.above(editor, {\n at: path,\n match: (node): node is ListElement => ElementUtils.isList(node),\n })\n return parentList ?? null\n } catch (e) {\n return null\n }\n },\n getFirstAncestorListItem(editor: Editor, path: Path): NodeEntry<ListItemElement> | null {\n try {\n const parentListItem = Editor.above(editor, {\n at: path,\n match: (node): node is ListItemElement => ElementUtils.isListItem(node),\n })\n\n return parentListItem ?? null\n } catch (e) {\n return null\n }\n },\n}\n","import type { Node, NodeEntry } from 'slate'\nimport { Path } from 'slate'\n\nexport function filterForSubtreeRoots(entries: NodeEntry<Node>[]): NodeEntry<Node>[] {\n return entries.filter(\n ([, nodePath]) =>\n !Path.ancestors(nodePath).some(ancestor => {\n return entries.some(([, path]) => Path.equals(path, ancestor))\n }),\n )\n}\n","import { Range, Point, Path, Location } from 'slate'\n\nexport const LocationUtils = {\n getStartPath(location: Location): Path {\n if (Range.isRange(location)) return Range.start(location).path\n if (Point.isPoint(location)) return location.path\n return location\n },\n}\n","import type { Element, NodeEntry } from 'slate'\nimport { Editor, Path } from 'slate'\nimport { EditorUtils } from '../../utils/editor'\nimport { ElementUtils } from '../../utils/element'\nimport { LocationUtils } from './location'\n\nexport function getSelectedListItems(editor: Editor): NodeEntry<Element>[] {\n if (!editor.selection) return []\n\n const start = LocationUtils.getStartPath(editor.selection)\n const listItems = Editor.nodes(editor, {\n at: editor.selection,\n match: node => ElementUtils.isListItem(node),\n })\n const firstAncestorPath = EditorUtils.getFirstAncestorListItem(editor, start)?.[1] ?? []\n\n return Array.from(listItems).filter((node): node is NodeEntry<Element> =>\n Path.isDescendant(start, node[1])\n ? Path.equals(node[1], firstAncestorPath)\n : !Path.isAfter(start, node[1]),\n )\n}\n","import { Editor, Node, Path, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { LIST_ITEM_LIST_POSITION } from './constants'\nimport { filterForSubtreeRoots } from './utils/filterForSubtreeRoots'\nimport { getSelectedListItems } from './utils/getSelectedListItems'\n\nexport function indentPath(editor: Editor, path: Path) {\n const parent = Node.parent(editor, path)\n if (!path || !Path.hasPrevious(path) || !ElementUtils.isList(parent)) return\n\n const previosPath = Path.previous(path)\n\n const previousChildListPath = [...previosPath, LIST_ITEM_LIST_POSITION]\n const previousHasChildList = Node.has(editor, previousChildListPath)\n\n Editor.withoutNormalizing(editor, () => {\n if (!previousHasChildList) {\n Transforms.insertNodes(editor, ElementUtils.createList(parent.type), {\n at: previousChildListPath,\n })\n }\n\n const previousChildList = Node.get(editor, previousChildListPath)\n\n if (ElementUtils.isList(previousChildList)) {\n const index = previousHasChildList ? previousChildList.children.length : 0\n Transforms.moveNodes(editor, {\n at: path,\n to: [...previousChildListPath, index],\n })\n }\n })\n}\n\nexport function indent(editor: Editor) {\n if (!editor.selection) return\n\n const listItems = getSelectedListItems(editor)\n const subRoots = filterForSubtreeRoots(listItems)\n const refs = subRoots.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n if (ref.current) {\n indentPath(editor, ref.current)\n }\n ref.unref()\n })\n}\n","import { Editor, Path, Transforms } from 'slate'\nimport { indentPath } from './indent'\nimport { getSelectedListItems } from './utils/getSelectedListItems'\nimport { filterForSubtreeRoots } from './utils/filterForSubtreeRoots'\nimport { EditorUtils } from '../utils/editor'\n\nfunction dedentPath(editor: Editor, listItemPath: Path) {\n const parentList = EditorUtils.getFirstAncestorList(editor, listItemPath)\n const listItemContainingParentList = EditorUtils.getFirstAncestorListItem(editor, listItemPath)\n if (!parentList || !listItemContainingParentList) return\n\n const [parentListNode, parentListPath] = parentList\n const [_, listItemContainingParentListPath] = listItemContainingParentList\n\n const listItemPosition = listItemPath[listItemPath.length - 1]\n const previousSiblings = parentListNode.children.slice(0, listItemPosition)\n const nextSiblings = parentListNode.children.slice(listItemPosition + 1)\n\n Editor.withoutNormalizing(editor, () => {\n // put next siblings into list item\n nextSiblings.forEach(() => {\n const nextSiblingPath = [...parentListPath, listItemPosition + 1]\n indentPath(editor, nextSiblingPath)\n })\n // move list item to parent list\n Transforms.moveNodes(editor, {\n at: listItemPath,\n to: Path.next(listItemContainingParentListPath),\n })\n // delete old parent list if there are no other list items\n if (previousSiblings.length === 0) {\n Transforms.removeNodes(editor, { at: parentListPath })\n }\n })\n}\n\nexport function dedent(editor: Editor) {\n if (!editor.selection) return\n\n const listItems = getSelectedListItems(editor)\n const subRoots = filterForSubtreeRoots(listItems)\n const refs = subRoots.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n if (ref.current) {\n dedentPath(editor, ref.current)\n }\n ref.unref()\n })\n}\n","import { Editor, Element, Transforms, Path, Node, Location, Span } from 'slate'\nimport { EditorUtils } from '../utils/editor'\nimport { LIST_ITEM_CHILD_POSITION, LIST_ITEM_LIST_POSITION } from './constants'\nimport { filterForSubtreeRoots } from './utils/filterForSubtreeRoots'\nimport { ElementUtils } from '../utils/element'\nimport { BlockType } from '../types'\n\nexport function unwrapPath(editor: Editor, listItemPath: Path) {\n const parentList = EditorUtils.getFirstAncestorList(editor, listItemPath)\n const listItemContainingParentList = EditorUtils.getFirstAncestorListItem(editor, listItemPath)\n //if this is a nested item we don't want to unwrap it\n if (!parentList || listItemContainingParentList) return\n\n Editor.withoutNormalizing(editor, () => {\n const listItemTextPath = [...listItemPath, LIST_ITEM_CHILD_POSITION]\n const listItemNestedListPath = [...listItemPath, LIST_ITEM_LIST_POSITION]\n\n if (Node.has(editor, listItemNestedListPath)) {\n Transforms.setNodes(editor, { type: parentList[0].type }, { at: listItemNestedListPath })\n Transforms.liftNodes(editor, { at: listItemNestedListPath })\n Transforms.liftNodes(editor, { at: Path.next(listItemPath) })\n }\n\n if (Node.has(editor, listItemTextPath)) {\n Transforms.setNodes(\n editor,\n { type: BlockType.Paragraph },\n {\n at: listItemTextPath,\n },\n )\n Transforms.liftNodes(editor, { at: listItemTextPath })\n Transforms.liftNodes(editor, { at: listItemPath })\n }\n })\n}\n\ntype UnwrapListOptions = {\n at?: Location | Span\n}\n\nexport function unwrapList(editor: Editor, options?: UnwrapListOptions) {\n const at = options?.at ?? editor.selection\n if (!at) return\n\n const listItems = Array.from(\n Editor.nodes(editor, {\n at,\n match: node => {\n return Element.isElement(node) && ElementUtils.isListItem(node)\n },\n }),\n )\n const subRoots = filterForSubtreeRoots(listItems)\n const refs = subRoots.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n if (ref.current) {\n unwrapPath(editor, ref.current)\n }\n ref.unref()\n })\n}\n","import { Editor, Element, Location, Span, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { BlockType } from '../types'\n\ntype WrapListOptions = {\n type: typeof BlockType.UnorderedList | typeof BlockType.OrderedList\n at?: Location | Span\n}\n\nexport function wrapList(\n editor: Editor,\n options: WrapListOptions = { type: BlockType.UnorderedList },\n) {\n const at = options.at ?? editor.selection\n if (!at) return\n\n const nonListEntries = Array.from(\n Editor.nodes(editor, {\n at,\n match: node => {\n return Element.isElement(node) && ElementUtils.isConvertibleToListTextNode(node)\n },\n }),\n )\n\n const refs = nonListEntries.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n const path = ref.current\n if (path) {\n Editor.withoutNormalizing(editor, () => {\n Transforms.setNodes(\n editor,\n { type: BlockType.ListItemChild },\n {\n at: path,\n },\n )\n Transforms.wrapNodes(editor, ElementUtils.createListItem(), {\n match: node => ElementUtils.isListItemChild(node),\n at: path,\n })\n Transforms.wrapNodes(editor, ElementUtils.createList(options.type), {\n at: path,\n })\n })\n }\n ref.unref()\n })\n}\n","import { Editor, Location, Node, Path, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { unwrapList } from './unwrapList'\nimport { LocationUtils } from './utils/location'\nimport { wrapList } from './wrapList'\nimport { BlockType } from '../types'\n\ntype ToggleListOptions = {\n type: typeof BlockType.UnorderedList | typeof BlockType.OrderedList\n at?: Location\n}\n\nexport function toggleList(\n editor: Editor,\n options: ToggleListOptions = { type: BlockType.UnorderedList },\n) {\n const at = options.at ?? editor.selection\n if (at == null) return\n const start = LocationUtils.getStartPath(at)\n const ancestorPath = Path.ancestors(start).at(1)\n if (!ancestorPath || !Node.has(editor, ancestorPath)) return\n const ancestor = Node.get(editor, ancestorPath)\n\n if (!ElementUtils.isList(ancestor)) {\n return wrapList(editor, { type: options.type, at })\n }\n\n if (ancestor.type === options.type) {\n unwrapList(editor, { at })\n } else {\n Transforms.setNodes(editor, { type: options.type }, { at: ancestorPath })\n }\n}\n","import type { KeyboardEvent } from 'react'\nimport { Editor, Transforms, Range, Node, PathRef, Text } from 'slate'\nimport isHotkey from 'is-hotkey'\nimport { LIST_ITEM_CHILD_POSITION } from './constants'\nimport { EditorUtils } from '../utils/editor'\nimport { ElementUtils } from '../utils/element'\nimport { dedent } from './dedent'\nimport { indent } from './indent'\nimport { toggleList } from './toggleList'\nimport { unwrapList } from './unwrapList'\nimport { wrapList } from './wrapList'\nimport { BlockType } from '../types'\n\nexport const ListActions = {\n unwrapList,\n wrapList,\n indent,\n dedent,\n toggleList,\n}\n\nexport function onKeyDown(e: KeyboardEvent, editor: Editor) {\n if (\n !editor.selection ||\n Array.from(Editor.nodes(editor, { match: node => ElementUtils.isListItem(node) })).length === 0\n )\n return\n\n if (isHotkey('shift+tab', e)) {\n e.preventDefault()\n ListActions.dedent(editor)\n }\n\n if (isHotkey('tab', e)) {\n e.preventDefault()\n ListActions.indent(editor)\n }\n\n if (isHotkey('backspace', e)) {\n if (!editor.selection) return\n if (Range.isExpanded(editor.selection)) return\n const listItem = EditorUtils.getFirstAncestorListItem(editor, editor.selection.anchor.path)\n if (editor.selection.anchor.offset === 0 && listItem) {\n e.preventDefault()\n const parentListItem = EditorUtils.getFirstAncestorListItem(editor, listItem[1])\n const list = EditorUtils.getFirstAncestorList(editor, listItem[1])\n\n if (parentListItem) {\n ListActions.dedent(editor)\n } else if (list) {\n ListActions.unwrapList(editor)\n }\n return\n }\n }\n\n if (isHotkey('enter', e)) {\n e.preventDefault()\n\n if (!editor.selection) return\n\n if (Range.isExpanded(editor.selection)) {\n Transforms.delete(editor)\n return\n }\n\n const listItem = EditorUtils.getFirstAncestorListItem(editor, editor.selection.anchor.path)\n if (\n editor.selection.anchor.offset === 0 &&\n listItem &&\n Editor.string(editor, listItem[1]) === ''\n ) {\n const parentListItem = EditorUtils.getFirstAncestorListItem(editor, listItem[1])\n\n if (parentListItem) {\n ListActions.dedent(editor)\n } else {\n ListActions.unwrapList(editor)\n }\n return\n }\n\n Transforms.splitNodes(editor, {\n at: editor.selection,\n always: true,\n match: node => ElementUtils.isListItem(node),\n })\n }\n\n if (isHotkey('shift+enter', e)) {\n e.preventDefault()\n editor.insertText('\\n')\n }\n}\n\nexport function withList(editor: Editor) {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n\n // Normalization for converting children of list items to list item children\n // In the case of backspace from position 0 of node into a list this converts the node into a list item.\n if (ElementUtils.isListItem(normalizationNode)) {\n const pathToListItemText = [...normalizationPath, LIST_ITEM_CHILD_POSITION]\n\n if (Node.has(editor, pathToListItemText)) {\n const nodeInListItemTextPosition = Node.get(editor, pathToListItemText)\n if (ElementUtils.isParagraph(nodeInListItemTextPosition)) {\n Transforms.setNodes(\n editor,\n { type: BlockType.ListItemChild },\n {\n at: pathToListItemText,\n },\n )\n return\n }\n } else {\n Transforms.insertNodes(editor, ElementUtils.createListItem(), {\n at: pathToListItemText,\n })\n return\n }\n }\n\n // Normalization for merging adjacent lists of the same type\n if (!Text.isText(normalizationNode)) {\n const mergeableChildren = Array.from(Node.children(editor, normalizationPath))\n .map((child, index, children) => {\n const potentialNodeToBeMerged = children.at(index + 1)\n if (\n !potentialNodeToBeMerged ||\n !ElementUtils.isList(potentialNodeToBeMerged[0]) ||\n !ElementUtils.isList(child[0]) ||\n potentialNodeToBeMerged[0].type !== child[0].type\n ) {\n return null\n }\n return [\n Editor.pathRef(editor, child[1]),\n Editor.pathRef(editor, potentialNodeToBeMerged[1]),\n ]\n })\n .filter((mergeableNodes): mergeableNodes is PathRef[] => Boolean(mergeableNodes))\n\n if (mergeableChildren.length !== 0) {\n mergeableChildren.reverse().forEach(([nodePathRef, nodeToBeMergedPathRef]) => {\n const nodePath = nodePathRef.current\n const nodeToBeMergedPath = nodeToBeMergedPathRef.current\n if (nodePath == null || nodeToBeMergedPath == null) return\n const nodeChildren = Array.from(Node.children(editor, nodePath))\n const childrenToBeMerged = Array.from(Node.children(editor, nodeToBeMergedPath))\n Editor.withoutNormalizing(editor, () => {\n childrenToBeMerged.reverse().forEach(([_, childPath]) => {\n Transforms.moveNodes(editor, {\n at: childPath,\n to: [...nodePath, nodeChildren.length],\n })\n })\n Transforms.removeNodes(editor, { at: nodeToBeMergedPath })\n })\n nodePathRef.unref()\n nodeToBeMergedPathRef.unref()\n })\n return\n }\n }\n\n normalizeNode(entry)\n }\n\n return editor\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { RichTextTypography } from '../types'\n\ntype ClearActiveTypographyStyleOptions = {\n at?: Range\n}\n\nexport function clearActiveTypographyStyle(\n editor: Editor,\n options?: ClearActiveTypographyStyleOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n const typography: RichTextTypography = {\n ...node.typography,\n style: [],\n }\n\n Transforms.setNodes(\n editor,\n {\n typography,\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { RichTextTypography } from '../types'\n\ntype ClearDeviceActiveTypographyOptions = {\n at?: Range\n}\n\nexport function clearDeviceActiveTypography(\n editor: Editor,\n currentDeviceId: string,\n options?: ClearDeviceActiveTypographyOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n const typography: RichTextTypography = {\n ...node.typography,\n style:\n node?.typography?.style.filter(({ deviceId }) => deviceId !== currentDeviceId) ?? [],\n }\n\n Transforms.setNodes(\n editor,\n {\n typography,\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { RichTextTypography } from '../types'\n\ntype SetActiveTypographyIdOptions = {\n at?: Range\n}\n\nexport function detachActiveTypography(\n editor: Editor,\n value: RichTextTypography['style'],\n options?: SetActiveTypographyIdOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n Transforms.setNodes(\n editor,\n {\n typography: {\n style: value,\n },\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\n\ntype SetActiveTypographyIdOptions = {\n at?: Range\n}\n\nexport function setActiveTypographyId(\n editor: Editor,\n id?: string,\n options?: SetActiveTypographyIdOptions,\n) {\n const at = options?.at ?? editor.selection\n if (!at) return\n Transforms.setNodes(\n editor,\n {\n typography: {\n id,\n style: [],\n },\n },\n {\n at,\n match: node => Text.isText(node),\n split: Range.isExpanded(at),\n },\n )\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { Breakpoints, findBreakpointOverride, BreakpointId } from '../../state/modules/breakpoints'\nimport { RichTextTypography } from '../types'\n\ntype SetActiveTypographyStyleOptions = {\n at?: Range\n}\n\nexport function setActiveTypographyStyle(\n editor: Editor,\n breakpoints: Breakpoints,\n deviceId: string,\n prop: string,\n value?: unknown,\n options?: SetActiveTypographyStyleOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n const deviceOverrides = node?.typography?.style ?? []\n const deviceStyle = findBreakpointOverride(\n breakpoints,\n deviceOverrides,\n deviceId as BreakpointId,\n v => v,\n ) || {\n value: {},\n }\n const nextDeviceStyle = {\n deviceId,\n value: { ...deviceStyle.value, [prop]: value },\n }\n\n const nextTypography: RichTextTypography = {\n ...node.typography,\n style: [...deviceOverrides.filter(v => v.deviceId !== deviceId), nextDeviceStyle],\n }\n\n Transforms.setNodes(\n editor,\n {\n typography: nextTypography,\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Text, Transforms } from 'slate'\nimport { clearActiveTypographyStyle } from './clearActiveTypographyStyle'\nimport { clearDeviceActiveTypography } from './clearDeviceActiveTypography'\nimport { detachActiveTypography } from './detachActiveTypography'\nimport { setActiveTypographyId } from './setActiveTypographyId'\nimport { setActiveTypographyStyle } from './setActiveTypographyStyle'\n\nexport const TypographyActions = {\n setActiveTypographyId,\n setActiveTypographyStyle,\n clearActiveTypographyStyle,\n clearDeviceActiveTypography,\n detachActiveTypography,\n}\n\nexport function withTypography(editor: Editor) {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n if (\n Text.isText(normalizationNode) &&\n normalizationNode?.typography?.id == null &&\n normalizationNode?.typography?.style.length === 0\n ) {\n Transforms.unsetNodes(editor, 'typography', { at: normalizationPath })\n return\n }\n\n if (Text.isText(normalizationNode) && normalizationNode?.slice != null) {\n Transforms.unsetNodes(editor, 'slice', { at: normalizationPath })\n return\n }\n\n normalizeNode(entry)\n }\n\n return editor\n}\n","import { Editor, Range, Element, Text, Path } from 'slate'\n\n/**\n * The `Editor.unhangeRange` within Slate early exits if `Path.hasPrevious(end.path)` ie if this isn't a root block.\n * Unfortunately when you `setNode(..., {split:true})` or `wrapNodes()` you also have a hanging selection, but not in the root position.\n *\n * This c/p removes the `Path.hasPrevious(end.path)` from the early exit but it the same otherwise\n */\nfunction unhangRange(editor: Editor, range: Range): Range {\n // eslint-disable-next-line prefer-const\n let [start, end] = Range.edges(range)\n // PERF: exit early if we can guarantee that the range isn't hanging.\n if (start.offset !== 0 || end.offset !== 0 || Range.isCollapsed(range)) {\n return range\n }\n\n const endBlock = Editor.above(editor, {\n at: end,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n })\n const blockPath = endBlock ? endBlock[1] : []\n const first = Editor.start(editor, start)\n const before = { anchor: first, focus: end }\n let skip = true\n\n for (const [node, path] of Editor.nodes(editor, {\n at: before,\n match: Text.isText,\n reverse: true,\n })) {\n if (skip) {\n skip = false\n continue\n }\n\n if (node.text !== '' || Path.isBefore(path, blockPath)) {\n end = { path, offset: node.text.length }\n break\n }\n }\n\n return { anchor: start, focus: end }\n}\n\nexport default unhangRange\n","import { Editor, NodeEntry, Range, Text } from 'slate'\nimport { EditableBlockKey } from './BlockPlugin/types'\nimport { ElementUtils } from './utils/element'\n\nimport unhangRange from './utils/unhangRange'\nimport shallowEqual from '../utils/shallowEqual'\nimport { isNonNullable } from '../utils/isNonNullable'\n\nimport { Breakpoints, BreakpointId, findBreakpointOverride } from '../state/modules/breakpoints'\nimport deepEqual from '../utils/deepEqual'\nimport keys from '../utils/keys'\nimport {\n RootBlock,\n Inline,\n RootBlockType,\n ResponsiveBlockTextAlignment,\n BlockTextAlignment,\n RichTextTypography,\n} from './types'\n\nexport function getSelection(editor: Editor): Range {\n if (editor.selection) return unhangRange(editor, editor.selection)\n return {\n anchor: Editor.start(editor, []),\n focus: Editor.end(editor, []),\n }\n}\n\nexport function getBlocksInSelection(editor: Editor): NodeEntry<RootBlock>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => ElementUtils.isRootBlock(node),\n }),\n ).filter((entry): entry is NodeEntry<RootBlock> => ElementUtils.isRootBlock(entry[0]))\n}\n\nexport function getInlinesInSelection(editor: Editor): NodeEntry<Inline>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => ElementUtils.isInline(node),\n }),\n ).filter((entry): entry is NodeEntry<Inline> => ElementUtils.isInline(entry[0]))\n}\n\nexport function getActiveBlockType(editor: Editor): RootBlockType | null {\n const rootBlocks = getBlocksInSelection(editor).map(([node]) => node.type)\n\n return rootBlocks.reduce<RootBlockType | null>(\n (a, b) => (a === b ? b : null),\n rootBlocks.at(0) ?? null,\n )\n}\n\nexport function getActiveBlockValue(editor: Editor, key: EditableBlockKey) {\n const blocks = getBlocksInSelection(editor)\n\n const active = blocks.map(\n ([block]) => block[key] ?? null,\n ) as (ResponsiveBlockTextAlignment | null)[]\n\n return active.length === 0 ? null : active.reduce((a, b) => (shallowEqual(a, b) ? b : null))\n}\n\nexport function getActiveBlockDeviceOverrideValue(\n editor: Editor,\n key: EditableBlockKey,\n breakpoints: Breakpoints,\n deviceId: BreakpointId,\n) {\n const active: (BlockTextAlignment | null)[] = []\n const blocks = getBlocksInSelection(editor)\n\n blocks.forEach(([block]) => {\n const deviceOverride =\n findBreakpointOverride<BlockTextAlignment>(breakpoints, block[key], deviceId) || null\n active.push(deviceOverride?.value ?? null)\n })\n\n return active.length === 0 ? null : active.reduce((a, b) => (shallowEqual(a, b) ? b : null))\n}\n\n// Typography\n\nconst concat = (a: unknown[], b: unknown[]) => a.concat(b)\n\n// TODO: This is more cruft from trying to remove null from the typography type. This optimization is not worth it.\n/**\n * This is a c/p of the intersection of the utils from the root utils folder.\n * The only change is defaulting to undefined instead of to null.\n */\nexport default function intersection<A extends Record<string, unknown>, B extends A>(\n a: A,\n b: B,\n isEqual: (a: unknown, b: unknown) => boolean = deepEqual,\n): { [K in keyof A]: A[K] | undefined } {\n const allKeys = [...new Set([...keys(a), ...keys(b)])] as (keyof A)[]\n\n return allKeys.reduce((acc, k) => {\n if (isEqual(a[k], b[k])) acc[k] = a[k]\n else acc[k] = undefined\n\n return acc\n }, {} as { [K in keyof A]: A[K] | undefined })\n}\n\nconst fuseTypographyMarks = (\n values: Array<RichTextTypography | null | undefined>,\n breakpoints: Breakpoints,\n): RichTextTypography => {\n const devices = [\n ...new Set(\n values\n .filter(isNonNullable)\n .map(({ style }) => style.map(({ deviceId }) => deviceId))\n .reduce(concat, []),\n ),\n ] as BreakpointId[]\n\n return {\n id: values.map(v => v && v.id).reduce((a, b) => (a === b ? a : undefined)) ?? undefined,\n style: devices.map(deviceId =>\n values\n .map(\n v =>\n (v && findBreakpointOverride(breakpoints, v.style, deviceId)) || {\n deviceId,\n value: {},\n },\n )\n .reduce((acc, { value }) => {\n const a = intersection(acc.value, value)\n return {\n deviceId,\n value: a,\n }\n }),\n ),\n }\n}\n\nexport function getActiveTypographyMark(\n editor: Editor,\n breakpoints: Breakpoints,\n): RichTextTypography {\n const active: RichTextTypography[] = []\n\n const textNodes = Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => Text.isText(node),\n })\n\n for (const [node] of textNodes) {\n if (Text.isText(node) && 'typography' in node && node.typography != undefined) {\n active.push(node.typography)\n }\n }\n return active.length === 0 ? { style: [] } : fuseTypographyMarks(active, breakpoints)\n}\n","import { Editor, Transforms, Location } from 'slate'\nimport { getBlocksInSelection } from '../selectors'\nimport { ElementUtils } from '../utils/element'\nimport { EditableBlockKey, EditableBlockValue } from './types'\nimport { Breakpoints, BreakpointId, findBreakpointOverride } from '../../state/modules/breakpoints'\n\ntype SetBlockKeyForDeviceOptions = {\n at?: Location\n}\n\nexport function setBlockKeyForDevice(\n editor: Editor,\n breakpoints: Breakpoints,\n deviceId: BreakpointId,\n key: EditableBlockKey,\n value: EditableBlockValue[number]['value'],\n options?: SetBlockKeyForDeviceOptions,\n) {\n const at = options?.at ?? editor.selection\n if (!at) return\n\n const rootElements = getBlocksInSelection(editor)\n\n for (const [node, path] of rootElements) {\n if (ElementUtils.isBlock(node)) {\n const deviceValues = node[key] ?? []\n const currentDeviceValue = findBreakpointOverride(breakpoints, deviceValues, deviceId, v => v)\n const nextDeviceValue = {\n ...currentDeviceValue,\n deviceId,\n value,\n }\n Transforms.setNodes(\n editor,\n {\n [key]: [...deviceValues.filter(v => v.deviceId !== deviceId), nextDeviceValue],\n },\n { at: path },\n )\n }\n }\n}\n","import { Editor, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { EditableBlockKey } from './types'\nimport { getBlocksInSelection } from '../selectors'\nimport { BreakpointId } from '../../state/modules/breakpoints'\n\nexport function clearBlockKeyForDevice(\n editor: Editor,\n deviceId: BreakpointId,\n key: EditableBlockKey,\n) {\n const rootElements = getBlocksInSelection(editor)\n\n for (const [node, path] of rootElements) {\n if (ElementUtils.isBlock(node)) {\n const deviceOverrides = node[key] ?? []\n Transforms.setNodes(\n editor,\n {\n [key]: deviceOverrides.filter(v => v.deviceId !== deviceId),\n },\n { at: path },\n )\n }\n }\n}\n","import { Editor, Transforms } from 'slate'\nimport { getSelection } from '../selectors'\nimport { Inline } from '../types'\n\nexport function wrapInline(editor: Editor, inline: Inline) {\n Transforms.wrapNodes(editor, inline, {\n at: getSelection(editor),\n split: true,\n })\n}\n","import { Editor, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { getSelection } from '../selectors'\nimport { InlineType } from '../types'\n\nexport function unwrapInline(editor: Editor, type: InlineType) {\n Transforms.unwrapNodes(editor, {\n match: node => ElementUtils.isInline(node) && node.type === type,\n at: getSelection(editor),\n })\n}\n","import { Editor, Transforms } from 'slate'\nimport { setBlockKeyForDevice } from './setBlockKeyForDevice'\nimport { clearBlockKeyForDevice } from './clearBlockKeyForDevice'\nimport { wrapInline } from './wrapInline'\nimport { unwrapInline } from './unwrapInline'\nimport { getSelection } from '../selectors'\nimport { ElementUtils } from '../utils/element'\nimport { Select, createRichTextV2Plugin } from '../../controls'\nimport { getActiveBlockType } from '../selectors'\nimport { BlockType, RootBlockType } from '../types'\n\nexport const BlockActions = {\n setBlockKeyForDevice,\n clearBlockKeyForDevice,\n wrapInline,\n unwrapInline,\n}\n\nexport function withBlock(editor: Editor) {\n const { normalizeNode } = editor\n\n editor.isInline = entry => {\n return ElementUtils.isInline(entry)\n }\n\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n // Normalization textAlign with empty array of values\n if (ElementUtils.isBlock(normalizationNode) && normalizationNode?.textAlign?.length == 0) {\n Transforms.unsetNodes(editor, 'textAlign', { at: normalizationPath })\n return\n }\n\n normalizeNode(entry)\n }\n\n return editor\n}\n\nexport function BlockPlugin() {\n return createRichTextV2Plugin({\n withPlugin: withBlock,\n control: {\n definition: Select({\n label: 'Block',\n options: [\n {\n value: BlockType.Heading1,\n label: 'Heading1',\n },\n {\n value: BlockType.Heading2,\n label: 'Heading2',\n },\n {\n value: BlockType.Heading3,\n label: 'Heading3',\n },\n {\n value: BlockType.Heading4,\n label: 'Heading4',\n },\n {\n value: BlockType.Heading5,\n label: 'Heading5',\n },\n {\n value: BlockType.Heading6,\n label: 'Heading6',\n },\n {\n value: BlockType.Paragraph,\n label: 'Paragraph',\n },\n ],\n defaultValue: BlockType.Paragraph,\n }),\n onChange: (editor, value) => {\n Transforms.setNodes(\n editor,\n {\n type: value ?? BlockType.Default,\n },\n { at: getSelection(editor) },\n )\n },\n getValue: editor => {\n const activeBlock = getActiveBlockType(editor)\n\n // todo: these types are unhandled in for this mid milestone checkin\n if (\n activeBlock === RootBlockType.BlockQuote ||\n activeBlock === RootBlockType.OrderedList ||\n activeBlock === RootBlockType.UnorderedList ||\n activeBlock === RootBlockType.Text ||\n activeBlock === RootBlockType.Default\n )\n return undefined\n\n return activeBlock\n },\n },\n })\n}\n"],"names":["Editor","ElementUtils","Path","Range","Point","Node","Transforms","BlockType","Element","isHotkey","Text","index","findBreakpointOverride","createRichTextV2Plugin","Select","RootBlockType"],"mappings":"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"}
@@ -1,44 +1,43 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- var Text = require("./Text.cjs.js");
4
- require("next/dynamic");
5
- require("react");
6
- require("./index.cjs.js");
7
- require("use-sync-external-store/shim/with-selector");
8
- require("./constants.cjs.js");
9
- require("redux");
10
- require("redux-thunk");
11
- require("./actions.cjs.js");
12
- require("./descriptors.cjs.js");
13
- require("slate");
14
- require("slate-react");
15
- require("./state/breakpoints.cjs.js");
16
- require("./introspection.cjs.js");
17
- require("@emotion/css");
18
- require("@emotion/serialize");
19
- require("@emotion/utils");
20
- require("react/jsx-runtime");
21
- require("./text-input.cjs.js");
22
- require("./combobox.cjs.js");
23
- require("use-sync-external-store/shim");
24
- require("./types.cjs.js");
25
- require("./box-models.cjs.js");
26
- require("css-box-model");
27
- require("color");
28
- require("scroll-into-view-if-needed");
29
- require("is-hotkey");
30
- require("slate-history");
31
- require("react-dom");
32
- require("html-react-parser");
33
- require("next/head");
34
- require("@emotion/server/create-instance");
35
- require("next/document");
36
- require("cors");
37
- require("path-to-regexp");
38
- require("cookie");
39
- require("http-proxy");
40
- require("set-cookie-parser");
41
- require("uuid");
42
- require("corporate-ipsum");
43
- exports["default"] = Text["default"];
2
+ var slate = require("slate");
3
+ var isHotkey = require("is-hotkey");
4
+ var reactPage = require("./react-page.cjs.js");
5
+ var index = require("./index.cjs7.js");
6
+ function _interopDefaultLegacy(e) {
7
+ return e && typeof e === "object" && "default" in e ? e : { "default": e };
8
+ }
9
+ var isHotkey__default = /* @__PURE__ */ _interopDefaultLegacy(isHotkey);
10
+ const BLOCK_ONE_PATH = [0];
11
+ const BLOCK_TWO_PATH = [1];
12
+ function withInlineMode(editor) {
13
+ const { normalizeNode } = editor;
14
+ editor.normalizeNode = (entry) => {
15
+ const [normalizationNode, normalizationPath] = entry;
16
+ if (slate.Path.equals(BLOCK_TWO_PATH, normalizationPath)) {
17
+ slate.Transforms.mergeNodes(editor, { at: BLOCK_TWO_PATH });
18
+ return;
19
+ }
20
+ if (slate.Path.isAncestor(BLOCK_ONE_PATH, normalizationPath) && index.ElementUtils.isBlock(normalizationNode)) {
21
+ slate.Transforms.unwrapNodes(editor, {
22
+ at: normalizationPath
23
+ });
24
+ return;
25
+ }
26
+ if (slate.Path.equals(BLOCK_ONE_PATH, normalizationPath)) {
27
+ slate.Transforms.setNodes(editor, { type: reactPage.BlockType.Text }, { at: normalizationPath });
28
+ return;
29
+ }
30
+ normalizeNode(entry);
31
+ };
32
+ return editor;
33
+ }
34
+ const InlineModePlugin = reactPage.createRichTextV2Plugin({
35
+ onKeyDown: (e) => {
36
+ if (isHotkey__default["default"]("enter", e))
37
+ e.preventDefault();
38
+ },
39
+ withPlugin: withInlineMode
40
+ });
41
+ exports.InlineModePlugin = InlineModePlugin;
42
+ exports.withInlineMode = withInlineMode;
44
43
  //# sourceMappingURL=index.cjs6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs6.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs6.js","sources":["../src/slate/InlineModePlugin/index.ts"],"sourcesContent":["import { Editor, Path, Transforms } from 'slate'\nimport { KeyboardEvent } from 'react'\nimport isHotkey from 'is-hotkey'\nimport { createRichTextV2Plugin } from '../../controls/rich-text-v2'\nimport { ElementUtils } from '../utils/element'\nimport { BlockType } from '../types'\n\nconst BLOCK_ONE_PATH = [0]\nconst BLOCK_TWO_PATH = [1]\n\nexport function withInlineMode(editor: Editor): Editor {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n\n /**\n * Merge root nodes past the first one\n */\n if (Path.equals(BLOCK_TWO_PATH, normalizationPath)) {\n Transforms.mergeNodes(editor, { at: BLOCK_TWO_PATH })\n return\n }\n /**\n * Unwrap non text nodes of first root node\n */\n if (\n Path.isAncestor(BLOCK_ONE_PATH, normalizationPath) &&\n ElementUtils.isBlock(normalizationNode)\n ) {\n Transforms.unwrapNodes(editor, {\n at: normalizationPath,\n })\n return\n }\n /**\n * Update type of root nodes to be `text-block`\n */\n if (Path.equals(BLOCK_ONE_PATH, normalizationPath)) {\n Transforms.setNodes(editor, { type: BlockType.Text }, { at: normalizationPath })\n return\n }\n\n normalizeNode(entry)\n }\n\n return editor\n}\n\nexport const InlineModePlugin = createRichTextV2Plugin({\n onKeyDown: (e: KeyboardEvent) => {\n if (isHotkey('enter', e)) e.preventDefault()\n },\n withPlugin: withInlineMode,\n})\n"],"names":["Path","Transforms","ElementUtils","BlockType","createRichTextV2Plugin","isHotkey"],"mappings":";;;;;;;;;AAOA,MAAM,iBAAiB,CAAC,CAAC;AACzB,MAAM,iBAAiB,CAAC,CAAC;AAElB,wBAAwB,QAAwB;AACrD,QAAM,EAAE,kBAAkB;AAC1B,SAAO,gBAAgB,CAAS,UAAA;AACxB,UAAA,CAAC,mBAAmB,qBAAqB;AAK/C,QAAIA,WAAK,OAAO,gBAAgB,iBAAiB,GAAG;AAClDC,YAAA,WAAW,WAAW,QAAQ,EAAE,IAAI,eAAgB,CAAA;AACpD;AAAA,IACF;AAKE,QAAAD,MAAA,KAAK,WAAW,gBAAgB,iBAAiB,KACjDE,mBAAa,QAAQ,iBAAiB,GACtC;AACAD,YAAA,WAAW,YAAY,QAAQ;AAAA,QAC7B,IAAI;AAAA,MAAA,CACL;AACD;AAAA,IACF;AAIA,QAAID,WAAK,OAAO,gBAAgB,iBAAiB,GAAG;AACvCC,YAAAA,WAAA,SAAS,QAAQ,EAAE,MAAME,UAAAA,UAAU,QAAQ,EAAE,IAAI,kBAAA,CAAmB;AAC/E;AAAA,IACF;AAEA,kBAAc,KAAK;AAAA,EAAA;AAGd,SAAA;AACT;AAEO,MAAM,mBAAmBC,UAAAA,uBAAuB;AAAA,EACrD,WAAW,CAAC,MAAqB;AAC3B,QAAAC,kBAAA,WAAS,SAAS,CAAC;AAAG,QAAE,eAAe;AAAA,EAC7C;AAAA,EACA,YAAY;AACd,CAAC;;;"}