@onereach/ui-components 26.8.1-beta.5977.0 → 26.8.1-beta.5978.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.
- package/dist/esm/{OrEditorTabs-BIcBBQ6d.mjs → OrEditorTabs-D1n2mNEl.mjs} +67 -67
- package/dist/esm/OrEditorTabs-D1n2mNEl.mjs.map +1 -0
- package/dist/esm/components/index.mjs +1 -1
- package/dist/esm/components/or-editor-tabs-v3/index.mjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/package.json +3 -3
- package/dist/esm/OrEditorTabs-BIcBBQ6d.mjs.map +0 -1
|
@@ -2,10 +2,10 @@ import { getItemByValue as fe } from "@onereach/ui-components-common/helpers";
|
|
|
2
2
|
import { useResponsive as me, useProxyModelValue as be } from "@onereach/ui-components-common/hooks";
|
|
3
3
|
import { isNil as pe } from "@onereach/ui-components-common/utils";
|
|
4
4
|
import { O as he } from "./OrIcon-k8cyvh-D.mjs";
|
|
5
|
-
import { O as
|
|
6
|
-
import { O as
|
|
5
|
+
import { O as we } from "./OrMenuItem-VyCCXA7Z.mjs";
|
|
6
|
+
import { O as ke } from "./OrMenu-Cag_fBXC.mjs";
|
|
7
7
|
import { useResizeObserver as ge } from "@vueuse/core";
|
|
8
|
-
import { defineComponent as X, ref as y, computed as i, resolveComponent as q, openBlock as d, createElementBlock as
|
|
8
|
+
import { defineComponent as X, ref as y, computed as i, resolveComponent as q, openBlock as d, createElementBlock as k, normalizeClass as r, renderSlot as V, Fragment as B, createVNode as h, withModifiers as ye, createCommentVNode as O, createElementVNode as w, toRef as Oe, reactive as Ie, watch as J, nextTick as $e, renderList as K, createBlock as T, withCtx as p, toDisplayString as C, createTextVNode as U } from "vue";
|
|
9
9
|
import { O as Me } from "./OrIconButton-Ds8k8FmS.mjs";
|
|
10
10
|
import { a as Se } from "./constants-ByXK9fg4.mjs";
|
|
11
11
|
import { _ as Y } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
|
|
@@ -77,12 +77,12 @@ const Te = [
|
|
|
77
77
|
isVue2: Se
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
-
}), Ce = ["selected", "disabled"], Ve = /* @__PURE__ */
|
|
80
|
+
}), Ce = ["selected", "disabled"], Ve = /* @__PURE__ */ w("div", {
|
|
81
81
|
class: /* @__PURE__ */ r(["grow"])
|
|
82
82
|
}, null, -1);
|
|
83
|
-
function
|
|
83
|
+
function ze(e, t, z, A, F, E) {
|
|
84
84
|
const c = q("OrIconButton");
|
|
85
|
-
return d(),
|
|
85
|
+
return d(), k("div", {
|
|
86
86
|
ref: "root",
|
|
87
87
|
class: r(e.rootStyles),
|
|
88
88
|
selected: e.selected,
|
|
@@ -90,7 +90,7 @@ function Ee(e, t, E, A, F, z) {
|
|
|
90
90
|
onClick: t[1] || (t[1] = (v) => e.isVue2 && e.$emit("click", v))
|
|
91
91
|
}, [
|
|
92
92
|
V(e.$slots, "default"),
|
|
93
|
-
e.closeButton ? (d(),
|
|
93
|
+
e.closeButton ? (d(), k(B, { key: 0 }, [
|
|
94
94
|
Ve,
|
|
95
95
|
h(c, {
|
|
96
96
|
icon: "close",
|
|
@@ -100,8 +100,8 @@ function Ee(e, t, E, A, F, z) {
|
|
|
100
100
|
], 64)) : O("", !0)
|
|
101
101
|
], 10, Ce);
|
|
102
102
|
}
|
|
103
|
-
const
|
|
104
|
-
var
|
|
103
|
+
const Ee = /* @__PURE__ */ Y(Be, [["render", ze]]);
|
|
104
|
+
var m = /* @__PURE__ */ ((e) => (e.Scroll = "scroll", e.Squeeze = "squeeze", e.Menu = "menu", e.Wrap = "wrap", e))(m || {});
|
|
105
105
|
const We = [
|
|
106
106
|
// Layout
|
|
107
107
|
"layout-column"
|
|
@@ -138,21 +138,21 @@ const We = [
|
|
|
138
138
|
"theme-divider-outline-variant",
|
|
139
139
|
"dark:theme-divider-outline-variant-dark"
|
|
140
140
|
], Ne = {
|
|
141
|
-
[
|
|
141
|
+
[m.Scroll]: [
|
|
142
142
|
// Overflow
|
|
143
143
|
"overflow-x-auto scrollbar-hidden"
|
|
144
144
|
],
|
|
145
|
-
[
|
|
145
|
+
[m.Squeeze]: [
|
|
146
146
|
// Layout
|
|
147
147
|
"md:grow",
|
|
148
148
|
// Overflow
|
|
149
149
|
"min-w-0 overflow-hidden"
|
|
150
150
|
],
|
|
151
|
-
[
|
|
151
|
+
[m.Menu]: [
|
|
152
152
|
// Overflow
|
|
153
153
|
"min-w-0 overflow-hidden"
|
|
154
154
|
],
|
|
155
|
-
[
|
|
155
|
+
[m.Wrap]: [
|
|
156
156
|
// Layout
|
|
157
157
|
"flex-wrap"
|
|
158
158
|
]
|
|
@@ -168,10 +168,10 @@ const We = [
|
|
|
168
168
|
], De = X({
|
|
169
169
|
name: "OrEditorTabs",
|
|
170
170
|
components: {
|
|
171
|
-
OrEditorTabsItem:
|
|
171
|
+
OrEditorTabsItem: Ee,
|
|
172
172
|
OrIcon: he,
|
|
173
|
-
OrMenu:
|
|
174
|
-
OrMenuItem:
|
|
173
|
+
OrMenu: ke,
|
|
174
|
+
OrMenuItem: we
|
|
175
175
|
},
|
|
176
176
|
model: {
|
|
177
177
|
prop: "modelValue",
|
|
@@ -188,7 +188,7 @@ const We = [
|
|
|
188
188
|
},
|
|
189
189
|
overflow: {
|
|
190
190
|
type: String,
|
|
191
|
-
default: () =>
|
|
191
|
+
default: () => m.Scroll
|
|
192
192
|
},
|
|
193
193
|
addButton: {
|
|
194
194
|
type: Boolean,
|
|
@@ -208,7 +208,7 @@ const We = [
|
|
|
208
208
|
"root"
|
|
209
209
|
],
|
|
210
210
|
setup(e, t) {
|
|
211
|
-
const { isDesktop:
|
|
211
|
+
const { isDesktop: z, isMobile: A } = me(), F = y(), E = y(), c = y(), v = y(), H = i(() => {
|
|
212
212
|
var n;
|
|
213
213
|
return (n = v.value) == null ? void 0 : n.root;
|
|
214
214
|
}), N = y(), o = i(() => [
|
|
@@ -223,34 +223,34 @@ const We = [
|
|
|
223
223
|
...Re
|
|
224
224
|
]), _ = i(() => [
|
|
225
225
|
...Ae,
|
|
226
|
-
...e.overflow ===
|
|
227
|
-
]), ee = i(() => e.overflow ===
|
|
226
|
+
...e.overflow === m.Menu || e.overflow === m.Squeeze ? ["md:grow-0", "shrink-0"] : []
|
|
227
|
+
]), ee = i(() => e.overflow === m.Squeeze ? ["basis-0", "grow", "min-w-0", "!max-w-none"] : []), oe = i(() => [
|
|
228
228
|
"or-editor-tabs-overflow-trigger-v3",
|
|
229
229
|
"shrink-0"
|
|
230
230
|
]), $ = be(Oe(e, "modelValue"), t.emit), M = Ie({
|
|
231
231
|
visible: [],
|
|
232
232
|
hidden: []
|
|
233
|
-
}), P = y(!1), R = i(() => e.overflow ===
|
|
233
|
+
}), P = y(!1), R = i(() => e.overflow === m.Menu && z.value), D = i(() => pe($.value) ? void 0 : fe($.value, e.items));
|
|
234
234
|
J(D, (n) => {
|
|
235
|
-
var
|
|
236
|
-
n && e.overflow ===
|
|
235
|
+
var b, u, g;
|
|
236
|
+
n && e.overflow === m.Scroll && ((g = (u = (b = c.value) == null ? void 0 : b[e.items.indexOf(n)]) == null ? void 0 : u.root) == null || g.scrollIntoView({ block: "nearest" }));
|
|
237
237
|
}, { flush: "post" });
|
|
238
|
-
const te = i(() => e.items.filter((n) => n.value !== $.value)), le = i(() => R.value ? M.visible : e.items), se = i(() => R.value ? M.hidden : []), ne = i(() => e.addButton && A.value), re = y(!1);
|
|
238
|
+
const te = i(() => e.items.filter((n) => n.value !== $.value)), le = i(() => R.value ? M.visible : e.items), se = i(() => R.value ? M.hidden : []), ne = i(() => e.addButton && (A.value || e.overflow === m.Scroll)), re = y(!1);
|
|
239
239
|
function ae() {
|
|
240
240
|
t.emit("open");
|
|
241
241
|
}
|
|
242
242
|
function de(n) {
|
|
243
243
|
if (n.value === $.value) {
|
|
244
|
-
const
|
|
245
|
-
if (
|
|
246
|
-
const u = e.items[
|
|
244
|
+
const b = e.items.indexOf(n);
|
|
245
|
+
if (b !== -1) {
|
|
246
|
+
const u = e.items[b + 1], g = e.items[b - 1];
|
|
247
247
|
$.value = (u == null ? void 0 : u.value) || (g == null ? void 0 : g.value);
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
t.emit("close", n);
|
|
251
251
|
}
|
|
252
|
-
function ie(n,
|
|
253
|
-
const u =
|
|
252
|
+
function ie(n, b) {
|
|
253
|
+
const u = E.value;
|
|
254
254
|
if (!u)
|
|
255
255
|
return {
|
|
256
256
|
visible: [...n],
|
|
@@ -277,10 +277,10 @@ const We = [
|
|
|
277
277
|
j();
|
|
278
278
|
for (; f.length > 0 && S + G() > u.clientWidth && a.length > 0; )
|
|
279
279
|
j();
|
|
280
|
-
if (
|
|
281
|
-
const s = f.findIndex((W) => W.value ===
|
|
280
|
+
if (b && f.some((s) => s.value === b.value)) {
|
|
281
|
+
const s = f.findIndex((W) => W.value === b.value), [l] = f.splice(s, 1);
|
|
282
282
|
for (j(Math.max(a.length - 1, 0)), l && (a.push(l), S += L.get(l.value) ?? 0); f.length > 0 && S + G() > u.clientWidth && a.length > 1; ) {
|
|
283
|
-
const ce = a.findIndex((ve) => ve.value ===
|
|
283
|
+
const ce = a.findIndex((ve) => ve.value === b.value) === a.length - 1 ? a.length - 2 : a.length - 1;
|
|
284
284
|
j(ce);
|
|
285
285
|
}
|
|
286
286
|
}
|
|
@@ -309,15 +309,15 @@ const We = [
|
|
|
309
309
|
}, { immediate: !0 }), J([
|
|
310
310
|
() => e.items,
|
|
311
311
|
() => e.overflow,
|
|
312
|
-
|
|
312
|
+
z,
|
|
313
313
|
D
|
|
314
314
|
], () => {
|
|
315
315
|
Q();
|
|
316
|
-
}, { immediate: !0 }), ge(
|
|
316
|
+
}, { immediate: !0 }), ge(E, () => {
|
|
317
317
|
Q();
|
|
318
318
|
}), {
|
|
319
319
|
root: F,
|
|
320
|
-
headerTabs:
|
|
320
|
+
headerTabs: E,
|
|
321
321
|
editorTabsItems: c,
|
|
322
322
|
desktopOverflowTrigger: v,
|
|
323
323
|
desktopOverflowTriggerRoot: H,
|
|
@@ -339,7 +339,7 @@ const We = [
|
|
|
339
339
|
isMenuOverflow: R,
|
|
340
340
|
open: ae,
|
|
341
341
|
close: de,
|
|
342
|
-
isDesktop:
|
|
342
|
+
isDesktop: z,
|
|
343
343
|
isMobile: A
|
|
344
344
|
};
|
|
345
345
|
}
|
|
@@ -356,21 +356,21 @@ const We = [
|
|
|
356
356
|
}, Je = {
|
|
357
357
|
class: /* @__PURE__ */ r(["truncate"])
|
|
358
358
|
};
|
|
359
|
-
function Ke(e, t,
|
|
359
|
+
function Ke(e, t, z, A, F, E) {
|
|
360
360
|
const c = q("OrEditorTabsItem"), v = q("OrIcon"), H = q("OrMenuItem"), N = q("OrMenu");
|
|
361
|
-
return d(),
|
|
361
|
+
return d(), k("div", {
|
|
362
362
|
ref: "root",
|
|
363
363
|
class: r(e.rootStyles)
|
|
364
364
|
}, [
|
|
365
|
-
|
|
365
|
+
w("div", {
|
|
366
366
|
class: r(e.headerStyles)
|
|
367
367
|
}, [
|
|
368
|
-
|
|
368
|
+
w("div", {
|
|
369
369
|
ref: "headerTabs",
|
|
370
370
|
class: r(e.headerTabsStyles)
|
|
371
371
|
}, [
|
|
372
|
-
e.isDesktop ? (d(),
|
|
373
|
-
(d(!0),
|
|
372
|
+
e.isDesktop ? (d(), k(B, { key: 0 }, [
|
|
373
|
+
(d(!0), k(B, null, K(e.desktopVisibleItems, (o) => (d(), T(c, {
|
|
374
374
|
ref_for: !0,
|
|
375
375
|
ref: "editorTabsItems",
|
|
376
376
|
key: o.value,
|
|
@@ -381,22 +381,22 @@ function Ke(e, t, E, A, F, z) {
|
|
|
381
381
|
onClick: (I) => e.proxyModelValue = o.value,
|
|
382
382
|
onClose: (I) => e.close(o)
|
|
383
383
|
}, {
|
|
384
|
-
default:
|
|
384
|
+
default: p(() => [
|
|
385
385
|
V(e.$slots, `${o.value}-label`, {
|
|
386
386
|
label: o.label
|
|
387
387
|
}, () => [
|
|
388
|
-
|
|
388
|
+
w("div", Le, C(o.label), 1)
|
|
389
389
|
])
|
|
390
390
|
]),
|
|
391
391
|
_: 2
|
|
392
392
|
}, 1032, ["class", "close-button", "selected", "disabled", "onClick", "onClose"]))), 128)),
|
|
393
|
-
e.addButton && e.overflow
|
|
393
|
+
e.addButton && (e.overflow === "menu" || e.overflow === "squeeze") ? (d(), T(c, {
|
|
394
394
|
key: 0,
|
|
395
395
|
"close-button": !1,
|
|
396
396
|
class: r(e.addButtonStyles),
|
|
397
397
|
onClick: t[0] || (t[0] = (o) => e.open())
|
|
398
398
|
}, {
|
|
399
|
-
default:
|
|
399
|
+
default: p(() => [
|
|
400
400
|
h(v, {
|
|
401
401
|
icon: "add",
|
|
402
402
|
size: "m",
|
|
@@ -405,14 +405,14 @@ function Ke(e, t, E, A, F, z) {
|
|
|
405
405
|
]),
|
|
406
406
|
_: 1
|
|
407
407
|
}, 8, ["class"])) : O("", !0),
|
|
408
|
-
e.isMenuOverflow && e.desktopOverflowItems.length > 0 ? (d(),
|
|
408
|
+
e.isMenuOverflow && e.desktopOverflowItems.length > 0 ? (d(), k(B, { key: 1 }, [
|
|
409
409
|
h(c, {
|
|
410
410
|
ref: "desktopOverflowTrigger",
|
|
411
411
|
class: r(e.desktopOverflowTriggerStyles),
|
|
412
412
|
"close-button": !1,
|
|
413
413
|
onClick: t[1] || (t[1] = (o) => e.desktopOverflowMenu && e.desktopOverflowMenu.toggle())
|
|
414
414
|
}, {
|
|
415
|
-
default:
|
|
415
|
+
default: p(() => [
|
|
416
416
|
U(C(e.desktopOverflowItems.length) + " ", 1),
|
|
417
417
|
h(v, {
|
|
418
418
|
icon: "more_horiz",
|
|
@@ -425,8 +425,8 @@ function Ke(e, t, E, A, F, z) {
|
|
|
425
425
|
ref: "desktopOverflowMenu",
|
|
426
426
|
trigger: e.desktopOverflowTriggerRoot
|
|
427
427
|
}, {
|
|
428
|
-
default:
|
|
429
|
-
(d(!0),
|
|
428
|
+
default: p(() => [
|
|
429
|
+
(d(!0), k(B, null, K(e.desktopOverflowItems, (o) => (d(), T(H, {
|
|
430
430
|
key: o.value,
|
|
431
431
|
"close-button": e.closeButton && !o.pinned,
|
|
432
432
|
selected: o.value === e.proxyModelValue,
|
|
@@ -434,12 +434,12 @@ function Ke(e, t, E, A, F, z) {
|
|
|
434
434
|
onClick: (I) => e.proxyModelValue = o.value,
|
|
435
435
|
onClose: (I) => e.close(o)
|
|
436
436
|
}, {
|
|
437
|
-
default:
|
|
438
|
-
|
|
437
|
+
default: p(() => [
|
|
438
|
+
w("div", je, [
|
|
439
439
|
V(e.$slots, `${o.value}-label`, {
|
|
440
440
|
label: o.label
|
|
441
441
|
}, () => [
|
|
442
|
-
|
|
442
|
+
w("div", Fe, C(o.label), 1)
|
|
443
443
|
])
|
|
444
444
|
])
|
|
445
445
|
]),
|
|
@@ -455,7 +455,7 @@ function Ke(e, t, E, A, F, z) {
|
|
|
455
455
|
class: r(e.addButtonStyles),
|
|
456
456
|
onClick: t[2] || (t[2] = (o) => e.open())
|
|
457
457
|
}, {
|
|
458
|
-
default:
|
|
458
|
+
default: p(() => [
|
|
459
459
|
h(v, {
|
|
460
460
|
icon: "add",
|
|
461
461
|
size: "m",
|
|
@@ -473,11 +473,11 @@ function Ke(e, t, E, A, F, z) {
|
|
|
473
473
|
disabled: e.selectedItem.disabled,
|
|
474
474
|
onClose: t[3] || (t[3] = (o) => e.close(e.selectedItem))
|
|
475
475
|
}, {
|
|
476
|
-
default:
|
|
476
|
+
default: p(() => [
|
|
477
477
|
V(e.$slots, `${e.selectedItem.value}-label`, {
|
|
478
478
|
label: e.selectedItem.label
|
|
479
479
|
}, () => [
|
|
480
|
-
|
|
480
|
+
w("div", Pe, C(e.selectedItem.label), 1)
|
|
481
481
|
])
|
|
482
482
|
]),
|
|
483
483
|
_: 3
|
|
@@ -489,7 +489,7 @@ function Ke(e, t, E, A, F, z) {
|
|
|
489
489
|
class: r(e.addButtonStyles),
|
|
490
490
|
onClick: t[4] || (t[4] = (o) => e.open())
|
|
491
491
|
}, {
|
|
492
|
-
default:
|
|
492
|
+
default: p(() => [
|
|
493
493
|
h(v, {
|
|
494
494
|
icon: "add",
|
|
495
495
|
size: "m",
|
|
@@ -498,12 +498,12 @@ function Ke(e, t, E, A, F, z) {
|
|
|
498
498
|
]),
|
|
499
499
|
_: 1
|
|
500
500
|
}, 8, ["class"])) : O("", !0),
|
|
501
|
-
e.isMobile && e.items.length > 1 ? (d(),
|
|
501
|
+
e.isMobile && e.items.length > 1 ? (d(), k(B, { key: 1 }, [
|
|
502
502
|
h(c, {
|
|
503
503
|
"close-button": !1,
|
|
504
504
|
onClick: t[5] || (t[5] = (o) => e.showOverflowMenu = !0)
|
|
505
505
|
}, {
|
|
506
|
-
default:
|
|
506
|
+
default: p(() => [
|
|
507
507
|
U(C(e.overflowItems.length) + " ", 1),
|
|
508
508
|
h(v, {
|
|
509
509
|
icon: "more_vert",
|
|
@@ -516,20 +516,20 @@ function Ke(e, t, E, A, F, z) {
|
|
|
516
516
|
"is-open": e.showOverflowMenu,
|
|
517
517
|
onClose: t[6] || (t[6] = (o) => e.showOverflowMenu = !1)
|
|
518
518
|
}, {
|
|
519
|
-
default:
|
|
520
|
-
(d(!0),
|
|
519
|
+
default: p(() => [
|
|
520
|
+
(d(!0), k(B, null, K(e.overflowItems, (o) => (d(), T(H, {
|
|
521
521
|
key: o.value,
|
|
522
522
|
"close-button": e.closeButton && !o.pinned,
|
|
523
523
|
disabled: o.disabled,
|
|
524
524
|
onClick: (I) => e.proxyModelValue = o.value,
|
|
525
525
|
onClose: (I) => e.close(o)
|
|
526
526
|
}, {
|
|
527
|
-
default:
|
|
528
|
-
|
|
527
|
+
default: p(() => [
|
|
528
|
+
w("div", Ge, [
|
|
529
529
|
V(e.$slots, `${o.value}-label`, {
|
|
530
530
|
label: o.label
|
|
531
531
|
}, () => [
|
|
532
|
-
|
|
532
|
+
w("div", Je, C(o.label), 1)
|
|
533
533
|
])
|
|
534
534
|
])
|
|
535
535
|
]),
|
|
@@ -540,7 +540,7 @@ function Ke(e, t, E, A, F, z) {
|
|
|
540
540
|
}, 8, ["is-open"])
|
|
541
541
|
], 64)) : O("", !0)
|
|
542
542
|
], 2),
|
|
543
|
-
|
|
543
|
+
w("div", {
|
|
544
544
|
class: r(e.contentStyles)
|
|
545
545
|
}, [
|
|
546
546
|
V(e.$slots, e.proxyModelValue)
|
|
@@ -549,7 +549,7 @@ function Ke(e, t, E, A, F, z) {
|
|
|
549
549
|
}
|
|
550
550
|
const so = /* @__PURE__ */ Y(De, [["render", Ke]]);
|
|
551
551
|
export {
|
|
552
|
-
|
|
552
|
+
m as E,
|
|
553
553
|
so as O
|
|
554
554
|
};
|
|
555
|
-
//# sourceMappingURL=OrEditorTabs-
|
|
555
|
+
//# sourceMappingURL=OrEditorTabs-D1n2mNEl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrEditorTabs-D1n2mNEl.mjs","sources":["../../../components/or-editor-tabs-v3/src/partials/or-editor-tabs-item/styles.ts","../../../components/or-editor-tabs-v3/src/partials/or-editor-tabs-item/OrEditorTabsItem.vue","../../../components/or-editor-tabs-v3/src/props.ts","../../../components/or-editor-tabs-v3/src/styles.ts","../../../components/or-editor-tabs-v3/src/OrEditorTabs.vue"],"sourcesContent":["export const EditorTabsItem: string[] = [\n // Layout\n 'layout-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Box\n 'md:max-w-[240px]',\n\n // Spacing\n 'px-md',\n 'py-[7px]',\n\n 'gap-sm',\n\n // Typography\n 'typography-caption-regular',\n\n // Border\n 'border-b-1',\n 'border-outline-variant',\n 'dark:border-outline-variant-dark',\n 'selected:border-b-[theme(backgroundColor.surface-1)]',\n 'dark:selected:border-b-[theme(backgroundColor.surface-1-dark)]',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n\n // Theme (hover)\n 'hover:theme-foreground-primary',\n 'dark:hover:theme-foreground-primary-dark',\n\n // Theme (selected)\n 'selected:theme-foreground-primary',\n 'dark:selected:theme-foreground-primary-dark',\n\n 'selected:theme-background-surface-1',\n 'dark:selected:theme-background-surface-1-dark',\n\n // FIX\n 'pb-[9px]',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :selected=\"selected\"\n :disabled=\"disabled\"\n @click=\"isVue2 && $emit('click', $event)\"\n >\n <slot />\n\n <template v-if=\"closeButton\">\n <div :class=\"['grow']\" />\n\n <OrIconButton\n :icon=\"'close'\"\n :disabled=\"disabled\"\n @click.stop=\"$emit('close')\"\n />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { computed, defineComponent, ref } from 'vue';\n\nimport { isVue2 } from '@/constants';\n\nimport { EditorTabsItem } from './styles';\n\nexport default defineComponent({\n name: 'OrEditorTabsItem',\n\n components: {\n OrIconButton,\n },\n\n props: {\n closeButton: {\n type: Boolean,\n default: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'close',\n ],\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-editor-tabs-item-v3',\n ...EditorTabsItem,\n ]);\n\n return {\n root,\n rootStyles,\n\n isVue2,\n };\n },\n});\n</script>\n","export enum EditorTabsOverflow {\n Scroll = 'scroll',\n Squeeze = 'squeeze',\n Menu = 'menu',\n Wrap = 'wrap',\n}\n","import { EditorTabsOverflow } from './props';\n\nexport const EditorTabs: string[] = [\n // Layout\n 'layout-column',\n];\n\nexport const EditorTabsHeader: string[] = [\n // Layout\n 'layout-row',\n\n // Theme\n 'border-b-1',\n 'theme-border-outline-variant',\n 'dark:theme-border-outline-variant-dark',\n\n // Box\n 'w-full',\n\n // FIX\n 'mb-[-1px]',\n\n // adds border between tab and '+' button\n // 'theme-divider-outline-variant',\n // 'dark:theme-divider-outline-variant-dark',\n];\n\nexport const EditorTabsAddButton: string[] = [\n // Box\n 'md:grow',\n '!max-w-full',\n '!p-sm',\n\n // Border\n 'border-l-1',\n 'border-r-1 md:border-r-0',\n\n // Theme\n 'border-outline-variant dark:border-outline-variant-dark',\n];\n\nexport const EditorTabsHeaderTabs: string[] = [\n // Layout\n 'layout-row grow md:grow-0',\n\n // Box\n 'max-w-full',\n\n // Theme\n 'theme-divider-outline-variant',\n 'dark:theme-divider-outline-variant-dark',\n];\n\nexport const EditorTabsHeaderTabsOverflows: Record<EditorTabsOverflow, string[]> = {\n [EditorTabsOverflow.Scroll]: [\n // Overflow\n 'overflow-x-auto scrollbar-hidden',\n ],\n\n [EditorTabsOverflow.Squeeze]: [\n // Layout\n 'md:grow',\n\n // Overflow\n 'min-w-0 overflow-hidden',\n ],\n\n [EditorTabsOverflow.Menu]: [\n // Overflow\n 'min-w-0 overflow-hidden',\n ],\n\n [EditorTabsOverflow.Wrap]: [\n // Layout\n 'flex-wrap',\n ],\n};\n\nexport const EditorTabsContent: string[] = [\n // Spacing\n 'px-md',\n 'py-md',\n\n // Box\n 'grow',\n\n // Theme\n 'theme-background-surface-1',\n 'dark:theme-background-surface-1-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"headerStyles\">\n <div\n :ref=\"'headerTabs'\"\n :class=\"headerTabsStyles\"\n >\n <template v-if=\"isDesktop\">\n <OrEditorTabsItem\n v-for=\"item of desktopVisibleItems\"\n :ref=\"'editorTabsItems'\"\n :key=\"item.value\"\n :class=\"desktopTabStyles\"\n :close-button=\"closeButton && !item.pinned\"\n :selected=\"item.value === proxyModelValue\"\n :disabled=\"item.disabled\"\n @click=\"proxyModelValue = item.value\"\n @close=\"close(item)\"\n >\n <slot\n :name=\"`${item.value}-label`\"\n :label=\"item.label\"\n >\n <div :class=\"['truncate']\">\n {{ item.label }}\n </div>\n </slot>\n </OrEditorTabsItem>\n\n <OrEditorTabsItem\n v-if=\"addButton && (overflow === 'menu' || overflow === 'squeeze')\"\n :close-button=\"false\"\n :class=\"addButtonStyles\"\n @click=\"open()\"\n >\n <OrIcon\n :icon=\"'add'\"\n :size=\"'m'\"\n class=\"md:my-[1px]\"\n />\n </OrEditorTabsItem>\n\n <template v-if=\"isMenuOverflow && desktopOverflowItems.length > 0\">\n <OrEditorTabsItem\n :ref=\"'desktopOverflowTrigger'\"\n :class=\"desktopOverflowTriggerStyles\"\n :close-button=\"false\"\n @click=\"desktopOverflowMenu && desktopOverflowMenu.toggle()\"\n >\n {{ desktopOverflowItems.length }}\n\n <OrIcon\n :icon=\"'more_horiz'\"\n :size=\"'m'\"\n />\n </OrEditorTabsItem>\n\n <OrMenu\n :ref=\"'desktopOverflowMenu'\"\n :trigger=\"desktopOverflowTriggerRoot\"\n >\n <OrMenuItem\n v-for=\"item of desktopOverflowItems\"\n :key=\"item.value\"\n :close-button=\"closeButton && !item.pinned\"\n :selected=\"item.value === proxyModelValue\"\n :disabled=\"item.disabled\"\n @click=\"proxyModelValue = item.value\"\n @close=\"close(item)\"\n >\n <div :class=\"['layout-row', 'gap-sm']\">\n <slot\n :name=\"`${item.value}-label`\"\n :label=\"item.label\"\n >\n <div :class=\"['truncate']\">\n {{ item.label }}\n </div>\n </slot>\n </div>\n </OrMenuItem>\n </OrMenu>\n </template>\n\n <OrEditorTabsItem\n v-if=\"addButton && overflow == 'wrap'\"\n :close-button=\"false\"\n :class=\"addButtonStyles\"\n @click=\"open()\"\n >\n <OrIcon\n :icon=\"'add'\"\n :size=\"'m'\"\n class=\"md:my-[1px]\"\n />\n </OrEditorTabsItem>\n </template>\n\n <template v-if=\"isMobile && selectedItem\">\n <OrEditorTabsItem\n :class=\"['grow']\"\n :close-button=\"closeButton && !selectedItem.pinned\"\n :selected=\"true\"\n :disabled=\"selectedItem.disabled\"\n @close=\"close(selectedItem)\"\n >\n <slot\n :name=\"`${selectedItem.value}-label`\"\n :label=\"selectedItem.label\"\n >\n <div :class=\"['truncate']\">\n {{ selectedItem.label }}\n </div>\n </slot>\n </OrEditorTabsItem>\n </template>\n </div>\n\n <template v-if=\"showStandaloneAddButton\">\n <OrEditorTabsItem\n :close-button=\"false\"\n :class=\"addButtonStyles\"\n @click=\"open()\"\n >\n <OrIcon\n :icon=\"'add'\"\n :size=\"'m'\"\n class=\"md:my-[1px]\"\n />\n </OrEditorTabsItem>\n </template>\n\n <template v-if=\"isMobile && items.length > 1\">\n <OrEditorTabsItem\n :close-button=\"false\"\n @click=\"showOverflowMenu = true\"\n >\n {{ overflowItems.length }}\n\n <OrIcon\n :icon=\"'more_vert'\"\n :size=\"'m'\"\n />\n </OrEditorTabsItem>\n\n <OrMenu\n :is-open=\"showOverflowMenu\"\n @close=\"showOverflowMenu = false\"\n >\n <OrMenuItem\n v-for=\"item of overflowItems\"\n :key=\"item.value\"\n :close-button=\"closeButton && !item.pinned\"\n :disabled=\"item.disabled\"\n @click=\"proxyModelValue = item.value\"\n @close=\"close(item)\"\n >\n <div :class=\"['layout-row', 'gap-sm']\">\n <slot\n :name=\"`${item.value}-label`\"\n :label=\"item.label\"\n >\n <div :class=\"['truncate']\">\n {{ item.label }}\n </div>\n </slot>\n </div>\n </OrMenuItem>\n </OrMenu>\n </template>\n </div>\n\n <div :class=\"contentStyles\">\n <slot :name=\"proxyModelValue\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { getItemByValue } from '@onereach/ui-components-common/helpers';\nimport { useProxyModelValue, useResponsive } from '@onereach/ui-components-common/hooks';\nimport { isNil } from '@onereach/ui-components-common/utils';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { EditorTabsItem, EditorTabsModelValue } from '@onereach/ui-components.or-tabs-v3';\nimport { useResizeObserver } from '@vueuse/core';\nimport { PropType, computed, defineComponent, nextTick, reactive, ref, toRef, watch } from 'vue';\n\nimport { OrEditorTabsItem } from './partials';\nimport { EditorTabsOverflow } from './props';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrEditorTabs',\n\n components: {\n OrEditorTabsItem,\n OrIcon,\n OrMenu,\n OrMenuItem,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<EditorTabsModelValue>,\n default: undefined,\n },\n\n items: {\n type: Array as PropType<EditorTabsItem[]>,\n required: true,\n },\n\n overflow: {\n type: String as PropType<`${EditorTabsOverflow}`>,\n default: () => EditorTabsOverflow.Scroll,\n },\n\n addButton: {\n type: Boolean,\n default: true,\n },\n\n closeButton: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'open',\n 'close',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n const { isDesktop, isMobile } = useResponsive();\n\n // Refs\n const root = ref<HTMLElement>();\n const headerTabs = ref<HTMLElement>();\n const editorTabsItems = ref<InstanceType<typeof OrEditorTabsItem>[]>();\n const desktopOverflowTrigger = ref<InstanceType<typeof OrEditorTabsItem>>();\n const desktopOverflowTriggerRoot = computed(() => desktopOverflowTrigger.value?.root);\n\n const desktopOverflowMenu = ref<InstanceType<typeof OrMenu>>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-editor-tabs-v3',\n ...Styles.EditorTabs,\n ]);\n\n const headerStyles = computed(() => [\n ...Styles.EditorTabsHeader,\n ]);\n\n const headerTabsStyles = computed(() => [\n ...Styles.EditorTabsHeaderTabs,\n ...Styles.EditorTabsHeaderTabsOverflows[props.overflow],\n ]);\n\n const contentStyles = computed(() => [\n ...Styles.EditorTabsContent,\n ]);\n\n const addButtonStyles = computed(() => [\n ...Styles.EditorTabsAddButton,\n ...(props.overflow === EditorTabsOverflow.Menu || props.overflow === EditorTabsOverflow.Squeeze\n ? ['md:grow-0', 'shrink-0']\n : []),\n ]);\n\n const desktopTabStyles = computed(() => {\n return props.overflow === EditorTabsOverflow.Squeeze\n ? ['basis-0', 'grow', 'min-w-0', '!max-w-none']\n : [];\n });\n\n const desktopOverflowTriggerStyles = computed(() => [\n 'or-editor-tabs-overflow-trigger-v3',\n 'shrink-0',\n ]);\n\n // State\n const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const menuTabs = reactive({\n visible: [] as EditorTabsItem[],\n hidden: [] as EditorTabsItem[],\n });\n const isSyncingMenuTabs = ref(false);\n\n const isMenuOverflow = computed(() => props.overflow === EditorTabsOverflow.Menu && isDesktop.value);\n\n const selectedItem = computed(() => {\n return !isNil(proxyModelValue.value) ? getItemByValue(proxyModelValue.value, props.items) : undefined;\n });\n\n watch(selectedItem, (value) => {\n if (value && props.overflow === EditorTabsOverflow.Scroll) {\n (editorTabsItems.value?.[props.items.indexOf(value)]?.root as HTMLElement | undefined)?.scrollIntoView({ block: 'nearest' });\n }\n }, { flush: 'post' });\n\n const overflowItems = computed(() => {\n return props.items.filter((item) => item.value !== proxyModelValue.value);\n });\n\n const desktopVisibleItems = computed(() => {\n return isMenuOverflow.value ? menuTabs.visible : props.items;\n });\n\n const desktopOverflowItems = computed(() => {\n return isMenuOverflow.value ? menuTabs.hidden : [];\n });\n\n const showStandaloneAddButton = computed(() => {\n return props.addButton && (isMobile.value || props.overflow === EditorTabsOverflow.Scroll);\n });\n\n const showOverflowMenu = ref(false);\n\n // Methods\n function open(): void {\n context.emit('open');\n }\n\n function close(item: EditorTabsItem): void {\n if (item.value === proxyModelValue.value) {\n const index = props.items.indexOf(item);\n\n if (index !== -1) {\n const nextItem = props.items[index + 1];\n const previousItem = props.items[index - 1];\n\n proxyModelValue.value = nextItem?.value || previousItem?.value;\n }\n }\n\n context.emit('close', item);\n }\n\n function rearrangeMenuTabs(items: EditorTabsItem[], activeItem?: EditorTabsItem): typeof menuTabs {\n const rootElement = headerTabs.value;\n\n if (!rootElement) {\n return {\n visible: [...items],\n hidden: [],\n };\n }\n\n const tabElements = [...rootElement.children].filter((element) => {\n return !(element as HTMLElement).classList.contains('or-editor-tabs-overflow-trigger-v3');\n }) as HTMLElement[];\n\n const widthByValue = new Map(items.map((item, index) => {\n return [item.value, tabElements[index]?.clientWidth ?? 0];\n }));\n\n const nextVisibleItems = [...items];\n const nextHiddenItems: EditorTabsItem[] = [];\n\n let visibleWidth = nextVisibleItems.reduce((width, item) => {\n return width + (widthByValue.get(item.value) ?? 0);\n }, 0);\n\n const reserveOverflowTriggerWidth = (): number => {\n return (desktopOverflowTrigger.value?.root as HTMLElement | undefined)?.clientWidth ?? 72;\n };\n\n const hideItem = (index = nextVisibleItems.length - 1): void => {\n if (index < 0) {\n return;\n }\n\n const [item] = nextVisibleItems.splice(index, 1);\n\n if (!item) {\n return;\n }\n\n nextHiddenItems.unshift(item);\n visibleWidth -= widthByValue.get(item.value) ?? 0;\n };\n\n const normalizeItems = (): void => {\n const visibleValues = new Set(nextVisibleItems.map((item) => item.value));\n\n nextVisibleItems.splice(0, nextVisibleItems.length, ...items.filter((item) => visibleValues.has(item.value)));\n nextHiddenItems.splice(0, nextHiddenItems.length, ...items.filter((item) => !visibleValues.has(item.value)));\n };\n\n while (visibleWidth > rootElement.clientWidth && nextVisibleItems.length > 0) {\n hideItem();\n }\n\n while (\n nextHiddenItems.length > 0\n && visibleWidth + reserveOverflowTriggerWidth() > rootElement.clientWidth\n && nextVisibleItems.length > 0\n ) {\n hideItem();\n }\n\n if (activeItem && nextHiddenItems.some((item) => item.value === activeItem.value)) {\n const activeHiddenIndex = nextHiddenItems.findIndex((item) => item.value === activeItem.value);\n const [nextActiveItem] = nextHiddenItems.splice(activeHiddenIndex, 1);\n\n hideItem(Math.max(nextVisibleItems.length - 1, 0));\n\n if (nextActiveItem) {\n nextVisibleItems.push(nextActiveItem);\n visibleWidth += widthByValue.get(nextActiveItem.value) ?? 0;\n }\n\n while (\n nextHiddenItems.length > 0\n && visibleWidth + reserveOverflowTriggerWidth() > rootElement.clientWidth\n && nextVisibleItems.length > 1\n ) {\n const activeVisibleIndex = nextVisibleItems.findIndex((item) => item.value === activeItem.value);\n const hideIndex = activeVisibleIndex === nextVisibleItems.length - 1\n ? nextVisibleItems.length - 2\n : nextVisibleItems.length - 1;\n\n hideItem(hideIndex);\n }\n }\n\n normalizeItems();\n\n while (nextHiddenItems.length > 0) {\n const nextItem = nextHiddenItems[0];\n const nextItemWidth = widthByValue.get(nextItem.value) ?? 0;\n\n if (visibleWidth + nextItemWidth + reserveOverflowTriggerWidth() > rootElement.clientWidth) {\n break;\n }\n\n nextVisibleItems.push(nextItem);\n nextHiddenItems.shift();\n visibleWidth += nextItemWidth;\n }\n\n return {\n visible: nextVisibleItems,\n hidden: nextHiddenItems,\n };\n }\n\n function syncMenuTabs(): void {\n if (!isMenuOverflow.value) {\n menuTabs.visible = [...props.items];\n menuTabs.hidden = [];\n return;\n }\n\n if (isSyncingMenuTabs.value) {\n return;\n }\n\n isSyncingMenuTabs.value = true;\n menuTabs.visible = [...props.items];\n menuTabs.hidden = [];\n\n nextTick(() => {\n Object.assign(menuTabs, rearrangeMenuTabs(props.items, selectedItem.value));\n isSyncingMenuTabs.value = false;\n });\n }\n\n // Effects\n watch(() => props.items, (items) => {\n if (items.length === 1) {\n proxyModelValue.value = items[0].value;\n }\n }, { immediate: true });\n\n watch([\n () => props.items,\n () => props.overflow,\n isDesktop,\n selectedItem,\n ], () => {\n syncMenuTabs();\n }, { immediate: true });\n\n useResizeObserver(headerTabs, () => {\n syncMenuTabs();\n });\n\n return {\n root,\n headerTabs,\n editorTabsItems,\n desktopOverflowTrigger,\n desktopOverflowTriggerRoot,\n desktopOverflowMenu,\n\n rootStyles,\n headerStyles,\n headerTabsStyles,\n contentStyles,\n addButtonStyles,\n desktopTabStyles,\n desktopOverflowTriggerStyles,\n\n proxyModelValue,\n selectedItem,\n overflowItems,\n desktopVisibleItems,\n desktopOverflowItems,\n showStandaloneAddButton,\n showOverflowMenu,\n isMenuOverflow,\n\n open,\n close,\n\n isDesktop,\n isMobile,\n };\n },\n});\n</script>\n"],"names":["EditorTabsItem","_sfc_main$1","defineComponent","OrIconButton","root","ref","rootStyles","computed","isVue2","_hoisted_1","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_cache","$event","_renderSlot","_Fragment","_hoisted_2","_component_OrIconButton","EditorTabsOverflow","EditorTabs","EditorTabsHeader","EditorTabsAddButton","EditorTabsHeaderTabs","EditorTabsHeaderTabsOverflows","EditorTabsContent","_sfc_main","OrEditorTabsItem","OrIcon","OrMenu","OrMenuItem","props","context","isDesktop","isMobile","useResponsive","headerTabs","editorTabsItems","desktopOverflowTrigger","desktopOverflowTriggerRoot","_a","desktopOverflowMenu","Styles.EditorTabs","headerStyles","Styles.EditorTabsHeader","headerTabsStyles","Styles.EditorTabsHeaderTabs","Styles.EditorTabsHeaderTabsOverflows","contentStyles","Styles.EditorTabsContent","addButtonStyles","Styles.EditorTabsAddButton","desktopTabStyles","desktopOverflowTriggerStyles","proxyModelValue","useProxyModelValue","toRef","menuTabs","reactive","isSyncingMenuTabs","isMenuOverflow","selectedItem","isNil","getItemByValue","watch","value","_c","_b","overflowItems","item","desktopVisibleItems","desktopOverflowItems","showStandaloneAddButton","showOverflowMenu","open","close","index","nextItem","previousItem","rearrangeMenuTabs","items","activeItem","rootElement","tabElements","element","widthByValue","nextVisibleItems","nextHiddenItems","visibleWidth","width","reserveOverflowTriggerWidth","hideItem","normalizeItems","visibleValues","activeHiddenIndex","nextActiveItem","hideIndex","nextItemWidth","syncMenuTabs","nextTick","useResizeObserver","_renderList","_createBlock","_component_OrEditorTabsItem","_withCtx","_createVNode","_component_OrIcon","_createCommentVNode","_createTextVNode","_toDisplayString","_component_OrMenu","_component_OrMenuItem","_createElementVNode","_hoisted_5"],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ import { O as vr, a as zr, b as wr, c as Ar, d as Nr, e as yr, f as Hr, g as _r,
|
|
|
29
29
|
import { g as Yr } from "../getNextMonthDate-CzdFz1JW.mjs";
|
|
30
30
|
import { D as $r, O as ra } from "../OrDrawer-CxFRr8z9.mjs";
|
|
31
31
|
import { D as oa, O as ea, a as ta } from "../OrDropArea-CtaQeTMw.mjs";
|
|
32
|
-
import { E as Oa, O as ia } from "../OrEditorTabs-
|
|
32
|
+
import { E as Oa, O as ia } from "../OrEditorTabs-D1n2mNEl.mjs";
|
|
33
33
|
import { E as ma, O as na } from "../OrEmptyState-C6viT2WQ.mjs";
|
|
34
34
|
import { O as Va } from "../OrErrorTag-B35sZEF9.mjs";
|
|
35
35
|
import { O as la } from "../OrError-B5ihH6-3.mjs";
|
package/dist/esm/index.mjs
CHANGED
|
@@ -29,7 +29,7 @@ import { O as vr, a as zr, b as wr, c as Ar, d as Nr, e as yr, f as Hr, g as _r,
|
|
|
29
29
|
import { g as Yr } from "./getNextMonthDate-CzdFz1JW.mjs";
|
|
30
30
|
import { D as $r, O as ra } from "./OrDrawer-CxFRr8z9.mjs";
|
|
31
31
|
import { D as oa, O as ea, a as ta } from "./OrDropArea-CtaQeTMw.mjs";
|
|
32
|
-
import { E as Oa, O as ia } from "./OrEditorTabs-
|
|
32
|
+
import { E as Oa, O as ia } from "./OrEditorTabs-D1n2mNEl.mjs";
|
|
33
33
|
import { E as ma, O as na } from "./OrEmptyState-C6viT2WQ.mjs";
|
|
34
34
|
import { O as Va } from "./OrErrorTag-B35sZEF9.mjs";
|
|
35
35
|
import { O as la } from "./OrError-B5ihH6-3.mjs";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onereach/ui-components",
|
|
3
|
-
"version": "26.8.1-beta.
|
|
3
|
+
"version": "26.8.1-beta.5978.0",
|
|
4
4
|
"description": "Vue components library for v3",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"@codemirror/view": "^6",
|
|
47
47
|
"@floating-ui/dom": "1.5.3",
|
|
48
48
|
"@lezer/highlight": "*",
|
|
49
|
-
"@onereach/styles": "^26.8.1-beta.
|
|
50
|
-
"@onereach/ui-components-common": "^26.8.1-beta.
|
|
49
|
+
"@onereach/styles": "^26.8.1-beta.5978.0",
|
|
50
|
+
"@onereach/ui-components-common": "^26.8.1-beta.5978.0",
|
|
51
51
|
"@splidejs/splide": "4.0.6",
|
|
52
52
|
"@tiptap/core": "2.27.1",
|
|
53
53
|
"@tiptap/extension-blockquote": "2.27.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OrEditorTabs-BIcBBQ6d.mjs","sources":["../../../components/or-editor-tabs-v3/src/partials/or-editor-tabs-item/styles.ts","../../../components/or-editor-tabs-v3/src/partials/or-editor-tabs-item/OrEditorTabsItem.vue","../../../components/or-editor-tabs-v3/src/props.ts","../../../components/or-editor-tabs-v3/src/styles.ts","../../../components/or-editor-tabs-v3/src/OrEditorTabs.vue"],"sourcesContent":["export const EditorTabsItem: string[] = [\n // Layout\n 'layout-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Box\n 'md:max-w-[240px]',\n\n // Spacing\n 'px-md',\n 'py-[7px]',\n\n 'gap-sm',\n\n // Typography\n 'typography-caption-regular',\n\n // Border\n 'border-b-1',\n 'border-outline-variant',\n 'dark:border-outline-variant-dark',\n 'selected:border-b-[theme(backgroundColor.surface-1)]',\n 'dark:selected:border-b-[theme(backgroundColor.surface-1-dark)]',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n\n // Theme (hover)\n 'hover:theme-foreground-primary',\n 'dark:hover:theme-foreground-primary-dark',\n\n // Theme (selected)\n 'selected:theme-foreground-primary',\n 'dark:selected:theme-foreground-primary-dark',\n\n 'selected:theme-background-surface-1',\n 'dark:selected:theme-background-surface-1-dark',\n\n // FIX\n 'pb-[9px]',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :selected=\"selected\"\n :disabled=\"disabled\"\n @click=\"isVue2 && $emit('click', $event)\"\n >\n <slot />\n\n <template v-if=\"closeButton\">\n <div :class=\"['grow']\" />\n\n <OrIconButton\n :icon=\"'close'\"\n :disabled=\"disabled\"\n @click.stop=\"$emit('close')\"\n />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { computed, defineComponent, ref } from 'vue';\n\nimport { isVue2 } from '@/constants';\n\nimport { EditorTabsItem } from './styles';\n\nexport default defineComponent({\n name: 'OrEditorTabsItem',\n\n components: {\n OrIconButton,\n },\n\n props: {\n closeButton: {\n type: Boolean,\n default: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'close',\n ],\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-editor-tabs-item-v3',\n ...EditorTabsItem,\n ]);\n\n return {\n root,\n rootStyles,\n\n isVue2,\n };\n },\n});\n</script>\n","export enum EditorTabsOverflow {\n Scroll = 'scroll',\n Squeeze = 'squeeze',\n Menu = 'menu',\n Wrap = 'wrap',\n}\n","import { EditorTabsOverflow } from './props';\n\nexport const EditorTabs: string[] = [\n // Layout\n 'layout-column',\n];\n\nexport const EditorTabsHeader: string[] = [\n // Layout\n 'layout-row',\n\n // Theme\n 'border-b-1',\n 'theme-border-outline-variant',\n 'dark:theme-border-outline-variant-dark',\n\n // Box\n 'w-full',\n\n // FIX\n 'mb-[-1px]',\n\n // adds border between tab and '+' button\n // 'theme-divider-outline-variant',\n // 'dark:theme-divider-outline-variant-dark',\n];\n\nexport const EditorTabsAddButton: string[] = [\n // Box\n 'md:grow',\n '!max-w-full',\n '!p-sm',\n\n // Border\n 'border-l-1',\n 'border-r-1 md:border-r-0',\n\n // Theme\n 'border-outline-variant dark:border-outline-variant-dark',\n];\n\nexport const EditorTabsHeaderTabs: string[] = [\n // Layout\n 'layout-row grow md:grow-0',\n\n // Box\n 'max-w-full',\n\n // Theme\n 'theme-divider-outline-variant',\n 'dark:theme-divider-outline-variant-dark',\n];\n\nexport const EditorTabsHeaderTabsOverflows: Record<EditorTabsOverflow, string[]> = {\n [EditorTabsOverflow.Scroll]: [\n // Overflow\n 'overflow-x-auto scrollbar-hidden',\n ],\n\n [EditorTabsOverflow.Squeeze]: [\n // Layout\n 'md:grow',\n\n // Overflow\n 'min-w-0 overflow-hidden',\n ],\n\n [EditorTabsOverflow.Menu]: [\n // Overflow\n 'min-w-0 overflow-hidden',\n ],\n\n [EditorTabsOverflow.Wrap]: [\n // Layout\n 'flex-wrap',\n ],\n};\n\nexport const EditorTabsContent: string[] = [\n // Spacing\n 'px-md',\n 'py-md',\n\n // Box\n 'grow',\n\n // Theme\n 'theme-background-surface-1',\n 'dark:theme-background-surface-1-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"headerStyles\">\n <div\n :ref=\"'headerTabs'\"\n :class=\"headerTabsStyles\"\n >\n <template v-if=\"isDesktop\">\n <OrEditorTabsItem\n v-for=\"item of desktopVisibleItems\"\n :ref=\"'editorTabsItems'\"\n :key=\"item.value\"\n :class=\"desktopTabStyles\"\n :close-button=\"closeButton && !item.pinned\"\n :selected=\"item.value === proxyModelValue\"\n :disabled=\"item.disabled\"\n @click=\"proxyModelValue = item.value\"\n @close=\"close(item)\"\n >\n <slot\n :name=\"`${item.value}-label`\"\n :label=\"item.label\"\n >\n <div :class=\"['truncate']\">\n {{ item.label }}\n </div>\n </slot>\n </OrEditorTabsItem>\n\n <OrEditorTabsItem\n v-if=\"addButton && overflow != 'wrap'\"\n :close-button=\"false\"\n :class=\"addButtonStyles\"\n @click=\"open()\"\n >\n <OrIcon\n :icon=\"'add'\"\n :size=\"'m'\"\n class=\"md:my-[1px]\"\n />\n </OrEditorTabsItem>\n\n <template v-if=\"isMenuOverflow && desktopOverflowItems.length > 0\">\n <OrEditorTabsItem\n :ref=\"'desktopOverflowTrigger'\"\n :class=\"desktopOverflowTriggerStyles\"\n :close-button=\"false\"\n @click=\"desktopOverflowMenu && desktopOverflowMenu.toggle()\"\n >\n {{ desktopOverflowItems.length }}\n\n <OrIcon\n :icon=\"'more_horiz'\"\n :size=\"'m'\"\n />\n </OrEditorTabsItem>\n\n <OrMenu\n :ref=\"'desktopOverflowMenu'\"\n :trigger=\"desktopOverflowTriggerRoot\"\n >\n <OrMenuItem\n v-for=\"item of desktopOverflowItems\"\n :key=\"item.value\"\n :close-button=\"closeButton && !item.pinned\"\n :selected=\"item.value === proxyModelValue\"\n :disabled=\"item.disabled\"\n @click=\"proxyModelValue = item.value\"\n @close=\"close(item)\"\n >\n <div :class=\"['layout-row', 'gap-sm']\">\n <slot\n :name=\"`${item.value}-label`\"\n :label=\"item.label\"\n >\n <div :class=\"['truncate']\">\n {{ item.label }}\n </div>\n </slot>\n </div>\n </OrMenuItem>\n </OrMenu>\n </template>\n\n <OrEditorTabsItem\n v-if=\"addButton && overflow == 'wrap'\"\n :close-button=\"false\"\n :class=\"addButtonStyles\"\n @click=\"open()\"\n >\n <OrIcon\n :icon=\"'add'\"\n :size=\"'m'\"\n class=\"md:my-[1px]\"\n />\n </OrEditorTabsItem>\n </template>\n\n <template v-if=\"isMobile && selectedItem\">\n <OrEditorTabsItem\n :class=\"['grow']\"\n :close-button=\"closeButton && !selectedItem.pinned\"\n :selected=\"true\"\n :disabled=\"selectedItem.disabled\"\n @close=\"close(selectedItem)\"\n >\n <slot\n :name=\"`${selectedItem.value}-label`\"\n :label=\"selectedItem.label\"\n >\n <div :class=\"['truncate']\">\n {{ selectedItem.label }}\n </div>\n </slot>\n </OrEditorTabsItem>\n </template>\n </div>\n\n <template v-if=\"showStandaloneAddButton\">\n <OrEditorTabsItem\n :close-button=\"false\"\n :class=\"addButtonStyles\"\n @click=\"open()\"\n >\n <OrIcon\n :icon=\"'add'\"\n :size=\"'m'\"\n class=\"md:my-[1px]\"\n />\n </OrEditorTabsItem>\n </template>\n\n <template v-if=\"isMobile && items.length > 1\">\n <OrEditorTabsItem\n :close-button=\"false\"\n @click=\"showOverflowMenu = true\"\n >\n {{ overflowItems.length }}\n\n <OrIcon\n :icon=\"'more_vert'\"\n :size=\"'m'\"\n />\n </OrEditorTabsItem>\n\n <OrMenu\n :is-open=\"showOverflowMenu\"\n @close=\"showOverflowMenu = false\"\n >\n <OrMenuItem\n v-for=\"item of overflowItems\"\n :key=\"item.value\"\n :close-button=\"closeButton && !item.pinned\"\n :disabled=\"item.disabled\"\n @click=\"proxyModelValue = item.value\"\n @close=\"close(item)\"\n >\n <div :class=\"['layout-row', 'gap-sm']\">\n <slot\n :name=\"`${item.value}-label`\"\n :label=\"item.label\"\n >\n <div :class=\"['truncate']\">\n {{ item.label }}\n </div>\n </slot>\n </div>\n </OrMenuItem>\n </OrMenu>\n </template>\n </div>\n\n <div :class=\"contentStyles\">\n <slot :name=\"proxyModelValue\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { getItemByValue } from '@onereach/ui-components-common/helpers';\nimport { useProxyModelValue, useResponsive } from '@onereach/ui-components-common/hooks';\nimport { isNil } from '@onereach/ui-components-common/utils';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { EditorTabsItem, EditorTabsModelValue } from '@onereach/ui-components.or-tabs-v3';\nimport { useResizeObserver } from '@vueuse/core';\nimport { PropType, computed, defineComponent, nextTick, reactive, ref, toRef, watch } from 'vue';\n\nimport { OrEditorTabsItem } from './partials';\nimport { EditorTabsOverflow } from './props';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrEditorTabs',\n\n components: {\n OrEditorTabsItem,\n OrIcon,\n OrMenu,\n OrMenuItem,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<EditorTabsModelValue>,\n default: undefined,\n },\n\n items: {\n type: Array as PropType<EditorTabsItem[]>,\n required: true,\n },\n\n overflow: {\n type: String as PropType<`${EditorTabsOverflow}`>,\n default: () => EditorTabsOverflow.Scroll,\n },\n\n addButton: {\n type: Boolean,\n default: true,\n },\n\n closeButton: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'open',\n 'close',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n const { isDesktop, isMobile } = useResponsive();\n\n // Refs\n const root = ref<HTMLElement>();\n const headerTabs = ref<HTMLElement>();\n const editorTabsItems = ref<InstanceType<typeof OrEditorTabsItem>[]>();\n const desktopOverflowTrigger = ref<InstanceType<typeof OrEditorTabsItem>>();\n const desktopOverflowTriggerRoot = computed(() => desktopOverflowTrigger.value?.root);\n\n const desktopOverflowMenu = ref<InstanceType<typeof OrMenu>>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-editor-tabs-v3',\n ...Styles.EditorTabs,\n ]);\n\n const headerStyles = computed(() => [\n ...Styles.EditorTabsHeader,\n ]);\n\n const headerTabsStyles = computed(() => [\n ...Styles.EditorTabsHeaderTabs,\n ...Styles.EditorTabsHeaderTabsOverflows[props.overflow],\n ]);\n\n const contentStyles = computed(() => [\n ...Styles.EditorTabsContent,\n ]);\n\n const addButtonStyles = computed(() => [\n ...Styles.EditorTabsAddButton,\n ...(props.overflow === EditorTabsOverflow.Menu || props.overflow === EditorTabsOverflow.Squeeze\n ? ['md:grow-0', 'shrink-0']\n : []),\n ]);\n\n const desktopTabStyles = computed(() => {\n return props.overflow === EditorTabsOverflow.Squeeze\n ? ['basis-0', 'grow', 'min-w-0', '!max-w-none']\n : [];\n });\n\n const desktopOverflowTriggerStyles = computed(() => [\n 'or-editor-tabs-overflow-trigger-v3',\n 'shrink-0',\n ]);\n\n // State\n const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const menuTabs = reactive({\n visible: [] as EditorTabsItem[],\n hidden: [] as EditorTabsItem[],\n });\n const isSyncingMenuTabs = ref(false);\n\n const isMenuOverflow = computed(() => props.overflow === EditorTabsOverflow.Menu && isDesktop.value);\n\n const selectedItem = computed(() => {\n return !isNil(proxyModelValue.value) ? getItemByValue(proxyModelValue.value, props.items) : undefined;\n });\n\n watch(selectedItem, (value) => {\n if (value && props.overflow === EditorTabsOverflow.Scroll) {\n (editorTabsItems.value?.[props.items.indexOf(value)]?.root as HTMLElement | undefined)?.scrollIntoView({ block: 'nearest' });\n }\n }, { flush: 'post' });\n\n const overflowItems = computed(() => {\n return props.items.filter((item) => item.value !== proxyModelValue.value);\n });\n\n const desktopVisibleItems = computed(() => {\n return isMenuOverflow.value ? menuTabs.visible : props.items;\n });\n\n const desktopOverflowItems = computed(() => {\n return isMenuOverflow.value ? menuTabs.hidden : [];\n });\n\n const showStandaloneAddButton = computed(() => {\n return props.addButton && isMobile.value;\n });\n\n const showOverflowMenu = ref(false);\n\n // Methods\n function open(): void {\n context.emit('open');\n }\n\n function close(item: EditorTabsItem): void {\n if (item.value === proxyModelValue.value) {\n const index = props.items.indexOf(item);\n\n if (index !== -1) {\n const nextItem = props.items[index + 1];\n const previousItem = props.items[index - 1];\n\n proxyModelValue.value = nextItem?.value || previousItem?.value;\n }\n }\n\n context.emit('close', item);\n }\n\n function rearrangeMenuTabs(items: EditorTabsItem[], activeItem?: EditorTabsItem): typeof menuTabs {\n const rootElement = headerTabs.value;\n\n if (!rootElement) {\n return {\n visible: [...items],\n hidden: [],\n };\n }\n\n const tabElements = [...rootElement.children].filter((element) => {\n return !(element as HTMLElement).classList.contains('or-editor-tabs-overflow-trigger-v3');\n }) as HTMLElement[];\n\n const widthByValue = new Map(items.map((item, index) => {\n return [item.value, tabElements[index]?.clientWidth ?? 0];\n }));\n\n const nextVisibleItems = [...items];\n const nextHiddenItems: EditorTabsItem[] = [];\n\n let visibleWidth = nextVisibleItems.reduce((width, item) => {\n return width + (widthByValue.get(item.value) ?? 0);\n }, 0);\n\n const reserveOverflowTriggerWidth = (): number => {\n return (desktopOverflowTrigger.value?.root as HTMLElement | undefined)?.clientWidth ?? 72;\n };\n\n const hideItem = (index = nextVisibleItems.length - 1): void => {\n if (index < 0) {\n return;\n }\n\n const [item] = nextVisibleItems.splice(index, 1);\n\n if (!item) {\n return;\n }\n\n nextHiddenItems.unshift(item);\n visibleWidth -= widthByValue.get(item.value) ?? 0;\n };\n\n const normalizeItems = (): void => {\n const visibleValues = new Set(nextVisibleItems.map((item) => item.value));\n\n nextVisibleItems.splice(0, nextVisibleItems.length, ...items.filter((item) => visibleValues.has(item.value)));\n nextHiddenItems.splice(0, nextHiddenItems.length, ...items.filter((item) => !visibleValues.has(item.value)));\n };\n\n while (visibleWidth > rootElement.clientWidth && nextVisibleItems.length > 0) {\n hideItem();\n }\n\n while (\n nextHiddenItems.length > 0\n && visibleWidth + reserveOverflowTriggerWidth() > rootElement.clientWidth\n && nextVisibleItems.length > 0\n ) {\n hideItem();\n }\n\n if (activeItem && nextHiddenItems.some((item) => item.value === activeItem.value)) {\n const activeHiddenIndex = nextHiddenItems.findIndex((item) => item.value === activeItem.value);\n const [nextActiveItem] = nextHiddenItems.splice(activeHiddenIndex, 1);\n\n hideItem(Math.max(nextVisibleItems.length - 1, 0));\n\n if (nextActiveItem) {\n nextVisibleItems.push(nextActiveItem);\n visibleWidth += widthByValue.get(nextActiveItem.value) ?? 0;\n }\n\n while (\n nextHiddenItems.length > 0\n && visibleWidth + reserveOverflowTriggerWidth() > rootElement.clientWidth\n && nextVisibleItems.length > 1\n ) {\n const activeVisibleIndex = nextVisibleItems.findIndex((item) => item.value === activeItem.value);\n const hideIndex = activeVisibleIndex === nextVisibleItems.length - 1\n ? nextVisibleItems.length - 2\n : nextVisibleItems.length - 1;\n\n hideItem(hideIndex);\n }\n }\n\n normalizeItems();\n\n while (nextHiddenItems.length > 0) {\n const nextItem = nextHiddenItems[0];\n const nextItemWidth = widthByValue.get(nextItem.value) ?? 0;\n\n if (visibleWidth + nextItemWidth + reserveOverflowTriggerWidth() > rootElement.clientWidth) {\n break;\n }\n\n nextVisibleItems.push(nextItem);\n nextHiddenItems.shift();\n visibleWidth += nextItemWidth;\n }\n\n return {\n visible: nextVisibleItems,\n hidden: nextHiddenItems,\n };\n }\n\n function syncMenuTabs(): void {\n if (!isMenuOverflow.value) {\n menuTabs.visible = [...props.items];\n menuTabs.hidden = [];\n return;\n }\n\n if (isSyncingMenuTabs.value) {\n return;\n }\n\n isSyncingMenuTabs.value = true;\n menuTabs.visible = [...props.items];\n menuTabs.hidden = [];\n\n nextTick(() => {\n Object.assign(menuTabs, rearrangeMenuTabs(props.items, selectedItem.value));\n isSyncingMenuTabs.value = false;\n });\n }\n\n // Effects\n watch(() => props.items, (items) => {\n if (items.length === 1) {\n proxyModelValue.value = items[0].value;\n }\n }, { immediate: true });\n\n watch([\n () => props.items,\n () => props.overflow,\n isDesktop,\n selectedItem,\n ], () => {\n syncMenuTabs();\n }, { immediate: true });\n\n useResizeObserver(headerTabs, () => {\n syncMenuTabs();\n });\n\n return {\n root,\n headerTabs,\n editorTabsItems,\n desktopOverflowTrigger,\n desktopOverflowTriggerRoot,\n desktopOverflowMenu,\n\n rootStyles,\n headerStyles,\n headerTabsStyles,\n contentStyles,\n addButtonStyles,\n desktopTabStyles,\n desktopOverflowTriggerStyles,\n\n proxyModelValue,\n selectedItem,\n overflowItems,\n desktopVisibleItems,\n desktopOverflowItems,\n showStandaloneAddButton,\n showOverflowMenu,\n isMenuOverflow,\n\n open,\n close,\n\n isDesktop,\n isMobile,\n };\n },\n});\n</script>\n"],"names":["EditorTabsItem","_sfc_main$1","defineComponent","OrIconButton","root","ref","rootStyles","computed","isVue2","_hoisted_1","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_cache","$event","_renderSlot","_Fragment","_hoisted_2","_component_OrIconButton","EditorTabsOverflow","EditorTabs","EditorTabsHeader","EditorTabsAddButton","EditorTabsHeaderTabs","EditorTabsHeaderTabsOverflows","EditorTabsContent","_sfc_main","OrEditorTabsItem","OrIcon","OrMenu","OrMenuItem","props","context","isDesktop","isMobile","useResponsive","headerTabs","editorTabsItems","desktopOverflowTrigger","desktopOverflowTriggerRoot","_a","desktopOverflowMenu","Styles.EditorTabs","headerStyles","Styles.EditorTabsHeader","headerTabsStyles","Styles.EditorTabsHeaderTabs","Styles.EditorTabsHeaderTabsOverflows","contentStyles","Styles.EditorTabsContent","addButtonStyles","Styles.EditorTabsAddButton","desktopTabStyles","desktopOverflowTriggerStyles","proxyModelValue","useProxyModelValue","toRef","menuTabs","reactive","isSyncingMenuTabs","isMenuOverflow","selectedItem","isNil","getItemByValue","watch","value","_c","_b","overflowItems","item","desktopVisibleItems","desktopOverflowItems","showStandaloneAddButton","showOverflowMenu","open","close","index","nextItem","previousItem","rearrangeMenuTabs","items","activeItem","rootElement","tabElements","element","widthByValue","nextVisibleItems","nextHiddenItems","visibleWidth","width","reserveOverflowTriggerWidth","hideItem","normalizeItems","visibleValues","activeHiddenIndex","nextActiveItem","hideIndex","nextItemWidth","syncMenuTabs","nextTick","useResizeObserver","_renderList","_createBlock","_component_OrEditorTabsItem","_withCtx","_createVNode","_component_OrIcon","_createCommentVNode","_createTextVNode","_toDisplayString","_component_OrMenu","_component_OrMenuItem","_createElementVNode","_hoisted_5"],"mappings":"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"}
|