@quoreadmin/ui 1.7.20 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.js +42 -40
  3. package/dist/index10.js +2 -2
  4. package/dist/{index100.js → index101.js} +1 -1
  5. package/dist/index103.js +138 -6
  6. package/dist/index104.js +4 -0
  7. package/dist/index107.js +2 -2
  8. package/dist/index109.js +1 -1
  9. package/dist/index11.js +2 -2
  10. package/dist/index111.js +3 -3
  11. package/dist/index113.js +6 -6
  12. package/dist/index115.js +1 -1
  13. package/dist/index117.js +5 -5
  14. package/dist/index12.js +2 -2
  15. package/dist/index127.js +2 -14
  16. package/dist/index128.js +16 -0
  17. package/dist/index13.js +2 -2
  18. package/dist/{index129.js → index130.js} +1 -1
  19. package/dist/{index131.js → index132.js} +2 -2
  20. package/dist/{index136.js → index137.js} +1 -1
  21. package/dist/index14.js +2 -2
  22. package/dist/{index140.js → index141.js} +7 -7
  23. package/dist/{index142.js → index143.js} +1 -1
  24. package/dist/{index144.js → index145.js} +10 -10
  25. package/dist/index15.js +2 -2
  26. package/dist/{index152.js → index153.js} +1 -1
  27. package/dist/{index155.js → index156.js} +1 -1
  28. package/dist/{index157.js → index158.js} +1 -1
  29. package/dist/index16.js +2 -2
  30. package/dist/{index159.js → index160.js} +9 -9
  31. package/dist/index163.js +111 -492
  32. package/dist/index164.js +471 -5498
  33. package/dist/index165.js +5511 -80
  34. package/dist/index166.js +86 -856
  35. package/dist/index167.js +844 -21
  36. package/dist/index168.js +23 -265
  37. package/dist/index169.js +256 -126
  38. package/dist/index17.js +2 -2
  39. package/dist/index170.js +146 -1195
  40. package/dist/index171.js +1139 -712
  41. package/dist/index172.js +704 -1240
  42. package/dist/index173.js +1280 -248
  43. package/dist/index174.js +266 -96
  44. package/dist/index175.js +106 -2
  45. package/dist/index176.js +2 -1376
  46. package/dist/index177.js +1378 -0
  47. package/dist/index179.js +12 -12
  48. package/dist/index18.js +2 -2
  49. package/dist/index180.js +10 -10
  50. package/dist/index181.js +12 -12
  51. package/dist/index182.js +14 -21
  52. package/dist/index183.js +23 -757
  53. package/dist/index184.js +759 -1122
  54. package/dist/index185.js +1122 -1234
  55. package/dist/index186.js +1205 -11248
  56. package/dist/index187.js +11277 -36
  57. package/dist/index188.js +36 -44
  58. package/dist/index189.js +42 -1188
  59. package/dist/index19.js +2 -2
  60. package/dist/index190.js +1192 -0
  61. package/dist/index192.js +5830 -99
  62. package/dist/index193.js +188 -16
  63. package/dist/index194.js +25 -8
  64. package/dist/index195.js +16 -76
  65. package/dist/index196.js +74 -249
  66. package/dist/index197.js +229 -13660
  67. package/dist/index198.js +13684 -27
  68. package/dist/index199.js +26 -62
  69. package/dist/index2.js +2 -2
  70. package/dist/index20.js +2 -2
  71. package/dist/index200.js +40 -215
  72. package/dist/index201.js +206 -276
  73. package/dist/index202.js +278 -258
  74. package/dist/index203.js +287 -32
  75. package/dist/index204.js +30 -113
  76. package/dist/index205.js +110 -30
  77. package/dist/index206.js +36 -26
  78. package/dist/index207.js +26 -36
  79. package/dist/index208.js +36 -9
  80. package/dist/index209.js +9 -19
  81. package/dist/index21.js +2 -2
  82. package/dist/index210.js +19 -10
  83. package/dist/index211.js +10 -10
  84. package/dist/index212.js +10 -51
  85. package/dist/index213.js +45 -37
  86. package/dist/index214.js +42 -3
  87. package/dist/index215.js +3 -38
  88. package/dist/index216.js +39 -21
  89. package/dist/index217.js +21 -88
  90. package/dist/index218.js +70 -389
  91. package/dist/index219.js +406 -21
  92. package/dist/index22.js +3 -3
  93. package/dist/index220.js +20 -159
  94. package/dist/index221.js +160 -19
  95. package/dist/index222.js +228 -20
  96. package/dist/index223.js +36 -21
  97. package/dist/index224.js +9 -198
  98. package/dist/index225.js +121 -64
  99. package/dist/index226.js +36 -32
  100. package/dist/index227.js +80 -40
  101. package/dist/index228.js +19 -126
  102. package/dist/index229.js +16 -34
  103. package/dist/index23.js +2 -2
  104. package/dist/index230.js +20 -80
  105. package/dist/index231.js +3 -3
  106. package/dist/index232.js +11 -11
  107. package/dist/index233.js +160 -19
  108. package/dist/index234.js +9 -9
  109. package/dist/index235.js +21 -160
  110. package/dist/index236.js +189 -218
  111. package/dist/index237.js +69 -36
  112. package/dist/index238.js +34 -10
  113. package/dist/index239.js +33 -3625
  114. package/dist/index24.js +2 -2
  115. package/dist/index240.js +22 -55
  116. package/dist/index241.js +22 -77
  117. package/dist/index242.js +20 -52
  118. package/dist/index243.js +822 -201
  119. package/dist/index244.js +702 -10
  120. package/dist/index245.js +174 -55
  121. package/dist/index246.js +22 -61
  122. package/dist/index247.js +20 -54
  123. package/dist/index248.js +20 -75
  124. package/dist/index249.js +3 -723
  125. package/dist/index25.js +53 -12
  126. package/dist/index250.js +182 -34
  127. package/dist/index251.js +128 -59
  128. package/dist/index252.js +1222 -10
  129. package/dist/index253.js +20 -705
  130. package/dist/index254.js +22 -820
  131. package/dist/index255.js +9 -9
  132. package/dist/index256.js +22 -15
  133. package/dist/index257.js +6 -6
  134. package/dist/index258.js +20 -836
  135. package/dist/index259.js +2 -702
  136. package/dist/index26.js +1 -1
  137. package/dist/index260.js +2 -176
  138. package/dist/index261.js +3632 -22
  139. package/dist/index262.js +55 -20
  140. package/dist/index263.js +77 -20
  141. package/dist/index264.js +52 -3
  142. package/dist/index265.js +208 -180
  143. package/dist/index266.js +10 -133
  144. package/dist/index267.js +51 -1217
  145. package/dist/index268.js +61 -20
  146. package/dist/index269.js +54 -22
  147. package/dist/index27.js +1 -1
  148. package/dist/index270.js +75 -22
  149. package/dist/index271.js +722 -28
  150. package/dist/index272.js +39 -20
  151. package/dist/index273.js +64 -20
  152. package/dist/index274.js +11 -2
  153. package/dist/index275.js +705 -2
  154. package/dist/index276.js +801 -234
  155. package/dist/index277.js +253 -8
  156. package/dist/index278.js +8 -138
  157. package/dist/index279.js +123 -68
  158. package/dist/index28.js +1 -1
  159. package/dist/index280.js +83 -3
  160. package/dist/index281.js +3 -27
  161. package/dist/index282.js +26 -53
  162. package/dist/index283.js +2 -79
  163. package/dist/index284.js +78 -25
  164. package/dist/index285.js +53 -21
  165. package/dist/index286.js +17 -13
  166. package/dist/index287.js +22 -16
  167. package/dist/index288.js +22 -17
  168. package/dist/index289.js +15 -22
  169. package/dist/index29.js +1 -1
  170. package/dist/index290.js +17 -2
  171. package/dist/index291.js +23 -1518
  172. package/dist/index292.js +74 -381
  173. package/dist/index293.js +22 -2731
  174. package/dist/index294.js +925 -76
  175. package/dist/index295.js +22 -3770
  176. package/dist/index296.js +19 -59
  177. package/dist/index297.js +20 -15
  178. package/dist/index298.js +63 -78
  179. package/dist/index299.js +18 -201
  180. package/dist/index3.js +2 -2
  181. package/dist/index30.js +1 -1
  182. package/dist/index300.js +19 -246
  183. package/dist/index301.js +21 -78
  184. package/dist/index302.js +11 -11
  185. package/dist/index303.js +58 -930
  186. package/dist/index304.js +1518 -22
  187. package/dist/index305.js +386 -20
  188. package/dist/index306.js +2731 -20
  189. package/dist/index307.js +84 -67
  190. package/dist/index308.js +3770 -19
  191. package/dist/index309.js +60 -19
  192. package/dist/index31.js +1 -1
  193. package/dist/index310.js +15 -22
  194. package/dist/index311.js +83 -21
  195. package/dist/index312.js +201 -62
  196. package/dist/index313.js +231 -247
  197. package/dist/index314.js +260 -4
  198. package/dist/index315.js +5 -139
  199. package/dist/index316.js +135 -68
  200. package/dist/index317.js +71 -85
  201. package/dist/index318.js +85 -27
  202. package/dist/index319.js +27 -14
  203. package/dist/index32.js +1 -1
  204. package/dist/index320.js +12 -71
  205. package/dist/index321.js +74 -3
  206. package/dist/index322.js +4 -2
  207. package/dist/index323.js +2 -83
  208. package/dist/index324.js +79 -49
  209. package/dist/index325.js +52 -5
  210. package/dist/index326.js +5 -4
  211. package/dist/index327.js +4 -178
  212. package/dist/index328.js +174 -58
  213. package/dist/index329.js +61 -73
  214. package/dist/index33.js +1 -1
  215. package/dist/index330.js +75 -9
  216. package/dist/index331.js +8 -12
  217. package/dist/index332.js +12 -54
  218. package/dist/index333.js +52 -9
  219. package/dist/index334.js +11 -13
  220. package/dist/index335.js +9 -53
  221. package/dist/index336.js +55 -49
  222. package/dist/index337.js +49 -28
  223. package/dist/index338.js +31 -2
  224. package/dist/index339.js +2 -5
  225. package/dist/index34.js +1 -1
  226. package/dist/index340.js +5 -2
  227. package/dist/index341.js +2 -23
  228. package/dist/index342.js +21 -39
  229. package/dist/index343.js +41 -2
  230. package/dist/index344.js +2 -11
  231. package/dist/index345.js +11 -20
  232. package/dist/index346.js +18 -15
  233. package/dist/index347.js +16 -9
  234. package/dist/index348.js +9 -9
  235. package/dist/index349.js +10 -2
  236. package/dist/index35.js +1 -1
  237. package/dist/index350.js +2 -9
  238. package/dist/index351.js +9 -10
  239. package/dist/index352.js +10 -14
  240. package/dist/index353.js +14 -37
  241. package/dist/index354.js +36 -19
  242. package/dist/index355.js +9 -9
  243. package/dist/index356.js +19 -63
  244. package/dist/index357.js +61 -34
  245. package/dist/index358.js +36 -18
  246. package/dist/index359.js +17 -55
  247. package/dist/index36.js +1 -1
  248. package/dist/index360.js +56 -28
  249. package/dist/index361.js +27 -5
  250. package/dist/index362.js +6 -51
  251. package/dist/index363.js +51 -6
  252. package/dist/index364.js +7 -12
  253. package/dist/index365.js +12 -7
  254. package/dist/index366.js +6 -27
  255. package/dist/index367.js +28 -2
  256. package/dist/index368.js +2 -70
  257. package/dist/index369.js +67 -164
  258. package/dist/index37.js +47 -17
  259. package/dist/index370.js +165 -99
  260. package/dist/index371.js +17 -91
  261. package/dist/index373.js +100 -16
  262. package/dist/index374.js +90 -30
  263. package/dist/index375.js +30 -10
  264. package/dist/index376.js +10 -3
  265. package/dist/index377.js +3 -3
  266. package/dist/index378.js +4 -13
  267. package/dist/index379.js +13 -7
  268. package/dist/index38.js +15 -43
  269. package/dist/index380.js +7 -12
  270. package/dist/index381.js +11 -4
  271. package/dist/index382.js +5 -33
  272. package/dist/index383.js +33 -31
  273. package/dist/index384.js +29 -26
  274. package/dist/index385.js +26 -59
  275. package/dist/index386.js +61 -3
  276. package/dist/index387.js +3 -2
  277. package/dist/index388.js +2 -2
  278. package/dist/index389.js +2 -17
  279. package/dist/index39.js +42 -67
  280. package/dist/index390.js +15 -11
  281. package/dist/index391.js +13 -6
  282. package/dist/index392.js +6 -32
  283. package/dist/index393.js +34 -0
  284. package/dist/index4.js +2 -2
  285. package/dist/index40.js +66 -26
  286. package/dist/index41.js +25 -32
  287. package/dist/index42.js +32 -37
  288. package/dist/index43.js +37 -1300
  289. package/dist/index44.js +1273 -337
  290. package/dist/index45.js +357 -145
  291. package/dist/index46.js +155 -18
  292. package/dist/index47.js +16 -42
  293. package/dist/index48.js +44 -68
  294. package/dist/index49.js +67 -61
  295. package/dist/index5.js +2 -2
  296. package/dist/index50.js +57 -175
  297. package/dist/index51.js +173 -77
  298. package/dist/index52.js +79 -200
  299. package/dist/index53.js +206 -68
  300. package/dist/index54.js +69 -20
  301. package/dist/index55.js +20 -11
  302. package/dist/index56.js +10 -6
  303. package/dist/index57.js +5 -209
  304. package/dist/index58.js +210 -12
  305. package/dist/index59.js +12 -184
  306. package/dist/index6.js +2 -2
  307. package/dist/index60.js +176 -68
  308. package/dist/index61.js +79 -0
  309. package/dist/index63.js +7 -63
  310. package/dist/index64.js +65 -0
  311. package/dist/index7.js +2 -2
  312. package/dist/{index71.js → index72.js} +2 -2
  313. package/dist/index76.js +40 -308
  314. package/dist/index77.js +330 -0
  315. package/dist/index8.js +3 -3
  316. package/dist/{index80.js → index81.js} +5 -5
  317. package/dist/{index82.js → index83.js} +1 -1
  318. package/dist/index85.js +23 -131
  319. package/dist/index86.js +144 -0
  320. package/dist/{index87.js → index88.js} +5 -5
  321. package/dist/index9.js +2 -2
  322. package/dist/{index89.js → index90.js} +5 -5
  323. package/dist/{index95.js → index96.js} +2 -2
  324. package/dist/index98.js +20 -25
  325. package/dist/index99.js +34 -0
  326. package/dist/src/components/footer-actions/footer-actions.stories.d.ts +33 -1
  327. package/dist/src/components/footer-actions/footer-actions.vue.d.ts +29 -2
  328. package/dist/src/components/page-header/page-header.stories.d.ts +376 -0
  329. package/dist/src/components/page-header/page-header.vue.d.ts +41 -0
  330. package/dist/src/index.d.ts +1 -0
  331. package/package.json +1 -1
  332. package/src/assets/illustrations/app-icon-news.svg +1 -0
  333. package/dist/index102.js +0 -142
  334. package/dist/index162.js +0 -116
  335. package/dist/index178.js +0 -20
  336. package/dist/index191.js +0 -5940
  337. package/dist/index62.js +0 -9
  338. package/dist/index75.js +0 -62
  339. package/dist/index84.js +0 -36
  340. package/dist/index97.js +0 -29
  341. package/dist/src/components/footer-actions/footer-actions.d.ts +0 -3
  342. /package/dist/{index134.js → index135.js} +0 -0
  343. /package/dist/{index138.js → index139.js} +0 -0
  344. /package/dist/{index146.js → index147.js} +0 -0
  345. /package/dist/{index148.js → index149.js} +0 -0
  346. /package/dist/{index150.js → index151.js} +0 -0
  347. /package/dist/{index65.js → index66.js} +0 -0
  348. /package/dist/{index67.js → index68.js} +0 -0
  349. /package/dist/{index69.js → index70.js} +0 -0
  350. /package/dist/{index73.js → index74.js} +0 -0
  351. /package/dist/{index78.js → index79.js} +0 -0
  352. /package/dist/{index91.js → index92.js} +0 -0
  353. /package/dist/{index93.js → index94.js} +0 -0
package/dist/index202.js CHANGED
@@ -1,290 +1,310 @@
1
- import { Extension as u, isNodeEmpty as w, callOrReturn as v, getExtensionField as S, isNodeSelection as P } from "./index239.js";
2
- import { Plugin as p, PluginKey as m } from "./index254.js";
3
- import { dropCursor as z } from "./index298.js";
4
- import { Decoration as g, DecorationSet as f } from "./index295.js";
5
- import { gapCursor as N } from "./index299.js";
6
- import { history as E, redo as M, undo as O } from "./index300.js";
7
- u.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, n = t.textBetween(0, t.content.size, " ", " ");
33
- return this.options.wordCounter(n);
34
- };
35
- },
36
- addProseMirrorPlugins() {
37
- let e = !1;
38
- return [
39
- new p({
40
- key: new m("characterCount"),
41
- appendTransaction: (t, n, 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 O, getMarksBetween as R, getAttributes as _ } from "./index261.js";
2
+ import { registerCustomProtocol as C, tokenize as H, find as M, reset as U } from "./index275.js";
3
+ import { Plugin as g, PluginKey as A } from "./index276.js";
4
+ var P = "[\0-   ᠎ -\u2029  ]", I = new RegExp(P), B = new RegExp(`${P}$`), N = new RegExp(P, "g");
5
+ function W(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 s = e.some((i) => i.docChanged) && !r.doc.eq(o.doc), l = e.some((i) => i.getMeta("preventAutolink"));
13
+ if (!s || l)
14
+ return;
15
+ const { tr: d } = o, a = w(r.doc, [...e]);
16
+ if (T(a).forEach(({ newRange: i }) => {
17
+ const f = O(o.doc, i, (c) => c.isTextblock);
18
+ let u, p;
19
+ if (f.length > 1)
20
+ u = f[0], p = o.doc.textBetween(
21
+ u.pos,
22
+ u.pos + u.node.nodeSize,
23
+ void 0,
24
+ " "
25
+ );
26
+ else if (f.length) {
27
+ const c = o.doc.textBetween(i.from, i.to, " ", " ");
28
+ if (!B.test(c))
47
29
  return;
48
- }
49
- const s = this.storage.characters({ node: r.doc });
50
- if (s > o) {
51
- const i = s - o, d = 0, a = i;
52
- console.warn(
53
- `[CharacterCount] Initial content exceeded limit of ${o} characters. Content was automatically trimmed.`
30
+ u = f[0], p = o.doc.textBetween(u.pos, i.to, void 0, " ");
31
+ }
32
+ if (u && p) {
33
+ const c = p.split(I).filter(Boolean);
34
+ if (c.length <= 0)
35
+ return !1;
36
+ const m = c[c.length - 1], E = u.pos + p.lastIndexOf(m);
37
+ if (!m)
38
+ return !1;
39
+ const L = H(m).map((n) => n.toObject(t.defaultProtocol));
40
+ if (!W(L))
41
+ return !1;
42
+ L.filter((n) => n.isLink).map((n) => ({
43
+ ...n,
44
+ from: E + n.start + 1,
45
+ to: E + n.end + 1
46
+ })).filter((n) => o.schema.marks.code ? !o.doc.rangeHasMark(n.from, n.to, o.schema.marks.code) : !0).filter((n) => t.validate(n.value)).filter((n) => t.shouldAutoLink(n.value)).forEach((n) => {
47
+ R(n.from, n.to, o.doc).some((y) => y.mark.type === t.type) || d.addMark(
48
+ n.from,
49
+ n.to,
50
+ t.type.create({
51
+ href: n.href
52
+ })
54
53
  );
55
- const c = r.tr.deleteRange(d, a);
56
- return e = !0, c;
54
+ });
55
+ }
56
+ }), !!d.steps.length)
57
+ return d;
58
+ }
59
+ });
60
+ }
61
+ function V(t) {
62
+ return new g({
63
+ key: new A("handleClickLink"),
64
+ props: {
65
+ handleClick: (e, r, o) => {
66
+ var s, l;
67
+ if (o.button !== 0 || !e.editable)
68
+ return !1;
69
+ let d = !1;
70
+ if (t.enableClickSelection && (d = t.editor.commands.extendMarkRange(t.type.name)), t.openOnClick) {
71
+ let a = null;
72
+ if (o.target instanceof HTMLAnchorElement)
73
+ a = o.target;
74
+ else {
75
+ let u = o.target;
76
+ const p = [];
77
+ for (; u.nodeName !== "DIV"; )
78
+ p.push(u), u = u.parentNode;
79
+ a = p.find((c) => c.nodeName === "A");
57
80
  }
58
- e = !0;
59
- },
60
- filterTransaction: (t, n) => {
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: n.doc }), s = this.storage.characters({ node: t.doc });
65
- if (s <= r || o > r && s > r && s <= o)
66
- return !0;
67
- if (o > r && s > r && s > o || !t.getMeta("paste"))
68
- return !1;
69
- const d = t.selection.$head.pos, a = s - r, c = d - a, l = d;
70
- return t.deleteRange(c, l), !(this.storage.characters({ node: t.doc }) > r);
81
+ if (!a)
82
+ return d;
83
+ const h = _(e.state, t.type.name), i = (s = a?.href) != null ? s : h.href, f = (l = a?.target) != null ? l : h.target;
84
+ a && i && (window.open(i, f), d = !0);
71
85
  }
72
- })
73
- ];
74
- }
75
- });
76
- var k = u.create({
77
- name: "dropCursor",
86
+ return d;
87
+ }
88
+ }
89
+ });
90
+ }
91
+ function D(t) {
92
+ return new g({
93
+ key: new A("handlePasteLink"),
94
+ props: {
95
+ handlePaste: (e, r, o) => {
96
+ const { shouldAutoLink: s } = t, { state: l } = e, { selection: d } = l, { empty: a } = d;
97
+ if (a)
98
+ return !1;
99
+ let h = "";
100
+ o.content.forEach((f) => {
101
+ h += f.textContent;
102
+ });
103
+ const i = M(h, { defaultProtocol: t.defaultProtocol }).find(
104
+ (f) => f.isLink && f.value === h
105
+ );
106
+ return !h || !i || s !== void 0 && !s(i.value) ? !1 : t.editor.commands.setMark(t.type, {
107
+ href: i.href
108
+ });
109
+ }
110
+ }
111
+ });
112
+ }
113
+ function k(t, e) {
114
+ const r = ["http", "https", "ftp", "ftps", "mailto", "tel", "callto", "sms", "cid", "xmpp"];
115
+ return e && e.forEach((o) => {
116
+ const s = typeof o == "string" ? o : o.scheme;
117
+ s && r.push(s);
118
+ }), !t || t.replace(N, "").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) => !!k(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 s = (t.includes("@") ? t.split("@").pop() : t).split(/[/?#:]/)[0];
166
+ return !(/^\d{1,3}(\.\d{1,3}){3}$/.test(s) || !/\./.test(s));
167
+ }
83
168
  };
84
169
  },
85
- addProseMirrorPlugins() {
86
- return [z(this.options)];
87
- }
88
- });
89
- u.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
+ }
95
187
  };
96
188
  },
97
- addProseMirrorPlugins() {
189
+ parseHTML() {
98
190
  return [
99
- new p({
100
- key: new m("focus"),
101
- props: {
102
- decorations: ({ doc: e, selection: t }) => {
103
- const { isEditable: n, isFocused: r } = this.editor, { anchor: o } = t, s = [];
104
- if (!n || !r)
105
- return f.create(e, []);
106
- let i = 0;
107
- this.options.mode === "deepest" && e.descendants((a, c) => {
108
- if (a.isText)
109
- return;
110
- if (!(o >= c && o <= c + a.nodeSize - 1))
111
- return !1;
112
- i += 1;
113
- });
114
- let d = 0;
115
- return e.descendants((a, c) => {
116
- if (a.isText || !(o >= c && o <= c + a.nodeSize - 1))
117
- return !1;
118
- if (d += 1, this.options.mode === "deepest" && i - d > 0 || this.options.mode === "shallowest" && d > 1)
119
- return this.options.mode === "deepest";
120
- s.push(
121
- g.node(c, c + a.nodeSize, {
122
- class: this.options.className
123
- })
124
- );
125
- }), f.create(e, s);
126
- }
191
+ {
192
+ tag: "a[href]",
193
+ getAttrs: (t) => {
194
+ const e = t.getAttribute("href");
195
+ return !e || !this.options.isAllowedUri(e, {
196
+ defaultValidate: (r) => !!k(r, this.options.protocols),
197
+ protocols: this.options.protocols,
198
+ defaultProtocol: this.options.defaultProtocol
199
+ }) ? !1 : null;
127
200
  }
128
- })
201
+ }
129
202
  ];
130
- }
131
- });
132
- var F = u.create({
133
- name: "gapCursor",
134
- addProseMirrorPlugins() {
135
- return [N()];
136
203
  },
137
- extendNodeSchema(e) {
138
- var t;
139
- const n = {
140
- name: e.name,
141
- options: e.options,
142
- storage: e.storage
143
- };
144
- return {
145
- allowGapCursor: (t = v(S(e, "allowGapCursor", n))) != null ? t : null
146
- };
147
- }
148
- }), R = u.create({
149
- name: "placeholder",
150
- addOptions() {
151
- return {
152
- emptyEditorClass: "is-editor-empty",
153
- emptyNodeClass: "is-empty",
154
- placeholder: "Write something …",
155
- showOnlyWhenEditable: !0,
156
- showOnlyCurrent: !0,
157
- includeChildren: !1
158
- };
204
+ renderHTML({ HTMLAttributes: t }) {
205
+ return this.options.isAllowedUri(t.href, {
206
+ defaultValidate: (e) => !!k(e, this.options.protocols),
207
+ protocols: this.options.protocols,
208
+ defaultProtocol: this.options.defaultProtocol
209
+ }) ? ["a", v(this.options.HTMLAttributes, t), 0] : ["a", v(this.options.HTMLAttributes, { ...t, href: "" }), 0];
159
210
  },
160
- addProseMirrorPlugins() {
161
- return [
162
- new p({
163
- key: new m("placeholder"),
164
- props: {
165
- decorations: ({ doc: e, selection: t }) => {
166
- const n = this.editor.isEditable || !this.options.showOnlyWhenEditable, { anchor: r } = t, o = [];
167
- if (!n)
168
- return null;
169
- const s = this.editor.isEmpty;
170
- return e.descendants((i, d) => {
171
- const a = r >= d && r <= d + i.nodeSize, c = !i.isLeaf && w(i);
172
- if ((a || !this.options.showOnlyCurrent) && c) {
173
- const l = [this.options.emptyNodeClass];
174
- s && l.push(this.options.emptyEditorClass);
175
- const h = g.node(d, d + i.nodeSize, {
176
- class: l.join(" "),
177
- "data-placeholder": typeof this.options.placeholder == "function" ? this.options.placeholder({
178
- editor: this.editor,
179
- node: i,
180
- pos: d,
181
- hasAnchor: a
182
- }) : this.options.placeholder
183
- });
184
- o.push(h);
185
- }
186
- return this.options.includeChildren;
187
- }), f.create(e, o);
188
- }
189
- }
190
- })
191
- ];
192
- }
193
- });
194
- u.create({
195
- name: "selection",
196
- addOptions() {
211
+ markdownTokenName: "link",
212
+ parseMarkdown: (t, e) => e.applyMark("link", e.parseInline(t.tokens || []), {
213
+ href: t.href,
214
+ title: t.title || null
215
+ }),
216
+ renderMarkdown: (t, e) => {
217
+ var r;
218
+ const o = ((r = t.attrs) == null ? void 0 : r.href) || "";
219
+ return `[${e.renderChildren(t)}](${o})`;
220
+ },
221
+ addCommands() {
197
222
  return {
198
- className: "selection"
223
+ setLink: (t) => ({ chain: e }) => {
224
+ const { href: r } = t;
225
+ return this.options.isAllowedUri(r, {
226
+ defaultValidate: (o) => !!k(o, this.options.protocols),
227
+ protocols: this.options.protocols,
228
+ defaultProtocol: this.options.defaultProtocol
229
+ }) ? e().setMark(this.name, t).setMeta("preventAutolink", !0).run() : !1;
230
+ },
231
+ toggleLink: (t) => ({ chain: e }) => {
232
+ const { href: r } = t || {};
233
+ return r && !this.options.isAllowedUri(r, {
234
+ defaultValidate: (o) => !!k(o, this.options.protocols),
235
+ protocols: this.options.protocols,
236
+ defaultProtocol: this.options.defaultProtocol
237
+ }) ? !1 : e().toggleMark(this.name, t, { extendEmptyMarkRange: !0 }).setMeta("preventAutolink", !0).run();
238
+ },
239
+ unsetLink: () => ({ chain: t }) => t().unsetMark(this.name, { extendEmptyMarkRange: !0 }).setMeta("preventAutolink", !0).run()
199
240
  };
200
241
  },
201
- addProseMirrorPlugins() {
202
- const { editor: e, options: t } = this;
242
+ addPasteRules() {
203
243
  return [
204
- new p({
205
- key: new m("selection"),
206
- props: {
207
- decorations(n) {
208
- return n.selection.empty || e.isFocused || !e.isEditable || P(n.selection) || e.view.dragging ? null : f.create(n.doc, [
209
- g.inline(n.selection.from, n.selection.to, {
210
- class: t.className
244
+ b({
245
+ find: (t) => {
246
+ const e = [];
247
+ if (t) {
248
+ const { protocols: r, defaultProtocol: o } = this.options, s = M(t).filter(
249
+ (l) => l.isLink && this.options.isAllowedUri(l.value, {
250
+ defaultValidate: (d) => !!k(d, r),
251
+ protocols: r,
252
+ defaultProtocol: o
211
253
  })
212
- ]);
254
+ );
255
+ s.length && s.forEach((l) => {
256
+ this.options.shouldAutoLink(l.value) && e.push({
257
+ text: l.value,
258
+ data: {
259
+ href: l.href
260
+ },
261
+ index: l.start
262
+ });
263
+ });
213
264
  }
214
- }
215
- })
216
- ];
217
- }
218
- });
219
- function y({ types: e, node: t }) {
220
- return t && Array.isArray(e) && e.includes(t.type) || t?.type === e;
221
- }
222
- var G = u.create({
223
- name: "trailingNode",
224
- addOptions() {
225
- return {
226
- node: void 0,
227
- notAfter: []
228
- };
229
- },
230
- addProseMirrorPlugins() {
231
- var e;
232
- const t = new m(this.name), n = 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(n).includes(o.name));
233
- return [
234
- new p({
235
- key: t,
236
- appendTransaction: (o, s, i) => {
237
- const { doc: d, tr: a, schema: c } = i, l = t.getState(i), h = d.content.size, C = c.nodes[n];
238
- if (l)
239
- return a.insert(h, C.create());
265
+ return e;
240
266
  },
241
- state: {
242
- init: (o, s) => {
243
- const i = s.tr.doc.lastChild;
244
- return !y({ node: i, types: r });
245
- },
246
- apply: (o, s) => {
247
- if (!o.docChanged || o.getMeta("__uniqueIDTransaction"))
248
- return s;
249
- const i = o.doc.lastChild;
250
- return !y({ node: i, types: r });
251
- }
267
+ type: this.type,
268
+ getAttributes: (t) => {
269
+ var e;
270
+ return {
271
+ href: (e = t.data) == null ? void 0 : e.href
272
+ };
252
273
  }
253
274
  })
254
275
  ];
255
- }
256
- }), B = u.create({
257
- name: "undoRedo",
258
- addOptions() {
259
- return {
260
- depth: 100,
261
- newGroupDelay: 500
262
- };
263
- },
264
- addCommands() {
265
- return {
266
- undo: () => ({ state: e, dispatch: t }) => O(e, t),
267
- redo: () => ({ state: e, dispatch: t }) => M(e, t)
268
- };
269
276
  },
270
277
  addProseMirrorPlugins() {
271
- return [E(this.options)];
272
- },
273
- addKeyboardShortcuts() {
274
- return {
275
- "Mod-z": () => this.editor.commands.undo(),
276
- "Shift-Mod-z": () => this.editor.commands.redo(),
277
- "Mod-y": () => this.editor.commands.redo(),
278
- // Russian keyboard layouts
279
- "Mod-я": () => this.editor.commands.undo(),
280
- "Shift-Mod-я": () => this.editor.commands.redo()
281
- };
278
+ const t = [], { protocols: e, defaultProtocol: r } = this.options;
279
+ return this.options.autolink && t.push(
280
+ z({
281
+ type: this.type,
282
+ defaultProtocol: this.options.defaultProtocol,
283
+ validate: (o) => this.options.isAllowedUri(o, {
284
+ defaultValidate: (s) => !!k(s, e),
285
+ protocols: e,
286
+ defaultProtocol: r
287
+ }),
288
+ shouldAutoLink: this.options.shouldAutoLink
289
+ })
290
+ ), t.push(
291
+ V({
292
+ type: this.type,
293
+ editor: this.editor,
294
+ openOnClick: this.options.openOnClick === "whenNotEditable" ? !0 : this.options.openOnClick,
295
+ enableClickSelection: this.options.enableClickSelection
296
+ })
297
+ ), this.options.linkOnPaste && t.push(
298
+ D({
299
+ editor: this.editor,
300
+ defaultProtocol: this.options.defaultProtocol,
301
+ type: this.type,
302
+ shouldAutoLink: this.options.shouldAutoLink
303
+ })
304
+ ), t;
282
305
  }
283
306
  });
284
307
  export {
285
- k as Dropcursor,
286
- F as Gapcursor,
287
- R as Placeholder,
288
- G as TrailingNode,
289
- B as UndoRedo
308
+ X as Link,
309
+ k as isAllowedUri
290
310
  };