@quoreadmin/ui 1.9.0 → 1.9.2

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 (280) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index104.js +36 -29
  3. package/dist/index110.js +1 -1
  4. package/dist/index114.js +2 -2
  5. package/dist/index118.js +3 -3
  6. package/dist/index132.js +1 -1
  7. package/dist/index134.js +2 -2
  8. package/dist/index143.js +3 -3
  9. package/dist/index145.js +1 -1
  10. package/dist/index147.js +6 -6
  11. package/dist/index153.js +156 -153
  12. package/dist/{index157.js → index158.js} +1 -1
  13. package/dist/{index160.js → index161.js} +1 -1
  14. package/dist/{index164.js → index165.js} +9 -9
  15. package/dist/index168.js +111 -492
  16. package/dist/index169.js +471 -5498
  17. package/dist/index170.js +5511 -80
  18. package/dist/index171.js +86 -856
  19. package/dist/index172.js +844 -21
  20. package/dist/index173.js +23 -265
  21. package/dist/index174.js +256 -126
  22. package/dist/index175.js +146 -1195
  23. package/dist/index176.js +1139 -712
  24. package/dist/index177.js +704 -1240
  25. package/dist/index178.js +1280 -248
  26. package/dist/index179.js +266 -96
  27. package/dist/index180.js +106 -2
  28. package/dist/index181.js +2 -1376
  29. package/dist/index182.js +1378 -0
  30. package/dist/index184.js +12 -12
  31. package/dist/index185.js +10 -10
  32. package/dist/index186.js +12 -12
  33. package/dist/index187.js +14 -21
  34. package/dist/index188.js +23 -757
  35. package/dist/index189.js +759 -1144
  36. package/dist/index190.js +1144 -1234
  37. package/dist/index191.js +1205 -11248
  38. package/dist/index192.js +11277 -36
  39. package/dist/index193.js +1226 -42
  40. package/dist/index195.js +38 -0
  41. package/dist/index196.js +44 -5938
  42. package/dist/index197.js +5830 -99
  43. package/dist/index198.js +188 -16
  44. package/dist/index199.js +25 -8
  45. package/dist/index200.js +16 -76
  46. package/dist/index201.js +74 -249
  47. package/dist/index202.js +229 -13660
  48. package/dist/index203.js +13684 -27
  49. package/dist/index204.js +26 -62
  50. package/dist/index205.js +40 -215
  51. package/dist/index206.js +206 -279
  52. package/dist/index207.js +281 -265
  53. package/dist/index208.js +287 -80
  54. package/dist/index209.js +29 -403
  55. package/dist/index210.js +116 -22
  56. package/dist/index211.js +32 -29
  57. package/dist/index212.js +26 -116
  58. package/dist/index213.js +31 -31
  59. package/dist/index214.js +51 -26
  60. package/dist/index215.js +41 -34
  61. package/dist/index216.js +3 -50
  62. package/dist/index217.js +9 -43
  63. package/dist/index218.js +18 -3
  64. package/dist/index219.js +9 -8
  65. package/dist/index220.js +10 -19
  66. package/dist/index221.js +39 -10
  67. package/dist/index222.js +21 -10
  68. package/dist/index223.js +84 -35
  69. package/dist/index224.js +407 -21
  70. package/dist/index225.js +19 -124
  71. package/dist/index226.js +122 -33
  72. package/dist/index227.js +38 -80
  73. package/dist/index228.js +80 -20
  74. package/dist/index229.js +12 -12
  75. package/dist/index230.js +3 -3
  76. package/dist/index231.js +3 -3
  77. package/dist/index232.js +11 -11
  78. package/dist/index233.js +19 -160
  79. package/dist/index234.js +157 -224
  80. package/dist/index235.js +222 -31
  81. package/dist/index236.js +37 -10
  82. package/dist/index237.js +9 -3635
  83. package/dist/index238.js +22 -55
  84. package/dist/index239.js +22 -77
  85. package/dist/index24.js +61 -58
  86. package/dist/index240.js +20 -52
  87. package/dist/index241.js +822 -201
  88. package/dist/index242.js +702 -10
  89. package/dist/index243.js +174 -55
  90. package/dist/index244.js +22 -61
  91. package/dist/index245.js +20 -54
  92. package/dist/index246.js +20 -75
  93. package/dist/index247.js +3 -726
  94. package/dist/index248.js +182 -37
  95. package/dist/index249.js +128 -59
  96. package/dist/index250.js +161 -11
  97. package/dist/index251.js +1189 -671
  98. package/dist/index252.js +20 -820
  99. package/dist/index253.js +21 -160
  100. package/dist/index254.js +1 -1
  101. package/dist/index255.js +10 -10
  102. package/dist/index256.js +28 -198
  103. package/dist/index257.js +19 -69
  104. package/dist/index258.js +20 -34
  105. package/dist/index259.js +2 -40
  106. package/dist/index260.js +2 -22
  107. package/dist/index261.js +12 -12
  108. package/dist/index262.js +198 -19
  109. package/dist/index263.js +48 -814
  110. package/dist/index264.js +34 -702
  111. package/dist/index265.js +39 -175
  112. package/dist/index266.js +3636 -22
  113. package/dist/index267.js +55 -20
  114. package/dist/index268.js +77 -20
  115. package/dist/index269.js +52 -3
  116. package/dist/index270.js +208 -180
  117. package/dist/index271.js +10 -133
  118. package/dist/index272.js +51 -1217
  119. package/dist/index273.js +61 -20
  120. package/dist/index274.js +54 -22
  121. package/dist/index275.js +75 -22
  122. package/dist/index276.js +725 -28
  123. package/dist/index277.js +42 -20
  124. package/dist/index278.js +64 -20
  125. package/dist/index279.js +11 -2
  126. package/dist/index280.js +705 -2
  127. package/dist/index281.js +801 -234
  128. package/dist/index282.js +253 -8
  129. package/dist/index283.js +8 -138
  130. package/dist/index284.js +123 -68
  131. package/dist/index285.js +83 -3
  132. package/dist/index286.js +3 -27
  133. package/dist/index287.js +27 -2
  134. package/dist/index288.js +2 -79
  135. package/dist/index289.js +73 -1528
  136. package/dist/index290.js +242 -366
  137. package/dist/index291.js +4 -2729
  138. package/dist/index292.js +137 -83
  139. package/dist/index293.js +69 -3788
  140. package/dist/index294.js +83 -56
  141. package/dist/index295.js +29 -15
  142. package/dist/index296.js +14 -82
  143. package/dist/index297.js +64 -191
  144. package/dist/index298.js +3 -245
  145. package/dist/index299.js +2 -54
  146. package/dist/index300.js +82 -25
  147. package/dist/index301.js +52 -21
  148. package/dist/index302.js +5 -21
  149. package/dist/index303.js +5 -16
  150. package/dist/index304.js +178 -16
  151. package/dist/index305.js +61 -21
  152. package/dist/index306.js +74 -78
  153. package/dist/index307.js +78 -21
  154. package/dist/index308.js +22 -935
  155. package/dist/index309.js +935 -22
  156. package/dist/index310.js +15 -13
  157. package/dist/index311.js +5 -5
  158. package/dist/index312.js +19 -68
  159. package/dist/index313.js +68 -18
  160. package/dist/index314.js +14 -14
  161. package/dist/index315.js +19 -22
  162. package/dist/index316.js +53 -21
  163. package/dist/index317.js +21 -62
  164. package/dist/index318.js +21 -261
  165. package/dist/index319.js +63 -6
  166. package/dist/index320.js +25 -139
  167. package/dist/index321.js +21 -72
  168. package/dist/index322.js +21 -86
  169. package/dist/index323.js +16 -29
  170. package/dist/index324.js +17 -16
  171. package/dist/index325.js +22 -74
  172. package/dist/index326.js +1533 -3
  173. package/dist/index327.js +386 -2
  174. package/dist/index328.js +2730 -82
  175. package/dist/index329.js +84 -51
  176. package/dist/index330.js +3790 -4
  177. package/dist/index331.js +59 -4
  178. package/dist/index332.js +15 -179
  179. package/dist/index333.js +78 -57
  180. package/dist/index334.js +201 -74
  181. package/dist/index335.js +245 -8
  182. package/dist/index336.js +8 -12
  183. package/dist/index337.js +12 -54
  184. package/dist/index338.js +52 -9
  185. package/dist/index339.js +11 -13
  186. package/dist/index340.js +9 -53
  187. package/dist/index341.js +55 -49
  188. package/dist/index342.js +49 -28
  189. package/dist/index343.js +31 -2
  190. package/dist/index344.js +2 -5
  191. package/dist/index345.js +5 -2
  192. package/dist/index346.js +2 -23
  193. package/dist/index347.js +21 -39
  194. package/dist/index348.js +41 -2
  195. package/dist/index349.js +2 -11
  196. package/dist/index350.js +11 -20
  197. package/dist/index351.js +20 -10
  198. package/dist/index352.js +9 -9
  199. package/dist/index353.js +9 -16
  200. package/dist/index354.js +17 -2
  201. package/dist/index355.js +2 -9
  202. package/dist/index356.js +9 -10
  203. package/dist/index357.js +10 -14
  204. package/dist/index358.js +14 -37
  205. package/dist/index359.js +36 -19
  206. package/dist/index360.js +18 -19
  207. package/dist/index361.js +54 -61
  208. package/dist/index362.js +29 -37
  209. package/dist/index363.js +5 -17
  210. package/dist/index364.js +49 -54
  211. package/dist/index365.js +7 -29
  212. package/dist/index366.js +11 -6
  213. package/dist/index367.js +4 -49
  214. package/dist/index368.js +27 -6
  215. package/dist/index369.js +2 -12
  216. package/dist/index370.js +69 -6
  217. package/dist/index371.js +166 -27
  218. package/dist/index372.js +20 -2
  219. package/dist/index373.js +20 -70
  220. package/dist/index374.js +60 -163
  221. package/dist/index375.js +36 -97
  222. package/dist/index376.js +28 -98
  223. package/dist/index377.js +10 -90
  224. package/dist/index378.js +4 -17
  225. package/dist/index379.js +3 -30
  226. package/dist/index380.js +13 -11
  227. package/dist/index381.js +7 -4
  228. package/dist/index382.js +11 -3
  229. package/dist/index383.js +5 -13
  230. package/dist/index384.js +33 -7
  231. package/dist/index385.js +30 -11
  232. package/dist/index386.js +28 -5
  233. package/dist/index387.js +61 -33
  234. package/dist/index388.js +16 -30
  235. package/dist/index389.js +99 -26
  236. package/dist/index390.js +91 -61
  237. package/dist/index391.js +98 -3
  238. package/dist/index392.js +3 -2
  239. package/dist/index393.js +2 -2
  240. package/dist/index394.js +2 -17
  241. package/dist/index395.js +15 -11
  242. package/dist/index396.js +13 -6
  243. package/dist/index397.js +6 -32
  244. package/dist/index398.js +34 -0
  245. package/dist/index49.js +3 -2
  246. package/dist/index50.js +2 -2
  247. package/dist/index51.js +1 -1
  248. package/dist/index52.js +1 -1
  249. package/dist/index53.js +1 -1
  250. package/dist/index54.js +1 -1
  251. package/dist/index56.js +2 -2
  252. package/dist/index58.js +1 -1
  253. package/dist/index60.js +5 -5
  254. package/dist/index61.js +1 -1
  255. package/dist/index73.js +2 -2
  256. package/dist/index77.js +1 -1
  257. package/dist/index82.js +1 -1
  258. package/dist/index87.js +1 -1
  259. package/dist/index89.js +3 -3
  260. package/dist/index91.js +2 -2
  261. package/dist/index97.js +2 -2
  262. package/dist/src/components/comment/comment.d.ts +10 -0
  263. package/dist/src/components/comment/comment.stories.d.ts +10 -0
  264. package/dist/src/components/comment-section/comment-section.d.ts +20 -0
  265. package/dist/src/components/comment-section/comment-section.stories.d.ts +30 -0
  266. package/dist/src/components/file-upload/file-upload.d.ts +10 -0
  267. package/dist/src/components/file-upload/file-upload.stories.d.ts +1315 -0
  268. package/dist/src/components/grid/grid.stories.d.ts +22 -16
  269. package/dist/src/components/list/list.stories.d.ts +11 -8
  270. package/dist/src/components/modal/modal.stories.d.ts +11 -8
  271. package/dist/src/components/select/select.d.ts +11 -9
  272. package/dist/src/components/select/select.stories.d.ts +33 -24
  273. package/dist/src/components/wysiwyg/wysiwyg.d.ts +10 -0
  274. package/dist/src/components/wysiwyg/wysiwyg.stories.d.ts +10 -0
  275. package/package.json +2 -2
  276. package/dist/index167.js +0 -116
  277. package/dist/index183.js +0 -20
  278. package/dist/index194.js +0 -1192
  279. /package/dist/{index155.js → index156.js} +0 -0
  280. /package/dist/{index162.js → index163.js} +0 -0
package/dist/index207.js CHANGED
@@ -1,297 +1,313 @@
1
- import { Extension as l, isNodeEmpty as v, callOrReturn as P, getExtensionField as S, isNodeSelection as z } from "./index237.js";
2
- import { Plugin as p, PluginKey as m } from "./index252.js";
3
- import { dropCursor as E } from "./index296.js";
4
- import { Decoration as y, DecorationSet as f } from "./index293.js";
5
- import { gapCursor as N } from "./index297.js";
6
- import { history as A, redo as M, undo as O } from "./index298.js";
7
- l.create({
8
- name: "characterCount",
9
- addOptions() {
10
- return {
11
- limit: null,
12
- mode: "textSize",
13
- textCounter: (e) => e.length,
14
- wordCounter: (e) => e.split(" ").filter((t) => t !== "").length
15
- };
16
- },
17
- addStorage() {
18
- return {
19
- characters: () => 0,
20
- words: () => 0
21
- };
22
- },
23
- onBeforeCreate() {
24
- this.storage.characters = (e) => {
25
- const t = e?.node || this.editor.state.doc;
26
- if ((e?.mode || this.options.mode) === "textSize") {
27
- const r = t.textBetween(0, t.content.size, void 0, " ");
28
- return this.options.textCounter(r);
29
- }
30
- return t.nodeSize;
31
- }, this.storage.words = (e) => {
32
- const t = e?.node || this.editor.state.doc, s = t.textBetween(0, t.content.size, " ", " ");
33
- return this.options.wordCounter(s);
34
- };
35
- },
36
- addProseMirrorPlugins() {
37
- let e = !1;
38
- return [
39
- new p({
40
- key: new m("characterCount"),
41
- appendTransaction: (t, s, r) => {
42
- if (e)
43
- return;
44
- const o = this.options.limit;
45
- if (o == null || o === 0) {
46
- e = !0;
1
+ import { Mark as x, markPasteRule as b, mergeAttributes as v, combineTransactionSteps as w, getChangedRanges as T, findChildrenInRange as _, getMarksBetween as O, getAttributes as R } from "./index266.js";
2
+ import { registerCustomProtocol as C, tokenize as H, find as M, reset as U } from "./index280.js";
3
+ import { Plugin as g, PluginKey as A } from "./index281.js";
4
+ var P = "[\0-   ᠎ -\u2029  ]", B = new RegExp(P), I = new RegExp(`${P}$`), W = new RegExp(P, "g");
5
+ function $(t) {
6
+ return t.length === 1 ? t[0].isLink : t.length === 3 && t[1].isLink ? ["()", "[]"].includes(t[0].value + t[2].value) : !1;
7
+ }
8
+ function z(t) {
9
+ return new g({
10
+ key: new A("autolink"),
11
+ appendTransaction: (e, r, o) => {
12
+ const n = e.some((a) => a.docChanged) && !r.doc.eq(o.doc), l = e.some((a) => a.getMeta("preventAutolink"));
13
+ if (!n || l)
14
+ return;
15
+ const { tr: i } = o, d = w(r.doc, [...e]);
16
+ if (T(d).forEach(({ newRange: a }) => {
17
+ const f = _(o.doc, a, (h) => h.isTextblock);
18
+ let c, k;
19
+ if (f.length > 1)
20
+ c = f[0], k = o.doc.textBetween(
21
+ c.pos,
22
+ c.pos + c.node.nodeSize,
23
+ void 0,
24
+ " "
25
+ );
26
+ else if (f.length) {
27
+ const h = o.doc.textBetween(a.from, a.to, " ", " ");
28
+ if (!I.test(h))
47
29
  return;
48
- }
49
- const n = this.storage.characters({ node: r.doc });
50
- if (n > o) {
51
- const c = n - o, a = 0, i = c;
52
- console.warn(
53
- `[CharacterCount] Initial content exceeded limit of ${o} characters. Content was automatically trimmed.`
30
+ c = f[0], k = o.doc.textBetween(c.pos, a.to, void 0, " ");
31
+ }
32
+ if (c && k) {
33
+ const h = k.split(B).filter(Boolean);
34
+ if (h.length <= 0)
35
+ return !1;
36
+ const m = h[h.length - 1], E = c.pos + k.lastIndexOf(m);
37
+ if (!m)
38
+ return !1;
39
+ const L = H(m).map((s) => s.toObject(t.defaultProtocol));
40
+ if (!$(L))
41
+ return !1;
42
+ L.filter((s) => s.isLink).map((s) => ({
43
+ ...s,
44
+ from: E + s.start + 1,
45
+ to: E + s.end + 1
46
+ })).filter((s) => o.schema.marks.code ? !o.doc.rangeHasMark(s.from, s.to, o.schema.marks.code) : !0).filter((s) => t.validate(s.value)).filter((s) => t.shouldAutoLink(s.value)).forEach((s) => {
47
+ O(s.from, s.to, o.doc).some((y) => y.mark.type === t.type) || i.addMark(
48
+ s.from,
49
+ s.to,
50
+ t.type.create({
51
+ href: s.href
52
+ })
54
53
  );
55
- const d = r.tr.deleteRange(a, i);
56
- return e = !0, d;
57
- }
58
- e = !0;
59
- },
60
- filterTransaction: (t, s) => {
61
- const r = this.options.limit;
62
- if (!t.docChanged || r === 0 || r === null || r === void 0)
63
- return !0;
64
- const o = this.storage.characters({ node: s.doc }), n = this.storage.characters({ node: t.doc });
65
- if (n <= r || o > r && n > r && n <= o)
66
- return !0;
67
- if (o > r && n > r && n > o || !t.getMeta("paste"))
54
+ });
55
+ }
56
+ }), !!i.steps.length)
57
+ return i;
58
+ }
59
+ });
60
+ }
61
+ function N(t) {
62
+ return new g({
63
+ key: new A("handleClickLink"),
64
+ props: {
65
+ handleClick: (e, r, o) => {
66
+ var n, l;
67
+ if (o.button !== 0 || !e.editable)
68
+ return !1;
69
+ let i = null;
70
+ if (o.target instanceof HTMLAnchorElement)
71
+ i = o.target;
72
+ else {
73
+ const u = o.target;
74
+ if (!u)
68
75
  return !1;
69
- const a = t.selection.$head.pos, i = n - r, d = a - i, u = a;
70
- return t.deleteRange(d, u), !(this.storage.characters({ node: t.doc }) > r);
76
+ const a = t.editor.view.dom;
77
+ i = u.closest("a"), i && !a.contains(i) && (i = null);
71
78
  }
72
- })
73
- ];
74
- }
75
- });
76
- var k = l.create({
77
- name: "dropCursor",
79
+ if (!i)
80
+ return !1;
81
+ let d = !1;
82
+ if (t.enableClickSelection && (d = t.editor.commands.extendMarkRange(t.type.name)), t.openOnClick) {
83
+ const u = R(e.state, t.type.name), a = (n = i.href) != null ? n : u.href, f = (l = i.target) != null ? l : u.target;
84
+ a && (window.open(a, f), d = !0);
85
+ }
86
+ return d;
87
+ }
88
+ }
89
+ });
90
+ }
91
+ function V(t) {
92
+ return new g({
93
+ key: new A("handlePasteLink"),
94
+ props: {
95
+ handlePaste: (e, r, o) => {
96
+ const { shouldAutoLink: n } = t, { state: l } = e, { selection: i } = l, { empty: d } = i;
97
+ if (d)
98
+ return !1;
99
+ let u = "";
100
+ o.content.forEach((f) => {
101
+ u += f.textContent;
102
+ });
103
+ const a = M(u, { defaultProtocol: t.defaultProtocol }).find(
104
+ (f) => f.isLink && f.value === u
105
+ );
106
+ return !u || !a || n !== void 0 && !n(a.value) ? !1 : t.editor.commands.setMark(t.type, {
107
+ href: a.href
108
+ });
109
+ }
110
+ }
111
+ });
112
+ }
113
+ function p(t, e) {
114
+ const r = ["http", "https", "ftp", "ftps", "mailto", "tel", "callto", "sms", "cid", "xmpp"];
115
+ return e && e.forEach((o) => {
116
+ const n = typeof o == "string" ? o : o.scheme;
117
+ n && r.push(n);
118
+ }), !t || t.replace(W, "").match(
119
+ new RegExp(
120
+ // eslint-disable-next-line no-useless-escape
121
+ `^(?:(?:${r.join("|")}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`,
122
+ "i"
123
+ )
124
+ );
125
+ }
126
+ var X = x.create({
127
+ name: "link",
128
+ priority: 1e3,
129
+ keepOnSplit: !1,
130
+ exitable: !0,
131
+ onCreate() {
132
+ this.options.validate && !this.options.shouldAutoLink && (this.options.shouldAutoLink = this.options.validate, console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.")), this.options.protocols.forEach((t) => {
133
+ if (typeof t == "string") {
134
+ C(t);
135
+ return;
136
+ }
137
+ C(t.scheme, t.optionalSlashes);
138
+ });
139
+ },
140
+ onDestroy() {
141
+ U();
142
+ },
143
+ inclusive() {
144
+ return this.options.autolink;
145
+ },
78
146
  addOptions() {
79
147
  return {
80
- color: "currentColor",
81
- width: 1,
82
- class: void 0
148
+ openOnClick: !0,
149
+ enableClickSelection: !1,
150
+ linkOnPaste: !0,
151
+ autolink: !0,
152
+ protocols: [],
153
+ defaultProtocol: "http",
154
+ HTMLAttributes: {
155
+ target: "_blank",
156
+ rel: "noopener noreferrer nofollow",
157
+ class: null
158
+ },
159
+ isAllowedUri: (t, e) => !!p(t, e.protocols),
160
+ validate: (t) => !!t,
161
+ shouldAutoLink: (t) => {
162
+ const e = /^[a-z][a-z0-9+.-]*:\/\//i.test(t), r = /^[a-z][a-z0-9+.-]*:/i.test(t);
163
+ if (e || r && !t.includes("@"))
164
+ return !0;
165
+ const n = (t.includes("@") ? t.split("@").pop() : t).split(/[/?#:]/)[0];
166
+ return !(/^\d{1,3}(\.\d{1,3}){3}$/.test(n) || !/\./.test(n));
167
+ }
83
168
  };
84
169
  },
85
- addProseMirrorPlugins() {
86
- return [E(this.options)];
87
- }
88
- });
89
- l.create({
90
- name: "focus",
91
- addOptions() {
170
+ addAttributes() {
92
171
  return {
93
- className: "has-focus",
94
- mode: "all"
172
+ href: {
173
+ default: null,
174
+ parseHTML(t) {
175
+ return t.getAttribute("href");
176
+ }
177
+ },
178
+ target: {
179
+ default: this.options.HTMLAttributes.target
180
+ },
181
+ rel: {
182
+ default: this.options.HTMLAttributes.rel
183
+ },
184
+ class: {
185
+ default: this.options.HTMLAttributes.class
186
+ },
187
+ title: {
188
+ default: null
189
+ }
95
190
  };
96
191
  },
97
- addProseMirrorPlugins() {
192
+ parseHTML() {
98
193
  return [
99
- new p({
100
- key: new m("focus"),
101
- props: {
102
- decorations: ({ doc: e, selection: t }) => {
103
- const { isEditable: s, isFocused: r } = this.editor, { anchor: o } = t, n = [];
104
- if (!s || !r)
105
- return f.create(e, []);
106
- let c = 0;
107
- this.options.mode === "deepest" && e.descendants((i, d) => {
108
- if (i.isText)
109
- return;
110
- if (!(o >= d && o <= d + i.nodeSize - 1))
111
- return !1;
112
- c += 1;
113
- });
114
- let a = 0;
115
- return e.descendants((i, d) => {
116
- if (i.isText || !(o >= d && o <= d + i.nodeSize - 1))
117
- return !1;
118
- if (a += 1, this.options.mode === "deepest" && c - a > 0 || this.options.mode === "shallowest" && a > 1)
119
- return this.options.mode === "deepest";
120
- n.push(
121
- y.node(d, d + i.nodeSize, {
122
- class: this.options.className
123
- })
124
- );
125
- }), f.create(e, n);
126
- }
194
+ {
195
+ tag: "a[href]",
196
+ getAttrs: (t) => {
197
+ const e = t.getAttribute("href");
198
+ return !e || !this.options.isAllowedUri(e, {
199
+ defaultValidate: (r) => !!p(r, this.options.protocols),
200
+ protocols: this.options.protocols,
201
+ defaultProtocol: this.options.defaultProtocol
202
+ }) ? !1 : null;
127
203
  }
128
- })
204
+ }
129
205
  ];
130
- }
131
- });
132
- var L = l.create({
133
- name: "gapCursor",
134
- addProseMirrorPlugins() {
135
- return [N()];
136
206
  },
137
- extendNodeSchema(e) {
138
- var t;
139
- const s = {
140
- name: e.name,
141
- options: e.options,
142
- storage: e.storage
143
- };
144
- return {
145
- allowGapCursor: (t = P(S(e, "allowGapCursor", s))) != null ? t : null
146
- };
147
- }
148
- }), C = "placeholder";
149
- function T(e) {
150
- return e.replace(/\s+/g, "-").replace(/[^a-zA-Z0-9-]/g, "").replace(/^[0-9-]+/, "").replace(/^-+/, "").toLowerCase();
151
- }
152
- var B = l.create({
153
- name: "placeholder",
154
- addOptions() {
155
- return {
156
- emptyEditorClass: "is-editor-empty",
157
- emptyNodeClass: "is-empty",
158
- dataAttribute: C,
159
- placeholder: "Write something …",
160
- showOnlyWhenEditable: !0,
161
- showOnlyCurrent: !0,
162
- includeChildren: !1
163
- };
207
+ renderHTML({ HTMLAttributes: t }) {
208
+ return this.options.isAllowedUri(t.href, {
209
+ defaultValidate: (e) => !!p(e, this.options.protocols),
210
+ protocols: this.options.protocols,
211
+ defaultProtocol: this.options.defaultProtocol
212
+ }) ? ["a", v(this.options.HTMLAttributes, t), 0] : ["a", v(this.options.HTMLAttributes, { ...t, href: "" }), 0];
164
213
  },
165
- addProseMirrorPlugins() {
166
- const e = this.options.dataAttribute ? `data-${T(this.options.dataAttribute)}` : `data-${C}`;
167
- return [
168
- new p({
169
- key: new m("placeholder"),
170
- props: {
171
- decorations: ({ doc: t, selection: s }) => {
172
- const r = this.editor.isEditable || !this.options.showOnlyWhenEditable, { anchor: o } = s, n = [];
173
- if (!r)
174
- return null;
175
- const c = this.editor.isEmpty;
176
- return t.descendants((a, i) => {
177
- const d = o >= i && o <= i + a.nodeSize, u = !a.isLeaf && v(a);
178
- if ((d || !this.options.showOnlyCurrent) && u) {
179
- const h = [this.options.emptyNodeClass];
180
- c && h.push(this.options.emptyEditorClass);
181
- const g = y.node(i, i + a.nodeSize, {
182
- class: h.join(" "),
183
- [e]: typeof this.options.placeholder == "function" ? this.options.placeholder({
184
- editor: this.editor,
185
- node: a,
186
- pos: i,
187
- hasAnchor: d
188
- }) : this.options.placeholder
189
- });
190
- n.push(g);
191
- }
192
- return this.options.includeChildren;
193
- }), f.create(t, n);
194
- }
195
- }
196
- })
197
- ];
198
- }
199
- });
200
- l.create({
201
- name: "selection",
202
- addOptions() {
214
+ markdownTokenName: "link",
215
+ parseMarkdown: (t, e) => e.applyMark("link", e.parseInline(t.tokens || []), {
216
+ href: t.href,
217
+ title: t.title || null
218
+ }),
219
+ renderMarkdown: (t, e) => {
220
+ var r, o, n, l;
221
+ const i = (o = (r = t.attrs) == null ? void 0 : r.href) != null ? o : "", d = (l = (n = t.attrs) == null ? void 0 : n.title) != null ? l : "", u = e.renderChildren(t);
222
+ return d ? `[${u}](${i} "${d}")` : `[${u}](${i})`;
223
+ },
224
+ addCommands() {
203
225
  return {
204
- className: "selection"
226
+ setLink: (t) => ({ chain: e }) => {
227
+ const { href: r } = t;
228
+ return this.options.isAllowedUri(r, {
229
+ defaultValidate: (o) => !!p(o, this.options.protocols),
230
+ protocols: this.options.protocols,
231
+ defaultProtocol: this.options.defaultProtocol
232
+ }) ? e().setMark(this.name, t).setMeta("preventAutolink", !0).run() : !1;
233
+ },
234
+ toggleLink: (t) => ({ chain: e }) => {
235
+ const { href: r } = t || {};
236
+ return r && !this.options.isAllowedUri(r, {
237
+ defaultValidate: (o) => !!p(o, this.options.protocols),
238
+ protocols: this.options.protocols,
239
+ defaultProtocol: this.options.defaultProtocol
240
+ }) ? !1 : e().toggleMark(this.name, t, { extendEmptyMarkRange: !0 }).setMeta("preventAutolink", !0).run();
241
+ },
242
+ unsetLink: () => ({ chain: t }) => t().unsetMark(this.name, { extendEmptyMarkRange: !0 }).setMeta("preventAutolink", !0).run()
205
243
  };
206
244
  },
207
- addProseMirrorPlugins() {
208
- const { editor: e, options: t } = this;
245
+ addPasteRules() {
209
246
  return [
210
- new p({
211
- key: new m("selection"),
212
- props: {
213
- decorations(s) {
214
- return s.selection.empty || e.isFocused || !e.isEditable || z(s.selection) || e.view.dragging ? null : f.create(s.doc, [
215
- y.inline(s.selection.from, s.selection.to, {
216
- class: t.className
247
+ b({
248
+ find: (t) => {
249
+ const e = [];
250
+ if (t) {
251
+ const { protocols: r, defaultProtocol: o } = this.options, n = M(t).filter(
252
+ (l) => l.isLink && this.options.isAllowedUri(l.value, {
253
+ defaultValidate: (i) => !!p(i, r),
254
+ protocols: r,
255
+ defaultProtocol: o
217
256
  })
218
- ]);
257
+ );
258
+ n.length && n.forEach((l) => {
259
+ this.options.shouldAutoLink(l.value) && e.push({
260
+ text: l.value,
261
+ data: {
262
+ href: l.href
263
+ },
264
+ index: l.start
265
+ });
266
+ });
219
267
  }
220
- }
221
- })
222
- ];
223
- }
224
- });
225
- function w({ types: e, node: t }) {
226
- return t && Array.isArray(e) && e.includes(t.type) || t?.type === e;
227
- }
228
- var G = l.create({
229
- name: "trailingNode",
230
- addOptions() {
231
- return {
232
- node: void 0,
233
- notAfter: []
234
- };
235
- },
236
- addProseMirrorPlugins() {
237
- var e;
238
- const t = new m(this.name), s = this.options.node || ((e = this.editor.schema.topNodeType.contentMatch.defaultType) == null ? void 0 : e.name) || "paragraph", r = Object.entries(this.editor.schema.nodes).map(([, o]) => o).filter((o) => (this.options.notAfter || []).concat(s).includes(o.name));
239
- return [
240
- new p({
241
- key: t,
242
- appendTransaction: (o, n, c) => {
243
- const { doc: a, tr: i, schema: d } = c, u = t.getState(c), h = a.content.size, g = d.nodes[s];
244
- if (u)
245
- return i.insert(h, g.create());
268
+ return e;
246
269
  },
247
- state: {
248
- init: (o, n) => {
249
- const c = n.tr.doc.lastChild;
250
- return !w({ node: c, types: r });
251
- },
252
- apply: (o, n) => {
253
- if (!o.docChanged || o.getMeta("__uniqueIDTransaction"))
254
- return n;
255
- const c = o.doc.lastChild;
256
- return !w({ node: c, types: r });
257
- }
270
+ type: this.type,
271
+ getAttributes: (t) => {
272
+ var e;
273
+ return {
274
+ href: (e = t.data) == null ? void 0 : e.href
275
+ };
258
276
  }
259
277
  })
260
278
  ];
261
- }
262
- }), I = l.create({
263
- name: "undoRedo",
264
- addOptions() {
265
- return {
266
- depth: 100,
267
- newGroupDelay: 500
268
- };
269
- },
270
- addCommands() {
271
- return {
272
- undo: () => ({ state: e, dispatch: t }) => O(e, t),
273
- redo: () => ({ state: e, dispatch: t }) => M(e, t)
274
- };
275
279
  },
276
280
  addProseMirrorPlugins() {
277
- return [A(this.options)];
278
- },
279
- addKeyboardShortcuts() {
280
- return {
281
- "Mod-z": () => this.editor.commands.undo(),
282
- "Shift-Mod-z": () => this.editor.commands.redo(),
283
- "Mod-y": () => this.editor.commands.redo(),
284
- // Russian keyboard layouts
285
- "Mod-я": () => this.editor.commands.undo(),
286
- "Shift-Mod-я": () => this.editor.commands.redo()
287
- };
281
+ const t = [], { protocols: e, defaultProtocol: r } = this.options;
282
+ return this.options.autolink && t.push(
283
+ z({
284
+ type: this.type,
285
+ defaultProtocol: this.options.defaultProtocol,
286
+ validate: (o) => this.options.isAllowedUri(o, {
287
+ defaultValidate: (n) => !!p(n, e),
288
+ protocols: e,
289
+ defaultProtocol: r
290
+ }),
291
+ shouldAutoLink: this.options.shouldAutoLink
292
+ })
293
+ ), t.push(
294
+ N({
295
+ type: this.type,
296
+ editor: this.editor,
297
+ openOnClick: this.options.openOnClick === "whenNotEditable" ? !0 : this.options.openOnClick,
298
+ enableClickSelection: this.options.enableClickSelection
299
+ })
300
+ ), this.options.linkOnPaste && t.push(
301
+ V({
302
+ editor: this.editor,
303
+ defaultProtocol: this.options.defaultProtocol,
304
+ type: this.type,
305
+ shouldAutoLink: this.options.shouldAutoLink
306
+ })
307
+ ), t;
288
308
  }
289
309
  });
290
310
  export {
291
- k as Dropcursor,
292
- L as Gapcursor,
293
- B as Placeholder,
294
- G as TrailingNode,
295
- I as UndoRedo,
296
- T as preparePlaceholderAttribute
311
+ X as Link,
312
+ p as isAllowedUri
297
313
  };