vitepress-theme-element-plus 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +3 -3
  2. package/client/components/A11yTag.vue +29 -29
  3. package/client/components/ApiTyping.vue +54 -54
  4. package/client/components/Backdrop.vue +41 -41
  5. package/client/components/Bili.vue +94 -94
  6. package/client/components/Content.vue +148 -150
  7. package/client/components/DeprecatedTag.vue +19 -19
  8. package/client/components/Doc.vue +181 -181
  9. package/client/components/DocAside.vue +46 -46
  10. package/client/components/DocAsideOutline.vue +82 -82
  11. package/client/components/DocFooter.vue +159 -159
  12. package/client/components/Footer.vue +77 -77
  13. package/client/components/FooterCopyright.vue +27 -27
  14. package/client/components/Layout.vue +156 -156
  15. package/client/components/Link.vue +41 -41
  16. package/client/components/LocalNav.vue +160 -160
  17. package/client/components/Nav.vue +69 -69
  18. package/client/components/NavBar.vue +203 -203
  19. package/client/components/NavBarTitle.vue +75 -75
  20. package/client/components/Sidebar.vue +129 -129
  21. package/client/components/SidebarGroup.vue +51 -51
  22. package/client/components/SidebarItem.vue +302 -302
  23. package/client/components/Tag.vue +25 -25
  24. package/client/components/VPNavBarSearch.vue +23 -23
  25. package/client/components/VersionTag.vue +18 -18
  26. package/client/hooks/useBackTop.ts +71 -71
  27. package/client/hooks/useLangs.ts +50 -50
  28. package/client/hooks/useSidebar.ts +93 -18
  29. package/client/hooks/useSidebarControl.ts +78 -78
  30. package/client/hooks/useSize.ts +69 -69
  31. package/client/utils/client/common.ts +49 -49
  32. package/client/utils/client/outline.ts +113 -113
  33. package/client/utils/common.ts +90 -90
  34. package/index.ts +26 -26
  35. package/package.json +73 -73
  36. package/shared/constants.ts +3 -3
  37. package/styles/base.scss +37 -37
  38. package/styles/code.scss +282 -282
  39. package/styles/doc-content.scss +161 -161
  40. package/styles/index.scss +69 -69
  41. package/styles/tag-content.scss +30 -30
@@ -1,159 +1,159 @@
1
- <script setup lang="ts">
2
- import { ArrowLeft, ArrowRight } from '@element-plus/icons-vue'
3
- import { ElIcon } from 'element-plus'
4
- import { useData } from 'vitepress'
5
- import VPDocFooterLastUpdated from 'vitepress/dist/client/theme-default/components/VPDocFooterLastUpdated.vue'
6
- import VPLink from 'vitepress/dist/client/theme-default/components/VPLink.vue'
7
- import { useEditLink } from 'vitepress/dist/client/theme-default/composables/edit-link.js'
8
- import { usePrevNext } from 'vitepress/dist/client/theme-default/composables/prev-next.js'
9
- import { computed } from 'vue'
10
-
11
- const { theme, page, frontmatter } = useData()
12
-
13
- const editLink = useEditLink()
14
- const control = usePrevNext()
15
-
16
- const hasEditLink = computed(
17
- () => theme.value.editLink && frontmatter.value.editLink !== false,
18
- )
19
- const hasLastUpdated = computed(() => page.value.lastUpdated)
20
- const showFooter = computed(
21
- () =>
22
- hasEditLink.value
23
- || hasLastUpdated.value
24
- || control.value.prev
25
- || control.value.next,
26
- )
27
- </script>
28
-
29
- <template>
30
- <footer v-if="showFooter" class="VPDocFooter">
31
- <slot name="doc-footer-before" />
32
-
33
- <div v-if="hasEditLink || hasLastUpdated" class="edit-info">
34
- <div v-if="hasEditLink" class="edit-link">
35
- <VPLink class="edit-link-button" :href="editLink.url" :no-icon="true">
36
- <span class="vpi-square-pen edit-link-icon" />
37
- {{ editLink.text }}
38
- </VPLink>
39
- </div>
40
-
41
- <div v-if="hasLastUpdated" class="last-updated">
42
- <VPDocFooterLastUpdated />
43
- </div>
44
- </div>
45
-
46
- <nav
47
- v-if="control.prev?.link || control.next?.link"
48
- class="prev-next"
49
- aria-labelledby="doc-footer-aria-label"
50
- >
51
- <span id="doc-footer-aria-label" class="visually-hidden">Pager</span>
52
-
53
- <div class="pager prev">
54
- <a v-if="control.prev?.link" :href="control.prev.link">
55
- <ElIcon>
56
- <ArrowLeft />
57
- </ElIcon>
58
- <span class="title" v-html="control.prev.text" />
59
- </a>
60
- </div>
61
- <div class="pager next">
62
- <a v-if="control.next?.link" :href="control.next.link">
63
- <span class="title" v-html="control.next.text" />
64
- <ElIcon>
65
- <ArrowRight />
66
- </ElIcon>
67
- </a>
68
- </div>
69
- </nav>
70
- </footer>
71
- </template>
72
-
73
- <style scoped>
74
- .VPDocFooter {
75
- margin-top: 64px;
76
- }
77
-
78
- .edit-info {
79
- padding-bottom: 18px;
80
- }
81
-
82
- @media (min-width: 640px) {
83
- .edit-info {
84
- display: flex;
85
- justify-content: space-between;
86
- align-items: center;
87
- padding-bottom: 14px;
88
- }
89
- }
90
-
91
- .edit-link-button {
92
- display: flex;
93
- align-items: center;
94
- border: 0;
95
- line-height: 32px;
96
- font-size: 14px;
97
- font-weight: 500;
98
- color: var(--vp-c-brand-1);
99
- transition: color 0.25s;
100
- }
101
-
102
- .edit-link-button:hover {
103
- color: var(--vp-c-brand-2);
104
- }
105
-
106
- .edit-link-icon {
107
- margin-right: 8px;
108
- }
109
-
110
- .prev-next {
111
- display: flex;
112
- justify-content: space-between;
113
- padding-top: 16px;
114
- border-top: 1px solid var(--vp-c-divider);
115
- }
116
-
117
- .pager {
118
- display: flex;
119
- flex-shrink: 0;
120
- width: 50%;
121
- }
122
-
123
- .pager a {
124
- display: inline-flex;
125
- justify-content: center;
126
- align-items: center;
127
- max-width: 100%;
128
- height: 24px;
129
- font-size: 14px;
130
- font-weight: 500;
131
- }
132
-
133
- .pager.next {
134
- justify-content: flex-end;
135
- padding-right: 12px;
136
- }
137
-
138
- .next .el-icon {
139
- margin-left: 4px;
140
- }
141
-
142
- .pager.prev {
143
- justify-content: flex-start;
144
- padding-left: 12px;
145
- }
146
-
147
- .prev .el-icon {
148
- margin-right: 4px;
149
- }
150
-
151
- .title {
152
- display: block;
153
- line-height: 20px;
154
- font-size: 14px;
155
- font-weight: 500;
156
- color: var(--vp-c-brand-1);
157
- transition: color 0.25s;
158
- }
159
- </style>
1
+ <script setup lang="ts">
2
+ import { ArrowLeft, ArrowRight } from '@element-plus/icons-vue'
3
+ import { ElIcon } from 'element-plus'
4
+ import { useData } from 'vitepress'
5
+ import VPDocFooterLastUpdated from 'vitepress/dist/client/theme-default/components/VPDocFooterLastUpdated.vue'
6
+ import VPLink from 'vitepress/dist/client/theme-default/components/VPLink.vue'
7
+ import { useEditLink } from 'vitepress/dist/client/theme-default/composables/edit-link.js'
8
+ import { usePrevNext } from 'vitepress/dist/client/theme-default/composables/prev-next.js'
9
+ import { computed } from 'vue'
10
+
11
+ const { theme, page, frontmatter } = useData()
12
+
13
+ const editLink = useEditLink()
14
+ const control = usePrevNext()
15
+
16
+ const hasEditLink = computed(
17
+ () => theme.value.editLink && frontmatter.value.editLink !== false,
18
+ )
19
+ const hasLastUpdated = computed(() => page.value.lastUpdated)
20
+ const showFooter = computed(
21
+ () =>
22
+ hasEditLink.value
23
+ || hasLastUpdated.value
24
+ || control.value.prev
25
+ || control.value.next,
26
+ )
27
+ </script>
28
+
29
+ <template>
30
+ <footer v-if="showFooter" class="VPDocFooter">
31
+ <slot name="doc-footer-before" />
32
+
33
+ <div v-if="hasEditLink || hasLastUpdated" class="edit-info">
34
+ <div v-if="hasEditLink" class="edit-link">
35
+ <VPLink class="edit-link-button" :href="editLink.url" :no-icon="true">
36
+ <span class="vpi-square-pen edit-link-icon" />
37
+ {{ editLink.text }}
38
+ </VPLink>
39
+ </div>
40
+
41
+ <div v-if="hasLastUpdated" class="last-updated">
42
+ <VPDocFooterLastUpdated />
43
+ </div>
44
+ </div>
45
+
46
+ <nav
47
+ v-if="control.prev?.link || control.next?.link"
48
+ class="prev-next"
49
+ aria-labelledby="doc-footer-aria-label"
50
+ >
51
+ <span id="doc-footer-aria-label" class="visually-hidden">Pager</span>
52
+
53
+ <div class="pager prev">
54
+ <a v-if="control.prev?.link" :href="control.prev.link">
55
+ <ElIcon>
56
+ <ArrowLeft />
57
+ </ElIcon>
58
+ <span class="title" v-html="control.prev.text" />
59
+ </a>
60
+ </div>
61
+ <div class="pager next">
62
+ <a v-if="control.next?.link" :href="control.next.link">
63
+ <span class="title" v-html="control.next.text" />
64
+ <ElIcon>
65
+ <ArrowRight />
66
+ </ElIcon>
67
+ </a>
68
+ </div>
69
+ </nav>
70
+ </footer>
71
+ </template>
72
+
73
+ <style scoped>
74
+ .VPDocFooter {
75
+ margin-top: 64px;
76
+ }
77
+
78
+ .edit-info {
79
+ padding-bottom: 18px;
80
+ }
81
+
82
+ @media (min-width: 640px) {
83
+ .edit-info {
84
+ display: flex;
85
+ justify-content: space-between;
86
+ align-items: center;
87
+ padding-bottom: 14px;
88
+ }
89
+ }
90
+
91
+ .edit-link-button {
92
+ display: flex;
93
+ align-items: center;
94
+ border: 0;
95
+ line-height: 32px;
96
+ font-size: 14px;
97
+ font-weight: 500;
98
+ color: var(--vp-c-brand-1);
99
+ transition: color 0.25s;
100
+ }
101
+
102
+ .edit-link-button:hover {
103
+ color: var(--vp-c-brand-2);
104
+ }
105
+
106
+ .edit-link-icon {
107
+ margin-right: 8px;
108
+ }
109
+
110
+ .prev-next {
111
+ display: flex;
112
+ justify-content: space-between;
113
+ padding-top: 16px;
114
+ border-top: 1px solid var(--vp-c-divider);
115
+ }
116
+
117
+ .pager {
118
+ display: flex;
119
+ flex-shrink: 0;
120
+ width: 50%;
121
+ }
122
+
123
+ .pager a {
124
+ display: inline-flex;
125
+ justify-content: center;
126
+ align-items: center;
127
+ max-width: 100%;
128
+ height: 24px;
129
+ font-size: 14px;
130
+ font-weight: 500;
131
+ }
132
+
133
+ .pager.next {
134
+ justify-content: flex-end;
135
+ padding-right: 12px;
136
+ }
137
+
138
+ .next .el-icon {
139
+ margin-left: 4px;
140
+ }
141
+
142
+ .pager.prev {
143
+ justify-content: flex-start;
144
+ padding-left: 12px;
145
+ }
146
+
147
+ .prev .el-icon {
148
+ margin-right: 4px;
149
+ }
150
+
151
+ .title {
152
+ display: block;
153
+ line-height: 20px;
154
+ font-size: 14px;
155
+ font-weight: 500;
156
+ color: var(--vp-c-brand-1);
157
+ transition: color 0.25s;
158
+ }
159
+ </style>
@@ -1,77 +1,77 @@
1
- <script lang="ts" setup>
2
- import { ElLink } from 'element-plus'
3
- import { useData } from 'vitepress'
4
- import { useLayout } from 'vitepress/theme'
5
-
6
- const { isHome } = useLayout()
7
- const { theme } = useData()
8
- const blogroll = theme.value.footer?.blogroll
9
- </script>
10
-
11
- <template>
12
- <footer v-if="blogroll && blogroll.length" class="footer" :class="{ 'is-home': isHome }">
13
- <div v-for="item of blogroll" :key="item.title" class="footer-main">
14
- <h4>{{ item.title }}</h4>
15
- <ElLink
16
- v-for="child of item.children"
17
- :key="child.title"
18
- class="footer-main-link"
19
- target="_blank"
20
- type="info"
21
- :href="child.href"
22
- :underline="false"
23
- >
24
- {{ child.title }}
25
- </ElLink>
26
- </div>
27
- </footer>
28
- </template>
29
-
30
- <style lang="scss">
31
- .footer {
32
- background-color: var(--vp-c-bg-soft);
33
- box-sizing: border-box;
34
- padding: 42px 64px 64px;
35
-
36
- &.is-home {
37
- background-color: var(--bg-color);
38
- max-width: 1200px;
39
- margin: 0 auto;
40
- padding: 40px 0;
41
- }
42
-
43
- .container {
44
- box-sizing: border-box;
45
- width: auto;
46
- }
47
-
48
- .footer-main {
49
- font-size: 0;
50
- display: inline-block;
51
- vertical-align: top;
52
- margin-right: 130px;
53
-
54
- h4 {
55
- font-size: 18px;
56
- line-height: 1;
57
- margin: 0 0 15px;
58
- font-weight: 400;
59
- color: var(--el-text-color-primary);
60
- }
61
-
62
- .footer-main-link {
63
- display: block;
64
- margin: 0;
65
- line-height: 2;
66
- }
67
- }
68
- }
69
-
70
- @media (max-width: 768px) {
71
- .footer {
72
- .footer-main {
73
- margin-bottom: 30px;
74
- }
75
- }
76
- }
77
- </style>
1
+ <script lang="ts" setup>
2
+ import { ElLink } from 'element-plus'
3
+ import { useData } from 'vitepress'
4
+ import { useLayout } from 'vitepress/theme'
5
+
6
+ const { isHome } = useLayout()
7
+ const { theme } = useData()
8
+ const blogroll = theme.value.footer?.blogroll
9
+ </script>
10
+
11
+ <template>
12
+ <footer v-if="blogroll && blogroll.length" class="footer" :class="{ 'is-home': isHome }">
13
+ <div v-for="item of blogroll" :key="item.title" class="footer-main">
14
+ <h4>{{ item.title }}</h4>
15
+ <ElLink
16
+ v-for="child of item.children"
17
+ :key="child.title"
18
+ class="footer-main-link"
19
+ target="_blank"
20
+ type="info"
21
+ :href="child.href"
22
+ :underline="false"
23
+ >
24
+ {{ child.title }}
25
+ </ElLink>
26
+ </div>
27
+ </footer>
28
+ </template>
29
+
30
+ <style lang="scss">
31
+ .footer {
32
+ background-color: var(--vp-c-bg-soft);
33
+ box-sizing: border-box;
34
+ padding: 42px 64px 64px;
35
+
36
+ &.is-home {
37
+ background-color: var(--bg-color);
38
+ max-width: 1200px;
39
+ margin: 0 auto;
40
+ padding: 40px 0;
41
+ }
42
+
43
+ .container {
44
+ box-sizing: border-box;
45
+ width: auto;
46
+ }
47
+
48
+ .footer-main {
49
+ font-size: 0;
50
+ display: inline-block;
51
+ vertical-align: top;
52
+ margin-right: 130px;
53
+
54
+ h4 {
55
+ font-size: 18px;
56
+ line-height: 1;
57
+ margin: 0 0 15px;
58
+ font-weight: 400;
59
+ color: var(--el-text-color-primary);
60
+ }
61
+
62
+ .footer-main-link {
63
+ display: block;
64
+ margin: 0;
65
+ line-height: 2;
66
+ }
67
+ }
68
+ }
69
+
70
+ @media (max-width: 768px) {
71
+ .footer {
72
+ .footer-main {
73
+ margin-bottom: 30px;
74
+ }
75
+ }
76
+ }
77
+ </style>
@@ -1,27 +1,27 @@
1
- <script lang="ts" setup>
2
- import { ElDivider } from 'element-plus'
3
- import { useData } from 'vitepress'
4
-
5
- const { theme } = useData()
6
- </script>
7
-
8
- <template>
9
- <template v-if="theme.footer?.message || theme.footer?.copyright">
10
- <ElDivider style="margin-bottom: 0px" />
11
- <div class="footer-copyright">
12
- <p>{{ theme.footer?.message }}</p>
13
- <p>{{ theme.footer?.copyright }}</p>
14
- </div>
15
- </template>
16
- </template>
17
-
18
- <style scoped lang="scss">
19
- .footer-copyright {
20
- display: flex;
21
- flex-direction: column;
22
- align-items: center;
23
- padding: 24px 0;
24
- font-size: 12px;
25
- line-height: 24px;
26
- }
27
- </style>
1
+ <script lang="ts" setup>
2
+ import { ElDivider } from 'element-plus'
3
+ import { useData } from 'vitepress'
4
+
5
+ const { theme } = useData()
6
+ </script>
7
+
8
+ <template>
9
+ <template v-if="theme.footer?.message || theme.footer?.copyright">
10
+ <ElDivider style="margin-bottom: 0px" />
11
+ <div class="footer-copyright">
12
+ <p>{{ theme.footer?.message }}</p>
13
+ <p>{{ theme.footer?.copyright }}</p>
14
+ </div>
15
+ </template>
16
+ </template>
17
+
18
+ <style scoped lang="scss">
19
+ .footer-copyright {
20
+ display: flex;
21
+ flex-direction: column;
22
+ align-items: center;
23
+ padding: 24px 0;
24
+ font-size: 12px;
25
+ line-height: 24px;
26
+ }
27
+ </style>