themekit-js 1.1.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.
Files changed (171) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +27 -0
  3. package/bin/themekit.js +2 -0
  4. package/client.d.ts +5 -0
  5. package/dist/client/app/components/ClientOnly.js +10 -0
  6. package/dist/client/app/components/Content.js +23 -0
  7. package/dist/client/app/composables/codeGroups.js +40 -0
  8. package/dist/client/app/composables/copyCode.js +73 -0
  9. package/dist/client/app/composables/head.js +81 -0
  10. package/dist/client/app/composables/preFetch.js +99 -0
  11. package/dist/client/app/data.js +59 -0
  12. package/dist/client/app/devtools.js +29 -0
  13. package/dist/client/app/index.js +140 -0
  14. package/dist/client/app/router.js +233 -0
  15. package/dist/client/app/ssr.js +10 -0
  16. package/dist/client/app/theme.js +1 -0
  17. package/dist/client/app/utils.js +119 -0
  18. package/dist/client/index.d.ts +1446 -0
  19. package/dist/client/index.js +9 -0
  20. package/dist/client/shared.js +139 -0
  21. package/dist/client/theme-default/Layout.vue +94 -0
  22. package/dist/client/theme-default/NotFound.vue +109 -0
  23. package/dist/client/theme-default/components/VPAlgoliaSearchBox.vue +99 -0
  24. package/dist/client/theme-default/components/VPBackdrop.vue +41 -0
  25. package/dist/client/theme-default/components/VPBadge.vue +86 -0
  26. package/dist/client/theme-default/components/VPButton.vue +123 -0
  27. package/dist/client/theme-default/components/VPCarbonAds.vue +109 -0
  28. package/dist/client/theme-default/components/VPContent.vue +98 -0
  29. package/dist/client/theme-default/components/VPDoc.vue +193 -0
  30. package/dist/client/theme-default/components/VPDocAside.vue +46 -0
  31. package/dist/client/theme-default/components/VPDocAsideCarbonAds.vue +18 -0
  32. package/dist/client/theme-default/components/VPDocAsideOutline.vue +87 -0
  33. package/dist/client/theme-default/components/VPDocAsideSponsors.vue +17 -0
  34. package/dist/client/theme-default/components/VPDocFooter.vue +145 -0
  35. package/dist/client/theme-default/components/VPDocFooterLastUpdated.vue +50 -0
  36. package/dist/client/theme-default/components/VPDocOutlineItem.vue +59 -0
  37. package/dist/client/theme-default/components/VPFeature.vue +123 -0
  38. package/dist/client/theme-default/components/VPFeatures.vue +121 -0
  39. package/dist/client/theme-default/components/VPFlyout.vue +136 -0
  40. package/dist/client/theme-default/components/VPFooter.vue +60 -0
  41. package/dist/client/theme-default/components/VPHero.vue +336 -0
  42. package/dist/client/theme-default/components/VPHome.vue +43 -0
  43. package/dist/client/theme-default/components/VPHomeContent.vue +52 -0
  44. package/dist/client/theme-default/components/VPHomeFeatures.vue +14 -0
  45. package/dist/client/theme-default/components/VPHomeHero.vue +24 -0
  46. package/dist/client/theme-default/components/VPHomeSponsors.vue +116 -0
  47. package/dist/client/theme-default/components/VPImage.vue +46 -0
  48. package/dist/client/theme-default/components/VPLink.vue +33 -0
  49. package/dist/client/theme-default/components/VPLocalNav.vue +171 -0
  50. package/dist/client/theme-default/components/VPLocalNavOutlineDropdown.vue +190 -0
  51. package/dist/client/theme-default/components/VPLocalSearchBox.vue +856 -0
  52. package/dist/client/theme-default/components/VPMenu.vue +72 -0
  53. package/dist/client/theme-default/components/VPMenuGroup.vue +47 -0
  54. package/dist/client/theme-default/components/VPMenuLink.vue +54 -0
  55. package/dist/client/theme-default/components/VPNav.vue +57 -0
  56. package/dist/client/theme-default/components/VPNavBar.vue +267 -0
  57. package/dist/client/theme-default/components/VPNavBarAppearance.vue +25 -0
  58. package/dist/client/theme-default/components/VPNavBarExtra.vue +94 -0
  59. package/dist/client/theme-default/components/VPNavBarHamburger.vue +79 -0
  60. package/dist/client/theme-default/components/VPNavBarMenu.vue +29 -0
  61. package/dist/client/theme-default/components/VPNavBarMenuGroup.vue +42 -0
  62. package/dist/client/theme-default/components/VPNavBarMenuLink.vue +53 -0
  63. package/dist/client/theme-default/components/VPNavBarSearch.vue +194 -0
  64. package/dist/client/theme-default/components/VPNavBarSearchButton.vue +208 -0
  65. package/dist/client/theme-default/components/VPNavBarSocialLinks.vue +27 -0
  66. package/dist/client/theme-default/components/VPNavBarTitle.vue +76 -0
  67. package/dist/client/theme-default/components/VPNavBarTranslations.vue +47 -0
  68. package/dist/client/theme-default/components/VPNavScreen.vue +99 -0
  69. package/dist/client/theme-default/components/VPNavScreenAppearance.vue +33 -0
  70. package/dist/client/theme-default/components/VPNavScreenMenu.vue +23 -0
  71. package/dist/client/theme-default/components/VPNavScreenMenuGroup.vue +111 -0
  72. package/dist/client/theme-default/components/VPNavScreenMenuGroupLink.vue +39 -0
  73. package/dist/client/theme-default/components/VPNavScreenMenuGroupSection.vue +34 -0
  74. package/dist/client/theme-default/components/VPNavScreenMenuLink.vue +39 -0
  75. package/dist/client/theme-default/components/VPNavScreenSocialLinks.vue +14 -0
  76. package/dist/client/theme-default/components/VPNavScreenTranslations.vue +73 -0
  77. package/dist/client/theme-default/components/VPPage.vue +7 -0
  78. package/dist/client/theme-default/components/VPSidebar.vue +137 -0
  79. package/dist/client/theme-default/components/VPSidebarItem.vue +250 -0
  80. package/dist/client/theme-default/components/VPSkipLink.vue +68 -0
  81. package/dist/client/theme-default/components/VPSocialLink.vue +50 -0
  82. package/dist/client/theme-default/components/VPSocialLinks.vue +27 -0
  83. package/dist/client/theme-default/components/VPSponsors.vue +48 -0
  84. package/dist/client/theme-default/components/VPSponsorsGrid.vue +48 -0
  85. package/dist/client/theme-default/components/VPSwitch.vue +63 -0
  86. package/dist/client/theme-default/components/VPSwitchAppearance.vue +52 -0
  87. package/dist/client/theme-default/components/VPTeamMembers.vue +66 -0
  88. package/dist/client/theme-default/components/VPTeamMembersItem.vue +225 -0
  89. package/dist/client/theme-default/components/VPTeamPage.vue +58 -0
  90. package/dist/client/theme-default/components/VPTeamPageSection.vue +77 -0
  91. package/dist/client/theme-default/components/VPTeamPageTitle.vue +63 -0
  92. package/dist/client/theme-default/components/icons/VPIconAlignJustify.vue +8 -0
  93. package/dist/client/theme-default/components/icons/VPIconAlignLeft.vue +8 -0
  94. package/dist/client/theme-default/components/icons/VPIconAlignRight.vue +8 -0
  95. package/dist/client/theme-default/components/icons/VPIconArrowLeft.vue +7 -0
  96. package/dist/client/theme-default/components/icons/VPIconArrowRight.vue +7 -0
  97. package/dist/client/theme-default/components/icons/VPIconChevronDown.vue +5 -0
  98. package/dist/client/theme-default/components/icons/VPIconChevronLeft.vue +5 -0
  99. package/dist/client/theme-default/components/icons/VPIconChevronRight.vue +5 -0
  100. package/dist/client/theme-default/components/icons/VPIconChevronUp.vue +5 -0
  101. package/dist/client/theme-default/components/icons/VPIconEdit.vue +6 -0
  102. package/dist/client/theme-default/components/icons/VPIconHeart.vue +5 -0
  103. package/dist/client/theme-default/components/icons/VPIconLanguages.vue +9 -0
  104. package/dist/client/theme-default/components/icons/VPIconMinus.vue +5 -0
  105. package/dist/client/theme-default/components/icons/VPIconMinusSquare.vue +6 -0
  106. package/dist/client/theme-default/components/icons/VPIconMoon.vue +5 -0
  107. package/dist/client/theme-default/components/icons/VPIconMoreHorizontal.vue +7 -0
  108. package/dist/client/theme-default/components/icons/VPIconPlus.vue +5 -0
  109. package/dist/client/theme-default/components/icons/VPIconPlusSquare.vue +6 -0
  110. package/dist/client/theme-default/components/icons/VPIconSun.vue +13 -0
  111. package/dist/client/theme-default/composables/aside.js +17 -0
  112. package/dist/client/theme-default/composables/data.js +2 -0
  113. package/dist/client/theme-default/composables/edit-link.js +16 -0
  114. package/dist/client/theme-default/composables/flyout.js +41 -0
  115. package/dist/client/theme-default/composables/langs.js +26 -0
  116. package/dist/client/theme-default/composables/local-nav.js +18 -0
  117. package/dist/client/theme-default/composables/nav.js +30 -0
  118. package/dist/client/theme-default/composables/outline.js +178 -0
  119. package/dist/client/theme-default/composables/prev-next.js +57 -0
  120. package/dist/client/theme-default/composables/sidebar.js +136 -0
  121. package/dist/client/theme-default/composables/sponsor-grid.js +94 -0
  122. package/dist/client/theme-default/fonts/inter-italic-cyrillic-ext.woff2 +0 -0
  123. package/dist/client/theme-default/fonts/inter-italic-cyrillic.woff2 +0 -0
  124. package/dist/client/theme-default/fonts/inter-italic-greek-ext.woff2 +0 -0
  125. package/dist/client/theme-default/fonts/inter-italic-greek.woff2 +0 -0
  126. package/dist/client/theme-default/fonts/inter-italic-latin-ext.woff2 +0 -0
  127. package/dist/client/theme-default/fonts/inter-italic-latin.woff2 +0 -0
  128. package/dist/client/theme-default/fonts/inter-italic-vietnamese.woff2 +0 -0
  129. package/dist/client/theme-default/fonts/inter-roman-cyrillic-ext.woff2 +0 -0
  130. package/dist/client/theme-default/fonts/inter-roman-cyrillic.woff2 +0 -0
  131. package/dist/client/theme-default/fonts/inter-roman-greek-ext.woff2 +0 -0
  132. package/dist/client/theme-default/fonts/inter-roman-greek.woff2 +0 -0
  133. package/dist/client/theme-default/fonts/inter-roman-latin-ext.woff2 +0 -0
  134. package/dist/client/theme-default/fonts/inter-roman-latin.woff2 +0 -0
  135. package/dist/client/theme-default/fonts/inter-roman-vietnamese.woff2 +0 -0
  136. package/dist/client/theme-default/index.js +3 -0
  137. package/dist/client/theme-default/styles/base.css +252 -0
  138. package/dist/client/theme-default/styles/components/custom-block.css +208 -0
  139. package/dist/client/theme-default/styles/components/vp-code-group.css +85 -0
  140. package/dist/client/theme-default/styles/components/vp-code.css +7 -0
  141. package/dist/client/theme-default/styles/components/vp-doc.css +570 -0
  142. package/dist/client/theme-default/styles/components/vp-sponsor.css +155 -0
  143. package/dist/client/theme-default/styles/fonts.css +157 -0
  144. package/dist/client/theme-default/styles/icons.css +123 -0
  145. package/dist/client/theme-default/styles/utils.css +9 -0
  146. package/dist/client/theme-default/styles/vars.css +563 -0
  147. package/dist/client/theme-default/support/lru.js +33 -0
  148. package/dist/client/theme-default/support/sidebar.js +89 -0
  149. package/dist/client/theme-default/support/translation.js +49 -0
  150. package/dist/client/theme-default/support/utils.js +33 -0
  151. package/dist/client/theme-default/without-fonts.js +32 -0
  152. package/dist/node/cli.js +444 -0
  153. package/dist/node/index.d.ts +4588 -0
  154. package/dist/node/index.js +198 -0
  155. package/dist/node/serve-BjvG349_.js +50301 -0
  156. package/lib/vue-demi.mjs +34 -0
  157. package/package.json +223 -0
  158. package/template/.vitepress/config.js +28 -0
  159. package/template/.vitepress/theme/Layout.vue +21 -0
  160. package/template/.vitepress/theme/index.js +29 -0
  161. package/template/.vitepress/theme/style.css +143 -0
  162. package/template/api-examples.md +49 -0
  163. package/template/index.md +28 -0
  164. package/template/markdown-examples.md +85 -0
  165. package/theme-without-fonts.d.ts +2 -0
  166. package/theme.d.ts +30 -0
  167. package/types/default-theme.d.ts +533 -0
  168. package/types/docsearch.d.ts +144 -0
  169. package/types/index.d.ts +3 -0
  170. package/types/local-search.d.ts +33 -0
  171. package/types/shared.d.ts +199 -0
@@ -0,0 +1,225 @@
1
+ <script setup lang="ts">
2
+ import type { DefaultTheme } from 'vitepress/theme'
3
+ import VPLink from './VPLink.vue'
4
+ import VPSocialLinks from './VPSocialLinks.vue'
5
+
6
+ interface Props {
7
+ size?: 'small' | 'medium'
8
+ member: DefaultTheme.TeamMember
9
+ }
10
+
11
+ withDefaults(defineProps<Props>(), {
12
+ size: 'medium'
13
+ })
14
+ </script>
15
+
16
+ <template>
17
+ <article class="VPTeamMembersItem" :class="[size]">
18
+ <div class="profile">
19
+ <figure class="avatar">
20
+ <img class="avatar-img" :src="member.avatar" :alt="member.name" />
21
+ </figure>
22
+ <div class="data">
23
+ <h1 class="name">
24
+ {{ member.name }}
25
+ </h1>
26
+ <p v-if="member.title || member.org" class="affiliation">
27
+ <span v-if="member.title" class="title">
28
+ {{ member.title }}
29
+ </span>
30
+ <span v-if="member.title && member.org" class="at"> @ </span>
31
+ <VPLink
32
+ v-if="member.org"
33
+ class="org"
34
+ :class="{ link: member.orgLink }"
35
+ :href="member.orgLink"
36
+ no-icon
37
+ >
38
+ {{ member.org }}
39
+ </VPLink>
40
+ </p>
41
+ <p v-if="member.desc" class="desc" v-html="member.desc" />
42
+ <div v-if="member.links" class="links">
43
+ <VPSocialLinks :links="member.links" />
44
+ </div>
45
+ </div>
46
+ </div>
47
+ <div v-if="member.sponsor" class="sp">
48
+ <VPLink class="sp-link" :href="member.sponsor" no-icon>
49
+ <span class="vpi-heart sp-icon" /> {{ member.actionText || 'Sponsor' }}
50
+ </VPLink>
51
+ </div>
52
+ </article>
53
+ </template>
54
+
55
+ <style scoped>
56
+ .VPTeamMembersItem {
57
+ display: flex;
58
+ flex-direction: column;
59
+ gap: 2px;
60
+ border-radius: 12px;
61
+ width: 100%;
62
+ height: 100%;
63
+ overflow: hidden;
64
+ }
65
+
66
+ .VPTeamMembersItem.small .profile {
67
+ padding: 32px;
68
+ }
69
+
70
+ .VPTeamMembersItem.small .data {
71
+ padding-top: 20px;
72
+ }
73
+
74
+ .VPTeamMembersItem.small .avatar {
75
+ width: 64px;
76
+ height: 64px;
77
+ }
78
+
79
+ .VPTeamMembersItem.small .name {
80
+ line-height: 24px;
81
+ font-size: 16px;
82
+ }
83
+
84
+ .VPTeamMembersItem.small .affiliation {
85
+ padding-top: 4px;
86
+ line-height: 20px;
87
+ font-size: 14px;
88
+ }
89
+
90
+ .VPTeamMembersItem.small .desc {
91
+ padding-top: 12px;
92
+ line-height: 20px;
93
+ font-size: 14px;
94
+ }
95
+
96
+ .VPTeamMembersItem.small .links {
97
+ margin: 0 -16px -20px;
98
+ padding: 10px 0 0;
99
+ }
100
+
101
+ .VPTeamMembersItem.medium .profile {
102
+ padding: 48px 32px;
103
+ }
104
+
105
+ .VPTeamMembersItem.medium .data {
106
+ padding-top: 24px;
107
+ text-align: center;
108
+ }
109
+
110
+ .VPTeamMembersItem.medium .avatar {
111
+ width: 96px;
112
+ height: 96px;
113
+ }
114
+
115
+ .VPTeamMembersItem.medium .name {
116
+ letter-spacing: 0.15px;
117
+ line-height: 28px;
118
+ font-size: 20px;
119
+ }
120
+
121
+ .VPTeamMembersItem.medium .affiliation {
122
+ padding-top: 4px;
123
+ font-size: 16px;
124
+ }
125
+
126
+ .VPTeamMembersItem.medium .desc {
127
+ padding-top: 16px;
128
+ max-width: 288px;
129
+ font-size: 16px;
130
+ }
131
+
132
+ .VPTeamMembersItem.medium .links {
133
+ margin: 0 -16px -12px;
134
+ padding: 16px 12px 0;
135
+ }
136
+
137
+ .profile {
138
+ flex-grow: 1;
139
+ background-color: var(--vp-c-bg-soft);
140
+ }
141
+
142
+ .data {
143
+ text-align: center;
144
+ }
145
+
146
+ .avatar {
147
+ position: relative;
148
+ flex-shrink: 0;
149
+ margin: 0 auto;
150
+ border-radius: 50%;
151
+ box-shadow: var(--vp-shadow-3);
152
+ }
153
+
154
+ .avatar-img {
155
+ position: absolute;
156
+ top: 0;
157
+ right: 0;
158
+ bottom: 0;
159
+ left: 0;
160
+ border-radius: 50%;
161
+ object-fit: cover;
162
+ }
163
+
164
+ .name {
165
+ margin: 0;
166
+ font-weight: 600;
167
+ }
168
+
169
+ .affiliation {
170
+ margin: 0;
171
+ font-weight: 500;
172
+ color: var(--vp-c-text-2);
173
+ }
174
+
175
+ .org.link {
176
+ color: var(--vp-c-text-2);
177
+ transition: color 0.25s;
178
+ }
179
+
180
+ .org.link:hover {
181
+ color: var(--vp-c-brand-1);
182
+ }
183
+
184
+ .desc {
185
+ margin: 0 auto;
186
+ }
187
+
188
+ .desc :deep(a) {
189
+ font-weight: 500;
190
+ color: var(--vp-c-brand-1);
191
+ text-decoration-style: dotted;
192
+ transition: color 0.25s;
193
+ }
194
+
195
+ .links {
196
+ display: flex;
197
+ justify-content: center;
198
+ height: 56px;
199
+ }
200
+
201
+ .sp-link {
202
+ display: flex;
203
+ justify-content: center;
204
+ align-items: center;
205
+ text-align: center;
206
+ padding: 16px;
207
+ font-size: 14px;
208
+ font-weight: 500;
209
+ color: var(--vp-c-sponsor);
210
+ background-color: var(--vp-c-bg-soft);
211
+ transition: color 0.25s, background-color 0.25s;
212
+ }
213
+
214
+ .sp .sp-link.link:hover,
215
+ .sp .sp-link.link:focus {
216
+ outline: none;
217
+ color: var(--vp-c-white);
218
+ background-color: var(--vp-c-sponsor);
219
+ }
220
+
221
+ .sp-icon {
222
+ margin-right: 8px;
223
+ font-size: 16px;
224
+ }
225
+ </style>
@@ -0,0 +1,58 @@
1
+ <template>
2
+ <div class="VPTeamPage">
3
+ <slot />
4
+ </div>
5
+ </template>
6
+
7
+ <style scoped>
8
+ .VPTeamPage {
9
+ margin: 96px 0;
10
+ }
11
+
12
+ @media (min-width: 768px) {
13
+ .VPTeamPage {
14
+ margin: 128px 0;
15
+ }
16
+ }
17
+
18
+ .VPHome :slotted(.VPTeamPageTitle) {
19
+ border-top: 1px solid var(--vp-c-gutter);
20
+ padding-top: 88px !important;
21
+ }
22
+
23
+ :slotted(.VPTeamPageSection + .VPTeamPageSection),
24
+ :slotted(.VPTeamMembers + .VPTeamPageSection) {
25
+ margin-top: 64px;
26
+ }
27
+
28
+ :slotted(.VPTeamMembers + .VPTeamMembers) {
29
+ margin-top: 24px;
30
+ }
31
+
32
+ @media (min-width: 768px) {
33
+ :slotted(.VPTeamPageTitle + .VPTeamPageSection) {
34
+ margin-top: 16px;
35
+ }
36
+
37
+ :slotted(.VPTeamPageSection + .VPTeamPageSection),
38
+ :slotted(.VPTeamMembers + .VPTeamPageSection) {
39
+ margin-top: 96px;
40
+ }
41
+ }
42
+
43
+ :slotted(.VPTeamMembers) {
44
+ padding: 0 24px;
45
+ }
46
+
47
+ @media (min-width: 768px) {
48
+ :slotted(.VPTeamMembers) {
49
+ padding: 0 48px;
50
+ }
51
+ }
52
+
53
+ @media (min-width: 960px) {
54
+ :slotted(.VPTeamMembers) {
55
+ padding: 0 64px;
56
+ }
57
+ }
58
+ </style>
@@ -0,0 +1,77 @@
1
+ <template>
2
+ <section class="VPTeamPageSection">
3
+ <div class="title">
4
+ <div class="title-line" />
5
+ <h2 v-if="$slots.title" class="title-text">
6
+ <slot name="title" />
7
+ </h2>
8
+ </div>
9
+ <p v-if="$slots.lead" class="lead">
10
+ <slot name="lead" />
11
+ </p>
12
+ <div v-if="$slots.members" class="members">
13
+ <slot name="members" />
14
+ </div>
15
+ </section>
16
+ </template>
17
+
18
+ <style scoped>
19
+ .VPTeamPageSection {
20
+ padding: 0 32px;
21
+ }
22
+
23
+ @media (min-width: 768px) {
24
+ .VPTeamPageSection {
25
+ padding: 0 48px;
26
+ }
27
+ }
28
+
29
+ @media (min-width: 960px) {
30
+ .VPTeamPageSection {
31
+ padding: 0 64px;
32
+ }
33
+ }
34
+
35
+ .title {
36
+ position: relative;
37
+ margin: 0 auto;
38
+ max-width: 1152px;
39
+ text-align: center;
40
+ color: var(--vp-c-text-2);
41
+ }
42
+
43
+ .title-line {
44
+ position: absolute;
45
+ top: 16px;
46
+ left: 0;
47
+ width: 100%;
48
+ height: 1px;
49
+ background-color: var(--vp-c-divider);
50
+ }
51
+
52
+ .title-text {
53
+ position: relative;
54
+ display: inline-block;
55
+ padding: 0 24px;
56
+ letter-spacing: 0;
57
+ line-height: 32px;
58
+ font-size: 20px;
59
+ font-weight: 500;
60
+ background-color: var(--vp-c-bg);
61
+ }
62
+
63
+ .lead {
64
+ margin: 0 auto;
65
+ max-width: 480px;
66
+ padding-top: 12px;
67
+ text-align: center;
68
+ line-height: 24px;
69
+ font-size: 16px;
70
+ font-weight: 500;
71
+ color: var(--vp-c-text-2);
72
+ }
73
+
74
+ .members {
75
+ padding-top: 40px;
76
+ }
77
+ </style>
@@ -0,0 +1,63 @@
1
+ <template>
2
+ <div class="VPTeamPageTitle">
3
+ <h1 v-if="$slots.title" class="title">
4
+ <slot name="title" />
5
+ </h1>
6
+ <p v-if="$slots.lead" class="lead">
7
+ <slot name="lead" />
8
+ </p>
9
+ </div>
10
+ </template>
11
+
12
+ <style scoped>
13
+ .VPTeamPageTitle {
14
+ padding: 48px 32px;
15
+ text-align: center;
16
+ }
17
+
18
+ @media (min-width: 768px) {
19
+ .VPTeamPageTitle {
20
+ padding: 64px 48px 48px;
21
+ }
22
+ }
23
+
24
+ @media (min-width: 960px) {
25
+ .VPTeamPageTitle {
26
+ padding: 80px 64px 48px;
27
+ }
28
+ }
29
+
30
+ .title {
31
+ letter-spacing: 0;
32
+ line-height: 44px;
33
+ font-size: 36px;
34
+ font-weight: 500;
35
+ }
36
+
37
+ @media (min-width: 768px) {
38
+ .title {
39
+ letter-spacing: -0.5px;
40
+ line-height: 56px;
41
+ font-size: 48px;
42
+ }
43
+ }
44
+
45
+ .lead {
46
+ margin: 0 auto;
47
+ max-width: 512px;
48
+ padding-top: 12px;
49
+ line-height: 24px;
50
+ font-size: 16px;
51
+ font-weight: 500;
52
+ color: var(--vp-c-text-2);
53
+ }
54
+
55
+ @media (min-width: 768px) {
56
+ .lead {
57
+ max-width: 592px;
58
+ letter-spacing: 0.15px;
59
+ line-height: 28px;
60
+ font-size: 20px;
61
+ }
62
+ }
63
+ </style>
@@ -0,0 +1,8 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M21,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,11,21,11z" />
4
+ <path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z" />
5
+ <path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z" />
6
+ <path d="M21,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,19,21,19z" />
7
+ </svg>
8
+ </template>
@@ -0,0 +1,8 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z" />
4
+ <path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z" />
5
+ <path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z" />
6
+ <path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z" />
7
+ </svg>
8
+ </template>
@@ -0,0 +1,8 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M21,11H7c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S21.6,11,21,11z" />
4
+ <path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z" />
5
+ <path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z" />
6
+ <path d="M21,19H7c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S21.6,19,21,19z" />
7
+ </svg>
8
+ </template>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
3
+ <path
4
+ d="M19,11H7.4l5.3-5.3c0.4-0.4,0.4-1,0-1.4s-1-0.4-1.4,0l-7,7c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.2-0.1,0.5,0,0.8c0.1,0.1,0.1,0.2,0.2,0.3l7,7c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4L7.4,13H19c0.6,0,1-0.4,1-1S19.6,11,19,11z"
5
+ />
6
+ </svg>
7
+ </template>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
3
+ <path
4
+ d="M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"
5
+ />
6
+ </svg>
7
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z" />
4
+ </svg>
5
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M15,19c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4l6-6c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4L10.4,12l5.3,5.3c0.4,0.4,0.4,1,0,1.4C15.5,18.9,15.3,19,15,19z" />
4
+ </svg>
5
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z" />
4
+ </svg>
5
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M18,16c-0.3,0-0.5-0.1-0.7-0.3L12,10.4l-5.3,5.3c-0.4,0.4-1,0.4-1.4,0s-0.4-1,0-1.4l6-6c0.4-0.4,1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4C18.5,15.9,18.3,16,18,16z" />
4
+ </svg>
5
+ </template>
@@ -0,0 +1,6 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
3
+ <path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z" />
4
+ <path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z" />
5
+ </svg>
6
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
3
+ <path d="M12,22.2c-0.3,0-0.5-0.1-0.7-0.3l-8.8-8.8c-2.5-2.5-2.5-6.7,0-9.2c2.5-2.5,6.7-2.5,9.2,0L12,4.3l0.4-0.4c0,0,0,0,0,0C13.6,2.7,15.2,2,16.9,2c0,0,0,0,0,0c1.7,0,3.4,0.7,4.6,1.9l0,0c1.2,1.2,1.9,2.9,1.9,4.6c0,1.7-0.7,3.4-1.9,4.6l-8.8,8.8C12.5,22.1,12.3,22.2,12,22.2zM7,4C5.9,4,4.7,4.4,3.9,5.3c-1.8,1.8-1.8,4.6,0,6.4l8.1,8.1l8.1-8.1c0.9-0.9,1.3-2,1.3-3.2c0-1.2-0.5-2.3-1.3-3.2l0,0C19.3,4.5,18.2,4,17,4c0,0,0,0,0,0c-1.2,0-2.3,0.5-3.2,1.3c0,0,0,0,0,0l-1.1,1.1c-0.4,0.4-1,0.4-1.4,0l-1.1-1.1C9.4,4.4,8.2,4,7,4z" />
4
+ </svg>
5
+ </template>
@@ -0,0 +1,9 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M0 0h24v24H0z" fill="none"></path>
4
+ <path
5
+ d=" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z "
6
+ class="css-c4d79v"
7
+ ></path>
8
+ </svg>
9
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
3
+ <path d="M22,13H2a1,1,0,0,1,0-2H22a1,1,0,0,1,0,2Z" />
4
+ </svg>
5
+ </template>
@@ -0,0 +1,6 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
3
+ <path d="M19,2H5C3.3,2,2,3.3,2,5v14c0,1.7,1.3,3,3,3h14c1.7,0,3-1.3,3-3V5C22,3.3,20.7,2,19,2zM20,19c0,0.6-0.4,1-1,1H5c-0.6,0-1-0.4-1-1V5c0-0.6,0.4-1,1-1h14c0.6,0,1,0.4,1,1V19z" />
4
+ <path d="M16,11H8c-0.6,0-1,0.4-1,1s0.4,1,1,1h8c0.6,0,1-0.4,1-1S16.6,11,16,11z" />
5
+ </svg>
6
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z" />
4
+ </svg>
5
+ </template>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <circle cx="12" cy="12" r="2" />
4
+ <circle cx="19" cy="12" r="2" />
5
+ <circle cx="5" cy="12" r="2" />
6
+ </svg>
7
+ </template>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z" />
4
+ </svg>
5
+ </template>
@@ -0,0 +1,6 @@
1
+ <template>
2
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
3
+ <path d="M19,2H5C3.3,2,2,3.3,2,5v14c0,1.7,1.3,3,3,3h14c1.7,0,3-1.3,3-3V5C22,3.3,20.7,2,19,2z M20,19c0,0.6-0.4,1-1,1H5c-0.6,0-1-0.4-1-1V5c0-0.6,0.4-1,1-1h14c0.6,0,1,0.4,1,1V19z" />
4
+ <path d="M16,11h-3V8c0-0.6-0.4-1-1-1s-1,0.4-1,1v3H8c-0.6,0-1,0.4-1,1s0.4,1,1,1h3v3c0,0.6,0.4,1,1,1s1-0.4,1-1v-3h3c0.6,0,1-0.4,1-1S16.6,11,16,11z" />
5
+ </svg>
6
+ </template>
@@ -0,0 +1,13 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 24 24">
3
+ <path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z" />
4
+ <path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z" />
5
+ <path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z" />
6
+ <path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z" />
7
+ <path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z" />
8
+ <path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z" />
9
+ <path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z" />
10
+ <path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z" />
11
+ <path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z" />
12
+ </svg>
13
+ </template>
@@ -0,0 +1,17 @@
1
+ import { useMediaQuery } from '@vueuse/core';
2
+ import { computed } from 'vue';
3
+ import { useSidebar } from './sidebar';
4
+ export function useAside() {
5
+ const { hasSidebar } = useSidebar();
6
+ const is960 = useMediaQuery('(min-width: 960px)');
7
+ const is1280 = useMediaQuery('(min-width: 1280px)');
8
+ const isAsideEnabled = computed(() => {
9
+ if (!is1280.value && !is960.value) {
10
+ return false;
11
+ }
12
+ return hasSidebar.value ? is1280.value : is960.value;
13
+ });
14
+ return {
15
+ isAsideEnabled
16
+ };
17
+ }
@@ -0,0 +1,2 @@
1
+ import { useData as useData$ } from 'vitepress';
2
+ export const useData = useData$;
@@ -0,0 +1,16 @@
1
+ import { computed } from 'vue';
2
+ import { useData } from './data';
3
+ export function useEditLink() {
4
+ const { theme, page } = useData();
5
+ return computed(() => {
6
+ const { text = 'Edit this page', pattern = '' } = theme.value.editLink || {};
7
+ let url;
8
+ if (typeof pattern === 'function') {
9
+ url = pattern(page.value);
10
+ }
11
+ else {
12
+ url = pattern.replace(/:path/g, page.value.filePath);
13
+ }
14
+ return { url, text };
15
+ });
16
+ }
@@ -0,0 +1,41 @@
1
+ import { ref, watch, readonly, onUnmounted } from 'vue';
2
+ import { inBrowser } from '../../shared';
3
+ export const focusedElement = ref();
4
+ let active = false;
5
+ let listeners = 0;
6
+ export function useFlyout(options) {
7
+ const focus = ref(false);
8
+ if (inBrowser) {
9
+ !active && activateFocusTracking();
10
+ listeners++;
11
+ const unwatch = watch(focusedElement, (el) => {
12
+ if (el === options.el.value || options.el.value?.contains(el)) {
13
+ focus.value = true;
14
+ options.onFocus?.();
15
+ }
16
+ else {
17
+ focus.value = false;
18
+ options.onBlur?.();
19
+ }
20
+ });
21
+ onUnmounted(() => {
22
+ unwatch();
23
+ listeners--;
24
+ if (!listeners) {
25
+ deactivateFocusTracking();
26
+ }
27
+ });
28
+ }
29
+ return readonly(focus);
30
+ }
31
+ function activateFocusTracking() {
32
+ document.addEventListener('focusin', handleFocusIn);
33
+ active = true;
34
+ focusedElement.value = document.activeElement;
35
+ }
36
+ function deactivateFocusTracking() {
37
+ document.removeEventListener('focusin', handleFocusIn);
38
+ }
39
+ function handleFocusIn() {
40
+ focusedElement.value = document.activeElement;
41
+ }