@halo-dev/richtext-editor 0.0.0-alpha.18-2 → 0.0.0-alpha.19

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 (32) hide show
  1. package/dist/components/EditorHeader.vue.d.ts +19 -0
  2. package/dist/components/EditorLinkBubbleMenuItems.vue.d.ts +23 -0
  3. package/dist/components/block/BlockActionButton.vue.d.ts +27 -0
  4. package/dist/components/block/BlockActionInput.vue.d.ts +30 -0
  5. package/dist/components/block/BlockActionSeparator.vue.d.ts +2 -0
  6. package/dist/components/block/BlockCard.vue.d.ts +73 -0
  7. package/dist/extensions/audio/AudioView.vue.d.ts +98 -0
  8. package/dist/extensions/audio/index.d.ts +12 -0
  9. package/dist/extensions/code-block/CodeBlockViewRenderer.vue.d.ts +99 -0
  10. package/dist/extensions/code-block/code-block.d.ts +2 -0
  11. package/dist/extensions/code-block/index.d.ts +2 -0
  12. package/dist/extensions/code-block/lowlight.d.ts +2 -0
  13. package/dist/extensions/commands-menu/CommandsView.vue.d.ts +33 -0
  14. package/dist/extensions/commands-menu/commands.d.ts +3 -0
  15. package/dist/extensions/commands-menu/index.d.ts +3 -0
  16. package/dist/extensions/commands-menu/suggestion.d.ts +29 -0
  17. package/dist/extensions/iframe/IframeView.vue.d.ts +102 -0
  18. package/dist/extensions/iframe/index.d.ts +12 -0
  19. package/dist/extensions/image/ImageView.vue.d.ts +97 -0
  20. package/dist/extensions/image/index.d.ts +2 -0
  21. package/dist/extensions/index.d.ts +35 -0
  22. package/dist/extensions/table/index.d.ts +2 -0
  23. package/dist/extensions/video/VideoView.vue.d.ts +109 -0
  24. package/dist/extensions/video/index.d.ts +12 -0
  25. package/dist/index.d.ts +9 -0
  26. package/dist/menus/index.d.ts +32 -0
  27. package/dist/rich-text-editor.es.js +1162 -304
  28. package/dist/rich-text-editor.es.js.map +1 -1
  29. package/dist/rich-text-editor.iife.js +1202 -344
  30. package/dist/rich-text-editor.iife.js.map +1 -1
  31. package/dist/style.css +24 -4
  32. package/package.json +1 -1
@@ -15027,7 +15027,7 @@ img.ProseMirror-separator {
15027
15027
  })
15028
15028
  };
15029
15029
  }
15030
- function render$Q(instance) {
15030
+ function render$_(instance) {
15031
15031
  var popper2 = div();
15032
15032
  var box = div();
15033
15033
  box.className = BOX_CLASS;
@@ -15082,7 +15082,7 @@ img.ProseMirror-separator {
15082
15082
  onUpdate
15083
15083
  };
15084
15084
  }
15085
- render$Q.$$tippy = true;
15085
+ render$_.$$tippy = true;
15086
15086
  var idCounter = 1;
15087
15087
  var mouseMoveListeners = [];
15088
15088
  var mountedInstances = [];
@@ -15855,7 +15855,7 @@ img.ProseMirror-separator {
15855
15855
  }
15856
15856
  });
15857
15857
  tippy.setDefaultProps({
15858
- render: render$Q
15858
+ render: render$_
15859
15859
  });
15860
15860
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
15861
15861
  function isObject$2(value) {
@@ -19074,10 +19074,10 @@ img.ProseMirror-separator {
19074
19074
  tabindex: "-1"
19075
19075
  };
19076
19076
  vue.popScopeId();
19077
- const render$P = /* @__PURE__ */ _withId((_ctx, _cache, $props, $setup, $data, $options) => {
19077
+ const render$Z = /* @__PURE__ */ _withId((_ctx, _cache, $props, $setup, $data, $options) => {
19078
19078
  return vue.openBlock(), vue.createBlock("div", _hoisted_1$2$1);
19079
19079
  });
19080
- script.render = render$P;
19080
+ script.render = render$Z;
19081
19081
  script.__scopeId = "data-v-b329ee4c";
19082
19082
  script.__file = "src/components/ResizeObserver.vue";
19083
19083
  var PrivateThemeClass = (prop = "theme") => ({
@@ -19124,11 +19124,11 @@ img.ProseMirror-separator {
19124
19124
  ref: "inner",
19125
19125
  class: "v-popper__inner"
19126
19126
  };
19127
- const _hoisted_3$T = /* @__PURE__ */ vue.createElementVNode("div", { class: "v-popper__arrow-outer" }, null, -1);
19128
- const _hoisted_4$2 = /* @__PURE__ */ vue.createElementVNode("div", { class: "v-popper__arrow-inner" }, null, -1);
19127
+ const _hoisted_3$14 = /* @__PURE__ */ vue.createElementVNode("div", { class: "v-popper__arrow-outer" }, null, -1);
19128
+ const _hoisted_4$3 = /* @__PURE__ */ vue.createElementVNode("div", { class: "v-popper__arrow-inner" }, null, -1);
19129
19129
  const _hoisted_5$2 = [
19130
- _hoisted_3$T,
19131
- _hoisted_4$2
19130
+ _hoisted_3$14,
19131
+ _hoisted_4$3
19132
19132
  ];
19133
19133
  function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
19134
19134
  const _component_ResizeObserver = vue.resolveComponent("ResizeObserver");
@@ -19305,7 +19305,7 @@ img.ProseMirror-separator {
19305
19305
  name: "VTooltip",
19306
19306
  vPopperTheme: "tooltip"
19307
19307
  }));
19308
- const _sfc_main$b = vue.defineComponent({
19308
+ const _sfc_main$e = vue.defineComponent({
19309
19309
  name: "VTooltipDirective",
19310
19310
  components: {
19311
19311
  Popper: PrivatePopper(),
@@ -19396,8 +19396,8 @@ img.ProseMirror-separator {
19396
19396
  }
19397
19397
  }
19398
19398
  });
19399
- const _hoisted_1$Y = ["innerHTML"];
19400
- const _hoisted_2$W = ["textContent"];
19399
+ const _hoisted_1$19 = ["innerHTML"];
19400
+ const _hoisted_2$17 = ["textContent"];
19401
19401
  function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
19402
19402
  const _component_PopperContent = vue.resolveComponent("PopperContent");
19403
19403
  const _component_Popper = vue.resolveComponent("Popper");
@@ -19440,10 +19440,10 @@ img.ProseMirror-separator {
19440
19440
  _ctx.html ? (vue.openBlock(), vue.createElementBlock("div", {
19441
19441
  key: 0,
19442
19442
  innerHTML: _ctx.finalContent
19443
- }, null, 8, _hoisted_1$Y)) : (vue.openBlock(), vue.createElementBlock("div", {
19443
+ }, null, 8, _hoisted_1$19)) : (vue.openBlock(), vue.createElementBlock("div", {
19444
19444
  key: 1,
19445
19445
  textContent: vue.toDisplayString(_ctx.finalContent)
19446
- }, null, 8, _hoisted_2$W))
19446
+ }, null, 8, _hoisted_2$17))
19447
19447
  ]),
19448
19448
  _: 2
19449
19449
  }, 1032, ["class", "popper-id", "theme", "shown", "mounted", "skip-transition", "auto-hide", "handle-resize", "classes", "result", "onHide", "onResize"])
@@ -19451,7 +19451,7 @@ img.ProseMirror-separator {
19451
19451
  _: 1
19452
19452
  }, 16, ["theme", "popper-node", "onApplyShow", "onApplyHide"]);
19453
19453
  }
19454
- var PrivateTooltipDirective = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["render", _sfc_render$4]]);
19454
+ var PrivateTooltipDirective = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["render", _sfc_render$4]]);
19455
19455
  const TARGET_CLASS = "v-popper--has-tooltip";
19456
19456
  function getPlacement(options2, modifiers2) {
19457
19457
  let result = options2.placement;
@@ -19578,22 +19578,22 @@ img.ProseMirror-separator {
19578
19578
  const VTooltip = PrivateVTooltip;
19579
19579
  const Dropdown = _sfc_main$3$1;
19580
19580
  const Menu = _sfc_main$2$1;
19581
- const _hoisted_1$X = { class: "editor-header flex items-center py-1 space-x-0.5 justify-center border-b drop-shadow-sm bg-white" };
19582
- const _hoisted_2$V = {
19581
+ const _hoisted_1$18 = { class: "editor-header flex items-center py-1 space-x-0.5 justify-center border-b drop-shadow-sm bg-white" };
19582
+ const _hoisted_2$16 = {
19583
19583
  key: 0,
19584
19584
  class: "px-1"
19585
19585
  };
19586
- const _hoisted_3$S = /* @__PURE__ */ vue.createElementVNode("div", {
19586
+ const _hoisted_3$13 = /* @__PURE__ */ vue.createElementVNode("div", {
19587
19587
  class: "h-5 bg-gray-100",
19588
19588
  style: { "width": "1px" }
19589
19589
  }, null, -1);
19590
- const _hoisted_4$1 = [
19591
- _hoisted_3$S
19590
+ const _hoisted_4$2 = [
19591
+ _hoisted_3$13
19592
19592
  ];
19593
19593
  const _hoisted_5$1 = ["onClick"];
19594
19594
  const _hoisted_6$1 = { class: "relative rounded-md bg-white overflow-hidden drop-shadow w-48 p-1 max-h-72 overflow-y-auto" };
19595
19595
  const _hoisted_7 = ["onClick"];
19596
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
19596
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
19597
19597
  __name: "EditorHeader",
19598
19598
  props: {
19599
19599
  menuItems: {
@@ -19604,14 +19604,14 @@ img.ProseMirror-separator {
19604
19604
  },
19605
19605
  setup(__props) {
19606
19606
  return (_ctx, _cache) => {
19607
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$X, [
19607
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$18, [
19608
19608
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.menuItems, (menuItem, index2) => {
19609
19609
  var _a, _b;
19610
19610
  return vue.openBlock(), vue.createElementBlock("div", {
19611
19611
  key: index2,
19612
19612
  class: "inline-flex items-center justify-center"
19613
19613
  }, [
19614
- menuItem.type === "separator" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$V, _hoisted_4$1)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
19614
+ menuItem.type === "separator" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$16, _hoisted_4$2)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
19615
19615
  !((_a = menuItem.children) == null ? void 0 : _a.length) ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("button", {
19616
19616
  key: 0,
19617
19617
  class: vue.normalizeClass([{ "bg-gray-200": (_b = menuItem.isActive) == null ? void 0 : _b.call(menuItem) }, "hover:bg-gray-100 p-1 rounded-sm"]),
@@ -19663,9 +19663,172 @@ img.ProseMirror-separator {
19663
19663
  }
19664
19664
  });
19665
19665
  const svgArrow = "";
19666
- const _hoisted_1$W = { class: "bg-white flex items-center rounded p-1 border drop-shadow space-x-0.5" };
19667
- const _hoisted_2$U = ["title", "onClick"];
19668
- const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
19666
+ const _hoisted_1$17 = {
19667
+ viewBox: "0 0 24 24",
19668
+ width: "1.2em",
19669
+ height: "1.2em"
19670
+ };
19671
+ const _hoisted_2$15 = /* @__PURE__ */ vue.createElementVNode("path", {
19672
+ fill: "currentColor",
19673
+ d: "M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24a2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24a2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24a.973.973 0 0 1 0-1.42Z"
19674
+ }, null, -1);
19675
+ const _hoisted_3$12 = [
19676
+ _hoisted_2$15
19677
+ ];
19678
+ function render$Y(_ctx, _cache) {
19679
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$17, _hoisted_3$12);
19680
+ }
19681
+ const MdiLinkVariant = { name: "mdi-link-variant", render: render$Y };
19682
+ const _hoisted_1$16 = {
19683
+ viewBox: "0 0 24 24",
19684
+ width: "1.2em",
19685
+ height: "1.2em"
19686
+ };
19687
+ const _hoisted_2$14 = /* @__PURE__ */ vue.createElementVNode("path", {
19688
+ fill: "currentColor",
19689
+ d: "M2 5.27L3.28 4L20 20.72L18.73 22l-4.83-4.83l-2.61 2.61a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24a2.982 2.982 0 0 0 4.24 0l2.62-2.6l-1.62-1.61c-.01.24-.11.49-.29.68c-.39.39-1.03.39-1.42 0A4.973 4.973 0 0 1 7.72 11L2 5.27m10.71-1.05a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24a2.982 2.982 0 0 0-4.24 0l-3.33 3.33l-1.41-1.42l3.33-3.33m.7 4.95c.39-.39 1.03-.39 1.42 0a4.999 4.999 0 0 1 1.23 5.06l-1.78-1.77c-.05-.68-.34-1.35-.87-1.87a.973.973 0 0 1 0-1.42Z"
19690
+ }, null, -1);
19691
+ const _hoisted_3$11 = [
19692
+ _hoisted_2$14
19693
+ ];
19694
+ function render$X(_ctx, _cache) {
19695
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$16, _hoisted_3$11);
19696
+ }
19697
+ const MdiLinkVariantOff = { name: "mdi-link-variant-off", render: render$X };
19698
+ const _hoisted_1$15 = {
19699
+ viewBox: "0 0 24 24",
19700
+ width: "1.2em",
19701
+ height: "1.2em"
19702
+ };
19703
+ const _hoisted_2$13 = /* @__PURE__ */ vue.createElementVNode("path", {
19704
+ fill: "currentColor",
19705
+ d: "m21 12l-7-7v4C7 10 4 15 3 20c2.5-3.5 6-5.1 11-5.1V19l7-7Z"
19706
+ }, null, -1);
19707
+ const _hoisted_3$10 = [
19708
+ _hoisted_2$13
19709
+ ];
19710
+ function render$W(_ctx, _cache) {
19711
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$15, _hoisted_3$10);
19712
+ }
19713
+ const MdiShare = { name: "mdi-share", render: render$W };
19714
+ const _hoisted_1$14 = { class: "relative rounded-md bg-white overflow-hidden drop-shadow w-96 p-1 max-h-72 overflow-y-auto" };
19715
+ const _hoisted_2$12 = { class: "inline-flex items-center mt-2" };
19716
+ const _hoisted_3$$ = /* @__PURE__ */ vue.createElementVNode("span", { class: "ml-2 text-sm text-gray-500" }, "\u5728\u65B0\u7A97\u53E3\u6253\u5F00", -1);
19717
+ const _hoisted_4$1 = ["href"];
19718
+ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
19719
+ __name: "EditorLinkBubbleMenuItems",
19720
+ props: {
19721
+ editor: {
19722
+ type: Object,
19723
+ required: true
19724
+ }
19725
+ },
19726
+ setup(__props) {
19727
+ const props = __props;
19728
+ const href = vue.computed({
19729
+ get() {
19730
+ const attrs = props.editor.getAttributes("link");
19731
+ return attrs == null ? void 0 : attrs.href;
19732
+ },
19733
+ set(value) {
19734
+ props.editor.commands.setLink({
19735
+ href: value,
19736
+ target: target.value ? "_blank" : "_self"
19737
+ });
19738
+ }
19739
+ });
19740
+ const target = vue.computed({
19741
+ get() {
19742
+ const attrs = props.editor.getAttributes("link");
19743
+ return (attrs == null ? void 0 : attrs.target) === "_blank";
19744
+ },
19745
+ set(value) {
19746
+ props.editor.commands.setLink({
19747
+ href: href.value,
19748
+ target: value ? "_blank" : "_self"
19749
+ });
19750
+ }
19751
+ });
19752
+ function handleUnSetLink() {
19753
+ props.editor.commands.unsetLink();
19754
+ }
19755
+ return (_ctx, _cache) => {
19756
+ var _a;
19757
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
19758
+ vue.createVNode(vue.unref(Dropdown), {
19759
+ class: "inline-flex",
19760
+ triggers: ["click"],
19761
+ distance: 10
19762
+ }, {
19763
+ popper: vue.withCtx(() => [
19764
+ vue.createElementVNode("div", _hoisted_1$14, [
19765
+ vue.withDirectives(vue.createElementVNode("input", {
19766
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(href) ? href.value = $event : null),
19767
+ placeholder: "\u94FE\u63A5\u5730\u5740",
19768
+ class: "bg-gray-50 rounded-md hover:bg-gray-100 block px-2 w-full py-1.5 text-sm text-gray-900 border border-gray-300 focus:ring-blue-500 focus:border-blue-500"
19769
+ }, null, 512), [
19770
+ [
19771
+ vue.vModelText,
19772
+ vue.unref(href),
19773
+ void 0,
19774
+ { lazy: true }
19775
+ ]
19776
+ ]),
19777
+ vue.createElementVNode("label", _hoisted_2$12, [
19778
+ vue.withDirectives(vue.createElementVNode("input", {
19779
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(target) ? target.value = $event : null),
19780
+ type: "checkbox",
19781
+ class: "form-checkbox text-blue-600 focus:ring-blue-500 border-gray-300 rounded"
19782
+ }, null, 512), [
19783
+ [vue.vModelCheckbox, vue.unref(target)]
19784
+ ]),
19785
+ _hoisted_3$$
19786
+ ])
19787
+ ])
19788
+ ]),
19789
+ default: vue.withCtx(() => [
19790
+ vue.withDirectives((vue.openBlock(), vue.createElementBlock("button", {
19791
+ class: vue.normalizeClass(["text-gray-600 text-lg hover:bg-gray-100 p-0.5 rounded-sm", { "bg-gray-200 !text-black": __props.editor.isActive("link") }])
19792
+ }, [
19793
+ vue.createVNode(vue.unref(MdiLinkVariant))
19794
+ ], 2)), [
19795
+ [vue.unref(VTooltip), `${__props.editor.isActive("link") ? "\u4FEE\u6539" : "\u6DFB\u52A0"}\u94FE\u63A5`]
19796
+ ])
19797
+ ]),
19798
+ _: 1
19799
+ }),
19800
+ __props.editor.isActive("link") ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("button", {
19801
+ key: 0,
19802
+ class: "text-gray-600 text-lg hover:bg-gray-100 p-0.5 rounded-sm",
19803
+ onClick: handleUnSetLink
19804
+ }, [
19805
+ vue.createVNode(vue.unref(MdiLinkVariantOff))
19806
+ ])), [
19807
+ [vue.unref(VTooltip), `\u53D6\u6D88\u94FE\u63A5`]
19808
+ ]) : vue.createCommentVNode("", true),
19809
+ __props.editor.isActive("link") ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("a", {
19810
+ key: 1,
19811
+ class: "text-gray-600 text-lg hover:bg-gray-100 p-0.5 rounded-sm",
19812
+ href: (_a = __props.editor.getAttributes("link")) == null ? void 0 : _a.href,
19813
+ target: "_blank"
19814
+ }, [
19815
+ vue.createVNode(vue.unref(MdiShare))
19816
+ ], 8, _hoisted_4$1)), [
19817
+ [vue.unref(VTooltip), `\u6253\u5F00\u94FE\u63A5`]
19818
+ ]) : vue.createCommentVNode("", true)
19819
+ ], 64);
19820
+ };
19821
+ }
19822
+ });
19823
+ const _hoisted_1$13 = { class: "bg-white flex items-center rounded p-1 border drop-shadow space-x-0.5" };
19824
+ const _hoisted_2$11 = ["title", "onClick"];
19825
+ const _hoisted_3$_ = /* @__PURE__ */ vue.createElementVNode("div", { class: "px-1" }, [
19826
+ /* @__PURE__ */ vue.createElementVNode("div", {
19827
+ class: "h-5 bg-gray-100",
19828
+ style: { "width": "1px" }
19829
+ })
19830
+ ], -1);
19831
+ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
19669
19832
  __name: "EditorBubbleMenu",
19670
19833
  props: {
19671
19834
  editor: {
@@ -19685,10 +19848,10 @@ img.ProseMirror-separator {
19685
19848
  "tippy-options": { duration: 100, arrow: vue.unref(ROUND_ARROW), maxWidth: "100%" }
19686
19849
  }, {
19687
19850
  default: vue.withCtx(() => [
19688
- vue.createElementVNode("div", _hoisted_1$W, [
19851
+ vue.createElementVNode("div", _hoisted_1$13, [
19689
19852
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.menuItems, (menuItem, index2) => {
19690
19853
  var _a;
19691
- return vue.openBlock(), vue.createElementBlock("button", {
19854
+ return vue.withDirectives((vue.openBlock(), vue.createElementBlock("button", {
19692
19855
  key: index2,
19693
19856
  class: vue.normalizeClass([{ "bg-gray-200 !text-black": (_a = menuItem.isActive) == null ? void 0 : _a.call(menuItem) }, "text-gray-600 text-lg hover:bg-gray-100 p-0.5 rounded-sm"]),
19694
19857
  title: menuItem.title,
@@ -19697,11 +19860,13 @@ img.ProseMirror-separator {
19697
19860
  return (_a2 = menuItem.action) == null ? void 0 : _a2.call(menuItem);
19698
19861
  }
19699
19862
  }, [
19700
- vue.withDirectives((vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(menuItem.icon), null, null, 512)), [
19701
- [vue.unref(VTooltip), menuItem.title]
19702
- ])
19703
- ], 10, _hoisted_2$U);
19704
- }), 128))
19863
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(menuItem.icon)))
19864
+ ], 10, _hoisted_2$11)), [
19865
+ [vue.unref(VTooltip), menuItem.title]
19866
+ ]);
19867
+ }), 128)),
19868
+ _hoisted_3$_,
19869
+ vue.createVNode(_sfc_main$c, { editor: __props.editor }, null, 8, ["editor"])
19705
19870
  ])
19706
19871
  ]),
19707
19872
  _: 1
@@ -19709,13 +19874,13 @@ img.ProseMirror-separator {
19709
19874
  };
19710
19875
  }
19711
19876
  });
19712
- const _hoisted_1$V = {
19877
+ const _hoisted_1$12 = {
19713
19878
  key: 0,
19714
19879
  class: "halo-rich-text-editor"
19715
19880
  };
19716
- const _hoisted_2$T = { class: "h-full flex flex-row w-full" };
19717
- const _hoisted_3$R = { class: "h-full" };
19718
- const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
19881
+ const _hoisted_2$10 = { class: "h-full flex flex-row w-full" };
19882
+ const _hoisted_3$Z = { class: "h-full" };
19883
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
19719
19884
  __name: "Editor",
19720
19885
  props: {
19721
19886
  editor: {
@@ -19745,19 +19910,19 @@ img.ProseMirror-separator {
19745
19910
  },
19746
19911
  setup(__props) {
19747
19912
  return (_ctx, _cache) => {
19748
- return __props.editor ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$V, [
19749
- vue.createVNode(_sfc_main$9, {
19913
+ return __props.editor ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$12, [
19914
+ vue.createVNode(_sfc_main$b, {
19750
19915
  editor: __props.editor,
19751
19916
  "menu-items": __props.bubbleMenuItems
19752
19917
  }, null, 8, ["editor", "menu-items"]),
19753
- vue.createVNode(_sfc_main$a, { "menu-items": __props.toolbarMenuItems }, null, 8, ["menu-items"]),
19754
- vue.createElementVNode("div", _hoisted_2$T, [
19918
+ vue.createVNode(_sfc_main$d, { "menu-items": __props.toolbarMenuItems }, null, 8, ["menu-items"]),
19919
+ vue.createElementVNode("div", _hoisted_2$10, [
19755
19920
  vue.createVNode(vue.unref(EditorContent), {
19756
19921
  editor: __props.editor,
19757
19922
  style: vue.normalizeStyle(__props.contentStyles),
19758
19923
  class: "editor-content prose prose-base !max-w-none prose-pre:p-0 bg-white prose-p:mt-3 prose-p:mb-3 prose-img:mt-0 prose-img:mb-0"
19759
19924
  }, null, 8, ["editor", "style"]),
19760
- vue.createElementVNode("div", _hoisted_3$R, [
19925
+ vue.createElementVNode("div", _hoisted_3$Z, [
19761
19926
  vue.renderSlot(_ctx.$slots, "extra")
19762
19927
  ])
19763
19928
  ])
@@ -23017,9 +23182,9 @@ img.ProseMirror-separator {
23017
23182
  ];
23018
23183
  }
23019
23184
  });
23020
- const _hoisted_1$U = { class: "command-items" };
23021
- const _hoisted_2$S = ["id", "onClick"];
23022
- const _hoisted_3$Q = { class: "command-title group-hover:text-gray-900 group-hover:font-medium" };
23185
+ const _hoisted_1$11 = { class: "command-items" };
23186
+ const _hoisted_2$$ = ["id", "onClick"];
23187
+ const _hoisted_3$Y = { class: "command-title group-hover:text-gray-900 group-hover:font-medium" };
23023
23188
  const _hoisted_4 = {
23024
23189
  key: 1,
23025
23190
  class: "command-empty"
@@ -23028,7 +23193,7 @@ img.ProseMirror-separator {
23028
23193
  const _hoisted_6 = [
23029
23194
  _hoisted_5
23030
23195
  ];
23031
- const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
23196
+ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
23032
23197
  __name: "CommandsView",
23033
23198
  props: {
23034
23199
  items: {
@@ -23095,7 +23260,7 @@ img.ProseMirror-separator {
23095
23260
  onKeyDown
23096
23261
  });
23097
23262
  return (_ctx, _cache) => {
23098
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$U, [
23263
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$11, [
23099
23264
  __props.items.length ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(__props.items, (item, index2) => {
23100
23265
  return vue.openBlock(), vue.createElementBlock("div", {
23101
23266
  id: `command-item-${index2}`,
@@ -23104,222 +23269,254 @@ img.ProseMirror-separator {
23104
23269
  onClick: ($event) => handleSelectItem(index2)
23105
23270
  }, [
23106
23271
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(item.icon), { class: "command-icon group-hover:!bg-white" })),
23107
- vue.createElementVNode("span", _hoisted_3$Q, vue.toDisplayString(item.title), 1)
23108
- ], 10, _hoisted_2$S);
23272
+ vue.createElementVNode("span", _hoisted_3$Y, vue.toDisplayString(item.title), 1)
23273
+ ], 10, _hoisted_2$$);
23109
23274
  }), 128)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, _hoisted_6))
23110
23275
  ]);
23111
23276
  };
23112
23277
  }
23113
23278
  });
23114
23279
  const CommandsView_vue_vue_type_style_index_0_lang = "";
23115
- const _hoisted_1$T = {
23280
+ const _hoisted_1$10 = {
23116
23281
  viewBox: "0 0 24 24",
23117
23282
  width: "1.2em",
23118
23283
  height: "1.2em"
23119
23284
  };
23120
- const _hoisted_2$R = /* @__PURE__ */ vue.createElementVNode("path", {
23285
+ const _hoisted_2$_ = /* @__PURE__ */ vue.createElementVNode("path", {
23121
23286
  fill: "currentColor",
23122
23287
  d: "M13 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4h-2v6H9V4h4m0 6a2 2 0 0 0 2-2a2 2 0 0 0-2-2h-2v4h2Z"
23123
23288
  }, null, -1);
23124
- const _hoisted_3$P = [
23125
- _hoisted_2$R
23289
+ const _hoisted_3$X = [
23290
+ _hoisted_2$_
23126
23291
  ];
23127
- function render$O(_ctx, _cache) {
23128
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$T, _hoisted_3$P);
23292
+ function render$V(_ctx, _cache) {
23293
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$10, _hoisted_3$X);
23129
23294
  }
23130
- const MdiFormatParagraph = { name: "mdi-format-paragraph", render: render$O };
23131
- const _hoisted_1$S = {
23295
+ const MdiFormatParagraph = { name: "mdi-format-paragraph", render: render$V };
23296
+ const _hoisted_1$$ = {
23132
23297
  viewBox: "0 0 24 24",
23133
23298
  width: "1.2em",
23134
23299
  height: "1.2em"
23135
23300
  };
23136
- const _hoisted_2$Q = /* @__PURE__ */ vue.createElementVNode("path", {
23301
+ const _hoisted_2$Z = /* @__PURE__ */ vue.createElementVNode("path", {
23137
23302
  fill: "currentColor",
23138
23303
  d: "M3 4h2v6h4V4h2v14H9v-6H5v6H3V4m11 14v-2h2V6.31l-2.5 1.44V5.44L16 4h2v12h2v2h-6Z"
23139
23304
  }, null, -1);
23140
- const _hoisted_3$O = [
23141
- _hoisted_2$Q
23305
+ const _hoisted_3$W = [
23306
+ _hoisted_2$Z
23142
23307
  ];
23143
- function render$N(_ctx, _cache) {
23144
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$S, _hoisted_3$O);
23308
+ function render$U(_ctx, _cache) {
23309
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$$, _hoisted_3$W);
23145
23310
  }
23146
- const MdiFormatHeader1 = { name: "mdi-format-header-1", render: render$N };
23147
- const _hoisted_1$R = {
23311
+ const MdiFormatHeader1 = { name: "mdi-format-header-1", render: render$U };
23312
+ const _hoisted_1$_ = {
23148
23313
  viewBox: "0 0 24 24",
23149
23314
  width: "1.2em",
23150
23315
  height: "1.2em"
23151
23316
  };
23152
- const _hoisted_2$P = /* @__PURE__ */ vue.createElementVNode("path", {
23317
+ const _hoisted_2$Y = /* @__PURE__ */ vue.createElementVNode("path", {
23153
23318
  fill: "currentColor",
23154
23319
  d: "M3 4h2v6h4V4h2v14H9v-6H5v6H3V4m18 14h-6a2 2 0 0 1-2-2c0-.53.2-1 .54-1.36l4.87-5.23c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2a2 2 0 0 0-2 2h-2a4 4 0 0 1 4-4a4 4 0 0 1 4 4c0 1.1-.45 2.1-1.17 2.83L15 16h6v2Z"
23155
23320
  }, null, -1);
23156
- const _hoisted_3$N = [
23157
- _hoisted_2$P
23321
+ const _hoisted_3$V = [
23322
+ _hoisted_2$Y
23158
23323
  ];
23159
- function render$M(_ctx, _cache) {
23160
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$R, _hoisted_3$N);
23324
+ function render$T(_ctx, _cache) {
23325
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$_, _hoisted_3$V);
23161
23326
  }
23162
- const MdiFormatHeader2 = { name: "mdi-format-header-2", render: render$M };
23163
- const _hoisted_1$Q = {
23327
+ const MdiFormatHeader2 = { name: "mdi-format-header-2", render: render$T };
23328
+ const _hoisted_1$Z = {
23164
23329
  viewBox: "0 0 24 24",
23165
23330
  width: "1.2em",
23166
23331
  height: "1.2em"
23167
23332
  };
23168
- const _hoisted_2$O = /* @__PURE__ */ vue.createElementVNode("path", {
23333
+ const _hoisted_2$X = /* @__PURE__ */ vue.createElementVNode("path", {
23169
23334
  fill: "currentColor",
23170
23335
  d: "M3 4h2v6h4V4h2v14H9v-6H5v6H3V4m12 0h4a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h2v1h4v-4h-4v-2h4V6h-4v1h-2V6a2 2 0 0 1 2-2Z"
23171
23336
  }, null, -1);
23172
- const _hoisted_3$M = [
23173
- _hoisted_2$O
23337
+ const _hoisted_3$U = [
23338
+ _hoisted_2$X
23174
23339
  ];
23175
- function render$L(_ctx, _cache) {
23176
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$Q, _hoisted_3$M);
23340
+ function render$S(_ctx, _cache) {
23341
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$Z, _hoisted_3$U);
23177
23342
  }
23178
- const MdiFormatHeader3 = { name: "mdi-format-header-3", render: render$L };
23179
- const _hoisted_1$P = {
23343
+ const MdiFormatHeader3 = { name: "mdi-format-header-3", render: render$S };
23344
+ const _hoisted_1$Y = {
23180
23345
  viewBox: "0 0 24 24",
23181
23346
  width: "1.2em",
23182
23347
  height: "1.2em"
23183
23348
  };
23184
- const _hoisted_2$N = /* @__PURE__ */ vue.createElementVNode("path", {
23349
+ const _hoisted_2$W = /* @__PURE__ */ vue.createElementVNode("path", {
23185
23350
  fill: "currentColor",
23186
23351
  d: "M3 4h2v6h4V4h2v14H9v-6H5v6H3V4m15 14v-5h-5v-2l5-7h2v7h1v2h-1v5h-2m0-7V7.42L15.45 11H18Z"
23187
23352
  }, null, -1);
23188
- const _hoisted_3$L = [
23189
- _hoisted_2$N
23353
+ const _hoisted_3$T = [
23354
+ _hoisted_2$W
23190
23355
  ];
23191
- function render$K(_ctx, _cache) {
23192
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$P, _hoisted_3$L);
23356
+ function render$R(_ctx, _cache) {
23357
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$Y, _hoisted_3$T);
23193
23358
  }
23194
- const MdiFormatHeader4 = { name: "mdi-format-header-4", render: render$K };
23195
- const _hoisted_1$O = {
23359
+ const MdiFormatHeader4 = { name: "mdi-format-header-4", render: render$R };
23360
+ const _hoisted_1$X = {
23196
23361
  viewBox: "0 0 24 24",
23197
23362
  width: "1.2em",
23198
23363
  height: "1.2em"
23199
23364
  };
23200
- const _hoisted_2$M = /* @__PURE__ */ vue.createElementVNode("path", {
23365
+ const _hoisted_2$V = /* @__PURE__ */ vue.createElementVNode("path", {
23201
23366
  fill: "currentColor",
23202
23367
  d: "M3 4h2v6h4V4h2v14H9v-6H5v6H3V4m12 0h5v2h-5v4h2a4 4 0 0 1 4 4a4 4 0 0 1-4 4h-2a2 2 0 0 1-2-2v-1h2v1h2a2 2 0 0 0 2-2a2 2 0 0 0-2-2h-2a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Z"
23203
23368
  }, null, -1);
23204
- const _hoisted_3$K = [
23205
- _hoisted_2$M
23369
+ const _hoisted_3$S = [
23370
+ _hoisted_2$V
23206
23371
  ];
23207
- function render$J(_ctx, _cache) {
23208
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$O, _hoisted_3$K);
23372
+ function render$Q(_ctx, _cache) {
23373
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$X, _hoisted_3$S);
23209
23374
  }
23210
- const MdiFormatHeader5 = { name: "mdi-format-header-5", render: render$J };
23211
- const _hoisted_1$N = {
23375
+ const MdiFormatHeader5 = { name: "mdi-format-header-5", render: render$Q };
23376
+ const _hoisted_1$W = {
23212
23377
  viewBox: "0 0 24 24",
23213
23378
  width: "1.2em",
23214
23379
  height: "1.2em"
23215
23380
  };
23216
- const _hoisted_2$L = /* @__PURE__ */ vue.createElementVNode("path", {
23381
+ const _hoisted_2$U = /* @__PURE__ */ vue.createElementVNode("path", {
23217
23382
  fill: "currentColor",
23218
23383
  d: "M3 4h2v6h4V4h2v14H9v-6H5v6H3V4m12 0h4a2 2 0 0 1 2 2v1h-2V6h-4v4h4a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2m0 8v4h4v-4h-4Z"
23219
23384
  }, null, -1);
23220
- const _hoisted_3$J = [
23221
- _hoisted_2$L
23385
+ const _hoisted_3$R = [
23386
+ _hoisted_2$U
23222
23387
  ];
23223
- function render$I(_ctx, _cache) {
23224
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$N, _hoisted_3$J);
23388
+ function render$P(_ctx, _cache) {
23389
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$W, _hoisted_3$R);
23225
23390
  }
23226
- const MdiFormatHeader6 = { name: "mdi-format-header-6", render: render$I };
23227
- const _hoisted_1$M = {
23391
+ const MdiFormatHeader6 = { name: "mdi-format-header-6", render: render$P };
23392
+ const _hoisted_1$V = {
23228
23393
  viewBox: "0 0 24 24",
23229
23394
  width: "1.2em",
23230
23395
  height: "1.2em"
23231
23396
  };
23232
- const _hoisted_2$K = /* @__PURE__ */ vue.createElementVNode("path", {
23397
+ const _hoisted_2$T = /* @__PURE__ */ vue.createElementVNode("path", {
23233
23398
  fill: "currentColor",
23234
23399
  d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-8 5H9v2c0 1.1-.9 2-2 2c1.1 0 2 .9 2 2v2h2v2H9c-1.1 0-2-.9-2-2v-1c0-1.1-.9-2-2-2v-2c1.1 0 2-.9 2-2V8c0-1.1.9-2 2-2h2v2m8 5c-1.1 0-2 .9-2 2v1c0 1.1-.9 2-2 2h-2v-2h2v-2c0-1.1.9-2 2-2c-1.1 0-2-.9-2-2V8h-2V6h2c1.1 0 2 .9 2 2v1c0 1.1.9 2 2 2v2Z"
23235
23400
  }, null, -1);
23236
- const _hoisted_3$I = [
23237
- _hoisted_2$K
23401
+ const _hoisted_3$Q = [
23402
+ _hoisted_2$T
23238
23403
  ];
23239
- function render$H(_ctx, _cache) {
23240
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$M, _hoisted_3$I);
23404
+ function render$O(_ctx, _cache) {
23405
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$V, _hoisted_3$Q);
23241
23406
  }
23242
- const MdiCodeBracesBox = { name: "mdi-code-braces-box", render: render$H };
23243
- const _hoisted_1$L = {
23407
+ const MdiCodeBracesBox = { name: "mdi-code-braces-box", render: render$O };
23408
+ const _hoisted_1$U = {
23244
23409
  viewBox: "0 0 24 24",
23245
23410
  width: "1.2em",
23246
23411
  height: "1.2em"
23247
23412
  };
23248
- const _hoisted_2$J = /* @__PURE__ */ vue.createElementVNode("path", {
23413
+ const _hoisted_2$S = /* @__PURE__ */ vue.createElementVNode("path", {
23249
23414
  fill: "currentColor",
23250
23415
  d: "M7 5h14v2H7V5m0 8v-2h14v2H7M4 4.5A1.5 1.5 0 0 1 5.5 6A1.5 1.5 0 0 1 4 7.5A1.5 1.5 0 0 1 2.5 6A1.5 1.5 0 0 1 4 4.5m0 6A1.5 1.5 0 0 1 5.5 12A1.5 1.5 0 0 1 4 13.5A1.5 1.5 0 0 1 2.5 12A1.5 1.5 0 0 1 4 10.5M7 19v-2h14v2H7m-3-2.5A1.5 1.5 0 0 1 5.5 18A1.5 1.5 0 0 1 4 19.5A1.5 1.5 0 0 1 2.5 18A1.5 1.5 0 0 1 4 16.5Z"
23251
23416
  }, null, -1);
23252
- const _hoisted_3$H = [
23253
- _hoisted_2$J
23417
+ const _hoisted_3$P = [
23418
+ _hoisted_2$S
23254
23419
  ];
23255
- function render$G(_ctx, _cache) {
23256
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$L, _hoisted_3$H);
23420
+ function render$N(_ctx, _cache) {
23421
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$U, _hoisted_3$P);
23257
23422
  }
23258
- const MdiFormatListBulleted = { name: "mdi-format-list-bulleted", render: render$G };
23259
- const _hoisted_1$K = {
23423
+ const MdiFormatListBulleted = { name: "mdi-format-list-bulleted", render: render$N };
23424
+ const _hoisted_1$T = {
23260
23425
  viewBox: "0 0 24 24",
23261
23426
  width: "1.2em",
23262
23427
  height: "1.2em"
23263
23428
  };
23264
- const _hoisted_2$I = /* @__PURE__ */ vue.createElementVNode("path", {
23429
+ const _hoisted_2$R = /* @__PURE__ */ vue.createElementVNode("path", {
23265
23430
  fill: "currentColor",
23266
23431
  d: "M21 19v-2H8v2h13m0-6v-2H8v2h13M8 7h13V5H8v2M4 5v2h2V5H4M3 5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5m1 6v2h2v-2H4m-1 0a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-2m1 6v2h2v-2H4m-1 0a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-2Z"
23267
23432
  }, null, -1);
23268
- const _hoisted_3$G = [
23269
- _hoisted_2$I
23433
+ const _hoisted_3$O = [
23434
+ _hoisted_2$R
23270
23435
  ];
23271
- function render$F(_ctx, _cache) {
23272
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$K, _hoisted_3$G);
23436
+ function render$M(_ctx, _cache) {
23437
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$T, _hoisted_3$O);
23273
23438
  }
23274
- const MdiFormatListCheckbox = { name: "mdi-format-list-checkbox", render: render$F };
23275
- const _hoisted_1$J = {
23439
+ const MdiFormatListCheckbox = { name: "mdi-format-list-checkbox", render: render$M };
23440
+ const _hoisted_1$S = {
23276
23441
  viewBox: "0 0 24 24",
23277
23442
  width: "1.2em",
23278
23443
  height: "1.2em"
23279
23444
  };
23280
- const _hoisted_2$H = /* @__PURE__ */ vue.createElementVNode("path", {
23445
+ const _hoisted_2$Q = /* @__PURE__ */ vue.createElementVNode("path", {
23281
23446
  fill: "currentColor",
23282
23447
  d: "M7 13v-2h14v2H7m0 6v-2h14v2H7M7 7V5h14v2H7M3 8V5H2V4h2v4H3m-1 9v-1h3v4H2v-1h2v-.5H3v-1h1V17H2m2.25-7a.75.75 0 0 1 .75.75c0 .2-.08.39-.21.52L3.12 13H5v1H2v-.92L4 11H2v-1h2.25Z"
23283
23448
  }, null, -1);
23284
- const _hoisted_3$F = [
23285
- _hoisted_2$H
23449
+ const _hoisted_3$N = [
23450
+ _hoisted_2$Q
23286
23451
  ];
23287
- function render$E(_ctx, _cache) {
23288
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$J, _hoisted_3$F);
23452
+ function render$L(_ctx, _cache) {
23453
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$S, _hoisted_3$N);
23289
23454
  }
23290
- const MdiFormatListNumbered = { name: "mdi-format-list-numbered", render: render$E };
23291
- const _hoisted_1$I = {
23455
+ const MdiFormatListNumbered = { name: "mdi-format-list-numbered", render: render$L };
23456
+ const _hoisted_1$R = {
23292
23457
  viewBox: "0 0 24 24",
23293
23458
  width: "1.2em",
23294
23459
  height: "1.2em"
23295
23460
  };
23296
- const _hoisted_2$G = /* @__PURE__ */ vue.createElementVNode("path", {
23461
+ const _hoisted_2$P = /* @__PURE__ */ vue.createElementVNode("path", {
23297
23462
  fill: "currentColor",
23298
23463
  d: "M5 4h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2m0 4v4h6V8H5m8 0v4h6V8h-6m-8 6v4h6v-4H5m8 0v4h6v-4h-6Z"
23299
23464
  }, null, -1);
23300
- const _hoisted_3$E = [
23301
- _hoisted_2$G
23465
+ const _hoisted_3$M = [
23466
+ _hoisted_2$P
23302
23467
  ];
23303
- function render$D(_ctx, _cache) {
23304
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$I, _hoisted_3$E);
23468
+ function render$K(_ctx, _cache) {
23469
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$R, _hoisted_3$M);
23305
23470
  }
23306
- const MdiTable = { name: "mdi-table", render: render$D };
23307
- const _hoisted_1$H = {
23471
+ const MdiTable = { name: "mdi-table", render: render$K };
23472
+ const _hoisted_1$Q = {
23308
23473
  viewBox: "0 0 24 24",
23309
23474
  width: "1.2em",
23310
23475
  height: "1.2em"
23311
23476
  };
23312
- const _hoisted_2$F = /* @__PURE__ */ vue.createElementVNode("path", {
23477
+ const _hoisted_2$O = /* @__PURE__ */ vue.createElementVNode("path", {
23313
23478
  fill: "currentColor",
23314
23479
  d: "M16.36 14c.08-.66.14-1.32.14-2c0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2c0-.68.06-1.35.16-2h4.68c.09.65.16 1.32.16 2c0 .68-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.923 7.923 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8.008 8.008 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2c0 .68.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.65 15.65 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2Z"
23315
23480
  }, null, -1);
23316
- const _hoisted_3$D = [
23317
- _hoisted_2$F
23481
+ const _hoisted_3$L = [
23482
+ _hoisted_2$O
23318
23483
  ];
23319
- function render$C(_ctx, _cache) {
23320
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$H, _hoisted_3$D);
23484
+ function render$J(_ctx, _cache) {
23485
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$Q, _hoisted_3$L);
23486
+ }
23487
+ const MdiWeb = { name: "mdi-web", render: render$J };
23488
+ const _hoisted_1$P = {
23489
+ viewBox: "0 0 24 24",
23490
+ width: "1.2em",
23491
+ height: "1.2em"
23492
+ };
23493
+ const _hoisted_2$N = /* @__PURE__ */ vue.createElementVNode("path", {
23494
+ fill: "currentColor",
23495
+ d: "M17 10.5V7a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-3.5l4 4v-11l-4 4Z"
23496
+ }, null, -1);
23497
+ const _hoisted_3$K = [
23498
+ _hoisted_2$N
23499
+ ];
23500
+ function render$I(_ctx, _cache) {
23501
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$P, _hoisted_3$K);
23502
+ }
23503
+ const MdiVideo = { name: "mdi-video", render: render$I };
23504
+ const _hoisted_1$O = {
23505
+ viewBox: "0 0 24 24",
23506
+ width: "1.2em",
23507
+ height: "1.2em"
23508
+ };
23509
+ const _hoisted_2$M = /* @__PURE__ */ vue.createElementVNode("path", {
23510
+ fill: "currentColor",
23511
+ d: "M16 9h-3v5.5a2.5 2.5 0 0 1-2.5 2.5A2.5 2.5 0 0 1 8 14.5a2.5 2.5 0 0 1 2.5-2.5c.57 0 1.08.19 1.5.5V7h4v2m-4-7a10 10 0 0 1 10 10a10 10 0 0 1-10 10A10 10 0 0 1 2 12A10 10 0 0 1 12 2m0 2a8 8 0 0 0-8 8a8 8 0 0 0 8 8a8 8 0 0 0 8-8a8 8 0 0 0-8-8Z"
23512
+ }, null, -1);
23513
+ const _hoisted_3$J = [
23514
+ _hoisted_2$M
23515
+ ];
23516
+ function render$H(_ctx, _cache) {
23517
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$O, _hoisted_3$J);
23321
23518
  }
23322
- const MdiWeb = { name: "mdi-web", render: render$C };
23519
+ const MdiMusicCircleOutline = { name: "mdi-music-circle-outline", render: render$H };
23323
23520
  const CommentParagraph = {
23324
23521
  icon: vue.markRaw(MdiFormatParagraph),
23325
23522
  title: "\u666E\u901A\u6587\u672C",
@@ -23395,6 +23592,28 @@ img.ProseMirror-separator {
23395
23592
  ]).run();
23396
23593
  }
23397
23594
  };
23595
+ const CommandVideo = {
23596
+ icon: vue.markRaw(MdiVideo),
23597
+ title: "\u89C6\u9891",
23598
+ keywords: ["video", "shipin"],
23599
+ command: ({ editor, range }) => {
23600
+ editor.chain().focus().deleteRange(range).insertContent([
23601
+ { type: "video", attrs: { src: "" } },
23602
+ { type: "paragraph", content: "" }
23603
+ ]).run();
23604
+ }
23605
+ };
23606
+ const CommandAudio = {
23607
+ icon: vue.markRaw(MdiMusicCircleOutline),
23608
+ title: "\u97F3\u9891",
23609
+ keywords: ["audio", "yinpin"],
23610
+ command: ({ editor, range }) => {
23611
+ editor.chain().focus().deleteRange(range).insertContent([
23612
+ { type: "audio", attrs: { src: "" } },
23613
+ { type: "paragraph", content: "" }
23614
+ ]).run();
23615
+ }
23616
+ };
23398
23617
  const CommandTable = {
23399
23618
  icon: vue.markRaw(MdiTable),
23400
23619
  title: "\u8868\u683C",
@@ -23442,7 +23661,9 @@ img.ProseMirror-separator {
23442
23661
  CommandBulletList,
23443
23662
  CommandOrderedList,
23444
23663
  CommandTaskList,
23445
- CommandIframe
23664
+ CommandIframe,
23665
+ CommandVideo,
23666
+ CommandAudio
23446
23667
  ].filter(
23447
23668
  (item) => [...item.keywords, item.title].some(
23448
23669
  (keyword) => keyword.includes(query)
@@ -23454,7 +23675,7 @@ img.ProseMirror-separator {
23454
23675
  let popup;
23455
23676
  return {
23456
23677
  onStart: (props) => {
23457
- component = new VueRenderer(_sfc_main$7, {
23678
+ component = new VueRenderer(_sfc_main$9, {
23458
23679
  props,
23459
23680
  editor: props.editor
23460
23681
  });
@@ -38556,39 +38777,39 @@ img.ProseMirror-separator {
38556
38777
  lowlight$1.registerLanguage("yaml", yaml);
38557
38778
  lowlight$1.registerLanguage("html", xml);
38558
38779
  const lowlight = lowlight$1;
38559
- const _hoisted_1$G = {
38780
+ const _hoisted_1$N = {
38560
38781
  viewBox: "0 0 24 24",
38561
38782
  color: "red",
38562
38783
  width: "1.2em",
38563
38784
  height: "1.2em"
38564
38785
  };
38565
- const _hoisted_2$E = /* @__PURE__ */ vue.createElementVNode("path", {
38786
+ const _hoisted_2$L = /* @__PURE__ */ vue.createElementVNode("path", {
38566
38787
  fill: "currentColor",
38567
38788
  d: "M14.12 10.47L12 12.59l-2.13-2.12l-1.41 1.41L10.59 14l-2.12 2.12l1.41 1.41L12 15.41l2.12 2.12l1.41-1.41L13.41 14l2.12-2.12l-1.41-1.41M15.5 4l-1-1h-5l-1 1H5v2h14V4h-3.5M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7H6v12M8 9h8v10H8V9Z"
38568
38789
  }, null, -1);
38569
- const _hoisted_3$C = [
38570
- _hoisted_2$E
38790
+ const _hoisted_3$I = [
38791
+ _hoisted_2$L
38571
38792
  ];
38572
- function render$B(_ctx, _cache) {
38573
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$G, _hoisted_3$C);
38793
+ function render$G(_ctx, _cache) {
38794
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$N, _hoisted_3$I);
38574
38795
  }
38575
- const MdiDeleteForeverOutline = { name: "mdi-delete-forever-outline", render: render$B };
38576
- const _hoisted_1$F = {
38796
+ const MdiDeleteForeverOutline = { name: "mdi-delete-forever-outline", render: render$G };
38797
+ const _hoisted_1$M = {
38577
38798
  viewBox: "0 0 24 24",
38578
38799
  width: "1.2em",
38579
38800
  height: "1.2em"
38580
38801
  };
38581
- const _hoisted_2$D = /* @__PURE__ */ vue.createElementVNode("path", {
38802
+ const _hoisted_2$K = /* @__PURE__ */ vue.createElementVNode("path", {
38582
38803
  fill: "currentColor",
38583
38804
  d: "M20 10.5a6.5 6.5 0 0 1-6.5 6.5H7.83l3.09 3.09L9.5 21.5L4 16l5.5-5.5l1.41 1.41L7.83 15h5.67c2.5 0 4.5-2 4.5-4.5S16 6 13.5 6H6V4h7.5a6.5 6.5 0 0 1 6.5 6.5Z"
38584
38805
  }, null, -1);
38585
- const _hoisted_3$B = [
38586
- _hoisted_2$D
38806
+ const _hoisted_3$H = [
38807
+ _hoisted_2$K
38587
38808
  ];
38588
- function render$A(_ctx, _cache) {
38589
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$F, _hoisted_3$B);
38809
+ function render$F(_ctx, _cache) {
38810
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$M, _hoisted_3$H);
38590
38811
  }
38591
- const MdiArrowULeftBottom = { name: "mdi-arrow-u-left-bottom", render: render$A };
38812
+ const MdiArrowULeftBottom = { name: "mdi-arrow-u-left-bottom", render: render$F };
38592
38813
  const BlockActionSeparator_vue_vue_type_style_index_0_lang = "";
38593
38814
  const _export_sfc = (sfc, props) => {
38594
38815
  const target = sfc.__vccOpts || sfc;
@@ -38597,13 +38818,13 @@ img.ProseMirror-separator {
38597
38818
  }
38598
38819
  return target;
38599
38820
  };
38600
- const _sfc_main$6 = {};
38601
- const _hoisted_1$E = { class: "editor-block__actions-separator" };
38821
+ const _sfc_main$8 = {};
38822
+ const _hoisted_1$L = { class: "editor-block__actions-separator" };
38602
38823
  function _sfc_render(_ctx, _cache) {
38603
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$E);
38824
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$L);
38604
38825
  }
38605
- const BlockActionSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render]]);
38606
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
38826
+ const BlockActionSeparator = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render]]);
38827
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
38607
38828
  __name: "BlockActionButton",
38608
38829
  props: {
38609
38830
  tooltip: { default: void 0 },
@@ -38624,9 +38845,9 @@ img.ProseMirror-separator {
38624
38845
  }
38625
38846
  });
38626
38847
  const BlockActionButton_vue_vue_type_style_index_0_lang = "";
38627
- const _hoisted_1$D = { class: "editor-block__content" };
38628
- const _hoisted_2$C = { class: "editor-block__actions" };
38629
- const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
38848
+ const _hoisted_1$K = { class: "editor-block__content" };
38849
+ const _hoisted_2$J = { class: "editor-block__actions" };
38850
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
38630
38851
  __name: "BlockCard",
38631
38852
  props: {
38632
38853
  selected: { type: Boolean, default: false },
@@ -38659,7 +38880,7 @@ img.ProseMirror-separator {
38659
38880
  onMouseleave: _cache[1] || (_cache[1] = ($event) => hover.value = false)
38660
38881
  }, [
38661
38882
  vue.createVNode(vue.unref(Dropdown), {
38662
- placement: "top-end",
38883
+ placement: "bottom-end",
38663
38884
  shown: vue.unref(dropdownVisible),
38664
38885
  "auto-hide": false,
38665
38886
  triggers: [],
@@ -38667,9 +38888,9 @@ img.ProseMirror-separator {
38667
38888
  theme: "editor-block-dropdown"
38668
38889
  }, {
38669
38890
  popper: vue.withCtx(() => [
38670
- vue.createElementVNode("div", _hoisted_2$C, [
38891
+ vue.createElementVNode("div", _hoisted_2$J, [
38671
38892
  vue.renderSlot(_ctx.$slots, "actions"),
38672
- vue.createVNode(_sfc_main$5, {
38893
+ vue.createVNode(_sfc_main$7, {
38673
38894
  tooltip: "\u6362\u884C",
38674
38895
  onClick: handleInsertNewLine
38675
38896
  }, {
@@ -38679,7 +38900,7 @@ img.ProseMirror-separator {
38679
38900
  _: 1
38680
38901
  }),
38681
38902
  vue.createVNode(BlockActionSeparator),
38682
- vue.createVNode(_sfc_main$5, {
38903
+ vue.createVNode(_sfc_main$7, {
38683
38904
  tooltip: "\u5220\u9664",
38684
38905
  onClick: __props.deleteNode
38685
38906
  }, {
@@ -38691,7 +38912,7 @@ img.ProseMirror-separator {
38691
38912
  ])
38692
38913
  ]),
38693
38914
  default: vue.withCtx(() => [
38694
- vue.createElementVNode("div", _hoisted_1$D, [
38915
+ vue.createElementVNode("div", _hoisted_1$K, [
38695
38916
  vue.renderSlot(_ctx.$slots, "content")
38696
38917
  ])
38697
38918
  ]),
@@ -38702,10 +38923,10 @@ img.ProseMirror-separator {
38702
38923
  }
38703
38924
  });
38704
38925
  const BlockCard_vue_vue_type_style_index_0_lang = "";
38705
- const _hoisted_1$C = { class: "py-1.5" };
38706
- const _hoisted_2$B = /* @__PURE__ */ vue.createElementVNode("option", { value: null }, "auto", -1);
38707
- const _hoisted_3$A = ["value"];
38708
- const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
38926
+ const _hoisted_1$J = { class: "py-1.5" };
38927
+ const _hoisted_2$I = /* @__PURE__ */ vue.createElementVNode("option", { value: null }, "auto", -1);
38928
+ const _hoisted_3$G = ["value"];
38929
+ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
38709
38930
  __name: "CodeBlockViewRenderer",
38710
38931
  props: {
38711
38932
  editor: null,
@@ -38734,25 +38955,25 @@ img.ProseMirror-separator {
38734
38955
  return (_ctx, _cache) => {
38735
38956
  return vue.openBlock(), vue.createBlock(vue.unref(NodeViewWrapper), null, {
38736
38957
  default: vue.withCtx(() => [
38737
- vue.createVNode(_sfc_main$4, {
38958
+ vue.createVNode(_sfc_main$6, {
38738
38959
  editor: __props.editor,
38739
38960
  "delete-node": __props.deleteNode,
38740
38961
  "get-pos": __props.getPos,
38741
38962
  selected: __props.selected
38742
38963
  }, {
38743
38964
  content: vue.withCtx(() => [
38744
- vue.createElementVNode("div", _hoisted_1$C, [
38965
+ vue.createElementVNode("div", _hoisted_1$J, [
38745
38966
  vue.withDirectives(vue.createElementVNode("select", {
38746
38967
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(selectedLanguage) ? selectedLanguage.value = $event : null),
38747
38968
  contenteditable: "false",
38748
38969
  class: "block px-2 py-1.5 text-sm text-gray-900 border border-gray-300 rounded-md bg-gray-50 focus:ring-blue-500 focus:border-blue-500"
38749
38970
  }, [
38750
- _hoisted_2$B,
38971
+ _hoisted_2$I,
38751
38972
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(languages), (language, index2) => {
38752
38973
  return vue.openBlock(), vue.createElementBlock("option", {
38753
38974
  key: index2,
38754
38975
  value: language
38755
- }, vue.toDisplayString(language), 9, _hoisted_3$A);
38976
+ }, vue.toDisplayString(language), 9, _hoisted_3$G);
38756
38977
  }), 128))
38757
38978
  ], 512), [
38758
38979
  [vue.vModelSelect, vue.unref(selectedLanguage)]
@@ -38774,10 +38995,10 @@ img.ProseMirror-separator {
38774
38995
  });
38775
38996
  const ExtensionCodeBlock = CodeBlockLowlight.extend({
38776
38997
  addNodeView() {
38777
- return VueNodeViewRenderer(_sfc_main$3);
38998
+ return VueNodeViewRenderer(_sfc_main$5);
38778
38999
  }
38779
39000
  });
38780
- const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
39001
+ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
38781
39002
  __name: "BlockActionInput",
38782
39003
  props: {
38783
39004
  tooltip: { default: void 0 },
@@ -38810,105 +39031,89 @@ img.ProseMirror-separator {
38810
39031
  }
38811
39032
  });
38812
39033
  const BlockActionInput_vue_vue_type_style_index_0_lang = "";
38813
- const _hoisted_1$B = {
39034
+ const _hoisted_1$I = {
38814
39035
  viewBox: "0 0 24 24",
38815
39036
  width: "1.2em",
38816
39037
  height: "1.2em"
38817
39038
  };
38818
- const _hoisted_2$A = /* @__PURE__ */ vue.createElementVNode("path", {
38819
- fill: "currentColor",
38820
- d: "M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24a2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24a2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24a.973.973 0 0 1 0-1.42Z"
39039
+ const _hoisted_2$H = /* @__PURE__ */ vue.createElementVNode("path", {
39040
+ d: "M16 18H7V4h9m-4.5 18a1.5 1.5 0 0 1-1.5-1.5a1.5 1.5 0 0 1 1.5-1.5a1.5 1.5 0 0 1 1.5 1.5a1.5 1.5 0 0 1-1.5 1.5m4-21h-8A2.5 2.5 0 0 0 5 3.5v17A2.5 2.5 0 0 0 7.5 23h8a2.5 2.5 0 0 0 2.5-2.5v-17A2.5 2.5 0 0 0 15.5 1z",
39041
+ fill: "currentColor"
38821
39042
  }, null, -1);
38822
- const _hoisted_3$z = [
38823
- _hoisted_2$A
39043
+ const _hoisted_3$F = [
39044
+ _hoisted_2$H
38824
39045
  ];
38825
- function render$z(_ctx, _cache) {
38826
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$B, _hoisted_3$z);
39046
+ function render$E(_ctx, _cache) {
39047
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$I, _hoisted_3$F);
38827
39048
  }
38828
- const MdiLinkVariant = { name: "mdi-link-variant", render: render$z };
38829
- const _hoisted_1$A = {
39049
+ const MdiCellphoneIphone = { name: "mdi-cellphone-iphone", render: render$E };
39050
+ const _hoisted_1$H = {
38830
39051
  viewBox: "0 0 24 24",
38831
39052
  width: "1.2em",
38832
39053
  height: "1.2em"
38833
39054
  };
38834
- const _hoisted_2$z = /* @__PURE__ */ vue.createElementVNode("path", {
38835
- d: "M16 18H7V4h9m-4.5 18a1.5 1.5 0 0 1-1.5-1.5a1.5 1.5 0 0 1 1.5-1.5a1.5 1.5 0 0 1 1.5 1.5a1.5 1.5 0 0 1-1.5 1.5m4-21h-8A2.5 2.5 0 0 0 5 3.5v17A2.5 2.5 0 0 0 7.5 23h8a2.5 2.5 0 0 0 2.5-2.5v-17A2.5 2.5 0 0 0 15.5 1z",
39055
+ const _hoisted_2$G = /* @__PURE__ */ vue.createElementVNode("path", {
39056
+ d: "M19 19H4V3h15m-7.5 20a1.5 1.5 0 0 1-1.5-1.5a1.5 1.5 0 0 1 1.5-1.5a1.5 1.5 0 0 1 1.5 1.5a1.5 1.5 0 0 1-1.5 1.5m7-23h-14A2.5 2.5 0 0 0 2 2.5v19A2.5 2.5 0 0 0 4.5 24h14a2.5 2.5 0 0 0 2.5-2.5v-19A2.5 2.5 0 0 0 18.5 0z",
38836
39057
  fill: "currentColor"
38837
39058
  }, null, -1);
38838
- const _hoisted_3$y = [
38839
- _hoisted_2$z
39059
+ const _hoisted_3$E = [
39060
+ _hoisted_2$G
38840
39061
  ];
38841
- function render$y(_ctx, _cache) {
38842
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$A, _hoisted_3$y);
39062
+ function render$D(_ctx, _cache) {
39063
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$H, _hoisted_3$E);
38843
39064
  }
38844
- const MdiCellphoneIphone = { name: "mdi-cellphone-iphone", render: render$y };
38845
- const _hoisted_1$z = {
39065
+ const MdiTabletIpad = { name: "mdi-tablet-ipad", render: render$D };
39066
+ const _hoisted_1$G = {
38846
39067
  viewBox: "0 0 24 24",
38847
39068
  width: "1.2em",
38848
39069
  height: "1.2em"
38849
39070
  };
38850
- const _hoisted_2$y = /* @__PURE__ */ vue.createElementVNode("path", {
38851
- d: "M19 19H4V3h15m-7.5 20a1.5 1.5 0 0 1-1.5-1.5a1.5 1.5 0 0 1 1.5-1.5a1.5 1.5 0 0 1 1.5 1.5a1.5 1.5 0 0 1-1.5 1.5m7-23h-14A2.5 2.5 0 0 0 2 2.5v19A2.5 2.5 0 0 0 4.5 24h14a2.5 2.5 0 0 0 2.5-2.5v-19A2.5 2.5 0 0 0 18.5 0z",
38852
- fill: "currentColor"
39071
+ const _hoisted_2$F = /* @__PURE__ */ vue.createElementVNode("path", {
39072
+ fill: "currentColor",
39073
+ d: "M21 14H3V4h18m0-2H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h7l-2 3v1h8v-1l-2-3h7a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2Z"
38853
39074
  }, null, -1);
38854
- const _hoisted_3$x = [
38855
- _hoisted_2$y
38856
- ];
38857
- function render$x(_ctx, _cache) {
38858
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$z, _hoisted_3$x);
38859
- }
38860
- const MdiTabletIpad = { name: "mdi-tablet-ipad", render: render$x };
38861
- const _hoisted_1$y = {
38862
- viewBox: "0 0 24 24",
38863
- width: "1.2em",
38864
- height: "1.2em"
38865
- };
38866
- const _hoisted_2$x = /* @__PURE__ */ vue.createElementVNode("path", {
38867
- fill: "currentColor",
38868
- d: "M21 14H3V4h18m0-2H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h7l-2 3v1h8v-1l-2-3h7a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2Z"
38869
- }, null, -1);
38870
- const _hoisted_3$w = [
38871
- _hoisted_2$x
39075
+ const _hoisted_3$D = [
39076
+ _hoisted_2$F
38872
39077
  ];
38873
- function render$w(_ctx, _cache) {
38874
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$y, _hoisted_3$w);
39078
+ function render$C(_ctx, _cache) {
39079
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$G, _hoisted_3$D);
38875
39080
  }
38876
- const MdiDesktopMac = { name: "mdi-desktop-mac", render: render$w };
38877
- const _hoisted_1$x = {
39081
+ const MdiDesktopMac = { name: "mdi-desktop-mac", render: render$C };
39082
+ const _hoisted_1$F = {
38878
39083
  viewBox: "0 0 24 24",
38879
39084
  width: "1.2em",
38880
39085
  height: "1.2em"
38881
39086
  };
38882
- const _hoisted_2$w = /* @__PURE__ */ vue.createElementVNode("path", {
39087
+ const _hoisted_2$E = /* @__PURE__ */ vue.createElementVNode("path", {
38883
39088
  fill: "currentColor",
38884
39089
  d: "M3 21V3h18v18H3M5 5v14h14V5H5Z"
38885
39090
  }, null, -1);
38886
- const _hoisted_3$v = [
38887
- _hoisted_2$w
39091
+ const _hoisted_3$C = [
39092
+ _hoisted_2$E
38888
39093
  ];
38889
- function render$v(_ctx, _cache) {
38890
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$x, _hoisted_3$v);
39094
+ function render$B(_ctx, _cache) {
39095
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$F, _hoisted_3$C);
38891
39096
  }
38892
- const MdiBorderAllVariant = { name: "mdi-border-all-variant", render: render$v };
38893
- const _hoisted_1$w = {
39097
+ const MdiBorderAllVariant = { name: "mdi-border-all-variant", render: render$B };
39098
+ const _hoisted_1$E = {
38894
39099
  viewBox: "0 0 24 24",
38895
39100
  width: "1.2em",
38896
39101
  height: "1.2em"
38897
39102
  };
38898
- const _hoisted_2$v = /* @__PURE__ */ vue.createElementVNode("path", {
39103
+ const _hoisted_2$D = /* @__PURE__ */ vue.createElementVNode("path", {
38899
39104
  fill: "currentColor",
38900
39105
  d: "M15 5h2V3h-2m0 18h2v-2h-2M11 5h2V3h-2m8 2h2V3h-2m0 6h2V7h-2m0 14h2v-2h-2m0-6h2v-2h-2m0 6h2v-2h-2M3 5h2V3H3m0 6h2V7H3m0 6h2v-2H3m0 6h2v-2H3m0 6h2v-2H3m8 2h2v-2h-2m-4 2h2v-2H7M7 5h2V3H7v2Z"
38901
39106
  }, null, -1);
38902
- const _hoisted_3$u = [
38903
- _hoisted_2$v
39107
+ const _hoisted_3$B = [
39108
+ _hoisted_2$D
38904
39109
  ];
38905
- function render$u(_ctx, _cache) {
38906
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$w, _hoisted_3$u);
39110
+ function render$A(_ctx, _cache) {
39111
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$E, _hoisted_3$B);
38907
39112
  }
38908
- const MdiBorderNoneVariant = { name: "mdi-border-none-variant", render: render$u };
38909
- const _hoisted_1$v = { class: "py-1.5" };
38910
- const _hoisted_2$u = ["src", "width", "height", "frameborder"];
38911
- const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
39113
+ const MdiBorderNoneVariant = { name: "mdi-border-none-variant", render: render$A };
39114
+ const _hoisted_1$D = { class: "py-1.5" };
39115
+ const _hoisted_2$C = ["src", "width", "height", "frameborder"];
39116
+ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
38912
39117
  __name: "IframeView",
38913
39118
  props: {
38914
39119
  editor: null,
@@ -38972,7 +39177,7 @@ img.ProseMirror-separator {
38972
39177
  return (_ctx, _cache) => {
38973
39178
  return vue.openBlock(), vue.createBlock(vue.unref(NodeViewWrapper), { as: "div" }, {
38974
39179
  default: vue.withCtx(() => [
38975
- vue.createVNode(_sfc_main$4, {
39180
+ vue.createVNode(_sfc_main$6, {
38976
39181
  editor: __props.editor,
38977
39182
  "get-pos": __props.getPos,
38978
39183
  "delete-node": __props.deleteNode,
@@ -38985,7 +39190,7 @@ img.ProseMirror-separator {
38985
39190
  width: __props.node.attrs.width
38986
39191
  })
38987
39192
  }, [
38988
- vue.createElementVNode("div", _hoisted_1$v, [
39193
+ vue.createElementVNode("div", _hoisted_1$D, [
38989
39194
  vue.withDirectives(vue.createElementVNode("input", {
38990
39195
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(src) ? src.value = $event : null),
38991
39196
  class: "block px-2 w-full py-1.5 text-sm text-gray-900 border border-gray-300 rounded-md bg-gray-50 focus:ring-blue-500 focus:border-blue-500",
@@ -39012,12 +39217,13 @@ img.ProseMirror-separator {
39012
39217
  scrolling: "yes",
39013
39218
  frameborder: vue.unref(frameborder),
39014
39219
  framespacing: "0",
39015
- allowfullscreen: "true"
39016
- }, null, 10, _hoisted_2$u)) : vue.createCommentVNode("", true)
39220
+ allowfullscreen: "true",
39221
+ onMouseenter: handleSetFocus
39222
+ }, null, 42, _hoisted_2$C)) : vue.createCommentVNode("", true)
39017
39223
  ], 4)
39018
39224
  ]),
39019
39225
  actions: vue.withCtx(() => [
39020
- vue.createVNode(_sfc_main$5, {
39226
+ vue.createVNode(_sfc_main$7, {
39021
39227
  selected: vue.unref(frameborder) === "1",
39022
39228
  tooltip: `${vue.unref(frameborder) === "1" ? "\u53D6\u6D88\u8FB9\u6846" : "\u8BBE\u7F6E\u8FB9\u6846"}`,
39023
39229
  onClick: handleToggleFrameborder
@@ -39028,20 +39234,20 @@ img.ProseMirror-separator {
39028
39234
  _: 1
39029
39235
  }, 8, ["selected", "tooltip"]),
39030
39236
  vue.createVNode(BlockActionSeparator),
39031
- vue.createVNode(_sfc_main$2, {
39237
+ vue.createVNode(_sfc_main$4, {
39032
39238
  modelValue: vue.unref(width),
39033
39239
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(width) ? width.value = $event : null),
39034
39240
  modelModifiers: { lazy: true, trim: true },
39035
39241
  tooltip: "\u81EA\u5B9A\u4E49\u5BBD\u5EA6\uFF0C\u6309\u56DE\u8F66\u952E\u751F\u6548"
39036
39242
  }, null, 8, ["modelValue"]),
39037
- vue.createVNode(_sfc_main$2, {
39243
+ vue.createVNode(_sfc_main$4, {
39038
39244
  modelValue: vue.unref(height),
39039
39245
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.isRef(height) ? height.value = $event : null),
39040
39246
  modelModifiers: { lazy: true, trim: true },
39041
39247
  tooltip: "\u81EA\u5B9A\u4E49\u9AD8\u5EA6\uFF0C\u6309\u56DE\u8F66\u952E\u751F\u6548"
39042
39248
  }, null, 8, ["modelValue"]),
39043
39249
  vue.createVNode(BlockActionSeparator),
39044
- vue.createVNode(_sfc_main$5, {
39250
+ vue.createVNode(_sfc_main$7, {
39045
39251
  tooltip: "\u624B\u673A\u5C3A\u5BF8",
39046
39252
  selected: sizeMatch("390px", "844px"),
39047
39253
  onClick: _cache[3] || (_cache[3] = ($event) => handleSetSize("390px", "844px"))
@@ -39051,7 +39257,7 @@ img.ProseMirror-separator {
39051
39257
  ]),
39052
39258
  _: 1
39053
39259
  }, 8, ["selected"]),
39054
- vue.createVNode(_sfc_main$5, {
39260
+ vue.createVNode(_sfc_main$7, {
39055
39261
  tooltip: "\u5E73\u677F\u7535\u8111\u7EB5\u5411\u5C3A\u5BF8",
39056
39262
  selected: sizeMatch("834px", "1194px"),
39057
39263
  onClick: _cache[4] || (_cache[4] = ($event) => handleSetSize("834px", "1194px"))
@@ -39061,7 +39267,7 @@ img.ProseMirror-separator {
39061
39267
  ]),
39062
39268
  _: 1
39063
39269
  }, 8, ["selected"]),
39064
- vue.createVNode(_sfc_main$5, {
39270
+ vue.createVNode(_sfc_main$7, {
39065
39271
  tooltip: "\u5E73\u677F\u7535\u8111\u6A2A\u5411\u5C3A\u5BF8",
39066
39272
  selected: sizeMatch("1194px", "834px"),
39067
39273
  onClick: _cache[5] || (_cache[5] = ($event) => handleSetSize("1194px", "834px"))
@@ -39071,7 +39277,7 @@ img.ProseMirror-separator {
39071
39277
  ]),
39072
39278
  _: 1
39073
39279
  }, 8, ["selected"]),
39074
- vue.createVNode(_sfc_main$5, {
39280
+ vue.createVNode(_sfc_main$7, {
39075
39281
  tooltip: "\u684C\u9762\u7535\u8111\u5C3A\u5BF8",
39076
39282
  selected: sizeMatch("100%", "834px"),
39077
39283
  onClick: _cache[6] || (_cache[6] = ($event) => handleSetSize("100%", "834px"))
@@ -39082,7 +39288,7 @@ img.ProseMirror-separator {
39082
39288
  _: 1
39083
39289
  }, 8, ["selected"]),
39084
39290
  vue.createVNode(BlockActionSeparator),
39085
- vue.createVNode(_sfc_main$5, {
39291
+ vue.createVNode(_sfc_main$7, {
39086
39292
  tooltip: "\u6253\u5F00\u94FE\u63A5",
39087
39293
  onClick: handleOpenLink
39088
39294
  }, {
@@ -39251,120 +39457,766 @@ img.ProseMirror-separator {
39251
39457
  ];
39252
39458
  },
39253
39459
  addNodeView() {
39254
- return VueNodeViewRenderer(_sfc_main$1);
39255
- }
39256
- });
39257
- const inputRegex = /(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/;
39258
- const Image$1 = Node.create({
39259
- name: "image",
39260
- addOptions() {
39261
- return {
39262
- inline: false,
39263
- allowBase64: false,
39264
- HTMLAttributes: {}
39265
- };
39266
- },
39267
- inline() {
39268
- return this.options.inline;
39269
- },
39270
- group() {
39271
- return this.options.inline ? "inline" : "block";
39272
- },
39273
- draggable: true,
39274
- addAttributes() {
39275
- return {
39276
- src: {
39277
- default: null
39278
- },
39279
- alt: {
39280
- default: null
39281
- },
39282
- title: {
39283
- default: null
39284
- }
39285
- };
39286
- },
39287
- parseHTML() {
39288
- return [
39289
- {
39290
- tag: this.options.allowBase64 ? "img[src]" : 'img[src]:not([src^="data:"])'
39291
- }
39292
- ];
39293
- },
39294
- renderHTML({ HTMLAttributes }) {
39295
- return ["img", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];
39296
- },
39297
- addCommands() {
39298
- return {
39299
- setImage: (options) => ({ commands: commands2 }) => {
39300
- return commands2.insertContent({
39301
- type: this.name,
39302
- attrs: options
39303
- });
39304
- }
39305
- };
39306
- },
39307
- addInputRules() {
39308
- return [
39309
- nodeInputRule({
39310
- find: inputRegex,
39311
- type: this.type,
39312
- getAttributes: (match) => {
39313
- const [, , alt, src, title] = match;
39314
- return { src, alt, title };
39315
- }
39316
- })
39317
- ];
39460
+ return VueNodeViewRenderer(_sfc_main$3);
39318
39461
  }
39319
39462
  });
39320
- const _hoisted_1$u = {
39463
+ const _hoisted_1$C = {
39321
39464
  viewBox: "0 0 24 24",
39322
39465
  width: "1.2em",
39323
39466
  height: "1.2em"
39324
39467
  };
39325
- const _hoisted_2$t = /* @__PURE__ */ vue.createElementVNode("path", {
39468
+ const _hoisted_2$B = /* @__PURE__ */ vue.createElementVNode("path", {
39326
39469
  fill: "currentColor",
39327
39470
  d: "M21 3H3C2 3 1 4 1 5v14a2 2 0 0 0 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2M5 17l3.5-4.5l2.5 3l3.5-4.5l4.5 6H5Z"
39328
39471
  }, null, -1);
39329
- const _hoisted_3$t = [
39330
- _hoisted_2$t
39472
+ const _hoisted_3$A = [
39473
+ _hoisted_2$B
39331
39474
  ];
39332
- function render$t(_ctx, _cache) {
39333
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$u, _hoisted_3$t);
39475
+ function render$z(_ctx, _cache) {
39476
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$C, _hoisted_3$A);
39334
39477
  }
39335
- const MdiImageSizeSelectActual = { name: "mdi-image-size-select-actual", render: render$t };
39336
- const _hoisted_1$t = {
39478
+ const MdiImageSizeSelectActual = { name: "mdi-image-size-select-actual", render: render$z };
39479
+ const _hoisted_1$B = {
39337
39480
  viewBox: "0 0 24 24",
39338
39481
  width: "1.2em",
39339
39482
  height: "1.2em"
39340
39483
  };
39341
- const _hoisted_2$s = /* @__PURE__ */ vue.createElementVNode("path", {
39484
+ const _hoisted_2$A = /* @__PURE__ */ vue.createElementVNode("path", {
39342
39485
  fill: "currentColor",
39343
39486
  d: "M23 15h-2v2h2v-2m0-4h-2v2h2v-2m0 8h-2v2c1 0 2-1 2-2M15 3h-2v2h2V3m8 4h-2v2h2V7m-2-4v2h2c0-1-1-2-2-2M3 21h8v-6H1v4a2 2 0 0 0 2 2M3 7H1v2h2V7m12 12h-2v2h2v-2m4-16h-2v2h2V3m0 16h-2v2h2v-2M3 3C2 3 1 4 1 5h2V3m0 8H1v2h2v-2m8-8H9v2h2V3M7 3H5v2h2V3Z"
39344
39487
  }, null, -1);
39345
- const _hoisted_3$s = [
39346
- _hoisted_2$s
39488
+ const _hoisted_3$z = [
39489
+ _hoisted_2$A
39347
39490
  ];
39348
- function render$s(_ctx, _cache) {
39349
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$t, _hoisted_3$s);
39491
+ function render$y(_ctx, _cache) {
39492
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$B, _hoisted_3$z);
39350
39493
  }
39351
- const MdiImageSizeSelectSmall = { name: "mdi-image-size-select-small", render: render$s };
39352
- const _hoisted_1$s = {
39494
+ const MdiImageSizeSelectSmall = { name: "mdi-image-size-select-small", render: render$y };
39495
+ const _hoisted_1$A = {
39353
39496
  viewBox: "0 0 24 24",
39354
39497
  width: "1.2em",
39355
39498
  height: "1.2em"
39356
39499
  };
39357
- const _hoisted_2$r = /* @__PURE__ */ vue.createElementVNode("path", {
39500
+ const _hoisted_2$z = /* @__PURE__ */ vue.createElementVNode("path", {
39358
39501
  fill: "currentColor",
39359
39502
  d: "M21 15h2v2h-2v-2m0-4h2v2h-2v-2m2 8h-2v2c1 0 2-1 2-2M13 3h2v2h-2V3m8 4h2v2h-2V7m0-4v2h2c0-1-1-2-2-2M1 7h2v2H1V7m16-4h2v2h-2V3m0 16h2v2h-2v-2M3 3C2 3 1 4 1 5h2V3m6 0h2v2H9V3M5 3h2v2H5V3m-4 8v8a2 2 0 0 0 2 2h12V11H1m2 8l2.5-3.21l1.79 2.15l2.5-3.22L13 19H3Z"
39360
39503
  }, null, -1);
39361
- const _hoisted_3$r = [
39362
- _hoisted_2$r
39504
+ const _hoisted_3$y = [
39505
+ _hoisted_2$z
39506
+ ];
39507
+ function render$x(_ctx, _cache) {
39508
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$A, _hoisted_3$y);
39509
+ }
39510
+ const MdiImageSizeSelectLarge = { name: "mdi-image-size-select-large", render: render$x };
39511
+ const _hoisted_1$z = {
39512
+ viewBox: "0 0 24 24",
39513
+ width: "1.2em",
39514
+ height: "1.2em"
39515
+ };
39516
+ const _hoisted_2$y = /* @__PURE__ */ vue.createElementVNode("path", {
39517
+ fill: "currentColor",
39518
+ d: "M13.53 22H10c-.25 0-.46-.18-.5-.42l-.37-2.65c-.63-.25-1.17-.59-1.69-.99l-2.49 1.01c-.22.08-.49 0-.61-.22l-2-3.46a.493.493 0 0 1 .12-.64l2.11-1.66c-.04-.32-.07-.64-.07-.97s.03-.66.07-1L2.46 9.37a.493.493 0 0 1-.12-.64l2-3.46c.12-.22.39-.31.61-.22l2.49 1c.52-.39 1.06-.73 1.69-.98l.37-2.65c.04-.24.25-.42.5-.42h4c.25 0 .46.18.5.42l.37 2.65c.63.25 1.17.59 1.69.98l2.49-1c.22-.09.49 0 .61.22l2 3.46c.12.22.07.49-.12.64L19.43 11c.04.34.07.67.07 1v.19c-.5-.12-1-.19-1.5-.19c-.92 0-1.78.21-2.56.58c.03-.19.06-.38.06-.58c0-1.93-1.57-3.5-3.5-3.5S8.5 10.07 8.5 12s1.57 3.5 3.5 3.5c.2 0 .39-.03.58-.06a5.97 5.97 0 0 0 .95 6.56M16 15v6l5-3l-5-3Z"
39519
+ }, null, -1);
39520
+ const _hoisted_3$x = [
39521
+ _hoisted_2$y
39522
+ ];
39523
+ function render$w(_ctx, _cache) {
39524
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$z, _hoisted_3$x);
39525
+ }
39526
+ const MdiCogPlay = { name: "mdi-cog-play", render: render$w };
39527
+ const _hoisted_1$y = {
39528
+ viewBox: "0 0 24 24",
39529
+ width: "1.2em",
39530
+ height: "1.2em"
39531
+ };
39532
+ const _hoisted_2$x = /* @__PURE__ */ vue.createElementVNode("path", {
39533
+ fill: "currentColor",
39534
+ d: "M13.54 22H10c-.25 0-.46-.18-.5-.42l-.37-2.65c-.63-.25-1.17-.59-1.69-.99l-2.49 1.01c-.22.08-.49 0-.61-.22l-2-3.46a.493.493 0 0 1 .12-.64l2.11-1.66L4.5 12l.07-1l-2.11-1.63a.493.493 0 0 1-.12-.64l2-3.46c.12-.22.39-.31.61-.22l2.49 1c.52-.39 1.06-.73 1.69-.98l.37-2.65c.04-.24.25-.42.5-.42h4c.25 0 .46.18.5.42l.37 2.65c.63.25 1.17.59 1.69.98l2.49-1c.22-.09.49 0 .61.22l2 3.46c.13.22.07.49-.12.64L19.43 11l.07 1v.19c-.5-.12-1-.19-1.5-.19c-.17 0-.34 0-.5.03c0-.62-.1-1.24-.3-1.83l2.11-1.55l-.75-1.3l-2.41 1.04a5.42 5.42 0 0 0-3.03-1.77L12.75 4h-1.5l-.37 2.61c-1.2.25-2.26.89-3.03 1.78L5.44 7.35l-.75 1.3L6.8 10.2a5.55 5.55 0 0 0 0 3.6l-2.12 1.56l.75 1.3l2.43-1.04c.77.88 1.82 1.52 3.01 1.76l.37 2.62h1.11c.26.75.65 1.42 1.19 2m2.42-9.64c.04-.12.04-.24.04-.36c0-2.21-1.79-4-4-4s-4 1.79-4 4s1.79 4 4 4c.12 0 .24 0 .36-.04a6.045 6.045 0 0 1 3.6-3.6M12 14c-1.1 0-2-.89-2-2s.9-2 2-2s2 .9 2 2s-.89 2-2 2m4 1v6l5-3l-5-3Z"
39535
+ }, null, -1);
39536
+ const _hoisted_3$w = [
39537
+ _hoisted_2$x
39538
+ ];
39539
+ function render$v(_ctx, _cache) {
39540
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$y, _hoisted_3$w);
39541
+ }
39542
+ const MdiCogPlayOutline = { name: "mdi-cog-play-outline", render: render$v };
39543
+ const _hoisted_1$x = {
39544
+ viewBox: "0 0 24 24",
39545
+ width: "1.2em",
39546
+ height: "1.2em"
39547
+ };
39548
+ const _hoisted_2$w = /* @__PURE__ */ vue.createElementVNode("path", {
39549
+ fill: "currentColor",
39550
+ d: "M10 16.5v-9l6 4.5M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2Z"
39551
+ }, null, -1);
39552
+ const _hoisted_3$v = [
39553
+ _hoisted_2$w
39554
+ ];
39555
+ function render$u(_ctx, _cache) {
39556
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$x, _hoisted_3$v);
39557
+ }
39558
+ const MdiPlayCircle = { name: "mdi-play-circle", render: render$u };
39559
+ const _hoisted_1$w = {
39560
+ viewBox: "0 0 24 24",
39561
+ width: "1.2em",
39562
+ height: "1.2em"
39563
+ };
39564
+ const _hoisted_2$v = /* @__PURE__ */ vue.createElementVNode("path", {
39565
+ fill: "currentColor",
39566
+ d: "M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m-2 14.5l6-4.5l-6-4.5v9Z"
39567
+ }, null, -1);
39568
+ const _hoisted_3$u = [
39569
+ _hoisted_2$v
39570
+ ];
39571
+ function render$t(_ctx, _cache) {
39572
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$w, _hoisted_3$u);
39573
+ }
39574
+ const MdiPlayCircleOutline = { name: "mdi-play-circle-outline", render: render$t };
39575
+ const _hoisted_1$v = {
39576
+ viewBox: "0 0 24 24",
39577
+ width: "1.2em",
39578
+ height: "1.2em"
39579
+ };
39580
+ const _hoisted_2$u = /* @__PURE__ */ vue.createElementVNode("path", {
39581
+ fill: "currentColor",
39582
+ d: "m10 16.5l6-4.5l-6-4.5M22 12c0-5.54-4.46-10-10-10c-1.17 0-2.3.19-3.38.56l.7 1.94c.85-.34 1.74-.53 2.68-.53c4.41 0 8.03 3.62 8.03 8.03c0 4.41-3.62 8.03-8.03 8.03c-4.41 0-8.03-3.62-8.03-8.03c0-.94.19-1.88.53-2.72l-1.94-.66C2.19 9.7 2 10.83 2 12c0 5.54 4.46 10 10 10s10-4.46 10-10M5.47 3.97c.85 0 1.53.71 1.53 1.5C7 6.32 6.32 7 5.47 7c-.79 0-1.5-.68-1.5-1.53c0-.79.71-1.5 1.5-1.5Z"
39583
+ }, null, -1);
39584
+ const _hoisted_3$t = [
39585
+ _hoisted_2$u
39586
+ ];
39587
+ function render$s(_ctx, _cache) {
39588
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$v, _hoisted_3$t);
39589
+ }
39590
+ const MdiMotionPlayOutline = { name: "mdi-motion-play-outline", render: render$s };
39591
+ const _hoisted_1$u = {
39592
+ viewBox: "0 0 24 24",
39593
+ width: "1.2em",
39594
+ height: "1.2em"
39595
+ };
39596
+ const _hoisted_2$t = /* @__PURE__ */ vue.createElementVNode("path", {
39597
+ fill: "currentColor",
39598
+ d: "M22 12c0-5.54-4.46-10-10-10c-1.17 0-2.3.19-3.38.56l.7 1.94c.85-.34 1.74-.53 2.68-.53c4.41 0 8.03 3.62 8.03 8.03c0 4.41-3.62 8.03-8.03 8.03c-4.41 0-8.03-3.62-8.03-8.03c0-.94.19-1.88.53-2.72l-1.94-.66C2.19 9.7 2 10.83 2 12c0 5.54 4.46 10 10 10s10-4.46 10-10M5.47 3.97c.85 0 1.53.71 1.53 1.5C7 6.32 6.32 7 5.47 7c-.79 0-1.5-.68-1.5-1.53c0-.79.71-1.5 1.5-1.5M18 12c0-3.33-2.67-6-6-6s-6 2.67-6 6s2.67 6 6 6s6-2.67 6-6m-3 0l-5 3V9"
39599
+ }, null, -1);
39600
+ const _hoisted_3$s = [
39601
+ _hoisted_2$t
39363
39602
  ];
39364
39603
  function render$r(_ctx, _cache) {
39365
- return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$s, _hoisted_3$r);
39604
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$u, _hoisted_3$s);
39366
39605
  }
39367
- const MdiImageSizeSelectLarge = { name: "mdi-image-size-select-large", render: render$r };
39606
+ const MdiMotionPlay = { name: "mdi-motion-play", render: render$r };
39607
+ const _hoisted_1$t = { class: "py-1.5" };
39608
+ const _hoisted_2$s = ["controls", "autoplay", "loop", "src"];
39609
+ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
39610
+ __name: "VideoView",
39611
+ props: {
39612
+ editor: null,
39613
+ node: null,
39614
+ decorations: null,
39615
+ selected: { type: Boolean },
39616
+ extension: null,
39617
+ getPos: null,
39618
+ updateAttributes: null,
39619
+ deleteNode: null
39620
+ },
39621
+ setup(__props) {
39622
+ const props = __props;
39623
+ const src = vue.computed({
39624
+ get: () => {
39625
+ var _a;
39626
+ return (_a = props.node) == null ? void 0 : _a.attrs.src;
39627
+ },
39628
+ set: (src2) => {
39629
+ props.updateAttributes({ src: src2 });
39630
+ }
39631
+ });
39632
+ const width = vue.computed({
39633
+ get: () => {
39634
+ return props.node.attrs.width;
39635
+ },
39636
+ set: (value) => {
39637
+ handleSetSize(value, height.value);
39638
+ }
39639
+ });
39640
+ const height = vue.computed({
39641
+ get: () => {
39642
+ return props.node.attrs.height;
39643
+ },
39644
+ set: (value) => {
39645
+ handleSetSize(width.value, value);
39646
+ }
39647
+ });
39648
+ const controls = vue.computed(() => {
39649
+ return props.node.attrs.controls;
39650
+ });
39651
+ const autoplay = vue.computed(() => {
39652
+ return props.node.attrs.autoplay;
39653
+ });
39654
+ const loop = vue.computed(() => {
39655
+ return props.node.attrs.loop;
39656
+ });
39657
+ function handleSetFocus() {
39658
+ props.editor.commands.setNodeSelection(props.getPos());
39659
+ }
39660
+ function handleSetSize(width2, height2) {
39661
+ props.updateAttributes({ width: width2, height: height2 });
39662
+ props.editor.chain().focus().setNodeSelection(props.getPos()).run();
39663
+ }
39664
+ function handleToggleControls() {
39665
+ props.updateAttributes({
39666
+ controls: props.node.attrs.controls ? null : true
39667
+ });
39668
+ props.editor.chain().focus().setNodeSelection(props.getPos()).run();
39669
+ }
39670
+ function handleToggleAutoplay() {
39671
+ props.updateAttributes({
39672
+ autoplay: props.node.attrs.autoplay ? null : true
39673
+ });
39674
+ props.editor.chain().focus().setNodeSelection(props.getPos()).run();
39675
+ }
39676
+ function handleToggleLoop() {
39677
+ props.updateAttributes({
39678
+ loop: props.node.attrs.loop ? null : true
39679
+ });
39680
+ props.editor.chain().focus().setNodeSelection(props.getPos()).run();
39681
+ }
39682
+ function handleOpenLink() {
39683
+ window.open(src.value, "_blank");
39684
+ }
39685
+ return (_ctx, _cache) => {
39686
+ return vue.openBlock(), vue.createBlock(vue.unref(NodeViewWrapper), { as: "div" }, {
39687
+ default: vue.withCtx(() => [
39688
+ vue.createVNode(_sfc_main$6, {
39689
+ editor: __props.editor,
39690
+ "get-pos": __props.getPos,
39691
+ "delete-node": __props.deleteNode,
39692
+ selected: __props.selected
39693
+ }, {
39694
+ content: vue.withCtx(() => [
39695
+ vue.createElementVNode("div", {
39696
+ class: "inline-block overflow-hidden transition-all text-center relative h-full",
39697
+ style: vue.normalizeStyle({
39698
+ width: __props.node.attrs.width
39699
+ })
39700
+ }, [
39701
+ vue.createElementVNode("div", _hoisted_1$t, [
39702
+ vue.withDirectives(vue.createElementVNode("input", {
39703
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(src) ? src.value = $event : null),
39704
+ class: "block px-2 w-full py-1.5 text-sm text-gray-900 border border-gray-300 rounded-md bg-gray-50 focus:ring-blue-500 focus:border-blue-500",
39705
+ placeholder: "\u8F93\u5165\u94FE\u63A5\uFF0C\u6309\u56DE\u8F66\u786E\u5B9A",
39706
+ tabindex: "-1",
39707
+ onFocus: handleSetFocus
39708
+ }, null, 544), [
39709
+ [
39710
+ vue.vModelText,
39711
+ vue.unref(src),
39712
+ void 0,
39713
+ { lazy: true }
39714
+ ]
39715
+ ])
39716
+ ]),
39717
+ vue.unref(src) ? (vue.openBlock(), vue.createElementBlock("video", {
39718
+ key: 0,
39719
+ controls: vue.unref(controls),
39720
+ autoplay: vue.unref(autoplay),
39721
+ loop: vue.unref(loop),
39722
+ class: "rounded-md m-0",
39723
+ src: __props.node.attrs.src,
39724
+ style: vue.normalizeStyle({
39725
+ width: __props.node.attrs.width,
39726
+ height: __props.node.attrs.height
39727
+ }),
39728
+ onMouseenter: handleSetFocus
39729
+ }, null, 44, _hoisted_2$s)) : vue.createCommentVNode("", true)
39730
+ ], 4)
39731
+ ]),
39732
+ actions: vue.withCtx(() => [
39733
+ vue.createVNode(_sfc_main$7, {
39734
+ selected: vue.unref(controls),
39735
+ tooltip: `${vue.unref(controls) ? "\u9690\u85CF\u63A7\u5236\u9762\u677F" : "\u663E\u793A\u63A7\u5236\u9762\u677F"}`,
39736
+ onClick: handleToggleControls
39737
+ }, {
39738
+ icon: vue.withCtx(() => [
39739
+ vue.unref(controls) ? (vue.openBlock(), vue.createBlock(vue.unref(MdiCogPlay), { key: 0 })) : (vue.openBlock(), vue.createBlock(vue.unref(MdiCogPlayOutline), { key: 1 }))
39740
+ ]),
39741
+ _: 1
39742
+ }, 8, ["selected", "tooltip"]),
39743
+ vue.createVNode(_sfc_main$7, {
39744
+ selected: vue.unref(autoplay),
39745
+ tooltip: `${vue.unref(autoplay) ? "\u5173\u95ED\u81EA\u52A8\u64AD\u653E" : "\u5F00\u542F\u81EA\u52A8\u64AD\u653E"}`,
39746
+ onClick: handleToggleAutoplay
39747
+ }, {
39748
+ icon: vue.withCtx(() => [
39749
+ vue.unref(autoplay) ? (vue.openBlock(), vue.createBlock(vue.unref(MdiPlayCircle), { key: 0 })) : (vue.openBlock(), vue.createBlock(vue.unref(MdiPlayCircleOutline), { key: 1 }))
39750
+ ]),
39751
+ _: 1
39752
+ }, 8, ["selected", "tooltip"]),
39753
+ vue.createVNode(_sfc_main$7, {
39754
+ selected: vue.unref(loop),
39755
+ tooltip: `${vue.unref(loop) ? "\u5173\u95ED\u5FAA\u73AF\u64AD\u653E" : "\u5F00\u542F\u5FAA\u73AF\u64AD\u653E"}`,
39756
+ onClick: handleToggleLoop
39757
+ }, {
39758
+ icon: vue.withCtx(() => [
39759
+ vue.unref(loop) ? (vue.openBlock(), vue.createBlock(vue.unref(MdiMotionPlay), { key: 0 })) : (vue.openBlock(), vue.createBlock(vue.unref(MdiMotionPlayOutline), { key: 1 }))
39760
+ ]),
39761
+ _: 1
39762
+ }, 8, ["selected", "tooltip"]),
39763
+ vue.createVNode(BlockActionSeparator),
39764
+ vue.createVNode(_sfc_main$4, {
39765
+ modelValue: vue.unref(width),
39766
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(width) ? width.value = $event : null),
39767
+ modelModifiers: { lazy: true, trim: true },
39768
+ tooltip: "\u81EA\u5B9A\u4E49\u5BBD\u5EA6\uFF0C\u6309\u56DE\u8F66\u952E\u751F\u6548"
39769
+ }, null, 8, ["modelValue"]),
39770
+ vue.createVNode(_sfc_main$4, {
39771
+ modelValue: vue.unref(height),
39772
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.isRef(height) ? height.value = $event : null),
39773
+ modelModifiers: { lazy: true, trim: true },
39774
+ tooltip: "\u81EA\u5B9A\u4E49\u9AD8\u5EA6\uFF0C\u6309\u56DE\u8F66\u952E\u751F\u6548"
39775
+ }, null, 8, ["modelValue"]),
39776
+ vue.createVNode(BlockActionSeparator),
39777
+ vue.createVNode(_sfc_main$7, {
39778
+ tooltip: "\u5C0F\u5C3A\u5BF8",
39779
+ selected: __props.node.attrs.width === "25%",
39780
+ onClick: _cache[3] || (_cache[3] = ($event) => handleSetSize("25%", "auto"))
39781
+ }, {
39782
+ icon: vue.withCtx(() => [
39783
+ vue.createVNode(vue.unref(MdiImageSizeSelectSmall))
39784
+ ]),
39785
+ _: 1
39786
+ }, 8, ["selected"]),
39787
+ vue.createVNode(_sfc_main$7, {
39788
+ tooltip: "\u4E2D\u5C3A\u5BF8",
39789
+ selected: __props.node.attrs.width === "50%",
39790
+ onClick: _cache[4] || (_cache[4] = ($event) => handleSetSize("50%", "auto"))
39791
+ }, {
39792
+ icon: vue.withCtx(() => [
39793
+ vue.createVNode(vue.unref(MdiImageSizeSelectLarge))
39794
+ ]),
39795
+ _: 1
39796
+ }, 8, ["selected"]),
39797
+ vue.createVNode(_sfc_main$7, {
39798
+ tooltip: "\u5168\u5C3A\u5BF8",
39799
+ selected: __props.node.attrs.width === "100%",
39800
+ onClick: _cache[5] || (_cache[5] = ($event) => handleSetSize("100%", "auto"))
39801
+ }, {
39802
+ icon: vue.withCtx(() => [
39803
+ vue.createVNode(vue.unref(MdiImageSizeSelectActual))
39804
+ ]),
39805
+ _: 1
39806
+ }, 8, ["selected"]),
39807
+ vue.createVNode(BlockActionSeparator),
39808
+ vue.createVNode(_sfc_main$7, {
39809
+ tooltip: "\u6253\u5F00\u94FE\u63A5",
39810
+ onClick: handleOpenLink
39811
+ }, {
39812
+ icon: vue.withCtx(() => [
39813
+ vue.createVNode(vue.unref(MdiLinkVariant))
39814
+ ]),
39815
+ _: 1
39816
+ })
39817
+ ]),
39818
+ _: 1
39819
+ }, 8, ["editor", "get-pos", "delete-node", "selected"])
39820
+ ]),
39821
+ _: 1
39822
+ });
39823
+ };
39824
+ }
39825
+ });
39826
+ const Video = Node.create({
39827
+ name: "video",
39828
+ inline() {
39829
+ return true;
39830
+ },
39831
+ group() {
39832
+ return "inline";
39833
+ },
39834
+ addAttributes() {
39835
+ var _a;
39836
+ return {
39837
+ ...(_a = this.parent) == null ? void 0 : _a.call(this),
39838
+ src: {
39839
+ default: null,
39840
+ parseHTML: (element) => {
39841
+ return element.getAttribute("src");
39842
+ }
39843
+ },
39844
+ width: {
39845
+ default: "100%",
39846
+ parseHTML: (element) => {
39847
+ return element.getAttribute("width");
39848
+ },
39849
+ renderHTML(attributes) {
39850
+ return {
39851
+ width: attributes.width
39852
+ };
39853
+ }
39854
+ },
39855
+ height: {
39856
+ default: "auto",
39857
+ parseHTML: (element) => {
39858
+ return element.getAttribute("height");
39859
+ },
39860
+ renderHTML: (attributes) => {
39861
+ return {
39862
+ height: attributes.height
39863
+ };
39864
+ }
39865
+ },
39866
+ autoplay: {
39867
+ default: null,
39868
+ parseHTML: (element) => {
39869
+ return element.getAttribute("autoplay");
39870
+ },
39871
+ renderHTML: (attributes) => {
39872
+ return {
39873
+ autoplay: attributes.autoplay
39874
+ };
39875
+ }
39876
+ },
39877
+ controls: {
39878
+ default: null,
39879
+ parseHTML: (element) => {
39880
+ return element.getAttribute("controls");
39881
+ },
39882
+ renderHTML: (attributes) => {
39883
+ return {
39884
+ controls: attributes.controls
39885
+ };
39886
+ }
39887
+ },
39888
+ loop: {
39889
+ default: null,
39890
+ parseHTML: (element) => {
39891
+ return element.getAttribute("loop");
39892
+ },
39893
+ renderHTML: (attributes) => {
39894
+ return {
39895
+ loop: attributes.loop
39896
+ };
39897
+ }
39898
+ }
39899
+ };
39900
+ },
39901
+ parseHTML() {
39902
+ return [
39903
+ {
39904
+ tag: "video"
39905
+ }
39906
+ ];
39907
+ },
39908
+ renderHTML({ HTMLAttributes }) {
39909
+ return [
39910
+ "video",
39911
+ mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)
39912
+ ];
39913
+ },
39914
+ addCommands() {
39915
+ return {
39916
+ setVideo: (options) => ({ commands: commands2 }) => {
39917
+ return commands2.insertContent({
39918
+ type: this.name,
39919
+ attrs: options
39920
+ });
39921
+ }
39922
+ };
39923
+ },
39924
+ addInputRules() {
39925
+ return [
39926
+ nodeInputRule({
39927
+ find: /^\$video\$$/,
39928
+ type: this.type,
39929
+ getAttributes: () => {
39930
+ return { width: "100%" };
39931
+ }
39932
+ })
39933
+ ];
39934
+ },
39935
+ addNodeView() {
39936
+ return VueNodeViewRenderer(_sfc_main$2);
39937
+ }
39938
+ });
39939
+ const _hoisted_1$s = { class: "inline-block overflow-hidden transition-all text-center relative h-full w-full" };
39940
+ const _hoisted_2$r = { class: "py-1.5" };
39941
+ const _hoisted_3$r = ["autoplay", "loop", "src"];
39942
+ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
39943
+ __name: "AudioView",
39944
+ props: {
39945
+ editor: null,
39946
+ node: null,
39947
+ decorations: null,
39948
+ selected: { type: Boolean },
39949
+ extension: null,
39950
+ getPos: null,
39951
+ updateAttributes: null,
39952
+ deleteNode: null
39953
+ },
39954
+ setup(__props) {
39955
+ const props = __props;
39956
+ const src = vue.computed({
39957
+ get: () => {
39958
+ var _a;
39959
+ return (_a = props.node) == null ? void 0 : _a.attrs.src;
39960
+ },
39961
+ set: (src2) => {
39962
+ props.updateAttributes({ src: src2 });
39963
+ }
39964
+ });
39965
+ const autoplay = vue.computed(() => {
39966
+ return props.node.attrs.autoplay;
39967
+ });
39968
+ const loop = vue.computed(() => {
39969
+ return props.node.attrs.loop;
39970
+ });
39971
+ function handleSetFocus() {
39972
+ props.editor.commands.setNodeSelection(props.getPos());
39973
+ }
39974
+ function handleToggleAutoplay() {
39975
+ props.updateAttributes({
39976
+ autoplay: props.node.attrs.autoplay ? null : true
39977
+ });
39978
+ props.editor.chain().focus().setNodeSelection(props.getPos()).run();
39979
+ }
39980
+ function handleToggleLoop() {
39981
+ props.updateAttributes({
39982
+ loop: props.node.attrs.loop ? null : true
39983
+ });
39984
+ props.editor.chain().focus().setNodeSelection(props.getPos()).run();
39985
+ }
39986
+ function handleOpenLink() {
39987
+ window.open(src.value, "_blank");
39988
+ }
39989
+ return (_ctx, _cache) => {
39990
+ return vue.openBlock(), vue.createBlock(vue.unref(NodeViewWrapper), { as: "div" }, {
39991
+ default: vue.withCtx(() => [
39992
+ vue.createVNode(_sfc_main$6, {
39993
+ editor: __props.editor,
39994
+ "get-pos": __props.getPos,
39995
+ "delete-node": __props.deleteNode,
39996
+ selected: __props.selected
39997
+ }, {
39998
+ content: vue.withCtx(() => [
39999
+ vue.createElementVNode("div", _hoisted_1$s, [
40000
+ vue.createElementVNode("div", _hoisted_2$r, [
40001
+ vue.withDirectives(vue.createElementVNode("input", {
40002
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(src) ? src.value = $event : null),
40003
+ class: "block px-2 w-full py-1.5 text-sm text-gray-900 border border-gray-300 rounded-md bg-gray-50 focus:ring-blue-500 focus:border-blue-500",
40004
+ placeholder: "\u8F93\u5165\u94FE\u63A5\uFF0C\u6309\u56DE\u8F66\u786E\u5B9A",
40005
+ tabindex: "-1",
40006
+ onFocus: handleSetFocus
40007
+ }, null, 544), [
40008
+ [
40009
+ vue.vModelText,
40010
+ vue.unref(src),
40011
+ void 0,
40012
+ { lazy: true }
40013
+ ]
40014
+ ])
40015
+ ]),
40016
+ vue.unref(src) ? (vue.openBlock(), vue.createElementBlock("audio", {
40017
+ key: 0,
40018
+ controls: "",
40019
+ autoplay: vue.unref(autoplay),
40020
+ loop: vue.unref(loop),
40021
+ src: __props.node.attrs.src,
40022
+ onMouseenter: handleSetFocus
40023
+ }, null, 40, _hoisted_3$r)) : vue.createCommentVNode("", true)
40024
+ ])
40025
+ ]),
40026
+ actions: vue.withCtx(() => [
40027
+ vue.createVNode(_sfc_main$7, {
40028
+ selected: vue.unref(autoplay),
40029
+ tooltip: `${vue.unref(autoplay) ? "\u5173\u95ED\u81EA\u52A8\u64AD\u653E" : "\u5F00\u542F\u81EA\u52A8\u64AD\u653E"}`,
40030
+ onClick: handleToggleAutoplay
40031
+ }, {
40032
+ icon: vue.withCtx(() => [
40033
+ vue.unref(autoplay) ? (vue.openBlock(), vue.createBlock(vue.unref(MdiPlayCircle), { key: 0 })) : (vue.openBlock(), vue.createBlock(vue.unref(MdiPlayCircleOutline), { key: 1 }))
40034
+ ]),
40035
+ _: 1
40036
+ }, 8, ["selected", "tooltip"]),
40037
+ vue.createVNode(_sfc_main$7, {
40038
+ selected: vue.unref(loop),
40039
+ tooltip: `${vue.unref(loop) ? "\u5173\u95ED\u5FAA\u73AF\u64AD\u653E" : "\u5F00\u542F\u5FAA\u73AF\u64AD\u653E"}`,
40040
+ onClick: handleToggleLoop
40041
+ }, {
40042
+ icon: vue.withCtx(() => [
40043
+ vue.unref(loop) ? (vue.openBlock(), vue.createBlock(vue.unref(MdiMotionPlay), { key: 0 })) : (vue.openBlock(), vue.createBlock(vue.unref(MdiMotionPlayOutline), { key: 1 }))
40044
+ ]),
40045
+ _: 1
40046
+ }, 8, ["selected", "tooltip"]),
40047
+ vue.createVNode(BlockActionSeparator),
40048
+ vue.createVNode(_sfc_main$7, {
40049
+ tooltip: "\u6253\u5F00\u94FE\u63A5",
40050
+ onClick: handleOpenLink
40051
+ }, {
40052
+ icon: vue.withCtx(() => [
40053
+ vue.createVNode(vue.unref(MdiLinkVariant))
40054
+ ]),
40055
+ _: 1
40056
+ })
40057
+ ]),
40058
+ _: 1
40059
+ }, 8, ["editor", "get-pos", "delete-node", "selected"])
40060
+ ]),
40061
+ _: 1
40062
+ });
40063
+ };
40064
+ }
40065
+ });
40066
+ const Audio = Node.create({
40067
+ name: "audio",
40068
+ inline() {
40069
+ return true;
40070
+ },
40071
+ group() {
40072
+ return "inline";
40073
+ },
40074
+ addAttributes() {
40075
+ var _a;
40076
+ return {
40077
+ ...(_a = this.parent) == null ? void 0 : _a.call(this),
40078
+ src: {
40079
+ default: null,
40080
+ parseHTML: (element) => {
40081
+ return element.getAttribute("src");
40082
+ }
40083
+ },
40084
+ autoplay: {
40085
+ default: null,
40086
+ parseHTML: (element) => {
40087
+ return element.getAttribute("autoplay");
40088
+ },
40089
+ renderHTML: (attributes) => {
40090
+ return {
40091
+ autoplay: attributes.autoplay
40092
+ };
40093
+ }
40094
+ },
40095
+ controls: {
40096
+ default: true,
40097
+ parseHTML: (element) => {
40098
+ return element.getAttribute("controls");
40099
+ },
40100
+ renderHTML: (attributes) => {
40101
+ return {
40102
+ controls: attributes.controls
40103
+ };
40104
+ }
40105
+ },
40106
+ loop: {
40107
+ default: null,
40108
+ parseHTML: (element) => {
40109
+ return element.getAttribute("loop");
40110
+ },
40111
+ renderHTML: (attributes) => {
40112
+ return {
40113
+ loop: attributes.loop
40114
+ };
40115
+ }
40116
+ }
40117
+ };
40118
+ },
40119
+ parseHTML() {
40120
+ return [
40121
+ {
40122
+ tag: "audio"
40123
+ }
40124
+ ];
40125
+ },
40126
+ renderHTML({ HTMLAttributes }) {
40127
+ return [
40128
+ "audio",
40129
+ mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)
40130
+ ];
40131
+ },
40132
+ addCommands() {
40133
+ return {
40134
+ setAudio: (options) => ({ commands: commands2 }) => {
40135
+ return commands2.insertContent({
40136
+ type: this.name,
40137
+ attrs: options
40138
+ });
40139
+ }
40140
+ };
40141
+ },
40142
+ addInputRules() {
40143
+ return [
40144
+ nodeInputRule({
40145
+ find: /^\$audio\$$/,
40146
+ type: this.type,
40147
+ getAttributes: () => {
40148
+ return { width: "100%" };
40149
+ }
40150
+ })
40151
+ ];
40152
+ },
40153
+ addNodeView() {
40154
+ return VueNodeViewRenderer(_sfc_main$1);
40155
+ }
40156
+ });
40157
+ const inputRegex = /(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/;
40158
+ const Image$1 = Node.create({
40159
+ name: "image",
40160
+ addOptions() {
40161
+ return {
40162
+ inline: false,
40163
+ allowBase64: false,
40164
+ HTMLAttributes: {}
40165
+ };
40166
+ },
40167
+ inline() {
40168
+ return this.options.inline;
40169
+ },
40170
+ group() {
40171
+ return this.options.inline ? "inline" : "block";
40172
+ },
40173
+ draggable: true,
40174
+ addAttributes() {
40175
+ return {
40176
+ src: {
40177
+ default: null
40178
+ },
40179
+ alt: {
40180
+ default: null
40181
+ },
40182
+ title: {
40183
+ default: null
40184
+ }
40185
+ };
40186
+ },
40187
+ parseHTML() {
40188
+ return [
40189
+ {
40190
+ tag: this.options.allowBase64 ? "img[src]" : 'img[src]:not([src^="data:"])'
40191
+ }
40192
+ ];
40193
+ },
40194
+ renderHTML({ HTMLAttributes }) {
40195
+ return ["img", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];
40196
+ },
40197
+ addCommands() {
40198
+ return {
40199
+ setImage: (options) => ({ commands: commands2 }) => {
40200
+ return commands2.insertContent({
40201
+ type: this.name,
40202
+ attrs: options
40203
+ });
40204
+ }
40205
+ };
40206
+ },
40207
+ addInputRules() {
40208
+ return [
40209
+ nodeInputRule({
40210
+ find: inputRegex,
40211
+ type: this.type,
40212
+ getAttributes: (match) => {
40213
+ const [, , alt, src, title] = match;
40214
+ return { src, alt, title };
40215
+ }
40216
+ })
40217
+ ];
40218
+ }
40219
+ });
39368
40220
  const _hoisted_1$r = ["src", "title", "alt"];
39369
40221
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
39370
40222
  __name: "ImageView",
@@ -39420,7 +40272,7 @@ img.ProseMirror-separator {
39420
40272
  return (_ctx, _cache) => {
39421
40273
  return vue.openBlock(), vue.createBlock(vue.unref(NodeViewWrapper), { as: "div" }, {
39422
40274
  default: vue.withCtx(() => [
39423
- vue.createVNode(_sfc_main$4, {
40275
+ vue.createVNode(_sfc_main$6, {
39424
40276
  selected: __props.selected,
39425
40277
  editor: __props.editor,
39426
40278
  "delete-node": __props.deleteNode,
@@ -39445,20 +40297,20 @@ img.ProseMirror-separator {
39445
40297
  ], 6)
39446
40298
  ]),
39447
40299
  actions: vue.withCtx(() => [
39448
- vue.createVNode(_sfc_main$2, {
40300
+ vue.createVNode(_sfc_main$4, {
39449
40301
  modelValue: vue.unref(width),
39450
40302
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(width) ? width.value = $event : null),
39451
40303
  modelModifiers: { lazy: true, trim: true },
39452
40304
  tooltip: "\u81EA\u5B9A\u4E49\u5BBD\u5EA6\uFF0C\u6309\u56DE\u8F66\u952E\u751F\u6548"
39453
40305
  }, null, 8, ["modelValue"]),
39454
- vue.createVNode(_sfc_main$2, {
40306
+ vue.createVNode(_sfc_main$4, {
39455
40307
  modelValue: vue.unref(height),
39456
40308
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(height) ? height.value = $event : null),
39457
40309
  modelModifiers: { lazy: true, trim: true },
39458
40310
  tooltip: "\u81EA\u5B9A\u4E49\u9AD8\u5EA6\uFF0C\u6309\u56DE\u8F66\u952E\u751F\u6548"
39459
40311
  }, null, 8, ["modelValue"]),
39460
40312
  vue.createVNode(BlockActionSeparator),
39461
- vue.createVNode(_sfc_main$5, {
40313
+ vue.createVNode(_sfc_main$7, {
39462
40314
  tooltip: "\u5C0F\u5C3A\u5BF8",
39463
40315
  selected: __props.node.attrs.width === "25%",
39464
40316
  onClick: _cache[2] || (_cache[2] = ($event) => handleSetSize("25%", "auto"))
@@ -39468,7 +40320,7 @@ img.ProseMirror-separator {
39468
40320
  ]),
39469
40321
  _: 1
39470
40322
  }, 8, ["selected"]),
39471
- vue.createVNode(_sfc_main$5, {
40323
+ vue.createVNode(_sfc_main$7, {
39472
40324
  tooltip: "\u4E2D\u5C3A\u5BF8",
39473
40325
  selected: __props.node.attrs.width === "50%",
39474
40326
  onClick: _cache[3] || (_cache[3] = ($event) => handleSetSize("50%", "auto"))
@@ -39478,7 +40330,7 @@ img.ProseMirror-separator {
39478
40330
  ]),
39479
40331
  _: 1
39480
40332
  }, 8, ["selected"]),
39481
- vue.createVNode(_sfc_main$5, {
40333
+ vue.createVNode(_sfc_main$7, {
39482
40334
  tooltip: "\u5168\u5C3A\u5BF8",
39483
40335
  selected: __props.node.attrs.width === "100%",
39484
40336
  onClick: _cache[4] || (_cache[4] = ($event) => handleSetSize("100%", "100%"))
@@ -39489,7 +40341,7 @@ img.ProseMirror-separator {
39489
40341
  _: 1
39490
40342
  }, 8, ["selected"]),
39491
40343
  vue.createVNode(BlockActionSeparator),
39492
- vue.createVNode(_sfc_main$5, {
40344
+ vue.createVNode(_sfc_main$7, {
39493
40345
  tooltip: "\u6253\u5F00\u94FE\u63A5",
39494
40346
  onClick: handleOpenLink
39495
40347
  }, {
@@ -41851,7 +42703,9 @@ img.ProseMirror-separator {
41851
42703
  ExtensionCodeBlock.configure({
41852
42704
  lowlight
41853
42705
  }),
41854
- Iframe
42706
+ Iframe,
42707
+ Video,
42708
+ Audio
41855
42709
  ];
41856
42710
  const _hoisted_1$q = {
41857
42711
  viewBox: "0 0 24 24",
@@ -42616,7 +43470,7 @@ img.ProseMirror-separator {
42616
43470
  }
42617
43471
  const plugin = {
42618
43472
  install(app) {
42619
- app.component("RichTextEditor", _sfc_main$8);
43473
+ app.component("RichTextEditor", _sfc_main$a);
42620
43474
  }
42621
43475
  };
42622
43476
  exports.AlignCenterMenuItem = AlignCenterMenuItem;
@@ -42628,6 +43482,7 @@ img.ProseMirror-separator {
42628
43482
  exports.BulletListMenuItem = BulletListMenuItem;
42629
43483
  exports.CodeBlockMenuItem = CodeBlockMenuItem;
42630
43484
  exports.CodeMenuItem = CodeMenuItem;
43485
+ exports.CommandAudio = CommandAudio;
42631
43486
  exports.CommandBulletList = CommandBulletList;
42632
43487
  exports.CommandCodeBlock = CommandCodeBlock;
42633
43488
  exports.CommandHeader1 = CommandHeader1;
@@ -42641,11 +43496,13 @@ img.ProseMirror-separator {
42641
43496
  exports.CommandOrderedList = CommandOrderedList;
42642
43497
  exports.CommandTable = CommandTable;
42643
43498
  exports.CommandTaskList = CommandTaskList;
43499
+ exports.CommandVideo = CommandVideo;
42644
43500
  exports.CommandsSuggestion = suggestion;
42645
43501
  exports.CommentParagraph = CommentParagraph;
42646
43502
  exports.Editor = Editor;
42647
43503
  exports.EditorContent = EditorContent;
42648
43504
  exports.Extension = Extension;
43505
+ exports.ExtensionAudio = Audio;
42649
43506
  exports.ExtensionBlockquote = Blockquote;
42650
43507
  exports.ExtensionBold = Bold;
42651
43508
  exports.ExtensionBulletList = BulletList;
@@ -42677,6 +43534,7 @@ img.ProseMirror-separator {
42677
43534
  exports.ExtensionText = Text$1;
42678
43535
  exports.ExtensionTextAlign = TextAlign;
42679
43536
  exports.ExtensionUnderline = Underline;
43537
+ exports.ExtensionVideo = Video;
42680
43538
  exports.FloatingMenu = FloatingMenu;
42681
43539
  exports.HeadingMenuItem = HeadingMenuItem;
42682
43540
  exports.HighlightMenuItem = HighlightMenuItem;
@@ -42691,7 +43549,7 @@ img.ProseMirror-separator {
42691
43549
  exports.PasteRule = PasteRule;
42692
43550
  exports.QuoteMenuItem = QuoteMenuItem;
42693
43551
  exports.RedoMenuItem = RedoMenuItem;
42694
- exports.RichTextEditor = _sfc_main$8;
43552
+ exports.RichTextEditor = _sfc_main$a;
42695
43553
  exports.Separator = Separator;
42696
43554
  exports.StrikeMenuItem = StrikeMenuItem;
42697
43555
  exports.SubScriptMenuItem = SubScriptMenuItem;