@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/index206.js CHANGED
@@ -1,313 +1,240 @@
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 "./index237.js";
2
- import { registerCustomProtocol as C, tokenize as H, find as M, reset as U } from "./index251.js";
3
- import { Plugin as g, PluginKey as A } from "./index252.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))
29
- return;
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
- })
53
- );
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)
75
- return !1;
76
- const a = t.editor.view.dom;
77
- i = u.closest("a"), i && !a.contains(i) && (i = null);
78
- }
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
- }
1
+ import { Mark as y, mergeAttributes as p, Extension as l } from "./index266.js";
2
+ var d = 20, u = (t, e = 0) => {
3
+ const r = [];
4
+ return !t.children.length || e > d || Array.from(t.children).forEach((o) => {
5
+ o.tagName === "SPAN" ? r.push(o) : o.children.length && r.push(...u(o, e + 1));
6
+ }), r;
7
+ }, f = (t) => {
8
+ if (!t.children.length)
9
+ return;
10
+ const e = u(t);
11
+ e && e.forEach((r) => {
12
+ var o, n;
13
+ const s = r.getAttribute("style"), i = (n = (o = r.parentElement) == null ? void 0 : o.closest("span")) == null ? void 0 : n.getAttribute("style");
14
+ r.setAttribute("style", `${i};${s}`);
111
15
  });
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
- });
16
+ }, c = y.create({
17
+ name: "textStyle",
18
+ priority: 101,
19
+ addOptions() {
20
+ return {
21
+ HTMLAttributes: {},
22
+ mergeNestedSpanStyles: !0
23
+ };
139
24
  },
140
- onDestroy() {
141
- U();
25
+ parseHTML() {
26
+ return [
27
+ {
28
+ tag: "span",
29
+ consuming: !1,
30
+ getAttrs: (t) => t.hasAttribute("style") ? (this.options.mergeNestedSpanStyles && f(t), {}) : !1
31
+ }
32
+ ];
142
33
  },
143
- inclusive() {
144
- return this.options.autolink;
34
+ renderHTML({ HTMLAttributes: t }) {
35
+ return ["span", p(this.options.HTMLAttributes, t), 0];
145
36
  },
146
- addOptions() {
37
+ addCommands() {
147
38
  return {
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));
39
+ toggleTextStyle: (t) => ({ commands: e }) => e.toggleMark(this.name, t),
40
+ removeEmptyTextStyle: () => ({ tr: t }) => {
41
+ const { selection: e } = t;
42
+ return t.doc.nodesBetween(e.from, e.to, (r, o) => {
43
+ if (r.isTextblock)
44
+ return !0;
45
+ r.marks.filter((n) => n.type === this.type).some((n) => Object.values(n.attrs).some((s) => !!s)) || t.removeMark(o, o + r.nodeSize, this.type);
46
+ }), !0;
167
47
  }
168
48
  };
49
+ }
50
+ }), m = l.create({
51
+ name: "backgroundColor",
52
+ addOptions() {
53
+ return {
54
+ types: ["textStyle"]
55
+ };
169
56
  },
170
- addAttributes() {
57
+ addGlobalAttributes() {
58
+ return [
59
+ {
60
+ types: this.options.types,
61
+ attributes: {
62
+ backgroundColor: {
63
+ default: null,
64
+ parseHTML: (t) => {
65
+ var e;
66
+ const r = t.getAttribute("style");
67
+ if (r) {
68
+ const o = r.split(";").map((n) => n.trim()).filter(Boolean);
69
+ for (let n = o.length - 1; n >= 0; n -= 1) {
70
+ const s = o[n].split(":");
71
+ if (s.length >= 2) {
72
+ const i = s[0].trim().toLowerCase(), a = s.slice(1).join(":").trim();
73
+ if (i === "background-color")
74
+ return a.replace(/['"]+/g, "");
75
+ }
76
+ }
77
+ }
78
+ return (e = t.style.backgroundColor) == null ? void 0 : e.replace(/['"]+/g, "");
79
+ },
80
+ renderHTML: (t) => t.backgroundColor ? {
81
+ style: `background-color: ${t.backgroundColor}`
82
+ } : {}
83
+ }
84
+ }
85
+ }
86
+ ];
87
+ },
88
+ addCommands() {
171
89
  return {
172
- href: {
173
- default: null,
174
- parseHTML(t) {
175
- return t.getAttribute("href");
90
+ setBackgroundColor: (t) => ({ chain: e }) => e().setMark("textStyle", { backgroundColor: t }).run(),
91
+ unsetBackgroundColor: () => ({ chain: t }) => t().setMark("textStyle", { backgroundColor: null }).removeEmptyTextStyle().run()
92
+ };
93
+ }
94
+ }), g = l.create({
95
+ name: "color",
96
+ addOptions() {
97
+ return {
98
+ types: ["textStyle"]
99
+ };
100
+ },
101
+ addGlobalAttributes() {
102
+ return [
103
+ {
104
+ types: this.options.types,
105
+ attributes: {
106
+ color: {
107
+ default: null,
108
+ parseHTML: (t) => {
109
+ var e;
110
+ const r = t.getAttribute("style");
111
+ if (r) {
112
+ const o = r.split(";").map((n) => n.trim()).filter(Boolean);
113
+ for (let n = o.length - 1; n >= 0; n -= 1) {
114
+ const s = o[n].split(":");
115
+ if (s.length >= 2) {
116
+ const i = s[0].trim().toLowerCase(), a = s.slice(1).join(":").trim();
117
+ if (i === "color")
118
+ return a.replace(/['"]+/g, "");
119
+ }
120
+ }
121
+ }
122
+ return (e = t.style.color) == null ? void 0 : e.replace(/['"]+/g, "");
123
+ },
124
+ renderHTML: (t) => t.color ? {
125
+ style: `color: ${t.color}`
126
+ } : {}
127
+ }
176
128
  }
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
129
  }
130
+ ];
131
+ },
132
+ addCommands() {
133
+ return {
134
+ setColor: (t) => ({ chain: e }) => e().setMark("textStyle", { color: t }).run(),
135
+ unsetColor: () => ({ chain: t }) => t().setMark("textStyle", { color: null }).removeEmptyTextStyle().run()
136
+ };
137
+ }
138
+ }), h = l.create({
139
+ name: "fontFamily",
140
+ addOptions() {
141
+ return {
142
+ types: ["textStyle"]
190
143
  };
191
144
  },
192
- parseHTML() {
145
+ addGlobalAttributes() {
193
146
  return [
194
147
  {
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;
148
+ types: this.options.types,
149
+ attributes: {
150
+ fontFamily: {
151
+ default: null,
152
+ parseHTML: (t) => t.style.fontFamily,
153
+ renderHTML: (t) => t.fontFamily ? {
154
+ style: `font-family: ${t.fontFamily}`
155
+ } : {}
156
+ }
203
157
  }
204
158
  }
205
159
  ];
206
160
  },
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];
161
+ addCommands() {
162
+ return {
163
+ setFontFamily: (t) => ({ chain: e }) => e().setMark("textStyle", { fontFamily: t }).run(),
164
+ unsetFontFamily: () => ({ chain: t }) => t().setMark("textStyle", { fontFamily: null }).removeEmptyTextStyle().run()
165
+ };
166
+ }
167
+ }), S = l.create({
168
+ name: "fontSize",
169
+ addOptions() {
170
+ return {
171
+ types: ["textStyle"]
172
+ };
213
173
  },
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})`;
174
+ addGlobalAttributes() {
175
+ return [
176
+ {
177
+ types: this.options.types,
178
+ attributes: {
179
+ fontSize: {
180
+ default: null,
181
+ parseHTML: (t) => t.style.fontSize,
182
+ renderHTML: (t) => t.fontSize ? {
183
+ style: `font-size: ${t.fontSize}`
184
+ } : {}
185
+ }
186
+ }
187
+ }
188
+ ];
223
189
  },
224
190
  addCommands() {
225
191
  return {
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()
192
+ setFontSize: (t) => ({ chain: e }) => e().setMark("textStyle", { fontSize: t }).run(),
193
+ unsetFontSize: () => ({ chain: t }) => t().setMark("textStyle", { fontSize: null }).removeEmptyTextStyle().run()
194
+ };
195
+ }
196
+ }), b = l.create({
197
+ name: "lineHeight",
198
+ addOptions() {
199
+ return {
200
+ types: ["textStyle"]
243
201
  };
244
202
  },
245
- addPasteRules() {
203
+ addGlobalAttributes() {
246
204
  return [
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
256
- })
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
- });
205
+ {
206
+ types: this.options.types,
207
+ attributes: {
208
+ lineHeight: {
209
+ default: null,
210
+ parseHTML: (t) => t.style.lineHeight,
211
+ renderHTML: (t) => t.lineHeight ? {
212
+ style: `line-height: ${t.lineHeight}`
213
+ } : {}
267
214
  }
268
- return e;
269
- },
270
- type: this.type,
271
- getAttributes: (t) => {
272
- var e;
273
- return {
274
- href: (e = t.data) == null ? void 0 : e.href
275
- };
276
215
  }
277
- })
216
+ }
278
217
  ];
279
218
  },
280
- addProseMirrorPlugins() {
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;
219
+ addCommands() {
220
+ return {
221
+ setLineHeight: (t) => ({ chain: e }) => e().setMark("textStyle", { lineHeight: t }).run(),
222
+ unsetLineHeight: () => ({ chain: t }) => t().setMark("textStyle", { lineHeight: null }).removeEmptyTextStyle().run()
223
+ };
224
+ }
225
+ });
226
+ l.create({
227
+ name: "textStyleKit",
228
+ addExtensions() {
229
+ const t = [];
230
+ return this.options.backgroundColor !== !1 && t.push(m.configure(this.options.backgroundColor)), this.options.color !== !1 && t.push(g.configure(this.options.color)), this.options.fontFamily !== !1 && t.push(h.configure(this.options.fontFamily)), this.options.fontSize !== !1 && t.push(S.configure(this.options.fontSize)), this.options.lineHeight !== !1 && t.push(b.configure(this.options.lineHeight)), this.options.textStyle !== !1 && t.push(c.configure(this.options.textStyle)), t;
308
231
  }
309
232
  });
310
233
  export {
311
- X as Link,
312
- p as isAllowedUri
234
+ m as BackgroundColor,
235
+ g as Color,
236
+ h as FontFamily,
237
+ S as FontSize,
238
+ b as LineHeight,
239
+ c as TextStyle
313
240
  };