@bigbinary/neeto-editor 1.47.131 → 1.47.133

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.
@@ -18,7 +18,7 @@ var ramda = require('ramda');
18
18
  var ReactDOM = require('react-dom/server');
19
19
  var common = require('../chunk-BKvkHB8E.cjs.js');
20
20
  var jsxRuntime = require('react/jsx-runtime');
21
- var v2_Menu = require('../chunk-CLrHidij.cjs.js');
21
+ var v2_Menu = require('../chunk-D86oGQis.cjs.js');
22
22
  var Megaphone = require('@bigbinary/neeto-icons/misc/Megaphone');
23
23
  var index = require('../chunk-NqciyXN3.cjs.js');
24
24
  var lucideReact = require('lucide-react');
@@ -3736,6 +3736,7 @@ var getSharedAttributes = function getSharedAttributes() {
3736
3736
  src: {
3737
3737
  "default": null,
3738
3738
  parseHTML: function parseHTML(element) {
3739
+ if (element.tagName === "IFRAME") return element.getAttribute("src");
3739
3740
  var iframe = element.querySelector("iframe");
3740
3741
  var video = element.querySelector("video");
3741
3742
  return (iframe === null || iframe === void 0 ? void 0 : iframe.getAttribute("src")) || (video === null || video === void 0 ? void 0 : video.getAttribute("src"));
@@ -3751,7 +3752,7 @@ var getSharedAttributes = function getSharedAttributes() {
3751
3752
  videoType: {
3752
3753
  "default": "upload",
3753
3754
  parseHTML: function parseHTML(element) {
3754
- var iframe = element.querySelector("iframe");
3755
+ var iframe = element.tagName === "IFRAME" ? element : element.querySelector("iframe");
3755
3756
  return iframe ? "embed" : "upload";
3756
3757
  }
3757
3758
  },
@@ -3919,18 +3920,27 @@ var UnifiedVideoExtension = useEditorStore.Node3.create({
3919
3920
  return [{
3920
3921
  tag: "div.neeto-editor__image-wrapper",
3921
3922
  getAttrs: function getAttrs(node) {
3923
+ var _figure$querySelector, _figure$querySelector2;
3922
3924
  var figure = node.querySelector("figure[data-video]");
3923
3925
  if (!figure) return false;
3924
- var videoEl = figure.querySelector("video");
3925
- var iframeEl = figure.querySelector("iframe");
3926
- if (!videoEl && !iframeEl) return false;
3926
+ var videoSrc = (_figure$querySelector = figure.querySelector("video")) === null || _figure$querySelector === void 0 ? void 0 : _figure$querySelector.getAttribute("src");
3927
+ var iframeSrc = (_figure$querySelector2 = figure.querySelector("iframe")) === null || _figure$querySelector2 === void 0 ? void 0 : _figure$querySelector2.getAttribute("src");
3928
+ if (!videoSrc && !iframeSrc) return false;
3927
3929
  return node.style.fontWeight !== "normal" && null;
3928
3930
  },
3929
3931
  contentElement: "figcaption"
3930
3932
  }, {
3931
- tag: "iframe[src]"
3933
+ tag: "iframe[src]",
3934
+ // iframes inside our own embed markup are consumed by the
3935
+ // div.neeto-editor__video-wrapper rule below.
3936
+ getAttrs: function getAttrs(element) {
3937
+ return element.closest("div.neeto-editor__video-wrapper") ? false : null;
3938
+ }
3932
3939
  }, {
3933
- tag: "div.neeto-editor__video-wrapper"
3940
+ tag: "div.neeto-editor__video-wrapper",
3941
+ getAttrs: function getAttrs(element) {
3942
+ return element.querySelector("iframe[src]") ? null : false;
3943
+ }
3934
3944
  }];
3935
3945
  },
3936
3946
  renderHTML: function renderHTML(_ref2) {
@@ -5356,8 +5366,11 @@ var Editor$1 = function Editor(_ref, ref) {
5356
5366
  };
5357
5367
  var debouncedOnChangeHandler = reactUtils.useFuncDebounce(function (_ref2) {
5358
5368
  var editor = _ref2.editor;
5359
- return onChange(editor.getHTML());
5369
+ if (!editor.isDestroyed) onChange(editor.getHTML());
5360
5370
  }, 100);
5371
+ React.useEffect(function () {
5372
+ return debouncedOnChangeHandler.cancel;
5373
+ }, []);
5361
5374
  var handleBlur = function handleBlur(props) {
5362
5375
  var editor = props.editor;
5363
5376
  if (!disableTrimOnBlur) {
@@ -5424,6 +5437,7 @@ var Editor$1 = function Editor(_ref, ref) {
5424
5437
  "data-testid": "neeto-editor-content"
5425
5438
  }, ariaAttributes), contentAttributes),
5426
5439
  clipboardTextParser: v2_Menu.clipboardTextParser,
5440
+ handlePaste: v2_Menu.handlePaste,
5427
5441
  transformPastedHTML: v2_Menu.transformPastedHTML
5428
5442
  },
5429
5443
  parseOptions: {