@oiij/chrome-tabs 0.0.13 → 0.0.14
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/TabItem.js +90 -0
- package/dist/Tabs.js +131 -0
- package/dist/Tabs.vue.d.ts +57 -60
- package/dist/_virtual/_/plugin-vue/export-helper.js +9 -0
- package/dist/cssr.js +152 -0
- package/dist/icons/LineMdLoadingTwotoneLoop.js +18 -0
- package/dist/icons/RiAddLine.js +21 -0
- package/dist/icons/RiArrowDropDownLine.js +21 -0
- package/dist/icons/RiCloseLine.js +21 -0
- package/dist/index.d.ts +39 -35
- package/dist/index.js +2 -1173
- package/package.json +7 -7
- package/dist/TabItem.vue.d.ts +0 -11
- package/dist/cssr.d.ts +0 -4
- package/dist/index.cjs +0 -14
- package/dist/index.umd.cjs +0 -14
package/dist/TabItem.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { tabsItemCssName } from "./cssr.js";
|
|
2
|
+
import LineMdLoadingTwotoneLoop_default from "./icons/LineMdLoadingTwotoneLoop.js";
|
|
3
|
+
import RiCloseLine_default from "./icons/RiCloseLine.js";
|
|
4
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, h, normalizeClass, normalizeStyle, openBlock, resolveDynamicComponent, unref, withModifiers } from "vue";
|
|
5
|
+
|
|
6
|
+
//#region src/TabItem.vue
|
|
7
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
8
|
+
__name: "TabItem",
|
|
9
|
+
props: {
|
|
10
|
+
label: { type: [String, Function] },
|
|
11
|
+
icon: { type: Function },
|
|
12
|
+
closable: { type: [Boolean, Function] },
|
|
13
|
+
disabled: { type: [Boolean, Function] },
|
|
14
|
+
loading: { type: [Boolean, Function] },
|
|
15
|
+
loadingIcon: { type: Function },
|
|
16
|
+
onClick: { type: Function },
|
|
17
|
+
onContextMenu: { type: Function },
|
|
18
|
+
onClose: { type: Function },
|
|
19
|
+
class: {},
|
|
20
|
+
style: {},
|
|
21
|
+
activeIndex: { default: 0 },
|
|
22
|
+
itemIndex: {},
|
|
23
|
+
itemKey: {},
|
|
24
|
+
iconSize: { default: 20 }
|
|
25
|
+
},
|
|
26
|
+
emits: [
|
|
27
|
+
"itemClick",
|
|
28
|
+
"itemContextmenu",
|
|
29
|
+
"itemClose"
|
|
30
|
+
],
|
|
31
|
+
setup(__props, { emit: __emit }) {
|
|
32
|
+
const emit = __emit;
|
|
33
|
+
const showLine = computed(() => __props.activeIndex !== __props.itemIndex && __props.activeIndex - 1 !== __props.itemIndex);
|
|
34
|
+
const active = computed(() => __props.activeIndex === __props.itemIndex);
|
|
35
|
+
const defaultContent = computed(() => typeof __props.label === "string" ? h("span", { class: `${tabsItemCssName}__label` }, __props.label) : __props.label(__props.itemKey, __props.itemIndex));
|
|
36
|
+
const defaultLoadingIcon = computed(() => __props.loadingIcon?.(__props.itemKey, __props.itemIndex) ?? h(LineMdLoadingTwotoneLoop_default));
|
|
37
|
+
function handleClick(ev) {
|
|
38
|
+
ev.stopPropagation();
|
|
39
|
+
emit("itemClick", ev);
|
|
40
|
+
__props.onClick?.(__props.itemKey, __props.itemIndex, ev);
|
|
41
|
+
}
|
|
42
|
+
function handleContextMenu(ev) {
|
|
43
|
+
emit("itemContextmenu", ev);
|
|
44
|
+
__props.onContextMenu?.(__props.itemKey, __props.itemIndex, ev);
|
|
45
|
+
}
|
|
46
|
+
function handleClose(ev) {
|
|
47
|
+
emit("itemClose");
|
|
48
|
+
__props.onClose?.(__props.itemKey, __props.itemIndex, ev);
|
|
49
|
+
}
|
|
50
|
+
return (_ctx, _cache) => {
|
|
51
|
+
return openBlock(), createElementBlock("div", {
|
|
52
|
+
class: normalizeClass([unref(tabsItemCssName), {
|
|
53
|
+
[`${unref(tabsItemCssName)}--active`]: active.value,
|
|
54
|
+
[`${unref(tabsItemCssName)}--disabled`]: typeof __props.disabled === "function" ? __props.disabled(__props.itemKey, __props.itemIndex) : __props.disabled
|
|
55
|
+
}]),
|
|
56
|
+
onClick: handleClick,
|
|
57
|
+
onContextmenu: handleContextMenu
|
|
58
|
+
}, [
|
|
59
|
+
createElementVNode("div", { class: normalizeClass([`${unref(tabsItemCssName)}__content`]) }, [
|
|
60
|
+
createElementVNode("div", {
|
|
61
|
+
class: normalizeClass([`${unref(tabsItemCssName)}__icon`]),
|
|
62
|
+
style: normalizeStyle({ fontSize: `${__props.iconSize}px` })
|
|
63
|
+
}, [(openBlock(), createBlock(resolveDynamicComponent(typeof __props.loading === "function" ? __props.loading(__props.itemKey, __props.itemIndex) : __props.loading ? defaultLoadingIcon.value : __props.icon?.(__props.itemKey, __props.itemIndex) ?? void 0)))], 6),
|
|
64
|
+
createElementVNode("div", { class: normalizeClass([`${unref(tabsItemCssName)}__slot`]) }, [(openBlock(), createBlock(resolveDynamicComponent(defaultContent.value)))], 2),
|
|
65
|
+
(typeof __props.closable === "function" ? __props.closable(__props.itemKey, __props.itemIndex) : __props.closable) ? (openBlock(), createElementBlock("div", {
|
|
66
|
+
key: 0,
|
|
67
|
+
class: normalizeClass([`${unref(tabsItemCssName)}__close`]),
|
|
68
|
+
onClick: withModifiers(handleClose, ["stop"])
|
|
69
|
+
}, [createVNode(RiCloseLine_default)], 2)) : createCommentVNode("v-if", true)
|
|
70
|
+
], 2),
|
|
71
|
+
createElementVNode("div", { class: normalizeClass([`${unref(tabsItemCssName)}__background`]) }, [
|
|
72
|
+
_cache[0] || (_cache[0] = createElementVNode("svg", {
|
|
73
|
+
width: "10",
|
|
74
|
+
height: "10"
|
|
75
|
+
}, [createElementVNode("path", { d: "M 0 10 A 10 10 0 0 0 10 0 L 10 10 Z" })], -1)),
|
|
76
|
+
createElementVNode("div", { class: normalizeClass([`${unref(tabsItemCssName)}__block`]) }, null, 2),
|
|
77
|
+
_cache[1] || (_cache[1] = createElementVNode("svg", {
|
|
78
|
+
width: "10",
|
|
79
|
+
height: "10"
|
|
80
|
+
}, [createElementVNode("path", { d: "M 0 0 A 10 10 0 0 0 10 10 L 0 10 Z" })], -1))
|
|
81
|
+
], 2),
|
|
82
|
+
createElementVNode("div", { class: normalizeClass([`${unref(tabsItemCssName)}__line`, showLine.value ? `${unref(tabsItemCssName)}__line--show` : ""]) }, null, 2)
|
|
83
|
+
], 34);
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
var TabItem_default = _sfc_main;
|
|
88
|
+
|
|
89
|
+
//#endregion
|
|
90
|
+
export { TabItem_default as default };
|
package/dist/Tabs.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { tabsCssName, tabsCssr, tabsItemCssName } from "./cssr.js";
|
|
2
|
+
import RiAddLine_default from "./icons/RiAddLine.js";
|
|
3
|
+
import RiArrowDropDownLine_default from "./icons/RiArrowDropDownLine.js";
|
|
4
|
+
import TabItem_default from "./TabItem.js";
|
|
5
|
+
import { Fragment, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeStyle, openBlock, renderList, renderSlot, unref, useTemplateRef, watch, withCtx } from "vue";
|
|
6
|
+
import { useStyle } from "@oiij/css-render";
|
|
7
|
+
import { useScrollView } from "@oiij/use";
|
|
8
|
+
import { colord } from "colord";
|
|
9
|
+
|
|
10
|
+
//#region src/Tabs.vue
|
|
11
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
12
|
+
__name: "Tabs",
|
|
13
|
+
props: {
|
|
14
|
+
value: {},
|
|
15
|
+
colors: {},
|
|
16
|
+
dropdown: { type: Boolean },
|
|
17
|
+
addable: { type: Boolean },
|
|
18
|
+
options: {},
|
|
19
|
+
loadingValue: {},
|
|
20
|
+
iconSize: {},
|
|
21
|
+
contentClass: {},
|
|
22
|
+
contentStyle: {}
|
|
23
|
+
},
|
|
24
|
+
emits: [
|
|
25
|
+
"update:value",
|
|
26
|
+
"click",
|
|
27
|
+
"contextmenu",
|
|
28
|
+
"close",
|
|
29
|
+
"add"
|
|
30
|
+
],
|
|
31
|
+
setup(__props, { emit: __emit }) {
|
|
32
|
+
const emit = __emit;
|
|
33
|
+
useStyle("n-chrome-tabs", tabsCssr());
|
|
34
|
+
const activeIndex = computed(() => __props.value ? __props.options?.findIndex((f) => f.key === __props.value) : 0);
|
|
35
|
+
const { scrollToView } = useScrollView(useTemplateRef("scroll-ref"), {
|
|
36
|
+
activeClassName: `.${tabsItemCssName}--active`,
|
|
37
|
+
direction: "horizontal"
|
|
38
|
+
});
|
|
39
|
+
watch(() => __props.value, () => {
|
|
40
|
+
scrollToView();
|
|
41
|
+
}, { immediate: true });
|
|
42
|
+
const lightColors = computed(() => {
|
|
43
|
+
return {
|
|
44
|
+
background: "#F1F1F1",
|
|
45
|
+
active: "#fff",
|
|
46
|
+
primary: "rgba(0,0,0,.1)",
|
|
47
|
+
...__props.colors
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
const darkColors = computed(() => {
|
|
51
|
+
return {
|
|
52
|
+
background: colord(lightColors.value.background).darken(.8).toHex(),
|
|
53
|
+
active: colord(lightColors.value.active).darken(.8).toHex(),
|
|
54
|
+
primary: colord(lightColors.value.primary).darken(.3).toHex()
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
function onItemClick(key, index) {
|
|
58
|
+
emit("update:value", key);
|
|
59
|
+
emit("click", key, index);
|
|
60
|
+
}
|
|
61
|
+
function onItemContextMenu(key, index) {
|
|
62
|
+
emit("contextmenu", key, index);
|
|
63
|
+
}
|
|
64
|
+
function onItemClose(key, index) {
|
|
65
|
+
emit("close", key, index);
|
|
66
|
+
}
|
|
67
|
+
return (_ctx, _cache) => {
|
|
68
|
+
return openBlock(), createElementBlock("div", {
|
|
69
|
+
class: normalizeClass([unref(tabsCssName)]),
|
|
70
|
+
style: normalizeStyle({
|
|
71
|
+
"--background-color": `${lightColors.value.background}`,
|
|
72
|
+
"--background-color-dark": `${darkColors.value.background}`,
|
|
73
|
+
"--active-background-color": `${lightColors.value.active}`,
|
|
74
|
+
"--active-background-color-dark": `${darkColors.value.active}`,
|
|
75
|
+
"--primary-color": `${lightColors.value.primary}`,
|
|
76
|
+
"--primary-color-dark": `${darkColors.value.primary}`
|
|
77
|
+
})
|
|
78
|
+
}, [
|
|
79
|
+
__props.dropdown ? (openBlock(), createElementBlock("div", {
|
|
80
|
+
key: 0,
|
|
81
|
+
class: normalizeClass([`${unref(tabsCssName)}__icon`])
|
|
82
|
+
}, [createVNode(RiArrowDropDownLine_default)], 2)) : createCommentVNode("v-if", true),
|
|
83
|
+
renderSlot(_ctx.$slots, "prefix"),
|
|
84
|
+
createElementVNode("div", {
|
|
85
|
+
ref: "scroll-ref",
|
|
86
|
+
class: normalizeClass([`${unref(tabsCssName)}__content`, __props.contentClass]),
|
|
87
|
+
style: normalizeStyle(__props.contentStyle)
|
|
88
|
+
}, [createVNode(TransitionGroup, {
|
|
89
|
+
name: "group",
|
|
90
|
+
tag: "div",
|
|
91
|
+
class: normalizeClass([`${unref(tabsCssName)}__scroll`])
|
|
92
|
+
}, {
|
|
93
|
+
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, ({ key, ...item }, index) => {
|
|
94
|
+
return openBlock(), createBlock(TabItem_default, mergeProps({
|
|
95
|
+
key,
|
|
96
|
+
loading: __props.loadingValue === key
|
|
97
|
+
}, { ref_for: true }, item, {
|
|
98
|
+
"item-key": key,
|
|
99
|
+
"item-index": index,
|
|
100
|
+
"active-index": activeIndex.value,
|
|
101
|
+
"icon-size": __props.iconSize,
|
|
102
|
+
onItemClick: ($event) => onItemClick(key, index),
|
|
103
|
+
onItemContextmenu: ($event) => onItemContextMenu(key, index),
|
|
104
|
+
onItemClose: ($event) => onItemClose(key, index)
|
|
105
|
+
}), null, 16, [
|
|
106
|
+
"loading",
|
|
107
|
+
"item-key",
|
|
108
|
+
"item-index",
|
|
109
|
+
"active-index",
|
|
110
|
+
"icon-size",
|
|
111
|
+
"onItemClick",
|
|
112
|
+
"onItemContextmenu",
|
|
113
|
+
"onItemClose"
|
|
114
|
+
]);
|
|
115
|
+
}), 128))]),
|
|
116
|
+
_: 1
|
|
117
|
+
}, 8, ["class"])], 6),
|
|
118
|
+
renderSlot(_ctx.$slots, "suffix"),
|
|
119
|
+
__props.addable ? (openBlock(), createElementBlock("div", {
|
|
120
|
+
key: 1,
|
|
121
|
+
class: normalizeClass([`${unref(tabsCssName)}__icon`]),
|
|
122
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("add"))
|
|
123
|
+
}, [createVNode(RiAddLine_default)], 2)) : createCommentVNode("v-if", true)
|
|
124
|
+
], 6);
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
var Tabs_default = _sfc_main;
|
|
129
|
+
|
|
130
|
+
//#endregion
|
|
131
|
+
export { Tabs_default as default };
|
package/dist/Tabs.vue.d.ts
CHANGED
|
@@ -1,63 +1,60 @@
|
|
|
1
|
-
import { TabItemKey } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
rootEl: HTMLDivElement;
|
|
1
|
+
import { TabItemKey, TabsOption } from "./index.js";
|
|
2
|
+
import * as vue0 from "vue";
|
|
3
|
+
|
|
4
|
+
//#region src/Tabs.vue.d.ts
|
|
5
|
+
declare var __VLS_6: {}, __VLS_23: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
prefix?: (props: typeof __VLS_6) => any;
|
|
8
|
+
} & {
|
|
9
|
+
suffix?: (props: typeof __VLS_23) => any;
|
|
12
10
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
contentStyle?: import('vue').CSSProperties | string;
|
|
11
|
+
declare const __VLS_base: vue0.DefineComponent<{
|
|
12
|
+
value?: TabItemKey;
|
|
13
|
+
colors?: {
|
|
14
|
+
active?: string;
|
|
15
|
+
primary?: string;
|
|
16
|
+
background?: string;
|
|
17
|
+
};
|
|
18
|
+
dropdown?: boolean;
|
|
19
|
+
addable?: boolean;
|
|
20
|
+
options?: TabsOption[];
|
|
21
|
+
loadingValue?: TabItemKey;
|
|
22
|
+
iconSize?: number;
|
|
23
|
+
contentClass?: string;
|
|
24
|
+
contentStyle?: vue0.CSSProperties | string;
|
|
25
|
+
}, {}, {}, {}, {}, vue0.ComponentOptionsMixin, vue0.ComponentOptionsMixin, {} & {
|
|
26
|
+
click: (v: TabItemKey, index: number) => any;
|
|
27
|
+
close: (v: TabItemKey, index: number) => any;
|
|
28
|
+
contextmenu: (v: TabItemKey, index: number) => any;
|
|
29
|
+
"update:value": (v?: TabItemKey | null | undefined) => any;
|
|
30
|
+
add: () => any;
|
|
31
|
+
}, string, vue0.PublicProps, Readonly<{
|
|
32
|
+
value?: TabItemKey;
|
|
33
|
+
colors?: {
|
|
34
|
+
active?: string;
|
|
35
|
+
primary?: string;
|
|
36
|
+
background?: string;
|
|
37
|
+
};
|
|
38
|
+
dropdown?: boolean;
|
|
39
|
+
addable?: boolean;
|
|
40
|
+
options?: TabsOption[];
|
|
41
|
+
loadingValue?: TabItemKey;
|
|
42
|
+
iconSize?: number;
|
|
43
|
+
contentClass?: string;
|
|
44
|
+
contentStyle?: vue0.CSSProperties | string;
|
|
48
45
|
}> & Readonly<{
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}>, {}, {}, {}, {}, string,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
$slots: S;
|
|
62
|
-
};
|
|
46
|
+
onClick?: ((v: TabItemKey, index: number) => any) | undefined;
|
|
47
|
+
onClose?: ((v: TabItemKey, index: number) => any) | undefined;
|
|
48
|
+
onContextmenu?: ((v: TabItemKey, index: number) => any) | undefined;
|
|
49
|
+
"onUpdate:value"?: ((v?: TabItemKey | null | undefined) => any) | undefined;
|
|
50
|
+
onAdd?: (() => any) | undefined;
|
|
51
|
+
}>, {}, {}, {}, {}, string, vue0.ComponentProvideOptions, false, {}, any>;
|
|
52
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
53
|
+
declare const _default: typeof __VLS_export;
|
|
54
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
55
|
+
new (): {
|
|
56
|
+
$slots: S;
|
|
57
|
+
};
|
|
63
58
|
};
|
|
59
|
+
//#endregion
|
|
60
|
+
export { _default };
|
package/dist/cssr.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { useBem } from "@oiij/css-render";
|
|
2
|
+
|
|
3
|
+
//#region src/cssr.ts
|
|
4
|
+
const { cssr, plugin, namespace } = useBem();
|
|
5
|
+
const { c, cB, cE, cM, cNotM } = {
|
|
6
|
+
...cssr,
|
|
7
|
+
...plugin
|
|
8
|
+
};
|
|
9
|
+
const tabsCssName = `${namespace}-chrome-tabs`;
|
|
10
|
+
const tabsItemCssName = `${namespace}-chrome-tabs-item`;
|
|
11
|
+
const transition = "all .2s cubic-bezier(.4, 0, .2, 1)";
|
|
12
|
+
function tabsCssr() {
|
|
13
|
+
return c([
|
|
14
|
+
cB("chrome-tabs", {
|
|
15
|
+
display: "flex",
|
|
16
|
+
width: "100%",
|
|
17
|
+
height: "40px",
|
|
18
|
+
padding: "0 10px",
|
|
19
|
+
alignItems: "center",
|
|
20
|
+
backgroundColor: "var(--background-color)",
|
|
21
|
+
color: "var(--background-color-dark)"
|
|
22
|
+
}, [
|
|
23
|
+
c("div", { boxSizing: "border-box" }),
|
|
24
|
+
c(".group-move, .group-enter-active, .group-leave-active", { transition }),
|
|
25
|
+
c(".group-enter-from, .group-leave-to", { opacity: 0 }),
|
|
26
|
+
c(".group-leave-active", {}),
|
|
27
|
+
cE("prefix", {}),
|
|
28
|
+
cE("icon", {
|
|
29
|
+
width: "28px",
|
|
30
|
+
height: "28px",
|
|
31
|
+
display: "flex",
|
|
32
|
+
alignItems: "center",
|
|
33
|
+
justifyContent: "center",
|
|
34
|
+
padding: "5px",
|
|
35
|
+
borderRadius: "10px",
|
|
36
|
+
backgroundColor: "var(--active-background-color)",
|
|
37
|
+
transition
|
|
38
|
+
}, [c("svg", {
|
|
39
|
+
width: "100%",
|
|
40
|
+
height: "100%",
|
|
41
|
+
fill: "currentColor"
|
|
42
|
+
}), c("&:hover", { backgroundColor: "var(--primary-color)" })]),
|
|
43
|
+
cE("content", {
|
|
44
|
+
flex: "1",
|
|
45
|
+
height: "100%",
|
|
46
|
+
minWidth: 0,
|
|
47
|
+
overflow: "hidden",
|
|
48
|
+
marginLeft: "-6px",
|
|
49
|
+
padding: "0 10px"
|
|
50
|
+
}),
|
|
51
|
+
cE("scroll", {
|
|
52
|
+
position: "relative",
|
|
53
|
+
display: "flex",
|
|
54
|
+
alignItems: "center",
|
|
55
|
+
height: "100%"
|
|
56
|
+
}, [cE("icon", {
|
|
57
|
+
marginLeft: "5px",
|
|
58
|
+
borderRadius: "50%",
|
|
59
|
+
backgroundColor: "transparent",
|
|
60
|
+
flexShrink: 0
|
|
61
|
+
}, [c("&:hover", { backgroundColor: "var(--primary-color)" })])]),
|
|
62
|
+
cE("suffix", {})
|
|
63
|
+
]),
|
|
64
|
+
cB("chrome-tabs-item", {
|
|
65
|
+
position: "relative",
|
|
66
|
+
margin: "0 -5px",
|
|
67
|
+
height: "100%",
|
|
68
|
+
flexShrink: 0,
|
|
69
|
+
cursor: "default",
|
|
70
|
+
userSelect: "none",
|
|
71
|
+
padding: "6px 15px 0px 15px"
|
|
72
|
+
}, [
|
|
73
|
+
cM("disabled", {
|
|
74
|
+
cursor: "not-allowed",
|
|
75
|
+
pointerEvents: "none",
|
|
76
|
+
opacity: .5,
|
|
77
|
+
filter: "grayscale(0.5)"
|
|
78
|
+
}),
|
|
79
|
+
cM("active", [cE("background", { opacity: 1 })]),
|
|
80
|
+
cNotM("active", [c("&:hover", {}, [cE("content", { backgroundColor: "var(--primary-color)" })])]),
|
|
81
|
+
c("&::first-child", { marginLeft: "0 !important" }),
|
|
82
|
+
c("&::last-child", { marginRight: "0 !important" }),
|
|
83
|
+
cE("content", {
|
|
84
|
+
position: "relative",
|
|
85
|
+
zIndex: 1,
|
|
86
|
+
height: "28px",
|
|
87
|
+
display: "flex",
|
|
88
|
+
alignItems: "center",
|
|
89
|
+
gap: "5px",
|
|
90
|
+
borderRadius: "10px",
|
|
91
|
+
padding: "0 10px",
|
|
92
|
+
transition
|
|
93
|
+
}),
|
|
94
|
+
cE("slot", {}),
|
|
95
|
+
cE("icon", { lineHeight: 1 }, [c("svg", {
|
|
96
|
+
width: "1.2em",
|
|
97
|
+
height: "1.2em",
|
|
98
|
+
fill: "currentColor"
|
|
99
|
+
})]),
|
|
100
|
+
cE("close", {
|
|
101
|
+
width: "16px",
|
|
102
|
+
height: "16px",
|
|
103
|
+
padding: "2px",
|
|
104
|
+
display: "flex",
|
|
105
|
+
alignItems: "center",
|
|
106
|
+
justifyContent: "center",
|
|
107
|
+
borderRadius: "50%",
|
|
108
|
+
transition
|
|
109
|
+
}, [c("&:hover", { backgroundColor: "rgba(0,0,0,0.1)" }), c("svg", {
|
|
110
|
+
width: "100%",
|
|
111
|
+
height: "100%",
|
|
112
|
+
fill: "currentColor"
|
|
113
|
+
})]),
|
|
114
|
+
cE("background", {
|
|
115
|
+
position: "absolute",
|
|
116
|
+
opacity: 0,
|
|
117
|
+
left: 0,
|
|
118
|
+
bottom: 0,
|
|
119
|
+
zIndex: 0,
|
|
120
|
+
height: "34px",
|
|
121
|
+
width: "100%",
|
|
122
|
+
display: "flex",
|
|
123
|
+
alignItems: "flex-end",
|
|
124
|
+
transition
|
|
125
|
+
}, [cE("block", {
|
|
126
|
+
height: "100%",
|
|
127
|
+
flex: 1,
|
|
128
|
+
minWidth: 0,
|
|
129
|
+
borderRadius: "10px 10px 0 0",
|
|
130
|
+
backgroundColor: "var(--active-background-color)"
|
|
131
|
+
}), c("svg", { fill: "var(--active-background-color)" })]),
|
|
132
|
+
cE("line", {
|
|
133
|
+
position: "absolute",
|
|
134
|
+
bottom: "12px",
|
|
135
|
+
right: "4px",
|
|
136
|
+
height: "16px",
|
|
137
|
+
width: "2px",
|
|
138
|
+
borderRadius: "1px",
|
|
139
|
+
transition,
|
|
140
|
+
backgroundColor: "var(--primary-color)",
|
|
141
|
+
opacity: 0
|
|
142
|
+
}, [cM("show", { opacity: 1 })])
|
|
143
|
+
]),
|
|
144
|
+
c(".dark", [cB("chrome-tabs", {
|
|
145
|
+
backgroundColor: "var(--background-color-dark)",
|
|
146
|
+
color: "var(--background-color)"
|
|
147
|
+
}, [cE("icon", { backgroundColor: "var(--active-background-color-dark)" }, [c("&:hover", { backgroundColor: "var(--primary-color-dark)" })])]), cB("chrome-tabs-item", {}, [cNotM("active", [c("&:hover", {}, [cE("content", { backgroundColor: "var(--primary-color-dark)" })])]), cE("background", {}, [cE("block", { backgroundColor: "var(--active-background-color-dark)" }), c("svg", { fill: "var(--active-background-color-dark)" })])])])
|
|
148
|
+
]);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
//#endregion
|
|
152
|
+
export { tabsCssName, tabsCssr, tabsItemCssName };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import export_helper_default from "../_virtual/_/plugin-vue/export-helper.js";
|
|
2
|
+
import { createCommentVNode, createElementBlock, createElementVNode, createStaticVNode, openBlock } from "vue";
|
|
3
|
+
|
|
4
|
+
//#region src/icons/LineMdLoadingTwotoneLoop.vue
|
|
5
|
+
const _sfc_main = { name: "LineMdLoadingTwotoneLoop" };
|
|
6
|
+
const _hoisted_1 = {
|
|
7
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
8
|
+
width: "1em",
|
|
9
|
+
height: "1em",
|
|
10
|
+
viewBox: "0 0 24 24"
|
|
11
|
+
};
|
|
12
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
13
|
+
return openBlock(), createElementBlock("svg", _hoisted_1, [createCommentVNode(" Icon from Material Line Icons by Vjacheslav Trushkin - https://github.com/cyberalien/line-md/blob/master/license.txt "), _cache[0] || (_cache[0] = createStaticVNode("<g fill=\"none\" stroke=\"#757575\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path stroke-dasharray=\"16\" stroke-dashoffset=\"16\" d=\"M12 3c4.97 0 9 4.03 9 9\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" dur=\"0.3s\" values=\"16;0\"></animate><animateTransform attributeName=\"transform\" dur=\"1.5s\" repeatCount=\"indefinite\" type=\"rotate\" values=\"0 12 12;360 12 12\"></animateTransform></path><path stroke-dasharray=\"64\" stroke-dashoffset=\"64\" stroke-opacity=\".3\" d=\"M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9Z\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" dur=\"1.2s\" values=\"64;0\"></animate></path></g>", 1))]);
|
|
14
|
+
}
|
|
15
|
+
var LineMdLoadingTwotoneLoop_default = /* @__PURE__ */ export_helper_default(_sfc_main, [["render", _sfc_render]]);
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { LineMdLoadingTwotoneLoop_default as default };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import export_helper_default from "../_virtual/_/plugin-vue/export-helper.js";
|
|
2
|
+
import { createCommentVNode, createElementBlock, createElementVNode, openBlock } from "vue";
|
|
3
|
+
|
|
4
|
+
//#region src/icons/RiAddLine.vue
|
|
5
|
+
const _sfc_main = { name: "RiAddLine" };
|
|
6
|
+
const _hoisted_1 = {
|
|
7
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
8
|
+
width: "1em",
|
|
9
|
+
height: "1em",
|
|
10
|
+
viewBox: "0 0 24 24"
|
|
11
|
+
};
|
|
12
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
13
|
+
return openBlock(), createElementBlock("svg", _hoisted_1, [createCommentVNode(" Icon from Remix Icon by Remix Design - https://github.com/Remix-Design/RemixIcon/blob/master/License "), _cache[0] || (_cache[0] = createElementVNode("path", {
|
|
14
|
+
fill: "#757575",
|
|
15
|
+
d: "M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"
|
|
16
|
+
}, null, -1))]);
|
|
17
|
+
}
|
|
18
|
+
var RiAddLine_default = /* @__PURE__ */ export_helper_default(_sfc_main, [["render", _sfc_render]]);
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { RiAddLine_default as default };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import export_helper_default from "../_virtual/_/plugin-vue/export-helper.js";
|
|
2
|
+
import { createCommentVNode, createElementBlock, createElementVNode, openBlock } from "vue";
|
|
3
|
+
|
|
4
|
+
//#region src/icons/RiArrowDropDownLine.vue
|
|
5
|
+
const _sfc_main = { name: "RiArrowDropDownLine" };
|
|
6
|
+
const _hoisted_1 = {
|
|
7
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
8
|
+
width: "1em",
|
|
9
|
+
height: "1em",
|
|
10
|
+
viewBox: "0 0 24 24"
|
|
11
|
+
};
|
|
12
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
13
|
+
return openBlock(), createElementBlock("svg", _hoisted_1, [createCommentVNode(" Icon from Remix Icon by Remix Design - https://github.com/Remix-Design/RemixIcon/blob/master/License "), _cache[0] || (_cache[0] = createElementVNode("path", {
|
|
14
|
+
fill: "#757575",
|
|
15
|
+
d: "m12 15l-4.243-4.242l1.415-1.414L12 12.172l2.828-2.828l1.415 1.414z"
|
|
16
|
+
}, null, -1))]);
|
|
17
|
+
}
|
|
18
|
+
var RiArrowDropDownLine_default = /* @__PURE__ */ export_helper_default(_sfc_main, [["render", _sfc_render]]);
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { RiArrowDropDownLine_default as default };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import export_helper_default from "../_virtual/_/plugin-vue/export-helper.js";
|
|
2
|
+
import { createCommentVNode, createElementBlock, createElementVNode, openBlock } from "vue";
|
|
3
|
+
|
|
4
|
+
//#region src/icons/RiCloseLine.vue
|
|
5
|
+
const _sfc_main = { name: "RiCloseLine" };
|
|
6
|
+
const _hoisted_1 = {
|
|
7
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
8
|
+
width: "1em",
|
|
9
|
+
height: "1em",
|
|
10
|
+
viewBox: "0 0 24 24"
|
|
11
|
+
};
|
|
12
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
13
|
+
return openBlock(), createElementBlock("svg", _hoisted_1, [createCommentVNode(" Icon from Remix Icon by Remix Design - https://github.com/Remix-Design/RemixIcon/blob/master/License "), _cache[0] || (_cache[0] = createElementVNode("path", {
|
|
14
|
+
fill: "#757575",
|
|
15
|
+
d: "m12 10.587l4.95-4.95l1.414 1.414l-4.95 4.95l4.95 4.95l-1.415 1.414l-4.95-4.95l-4.949 4.95l-1.414-1.415l4.95-4.95l-4.95-4.95L7.05 5.638z"
|
|
16
|
+
}, null, -1))]);
|
|
17
|
+
}
|
|
18
|
+
var RiCloseLine_default = /* @__PURE__ */ export_helper_default(_sfc_main, [["render", _sfc_render]]);
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { RiCloseLine_default as default };
|