@vizel/vue 0.0.1-alpha.1 → 0.0.1-alpha.5

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 (59) hide show
  1. package/dist/index.d.ts +7 -7
  2. package/dist/index.js +69 -61
  3. package/dist/index10.js +80 -127
  4. package/dist/index11.js +55 -24
  5. package/dist/index12.js +28 -8
  6. package/dist/index13.js +60 -75
  7. package/dist/index14.js +98 -124
  8. package/dist/index15.js +9 -31
  9. package/dist/index16.js +184 -14
  10. package/dist/index17.js +14 -77
  11. package/dist/index18.js +28 -113
  12. package/dist/index19.js +128 -14
  13. package/dist/index2.js +73 -82
  14. package/dist/index20.js +24 -46
  15. package/dist/index21.js +10 -41
  16. package/dist/index22.js +12 -10
  17. package/dist/index23.js +89 -14
  18. package/dist/index24.js +130 -33
  19. package/dist/index25.js +34 -45
  20. package/dist/index26.js +19 -22
  21. package/dist/index27.js +77 -8
  22. package/dist/index28.js +118 -44
  23. package/dist/index29.js +18 -20
  24. package/dist/index3.js +49 -56
  25. package/dist/index30.js +50 -13
  26. package/dist/index31.js +41 -2
  27. package/dist/index32.js +36 -2
  28. package/dist/index33.js +46 -2
  29. package/dist/index34.js +22 -2
  30. package/dist/index35.js +8 -2
  31. package/dist/index36.js +44 -2
  32. package/dist/index37.js +21 -2
  33. package/dist/index38.js +13 -2
  34. package/dist/index39.js +15 -2
  35. package/dist/index4.js +236 -30
  36. package/dist/index40.js +2 -2
  37. package/dist/index41.js +1 -1
  38. package/dist/index42.js +1 -1
  39. package/dist/index43.js +1 -1
  40. package/dist/index44.js +1 -1
  41. package/dist/index45.js +1 -1
  42. package/dist/index46.js +1 -1
  43. package/dist/index47.js +1 -1
  44. package/dist/index5.js +78 -70
  45. package/dist/index51.js +1 -1
  46. package/dist/index52.js +4 -0
  47. package/dist/index53.js +4 -0
  48. package/dist/index54.js +4 -0
  49. package/dist/index55.js +4 -0
  50. package/dist/index56.js +4 -0
  51. package/dist/index57.js +4 -0
  52. package/dist/index58.js +4 -0
  53. package/dist/index59.js +4 -0
  54. package/dist/index6.js +72 -103
  55. package/dist/index60.js +4 -0
  56. package/dist/index7.js +62 -11
  57. package/dist/index8.js +57 -186
  58. package/dist/index9.js +2 -35
  59. package/package.json +25 -32
package/dist/index39.js CHANGED
@@ -1,4 +1,17 @@
1
- import f from "./index9.js";
1
+ var t = (e, n) => {
2
+ if (e === "slot")
3
+ return 0;
4
+ if (e instanceof Function)
5
+ return e(n);
6
+ const { children: r, ...s } = n ?? {};
7
+ if (e === "svg")
8
+ throw new Error("SVG elements are not supported in the JSX syntax, use the array syntax instead");
9
+ return [e, s, r];
10
+ };
2
11
  export {
3
- f as default
12
+ t as createElement,
13
+ t as h,
14
+ t as jsx,
15
+ t as jsxDEV,
16
+ t as jsxs
4
17
  };
package/dist/index4.js CHANGED
@@ -1,34 +1,240 @@
1
- import { defineComponent as n, createElementBlock as o, openBlock as c, normalizeClass as d, renderSlot as r } from "vue";
2
- const u = ["disabled", "aria-pressed", "title", "data-active", "data-action"], v = /* @__PURE__ */ n({
3
- __name: "VizelBubbleMenuButton",
4
- props: {
5
- isActive: { type: Boolean },
6
- disabled: { type: Boolean },
7
- title: {},
8
- class: {},
9
- action: {}
10
- },
11
- emits: ["click"],
12
- setup(t, { emit: a }) {
13
- const s = t, l = a;
14
- return (e, i) => (c(), o("button", {
15
- type: "button",
16
- disabled: t.disabled,
17
- "aria-pressed": t.isActive,
18
- class: d([
19
- "vizel-bubble-menu-button",
20
- { "is-active": t.isActive },
21
- e.$props.class
22
- ]),
23
- title: t.title,
24
- "data-active": t.isActive || void 0,
25
- "data-action": s.action,
26
- onClick: i[0] || (i[0] = (b) => l("click"))
27
- }, [
28
- r(e.$slots, "default")
29
- ], 10, u));
1
+ import { Mark as y, mergeAttributes as p, Extension as l } from "@tiptap/core";
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}`);
15
+ });
16
+ }, c = y.create({
17
+ name: "textStyle",
18
+ priority: 101,
19
+ addOptions() {
20
+ return {
21
+ HTMLAttributes: {},
22
+ mergeNestedSpanStyles: !0
23
+ };
24
+ },
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
+ ];
33
+ },
34
+ renderHTML({ HTMLAttributes: t }) {
35
+ return ["span", p(this.options.HTMLAttributes, t), 0];
36
+ },
37
+ addCommands() {
38
+ return {
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;
47
+ }
48
+ };
49
+ }
50
+ }), m = l.create({
51
+ name: "backgroundColor",
52
+ addOptions() {
53
+ return {
54
+ types: ["textStyle"]
55
+ };
56
+ },
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() {
89
+ return {
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
+ }
128
+ }
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"]
143
+ };
144
+ },
145
+ addGlobalAttributes() {
146
+ return [
147
+ {
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
+ }
157
+ }
158
+ }
159
+ ];
160
+ },
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
+ };
173
+ },
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
+ ];
189
+ },
190
+ addCommands() {
191
+ return {
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"]
201
+ };
202
+ },
203
+ addGlobalAttributes() {
204
+ return [
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
+ } : {}
214
+ }
215
+ }
216
+ }
217
+ ];
218
+ },
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;
30
231
  }
31
232
  });
32
233
  export {
33
- v as default
234
+ m as BackgroundColor,
235
+ g as Color,
236
+ h as FontFamily,
237
+ S as FontSize,
238
+ b as LineHeight,
239
+ c as TextStyle
34
240
  };
package/dist/index40.js CHANGED
@@ -1,4 +1,4 @@
1
- import f from "./index10.js";
1
+ const e = /* @__PURE__ */ Symbol("VizelThemeContext");
2
2
  export {
3
- f as default
3
+ e as VIZEL_THEME_CONTEXT_KEY
4
4
  };
package/dist/index41.js CHANGED
@@ -1,4 +1,4 @@
1
- import f from "./index11.js";
1
+ import f from "./index10.js";
2
2
  export {
3
3
  f as default
4
4
  };
package/dist/index42.js CHANGED
@@ -1,4 +1,4 @@
1
- import f from "./index12.js";
1
+ import f from "./index11.js";
2
2
  export {
3
3
  f as default
4
4
  };
package/dist/index43.js CHANGED
@@ -1,4 +1,4 @@
1
- import f from "./index13.js";
1
+ import f from "./index12.js";
2
2
  export {
3
3
  f as default
4
4
  };
package/dist/index44.js CHANGED
@@ -1,4 +1,4 @@
1
- import f from "./index14.js";
1
+ import f from "./index13.js";
2
2
  export {
3
3
  f as default
4
4
  };
package/dist/index45.js CHANGED
@@ -1,4 +1,4 @@
1
- import f from "./index15.js";
1
+ import f from "./index14.js";
2
2
  export {
3
3
  f as default
4
4
  };
package/dist/index46.js CHANGED
@@ -1,4 +1,4 @@
1
- import f from "./index16.js";
1
+ import f from "./index15.js";
2
2
  export {
3
3
  f as default
4
4
  };
package/dist/index47.js CHANGED
@@ -1,4 +1,4 @@
1
- import f from "./index17.js";
1
+ import f from "./index16.js";
2
2
  export {
3
3
  f as default
4
4
  };
package/dist/index5.js CHANGED
@@ -1,76 +1,84 @@
1
- import { defineComponent as w, ref as i, computed as n, watch as b, onMounted as x, onUnmounted as z, createElementBlock as d, openBlock as a, normalizeClass as h, createElementVNode as R, createCommentVNode as V, normalizeStyle as E, createBlock as v, createVNode as H } from "vue";
2
- import { VIZEL_TEXT_COLORS as L, VIZEL_HIGHLIGHT_COLORS as T, getVizelRecentColors as B, addVizelRecentColor as f } from "@vizel/core";
3
- import O from "./index8.js";
4
- import m from "./index11.js";
5
- const S = ["data-type"], I = ["title", "data-action"], $ = {
6
- key: 0,
7
- class: "vizel-color-picker-dropdown"
8
- }, Z = /* @__PURE__ */ w({
9
- __name: "VizelBubbleMenuColorPicker",
10
- props: {
11
- editor: {},
12
- type: {},
13
- colors: {},
14
- class: {},
15
- allowCustomColor: { type: Boolean, default: !0 },
16
- showRecentColors: { type: Boolean, default: !0 }
1
+ import { Mark as a, markPasteRule as s, markInputRule as l, mergeAttributes as u } from "@tiptap/core";
2
+ var d = /(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/, h = /(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g;
3
+ a.create({
4
+ name: "highlight",
5
+ addOptions() {
6
+ return {
7
+ multicolor: !1,
8
+ HTMLAttributes: {}
9
+ };
17
10
  },
18
- setup(C) {
19
- const e = C, o = i(!1), c = i([]), s = i(null), g = n(() => e.colors ?? (e.type === "textColor" ? L : T)), r = n(() => e.type === "textColor" ? e.editor.getAttributes("textStyle").color : e.editor.getAttributes("highlight").color), l = n(() => e.type === "textColor"), y = n(() => l.value ? ["inherit"] : ["transparent"]);
20
- b(o, (t) => {
21
- t && e.showRecentColors && (c.value = B(e.type));
22
- });
23
- function _(t) {
24
- e.type === "textColor" ? t === "inherit" ? e.editor.chain().focus().unsetColor().run() : (e.editor.chain().focus().setColor(t).run(), f(e.type, t)) : t === "transparent" ? e.editor.chain().focus().unsetHighlight().run() : (e.editor.chain().focus().toggleHighlight({ color: t }).run(), f(e.type, t)), o.value = !1;
25
- }
26
- function u(t) {
27
- s.value && !s.value.contains(t.target) && (o.value = !1);
28
- }
29
- x(() => {
30
- document.addEventListener("mousedown", u);
31
- }), z(() => {
32
- document.removeEventListener("mousedown", u);
33
- });
34
- function k() {
35
- return l.value ? { color: r.value || "inherit" } : { "--highlight-color": r.value || "transparent" };
11
+ addAttributes() {
12
+ return this.options.multicolor ? {
13
+ color: {
14
+ default: null,
15
+ parseHTML: (r) => r.getAttribute("data-color") || r.style.backgroundColor,
16
+ renderHTML: (r) => r.color ? {
17
+ "data-color": r.color,
18
+ style: `background-color: ${r.color}; color: inherit`
19
+ } : {}
20
+ }
21
+ } : {};
22
+ },
23
+ parseHTML() {
24
+ return [
25
+ {
26
+ tag: "mark"
27
+ }
28
+ ];
29
+ },
30
+ renderHTML({ HTMLAttributes: r }) {
31
+ return ["mark", u(this.options.HTMLAttributes, r), 0];
32
+ },
33
+ renderMarkdown: (r, t) => `==${t.renderChildren(r)}==`,
34
+ parseMarkdown: (r, t) => t.applyMark("highlight", t.parseInline(r.tokens || [])),
35
+ markdownTokenizer: {
36
+ name: "highlight",
37
+ level: "inline",
38
+ start: (r) => r.indexOf("=="),
39
+ tokenize(r, t, i) {
40
+ const e = /^(==)([^=]+)(==)/.exec(r);
41
+ if (e) {
42
+ const n = e[2].trim(), o = i.inlineTokens(n);
43
+ return {
44
+ type: "highlight",
45
+ raw: e[0],
46
+ text: n,
47
+ tokens: o
48
+ };
49
+ }
36
50
  }
37
- return (t, p) => (a(), d("div", {
38
- ref_key: "containerRef",
39
- ref: s,
40
- class: h(["vizel-color-picker", t.$props.class]),
41
- "data-type": e.type
42
- }, [
43
- R("button", {
44
- type: "button",
45
- class: h(["vizel-bubble-menu-button", "vizel-color-picker-trigger", { "has-color": r.value }]),
46
- title: l.value ? "Text Color" : "Highlight",
47
- "data-action": e.type,
48
- style: E(k()),
49
- onClick: p[0] || (p[0] = (N) => o.value = !o.value)
50
- }, [
51
- l.value ? (a(), v(m, {
52
- key: 0,
53
- name: "textColor"
54
- })) : (a(), v(m, {
55
- key: 1,
56
- name: "highlighter"
57
- }))
58
- ], 14, I),
59
- o.value ? (a(), d("div", $, [
60
- H(O, {
61
- colors: g.value,
62
- value: r.value,
63
- label: l.value ? "Text color palette" : "Highlight color palette",
64
- "allow-custom-color": e.allowCustomColor,
65
- "recent-colors": c.value,
66
- "show-recent-colors": e.showRecentColors,
67
- "none-values": y.value,
68
- onChange: _
69
- }, null, 8, ["colors", "value", "label", "allow-custom-color", "recent-colors", "show-recent-colors", "none-values"])
70
- ])) : V("", !0)
71
- ], 10, S));
51
+ },
52
+ addCommands() {
53
+ return {
54
+ setHighlight: (r) => ({ commands: t }) => t.setMark(this.name, r),
55
+ toggleHighlight: (r) => ({ commands: t }) => t.toggleMark(this.name, r),
56
+ unsetHighlight: () => ({ commands: r }) => r.unsetMark(this.name)
57
+ };
58
+ },
59
+ addKeyboardShortcuts() {
60
+ return {
61
+ "Mod-Shift-h": () => this.editor.commands.toggleHighlight()
62
+ };
63
+ },
64
+ addInputRules() {
65
+ return [
66
+ l({
67
+ find: d,
68
+ type: this.type
69
+ })
70
+ ];
71
+ },
72
+ addPasteRules() {
73
+ return [
74
+ s({
75
+ find: h,
76
+ type: this.type
77
+ })
78
+ ];
72
79
  }
73
80
  });
74
81
  export {
75
- Z as default
82
+ d as inputRegex,
83
+ h as pasteRegex
76
84
  };
package/dist/index51.js CHANGED
@@ -1,4 +1,4 @@
1
- import f from "./index21.js";
1
+ import f from "./index22.js";
2
2
  export {
3
3
  f as default
4
4
  };
@@ -0,0 +1,4 @@
1
+ import f from "./index23.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./index24.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./index25.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./index26.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./index27.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./index28.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./index29.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./index30.js";
2
+ export {
3
+ f as default
4
+ };