@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.
@@ -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 };
@@ -1,63 +1,60 @@
1
- import { TabItemKey } from './index';
2
- declare function __VLS_template(): {
3
- attrs: Partial<{}>;
4
- slots: {
5
- prefix?(_: {}): any;
6
- suffix?(_: {}): any;
7
- };
8
- refs: {
9
- 'scroll-ref': HTMLDivElement;
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
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
14
- declare const __VLS_component: import('vue').DefineComponent<{
15
- value?: TabItemKey;
16
- colors?: {
17
- active?: string;
18
- primary?: string;
19
- background?: string;
20
- };
21
- dropdown?: boolean;
22
- addable?: boolean;
23
- options?: import('.').TabsOption[];
24
- loadingValue?: TabItemKey;
25
- iconSize?: number;
26
- contentClass?: string;
27
- contentStyle?: import('vue').CSSProperties | string;
28
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
29
- close: (v: TabItemKey, index: number) => any;
30
- click: (v: TabItemKey, index: number) => any;
31
- contextmenu: (v: TabItemKey, index: number) => any;
32
- add: () => any;
33
- "update:value": (v?: TabItemKey | null | undefined) => any;
34
- }, string, import('vue').PublicProps, Readonly<{
35
- value?: TabItemKey;
36
- colors?: {
37
- active?: string;
38
- primary?: string;
39
- background?: string;
40
- };
41
- dropdown?: boolean;
42
- addable?: boolean;
43
- options?: import('.').TabsOption[];
44
- loadingValue?: TabItemKey;
45
- iconSize?: number;
46
- contentClass?: string;
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
- onClose?: ((v: TabItemKey, index: number) => any) | undefined;
50
- onClick?: ((v: TabItemKey, index: number) => any) | undefined;
51
- onContextmenu?: ((v: TabItemKey, index: number) => any) | undefined;
52
- onAdd?: (() => any) | undefined;
53
- "onUpdate:value"?: ((v?: TabItemKey | null | undefined) => any) | undefined;
54
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
55
- 'scroll-ref': HTMLDivElement;
56
- }, HTMLDivElement>;
57
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
58
- export default _default;
59
- type __VLS_WithTemplateSlots<T, S> = T & {
60
- new (): {
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 };
@@ -0,0 +1,9 @@
1
+ //#region \0/plugin-vue/export-helper
2
+ var export_helper_default = (sfc, props) => {
3
+ const target = sfc.__vccOpts || sfc;
4
+ for (const [key, val] of props) target[key] = val;
5
+ return target;
6
+ };
7
+
8
+ //#endregion
9
+ export { export_helper_default as 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 };