@frontify/guideline-blocks-settings 0.33.4 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/dist/components/Attachments/AttachmentItem.es.js +174 -0
  2. package/dist/components/Attachments/AttachmentItem.es.js.map +1 -0
  3. package/dist/components/Attachments/Attachments.es.js +160 -0
  4. package/dist/components/Attachments/Attachments.es.js.map +1 -0
  5. package/dist/components/Attachments/AttachmentsButtonTrigger.es.js +29 -0
  6. package/dist/components/Attachments/AttachmentsButtonTrigger.es.js.map +1 -0
  7. package/dist/components/BlockInjectButton/BlockInjectButton.es.js +150 -0
  8. package/dist/components/BlockInjectButton/BlockInjectButton.es.js.map +1 -0
  9. package/dist/components/BlockItemWrapper/BlockItemWrapper.es.js +71 -0
  10. package/dist/components/BlockItemWrapper/BlockItemWrapper.es.js.map +1 -0
  11. package/dist/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButton.es.js +33 -0
  12. package/dist/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButton.es.js.map +1 -0
  13. package/dist/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButtonTrigger.es.js +26 -0
  14. package/dist/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButtonTrigger.es.js.map +1 -0
  15. package/dist/components/BlockItemWrapper/Toolbar/BaseToolbarButton.es.js +28 -0
  16. package/dist/components/BlockItemWrapper/Toolbar/BaseToolbarButton.es.js.map +1 -0
  17. package/dist/components/BlockItemWrapper/Toolbar/DragHandleToolbarButton/DragHandleToolbarButton.es.js +35 -0
  18. package/dist/components/BlockItemWrapper/Toolbar/DragHandleToolbarButton/DragHandleToolbarButton.es.js.map +1 -0
  19. package/dist/components/BlockItemWrapper/Toolbar/FlyoutToolbarButton/FlyoutToolbarButton.es.js +44 -0
  20. package/dist/components/BlockItemWrapper/Toolbar/FlyoutToolbarButton/FlyoutToolbarButton.es.js.map +1 -0
  21. package/dist/components/BlockItemWrapper/Toolbar/MenuToolbarButton/MenuToolbarButton.es.js +25 -0
  22. package/dist/components/BlockItemWrapper/Toolbar/MenuToolbarButton/MenuToolbarButton.es.js.map +1 -0
  23. package/dist/components/BlockItemWrapper/Toolbar/MenuToolbarButton/ToolbarFlyoutMenu.es.js +29 -0
  24. package/dist/components/BlockItemWrapper/Toolbar/MenuToolbarButton/ToolbarFlyoutMenu.es.js.map +1 -0
  25. package/dist/components/BlockItemWrapper/Toolbar/Toolbar.es.js +22 -0
  26. package/dist/components/BlockItemWrapper/Toolbar/Toolbar.es.js.map +1 -0
  27. package/dist/components/BlockItemWrapper/Toolbar/ToolbarButton/ToolbarButton.es.js +12 -0
  28. package/dist/components/BlockItemWrapper/Toolbar/ToolbarButton/ToolbarButton.es.js.map +1 -0
  29. package/dist/components/BlockItemWrapper/Toolbar/ToolbarButtonTooltip.es.js +20 -0
  30. package/dist/components/BlockItemWrapper/Toolbar/ToolbarButtonTooltip.es.js.map +1 -0
  31. package/dist/components/BlockItemWrapper/Toolbar/ToolbarSegment.es.js +6 -0
  32. package/dist/components/BlockItemWrapper/Toolbar/ToolbarSegment.es.js.map +1 -0
  33. package/dist/components/BlockItemWrapper/Toolbar/context/DragPreviewContext.es.js +11 -0
  34. package/dist/components/BlockItemWrapper/Toolbar/context/DragPreviewContext.es.js.map +1 -0
  35. package/dist/components/BlockItemWrapper/Toolbar/context/MultiFlyoutContext.es.js +18 -0
  36. package/dist/components/BlockItemWrapper/Toolbar/context/MultiFlyoutContext.es.js.map +1 -0
  37. package/dist/components/BlockItemWrapper/Toolbar/helpers.es.js +26 -0
  38. package/dist/components/BlockItemWrapper/Toolbar/helpers.es.js.map +1 -0
  39. package/dist/components/BlockItemWrapper/Toolbar/hooks/useMultiFlyoutState.es.js +18 -0
  40. package/dist/components/BlockItemWrapper/Toolbar/hooks/useMultiFlyoutState.es.js.map +1 -0
  41. package/dist/components/BlockItemWrapper/constants.es.js +6 -0
  42. package/dist/components/BlockItemWrapper/constants.es.js.map +1 -0
  43. package/dist/components/DownloadButton/DownloadButton.es.js +39 -0
  44. package/dist/components/DownloadButton/DownloadButton.es.js.map +1 -0
  45. package/dist/components/Link/LinkInput.es.js +63 -0
  46. package/dist/components/Link/LinkInput.es.js.map +1 -0
  47. package/dist/components/Link/LinkSelector/DocumentLink.es.js +68 -0
  48. package/dist/components/Link/LinkSelector/DocumentLink.es.js.map +1 -0
  49. package/dist/components/Link/LinkSelector/DocumentLinks.es.js +60 -0
  50. package/dist/components/Link/LinkSelector/DocumentLinks.es.js.map +1 -0
  51. package/dist/components/Link/LinkSelector/LinkSelector.es.js +86 -0
  52. package/dist/components/Link/LinkSelector/LinkSelector.es.js.map +1 -0
  53. package/dist/components/Link/LinkSelector/LoadingIndicator.es.js +7 -0
  54. package/dist/components/Link/LinkSelector/LoadingIndicator.es.js.map +1 -0
  55. package/dist/components/Link/LinkSelector/PageLink.es.js +70 -0
  56. package/dist/components/Link/LinkSelector/PageLink.es.js.map +1 -0
  57. package/dist/components/Link/LinkSelector/PageLinks.es.js +38 -0
  58. package/dist/components/Link/LinkSelector/PageLinks.es.js.map +1 -0
  59. package/dist/components/Link/LinkSelector/SectionLink.es.js +25 -0
  60. package/dist/components/Link/LinkSelector/SectionLink.es.js.map +1 -0
  61. package/dist/components/Link/utils/getUrl.es.js +18 -0
  62. package/dist/components/Link/utils/getUrl.es.js.map +1 -0
  63. package/dist/components/Link/utils/relativeUrlRegex.es.js +5 -0
  64. package/dist/components/Link/utils/relativeUrlRegex.es.js.map +1 -0
  65. package/dist/components/Link/utils/url.es.js +17 -0
  66. package/dist/components/Link/utils/url.es.js.map +1 -0
  67. package/dist/components/RichTextEditor/RichTextEditor.es.js +42 -0
  68. package/dist/components/RichTextEditor/RichTextEditor.es.js.map +1 -0
  69. package/dist/components/RichTextEditor/SerializedText.es.js +20 -0
  70. package/dist/components/RichTextEditor/SerializedText.es.js.map +1 -0
  71. package/dist/components/RichTextEditor/constants.es.js +5 -0
  72. package/dist/components/RichTextEditor/constants.es.js.map +1 -0
  73. package/dist/components/RichTextEditor/pluginPresets/defaultPluginsWithLinkChooser.es.js +35 -0
  74. package/dist/components/RichTextEditor/pluginPresets/defaultPluginsWithLinkChooser.es.js.map +1 -0
  75. package/dist/components/RichTextEditor/plugins/ButtonPlugin/ButtonMarkupElement/ButtonMarkupElementNode.es.js +41 -0
  76. package/dist/components/RichTextEditor/plugins/ButtonPlugin/ButtonMarkupElement/ButtonMarkupElementNode.es.js.map +1 -0
  77. package/dist/components/RichTextEditor/plugins/ButtonPlugin/ButtonMarkupElement/index.es.js +12 -0
  78. package/dist/components/RichTextEditor/plugins/ButtonPlugin/ButtonMarkupElement/index.es.js.map +1 -0
  79. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/ButtonButton.es.js +24 -0
  80. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/ButtonButton.es.js.map +1 -0
  81. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/ButtonToolbarButton.es.js +26 -0
  82. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/ButtonToolbarButton.es.js.map +1 -0
  83. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/CustomFloatingButton.es.js +28 -0
  84. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/CustomFloatingButton.es.js.map +1 -0
  85. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/EditButtonModal/EditModal.es.js +48 -0
  86. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/EditButtonModal/EditModal.es.js.map +1 -0
  87. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/InsertButtonModal.es.js +69 -0
  88. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/InsertButtonModal.es.js.map +1 -0
  89. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.es.js +104 -0
  90. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.es.js.map +1 -0
  91. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/floatingButtonStore.es.js +32 -0
  92. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/floatingButtonStore.es.js.map +1 -0
  93. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonEdit.es.js +57 -0
  94. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonEdit.es.js.map +1 -0
  95. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonEnter.es.js +19 -0
  96. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonEnter.es.js.map +1 -0
  97. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonEscape.es.js +26 -0
  98. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonEscape.es.js.map +1 -0
  99. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonInsert.es.js +41 -0
  100. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonInsert.es.js.map +1 -0
  101. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useVirtualFloatingButton.es.js +18 -0
  102. package/dist/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useVirtualFloatingButton.es.js.map +1 -0
  103. package/dist/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.es.js +67 -0
  104. package/dist/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.es.js.map +1 -0
  105. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/insertButton.es.js +13 -0
  106. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/insertButton.es.js.map +1 -0
  107. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/submitFloatingButton.es.js +25 -0
  108. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/submitFloatingButton.es.js.map +1 -0
  109. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/unwrapButton.es.js +35 -0
  110. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/unwrapButton.es.js.map +1 -0
  111. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/upsertButton.es.js +86 -0
  112. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/upsertButton.es.js.map +1 -0
  113. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/upsertButtonText.es.js +24 -0
  114. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/upsertButtonText.es.js.map +1 -0
  115. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/wrapButton.es.js +19 -0
  116. package/dist/components/RichTextEditor/plugins/ButtonPlugin/transforms/wrapButton.es.js.map +1 -0
  117. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/createButtonNode.es.js +13 -0
  118. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/createButtonNode.es.js.map +1 -0
  119. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/getButtonStyle.es.js +11 -0
  120. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/getButtonStyle.es.js.map +1 -0
  121. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/getUrl.es.js +10 -0
  122. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/getUrl.es.js.map +1 -0
  123. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/styles.es.js +81 -0
  124. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/styles.es.js.map +1 -0
  125. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/triggerFloatingButton.es.js +18 -0
  126. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/triggerFloatingButton.es.js.map +1 -0
  127. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/triggerFloatingButtonEdit.es.js +17 -0
  128. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/triggerFloatingButtonEdit.es.js.map +1 -0
  129. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/triggerFloatingButtonInsert.es.js +14 -0
  130. package/dist/components/RichTextEditor/plugins/ButtonPlugin/utils/triggerFloatingButtonInsert.es.js.map +1 -0
  131. package/dist/components/RichTextEditor/plugins/ButtonPlugin/withButton.es.js +52 -0
  132. package/dist/components/RichTextEditor/plugins/ButtonPlugin/withButton.es.js.map +1 -0
  133. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/CustomFloatingLink.es.js +32 -0
  134. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/CustomFloatingLink.es.js.map +1 -0
  135. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/EditModal.es.js +35 -0
  136. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/EditModal.es.js.map +1 -0
  137. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertLinkModal.es.js +8 -0
  138. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertLinkModal.es.js.map +1 -0
  139. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.es.js +66 -0
  140. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.es.js.map +1 -0
  141. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.es.js +79 -0
  142. package/dist/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.es.js.map +1 -0
  143. package/dist/components/RichTextEditor/plugins/LinkPlugin/LinkButton.es.js +22 -0
  144. package/dist/components/RichTextEditor/plugins/LinkPlugin/LinkButton.es.js.map +1 -0
  145. package/dist/components/RichTextEditor/plugins/LinkPlugin/LinkMarkupElement/LinkMarkupElementNode.es.js +12 -0
  146. package/dist/components/RichTextEditor/plugins/LinkPlugin/LinkMarkupElement/LinkMarkupElementNode.es.js.map +1 -0
  147. package/dist/components/RichTextEditor/plugins/LinkPlugin/LinkMarkupElement/index.es.js +11 -0
  148. package/dist/components/RichTextEditor/plugins/LinkPlugin/LinkMarkupElement/index.es.js.map +1 -0
  149. package/dist/components/RichTextEditor/plugins/LinkPlugin/LinkToolbarButton.es.js +25 -0
  150. package/dist/components/RichTextEditor/plugins/LinkPlugin/LinkToolbarButton.es.js.map +1 -0
  151. package/dist/components/RichTextEditor/plugins/LinkPlugin/id.es.js +5 -0
  152. package/dist/components/RichTextEditor/plugins/LinkPlugin/id.es.js.map +1 -0
  153. package/dist/components/RichTextEditor/plugins/LinkPlugin/index.es.js +45 -0
  154. package/dist/components/RichTextEditor/plugins/LinkPlugin/index.es.js.map +1 -0
  155. package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/getUrl.es.js +13 -0
  156. package/dist/components/RichTextEditor/plugins/LinkPlugin/utils/getUrl.es.js.map +1 -0
  157. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom1Plugin.es.js +50 -0
  158. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom1Plugin.es.js.map +1 -0
  159. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom2Plugin.es.js +50 -0
  160. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom2Plugin.es.js.map +1 -0
  161. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom3Plugin.es.js +50 -0
  162. package/dist/components/RichTextEditor/plugins/TextStylePlugins/custom3Plugin.es.js.map +1 -0
  163. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading1Plugin.es.js +51 -0
  164. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading1Plugin.es.js.map +1 -0
  165. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading2Plugin.es.js +51 -0
  166. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading2Plugin.es.js.map +1 -0
  167. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading3Plugin.es.js +51 -0
  168. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading3Plugin.es.js.map +1 -0
  169. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading4Plugin.es.js +51 -0
  170. package/dist/components/RichTextEditor/plugins/TextStylePlugins/heading4Plugin.es.js.map +1 -0
  171. package/dist/components/RichTextEditor/plugins/TextStylePlugins/helpers.es.js +40 -0
  172. package/dist/components/RichTextEditor/plugins/TextStylePlugins/helpers.es.js.map +1 -0
  173. package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageCaptionPlugin.es.js +51 -0
  174. package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageCaptionPlugin.es.js.map +1 -0
  175. package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageTitlePlugin.es.js +51 -0
  176. package/dist/components/RichTextEditor/plugins/TextStylePlugins/imageTitlePlugin.es.js.map +1 -0
  177. package/dist/components/RichTextEditor/plugins/TextStylePlugins/paragraphPlugin.es.js +45 -0
  178. package/dist/components/RichTextEditor/plugins/TextStylePlugins/paragraphPlugin.es.js.map +1 -0
  179. package/dist/components/RichTextEditor/plugins/TextStylePlugins/quotePlugin.es.js +53 -0
  180. package/dist/components/RichTextEditor/plugins/TextStylePlugins/quotePlugin.es.js.map +1 -0
  181. package/dist/components/RichTextEditor/plugins/styles.es.js +167 -0
  182. package/dist/components/RichTextEditor/plugins/styles.es.js.map +1 -0
  183. package/dist/helpers/addHttps.es.js +14 -0
  184. package/dist/helpers/addHttps.es.js.map +1 -0
  185. package/dist/helpers/convertToRichTextValue.es.js +6 -0
  186. package/dist/helpers/convertToRichTextValue.es.js.map +1 -0
  187. package/dist/helpers/customCoordinatesGetterFactory.es.js +32 -0
  188. package/dist/helpers/customCoordinatesGetterFactory.es.js.map +1 -0
  189. package/dist/helpers/hasRichTextValue.es.js +15 -0
  190. package/dist/helpers/hasRichTextValue.es.js.map +1 -0
  191. package/dist/helpers/isDownloadable.es.js +6 -0
  192. package/dist/helpers/isDownloadable.es.js.map +1 -0
  193. package/dist/helpers/mapColorPalettes.es.js +28 -0
  194. package/dist/helpers/mapColorPalettes.es.js.map +1 -0
  195. package/dist/hooks/useAttachments.es.js +53 -0
  196. package/dist/hooks/useAttachments.es.js.map +1 -0
  197. package/dist/hooks/useDndSensors.es.js +20 -0
  198. package/dist/hooks/useDndSensors.es.js.map +1 -0
  199. package/dist/index.cjs.js +4 -0
  200. package/dist/index.cjs.js.map +1 -0
  201. package/dist/index.d.ts +1190 -0
  202. package/dist/index.es.js +217 -0
  203. package/dist/index.es.js.map +1 -0
  204. package/dist/index.umd.js +4 -0
  205. package/dist/index.umd.js.map +1 -0
  206. package/dist/settings/background.es.js +22 -0
  207. package/dist/settings/background.es.js.map +1 -0
  208. package/dist/settings/border.es.js +61 -0
  209. package/dist/settings/border.es.js.map +1 -0
  210. package/dist/settings/borderRadius.es.js +56 -0
  211. package/dist/settings/borderRadius.es.js.map +1 -0
  212. package/dist/settings/borderRadiusExtended.es.js +64 -0
  213. package/dist/settings/borderRadiusExtended.es.js.map +1 -0
  214. package/dist/settings/defaultValues.es.js +19 -0
  215. package/dist/settings/defaultValues.es.js.map +1 -0
  216. package/dist/settings/gutter.es.js +56 -0
  217. package/dist/settings/gutter.es.js.map +1 -0
  218. package/dist/settings/margin.es.js +53 -0
  219. package/dist/settings/margin.es.js.map +1 -0
  220. package/dist/settings/marginExtended.es.js +65 -0
  221. package/dist/settings/marginExtended.es.js.map +1 -0
  222. package/dist/settings/padding.es.js +53 -0
  223. package/dist/settings/padding.es.js.map +1 -0
  224. package/dist/settings/paddingExtended.es.js +65 -0
  225. package/dist/settings/paddingExtended.es.js.map +1 -0
  226. package/dist/settings/securityDownloadable.es.js +19 -0
  227. package/dist/settings/securityDownloadable.es.js.map +1 -0
  228. package/dist/settings/securityGlobalControl.es.js +33 -0
  229. package/dist/settings/securityGlobalControl.es.js.map +1 -0
  230. package/dist/settings/types.es.js +48 -0
  231. package/dist/settings/types.es.js.map +1 -0
  232. package/dist/styles.css +1 -0
  233. package/dist/styles.css.es.js +2 -0
  234. package/dist/styles.css.es.js.map +1 -0
  235. package/dist/utilities/color/getReadableColor.es.js +14 -0
  236. package/dist/utilities/color/getReadableColor.es.js.map +1 -0
  237. package/dist/utilities/color/isDark.es.js +10 -0
  238. package/dist/utilities/color/isDark.es.js.map +1 -0
  239. package/dist/utilities/color/setAlpha.es.js +6 -0
  240. package/dist/utilities/color/setAlpha.es.js.map +1 -0
  241. package/dist/utilities/color/toColorObject.es.js +9 -0
  242. package/dist/utilities/color/toColorObject.es.js.map +1 -0
  243. package/dist/utilities/color/toHex8String.es.js +7 -0
  244. package/dist/utilities/color/toHex8String.es.js.map +1 -0
  245. package/dist/utilities/color/toHexString.es.js +7 -0
  246. package/dist/utilities/color/toHexString.es.js.map +1 -0
  247. package/dist/utilities/color/toRgbaString.es.js +7 -0
  248. package/dist/utilities/color/toRgbaString.es.js.map +1 -0
  249. package/dist/utilities/color/toShortRgba.es.js +11 -0
  250. package/dist/utilities/color/toShortRgba.es.js.map +1 -0
  251. package/dist/utilities/moveItemInArray.es.js +12 -0
  252. package/dist/utilities/moveItemInArray.es.js.map +1 -0
  253. package/dist/utilities/react/getBackgroundColorStyles.es.js +8 -0
  254. package/dist/utilities/react/getBackgroundColorStyles.es.js.map +1 -0
  255. package/dist/utilities/react/getBorderStyles.es.js +12 -0
  256. package/dist/utilities/react/getBorderStyles.es.js.map +1 -0
  257. package/dist/utilities/react/getRadiusStyles.es.js +8 -0
  258. package/dist/utilities/react/getRadiusStyles.es.js.map +1 -0
  259. package/dist/utilities/react/joinClassNames.es.js +5 -0
  260. package/dist/utilities/react/joinClassNames.es.js.map +1 -0
  261. package/package.json +9 -6
  262. package/.eslintrc.cjs +0 -27
  263. package/.prettierrc +0 -7
  264. package/CHANGELOG.md +0 -787
  265. package/postcss.config.cjs +0 -8
  266. package/setupTests.ts +0 -23
  267. package/src/components/Attachments/AttachmentItem.tsx +0 -247
  268. package/src/components/Attachments/Attachments.spec.ct.tsx +0 -165
  269. package/src/components/Attachments/Attachments.tsx +0 -241
  270. package/src/components/Attachments/AttachmentsButtonTrigger.tsx +0 -30
  271. package/src/components/Attachments/index.ts +0 -4
  272. package/src/components/Attachments/types.ts +0 -40
  273. package/src/components/BlockInjectButton/BlockInjectButton.spec.ct.tsx +0 -48
  274. package/src/components/BlockInjectButton/BlockInjectButton.tsx +0 -212
  275. package/src/components/BlockInjectButton/index.ts +0 -4
  276. package/src/components/BlockInjectButton/types.ts +0 -18
  277. package/src/components/BlockItemWrapper/BlockItemWrapper.spec.ct.tsx +0 -145
  278. package/src/components/BlockItemWrapper/BlockItemWrapper.tsx +0 -76
  279. package/src/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButton.spec.tsx +0 -96
  280. package/src/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButton.tsx +0 -42
  281. package/src/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButtonTrigger.spec.tsx +0 -44
  282. package/src/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButtonTrigger.tsx +0 -24
  283. package/src/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/index.ts +0 -3
  284. package/src/components/BlockItemWrapper/Toolbar/BaseToolbarButton.spec.tsx +0 -40
  285. package/src/components/BlockItemWrapper/Toolbar/BaseToolbarButton.tsx +0 -37
  286. package/src/components/BlockItemWrapper/Toolbar/DragHandleToolbarButton/DragHandleToolbarButton.spec.tsx +0 -89
  287. package/src/components/BlockItemWrapper/Toolbar/DragHandleToolbarButton/DragHandleToolbarButton.tsx +0 -40
  288. package/src/components/BlockItemWrapper/Toolbar/DragHandleToolbarButton/index.ts +0 -3
  289. package/src/components/BlockItemWrapper/Toolbar/FlyoutToolbarButton/FlyoutToolbarButton.spec.tsx +0 -140
  290. package/src/components/BlockItemWrapper/Toolbar/FlyoutToolbarButton/FlyoutToolbarButton.tsx +0 -61
  291. package/src/components/BlockItemWrapper/Toolbar/FlyoutToolbarButton/index.ts +0 -3
  292. package/src/components/BlockItemWrapper/Toolbar/MenuToolbarButton/MenuToolbarButton.spec.tsx +0 -77
  293. package/src/components/BlockItemWrapper/Toolbar/MenuToolbarButton/MenuToolbarButton.tsx +0 -30
  294. package/src/components/BlockItemWrapper/Toolbar/MenuToolbarButton/ToolbarFlyoutMenu.spec.tsx +0 -63
  295. package/src/components/BlockItemWrapper/Toolbar/MenuToolbarButton/ToolbarFlyoutMenu.tsx +0 -40
  296. package/src/components/BlockItemWrapper/Toolbar/MenuToolbarButton/index.ts +0 -4
  297. package/src/components/BlockItemWrapper/Toolbar/Toolbar.spec.tsx +0 -259
  298. package/src/components/BlockItemWrapper/Toolbar/Toolbar.tsx +0 -36
  299. package/src/components/BlockItemWrapper/Toolbar/ToolbarButton/ToolbarButton.spec.tsx +0 -70
  300. package/src/components/BlockItemWrapper/Toolbar/ToolbarButton/ToolbarButton.tsx +0 -19
  301. package/src/components/BlockItemWrapper/Toolbar/ToolbarButton/index.ts +0 -3
  302. package/src/components/BlockItemWrapper/Toolbar/ToolbarButtonTooltip.tsx +0 -25
  303. package/src/components/BlockItemWrapper/Toolbar/ToolbarSegment.tsx +0 -9
  304. package/src/components/BlockItemWrapper/Toolbar/context/DragPreviewContext.tsx +0 -15
  305. package/src/components/BlockItemWrapper/Toolbar/context/MultiFlyoutContext.tsx +0 -25
  306. package/src/components/BlockItemWrapper/Toolbar/context/index.ts +0 -4
  307. package/src/components/BlockItemWrapper/Toolbar/helpers.ts +0 -33
  308. package/src/components/BlockItemWrapper/Toolbar/hooks/index.ts +0 -3
  309. package/src/components/BlockItemWrapper/Toolbar/hooks/useMultiFlyoutState.spec.tsx +0 -59
  310. package/src/components/BlockItemWrapper/Toolbar/hooks/useMultiFlyoutState.ts +0 -24
  311. package/src/components/BlockItemWrapper/Toolbar/index.ts +0 -10
  312. package/src/components/BlockItemWrapper/Toolbar/types.ts +0 -18
  313. package/src/components/BlockItemWrapper/constants.ts +0 -4
  314. package/src/components/BlockItemWrapper/index.ts +0 -6
  315. package/src/components/BlockItemWrapper/types.ts +0 -24
  316. package/src/components/DownloadButton/DownloadButton.spec.ct.tsx +0 -20
  317. package/src/components/DownloadButton/DownloadButton.tsx +0 -36
  318. package/src/components/DownloadButton/index.ts +0 -3
  319. package/src/components/DownloadButton/types.ts +0 -5
  320. package/src/components/Link/LinkInput.spec.ct.tsx +0 -142
  321. package/src/components/Link/LinkInput.tsx +0 -86
  322. package/src/components/Link/LinkSelector/DocumentLink.tsx +0 -81
  323. package/src/components/Link/LinkSelector/DocumentLinks.tsx +0 -102
  324. package/src/components/Link/LinkSelector/LinkSelector.spec.ct.tsx +0 -196
  325. package/src/components/Link/LinkSelector/LinkSelector.tsx +0 -96
  326. package/src/components/Link/LinkSelector/LoadingIndicator.tsx +0 -11
  327. package/src/components/Link/LinkSelector/PageLink.tsx +0 -96
  328. package/src/components/Link/LinkSelector/PageLinks.tsx +0 -71
  329. package/src/components/Link/LinkSelector/SectionLink.tsx +0 -36
  330. package/src/components/Link/LinkSelector/index.ts +0 -3
  331. package/src/components/Link/index.ts +0 -6
  332. package/src/components/Link/types.ts +0 -6
  333. package/src/components/Link/utils/getUrl.ts +0 -30
  334. package/src/components/Link/utils/index.ts +0 -5
  335. package/src/components/Link/utils/relativeUrlRegex.spec.ts +0 -32
  336. package/src/components/Link/utils/relativeUrlRegex.ts +0 -3
  337. package/src/components/Link/utils/url.spec.ts +0 -75
  338. package/src/components/Link/utils/url.ts +0 -21
  339. package/src/components/RichTextEditor/RichTextEditor.spec.ct.tsx +0 -231
  340. package/src/components/RichTextEditor/RichTextEditor.tsx +0 -62
  341. package/src/components/RichTextEditor/SerializedText.tsx +0 -29
  342. package/src/components/RichTextEditor/constants.ts +0 -3
  343. package/src/components/RichTextEditor/index.ts +0 -6
  344. package/src/components/RichTextEditor/pluginPresets/defaultPluginsWithLinkChooser.tsx +0 -55
  345. package/src/components/RichTextEditor/pluginPresets/index.ts +0 -3
  346. package/src/components/RichTextEditor/plugins/ButtonPlugin/ButtonMarkupElement/ButtonMarkupElementNode.tsx +0 -74
  347. package/src/components/RichTextEditor/plugins/ButtonPlugin/ButtonMarkupElement/index.ts +0 -11
  348. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/ButtonButton.tsx +0 -20
  349. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/ButtonToolbarButton.tsx +0 -56
  350. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/CustomFloatingButton.tsx +0 -19
  351. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/EditButtonModal/EditModal.tsx +0 -42
  352. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/FloatingButton.tsx +0 -37
  353. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/FloatingButtonEditButton.tsx +0 -22
  354. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/FloatingButtonUrlInput.tsx +0 -30
  355. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/InsertButtonModal.tsx +0 -81
  356. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/types.ts +0 -13
  357. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.ts +0 -143
  358. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/UnlinkButton.tsx +0 -31
  359. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/floatingButtonStore.ts +0 -46
  360. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/index.ts +0 -12
  361. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonEdit.ts +0 -113
  362. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonEnter.ts +0 -21
  363. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonEscape.ts +0 -30
  364. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useFloatingButtonInsert.ts +0 -71
  365. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/useVirtualFloatingButton.ts +0 -22
  366. package/src/components/RichTextEditor/plugins/ButtonPlugin/components/index.ts +0 -3
  367. package/src/components/RichTextEditor/plugins/ButtonPlugin/createButtonPlugin.ts +0 -118
  368. package/src/components/RichTextEditor/plugins/ButtonPlugin/index.ts +0 -7
  369. package/src/components/RichTextEditor/plugins/ButtonPlugin/transforms/index.ts +0 -8
  370. package/src/components/RichTextEditor/plugins/ButtonPlugin/transforms/insertButton.ts +0 -17
  371. package/src/components/RichTextEditor/plugins/ButtonPlugin/transforms/submitFloatingButton.ts +0 -40
  372. package/src/components/RichTextEditor/plugins/ButtonPlugin/transforms/unwrapButton.ts +0 -68
  373. package/src/components/RichTextEditor/plugins/ButtonPlugin/transforms/upsertButton.ts +0 -198
  374. package/src/components/RichTextEditor/plugins/ButtonPlugin/transforms/upsertButtonText.ts +0 -40
  375. package/src/components/RichTextEditor/plugins/ButtonPlugin/transforms/wrapButton.ts +0 -30
  376. package/src/components/RichTextEditor/plugins/ButtonPlugin/types.ts +0 -13
  377. package/src/components/RichTextEditor/plugins/ButtonPlugin/utils/createButtonNode.ts +0 -28
  378. package/src/components/RichTextEditor/plugins/ButtonPlugin/utils/getButtonStyle.ts +0 -14
  379. package/src/components/RichTextEditor/plugins/ButtonPlugin/utils/getUrl.ts +0 -18
  380. package/src/components/RichTextEditor/plugins/ButtonPlugin/utils/index.ts +0 -8
  381. package/src/components/RichTextEditor/plugins/ButtonPlugin/utils/styles.ts +0 -83
  382. package/src/components/RichTextEditor/plugins/ButtonPlugin/utils/triggerFloatingButton.ts +0 -23
  383. package/src/components/RichTextEditor/plugins/ButtonPlugin/utils/triggerFloatingButtonEdit.ts +0 -30
  384. package/src/components/RichTextEditor/plugins/ButtonPlugin/utils/triggerFloatingButtonInsert.ts +0 -45
  385. package/src/components/RichTextEditor/plugins/ButtonPlugin/withButton.ts +0 -106
  386. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/CustomFloatingLink.tsx +0 -26
  387. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/EditModal.tsx +0 -43
  388. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/index.ts +0 -4
  389. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/useFloatingLinkEdit.ts +0 -113
  390. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/FloatingLink.tsx +0 -45
  391. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertLinkModal.tsx +0 -5
  392. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.tsx +0 -88
  393. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/index.ts +0 -4
  394. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/types.ts +0 -11
  395. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useFloatingLinkInsert.ts +0 -73
  396. package/src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/useInsertModal.ts +0 -136
  397. package/src/components/RichTextEditor/plugins/LinkPlugin/LinkButton.tsx +0 -38
  398. package/src/components/RichTextEditor/plugins/LinkPlugin/LinkMarkupElement/LinkMarkupElementNode.tsx +0 -36
  399. package/src/components/RichTextEditor/plugins/LinkPlugin/LinkMarkupElement/index.ts +0 -11
  400. package/src/components/RichTextEditor/plugins/LinkPlugin/id.ts +0 -3
  401. package/src/components/RichTextEditor/plugins/LinkPlugin/index.ts +0 -49
  402. package/src/components/RichTextEditor/plugins/LinkPlugin/types.ts +0 -12
  403. package/src/components/RichTextEditor/plugins/TextStylePlugins/custom1Plugin.tsx +0 -62
  404. package/src/components/RichTextEditor/plugins/TextStylePlugins/custom2Plugin.tsx +0 -62
  405. package/src/components/RichTextEditor/plugins/TextStylePlugins/custom3Plugin.tsx +0 -63
  406. package/src/components/RichTextEditor/plugins/TextStylePlugins/heading1Plugin.tsx +0 -62
  407. package/src/components/RichTextEditor/plugins/TextStylePlugins/heading2Plugin.tsx +0 -62
  408. package/src/components/RichTextEditor/plugins/TextStylePlugins/heading3Plugin.tsx +0 -62
  409. package/src/components/RichTextEditor/plugins/TextStylePlugins/heading4Plugin.tsx +0 -63
  410. package/src/components/RichTextEditor/plugins/TextStylePlugins/helpers.tsx +0 -44
  411. package/src/components/RichTextEditor/plugins/TextStylePlugins/imageCaptionPlugin.tsx +0 -62
  412. package/src/components/RichTextEditor/plugins/TextStylePlugins/imageTitlePlugin.tsx +0 -62
  413. package/src/components/RichTextEditor/plugins/TextStylePlugins/index.ts +0 -15
  414. package/src/components/RichTextEditor/plugins/TextStylePlugins/paragraphPlugin.tsx +0 -58
  415. package/src/components/RichTextEditor/plugins/TextStylePlugins/quotePlugin.tsx +0 -63
  416. package/src/components/RichTextEditor/plugins/index.ts +0 -6
  417. package/src/components/RichTextEditor/plugins/styles.ts +0 -178
  418. package/src/components/RichTextEditor/types.ts +0 -23
  419. package/src/components/index.ts +0 -8
  420. package/src/helpers/addHttps.spec.ts +0 -42
  421. package/src/helpers/addHttps.ts +0 -15
  422. package/src/helpers/convertToRichTextValue.spec.ts +0 -32
  423. package/src/helpers/convertToRichTextValue.ts +0 -6
  424. package/src/helpers/customCoordinatesGetterFactory.spec.ts +0 -69
  425. package/src/helpers/customCoordinatesGetterFactory.ts +0 -39
  426. package/src/helpers/hasRichTextValue.spec.ts +0 -63
  427. package/src/helpers/hasRichTextValue.ts +0 -29
  428. package/src/helpers/index.ts +0 -8
  429. package/src/helpers/isDownloadable.spec.ts +0 -47
  430. package/src/helpers/isDownloadable.ts +0 -7
  431. package/src/helpers/mapColorPalettes.spec.ts +0 -47
  432. package/src/helpers/mapColorPalettes.ts +0 -65
  433. package/src/hooks/index.ts +0 -4
  434. package/src/hooks/useAttachments.spec.tsx +0 -127
  435. package/src/hooks/useAttachments.tsx +0 -90
  436. package/src/hooks/useDndSensors.spec.ts +0 -40
  437. package/src/hooks/useDndSensors.ts +0 -23
  438. package/src/index.ts +0 -138
  439. package/src/settings/background.spec.ts +0 -173
  440. package/src/settings/background.ts +0 -52
  441. package/src/settings/border.spec.ts +0 -76
  442. package/src/settings/border.ts +0 -90
  443. package/src/settings/borderRadius.spec.ts +0 -30
  444. package/src/settings/borderRadius.ts +0 -73
  445. package/src/settings/borderRadiusExtended.spec.ts +0 -52
  446. package/src/settings/borderRadiusExtended.ts +0 -84
  447. package/src/settings/defaultValues.ts +0 -21
  448. package/src/settings/gutter.spec.ts +0 -60
  449. package/src/settings/gutter.ts +0 -75
  450. package/src/settings/index.ts +0 -14
  451. package/src/settings/margin.spec.ts +0 -42
  452. package/src/settings/margin.ts +0 -72
  453. package/src/settings/marginExtended.spec.ts +0 -45
  454. package/src/settings/marginExtended.ts +0 -91
  455. package/src/settings/padding.spec.ts +0 -42
  456. package/src/settings/padding.ts +0 -73
  457. package/src/settings/paddingExtended.spec.ts +0 -45
  458. package/src/settings/paddingExtended.ts +0 -91
  459. package/src/settings/security.spec.ts +0 -87
  460. package/src/settings/security.ts +0 -61
  461. package/src/settings/securityDownloadable.spec.ts +0 -46
  462. package/src/settings/securityDownloadable.ts +0 -33
  463. package/src/settings/securityGlobalControl.ts +0 -42
  464. package/src/settings/types.ts +0 -128
  465. package/src/styles.css +0 -3
  466. package/src/utilities/color/getReadableColor.spec.ts +0 -32
  467. package/src/utilities/color/getReadableColor.ts +0 -34
  468. package/src/utilities/color/index.ts +0 -10
  469. package/src/utilities/color/isDark.spec.ts +0 -33
  470. package/src/utilities/color/isDark.ts +0 -29
  471. package/src/utilities/color/setAlpha.spec.ts +0 -28
  472. package/src/utilities/color/setAlpha.ts +0 -14
  473. package/src/utilities/color/toColorObject.spec.ts +0 -19
  474. package/src/utilities/color/toColorObject.ts +0 -16
  475. package/src/utilities/color/toHex8String.spec.ts +0 -17
  476. package/src/utilities/color/toHex8String.ts +0 -14
  477. package/src/utilities/color/toHexString.spec.ts +0 -17
  478. package/src/utilities/color/toHexString.ts +0 -10
  479. package/src/utilities/color/toRgbaString.spec.ts +0 -12
  480. package/src/utilities/color/toRgbaString.ts +0 -14
  481. package/src/utilities/color/toShortRgba.spec.ts +0 -16
  482. package/src/utilities/color/toShortRgba.ts +0 -35
  483. package/src/utilities/index.ts +0 -5
  484. package/src/utilities/moveItemInArray.spec.ts +0 -17
  485. package/src/utilities/moveItemInArray.ts +0 -21
  486. package/src/utilities/react/getBackgroundColorStyles.spec.ts +0 -18
  487. package/src/utilities/react/getBackgroundColorStyles.ts +0 -10
  488. package/src/utilities/react/getBorderStyles.spec.ts +0 -39
  489. package/src/utilities/react/getBorderStyles.ts +0 -20
  490. package/src/utilities/react/getRadiusStyles.spec.ts +0 -25
  491. package/src/utilities/react/getRadiusStyles.ts +0 -8
  492. package/src/utilities/react/index.ts +0 -6
  493. package/src/utilities/react/joinClassNames.spec.ts +0 -18
  494. package/src/utilities/react/joinClassNames.ts +0 -10
  495. package/tailwind.config.ts +0 -27
  496. package/tsconfig.json +0 -24
  497. package/tsconfig.node.json +0 -12
  498. package/vite.config.ts +0 -71
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichTextEditor.es.js","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useEffect, useState } from 'react';\n\nimport { RichTextEditor as FondueRichTextEditor } from '@frontify/fondue';\nimport { RichTextEditorProps } from './types';\nimport { SerializedText } from './SerializedText';\nimport { floatingButtonActions, floatingButtonSelectors } from './plugins/ButtonPlugin/components';\n\nexport const RichTextEditor = ({\n id = 'rte',\n isEditing,\n value,\n columns,\n gap,\n placeholder,\n plugins,\n onTextChange,\n showSerializedText,\n}: RichTextEditorProps) => {\n const [shouldPreventPageLeave, setShouldPreventPageLeave] = useState(false);\n\n const saveText = (newContent: string) => {\n if (onTextChange && newContent !== value) {\n onTextChange(newContent);\n }\n setShouldPreventPageLeave(false);\n };\n\n useEffect(() => {\n const unloadHandler = (event: BeforeUnloadEvent) => {\n event.preventDefault();\n return (event.returnValue = 'Unprocessed changes');\n };\n\n if (shouldPreventPageLeave) {\n window.addEventListener('beforeunload', unloadHandler);\n }\n\n return () => window.removeEventListener('beforeunload', unloadHandler);\n }, [shouldPreventPageLeave]);\n\n if (isEditing) {\n return (\n <FondueRichTextEditor\n id={id}\n value={value}\n border={false}\n placeholder={placeholder}\n plugins={plugins}\n onValueChanged={() => setShouldPreventPageLeave(true)}\n onTextChange={saveText}\n hideExternalFloatingModals={(editorId: string) => {\n if (floatingButtonSelectors.isOpen(editorId)) {\n floatingButtonActions.reset();\n }\n }}\n />\n );\n }\n return <SerializedText value={value} columns={columns} gap={gap} show={showSerializedText} plugins={plugins} />;\n};\n"],"names":["RichTextEditor","id","isEditing","value","columns","gap","placeholder","plugins","onTextChange","showSerializedText","shouldPreventPageLeave","setShouldPreventPageLeave","useState","saveText","newContent","useEffect","unloadHandler","event","jsx","FondueRichTextEditor","editorId","floatingButtonSelectors","floatingButtonActions","SerializedText"],"mappings":";;;;;AASO,MAAMA,IAAiB,CAAC;AAAA,EAC3B,IAAAC,IAAK;AAAA,EACL,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC;AAAA,EACA,oBAAAC;AACJ,MAA2B;AACvB,QAAM,CAACC,GAAwBC,CAAyB,IAAIC,EAAS,EAAK,GAEpEC,IAAW,CAACC,MAAuB;AACjC,IAAAN,KAAgBM,MAAeX,KAC/BK,EAAaM,CAAU,GAE3BH,EAA0B,EAAK;AAAA,EAAA;AAgBnC,SAbAI,EAAU,MAAM;AACN,UAAAC,IAAgB,CAACC,OACnBA,EAAM,eAAe,GACbA,EAAM,cAAc;AAGhC,WAAIP,KACO,OAAA,iBAAiB,gBAAgBM,CAAa,GAGlD,MAAM,OAAO,oBAAoB,gBAAgBA,CAAa;AAAA,EAAA,GACtE,CAACN,CAAsB,CAAC,GAEvBR,IAEI,gBAAAgB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACG,IAAAlB;AAAA,MACA,OAAAE;AAAA,MACA,QAAQ;AAAA,MACR,aAAAG;AAAA,MACA,SAAAC;AAAA,MACA,gBAAgB,MAAMI,EAA0B,EAAI;AAAA,MACpD,cAAcE;AAAA,MACd,4BAA4B,CAACO,MAAqB;AAC1C,QAAAC,EAAwB,OAAOD,CAAQ,KACvCE,EAAsB,MAAM;AAAA,MAEpC;AAAA,IAAA;AAAA,EAAA,sBAIJC,GAAe,EAAA,OAAApB,GAAc,SAAAC,GAAkB,KAAAC,GAAU,MAAMI,GAAoB,SAAAF,EAAkB,CAAA;AACjH;"}
@@ -0,0 +1,20 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { useState as i, useEffect as w } from "react";
3
+ import { serializeRawToHtmlAsync as o } from "@frontify/fondue";
4
+ const d = ({ value: e = "", gap: l, columns: r, show: m = !0, plugins: a }) => {
5
+ const [t, n] = i(null);
6
+ return w(() => {
7
+ (async () => n(await o(e, a, r, l)))();
8
+ }, [e, r, l, a]), !m || t === "<br />" ? null : t !== null ? /* @__PURE__ */ s(
9
+ "div",
10
+ {
11
+ className: "tw-w-full tw-whitespace-pre-wrap",
12
+ "data-test-id": "rte-content-html",
13
+ dangerouslySetInnerHTML: { __html: t }
14
+ }
15
+ ) : /* @__PURE__ */ s("div", { className: "tw-rounded-sm tw-bg-base-alt tw-animate-pulse tw-h-full tw-min-h-[10px] tw-w-full" });
16
+ };
17
+ export {
18
+ d as SerializedText
19
+ };
20
+ //# sourceMappingURL=SerializedText.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SerializedText.es.js","sources":["../../../src/components/RichTextEditor/SerializedText.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useEffect, useState } from 'react';\nimport { serializeRawToHtmlAsync } from '@frontify/fondue';\nimport { SerializedTextProps } from './types';\n\nexport const SerializedText = ({ value = '', gap, columns, show = true, plugins }: SerializedTextProps) => {\n const [html, setHtml] = useState<string | null>(null);\n\n useEffect(() => {\n (async () => {\n setHtml(await serializeRawToHtmlAsync(value, plugins, columns, gap));\n })();\n }, [value, columns, gap, plugins]);\n\n if (!show || html === '<br />') {\n return null;\n }\n\n return html !== null ? (\n <div\n className=\"tw-w-full tw-whitespace-pre-wrap\"\n data-test-id=\"rte-content-html\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n ) : (\n <div className=\"tw-rounded-sm tw-bg-base-alt tw-animate-pulse tw-h-full tw-min-h-[10px] tw-w-full\" />\n );\n};\n"],"names":["SerializedText","value","gap","columns","show","plugins","html","setHtml","useState","useEffect","serializeRawToHtmlAsync","jsx"],"mappings":";;;AAMa,MAAAA,IAAiB,CAAC,EAAE,OAAAC,IAAQ,IAAI,KAAAC,GAAK,SAAAC,GAAS,MAAAC,IAAO,IAAM,SAAAC,QAAmC;AACvG,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAwB,IAAI;AAQhD,SANJC,EAAU,MAAM;AACZ,KAAC,YACGF,EAAQ,MAAMG,EAAwBT,GAAOI,GAASF,GAASD,CAAG,CAAC;AAAA,KAExE,CAACD,GAAOE,GAASD,GAAKG,CAAO,CAAC,GAE7B,CAACD,KAAQE,MAAS,WACX,OAGJA,MAAS,OACZ,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAU;AAAA,MACV,gBAAa;AAAA,MACb,yBAAyB,EAAE,QAAQL,EAAK;AAAA,IAAA;AAAA,EAG5C,IAAA,gBAAAK,EAAC,OAAI,EAAA,WAAU,oFAAoF,CAAA;AAE3G;"}
@@ -0,0 +1,5 @@
1
+ const t = "--f-theme-settings-";
2
+ export {
3
+ t as THEME_PREFIX
4
+ };
5
+ //# sourceMappingURL=constants.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.es.js","sources":["../../../src/components/RichTextEditor/constants.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nexport const THEME_PREFIX = '--f-theme-settings-';\n"],"names":["THEME_PREFIX"],"mappings":"AAEO,MAAMA,IAAe;"}
@@ -0,0 +1,35 @@
1
+ import { PluginComposer as i, SoftBreakPlugin as t, TextStylePlugin as l, BoldPlugin as g, ItalicPlugin as u, UnderlinePlugin as o, StrikethroughPlugin as r, CodePlugin as P, AlignLeftPlugin as w, AlignCenterPlugin as s, AlignRightPlugin as m, AlignJustifyPlugin as a, UnorderedListPlugin as d, CheckboxListPlugin as f, OrderedListPlugin as y, ResetFormattingPlugin as h, AutoformatPlugin as p } from "@frontify/fondue";
2
+ import { TextStylePluginsWithoutImage as T, TextStylesWithoutImage as n } from "../plugins/TextStylePlugins/helpers.es.js";
3
+ import { LinkPlugin as x } from "../plugins/LinkPlugin/index.es.js";
4
+ import { ButtonPlugin as L } from "../plugins/ButtonPlugin/createButtonPlugin.es.js";
5
+ const v = (e) => new i().setPlugin(
6
+ new t(),
7
+ new l({
8
+ textStyles: T
9
+ })
10
+ ).setPlugin(
11
+ [
12
+ new g(),
13
+ new u(),
14
+ new o(),
15
+ new r(),
16
+ new x({ appBridge: e }),
17
+ new L({ appBridge: e }),
18
+ new P()
19
+ ],
20
+ [
21
+ new w({ validTypes: n }),
22
+ new s({ validTypes: n }),
23
+ new m({ validTypes: n }),
24
+ new a({ validTypes: n }),
25
+ new d(),
26
+ new f(),
27
+ new y(),
28
+ new h(),
29
+ new p()
30
+ ]
31
+ );
32
+ export {
33
+ v as getDefaultPluginsWithLinkChooser
34
+ };
35
+ //# sourceMappingURL=defaultPluginsWithLinkChooser.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultPluginsWithLinkChooser.es.js","sources":["../../../../src/components/RichTextEditor/pluginPresets/defaultPluginsWithLinkChooser.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { AppBridgeBlock } from '@frontify/app-bridge';\nimport {\n AlignCenterPlugin,\n AlignJustifyPlugin,\n AlignLeftPlugin,\n AlignRightPlugin,\n AutoformatPlugin,\n BoldPlugin,\n CheckboxListPlugin,\n CodePlugin,\n ItalicPlugin,\n OrderedListPlugin,\n PluginComposer,\n ResetFormattingPlugin,\n SoftBreakPlugin,\n StrikethroughPlugin,\n TextStylePlugin,\n UnderlinePlugin,\n UnorderedListPlugin,\n} from '@frontify/fondue';\nimport { ButtonPlugin, LinkPlugin, TextStylePluginsWithoutImage, TextStylesWithoutImage } from '../plugins';\n\nexport const getDefaultPluginsWithLinkChooser = (appBridge: AppBridgeBlock) => {\n return new PluginComposer()\n .setPlugin(\n new SoftBreakPlugin(),\n new TextStylePlugin({\n textStyles: TextStylePluginsWithoutImage,\n }),\n )\n .setPlugin(\n [\n new BoldPlugin(),\n new ItalicPlugin(),\n new UnderlinePlugin(),\n new StrikethroughPlugin(),\n new LinkPlugin({ appBridge }),\n new ButtonPlugin({ appBridge }),\n new CodePlugin(),\n ],\n [\n new AlignLeftPlugin({ validTypes: TextStylesWithoutImage }),\n new AlignCenterPlugin({ validTypes: TextStylesWithoutImage }),\n new AlignRightPlugin({ validTypes: TextStylesWithoutImage }),\n new AlignJustifyPlugin({ validTypes: TextStylesWithoutImage }),\n new UnorderedListPlugin(),\n new CheckboxListPlugin(),\n new OrderedListPlugin(),\n new ResetFormattingPlugin(),\n new AutoformatPlugin(),\n ],\n );\n};\n"],"names":["getDefaultPluginsWithLinkChooser","appBridge","PluginComposer","SoftBreakPlugin","TextStylePlugin","TextStylePluginsWithoutImage","BoldPlugin","ItalicPlugin","UnderlinePlugin","StrikethroughPlugin","LinkPlugin","ButtonPlugin","CodePlugin","AlignLeftPlugin","TextStylesWithoutImage","AlignCenterPlugin","AlignRightPlugin","AlignJustifyPlugin","UnorderedListPlugin","CheckboxListPlugin","OrderedListPlugin","ResetFormattingPlugin","AutoformatPlugin"],"mappings":";;;;AAwBa,MAAAA,IAAmC,CAACC,MACtC,IAAIC,IACN;AAAA,EACG,IAAIC,EAAgB;AAAA,EACpB,IAAIC,EAAgB;AAAA,IAChB,YAAYC;AAAA,EAAA,CACf;AAAA,EAEJ;AAAA,EACG;AAAA,IACI,IAAIC,EAAW;AAAA,IACf,IAAIC,EAAa;AAAA,IACjB,IAAIC,EAAgB;AAAA,IACpB,IAAIC,EAAoB;AAAA,IACxB,IAAIC,EAAW,EAAE,WAAAT,GAAW;AAAA,IAC5B,IAAIU,EAAa,EAAE,WAAAV,GAAW;AAAA,IAC9B,IAAIW,EAAW;AAAA,EACnB;AAAA,EACA;AAAA,IACI,IAAIC,EAAgB,EAAE,YAAYC,GAAwB;AAAA,IAC1D,IAAIC,EAAkB,EAAE,YAAYD,GAAwB;AAAA,IAC5D,IAAIE,EAAiB,EAAE,YAAYF,GAAwB;AAAA,IAC3D,IAAIG,EAAmB,EAAE,YAAYH,GAAwB;AAAA,IAC7D,IAAII,EAAoB;AAAA,IACxB,IAAIC,EAAmB;AAAA,IACvB,IAAIC,EAAkB;AAAA,IACtB,IAAIC,EAAsB;AAAA,IAC1B,IAAIC,EAAiB;AAAA,EACzB;AAAA;"}
@@ -0,0 +1,41 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { useState as c } from "react";
3
+ import { BlockButtonStyles as m } from "../utils/styles.es.js";
4
+ const b = (e) => {
5
+ var n, u;
6
+ const { attributes: t, children: r } = e, l = e.element.url || ((u = (n = e.element.chosenLink) == null ? void 0 : n.searchResult) == null ? void 0 : u.link) || "", s = e.element.target || "_self", o = String(e.element.buttonStyle) || "primary";
7
+ return /* @__PURE__ */ a(
8
+ i,
9
+ {
10
+ attributes: t,
11
+ href: l,
12
+ target: s,
13
+ styles: m[`button${o.charAt(0).toUpperCase() + o.slice(1)}`],
14
+ children: r
15
+ }
16
+ );
17
+ }, i = ({
18
+ attributes: e,
19
+ styles: t = { hover: {} },
20
+ children: r,
21
+ href: l = "#",
22
+ target: s
23
+ }) => {
24
+ const [o, n] = c(!1);
25
+ return /* @__PURE__ */ a(
26
+ "a",
27
+ {
28
+ ...e,
29
+ onMouseEnter: () => n(!0),
30
+ onMouseLeave: () => n(!1),
31
+ href: l,
32
+ target: s,
33
+ style: o ? { ...t, ...t.hover } : t,
34
+ children: r
35
+ }
36
+ );
37
+ };
38
+ export {
39
+ b as ButtonMarkupElementNode
40
+ };
41
+ //# sourceMappingURL=ButtonMarkupElementNode.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonMarkupElementNode.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/ButtonMarkupElement/ButtonMarkupElementNode.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type PlateRenderElementProps, Value } from '@frontify/fondue';\nimport { CSSProperties, HTMLAttributeAnchorTarget, ReactElement, ReactNode, useState } from 'react';\nimport { TButtonElement } from '../types';\nimport { BlockButtonStyles } from '../utils';\n\nexport type ButtonRootProps = PlateRenderElementProps<Value, TButtonElement>;\n\nexport const ButtonMarkupElementNode = (props: ButtonRootProps) => {\n const { attributes, children } = props;\n const href = props.element.url || props.element.chosenLink?.searchResult?.link || '';\n const target = props.element.target || '_self';\n const buttonStyle = String(props.element.buttonStyle) || 'primary';\n return (\n <HoverableButtonLink\n attributes={attributes}\n href={href}\n target={target}\n styles={BlockButtonStyles[`button${buttonStyle.charAt(0).toUpperCase() + buttonStyle.slice(1)}`]}\n >\n {children}\n </HoverableButtonLink>\n );\n};\n\ntype Props = {\n attributes: ButtonRootProps['attributes'];\n children: ReactNode;\n styles?: CSSProperties & { hover?: CSSProperties };\n href?: string;\n target?: HTMLAttributeAnchorTarget;\n};\n\nconst HoverableButtonLink = ({\n attributes,\n styles = { hover: {} },\n children,\n href = '#',\n target,\n}: Props): ReactElement => {\n const [hovered, setHovered] = useState(false);\n\n return (\n <a\n {...attributes}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n href={href}\n target={target}\n style={hovered ? { ...styles, ...styles.hover } : styles}\n >\n {children}\n </a>\n );\n};\n"],"names":["ButtonMarkupElementNode","props","attributes","children","href","_b","_a","target","buttonStyle","jsx","HoverableButtonLink","BlockButtonStyles","styles","hovered","setHovered","useState"],"mappings":";;;AASa,MAAAA,IAA0B,CAACC,MAA2B;;AACzD,QAAA,EAAE,YAAAC,GAAY,UAAAC,EAAa,IAAAF,GAC3BG,IAAOH,EAAM,QAAQ,SAAOI,KAAAC,IAAAL,EAAM,QAAQ,eAAd,gBAAAK,EAA0B,iBAA1B,gBAAAD,EAAwC,SAAQ,IAC5EE,IAASN,EAAM,QAAQ,UAAU,SACjCO,IAAc,OAAOP,EAAM,QAAQ,WAAW,KAAK;AAErD,SAAA,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,YAAAR;AAAA,MACA,MAAAE;AAAA,MACA,QAAAG;AAAA,MACA,QAAQI,EAAkB,SAASH,EAAY,OAAO,CAAC,EAAE,YAAgB,IAAAA,EAAY,MAAM,CAAC,CAAC,EAAE;AAAA,MAE9F,UAAAL;AAAA,IAAA;AAAA,EAAA;AAGb,GAUMO,IAAsB,CAAC;AAAA,EACzB,YAAAR;AAAA,EACA,QAAAU,IAAS,EAAE,OAAO,GAAG;AAAA,EACrB,UAAAT;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,QAAAG;AACJ,MAA2B;AACvB,QAAM,CAACM,GAASC,CAAU,IAAIC,EAAS,EAAK;AAGxC,SAAA,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGP;AAAA,MACJ,cAAc,MAAMY,EAAW,EAAI;AAAA,MACnC,cAAc,MAAMA,EAAW,EAAK;AAAA,MACpC,MAAAV;AAAA,MACA,QAAAG;AAAA,MACA,OAAOM,IAAU,EAAE,GAAGD,GAAQ,GAAGA,EAAO,UAAUA;AAAA,MAEjD,UAAAT;AAAA,IAAA;AAAA,EAAA;AAGb;"}
@@ -0,0 +1,12 @@
1
+ import { MarkupElement as o } from "@frontify/fondue";
2
+ import { ELEMENT_BUTTON as e } from "../createButtonPlugin.es.js";
3
+ import { ButtonMarkupElementNode as m } from "./ButtonMarkupElementNode.es.js";
4
+ class s extends o {
5
+ constructor(t = e, r = m) {
6
+ super(t, r);
7
+ }
8
+ }
9
+ export {
10
+ s as ButtonMarkupElement
11
+ };
12
+ //# sourceMappingURL=index.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/ButtonMarkupElement/index.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { MarkupElement } from '@frontify/fondue';\nimport { ELEMENT_BUTTON } from '../createButtonPlugin';\nimport { ButtonMarkupElementNode } from './ButtonMarkupElementNode';\n\nexport class ButtonMarkupElement extends MarkupElement {\n constructor(id = ELEMENT_BUTTON, node = ButtonMarkupElementNode) {\n super(id, node);\n }\n}\n"],"names":["ButtonMarkupElement","MarkupElement","id","ELEMENT_BUTTON","node","ButtonMarkupElementNode"],"mappings":";;;AAMO,MAAMA,UAA4BC,EAAc;AAAA,EACnD,YAAYC,IAAKC,GAAgBC,IAAOC,GAAyB;AAC7D,UAAMH,GAAIE,CAAI;AAAA,EAClB;AACJ;"}
@@ -0,0 +1,24 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { useEditorState as r, useEventPlateId as a, isRangeInSameBlock as c, getPluginType as m, someNode as p, getTooltip as u, getHotkeyByPlatform as d } from "@frontify/fondue";
3
+ import { ELEMENT_BUTTON as B } from "../createButtonPlugin.es.js";
4
+ import { ButtonToolbarButton as f } from "./ButtonToolbarButton.es.js";
5
+ const y = ({ editorId: n, id: i }) => {
6
+ const t = r(a(n)), o = !!c(t, {
7
+ at: t.selection
8
+ }), s = m(t, B), l = !!(t != null && t.selection) && p(t, { match: { type: s } });
9
+ return /* @__PURE__ */ e("div", { "data-plugin-id": i, children: /* @__PURE__ */ e(
10
+ f,
11
+ {
12
+ pressed: l,
13
+ disabled: !o,
14
+ tooltip: u(
15
+ o ? `Button
16
+ ${d("Ctrl+Shift+K")}` : "Buttons can only be set for a single text block."
17
+ )
18
+ }
19
+ ) });
20
+ };
21
+ export {
22
+ y as ButtonButton
23
+ };
24
+ //# sourceMappingURL=ButtonButton.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonButton.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/components/ButtonButton.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport {\n PluginButtonProps,\n getHotkeyByPlatform,\n getPluginType,\n getTooltip,\n isRangeInSameBlock,\n someNode,\n useEditorState,\n useEventPlateId,\n} from '@frontify/fondue';\nimport { ELEMENT_BUTTON } from '../createButtonPlugin';\nimport { ButtonToolbarButton } from './ButtonToolbarButton';\n\nexport const ButtonButton = ({ editorId, id }: PluginButtonProps) => {\n const editor = useEditorState(useEventPlateId(editorId));\n const isEnabled = !!isRangeInSameBlock(editor, {\n at: editor.selection,\n });\n const type = getPluginType(editor, ELEMENT_BUTTON);\n const isLink = !!editor?.selection && someNode(editor, { match: { type } });\n\n return (\n <div data-plugin-id={id}>\n <ButtonToolbarButton\n pressed={isLink}\n disabled={!isEnabled} // maybe pressed\n tooltip={getTooltip(\n isEnabled\n ? `Button\\n${getHotkeyByPlatform('Ctrl+Shift+K')}`\n : 'Buttons can only be set for a single text block.',\n )}\n />\n </div>\n );\n};\n"],"names":["ButtonButton","editorId","id","editor","useEditorState","useEventPlateId","isEnabled","isRangeInSameBlock","type","getPluginType","ELEMENT_BUTTON","isLink","someNode","jsx","ButtonToolbarButton","getTooltip","getHotkeyByPlatform"],"mappings":";;;;AAeO,MAAMA,IAAe,CAAC,EAAE,UAAAC,GAAU,IAAAC,QAA4B;AACjE,QAAMC,IAASC,EAAeC,EAAgBJ,CAAQ,CAAC,GACjDK,IAAY,CAAC,CAACC,EAAmBJ,GAAQ;AAAA,IAC3C,IAAIA,EAAO;AAAA,EAAA,CACd,GACKK,IAAOC,EAAcN,GAAQO,CAAc,GAC3CC,IAAS,CAAC,EAACR,KAAA,QAAAA,EAAQ,cAAaS,EAAST,GAAQ,EAAE,OAAO,EAAE,MAAAK,EAAK,EAAG,CAAA;AAGtE,SAAA,gBAAAK,EAAC,OAAI,EAAA,kBAAgBX,GACjB,UAAA,gBAAAW;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,SAASH;AAAA,MACT,UAAU,CAACL;AAAA,MACX,SAASS;AAAA,QACLT,IACM;AAAA,EAAWU,EAAoB,cAAc,CAAC,KAC9C;AAAA,MACV;AAAA,IAAA;AAAA,EAER,EAAA,CAAA;AAER;"}
@@ -0,0 +1,26 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { useEditorRef as e, ToolbarButton as i, focusEditor as u, IconStylingWrapper as c, IconButton16 as l } from "@frontify/fondue";
3
+ import { forwardRef as f } from "react";
4
+ import { triggerFloatingButton as m } from "../utils/triggerFloatingButton.es.js";
5
+ const p = f((r, n) => {
6
+ const o = e();
7
+ return /* @__PURE__ */ t(
8
+ i,
9
+ {
10
+ ref: n,
11
+ ...r,
12
+ onMouseDown: () => {
13
+ u(o, o.selection ?? o.prevSelection ?? void 0);
14
+ },
15
+ onClick: () => {
16
+ m(o, { focused: !0 });
17
+ },
18
+ children: /* @__PURE__ */ t(c, { icon: /* @__PURE__ */ t(l, {}) })
19
+ }
20
+ );
21
+ });
22
+ p.displayName = "ButtonToolbarButton";
23
+ export {
24
+ p as ButtonToolbarButton
25
+ };
26
+ //# sourceMappingURL=ButtonToolbarButton.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonToolbarButton.es.js","sources":["../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/components/ButtonToolbarButton.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconButton16, IconStylingWrapper, ToolbarButton, focusEditor, useEditorRef } from '@frontify/fondue';\n\nimport { triggerFloatingButton } from '../utils';\n\nimport { ReactNode, forwardRef } from 'react';\n\nexport const ButtonToolbarButton = forwardRef<\n HTMLButtonElement,\n { disabled: boolean; tooltip: ReactNode; pressed: boolean }\n>((rootProps, ref) => {\n const editor = useEditorRef();\n\n return (\n <ToolbarButton\n ref={ref}\n {...rootProps}\n onMouseDown={() => {\n focusEditor(editor, editor.selection ?? editor.prevSelection ?? undefined);\n }}\n onClick={() => {\n triggerFloatingButton(editor, { focused: true });\n }}\n >\n <IconStylingWrapper icon={<IconButton16 />} />\n </ToolbarButton>\n );\n});\n\nButtonToolbarButton.displayName = 'ButtonToolbarButton';\n"],"names":["ButtonToolbarButton","forwardRef","rootProps","ref","editor","useEditorRef","jsx","ToolbarButton","focusEditor","triggerFloatingButton","IconStylingWrapper","IconButton16"],"mappings":";;;;AAQO,MAAMA,IAAsBC,EAGjC,CAACC,GAAWC,MAAQ;AAClB,QAAMC,IAASC;AAGX,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,KAAAJ;AAAA,MACC,GAAGD;AAAA,MACJ,aAAa,MAAM;AACf,QAAAM,EAAYJ,GAAQA,EAAO,aAAaA,EAAO,iBAAiB,MAAS;AAAA,MAC7E;AAAA,MACA,SAAS,MAAM;AACX,QAAAK,EAAsBL,GAAQ,EAAE,SAAS,GAAM,CAAA;AAAA,MACnD;AAAA,MAEA,UAAC,gBAAAE,EAAAI,GAAA,EAAmB,MAAM,gBAAAJ,EAACK,IAAa,CAAA,GAAI;AAAA,IAAA;AAAA,EAAA;AAGxD,CAAC;AAEDX,EAAoB,cAAc;"}
@@ -0,0 +1,28 @@
1
+ import { jsxs as l, Fragment as u, jsx as t } from "react/jsx-runtime";
2
+ import { EditModal as g } from "./EditButtonModal/EditModal.es.js";
3
+ import { InsertButtonModal as B } from "./InsertButtonModal/InsertButtonModal.es.js";
4
+ import { offset as E, flip as F, useEditorRef as b } from "@frontify/fondue";
5
+ import { useFloatingButtonInsert as h } from "./useFloatingButtonInsert.es.js";
6
+ import { useFloatingButtonEdit as x } from "./useFloatingButtonEdit.es.js";
7
+ import { useFloatingButtonSelectors as O } from "./floatingButtonStore.es.js";
8
+ const r = {
9
+ placement: "bottom-start",
10
+ strategy: "absolute",
11
+ middleware: [
12
+ E(12),
13
+ F({
14
+ padding: 12,
15
+ fallbackPlacements: ["bottom-end", "top-start", "top-end"]
16
+ })
17
+ ]
18
+ }, k = () => {
19
+ const { ref: s, ...d } = h(r), { ref: m, ...a } = x(r), f = b(), o = O(), e = o.isOpen(f.id), p = o.isEditing(), n = o.mode(), i = /* @__PURE__ */ t(B, {}), c = p ? i : /* @__PURE__ */ t(g, {});
20
+ return /* @__PURE__ */ l(u, { children: [
21
+ e && n === "insert" && /* @__PURE__ */ t("div", { ref: s, ...d, children: i }),
22
+ e && n === "edit" && /* @__PURE__ */ t("div", { ref: m, ...a, children: c })
23
+ ] });
24
+ };
25
+ export {
26
+ k as CustomFloatingButton
27
+ };
28
+ //# sourceMappingURL=CustomFloatingButton.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomFloatingButton.es.js","sources":["../../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/CustomFloatingButton.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { EditModal } from './EditButtonModal/EditModal';\nimport { InsertButtonModal } from './InsertButtonModal/InsertButtonModal';\nimport { UseVirtualFloatingOptions, flip, offset, useEditorRef } from '@frontify/fondue';\nimport { useFloatingButtonEdit, useFloatingButtonInsert, useFloatingButtonSelectors } from '../FloatingButton';\n\nconst floatingOptions: UseVirtualFloatingOptions = {\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n offset(12),\n flip({\n padding: 12,\n fallbackPlacements: ['bottom-end', 'top-start', 'top-end'],\n }),\n ],\n};\n\nexport const CustomFloatingButton = () => {\n const { ref: insertRef, ...insertProps } = useFloatingButtonInsert(floatingOptions);\n const { ref: editRef, ...editProps } = useFloatingButtonEdit(floatingOptions);\n const editor = useEditorRef();\n const state = useFloatingButtonSelectors();\n const isOpen = state.isOpen(editor.id);\n const isEditing = state.isEditing();\n const mode = state.mode();\n\n const input = <InsertButtonModal />;\n const editContent = isEditing ? input : <EditModal />;\n\n return (\n <>\n {isOpen && mode === 'insert' && (\n <div ref={insertRef} {...insertProps}>\n {input}\n </div>\n )}\n\n {isOpen && mode === 'edit' && (\n <div ref={editRef} {...editProps}>\n {editContent}\n </div>\n )}\n </>\n );\n};\n"],"names":["floatingOptions","offset","flip","CustomFloatingButton","insertRef","insertProps","useFloatingButtonInsert","editRef","editProps","useFloatingButtonEdit","editor","useEditorRef","state","useFloatingButtonSelectors","isOpen","isEditing","mode","input","InsertButtonModal","editContent","jsx","EditModal","jsxs","Fragment"],"mappings":";;;;;;;AAOA,MAAMA,IAA6C;AAAA,EAC/C,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,IACRC,EAAO,EAAE;AAAA,IACTC,EAAK;AAAA,MACD,SAAS;AAAA,MACT,oBAAoB,CAAC,cAAc,aAAa,SAAS;AAAA,IAAA,CAC5D;AAAA,EACL;AACJ,GAEaC,IAAuB,MAAM;AACtC,QAAM,EAAE,KAAKC,GAAW,GAAGC,EAAY,IAAIC,EAAwBN,CAAe,GAC5E,EAAE,KAAKO,GAAS,GAAGC,EAAU,IAAIC,EAAsBT,CAAe,GACtEU,IAASC,KACTC,IAAQC,KACRC,IAASF,EAAM,OAAOF,EAAO,EAAE,GAC/BK,IAAYH,EAAM,aAClBI,IAAOJ,EAAM,QAEbK,sBAASC,GAAkB,CAAA,CAAA,GAC3BC,IAAcJ,IAAYE,IAAQ,gBAAAG,EAACC,GAAU,CAAA,CAAA;AAEnD,SAES,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAUT,KAAAE,MAAS,YACf,gBAAAI,EAAA,OAAA,EAAI,KAAKhB,GAAY,GAAGC,GACpB,UACLY,EAAA,CAAA;AAAA,IAGHH,KAAUE,MAAS,UAChB,gBAAAI,EAAC,SAAI,KAAKb,GAAU,GAAGC,GAClB,UACLW,EAAA,CAAA;AAAA,EAER,EAAA,CAAA;AAER;"}
@@ -0,0 +1,48 @@
1
+ import { jsx as t, jsxs as o } from "react/jsx-runtime";
2
+ import { useEditorRef as n, IconPen16 as r, focusEditor as i, IconTrashBin16 as a } from "@frontify/fondue";
3
+ import { floatingButtonSelectors as s } from "../floatingButtonStore.es.js";
4
+ import { triggerFloatingButtonEdit as d } from "../../../utils/triggerFloatingButtonEdit.es.js";
5
+ import { unwrapButton as w } from "../../../transforms/unwrapButton.es.js";
6
+ const b = () => {
7
+ const e = n();
8
+ return /* @__PURE__ */ t(
9
+ "div",
10
+ {
11
+ "data-test-id": "floating-button-edit",
12
+ className: "tw-bg-white tw-text-text tw-rounded tw-shadow tw-p-4 tw-min-w-[400px]",
13
+ children: /* @__PURE__ */ o("span", { "data-test-id": "preview-button-flyout", className: "tw-flex tw-justify-between tw-items-center", children: [
14
+ /* @__PURE__ */ t("span", { className: "tw-pointer-events-none", children: s.url() }),
15
+ /* @__PURE__ */ o("span", { className: "tw-flex tw-gap-2", children: [
16
+ /* @__PURE__ */ t(
17
+ "button",
18
+ {
19
+ onClick: () => {
20
+ d(e);
21
+ },
22
+ tabIndex: 0,
23
+ "data-test-id": "edit-button-button",
24
+ className: "tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",
25
+ children: /* @__PURE__ */ t(r, {})
26
+ }
27
+ ),
28
+ /* @__PURE__ */ t(
29
+ "button",
30
+ {
31
+ onClick: () => {
32
+ w(e), i(e, e.selection ?? void 0);
33
+ },
34
+ tabIndex: 0,
35
+ "data-test-id": "remove-button-button",
36
+ className: "tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",
37
+ children: /* @__PURE__ */ t(a, {})
38
+ }
39
+ )
40
+ ] })
41
+ ] })
42
+ }
43
+ );
44
+ };
45
+ export {
46
+ b as EditModal
47
+ };
48
+ //# sourceMappingURL=EditModal.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditModal.es.js","sources":["../../../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/EditButtonModal/EditModal.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconPen16, IconTrashBin16, focusEditor, useEditorRef } from '@frontify/fondue';\n\nimport { floatingButtonSelectors } from '../floatingButtonStore';\nimport { unwrapButton } from '../../../transforms';\nimport { triggerFloatingButtonEdit } from '../../../utils';\n\nexport const EditModal = () => {\n const editor = useEditorRef();\n return (\n <div\n data-test-id=\"floating-button-edit\"\n className=\"tw-bg-white tw-text-text tw-rounded tw-shadow tw-p-4 tw-min-w-[400px]\"\n >\n <span data-test-id=\"preview-button-flyout\" className=\"tw-flex tw-justify-between tw-items-center\">\n <span className=\"tw-pointer-events-none\">{floatingButtonSelectors.url()}</span>\n <span className=\"tw-flex tw-gap-2\">\n <button\n onClick={() => {\n triggerFloatingButtonEdit(editor);\n }}\n tabIndex={0}\n data-test-id=\"edit-button-button\"\n className=\"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1\"\n >\n <IconPen16 />\n </button>\n\n <button\n onClick={() => {\n unwrapButton(editor);\n focusEditor(editor, editor.selection ?? undefined);\n }}\n tabIndex={0}\n data-test-id=\"remove-button-button\"\n className=\"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1\"\n >\n <IconTrashBin16 />\n </button>\n </span>\n </span>\n </div>\n );\n};\n"],"names":["EditModal","editor","useEditorRef","jsx","jsxs","floatingButtonSelectors","triggerFloatingButtonEdit","IconPen16","unwrapButton","focusEditor","IconTrashBin16"],"mappings":";;;;;AAQO,MAAMA,IAAY,MAAM;AAC3B,QAAMC,IAASC;AAEX,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,gBAAa;AAAA,MACb,WAAU;AAAA,MAEV,UAAC,gBAAAC,EAAA,QAAA,EAAK,gBAAa,yBAAwB,WAAU,8CACjD,UAAA;AAAA,QAAA,gBAAAD,EAAC,QAAK,EAAA,WAAU,0BAA0B,UAAAE,EAAwB,OAAM;AAAA,QACxE,gBAAAD,EAAC,QAAK,EAAA,WAAU,oBACZ,UAAA;AAAA,UAAA,gBAAAD;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,SAAS,MAAM;AACX,gBAAAG,EAA0BL,CAAM;AAAA,cACpC;AAAA,cACA,UAAU;AAAA,cACV,gBAAa;AAAA,cACb,WAAU;AAAA,cAEV,4BAACM,GAAU,EAAA;AAAA,YAAA;AAAA,UACf;AAAA,UAEA,gBAAAJ;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,SAAS,MAAM;AACX,gBAAAK,EAAaP,CAAM,GACPQ,EAAAR,GAAQA,EAAO,aAAa,MAAS;AAAA,cACrD;AAAA,cACA,UAAU;AAAA,cACV,gBAAa;AAAA,cACb,WAAU;AAAA,cAEV,4BAACS,GAAe,EAAA;AAAA,YAAA;AAAA,UACpB;AAAA,QAAA,GACJ;AAAA,MAAA,GACJ;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
@@ -0,0 +1,69 @@
1
+ import { jsx as e, jsxs as d } from "react/jsx-runtime";
2
+ import { FormControl as m } from "@frontify/fondue";
3
+ import { useState as y } from "react";
4
+ import { InsertModal as f } from "../../../../LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.es.js";
5
+ import { useInsertModal as p } from "./useInsertModal.es.js";
6
+ import { BlockStyles as n } from "../../../../styles.es.js";
7
+ const g = () => {
8
+ const r = p(), { state: t, onButtonStyleChange: o } = r;
9
+ return /* @__PURE__ */ e(f, { ...r, testId: "floating-button-insert", children: /* @__PURE__ */ e("div", { className: "tw-pt-5", children: /* @__PURE__ */ d(
10
+ m,
11
+ {
12
+ label: {
13
+ children: "Button Style",
14
+ htmlFor: "buttonStyle",
15
+ required: !0
16
+ },
17
+ children: [
18
+ /* @__PURE__ */ e(
19
+ i,
20
+ {
21
+ id: "primary",
22
+ styles: n.buttonPrimary,
23
+ isActive: t.buttonStyle === "primary",
24
+ onClick: () => o("primary"),
25
+ children: t.text || "Primary Button"
26
+ }
27
+ ),
28
+ /* @__PURE__ */ e(
29
+ i,
30
+ {
31
+ id: "secondary",
32
+ styles: n.buttonSecondary,
33
+ isActive: t.buttonStyle === "secondary",
34
+ onClick: () => o("secondary"),
35
+ children: t.text || "Secondary Button"
36
+ }
37
+ ),
38
+ /* @__PURE__ */ e(
39
+ i,
40
+ {
41
+ id: "tertiary",
42
+ styles: n.buttonTertiary,
43
+ isActive: t.buttonStyle === "tertiary",
44
+ onClick: () => o("tertiary"),
45
+ children: t.text || "Tertiary Button"
46
+ }
47
+ )
48
+ ]
49
+ }
50
+ ) }) });
51
+ }, i = ({ id: r, styles: t, isActive: o, onClick: a, children: s }) => {
52
+ const [u, l] = y(!1), c = () => t && t.hover && u ? { ...t, ...t.hover } : t;
53
+ return /* @__PURE__ */ e(
54
+ "button",
55
+ {
56
+ "data-test-id": `floating-button-insert-${r}`,
57
+ onMouseEnter: () => l(!0),
58
+ onMouseLeave: () => l(!1),
59
+ onClick: a,
60
+ style: { ...c(), marginTop: 0, marginBottom: 0 },
61
+ className: o ? "tw-outline tw-outline-1 tw-outline-violet-60 tw-outline-offset-2 tw-w-fit" : "tw-w-fit",
62
+ children: s
63
+ }
64
+ );
65
+ };
66
+ export {
67
+ g as InsertButtonModal
68
+ };
69
+ //# sourceMappingURL=InsertButtonModal.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertButtonModal.es.js","sources":["../../../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/InsertButtonModal.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { FormControl } from '@frontify/fondue';\nimport { CSSProperties, ReactElement, ReactNode, useState } from 'react';\nimport { InsertModal } from '../../../../LinkPlugin/FloatingLink/InsertLinkModal/InsertModal';\nimport { useInsertModal } from './useInsertModal';\nimport { BlockStyles } from '../../../../styles';\n\nexport const InsertButtonModal = () => {\n const modalProps = useInsertModal();\n const { state, onButtonStyleChange } = modalProps;\n\n return (\n <InsertModal {...modalProps} testId=\"floating-button-insert\">\n <div className=\"tw-pt-5\">\n <FormControl\n label={{\n children: 'Button Style',\n htmlFor: 'buttonStyle',\n required: true,\n }}\n >\n <HoverableButton\n id=\"primary\"\n styles={BlockStyles.buttonPrimary}\n isActive={state.buttonStyle === 'primary'}\n onClick={() => onButtonStyleChange('primary')}\n >\n {state.text || 'Primary Button'}\n </HoverableButton>\n\n <HoverableButton\n id=\"secondary\"\n styles={BlockStyles.buttonSecondary}\n isActive={state.buttonStyle === 'secondary'}\n onClick={() => onButtonStyleChange('secondary')}\n >\n {state.text || 'Secondary Button'}\n </HoverableButton>\n\n <HoverableButton\n id=\"tertiary\"\n styles={BlockStyles.buttonTertiary}\n isActive={state.buttonStyle === 'tertiary'}\n onClick={() => onButtonStyleChange('tertiary')}\n >\n {state.text || 'Tertiary Button'}\n </HoverableButton>\n </FormControl>\n </div>\n </InsertModal>\n );\n};\n\ntype Props = {\n id: string;\n styles?: CSSProperties & { hover?: CSSProperties };\n isActive: boolean;\n onClick: () => void;\n children: ReactNode;\n};\n\nconst HoverableButton = ({ id, styles, isActive, onClick, children }: Props): ReactElement => {\n const [hovered, setHovered] = useState(false);\n const getStyles = () => (styles && styles.hover && hovered ? { ...styles, ...styles.hover } : styles);\n\n return (\n <button\n data-test-id={`floating-button-insert-${id}`}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n onClick={onClick}\n style={{ ...getStyles(), marginTop: 0, marginBottom: 0 }}\n className={\n isActive ? 'tw-outline tw-outline-1 tw-outline-violet-60 tw-outline-offset-2 tw-w-fit' : 'tw-w-fit'\n }\n >\n {children}\n </button>\n );\n};\n"],"names":["InsertButtonModal","modalProps","useInsertModal","state","onButtonStyleChange","jsx","InsertModal","jsxs","FormControl","HoverableButton","BlockStyles","id","styles","isActive","onClick","children","hovered","setHovered","useState","getStyles"],"mappings":";;;;;;AAQO,MAAMA,IAAoB,MAAM;AACnC,QAAMC,IAAaC,KACb,EAAE,OAAAC,GAAO,qBAAAC,EAAwB,IAAAH;AAGnC,SAAA,gBAAAI,EAACC,KAAa,GAAGL,GAAY,QAAO,0BAChC,UAAA,gBAAAI,EAAC,OAAI,EAAA,WAAU,WACX,UAAA,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,OAAO;AAAA,QACH,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,MACd;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACG,IAAG;AAAA,YACH,QAAQC,EAAY;AAAA,YACpB,UAAUP,EAAM,gBAAgB;AAAA,YAChC,SAAS,MAAMC,EAAoB,SAAS;AAAA,YAE3C,YAAM,QAAQ;AAAA,UAAA;AAAA,QACnB;AAAA,QAEA,gBAAAC;AAAA,UAACI;AAAA,UAAA;AAAA,YACG,IAAG;AAAA,YACH,QAAQC,EAAY;AAAA,YACpB,UAAUP,EAAM,gBAAgB;AAAA,YAChC,SAAS,MAAMC,EAAoB,WAAW;AAAA,YAE7C,YAAM,QAAQ;AAAA,UAAA;AAAA,QACnB;AAAA,QAEA,gBAAAC;AAAA,UAACI;AAAA,UAAA;AAAA,YACG,IAAG;AAAA,YACH,QAAQC,EAAY;AAAA,YACpB,UAAUP,EAAM,gBAAgB;AAAA,YAChC,SAAS,MAAMC,EAAoB,UAAU;AAAA,YAE5C,YAAM,QAAQ;AAAA,UAAA;AAAA,QACnB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,EAER,CAAA,EACJ,CAAA;AAER,GAUMK,IAAkB,CAAC,EAAE,IAAAE,GAAI,QAAAC,GAAQ,UAAAC,GAAU,SAAAC,GAAS,UAAAC,QAAoC;AAC1F,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtCC,IAAY,MAAOP,KAAUA,EAAO,SAASI,IAAU,EAAE,GAAGJ,GAAQ,GAAGA,EAAO,MAAA,IAAUA;AAG1F,SAAA,gBAAAP;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,gBAAc,0BAA0BM,CAAE;AAAA,MAC1C,cAAc,MAAMM,EAAW,EAAI;AAAA,MACnC,cAAc,MAAMA,EAAW,EAAK;AAAA,MACpC,SAAAH;AAAA,MACA,OAAO,EAAE,GAAGK,KAAa,WAAW,GAAG,cAAc,EAAE;AAAA,MACvD,WACIN,IAAW,8EAA8E;AAAA,MAG5F,UAAAE;AAAA,IAAA;AAAA,EAAA;AAGb;"}
@@ -0,0 +1,104 @@
1
+ import { useEffect as S, useReducer as b } from "react";
2
+ import { CheckboxState as r, useEditorRef as h, getPluginOptions as E, useHotkeys as g } from "@frontify/fondue";
3
+ import { floatingButtonSelectors as u, floatingButtonActions as a } from "../floatingButtonStore.es.js";
4
+ import { ELEMENT_BUTTON as B } from "../../../createButtonPlugin.es.js";
5
+ import { submitFloatingButton as U } from "../../../transforms/submitFloatingButton.es.js";
6
+ import { getButtonStyle as x } from "../../../utils/getButtonStyle.es.js";
7
+ import { isValidUrlOrEmpty as i } from "../../../../../../Link/utils/url.es.js";
8
+ import { addHttps as N } from "../../../../../../../helpers/addHttps.es.js";
9
+ const k = {
10
+ url: "",
11
+ text: "",
12
+ buttonStyle: "primary",
13
+ newTab: r.Unchecked
14
+ }, w = () => {
15
+ const [n, o] = b((e, s) => {
16
+ const { type: c, payload: l } = s;
17
+ switch (c) {
18
+ case "NEW_TAB":
19
+ return {
20
+ ...e,
21
+ newTab: r.Checked
22
+ };
23
+ case "SAME_TAB":
24
+ return {
25
+ ...e,
26
+ newTab: r.Unchecked
27
+ };
28
+ case "URL":
29
+ case "TEXT":
30
+ case "BUTTON_STYLE":
31
+ case "INIT":
32
+ return {
33
+ ...e,
34
+ ...l
35
+ };
36
+ default:
37
+ return e;
38
+ }
39
+ }, k);
40
+ return [n, o];
41
+ }, F = () => {
42
+ const n = h(), [o, e] = w();
43
+ S(() => {
44
+ const t = x(n);
45
+ e({
46
+ type: "INIT",
47
+ payload: {
48
+ text: u.text(),
49
+ buttonStyle: t,
50
+ newTab: u.newTab() ? r.Checked : r.Unchecked,
51
+ url: u.url()
52
+ }
53
+ });
54
+ }, [e, n]);
55
+ const s = (t) => {
56
+ e({
57
+ type: "TEXT",
58
+ payload: { text: t }
59
+ });
60
+ }, c = (t) => {
61
+ e({
62
+ type: "BUTTON_STYLE",
63
+ payload: { buttonStyle: t }
64
+ });
65
+ }, l = (t) => {
66
+ e({
67
+ type: "URL",
68
+ payload: { url: t }
69
+ });
70
+ }, d = (t) => {
71
+ e(t ? { type: "NEW_TAB" } : { type: "SAME_TAB" });
72
+ }, y = () => {
73
+ a.reset();
74
+ }, T = (t) => {
75
+ if (!i(o.url) || !p)
76
+ return;
77
+ const f = N(o.url);
78
+ a.text(o.text), a.url(f), a.buttonStyle(o.buttonStyle), a.newTab(o.newTab === r.Checked), U(n) && (t == null || t.preventDefault());
79
+ }, p = o.url !== "" && o.text !== "", { appBridge: m } = E(n, B);
80
+ return g(
81
+ "enter",
82
+ T,
83
+ {
84
+ enableOnFormTags: ["INPUT"]
85
+ },
86
+ []
87
+ ), {
88
+ state: o,
89
+ onTextChange: s,
90
+ onButtonStyleChange: c,
91
+ onUrlChange: l,
92
+ onToggleTab: d,
93
+ onCancel: y,
94
+ onSave: T,
95
+ hasValues: p,
96
+ isValidUrlOrEmpty: i,
97
+ appBridge: m
98
+ };
99
+ };
100
+ export {
101
+ w as InsertModalState,
102
+ F as useInsertModal
103
+ };
104
+ //# sourceMappingURL=useInsertModal.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInsertModal.es.js","sources":["../../../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/InsertButtonModal/useInsertModal.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Dispatch, Reducer, useEffect, useReducer } from 'react';\nimport { CheckboxState, getPluginOptions, useEditorRef, useHotkeys } from '@frontify/fondue';\nimport { InsertModalDispatchType, InsertModalStateProps } from './types';\nimport { floatingButtonActions, floatingButtonSelectors } from '../floatingButtonStore';\nimport { ELEMENT_BUTTON } from '../../../createButtonPlugin';\nimport { submitFloatingButton } from '../../../transforms/submitFloatingButton';\nimport { RichTextButtonStyle } from '../../../types';\nimport { getButtonStyle } from '../../../utils/getButtonStyle';\nimport { AppBridgeBlock } from '@frontify/app-bridge';\nimport { addHttps } from '../../../../../../../helpers';\nimport { isValidUrlOrEmpty } from '../../../../../../Link/utils/url';\n\nconst initialState: InsertModalStateProps = {\n url: '',\n text: '',\n buttonStyle: 'primary',\n newTab: CheckboxState.Unchecked,\n};\n\nexport const InsertModalState = (): [InsertModalStateProps, Dispatch<InsertModalDispatchType>] => {\n const [state, dispatch] = useReducer<Reducer<InsertModalStateProps, InsertModalDispatchType>>((state, action) => {\n const { type, payload } = action;\n\n switch (type) {\n case 'NEW_TAB':\n return {\n ...state,\n newTab: CheckboxState.Checked,\n };\n case 'SAME_TAB':\n return {\n ...state,\n newTab: CheckboxState.Unchecked,\n };\n case 'URL':\n case 'TEXT':\n case 'BUTTON_STYLE':\n case 'INIT':\n return {\n ...state,\n ...payload,\n };\n default:\n return state;\n }\n }, initialState);\n\n return [state, dispatch];\n};\n\nexport const useInsertModal = () => {\n const editor = useEditorRef();\n const [state, dispatch] = InsertModalState();\n\n useEffect(() => {\n const buttonStyle = getButtonStyle(editor);\n\n dispatch({\n type: 'INIT',\n payload: {\n text: floatingButtonSelectors.text(),\n buttonStyle,\n newTab: floatingButtonSelectors.newTab() ? CheckboxState.Checked : CheckboxState.Unchecked,\n url: floatingButtonSelectors.url(),\n },\n });\n }, [dispatch, editor]);\n\n const onTextChange = (value: string) => {\n dispatch({\n type: 'TEXT',\n payload: { text: value },\n });\n };\n\n const onButtonStyleChange = (value: RichTextButtonStyle) => {\n dispatch({\n type: 'BUTTON_STYLE',\n payload: { buttonStyle: value },\n });\n };\n\n const onUrlChange = (value: string) => {\n dispatch({\n type: 'URL',\n payload: { url: value },\n });\n };\n\n const onToggleTab = (checked: boolean) => {\n checked ? dispatch({ type: 'NEW_TAB' }) : dispatch({ type: 'SAME_TAB' });\n };\n\n const onCancel = () => {\n floatingButtonActions.reset();\n };\n\n const onSave = (event: React.MouseEvent<HTMLButtonElement, MouseEvent> | KeyboardEvent | undefined) => {\n if (!isValidUrlOrEmpty(state.url) || !hasValues) {\n return;\n }\n\n const urlToSave = addHttps(state.url);\n\n floatingButtonActions.text(state.text);\n floatingButtonActions.url(urlToSave);\n floatingButtonActions.buttonStyle(state.buttonStyle);\n floatingButtonActions.newTab(state.newTab === CheckboxState.Checked);\n\n if (submitFloatingButton(editor)) {\n event?.preventDefault();\n }\n };\n\n const hasValues = state.url !== '' && state.text !== '';\n\n const { appBridge } = getPluginOptions<{ appBridge: AppBridgeBlock }>(editor, ELEMENT_BUTTON);\n\n useHotkeys(\n 'enter',\n onSave,\n {\n enableOnFormTags: ['INPUT'],\n },\n [],\n );\n\n return {\n state,\n onTextChange,\n onButtonStyleChange,\n onUrlChange,\n onToggleTab,\n onCancel,\n onSave,\n hasValues,\n isValidUrlOrEmpty,\n appBridge,\n };\n};\n"],"names":["initialState","CheckboxState","InsertModalState","state","dispatch","useReducer","action","type","payload","useInsertModal","editor","useEditorRef","useEffect","buttonStyle","getButtonStyle","floatingButtonSelectors","onTextChange","value","onButtonStyleChange","onUrlChange","onToggleTab","checked","onCancel","floatingButtonActions","onSave","event","isValidUrlOrEmpty","hasValues","urlToSave","addHttps","submitFloatingButton","appBridge","getPluginOptions","ELEMENT_BUTTON","useHotkeys"],"mappings":";;;;;;;;AAcA,MAAMA,IAAsC;AAAA,EACxC,KAAK;AAAA,EACL,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQC,EAAc;AAC1B,GAEaC,IAAmB,MAAkE;AAC9F,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAoE,CAACF,GAAOG,MAAW;AACvG,UAAA,EAAE,MAAAC,GAAM,SAAAC,EAAY,IAAAF;AAE1B,YAAQC,GAAM;AAAA,MACV,KAAK;AACM,eAAA;AAAA,UACH,GAAGJ;AAAAA,UACH,QAAQF,EAAc;AAAA,QAAA;AAAA,MAE9B,KAAK;AACM,eAAA;AAAA,UACH,GAAGE;AAAAA,UACH,QAAQF,EAAc;AAAA,QAAA;AAAA,MAE9B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACM,eAAA;AAAA,UACH,GAAGE;AAAAA,UACH,GAAGK;AAAA,QAAA;AAAA,MAEX;AACWL,eAAAA;AAAAA,IACf;AAAA,KACDH,CAAY;AAER,SAAA,CAACG,GAAOC,CAAQ;AAC3B,GAEaK,IAAiB,MAAM;AAChC,QAAMC,IAASC,KACT,CAACR,GAAOC,CAAQ,IAAIF,EAAiB;AAE3C,EAAAU,EAAU,MAAM;AACN,UAAAC,IAAcC,EAAeJ,CAAM;AAEhC,IAAAN,EAAA;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,QACL,MAAMW,EAAwB,KAAK;AAAA,QACnC,aAAAF;AAAA,QACA,QAAQE,EAAwB,OAAA,IAAWd,EAAc,UAAUA,EAAc;AAAA,QACjF,KAAKc,EAAwB,IAAI;AAAA,MACrC;AAAA,IAAA,CACH;AAAA,EAAA,GACF,CAACX,GAAUM,CAAM,CAAC;AAEf,QAAAM,IAAe,CAACC,MAAkB;AAC3B,IAAAb,EAAA;AAAA,MACL,MAAM;AAAA,MACN,SAAS,EAAE,MAAMa,EAAM;AAAA,IAAA,CAC1B;AAAA,EAAA,GAGCC,IAAsB,CAACD,MAA+B;AAC/C,IAAAb,EAAA;AAAA,MACL,MAAM;AAAA,MACN,SAAS,EAAE,aAAaa,EAAM;AAAA,IAAA,CACjC;AAAA,EAAA,GAGCE,IAAc,CAACF,MAAkB;AAC1B,IAAAb,EAAA;AAAA,MACL,MAAM;AAAA,MACN,SAAS,EAAE,KAAKa,EAAM;AAAA,IAAA,CACzB;AAAA,EAAA,GAGCG,IAAc,CAACC,MAAqB;AAC5B,IAAAjB,EAAAiB,IAAS,EAAE,MAAM,UAAU,IAAc,EAAE,MAAM,WAAA,CAArB;AAAA,EAAiC,GAGrEC,IAAW,MAAM;AACnB,IAAAC,EAAsB,MAAM;AAAA,EAAA,GAG1BC,IAAS,CAACC,MAAuF;AACnG,QAAI,CAACC,EAAkBvB,EAAM,GAAG,KAAK,CAACwB;AAClC;AAGE,UAAAC,IAAYC,EAAS1B,EAAM,GAAG;AAEd,IAAAoB,EAAA,KAAKpB,EAAM,IAAI,GACrCoB,EAAsB,IAAIK,CAAS,GACbL,EAAA,YAAYpB,EAAM,WAAW,GACnDoB,EAAsB,OAAOpB,EAAM,WAAWF,EAAc,OAAO,GAE/D6B,EAAqBpB,CAAM,MAC3Be,KAAA,QAAAA,EAAO;AAAA,EACX,GAGEE,IAAYxB,EAAM,QAAQ,MAAMA,EAAM,SAAS,IAE/C,EAAE,WAAA4B,EAAc,IAAAC,EAAgDtB,GAAQuB,CAAc;AAE5F,SAAAC;AAAA,IACI;AAAA,IACAV;AAAA,IACA;AAAA,MACI,kBAAkB,CAAC,OAAO;AAAA,IAC9B;AAAA,IACA,CAAC;AAAA,EAAA,GAGE;AAAA,IACH,OAAArB;AAAA,IACA,cAAAa;AAAA,IACA,qBAAAE;AAAA,IACA,aAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAE;AAAA,IACA,QAAAE;AAAA,IACA,WAAAG;AAAA,IACA,mBAAAD;AAAA,IACA,WAAAK;AAAA,EAAA;AAER;"}
@@ -0,0 +1,32 @@
1
+ import { createStore as i } from "@frontify/fondue";
2
+ const e = i("floatingButton")({
3
+ openEditorId: null,
4
+ mouseDown: !1,
5
+ updated: !1,
6
+ url: "",
7
+ text: "",
8
+ buttonStyle: "primary",
9
+ newTab: !1,
10
+ mode: "",
11
+ isEditing: !1
12
+ }).extendActions((t) => ({
13
+ reset: () => {
14
+ t.url(""), t.text(""), t.buttonStyle("primary"), t.newTab(!1), t.mode(""), t.isEditing(!1);
15
+ }
16
+ })).extendActions((t) => ({
17
+ show: (o, n) => {
18
+ t.mode(o), t.isEditing(!1), t.openEditorId(n);
19
+ },
20
+ hide: () => {
21
+ t.reset(), t.openEditorId(null);
22
+ }
23
+ })).extendSelectors((t) => ({
24
+ isOpen: (o) => t.openEditorId === o
25
+ })), r = e.set, d = e.get, s = () => e.use;
26
+ export {
27
+ r as floatingButtonActions,
28
+ d as floatingButtonSelectors,
29
+ e as floatingButtonStore,
30
+ s as useFloatingButtonSelectors
31
+ };
32
+ //# sourceMappingURL=floatingButtonStore.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floatingButtonStore.es.js","sources":["../../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/floatingButtonStore.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { createStore } from '@frontify/fondue';\nimport { RichTextButtonStyle } from '../../types';\n\nexport type FloatingButtonMode = '' | 'insert' | 'edit';\n\nexport const floatingButtonStore: any = createStore('floatingButton')({\n openEditorId: null as null | string,\n mouseDown: false,\n updated: false,\n url: '',\n text: '',\n buttonStyle: 'primary' as RichTextButtonStyle,\n newTab: false,\n mode: '' as FloatingButtonMode,\n isEditing: false,\n})\n .extendActions((set) => ({\n reset: () => {\n set.url('');\n set.text('');\n set.buttonStyle('primary');\n set.newTab(false);\n set.mode('');\n set.isEditing(false);\n },\n }))\n .extendActions((set) => ({\n show: (mode: FloatingButtonMode, editorId: string) => {\n set.mode(mode);\n set.isEditing(false);\n set.openEditorId(editorId);\n },\n hide: () => {\n set.reset();\n set.openEditorId(null);\n },\n }))\n .extendSelectors((state) => ({\n isOpen: (editorId: string) => state.openEditorId === editorId,\n }));\n\nexport const floatingButtonActions = floatingButtonStore.set;\nexport const floatingButtonSelectors = floatingButtonStore.get;\nexport const useFloatingButtonSelectors = () => floatingButtonStore.use;\n"],"names":["floatingButtonStore","createStore","set","mode","editorId","state","floatingButtonActions","floatingButtonSelectors","useFloatingButtonSelectors"],"mappings":";AAOa,MAAAA,IAA2BC,EAAY,gBAAgB,EAAE;AAAA,EAClE,cAAc;AAAA,EACd,WAAW;AAAA,EACX,SAAS;AAAA,EACT,KAAK;AAAA,EACL,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AACf,CAAC,EACI,cAAc,CAACC,OAAS;AAAA,EACrB,OAAO,MAAM;AACT,IAAAA,EAAI,IAAI,EAAE,GACVA,EAAI,KAAK,EAAE,GACXA,EAAI,YAAY,SAAS,GACzBA,EAAI,OAAO,EAAK,GAChBA,EAAI,KAAK,EAAE,GACXA,EAAI,UAAU,EAAK;AAAA,EACvB;AACJ,EAAE,EACD,cAAc,CAACA,OAAS;AAAA,EACrB,MAAM,CAACC,GAA0BC,MAAqB;AAClD,IAAAF,EAAI,KAAKC,CAAI,GACbD,EAAI,UAAU,EAAK,GACnBA,EAAI,aAAaE,CAAQ;AAAA,EAC7B;AAAA,EACA,MAAM,MAAM;AACR,IAAAF,EAAI,MAAM,GACVA,EAAI,aAAa,IAAI;AAAA,EACzB;AACJ,EAAE,EACD,gBAAgB,CAACG,OAAW;AAAA,EACzB,QAAQ,CAACD,MAAqBC,EAAM,iBAAiBD;AACzD,EAAE,GAEOE,IAAwBN,EAAoB,KAC5CO,IAA0BP,EAAoB,KAC9CQ,IAA6B,MAAMR,EAAoB;"}
@@ -0,0 +1,57 @@
1
+ import { useEditorRef as y, useEditorVersion as F, getPluginOptions as C, getAboveNode as R, getPluginType as s, getRangeBoundingClientRect as h, getStartPoint as O, getEndPoint as b, getDefaultBoundingClientRect as N, someNode as P, useHotkeys as T, useComposedRef as k } from "@frontify/fondue";
2
+ import { useCallback as v, useEffect as S } from "react";
3
+ import { ELEMENT_BUTTON as o } from "../../createButtonPlugin.es.js";
4
+ import { triggerFloatingButtonEdit as x } from "../../utils/triggerFloatingButtonEdit.es.js";
5
+ import { useVirtualFloatingButton as A } from "./useVirtualFloatingButton.es.js";
6
+ import { getUrlFromEditor as D } from "../../utils/getUrl.es.js";
7
+ import { useFloatingButtonSelectors as u, floatingButtonActions as n, floatingButtonSelectors as l } from "./floatingButtonStore.es.js";
8
+ import { useFloatingButtonEnter as H } from "./useFloatingButtonEnter.es.js";
9
+ import { useFloatingButtonEscape as U } from "./useFloatingButtonEscape.es.js";
10
+ const G = (g) => {
11
+ const t = y(), m = u().mode(), c = u().isOpen(t.id), d = F(), { triggerFloatingButtonHotkeys: a } = C(t, o), f = v(() => {
12
+ const e = R(t, {
13
+ match: { type: s(t, o) }
14
+ });
15
+ if (e) {
16
+ const [, r] = e;
17
+ return h(t, {
18
+ anchor: O(t, r),
19
+ focus: b(t, r)
20
+ });
21
+ }
22
+ return N();
23
+ }, [t]), p = c && m === "edit", { update: i, style: B, floating: E } = A({
24
+ open: p,
25
+ getBoundingClientRect: f,
26
+ ...g
27
+ });
28
+ return S(() => {
29
+ const e = D(t);
30
+ if (e && n.url(e), t.selection && P(t, {
31
+ match: { type: s(t, o) }
32
+ })) {
33
+ n.show("edit", t.id), i();
34
+ return;
35
+ }
36
+ l.mode() === "edit" && n.reset();
37
+ }, [t, d, i]), T(
38
+ a,
39
+ (e) => {
40
+ e.preventDefault(), l.mode() === "edit" && x(t);
41
+ },
42
+ {
43
+ enableOnContentEditable: !0
44
+ },
45
+ []
46
+ ), H(), U(), {
47
+ style: {
48
+ ...B,
49
+ zIndex: 1e3
50
+ },
51
+ ref: k(E)
52
+ };
53
+ };
54
+ export {
55
+ G as useFloatingButtonEdit
56
+ };
57
+ //# sourceMappingURL=useFloatingButtonEdit.es.js.map