@lunejs/admin-ui 0.2.0 → 0.2.1

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 (39) hide show
  1. package/dist/lib/api/codegen/graphql.d.ts +1 -0
  2. package/dist/lib/api/codegen/graphql.js +8 -8
  3. package/dist/lib/custom-fields/components/details/is-list/custom-field-is-list.js +6 -4
  4. package/dist/lib/custom-fields/components/details/use-form/form-schema.d.ts +1 -0
  5. package/dist/lib/custom-fields/components/details/use-form/form-schema.js +4 -3
  6. package/dist/lib/custom-fields/components/fields/custom-field.js +44 -36
  7. package/dist/lib/custom-fields/components/fields/rich-text.d.ts +8 -0
  8. package/dist/lib/custom-fields/components/fields/rich-text.js +17 -0
  9. package/dist/lib/custom-fields/components/fields/shared/primitive.d.ts +2 -1
  10. package/dist/lib/custom-fields/components/fields/shared/primitive.js +67 -61
  11. package/dist/lib/custom-fields/utils/custom-field.utils.js +63 -51
  12. package/dist/lib/translate/components/form/translate-form-row-data.d.ts +2 -1
  13. package/dist/lib/translate/components/form/translate-form-row-data.js +51 -19
  14. package/dist/lib/translate/components/form/translate-rich-text.d.ts +8 -0
  15. package/dist/lib/translate/components/form/translate-rich-text.js +65 -0
  16. package/dist/lib/translate/components/product-form/custom-fields/translate-product-custom-fields.js +95 -63
  17. package/dist/lib/translate/components/product-form/translate-product-form.js +19 -18
  18. package/dist/node_modules/@tiptap/core/dist/index.js +876 -872
  19. package/dist/node_modules/@tiptap/extensions/dist/index.js +288 -0
  20. package/dist/node_modules/@tiptap/react/dist/index.js +35 -34
  21. package/dist/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  22. package/dist/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  23. package/dist/node_modules/lucide-react/dist/esm/icons/layout-list.js +13 -0
  24. package/dist/node_modules/prosemirror-dropcursor/dist/index.js +86 -0
  25. package/dist/node_modules/prosemirror-gapcursor/dist/index.js +204 -0
  26. package/dist/node_modules/prosemirror-history/dist/index.js +248 -0
  27. package/dist/node_modules/rope-sequence/dist/index.js +100 -0
  28. package/dist/shared/components/rich-editor/rich-editor.d.ts +3 -1
  29. package/dist/shared/components/rich-editor/rich-editor.js +40 -36
  30. package/dist/shared/components/rich-editor/toolbar/bold/rich-editor-toolbar-bold.js +10 -9
  31. package/dist/shared/components/rich-editor/toolbar/color/rich-editor-toolbar-color.js +1 -0
  32. package/dist/shared/components/rich-editor/toolbar/heading/rich-editor-toolbar-heading.js +1 -0
  33. package/dist/shared/components/rich-editor/toolbar/italic/rich-editor-toolbar-italic.js +5 -4
  34. package/dist/shared/components/rich-editor/toolbar/link/rich-editor-toolbar-link.js +8 -7
  35. package/dist/shared/components/rich-editor/toolbar/ol-list/rich-editor-toolbar-ul-list.js +1 -0
  36. package/dist/shared/components/rich-editor/toolbar/table/rich-editor-toolbar-table.js +9 -8
  37. package/dist/shared/components/rich-editor/toolbar/ul-list/rich-editor-toolbar-ul-list.js +7 -6
  38. package/dist/shared/components/rich-editor/toolbar/underline/rich-editor-toolbar-underline.js +3 -2
  39. package/package.json +1 -1
@@ -0,0 +1,204 @@
1
+ import { keydownHandler as v } from "../../prosemirror-keymap/dist/index.js";
2
+ import { Plugin as w, TextSelection as m, NodeSelection as x, Selection as u } from "../../prosemirror-state/dist/index.js";
3
+ import { Fragment as h, Slice as g } from "../../prosemirror-model/dist/index.js";
4
+ import { DecorationSet as S, Decoration as A } from "../../prosemirror-view/dist/index.js";
5
+ class i extends u {
6
+ /**
7
+ Create a gap cursor.
8
+ */
9
+ constructor(e) {
10
+ super(e, e);
11
+ }
12
+ map(e, t) {
13
+ let o = e.resolve(t.map(this.head));
14
+ return i.valid(o) ? new i(o) : u.near(o);
15
+ }
16
+ content() {
17
+ return g.empty;
18
+ }
19
+ eq(e) {
20
+ return e instanceof i && e.head == this.head;
21
+ }
22
+ toJSON() {
23
+ return { type: "gapcursor", pos: this.head };
24
+ }
25
+ /**
26
+ @internal
27
+ */
28
+ static fromJSON(e, t) {
29
+ if (typeof t.pos != "number")
30
+ throw new RangeError("Invalid input for GapCursor.fromJSON");
31
+ return new i(e.resolve(t.pos));
32
+ }
33
+ /**
34
+ @internal
35
+ */
36
+ getBookmark() {
37
+ return new d(this.anchor);
38
+ }
39
+ /**
40
+ @internal
41
+ */
42
+ static valid(e) {
43
+ let t = e.parent;
44
+ if (t.isTextblock || !b(e) || !y(e))
45
+ return !1;
46
+ let o = t.type.spec.allowGapCursor;
47
+ if (o != null)
48
+ return o;
49
+ let r = t.contentMatchAt(e.index()).defaultType;
50
+ return r && r.isTextblock;
51
+ }
52
+ /**
53
+ @internal
54
+ */
55
+ static findGapCursorFrom(e, t, o = !1) {
56
+ e: for (; ; ) {
57
+ if (!o && i.valid(e))
58
+ return e;
59
+ let r = e.pos, s = null;
60
+ for (let l = e.depth; ; l--) {
61
+ let a = e.node(l);
62
+ if (t > 0 ? e.indexAfter(l) < a.childCount : e.index(l) > 0) {
63
+ s = a.child(t > 0 ? e.indexAfter(l) : e.index(l) - 1);
64
+ break;
65
+ } else if (l == 0)
66
+ return null;
67
+ r += t;
68
+ let f = e.doc.resolve(r);
69
+ if (i.valid(f))
70
+ return f;
71
+ }
72
+ for (; ; ) {
73
+ let l = t > 0 ? s.firstChild : s.lastChild;
74
+ if (!l) {
75
+ if (s.isAtom && !s.isText && !x.isSelectable(s)) {
76
+ e = e.doc.resolve(r + s.nodeSize * t), o = !1;
77
+ continue e;
78
+ }
79
+ break;
80
+ }
81
+ s = l, r += t;
82
+ let a = e.doc.resolve(r);
83
+ if (i.valid(a))
84
+ return a;
85
+ }
86
+ return null;
87
+ }
88
+ }
89
+ }
90
+ i.prototype.visible = !1;
91
+ i.findFrom = i.findGapCursorFrom;
92
+ u.jsonID("gapcursor", i);
93
+ class d {
94
+ constructor(e) {
95
+ this.pos = e;
96
+ }
97
+ map(e) {
98
+ return new d(e.map(this.pos));
99
+ }
100
+ resolve(e) {
101
+ let t = e.resolve(this.pos);
102
+ return i.valid(t) ? new i(t) : u.near(t);
103
+ }
104
+ }
105
+ function C(n) {
106
+ return n.isAtom || n.spec.isolating || n.spec.createGapCursor;
107
+ }
108
+ function b(n) {
109
+ for (let e = n.depth; e >= 0; e--) {
110
+ let t = n.index(e), o = n.node(e);
111
+ if (t == 0) {
112
+ if (o.type.spec.isolating)
113
+ return !0;
114
+ continue;
115
+ }
116
+ for (let r = o.child(t - 1); ; r = r.lastChild) {
117
+ if (r.childCount == 0 && !r.inlineContent || C(r.type))
118
+ return !0;
119
+ if (r.inlineContent)
120
+ return !1;
121
+ }
122
+ }
123
+ return !0;
124
+ }
125
+ function y(n) {
126
+ for (let e = n.depth; e >= 0; e--) {
127
+ let t = n.indexAfter(e), o = n.node(e);
128
+ if (t == o.childCount) {
129
+ if (o.type.spec.isolating)
130
+ return !0;
131
+ continue;
132
+ }
133
+ for (let r = o.child(t); ; r = r.firstChild) {
134
+ if (r.childCount == 0 && !r.inlineContent || C(r.type))
135
+ return !0;
136
+ if (r.inlineContent)
137
+ return !1;
138
+ }
139
+ }
140
+ return !0;
141
+ }
142
+ function B() {
143
+ return new w({
144
+ props: {
145
+ decorations: F,
146
+ createSelectionBetween(n, e, t) {
147
+ return e.pos == t.pos && i.valid(t) ? new i(t) : null;
148
+ },
149
+ handleClick: T,
150
+ handleKeyDown: k,
151
+ handleDOMEvents: { beforeinput: D }
152
+ }
153
+ });
154
+ }
155
+ const k = v({
156
+ ArrowLeft: c("horiz", -1),
157
+ ArrowRight: c("horiz", 1),
158
+ ArrowUp: c("vert", -1),
159
+ ArrowDown: c("vert", 1)
160
+ });
161
+ function c(n, e) {
162
+ const t = n == "vert" ? e > 0 ? "down" : "up" : e > 0 ? "right" : "left";
163
+ return function(o, r, s) {
164
+ let l = o.selection, a = e > 0 ? l.$to : l.$from, f = l.empty;
165
+ if (l instanceof m) {
166
+ if (!s.endOfTextblock(t) || a.depth == 0)
167
+ return !1;
168
+ f = !1, a = o.doc.resolve(e > 0 ? a.after() : a.before());
169
+ }
170
+ let p = i.findGapCursorFrom(a, e, f);
171
+ return p ? (r && r(o.tr.setSelection(new i(p))), !0) : !1;
172
+ };
173
+ }
174
+ function T(n, e, t) {
175
+ if (!n || !n.editable)
176
+ return !1;
177
+ let o = n.state.doc.resolve(e);
178
+ if (!i.valid(o))
179
+ return !1;
180
+ let r = n.posAtCoords({ left: t.clientX, top: t.clientY });
181
+ return r && r.inside > -1 && x.isSelectable(n.state.doc.nodeAt(r.inside)) ? !1 : (n.dispatch(n.state.tr.setSelection(new i(o))), !0);
182
+ }
183
+ function D(n, e) {
184
+ if (e.inputType != "insertCompositionText" || !(n.state.selection instanceof i))
185
+ return !1;
186
+ let { $from: t } = n.state.selection, o = t.parent.contentMatchAt(t.index()).findWrapping(n.state.schema.nodes.text);
187
+ if (!o)
188
+ return !1;
189
+ let r = h.empty;
190
+ for (let l = o.length - 1; l >= 0; l--)
191
+ r = h.from(o[l].createAndFill(null, r));
192
+ let s = n.state.tr.replace(t.pos, t.pos, new g(r, 0, 0));
193
+ return s.setSelection(m.near(s.doc.resolve(t.pos + 1))), n.dispatch(s), !1;
194
+ }
195
+ function F(n) {
196
+ if (!(n.selection instanceof i))
197
+ return null;
198
+ let e = document.createElement("div");
199
+ return e.className = "ProseMirror-gapcursor", S.create(n.doc, [A.widget(n.selection.head, e, { key: "gapcursor" })]);
200
+ }
201
+ export {
202
+ i as GapCursor,
203
+ B as gapCursor
204
+ };
@@ -0,0 +1,248 @@
1
+ import P from "../../rope-sequence/dist/index.js";
2
+ import { Mapping as k } from "../../prosemirror-transform/dist/index.js";
3
+ import { Plugin as H, PluginKey as O } from "../../prosemirror-state/dist/index.js";
4
+ const D = 500;
5
+ class c {
6
+ constructor(t, e) {
7
+ this.items = t, this.eventCount = e;
8
+ }
9
+ // Pop the latest event off the branch's history and apply it
10
+ // to a document transform.
11
+ popEvent(t, e) {
12
+ if (this.eventCount == 0)
13
+ return null;
14
+ let i = this.items.length;
15
+ for (; ; i--)
16
+ if (this.items.get(i - 1).selection) {
17
+ --i;
18
+ break;
19
+ }
20
+ let s, p;
21
+ e && (s = this.remapping(i, this.items.length), p = s.maps.length);
22
+ let l = t.tr, r, m, u = [], f = [];
23
+ return this.items.forEach((a, o) => {
24
+ if (!a.step) {
25
+ s || (s = this.remapping(i, o + 1), p = s.maps.length), p--, f.push(a);
26
+ return;
27
+ }
28
+ if (s) {
29
+ f.push(new g(a.map));
30
+ let d = a.step.map(s.slice(p)), v;
31
+ d && l.maybeStep(d).doc && (v = l.mapping.maps[l.mapping.maps.length - 1], u.push(new g(v, void 0, void 0, u.length + f.length))), p--, v && s.appendMap(v, p);
32
+ } else
33
+ l.maybeStep(a.step);
34
+ if (a.selection)
35
+ return r = s ? a.selection.map(s.slice(p)) : a.selection, m = new c(this.items.slice(0, i).append(f.reverse().concat(u)), this.eventCount - 1), !1;
36
+ }, this.items.length, 0), { remaining: m, transform: l, selection: r };
37
+ }
38
+ // Create a new branch with the given transform added.
39
+ addTransform(t, e, i, s) {
40
+ let p = [], l = this.eventCount, r = this.items, m = !s && r.length ? r.get(r.length - 1) : null;
41
+ for (let f = 0; f < t.steps.length; f++) {
42
+ let a = t.steps[f].invert(t.docs[f]), o = new g(t.mapping.maps[f], a, e), d;
43
+ (d = m && m.merge(o)) && (o = d, f ? p.pop() : r = r.slice(0, r.length - 1)), p.push(o), e && (l++, e = void 0), s || (m = o);
44
+ }
45
+ let u = l - i.depth;
46
+ return u > y && (r = x(r, u), l -= u), new c(r.append(p), l);
47
+ }
48
+ remapping(t, e) {
49
+ let i = new k();
50
+ return this.items.forEach((s, p) => {
51
+ let l = s.mirrorOffset != null && p - s.mirrorOffset >= t ? i.maps.length - s.mirrorOffset : void 0;
52
+ i.appendMap(s.map, l);
53
+ }, t, e), i;
54
+ }
55
+ addMaps(t) {
56
+ return this.eventCount == 0 ? this : new c(this.items.append(t.map((e) => new g(e))), this.eventCount);
57
+ }
58
+ // When the collab module receives remote changes, the history has
59
+ // to know about those, so that it can adjust the steps that were
60
+ // rebased on top of the remote changes, and include the position
61
+ // maps for the remote changes in its array of items.
62
+ rebased(t, e) {
63
+ if (!this.eventCount)
64
+ return this;
65
+ let i = [], s = Math.max(0, this.items.length - e), p = t.mapping, l = t.steps.length, r = this.eventCount;
66
+ this.items.forEach((o) => {
67
+ o.selection && r--;
68
+ }, s);
69
+ let m = e;
70
+ this.items.forEach((o) => {
71
+ let d = p.getMirror(--m);
72
+ if (d == null)
73
+ return;
74
+ l = Math.min(l, d);
75
+ let v = p.maps[d];
76
+ if (o.step) {
77
+ let S = t.steps[d].invert(t.docs[d]), E = o.selection && o.selection.map(p.slice(m + 1, d));
78
+ E && r++, i.push(new g(v, S, E));
79
+ } else
80
+ i.push(new g(v));
81
+ }, s);
82
+ let u = [];
83
+ for (let o = e; o < l; o++)
84
+ u.push(new g(p.maps[o]));
85
+ let f = this.items.slice(0, s).append(u).append(i), a = new c(f, r);
86
+ return a.emptyItemCount() > D && (a = a.compress(this.items.length - i.length)), a;
87
+ }
88
+ emptyItemCount() {
89
+ let t = 0;
90
+ return this.items.forEach((e) => {
91
+ e.step || t++;
92
+ }), t;
93
+ }
94
+ // Compressing a branch means rewriting it to push the air (map-only
95
+ // items) out. During collaboration, these naturally accumulate
96
+ // because each remote change adds one. The `upto` argument is used
97
+ // to ensure that only the items below a given level are compressed,
98
+ // because `rebased` relies on a clean, untouched set of items in
99
+ // order to associate old items with rebased steps.
100
+ compress(t = this.items.length) {
101
+ let e = this.remapping(0, t), i = e.maps.length, s = [], p = 0;
102
+ return this.items.forEach((l, r) => {
103
+ if (r >= t)
104
+ s.push(l), l.selection && p++;
105
+ else if (l.step) {
106
+ let m = l.step.map(e.slice(i)), u = m && m.getMap();
107
+ if (i--, u && e.appendMap(u, i), m) {
108
+ let f = l.selection && l.selection.map(e.slice(i));
109
+ f && p++;
110
+ let a = new g(u.invert(), m, f), o, d = s.length - 1;
111
+ (o = s.length && s[d].merge(a)) ? s[d] = o : s.push(a);
112
+ }
113
+ } else l.map && i--;
114
+ }, this.items.length, 0), new c(P.from(s.reverse()), p);
115
+ }
116
+ }
117
+ c.empty = new c(P.empty, 0);
118
+ function x(n, t) {
119
+ let e;
120
+ return n.forEach((i, s) => {
121
+ if (i.selection && t-- == 0)
122
+ return e = s, !1;
123
+ }), n.slice(e);
124
+ }
125
+ class g {
126
+ constructor(t, e, i, s) {
127
+ this.map = t, this.step = e, this.selection = i, this.mirrorOffset = s;
128
+ }
129
+ merge(t) {
130
+ if (this.step && t.step && !t.selection) {
131
+ let e = t.step.merge(this.step);
132
+ if (e)
133
+ return new g(e.getMap().invert(), e, this.selection);
134
+ }
135
+ }
136
+ }
137
+ class h {
138
+ constructor(t, e, i, s, p) {
139
+ this.done = t, this.undone = e, this.prevRanges = i, this.prevTime = s, this.prevComposition = p;
140
+ }
141
+ }
142
+ const y = 20;
143
+ function F(n, t, e, i) {
144
+ let s = e.getMeta(w), p;
145
+ if (s)
146
+ return s.historyState;
147
+ e.getMeta(j) && (n = new h(n.done, n.undone, null, 0, -1));
148
+ let l = e.getMeta("appendedTransaction");
149
+ if (e.steps.length == 0)
150
+ return n;
151
+ if (l && l.getMeta(w))
152
+ return l.getMeta(w).redo ? new h(n.done.addTransform(e, void 0, i, M(t)), n.undone, I(e.mapping.maps), n.prevTime, n.prevComposition) : new h(n.done, n.undone.addTransform(e, void 0, i, M(t)), null, n.prevTime, n.prevComposition);
153
+ if (e.getMeta("addToHistory") !== !1 && !(l && l.getMeta("addToHistory") === !1)) {
154
+ let r = e.getMeta("composition"), m = n.prevTime == 0 || !l && n.prevComposition != r && (n.prevTime < (e.time || 0) - i.newGroupDelay || !G(e, n.prevRanges)), u = l ? C(n.prevRanges, e.mapping) : I(e.mapping.maps);
155
+ return new h(n.done.addTransform(e, m ? t.selection.getBookmark() : void 0, i, M(t)), c.empty, u, e.time, r ?? n.prevComposition);
156
+ } else return (p = e.getMeta("rebased")) ? new h(n.done.rebased(e, p), n.undone.rebased(e, p), C(n.prevRanges, e.mapping), n.prevTime, n.prevComposition) : new h(n.done.addMaps(e.mapping.maps), n.undone.addMaps(e.mapping.maps), C(n.prevRanges, e.mapping), n.prevTime, n.prevComposition);
157
+ }
158
+ function G(n, t) {
159
+ if (!t)
160
+ return !1;
161
+ if (!n.docChanged)
162
+ return !0;
163
+ let e = !1;
164
+ return n.mapping.maps[0].forEach((i, s) => {
165
+ for (let p = 0; p < t.length; p += 2)
166
+ i <= t[p + 1] && s >= t[p] && (e = !0);
167
+ }), e;
168
+ }
169
+ function I(n) {
170
+ let t = [];
171
+ for (let e = n.length - 1; e >= 0 && t.length == 0; e--)
172
+ n[e].forEach((i, s, p, l) => t.push(p, l));
173
+ return t;
174
+ }
175
+ function C(n, t) {
176
+ if (!n)
177
+ return null;
178
+ let e = [];
179
+ for (let i = 0; i < n.length; i += 2) {
180
+ let s = t.map(n[i], 1), p = t.map(n[i + 1], -1);
181
+ s <= p && e.push(s, p);
182
+ }
183
+ return e;
184
+ }
185
+ function K(n, t, e) {
186
+ let i = M(t), s = w.get(t).spec.config, p = (e ? n.undone : n.done).popEvent(t, i);
187
+ if (!p)
188
+ return null;
189
+ let l = p.selection.resolve(p.transform.doc), r = (e ? n.done : n.undone).addTransform(p.transform, t.selection.getBookmark(), s, i), m = new h(e ? r : p.remaining, e ? p.remaining : r, null, 0, -1);
190
+ return p.transform.setSelection(l).setMeta(w, { redo: e, historyState: m });
191
+ }
192
+ let T = !1, b = null;
193
+ function M(n) {
194
+ let t = n.plugins;
195
+ if (b != t) {
196
+ T = !1, b = t;
197
+ for (let e = 0; e < t.length; e++)
198
+ if (t[e].spec.historyPreserveItems) {
199
+ T = !0;
200
+ break;
201
+ }
202
+ }
203
+ return T;
204
+ }
205
+ const w = new O("history"), j = new O("closeHistory");
206
+ function W(n = {}) {
207
+ return n = {
208
+ depth: n.depth || 100,
209
+ newGroupDelay: n.newGroupDelay || 500
210
+ }, new H({
211
+ key: w,
212
+ state: {
213
+ init() {
214
+ return new h(c.empty, c.empty, null, 0, -1);
215
+ },
216
+ apply(t, e, i) {
217
+ return F(e, i, t, n);
218
+ }
219
+ },
220
+ config: n,
221
+ props: {
222
+ handleDOMEvents: {
223
+ beforeinput(t, e) {
224
+ let i = e.inputType, s = i == "historyUndo" ? A : i == "historyRedo" ? U : null;
225
+ return !s || !t.editable ? !1 : (e.preventDefault(), s(t.state, t.dispatch));
226
+ }
227
+ }
228
+ }
229
+ });
230
+ }
231
+ function R(n, t) {
232
+ return (e, i) => {
233
+ let s = w.getState(e);
234
+ if (!s || (n ? s.undone : s.done).eventCount == 0)
235
+ return !1;
236
+ if (i) {
237
+ let p = K(s, e, n);
238
+ p && i(t ? p.scrollIntoView() : p);
239
+ }
240
+ return !0;
241
+ };
242
+ }
243
+ const A = R(!1, !0), U = R(!0, !0);
244
+ export {
245
+ W as history,
246
+ U as redo,
247
+ A as undo
248
+ };
@@ -0,0 +1,100 @@
1
+ var l = 200, p = function() {
2
+ };
3
+ p.prototype.append = function(t) {
4
+ return t.length ? (t = p.from(t), !this.length && t || t.length < l && this.leafAppend(t) || this.length < l && t.leafPrepend(this) || this.appendInner(t)) : this;
5
+ };
6
+ p.prototype.prepend = function(t) {
7
+ return t.length ? p.from(t).append(this) : this;
8
+ };
9
+ p.prototype.appendInner = function(t) {
10
+ return new u(this, t);
11
+ };
12
+ p.prototype.slice = function(t, r) {
13
+ return t === void 0 && (t = 0), r === void 0 && (r = this.length), t >= r ? p.empty : this.sliceInner(Math.max(0, t), Math.min(this.length, r));
14
+ };
15
+ p.prototype.get = function(t) {
16
+ if (!(t < 0 || t >= this.length))
17
+ return this.getInner(t);
18
+ };
19
+ p.prototype.forEach = function(t, r, e) {
20
+ r === void 0 && (r = 0), e === void 0 && (e = this.length), r <= e ? this.forEachInner(t, r, e, 0) : this.forEachInvertedInner(t, r, e, 0);
21
+ };
22
+ p.prototype.map = function(t, r, e) {
23
+ r === void 0 && (r = 0), e === void 0 && (e = this.length);
24
+ var n = [];
25
+ return this.forEach(function(i, s) {
26
+ return n.push(t(i, s));
27
+ }, r, e), n;
28
+ };
29
+ p.from = function(t) {
30
+ return t instanceof p ? t : t && t.length ? new o(t) : p.empty;
31
+ };
32
+ var o = /* @__PURE__ */ (function(h) {
33
+ function t(e) {
34
+ h.call(this), this.values = e;
35
+ }
36
+ h && (t.__proto__ = h), t.prototype = Object.create(h && h.prototype), t.prototype.constructor = t;
37
+ var r = { length: { configurable: !0 }, depth: { configurable: !0 } };
38
+ return t.prototype.flatten = function() {
39
+ return this.values;
40
+ }, t.prototype.sliceInner = function(n, i) {
41
+ return n == 0 && i == this.length ? this : new t(this.values.slice(n, i));
42
+ }, t.prototype.getInner = function(n) {
43
+ return this.values[n];
44
+ }, t.prototype.forEachInner = function(n, i, s, f) {
45
+ for (var a = i; a < s; a++)
46
+ if (n(this.values[a], f + a) === !1)
47
+ return !1;
48
+ }, t.prototype.forEachInvertedInner = function(n, i, s, f) {
49
+ for (var a = i - 1; a >= s; a--)
50
+ if (n(this.values[a], f + a) === !1)
51
+ return !1;
52
+ }, t.prototype.leafAppend = function(n) {
53
+ if (this.length + n.length <= l)
54
+ return new t(this.values.concat(n.flatten()));
55
+ }, t.prototype.leafPrepend = function(n) {
56
+ if (this.length + n.length <= l)
57
+ return new t(n.flatten().concat(this.values));
58
+ }, r.length.get = function() {
59
+ return this.values.length;
60
+ }, r.depth.get = function() {
61
+ return 0;
62
+ }, Object.defineProperties(t.prototype, r), t;
63
+ })(p);
64
+ p.empty = new o([]);
65
+ var u = /* @__PURE__ */ (function(h) {
66
+ function t(r, e) {
67
+ h.call(this), this.left = r, this.right = e, this.length = r.length + e.length, this.depth = Math.max(r.depth, e.depth) + 1;
68
+ }
69
+ return h && (t.__proto__ = h), t.prototype = Object.create(h && h.prototype), t.prototype.constructor = t, t.prototype.flatten = function() {
70
+ return this.left.flatten().concat(this.right.flatten());
71
+ }, t.prototype.getInner = function(e) {
72
+ return e < this.left.length ? this.left.get(e) : this.right.get(e - this.left.length);
73
+ }, t.prototype.forEachInner = function(e, n, i, s) {
74
+ var f = this.left.length;
75
+ if (n < f && this.left.forEachInner(e, n, Math.min(i, f), s) === !1 || i > f && this.right.forEachInner(e, Math.max(n - f, 0), Math.min(this.length, i) - f, s + f) === !1)
76
+ return !1;
77
+ }, t.prototype.forEachInvertedInner = function(e, n, i, s) {
78
+ var f = this.left.length;
79
+ if (n > f && this.right.forEachInvertedInner(e, n - f, Math.max(i, f) - f, s + f) === !1 || i < f && this.left.forEachInvertedInner(e, Math.min(n, f), i, s) === !1)
80
+ return !1;
81
+ }, t.prototype.sliceInner = function(e, n) {
82
+ if (e == 0 && n == this.length)
83
+ return this;
84
+ var i = this.left.length;
85
+ return n <= i ? this.left.slice(e, n) : e >= i ? this.right.slice(e - i, n - i) : this.left.slice(e, i).append(this.right.slice(0, n - i));
86
+ }, t.prototype.leafAppend = function(e) {
87
+ var n = this.right.leafAppend(e);
88
+ if (n)
89
+ return new t(this.left, n);
90
+ }, t.prototype.leafPrepend = function(e) {
91
+ var n = this.left.leafPrepend(e);
92
+ if (n)
93
+ return new t(n, this.right);
94
+ }, t.prototype.appendInner = function(e) {
95
+ return this.left.depth >= Math.max(this.right.depth, e.depth) + 1 ? new t(this.left, new t(this.right, e)) : new t(this, e);
96
+ }, t;
97
+ })(p);
98
+ export {
99
+ p as default
100
+ };
@@ -1,6 +1,8 @@
1
- export declare const RichEditor: ({ defaultValue, onChange }: Props) => import("react/jsx-runtime").JSX.Element | null;
1
+ export declare const RichEditor: ({ defaultValue, onChange, disabled, className }: Props) => import("react/jsx-runtime").JSX.Element | null;
2
2
  type Props = {
3
3
  defaultValue?: string;
4
4
  onChange?: (html: string) => void;
5
+ disabled?: boolean;
6
+ className?: string;
5
7
  };
6
8
  export {};
@@ -1,5 +1,5 @@
1
- import { jsx as r, jsxs as d } from "react/jsx-runtime";
2
- import { useMemo as n } from "react";
1
+ import { jsx as r, jsxs as l } from "react/jsx-runtime";
2
+ import { useMemo as s } from "react";
3
3
  import "../../../packages/lune-ui/dist/node_modules/@radix-ui/react-accordion/dist/index.js";
4
4
  import { cn as t } from "../../../packages/lune-ui/dist/lib/utils.js";
5
5
  import "../../../packages/lune-ui/dist/node_modules/@radix-ui/react-alert-dialog/dist/index.js";
@@ -31,63 +31,67 @@ import "../../../packages/lune-ui/dist/node_modules/@radix-ui/react-toggle/dist/
31
31
  import "../../../packages/lune-ui/dist/components/toggle-group.js";
32
32
  import "../../../packages/lune-ui/dist/node_modules/@radix-ui/react-tooltip/dist/index.js";
33
33
  import "../../../packages/lune-ui/dist/form/form.js";
34
- import l from "../../../node_modules/@tiptap/extension-bold/dist/index.js";
35
- import s from "../../../node_modules/@tiptap/extension-document/dist/index.js";
36
- import f from "../../../node_modules/@tiptap/extension-heading/dist/index.js";
37
- import a from "../../../node_modules/@tiptap/extension-italic/dist/index.js";
38
- import u from "../../../node_modules/@tiptap/extension-link/dist/index.js";
39
- import { BulletList as c, OrderedList as x, ListItem as h } from "../../../node_modules/@tiptap/extension-list/dist/index.js";
40
- import _ from "../../../node_modules/@tiptap/extension-paragraph/dist/index.js";
41
- import { TableKit as b } from "../../../node_modules/@tiptap/extension-table/dist/index.js";
42
- import g from "../../../node_modules/@tiptap/extension-text/dist/index.js";
43
- import { TextStyle as v, Color as $ } from "../../../node_modules/@tiptap/extension-text-style/dist/index.js";
44
- import E from "../../../node_modules/@tiptap/extension-underline/dist/index.js";
45
- import { useEditor as M, EditorContext as P, EditorContent as C } from "../../../node_modules/@tiptap/react/dist/index.js";
46
- import { RichEditorToolbar as L } from "./toolbar/toolbar.js";
47
- const vo = ({ defaultValue: i, onChange: e }) => {
48
- const o = M({
34
+ import f from "../../../node_modules/@tiptap/extension-bold/dist/index.js";
35
+ import a from "../../../node_modules/@tiptap/extension-document/dist/index.js";
36
+ import u from "../../../node_modules/@tiptap/extension-heading/dist/index.js";
37
+ import c from "../../../node_modules/@tiptap/extension-italic/dist/index.js";
38
+ import x from "../../../node_modules/@tiptap/extension-link/dist/index.js";
39
+ import { BulletList as h, OrderedList as _, ListItem as b } from "../../../node_modules/@tiptap/extension-list/dist/index.js";
40
+ import g from "../../../node_modules/@tiptap/extension-paragraph/dist/index.js";
41
+ import { TableKit as v } from "../../../node_modules/@tiptap/extension-table/dist/index.js";
42
+ import $ from "../../../node_modules/@tiptap/extension-text/dist/index.js";
43
+ import { TextStyle as E, Color as M } from "../../../node_modules/@tiptap/extension-text-style/dist/index.js";
44
+ import P from "../../../node_modules/@tiptap/extension-underline/dist/index.js";
45
+ import { TrailingNode as T } from "../../../node_modules/@tiptap/extensions/dist/index.js";
46
+ import { useEditor as C, EditorContext as L, EditorContent as w } from "../../../node_modules/@tiptap/react/dist/index.js";
47
+ import { RichEditorToolbar as N } from "./toolbar/toolbar.js";
48
+ const Po = ({ defaultValue: i, onChange: e, disabled: m, className: p }) => {
49
+ const o = C({
49
50
  extensions: [
50
- s,
51
- _,
52
- g,
53
- l,
51
+ T,
54
52
  a,
55
- E,
56
- b,
57
- v,
53
+ g,
58
54
  $,
55
+ f,
59
56
  c,
60
- x,
57
+ P,
58
+ v,
59
+ E,
60
+ M,
61
61
  h,
62
- f.configure({
62
+ _,
63
+ b,
64
+ u.configure({
63
65
  levels: [1, 2, 3, 4, 5, 6]
64
66
  }),
65
- u.configure({
67
+ x.configure({
66
68
  openOnClick: !1,
67
69
  defaultProtocol: "https",
68
70
  protocols: ["http", "https"]
69
71
  })
70
72
  ],
71
73
  content: i,
72
- onUpdate(p) {
73
- e?.(p.editor.getHTML());
74
- }
75
- }), m = n(() => ({ editor: o }), [o]);
76
- return o ? /* @__PURE__ */ r(P.Provider, { value: m, children: /* @__PURE__ */ d(
74
+ onUpdate(n) {
75
+ e?.(n.editor.getHTML());
76
+ },
77
+ editable: !m
78
+ }), d = s(() => ({ editor: o }), [o]);
79
+ return o ? /* @__PURE__ */ r(L.Provider, { value: d, children: /* @__PURE__ */ l(
77
80
  "div",
78
81
  {
79
82
  className: t(
80
83
  "[&_.tiptap]:outline-none [&:has(.ProseMirror-focused)]:border-ring [&:has(.ProseMirror-focused)]:ring-ring/50 [&:has(.ProseMirror-focused)]:ring-[3px] transition-[color,box-shadow]",
81
84
  "[&_.tiptap]:min-h-48 [&_.tiptap]:max-h-72 [&_.tiptap]:overflow-y-scroll",
82
- "overflow-hidden rounded-md border border-input bg-input/30"
85
+ "overflow-hidden rounded-md border border-input bg-input/30",
86
+ p
83
87
  ),
84
88
  children: [
85
- /* @__PURE__ */ r(L, {}),
86
- /* @__PURE__ */ r(C, { disabled: !0, editor: o, className: t("rich-editor-content") })
89
+ /* @__PURE__ */ r(N, {}),
90
+ /* @__PURE__ */ r(w, { disabled: !0, editor: o, className: t("rich-editor-content") })
87
91
  ]
88
92
  }
89
93
  ) }) : null;
90
94
  };
91
95
  export {
92
- vo as RichEditor
96
+ Po as RichEditor
93
97
  };