vitepress-theme-teek 1.3.1 → 1.3.3
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/es/components/common/ArticlePage/src/instance.d.ts +1 -1
- package/es/components/common/Avatar/src/avatar.d.ts +1 -1
- package/es/components/common/Breadcrumb/src/namespace.d.ts +1 -1
- package/es/components/common/Message/src/message.d.ts +1 -1
- package/es/components/common/Pagination/src/components/next.d.ts +1 -1
- package/es/components/common/Pagination/src/components/prev.d.ts +1 -1
- package/es/components/common/Pagination/src/pagination.d.ts +1 -1
- package/es/components/common/Segmented/src/instance.d.ts +1 -1
- package/es/components/common/Segmented/src/segmented.d.ts +1 -1
- package/es/components/common/index.mjs +5 -5
- package/es/components/theme/ArticleOverviewPage/src/index.vue2.mjs +5 -2
- package/es/components/theme/ArticleTitle/src/index.vue.d.ts +1 -1
- package/es/components/theme/ConfigProvider/index.d.ts +1 -1
- package/es/components/theme/Layout/src/index.vue2.mjs +3 -3
- package/es/components/theme/LoginPage/src/login.d.ts +1 -1
- package/es/components/theme/RightBottomButton/src/namespace.d.ts +1 -1
- package/es/components/theme/RiskLinkPage/src/useRiskLink.d.ts +2 -2
- package/es/components/theme/RiskLinkPage/src/useRiskLink.mjs +3 -3
- package/es/components/theme/ThemeEnhance/src/LayoutSwitch.vue2.mjs +1 -0
- package/es/components/theme/ThemeEnhance/src/ThemeColor.vue2.mjs +1 -0
- package/es/components/theme/ThemeEnhance/src/components/BaseTemplate.vue.d.ts +1 -1
- package/es/components/theme/ThemeEnhance/src/components/Title.vue.d.ts +1 -1
- package/es/components/theme/ThemeEnhance/src/namespace.d.ts +1 -1
- package/es/config/interface/appreciation.d.ts +1 -1
- package/es/config/interface/articleAnalyze.d.ts +1 -1
- package/es/config/interface/articleShare.d.ts +1 -1
- package/es/config/interface/blogger.d.ts +1 -1
- package/es/config/interface/codeBlock.d.ts +1 -1
- package/es/config/interface/friendLink.d.ts +1 -1
- package/es/config/interface/notice.d.ts +1 -1
- package/es/config/interface/post.d.ts +2 -2
- package/es/config/interface/riskLink.d.ts +2 -2
- package/es/config/interface/social.d.ts +1 -1
- package/es/config/interface/themeEnhance.d.ts +12 -0
- package/es/config/types.d.ts +2 -2
- package/es/config/vitePlugins.mjs +1 -1
- package/es/hooks/cssModule/namespace.module.scss.d.ts +8 -0
- package/es/icons.d.ts +1 -0
- package/es/index.css +1 -2
- package/{lib/teek → es}/index.d.ts +7 -7
- package/es/version.d.ts +1 -0
- package/es/version.mjs +1 -1
- package/index.css +1 -1
- package/index.js +13 -9
- package/index.min.js +66 -66
- package/index.min.mjs +72 -72
- package/index.mjs +13 -9
- package/lib/components/common/ArticlePage/src/instance.d.ts +1 -1
- package/lib/components/common/Avatar/src/avatar.d.ts +1 -1
- package/lib/components/common/Breadcrumb/src/namespace.d.ts +1 -1
- package/lib/components/common/Message/src/message.d.ts +1 -1
- package/lib/components/common/Pagination/src/components/next.d.ts +1 -1
- package/lib/components/common/Pagination/src/components/prev.d.ts +1 -1
- package/lib/components/common/Pagination/src/pagination.d.ts +1 -1
- package/lib/components/common/Segmented/src/instance.d.ts +1 -1
- package/lib/components/common/Segmented/src/segmented.d.ts +1 -1
- package/lib/components/common/index.js +16 -16
- package/lib/components/theme/ArticleOverviewPage/src/index.vue2.js +4 -1
- package/lib/components/theme/ArticleTitle/src/index.vue.d.ts +1 -1
- package/lib/components/theme/ConfigProvider/index.d.ts +1 -1
- package/lib/components/theme/Layout/src/index.vue2.js +3 -3
- package/lib/components/theme/LoginPage/src/login.d.ts +1 -1
- package/lib/components/theme/RightBottomButton/src/namespace.d.ts +1 -1
- package/lib/components/theme/RiskLinkPage/src/useRiskLink.d.ts +2 -2
- package/lib/components/theme/RiskLinkPage/src/useRiskLink.js +3 -3
- package/lib/components/theme/ThemeEnhance/src/LayoutSwitch.vue2.js +1 -0
- package/lib/components/theme/ThemeEnhance/src/ThemeColor.vue2.js +1 -0
- package/lib/components/theme/ThemeEnhance/src/components/BaseTemplate.vue.d.ts +1 -1
- package/lib/components/theme/ThemeEnhance/src/components/Title.vue.d.ts +1 -1
- package/lib/components/theme/ThemeEnhance/src/namespace.d.ts +1 -1
- package/lib/config/interface/appreciation.d.ts +1 -1
- package/lib/config/interface/articleAnalyze.d.ts +1 -1
- package/lib/config/interface/articleShare.d.ts +1 -1
- package/lib/config/interface/blogger.d.ts +1 -1
- package/lib/config/interface/codeBlock.d.ts +1 -1
- package/lib/config/interface/friendLink.d.ts +1 -1
- package/lib/config/interface/notice.d.ts +1 -1
- package/lib/config/interface/post.d.ts +2 -2
- package/lib/config/interface/riskLink.d.ts +2 -2
- package/lib/config/interface/social.d.ts +1 -1
- package/lib/config/interface/themeEnhance.d.ts +12 -0
- package/lib/config/types.d.ts +2 -2
- package/lib/config/vitePlugins.js +1 -1
- package/lib/hooks/cssModule/namespace.module.scss.d.ts +8 -0
- package/lib/icons.d.ts +1 -0
- package/lib/index.css +1 -1
- package/{es/teek → lib}/index.d.ts +7 -7
- package/lib/version.d.ts +1 -0
- package/lib/version.js +1 -1
- package/package.json +3 -3
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/components/common/article-page.scss +6 -3
- package/theme-chalk/src/components/theme/article-page-style.scss +6 -0
- package/theme-chalk/src/components/theme/article-share.scss +0 -8
- package/theme-chalk/src/components/theme/footer-group.scss +8 -6
- package/theme-chalk/src/components/theme/login-page.scss +1 -1
- package/theme-chalk/src/components/theme/risk-link-page.scss +1 -1
- package/theme-chalk/src/var/theme-size.scss +1 -1
- package/theme-chalk/tk-article-page-style.css +1 -1
- package/theme-chalk/tk-article-share.css +1 -1
- package/theme-chalk/tk-base.css +1 -1
- package/theme-chalk/tk-footer-group.css +1 -1
- package/theme-chalk/tk-login-page.css +1 -1
- package/theme-chalk/tk-risk-link-page.css +1 -1
- package/es/teek/icons.d.ts +0 -1
- package/es/teek/version.d.ts +0 -1
- package/lib/teek/icons.d.ts +0 -1
- package/lib/teek/version.d.ts +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { default as ArticlePage } from './index.vue';
|
|
2
|
-
import { default as DocAsideOutlineItem } from './
|
|
2
|
+
import { default as DocAsideOutlineItem } from './components/DocAsideOutlineItem.vue';
|
|
3
3
|
export type TkArticlePageInstance = InstanceType<typeof ArticlePage>;
|
|
4
4
|
export type TkDocAsideOutlineItemInstance = InstanceType<typeof DocAsideOutlineItem>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AppContext, VNode } from 'vue';
|
|
2
|
-
import { TkIconProps } from '
|
|
2
|
+
import { TkIconProps } from '../../Icon';
|
|
3
3
|
export declare const messageTypes: readonly ["primary", "success", "info", "warning", "error"];
|
|
4
4
|
export type MessageType = (typeof messageTypes)[number];
|
|
5
5
|
export interface MessageConfigContext {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComputedRef, InjectionKey, ModelRef } from 'vue';
|
|
2
|
-
import { TkIconProps } from '
|
|
2
|
+
import { TkIconProps } from '../../Icon';
|
|
3
3
|
export interface PaginationContext {
|
|
4
4
|
currentPage?: ModelRef<number>;
|
|
5
5
|
pageCount?: ComputedRef<number>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { default as Segmented } from './
|
|
1
|
+
import { default as Segmented } from './Segmented.vue';
|
|
2
2
|
import { default as SegmentedItem } from './SegmentedItem.vue';
|
|
3
3
|
export type TkSegmentedInstance = InstanceType<typeof Segmented>;
|
|
4
4
|
export type TkSegmentedItemInstance = InstanceType<typeof SegmentedItem>;
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
+
export { createImageViewer } from './ImageViewer/index.mjs';
|
|
1
2
|
export { default as TkArticlePage } from './ArticlePage/src/index.vue2.mjs';
|
|
2
3
|
export { default as TkDocAsideOutline } from './ArticlePage/src/components/DocAsideOutline.vue2.mjs';
|
|
3
4
|
export { default as TkAvatar } from './Avatar/src/index.vue2.mjs';
|
|
4
5
|
export { default as TkBreadcrumb } from './Breadcrumb/src/Breadcrumb.vue2.mjs';
|
|
5
6
|
export { default as TkBreadcrumbItem } from './Breadcrumb/src/BreadcrumbItem.vue2.mjs';
|
|
6
|
-
export { default as TkFocusTrap } from './FocusTrap/src/index.vue.mjs';
|
|
7
7
|
export { default as TkIcon } from './Icon/src/index.vue2.mjs';
|
|
8
|
-
export {
|
|
9
|
-
export { createImageViewer } from './ImageViewer/index.mjs';
|
|
8
|
+
export { default as TkImageViewer } from './ImageViewer/src/index.vue2.mjs';
|
|
10
9
|
export { default as TkInputSlide } from './InputSlide/src/index.vue2.mjs';
|
|
11
10
|
export { default as TkMessage } from './Message/src/method.mjs';
|
|
12
|
-
export { getInstance, getLastOffset, getOffsetOrSpace, instances } from './Message/src/instance.mjs';
|
|
13
11
|
export { default as TkPagination } from './Pagination/src/index.vue2.mjs';
|
|
14
12
|
export { default as TkPopover } from './Popover/src/index.vue2.mjs';
|
|
15
13
|
export { default as TkSegmented } from './Segmented/src/Segmented.vue2.mjs';
|
|
@@ -18,4 +16,6 @@ export { default as TkTitleTag } from './TitleTag/src/index.vue2.mjs';
|
|
|
18
16
|
export { default as TkTransitionCollapse } from './TransitionCollapse/src/index.vue2.mjs';
|
|
19
17
|
export { default as TkVerifyCode } from './VerifyCode/src/index.vue2.mjs';
|
|
20
18
|
export { default as TkVpContainer } from './VpContainer/src/index.vue2.mjs';
|
|
21
|
-
export { default as
|
|
19
|
+
export { default as TkFocusTrap } from './FocusTrap/src/index.vue.mjs';
|
|
20
|
+
export { addCollection as addIcons } from '@iconify/vue';
|
|
21
|
+
export { getInstance, getLastOffset, getOffsetOrSpace, instances } from './Message/src/instance.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, computed, resolveComponent, createBlock, openBlock, unref, normalizeClass, withCtx, createElementBlock, createCommentVNode, createVNode, createTextVNode, createElementVNode, toDisplayString, Fragment, renderList } from 'vue';
|
|
1
|
+
import { defineComponent, computed, resolveComponent, createBlock, openBlock, unref, normalizeClass, withCtx, createElementBlock, createCommentVNode, createVNode, createTextVNode, createElementVNode, toDisplayString, Fragment, renderList, resolveDynamicComponent } from 'vue';
|
|
2
2
|
import { useData, withBase } from 'vitepress';
|
|
3
3
|
import { formatDate } from '../../../../helper/dist/index.mjs';
|
|
4
4
|
import { useLocale } from '../../../../hooks/useLocale.mjs';
|
|
@@ -6,6 +6,7 @@ import { useNamespace } from '../../../../hooks/useNamespace.mjs';
|
|
|
6
6
|
import '../../../../hooks/useZIndex.mjs';
|
|
7
7
|
import { usePosts, useTeekConfig } from '../../ConfigProvider/index.mjs';
|
|
8
8
|
import _sfc_main$1 from '../../../common/ArticlePage/src/index.vue2.mjs';
|
|
9
|
+
import { createDynamicComponent } from '../../ArticleTitle/src/compile.mjs';
|
|
9
10
|
|
|
10
11
|
const _hoisted_1 = { key: 0 };
|
|
11
12
|
const _hoisted_2 = ["href", "aria-label"];
|
|
@@ -167,7 +168,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
167
168
|
createElementVNode("a", {
|
|
168
169
|
href: data.url && unref(withBase)(data.url),
|
|
169
170
|
"aria-label": data.title
|
|
170
|
-
},
|
|
171
|
+
}, [
|
|
172
|
+
data.title ? (openBlock(), createBlock(resolveDynamicComponent(unref(createDynamicComponent)(data.title)), { key: 0 })) : createCommentVNode("v-if", true)
|
|
173
|
+
], 8, _hoisted_7)
|
|
171
174
|
]),
|
|
172
175
|
createElementVNode(
|
|
173
176
|
"td",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TkContentData } from '../../../../config';
|
|
2
|
-
import { TkTitleTagProps } from '
|
|
2
|
+
import { TkTitleTagProps } from '../../../common/TitleTag';
|
|
3
3
|
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
4
4
|
type __VLS_Props = {
|
|
5
5
|
post: TkContentData;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PostData } from '
|
|
1
|
+
import { PostData } from '../../../config/post/types';
|
|
2
2
|
import { TeekConfig } from '../../../config';
|
|
3
3
|
import { Component, Ref, InjectionKey, DefineComponent, VNode, RendererNode, RendererElement, ComponentOptionsMixin, PublicProps, ComponentProvideOptions, ComputedRef } from 'vue';
|
|
4
4
|
export declare const postsContext: InjectionKey<PostData>;
|
|
@@ -99,13 +99,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
99
99
|
);
|
|
100
100
|
const { watchSite, watchPages } = useWatchLogin();
|
|
101
101
|
const { restart } = useRiskLink({
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
whitelist: teekConfig.value.riskLink.whitelist,
|
|
103
|
+
blacklist: teekConfig.value.riskLink.blacklist
|
|
104
104
|
});
|
|
105
105
|
watchSite();
|
|
106
106
|
watchPages();
|
|
107
107
|
onContentUpdated(() => {
|
|
108
|
-
if (teekConfig.value.riskLink.enabled) ;
|
|
108
|
+
if (teekConfig.value.riskLink.enabled) restart();
|
|
109
109
|
});
|
|
110
110
|
const usedSlots = [
|
|
111
111
|
"home-hero-before",
|
|
@@ -2,13 +2,13 @@ export interface UseRiskLinkOptions {
|
|
|
2
2
|
/**
|
|
3
3
|
* 白名单,支持正则表达式
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
whitelist?: Array<RegExp | string>;
|
|
6
6
|
/**
|
|
7
7
|
* 黑名单,支持正则表达式
|
|
8
8
|
*
|
|
9
9
|
* @remark 如果设置了黑名单,则只拦截黑名单的链接
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
blacklist?: Array<RegExp | string>;
|
|
12
12
|
}
|
|
13
13
|
export declare const useRiskLink: (options?: UseRiskLinkOptions) => {
|
|
14
14
|
start: () => Promise<void>;
|
|
@@ -10,7 +10,7 @@ const useRiskLink = (options = {}) => {
|
|
|
10
10
|
const riskLinks = /* @__PURE__ */ new Set();
|
|
11
11
|
const cleanups = [];
|
|
12
12
|
const { riskLinkPath } = usePagePath();
|
|
13
|
-
const {
|
|
13
|
+
const { whitelist = [], blacklist = [] } = options;
|
|
14
14
|
const isSome = (arr, name) => {
|
|
15
15
|
return arr.some(
|
|
16
16
|
(item) => item === name || isString(item) && name.startsWith(item) || item instanceof RegExp && item.test(name)
|
|
@@ -18,7 +18,7 @@ const useRiskLink = (options = {}) => {
|
|
|
18
18
|
};
|
|
19
19
|
const isRiskLink = (url, currentDomain) => {
|
|
20
20
|
const link = new URL(url, window.location.origin);
|
|
21
|
-
return link.hostname !== currentDomain && !isSome(
|
|
21
|
+
return link.hostname !== currentDomain && !isSome(whitelist, url);
|
|
22
22
|
};
|
|
23
23
|
const start = async () => {
|
|
24
24
|
await nextTick();
|
|
@@ -27,7 +27,7 @@ const useRiskLink = (options = {}) => {
|
|
|
27
27
|
const href = link.getAttribute("href");
|
|
28
28
|
const currentDomain = window.location.hostname;
|
|
29
29
|
if (!href || riskLinks.has(link)) return;
|
|
30
|
-
if (
|
|
30
|
+
if (blacklist.length && !isSome(blacklist, href)) return;
|
|
31
31
|
if (!isRiskLink(href, currentDomain)) return;
|
|
32
32
|
riskLinks.add(link);
|
|
33
33
|
const stop2 = useEventListener(link, "click", (e) => {
|
|
@@ -39,6 +39,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
39
39
|
const el = document.documentElement;
|
|
40
40
|
if (el.getAttribute(layoutModeAttribute) === val) return;
|
|
41
41
|
el.setAttribute(layoutModeAttribute, val);
|
|
42
|
+
themeEnhanceConfig.value.layoutSwitch?.switchModeDone?.(val);
|
|
42
43
|
};
|
|
43
44
|
watch(layoutMode, update, { immediate: true });
|
|
44
45
|
watch(
|
|
@@ -46,6 +46,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
46
46
|
el.setAttribute(themeColorAttribute, val);
|
|
47
47
|
clear();
|
|
48
48
|
primaryColor.value = getComputedStyle(el).getPropertyValue(varNameList.vpIndigo1);
|
|
49
|
+
themeEnhanceConfig.value.themeColor?.switchColorDone?.(val);
|
|
49
50
|
};
|
|
50
51
|
watch(themeColor, update, { immediate: true });
|
|
51
52
|
watch(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ImageViewerProps } from '
|
|
1
|
+
import { ImageViewerProps } from '../../components/common/ImageViewer/src/imageViewer';
|
|
2
2
|
export type ArticleInfoPosition = "post" | "article";
|
|
3
3
|
export interface ArticleAnalyze {
|
|
4
4
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ImageViewerProps } from '
|
|
2
|
-
import { TitleTagProps } from '
|
|
1
|
+
import { ImageViewerProps } from '../../components/common/ImageViewer/src/imageViewer';
|
|
2
|
+
import { TitleTagProps } from '../../components/common/TitleTag/src/titleTag';
|
|
3
3
|
export interface Post {
|
|
4
4
|
/**
|
|
5
5
|
* 文章模板风格,list 为列表风格,card 为卡片风格
|
|
@@ -8,11 +8,11 @@ export interface RiskLink {
|
|
|
8
8
|
/**
|
|
9
9
|
* 白名单,支持正则表达式
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
whitelist?: Array<RegExp | string>;
|
|
12
12
|
/**
|
|
13
13
|
* 黑名单,支持正则表达式
|
|
14
14
|
*
|
|
15
15
|
* @remark 如果设置了黑名单,则只拦截黑名单的链接
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
blacklist?: Array<RegExp | string>;
|
|
18
18
|
}
|
|
@@ -21,6 +21,12 @@ export interface ThemeEnhance {
|
|
|
21
21
|
* @default LayoutMode.Original
|
|
22
22
|
*/
|
|
23
23
|
defaultMode?: LayoutMode | LayoutModeVal;
|
|
24
|
+
/**
|
|
25
|
+
* 切换布局成功后的回调
|
|
26
|
+
*
|
|
27
|
+
* @since 1.3.2
|
|
28
|
+
*/
|
|
29
|
+
switchModeDone?: (mode: LayoutMode | LayoutModeVal) => void;
|
|
24
30
|
/**
|
|
25
31
|
* 禁用帮助提示
|
|
26
32
|
*
|
|
@@ -72,6 +78,12 @@ export interface ThemeEnhance {
|
|
|
72
78
|
* @default ThemeColor.vpDefault
|
|
73
79
|
*/
|
|
74
80
|
defaultColor?: ThemeColor | "vp-default" | "vp-green" | "vp-yellow" | "vp-red" | "ep-blue" | "ep-green" | "ep-yellow" | "ep-red";
|
|
81
|
+
/**
|
|
82
|
+
* 切换布局成功后的回调
|
|
83
|
+
*
|
|
84
|
+
* @since 1.3.2
|
|
85
|
+
*/
|
|
86
|
+
switchColorDone?: (color: string) => void;
|
|
75
87
|
/**
|
|
76
88
|
* 是否将主题色扩散到其他元素(根据主题色计算其他元素需要的颜色)
|
|
77
89
|
*
|
package/es/config/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PageData } from 'vitepress';
|
|
2
|
-
import { VpContainerProps } from '
|
|
3
|
-
import { Message } from '
|
|
2
|
+
import { VpContainerProps } from '../components/common/VpContainer/src/vpContainer';
|
|
3
|
+
import { Message } from '../components/common/Message/src/message';
|
|
4
4
|
import { TkPaginationProps } from '../components/common/Pagination';
|
|
5
5
|
import { Appreciation, ArticleAnalyze, ArticleShare, ArticleUpdate, Author, Banner, Blogger, BodyBgImg, Breadcrumb, Category, CodeBlock, CommentConfig, DocAnalysis, FooterInfo, FooterGroup, FriendLink, ThemeEnhance, Notice, Plugins, Post, SiteAnalytics, Social, Tag, TopArticle, Wallpaper, Markdown, Private, RiskLink } from './interface';
|
|
6
6
|
export type * from './interface';
|
|
@@ -56,7 +56,7 @@ const registerLoosePlugins = (vitePlugins, ignoreDir) => {
|
|
|
56
56
|
if (categories && !frontmatter.categories) {
|
|
57
57
|
transformResult = { ...transformResult, ...createCategory(fileInfo, ["@fragment"]) };
|
|
58
58
|
}
|
|
59
|
-
transformResult = transform?.(transformResult, fileInfo) || transformResult;
|
|
59
|
+
transformResult = transform?.({ ...frontmatter, ...transformResult }, fileInfo) || transformResult;
|
|
60
60
|
return Object.keys(transformResult).length ? { ...frontmatter, ...transformResult } : void 0;
|
|
61
61
|
};
|
|
62
62
|
plugins.push(AutoFrontmatter(autoFrontmatterOption));
|
package/es/icons.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './static/icons';
|