diff --git a/docs/.vuepress/client.ts b/docs/.vuepress/client.ts
new file mode 100644
index 00000000..a3f515cf
--- /dev/null
+++ b/docs/.vuepress/client.ts
@@ -0,0 +1,10 @@
+import { type ClientConfig, defineClientConfig } from 'vuepress/client'
+import HeroTintPlateConfig from './themes/components/HeroTintPlateConfig.vue'
+import CanIUseConfig from './themes/components/CanIUseConfig.vue'
+
+export default defineClientConfig({
+ enhance({ app }) {
+ app.component('HeroTintPlateConfig', HeroTintPlateConfig)
+ app.component('CanIUseConfig', CanIUseConfig)
+ },
+}) as ClientConfig
diff --git a/docs/.vuepress/navbar.ts b/docs/.vuepress/navbar.ts
index 1fded558..e13c3537 100644
--- a/docs/.vuepress/navbar.ts
+++ b/docs/.vuepress/navbar.ts
@@ -33,6 +33,7 @@ export const zhNavbar = [
text: '更多',
icon: 'icon-park-outline:more-three',
items: [
+ { text: '主题工具', link: '/tools/' },
{ text: '友情链接', link: '/friends/' },
{
text: 'Vuepress',
diff --git a/docs/.vuepress/notes.ts b/docs/.vuepress/notes.ts
index 46528174..e930fa9f 100644
--- a/docs/.vuepress/notes.ts
+++ b/docs/.vuepress/notes.ts
@@ -124,6 +124,18 @@ export const zhNotes = definePlumeNotesConfig({
},
],
},
+ {
+ dir: 'tools',
+ link: '/tools/',
+ sidebar: [
+ {
+ text: '工具',
+ icon: 'tabler:tools',
+ link: '/tools/',
+ items: ['home-hero-tint-plate', 'caniuse'],
+ },
+ ],
+ },
],
})
diff --git a/docs/.vuepress/themes/components/CanIUseConfig.vue b/docs/.vuepress/themes/components/CanIUseConfig.vue
new file mode 100644
index 00000000..8c9e8b4f
--- /dev/null
+++ b/docs/.vuepress/themes/components/CanIUseConfig.vue
@@ -0,0 +1,267 @@
+
+
+
+
+
+
+
输出:
+
+
+
+
+ 生成预览
+
+
+
+
+
+
+
diff --git a/docs/.vuepress/themes/components/CodeViewer.vue b/docs/.vuepress/themes/components/CodeViewer.vue
new file mode 100644
index 00000000..3b1ea74c
--- /dev/null
+++ b/docs/.vuepress/themes/components/CodeViewer.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/docs/.vuepress/themes/components/CustomTintPlate.vue b/docs/.vuepress/themes/components/CustomTintPlate.vue
new file mode 100644
index 00000000..fbd10999
--- /dev/null
+++ b/docs/.vuepress/themes/components/CustomTintPlate.vue
@@ -0,0 +1,65 @@
+
+
+
+ 浅色模式建议使用 "150 ~ 240" 之间的值, 深色模式建议使用 "20 ~ 80" 之间的值:
+
+ R:
+
+ offset
+
+
+
+ G:
+
+ offset
+
+
+
+ B:
+
+ offset
+
+
+
+
+
diff --git a/docs/.vuepress/themes/components/DemoWrapper.vue b/docs/.vuepress/themes/components/DemoWrapper.vue
new file mode 100644
index 00000000..d1076921
--- /dev/null
+++ b/docs/.vuepress/themes/components/DemoWrapper.vue
@@ -0,0 +1,12 @@
+
+
+
diff --git a/docs/.vuepress/themes/components/HeroTintPlateConfig.vue b/docs/.vuepress/themes/components/HeroTintPlateConfig.vue
new file mode 100644
index 00000000..5c2cbd88
--- /dev/null
+++ b/docs/.vuepress/themes/components/HeroTintPlateConfig.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
效果预览:
+
+
+
+
+
+
+
+ 深色模式
+
+
+
+
+
+
+
+
+
+
输出:
+
+
+
+
+
+
diff --git a/docs/.vuepress/themes/components/InputRange.vue b/docs/.vuepress/themes/components/InputRange.vue
new file mode 100644
index 00000000..daf41fb4
--- /dev/null
+++ b/docs/.vuepress/themes/components/InputRange.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
diff --git a/docs/.vuepress/themes/components/SingleTintPlate.vue b/docs/.vuepress/themes/components/SingleTintPlate.vue
new file mode 100644
index 00000000..f6b77a1d
--- /dev/null
+++ b/docs/.vuepress/themes/components/SingleTintPlate.vue
@@ -0,0 +1,23 @@
+
+
+
+ 浅色模式建议使用 "150 ~ 240" 之间的值, 深色模式建议使用 "20 ~ 80" 之间的值:
+
+ RGB:
+
+
+
+
+
diff --git a/docs/.vuepress/themes/components/TripletTintPlate.vue b/docs/.vuepress/themes/components/TripletTintPlate.vue
new file mode 100644
index 00000000..88b74123
--- /dev/null
+++ b/docs/.vuepress/themes/components/TripletTintPlate.vue
@@ -0,0 +1,34 @@
+
+
+
+ 浅色模式建议使用 "150 ~ 240" 之间的值, 深色模式建议使用 "20 ~ 80" 之间的值:
+
+ R:
+
+
+
+ G:
+
+
+
+ B:
+
+
+
+
+
diff --git a/docs/.vuepress/themes/composables/caniuse.ts b/docs/.vuepress/themes/composables/caniuse.ts
new file mode 100644
index 00000000..9ac85d3f
--- /dev/null
+++ b/docs/.vuepress/themes/composables/caniuse.ts
@@ -0,0 +1,46 @@
+export function resolveCanIUse(feature: string, mode: string, versions: string): string {
+ if (!feature)
+ return ''
+
+ if (mode === 'image') {
+ const link = 'https://caniuse.bitsofco.de/image/'
+ const alt = `Data on support for the ${feature} feature across the major browsers from caniuse.com`
+ return `
+
+
+
+
`
+ }
+
+ const periods = resolveVersions(versions)
+ const accessible = 'false'
+ const image = 'none'
+ const url = 'https://caniuse.bitsofco.de/embed/index.html'
+ const src = `${url}?feat=${feature}&periods=${periods}&accessible-colours=${accessible}&image-base=${image}`
+
+ return `
`
+}
+
+function resolveVersions(versions: string): string {
+ if (!versions)
+ return 'future_1,current,past_1,past_2'
+
+ const list = versions
+ .split(',')
+ .map(v => Number(v.trim()))
+ .filter(v => !Number.isNaN(v) && v >= -5 && v <= 3)
+
+ list.push(0)
+
+ const uniq = [...new Set(list)].sort((a, b) => b - a)
+ const result: string[] = []
+ uniq.forEach((v) => {
+ if (v < 0)
+ result.push(`past_${Math.abs(v)}`)
+ if (v === 0)
+ result.push('current')
+ if (v > 0)
+ result.push(`future_${v}`)
+ })
+ return result.join(',')
+}
diff --git a/docs/README.md b/docs/README.md
index 577501c4..a126b9a4 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -5,7 +5,7 @@ config:
-
type: hero
full: true
- background: filter-blur
+ background: tint-plate
hero:
name: Theme Plume
tagline: VuePress Next Theme
diff --git a/docs/en/README.md b/docs/en/README.md
index dcc45ac1..b9f038a7 100644
--- a/docs/en/README.md
+++ b/docs/en/README.md
@@ -5,7 +5,7 @@ config:
-
type: hero
full: true
- background: filter-blur
+ background: tint-plate
hero:
name: Theme Plume
tagline: Vuepress Next Theme
diff --git a/docs/notes/theme/config/notes配置.md b/docs/notes/theme/config/notes配置.md
index 39987023..8726e347 100644
--- a/docs/notes/theme/config/notes配置.md
+++ b/docs/notes/theme/config/notes配置.md
@@ -121,9 +121,13 @@ interface NotesSidebarItem {
*/
items?: NotesSidebar
/**
- * 侧边栏图标
+ * - 支持 iconify 图标,直接使用 iconify name 即可自动加载
+ * @see https://icon-sets.iconify.design/
+ *
+ * - 如果 iconify 图标不满足您的需求,也可以支持传入 svg 字符串。
+ * - 还支持使用 本地图片 或 远程图片,本地图片的路径需要以 `/` 开头。
*/
- icon?: string
+ icon?: string | { svg: string }
}
```
@@ -135,7 +139,8 @@ interface NotesSidebarItem {
### 侧边栏图标
-主题不仅可以通过 侧边栏配置中 `icon` 配置图标,还可以通过 文件中的 frontmatter 中 `icon` 字段 配置图标。
+主题不仅可以通过 侧边栏配置中 `icon` 配置图标,还可以通过 文件中的 frontmatter 中 `icon` 字段 配置图标,
+与 侧边栏配置中的 `icon` 一致。
```md
---
diff --git a/docs/notes/theme/config/导航栏配置.md b/docs/notes/theme/config/导航栏配置.md
index 3d77e96d..567f0a83 100644
--- a/docs/notes/theme/config/导航栏配置.md
+++ b/docs/notes/theme/config/导航栏配置.md
@@ -91,10 +91,13 @@ type NavItem = string | {
*/
link: string
/**
- * 支持 iconify 图标,直接使用 iconify name 即可自动加载
+ * - 支持 iconify 图标,直接使用 iconify name 即可自动加载
* @see https://icon-sets.iconify.design/
+ *
+ * - 如果 iconify 图标不满足您的需求,也可以支持传入 svg 字符串。
+ * - 还支持使用 本地图片 或 远程图片,本地图片的路径需要以 `/` 开头。
*/
- icon?: string
+ icon?: string | { svg: string }
/**
* 控制元素何时被激活
*/
diff --git a/docs/notes/theme/guide/markdown/进阶.md b/docs/notes/theme/guide/markdown/进阶.md
index 5ef2a619..d8fc7e1b 100644
--- a/docs/notes/theme/guide/markdown/进阶.md
+++ b/docs/notes/theme/guide/markdown/进阶.md
@@ -327,6 +327,9 @@ export default defineUserConfig({
@[caniuse](feature)
```
+为了方便使用,主题提供了工具支持:[caniuse 特性搜索](/tools/caniuse/),你可以直接使用该工具
+帮助生成 markdown 代码。
+
### 语法
``` md
diff --git a/docs/notes/theme/guide/自定义首页.md b/docs/notes/theme/guide/自定义首页.md
index b694bf55..4a6dda50 100644
--- a/docs/notes/theme/guide/自定义首页.md
+++ b/docs/notes/theme/guide/自定义首页.md
@@ -144,6 +144,8 @@ config:
适用于 文档 类型站点,放置于 首位。
+**工具支持: [首页背景色板配置工具](/tools/home-hero-tint-plate/)**
+
```ts
interface PlumeThemeHomeHero extends PlumeHomeConfigBase {
type: 'hero'
@@ -158,14 +160,36 @@ interface PlumeThemeHomeHero extends PlumeHomeConfigBase {
}
}
/**
- * 背景图片,"filter-blur" 为预设效果
+ * 背景图片,"tint-plate" 为预设效果, 也可以配置为图片地址
*/
- background?: 'filter-blur' | string
+ background?: 'tint-plate' | string
+
+ /**
+ * 当 background 为预设背景时,可以配置 RGB 值,用于调整背景
+ * 该配置仅在 `background` 为 `tint-plate` 时生效
+ */
+ tintPlate?: TintPlate
/**
* 如果是非预设背景,可以设置背景图片的滤镜效果
*/
filter?: string
}
+interface TintPlateObj {
+ // value 表示 基准色值,范围为 0 ~ 255
+ // offset 表示 基准色值的偏移量,范围为 0 ~ (255 - value)
+ r: { value: number, offset: number }
+ g: { value: number, offset: number }
+ b: { value: number, offset: number }
+}
+type TintPlate =
+ | number // 210
+ | string // '210,210,210' => red,green,blue
+ // { r: { value: 220, offset: 36 }, g: { value: 220, offset: 36 }, b: { value: 220, offset: 36 } }
+ | TintPlate
+ // { light: 210, dark: 20 }
+ // { light: '210,210,210', dark: '20,20,20' }
+ | { light: number | string, dark: number | string }
+ | { light: TintPlate, dark: TintPlate }
```
**示例:**
@@ -177,7 +201,7 @@ config:
-
type: hero
full: true
- background: filter-blur
+ background: tint-plate
hero:
name: Theme Plume
tagline: Vuepress Next Theme
@@ -200,6 +224,32 @@ config:
:::
+当 `background` 配置为 `tint-plate` 时,还可以额外配置 `tintPlate` 调整 背景色调,范围为 `0 ~ 255`:
+
+```md
+---
+home: true
+config:
+ -
+ type: hero
+ full: true
+ background: tint-plate
+ tintPlate: 210
+---
+```
+
+`tintPlate` 用于配置 RGB 值:
+
+- 配置为单个值时,表示配置 red,green,blue 三个颜色值为相同值,范围: 0 - 255。示例: `210`。
+- 配置为三个值时,表示配置 red,green,blue 三个颜色值为不同值,范围: 0 - 255。示例: `210,210,210`。
+- 配置为 `TintPlate`,则可以更加灵活的控制每个颜色值和对应的偏移量。
+- 还可以配置为 `{ light, dark }`,在深色模式和浅色模式下使用不同的颜色值。
+
+::: info
+为了便于用户配置 美观的个性化的背景,主题还提供了 [首页背景色板配置工具](/tools/home-hero-tint-plate/)
+进行可视化操作,生成配置内容,你可以直接复制它们用于自己的项目中。
+:::
+
### features
- 类型: `PlumeThemeHomeFeatures`
diff --git a/docs/notes/tools/README.md b/docs/notes/tools/README.md
new file mode 100644
index 00000000..ca92add8
--- /dev/null
+++ b/docs/notes/tools/README.md
@@ -0,0 +1,15 @@
+---
+title: 主题工具包
+author: pengzhanbo
+createTime: 2024/04/16 16:27:03
+permalink: /tools/
+---
+
+## 概述
+
+主题工具包 旨在帮助用户在使用本主题提供的一些功能时,降低其使用门槛。
+
+## 工具列表
+
+- [caniuse 特性搜索](./caniuse.md)
+- [首页背景色板配置](./home-hero-tint-plate.md)
diff --git a/docs/notes/tools/caniuse.md b/docs/notes/tools/caniuse.md
new file mode 100644
index 00000000..e9ec65ee
--- /dev/null
+++ b/docs/notes/tools/caniuse.md
@@ -0,0 +1,15 @@
+---
+title: caniuse 特性搜索
+author: pengzhanbo
+icon: fa-brands:css3
+createTime: 2024/04/16 12:41:26
+permalink: /tools/caniuse/
+readingTime: false
+editLink: false
+contributors: false
+lastUpdated: false
+---
+
+本工具用于帮助搜索 caniuse 中的特性。并生成 caniuse markdown 代码。
+
+
diff --git a/docs/notes/tools/home-hero-tint-plate.md b/docs/notes/tools/home-hero-tint-plate.md
new file mode 100644
index 00000000..3c56fbf4
--- /dev/null
+++ b/docs/notes/tools/home-hero-tint-plate.md
@@ -0,0 +1,16 @@
+---
+title: 首页背景色板配置
+author: pengzhanbo
+icon: icon-park-outline:hand-painted-plate
+createTime: 2024/04/15 20:17:42
+permalink: /tools/home-hero-tint-plate/
+readingTime: false
+editLink: false
+contributors: false
+lastUpdated: false
+---
+
+为了更直观更方便的配置首页 Hero 区域 的 背景色板,主题提供了 色板配置工具,
+帮助生成相对应的配置信息。
+
+
diff --git a/docs/package.json b/docs/package.json
index e20dc46c..2495a440 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -12,14 +12,14 @@
"vuepress": "2.0.0-rc.9"
},
"dependencies": {
- "@iconify/json": "^2.2.200",
+ "@iconify/json": "^2.2.201",
"@vuepress/bundler-vite": "2.0.0-rc.9",
"anywhere": "^1.6.0",
"chart.js": "^4.4.2",
"echarts": "^5.5.0",
"flowchart.ts": "^3.0.0",
"mermaid": "^10.9.0",
- "vue": "^3.4.21",
+ "vue": "^3.4.22",
"vuepress-theme-plume": "workspace:*"
},
"devDependencies": {
diff --git a/package.json b/package.json
index 3284badb..70f77056 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"stylelint": "^16.3.1",
"tsconfig-vuepress": "^4.5.0",
"typescript": "^5.4.5",
- "vite": "^5.2.8"
+ "vite": "^5.2.9"
},
"pnpm": {
"patchedDependencies": {
diff --git a/plugins/plugin-blog-data/package.json b/plugins/plugin-blog-data/package.json
index de6bcd2a..0014de56 100644
--- a/plugins/plugin-blog-data/package.json
+++ b/plugins/plugin-blog-data/package.json
@@ -43,7 +43,7 @@
"@vue/devtools-api": "6.5.1",
"chokidar": "^3.6.0",
"create-filter": "^1.0.1",
- "vue": "^3.4.21"
+ "vue": "^3.4.22"
},
"publishConfig": {
"access": "public"
diff --git a/plugins/plugin-content-update/package.json b/plugins/plugin-content-update/package.json
index ef05c17d..2523d119 100644
--- a/plugins/plugin-content-update/package.json
+++ b/plugins/plugin-content-update/package.json
@@ -40,7 +40,7 @@
"vuepress": "2.0.0-rc.9"
},
"dependencies": {
- "vue": "^3.4.21"
+ "vue": "^3.4.22"
},
"publishConfig": {
"access": "public"
diff --git a/plugins/plugin-copy-code/package.json b/plugins/plugin-copy-code/package.json
index a486a2c8..a37665d3 100644
--- a/plugins/plugin-copy-code/package.json
+++ b/plugins/plugin-copy-code/package.json
@@ -41,7 +41,7 @@
},
"dependencies": {
"@vuepress-plume/plugin-content-update": "workspace:*",
- "vue": "^3.4.21"
+ "vue": "^3.4.22"
},
"publishConfig": {
"access": "public"
diff --git a/plugins/plugin-iconify/package.json b/plugins/plugin-iconify/package.json
index 23f5d52d..8c508169 100644
--- a/plugins/plugin-iconify/package.json
+++ b/plugins/plugin-iconify/package.json
@@ -41,7 +41,7 @@
},
"dependencies": {
"@iconify/vue": "^4.1.1",
- "vue": "^3.4.21"
+ "vue": "^3.4.22"
},
"publishConfig": {
"access": "public"
diff --git a/plugins/plugin-md-power/package.json b/plugins/plugin-md-power/package.json
index 7aeea7bf..8fbfee05 100644
--- a/plugins/plugin-md-power/package.json
+++ b/plugins/plugin-md-power/package.json
@@ -46,15 +46,15 @@
}
},
"dependencies": {
- "@iconify/utils": "^2.1.22",
+ "@iconify/utils": "^2.1.23",
"@vueuse/core": "^10.9.0",
"local-pkg": "^0.5.0",
"markdown-it-container": "^4.0.0",
"nanoid": "^5.0.7",
- "vue": "^3.4.21"
+ "vue": "^3.4.22"
},
"devDependencies": {
- "@iconify/json": "^2.2.200",
+ "@iconify/json": "^2.2.201",
"@types/markdown-it": "^14.0.1"
},
"publishConfig": {
diff --git a/plugins/plugin-notes-data/package.json b/plugins/plugin-notes-data/package.json
index fd59ec8e..9a58c443 100644
--- a/plugins/plugin-notes-data/package.json
+++ b/plugins/plugin-notes-data/package.json
@@ -43,7 +43,7 @@
"@vue/devtools-api": "6.5.1",
"chokidar": "^3.6.0",
"create-filter": "^1.0.1",
- "vue": "^3.4.21"
+ "vue": "^3.4.22"
},
"publishConfig": {
"access": "public"
diff --git a/plugins/plugin-notes-data/src/shared/index.ts b/plugins/plugin-notes-data/src/shared/index.ts
index a197e814..2b7a3773 100644
--- a/plugins/plugin-notes-data/src/shared/index.ts
+++ b/plugins/plugin-notes-data/src/shared/index.ts
@@ -71,7 +71,7 @@ export interface NotesSidebarItem {
/**
* 侧边栏图标
*/
- icon?: string
+ icon?: string | { svg: string }
}
export type NotesData = Record
diff --git a/plugins/plugin-page-collection/package.json b/plugins/plugin-page-collection/package.json
index 85bfe24c..ae322db1 100644
--- a/plugins/plugin-page-collection/package.json
+++ b/plugins/plugin-page-collection/package.json
@@ -36,7 +36,7 @@
"dependencies": {
"@netlify/functions": "^2.6.0",
"leancloud-storage": "^4.15.2",
- "vue": "^3.4.21",
+ "vue": "^3.4.22",
"vue-router": "4.3.0",
"vuepress-plugin-netlify-functions": "workspace:*"
},
diff --git a/plugins/plugin-search/package.json b/plugins/plugin-search/package.json
index 4ff732d8..e3d9fdb3 100644
--- a/plugins/plugin-search/package.json
+++ b/plugins/plugin-search/package.json
@@ -48,7 +48,7 @@
"mark.js": "^8.11.1",
"minisearch": "^6.3.0",
"p-map": "^7.0.2",
- "vue": "^3.4.21"
+ "vue": "^3.4.22"
},
"publishConfig": {
"access": "public"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 315454d0..3c93aa4a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -74,14 +74,14 @@ importers:
specifier: ^5.4.5
version: 5.4.5
vite:
- specifier: ^5.2.8
- version: 5.2.8(@types/node@20.9.1)
+ specifier: ^5.2.9
+ version: 5.2.9(@types/node@20.9.1)
docs:
dependencies:
'@iconify/json':
- specifier: ^2.2.200
- version: 2.2.200
+ specifier: ^2.2.201
+ version: 2.2.201
'@vuepress/bundler-vite':
specifier: 2.0.0-rc.9
version: 2.0.0-rc.9(@types/node@20.9.1)(typescript@5.4.5)
@@ -101,11 +101,11 @@ importers:
specifier: ^10.9.0
version: 10.9.0
vue:
- specifier: ^3.4.21
- version: 3.4.21(typescript@5.4.5)
+ specifier: ^3.4.22
+ version: 3.4.22(typescript@5.4.5)
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
vuepress-theme-plume:
specifier: workspace:*
version: link:../theme
@@ -133,13 +133,13 @@ importers:
version: 1.1.0
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
plugins/plugin-baidu-tongji:
dependencies:
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
plugins/plugin-blog-data:
dependencies:
@@ -153,11 +153,11 @@ importers:
specifier: ^1.0.1
version: 1.0.1
vue:
- specifier: ^3.4.21
- version: 3.4.21(typescript@5.4.5)
+ specifier: ^3.4.22
+ version: 3.4.22(typescript@5.4.5)
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
plugins/plugin-caniuse:
dependencies:
@@ -166,7 +166,7 @@ importers:
version: 4.0.0
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
devDependencies:
'@types/markdown-it':
specifier: ^14.0.1
@@ -175,11 +175,11 @@ importers:
plugins/plugin-content-update:
dependencies:
vue:
- specifier: ^3.4.21
- version: 3.4.21(typescript@5.4.5)
+ specifier: ^3.4.22
+ version: 3.4.22(typescript@5.4.5)
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
plugins/plugin-copy-code:
dependencies:
@@ -187,32 +187,32 @@ importers:
specifier: workspace:*
version: link:../plugin-content-update
vue:
- specifier: ^3.4.21
- version: 3.4.21(typescript@5.4.5)
+ specifier: ^3.4.22
+ version: 3.4.22(typescript@5.4.5)
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
plugins/plugin-iconify:
dependencies:
'@iconify/vue':
specifier: ^4.1.1
- version: 4.1.1(vue@3.4.21)
+ version: 4.1.1(vue@3.4.22)
vue:
- specifier: ^3.4.21
- version: 3.4.21(typescript@5.4.5)
+ specifier: ^3.4.22
+ version: 3.4.22(typescript@5.4.5)
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
plugins/plugin-md-power:
dependencies:
'@iconify/utils':
- specifier: ^2.1.22
- version: 2.1.22
+ specifier: ^2.1.23
+ version: 2.1.23
'@vueuse/core':
specifier: ^10.9.0
- version: 10.9.0(vue@3.4.21)
+ version: 10.9.0(vue@3.4.22)
local-pkg:
specifier: ^0.5.0
version: 0.5.0
@@ -223,15 +223,15 @@ importers:
specifier: ^5.0.7
version: 5.0.7
vue:
- specifier: ^3.4.21
- version: 3.4.21(typescript@5.4.5)
+ specifier: ^3.4.22
+ version: 3.4.22(typescript@5.4.5)
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
devDependencies:
'@iconify/json':
- specifier: ^2.2.200
- version: 2.2.200
+ specifier: ^2.2.201
+ version: 2.2.201
'@types/markdown-it':
specifier: ^14.0.1
version: 14.0.1
@@ -270,7 +270,7 @@ importers:
version: 1.0.32
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
devDependencies:
'@types/node':
specifier: ^20.12.7
@@ -288,11 +288,11 @@ importers:
specifier: ^1.0.1
version: 1.0.1
vue:
- specifier: ^3.4.21
- version: 3.4.21(typescript@5.4.5)
+ specifier: ^3.4.22
+ version: 3.4.22(typescript@5.4.5)
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
plugins/plugin-search:
dependencies:
@@ -301,10 +301,10 @@ importers:
version: 2.0.0-rc.24(typescript@5.4.5)(vuepress@2.0.0-rc.9)
'@vueuse/core':
specifier: ^10.9.0
- version: 10.9.0(vue@3.4.21)
+ version: 10.9.0(vue@3.4.22)
'@vueuse/integrations':
specifier: ^10.9.0
- version: 10.9.0(focus-trap@7.5.4)(vue@3.4.21)
+ version: 10.9.0(focus-trap@7.5.4)(vue@3.4.22)
chokidar:
specifier: ^3.6.0
version: 3.6.0
@@ -321,11 +321,11 @@ importers:
specifier: ^7.0.2
version: 7.0.2
vue:
- specifier: ^3.4.21
- version: 3.4.21(typescript@5.4.5)
+ specifier: ^3.4.22
+ version: 3.4.22(typescript@5.4.5)
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
plugins/plugin-shikiji:
dependencies:
@@ -340,7 +340,7 @@ importers:
version: 3.0.4
floating-vue:
specifier: ^5.2.2
- version: 5.2.2(vue@3.4.21)
+ version: 5.2.2(vue@3.4.22)
mdast-util-from-markdown:
specifier: ^2.0.0
version: 2.0.0
@@ -364,7 +364,7 @@ importers:
version: 0.2.5(typescript@5.4.5)
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
theme:
dependencies:
@@ -445,7 +445,7 @@ importers:
version: 2.0.0-rc.24(typescript@5.4.5)(vuepress@2.0.0-rc.9)
'@vueuse/core':
specifier: ^10.9.0
- version: 10.9.0(vue@3.4.21)
+ version: 10.9.0(vue@3.4.22)
bcrypt-ts:
specifier: ^5.0.2
version: 5.0.2
@@ -462,14 +462,14 @@ importers:
specifier: ^5.0.7
version: 5.0.7
vue:
- specifier: ^3.4.21
- version: 3.4.21(typescript@5.4.5)
+ specifier: ^3.4.22
+ version: 3.4.22(typescript@5.4.5)
vue-router:
specifier: 4.3.0
- version: 4.3.0(vue@3.4.21)
+ version: 4.3.0(vue@3.4.22)
vuepress:
specifier: 2.0.0-rc.9
- version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ version: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
vuepress-plugin-md-enhance:
specifier: 2.0.0-rc.32
version: 2.0.0-rc.32(katex@0.16.10)(markdown-it@14.1.0)(typescript@5.4.5)(vuepress@2.0.0-rc.9)
@@ -523,9 +523,6 @@ packages:
peerDependencies:
'@algolia/client-search': '>= 4.9.1 < 6'
algoliasearch: '>= 4.9.1 < 6'
- peerDependenciesMeta:
- '@algolia/client-search':
- optional: true
dependencies:
'@algolia/client-search': 4.20.0
algoliasearch: 4.20.0
@@ -668,6 +665,14 @@ packages:
dependencies:
'@babel/types': 7.23.6
+ /@babel/parser@7.24.4:
+ resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.23.6
+ dev: false
+
/@babel/runtime@7.21.5:
resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==}
engines: {node: '>=6.9.0'}
@@ -1771,8 +1776,8 @@ packages:
resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
dev: false
- /@iconify/json@2.2.200:
- resolution: {integrity: sha512-hnGvv2qeQD+DYhbCZSjnIlSi63dPFNmnMWCqLh0cL0kOqQBYsL61ViMjiusjVHKgBWf+fI4Sp6/bsoFuEWbhQg==}
+ /@iconify/json@2.2.201:
+ resolution: {integrity: sha512-5jM9TAa55YSEfx2WX1/GsHL9FSSH1PsA38V3p26SDmnOSmfb3V7r5yBgO8oIFkXdFQFk59MgESEOziapNtTGkw==}
dependencies:
'@iconify/types': 2.0.0
pathe: 1.1.2
@@ -1780,8 +1785,8 @@ packages:
/@iconify/types@2.0.0:
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
- /@iconify/utils@2.1.22:
- resolution: {integrity: sha512-6UHVzTVXmvO8uS6xFF+L/QTSpTzA/JZxtgU+KYGFyDYMEObZ1bu/b5l+zNJjHy+0leWjHI+C0pXlzGvv3oXZMA==}
+ /@iconify/utils@2.1.23:
+ resolution: {integrity: sha512-YGNbHKM5tyDvdWZ92y2mIkrfvm5Fvhe6WJSkWu7vvOFhMtYDP0casZpoRz0XEHZCrYsR4stdGT3cZ52yp5qZdQ==}
dependencies:
'@antfu/install-pkg': 0.1.1
'@antfu/utils': 0.7.7
@@ -1794,13 +1799,13 @@ packages:
- supports-color
dev: false
- /@iconify/vue@4.1.1(vue@3.4.21):
+ /@iconify/vue@4.1.1(vue@3.4.22):
resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==}
peerDependencies:
vue: '>=3'
dependencies:
'@iconify/types': 2.0.0
- vue: 3.4.21(typescript@5.4.5)
+ vue: 3.4.22(typescript@5.4.5)
dev: false
/@import-maps/resolve@1.0.1:
@@ -4033,7 +4038,7 @@ packages:
- supports-color
dev: false
- /@vitejs/plugin-vue@5.0.4(vite@5.2.2)(vue@3.4.21):
+ /@vitejs/plugin-vue@5.0.4(vite@5.2.2)(vue@3.4.22):
resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
@@ -4041,7 +4046,7 @@ packages:
vue: ^3.2.25
dependencies:
vite: 5.2.2(@types/node@20.9.1)
- vue: 3.4.21(typescript@5.4.5)
+ vue: 3.4.22(typescript@5.4.5)
dev: false
/@volar/language-core@1.11.1:
@@ -4065,12 +4070,29 @@ packages:
estree-walker: 2.0.2
source-map-js: 1.2.0
+ /@vue/compiler-core@3.4.22:
+ resolution: {integrity: sha512-FBDRCBE/rFPA8OfTUrARx2c49N7zoImlGT7hsFikv0pZxQlFhffQwewpEXaLynZW0/DspVXmNA+QQ9dXINpWmg==}
+ dependencies:
+ '@babel/parser': 7.24.4
+ '@vue/shared': 3.4.22
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.0
+ dev: false
+
/@vue/compiler-dom@3.4.21:
resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==}
dependencies:
'@vue/compiler-core': 3.4.21
'@vue/shared': 3.4.21
+ /@vue/compiler-dom@3.4.22:
+ resolution: {integrity: sha512-YkAS+jZc6Ip360kT3lZbMQZteiYBbHDSVKr94Jdd8Zjr7VjSkkXKAFFR/FW+2tNtBYXOps6xrWlOquy3GeYB0w==}
+ dependencies:
+ '@vue/compiler-core': 3.4.22
+ '@vue/shared': 3.4.22
+ dev: false
+
/@vue/compiler-sfc@3.4.21:
resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==}
dependencies:
@@ -4083,12 +4105,35 @@ packages:
magic-string: 0.30.7
postcss: 8.4.38
source-map-js: 1.2.0
+ dev: true
+
+ /@vue/compiler-sfc@3.4.22:
+ resolution: {integrity: sha512-Pncp5Vc8E2Ef1o5uveO8WA1IqM7rt0R1jN8D4qitQYOUxC97iITGYA8oMInQ3UcDS7ip+SegyA2HbAEB4V6NMQ==}
+ dependencies:
+ '@babel/parser': 7.24.4
+ '@vue/compiler-core': 3.4.22
+ '@vue/compiler-dom': 3.4.22
+ '@vue/compiler-ssr': 3.4.22
+ '@vue/shared': 3.4.22
+ estree-walker: 2.0.2
+ magic-string: 0.30.9
+ postcss: 8.4.38
+ source-map-js: 1.2.0
+ dev: false
/@vue/compiler-ssr@3.4.21:
resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==}
dependencies:
'@vue/compiler-dom': 3.4.21
'@vue/shared': 3.4.21
+ dev: true
+
+ /@vue/compiler-ssr@3.4.22:
+ resolution: {integrity: sha512-ycb2sL0SW6AkgVMrvaU/TIAEk7FQWyv/oYya44E/V9xURM+ij9Oev5bVobSS7GLJzkUieWW3SrYcK/PZpb5i4A==}
+ dependencies:
+ '@vue/compiler-dom': 3.4.22
+ '@vue/shared': 3.4.22
+ dev: false
/@vue/devtools-api@6.5.1:
resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==}
@@ -4118,44 +4163,48 @@ packages:
vue-template-compiler: 2.7.16
dev: false
- /@vue/reactivity@3.4.21:
- resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==}
+ /@vue/reactivity@3.4.22:
+ resolution: {integrity: sha512-+golHRRfcGoahBrhoTauFNIIAhxntRV3BI8HHqVvCdsuWivxW1MI0E9AOXVsz4H/ZlWM1ahudWTX6PhUrNR2yQ==}
dependencies:
- '@vue/shared': 3.4.21
+ '@vue/shared': 3.4.22
dev: false
- /@vue/runtime-core@3.4.21:
- resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==}
+ /@vue/runtime-core@3.4.22:
+ resolution: {integrity: sha512-cbA8lcL4g1907EdY1a1KmP5IRWfbqjgBRcgJPkF//yn96XSC1/VAJBZiAGLiyw0P77Rw2Ao7d9U51vU1GC6yUQ==}
dependencies:
- '@vue/reactivity': 3.4.21
- '@vue/shared': 3.4.21
+ '@vue/reactivity': 3.4.22
+ '@vue/shared': 3.4.22
dev: false
- /@vue/runtime-dom@3.4.21:
- resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==}
+ /@vue/runtime-dom@3.4.22:
+ resolution: {integrity: sha512-AXxRHrFkLX1y2+70CO2wDKRxW0WZcQKTOXS31AK+jZ1RLPtI6sEHVpYNfyE9WgbgXOqPtX4gfIfuoFYi8iCu2w==}
dependencies:
- '@vue/runtime-core': 3.4.21
- '@vue/shared': 3.4.21
+ '@vue/runtime-core': 3.4.22
+ '@vue/shared': 3.4.22
csstype: 3.1.3
dev: false
- /@vue/server-renderer@3.4.21(vue@3.4.21):
- resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==}
+ /@vue/server-renderer@3.4.22(vue@3.4.22):
+ resolution: {integrity: sha512-okiNxiCOhJlx6IOrTZvhIVwf2UYKay0hnIPqWu4h19bkNv1gmG4Ic6U3zXY287AWF26lQuFMa515Qzc+R0aAYg==}
peerDependencies:
- vue: 3.4.21
+ vue: 3.4.22
dependencies:
- '@vue/compiler-ssr': 3.4.21
- '@vue/shared': 3.4.21
- vue: 3.4.21(typescript@5.4.5)
+ '@vue/compiler-ssr': 3.4.22
+ '@vue/shared': 3.4.22
+ vue: 3.4.22(typescript@5.4.5)
dev: false
/@vue/shared@3.4.21:
resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==}
+ /@vue/shared@3.4.22:
+ resolution: {integrity: sha512-cg7R9XNk4ovV3bKka/1a464O2oY0l5Fyt0rwGR4hSJRPjUJ0WVjrPdsr4W0JbUriwiM8EKcCcCjeKN5pRMs2Zg==}
+ dev: false
+
/@vuepress/bundler-vite@2.0.0-rc.9(@types/node@20.9.1)(typescript@5.4.5):
resolution: {integrity: sha512-GcM2eSqW2mPY5xXX4i5kuZujvwUeiTpsLX5kgau9LzPox+FdA3SMUkppCY3hsou2o2RxXPTfjocE7OlYQrUqvA==}
dependencies:
- '@vitejs/plugin-vue': 5.0.4(vite@5.2.2)(vue@3.4.21)
+ '@vitejs/plugin-vue': 5.0.4(vite@5.2.2)(vue@3.4.22)
'@vuepress/client': 2.0.0-rc.9(typescript@5.4.5)
'@vuepress/core': 2.0.0-rc.9(typescript@5.4.5)
'@vuepress/shared': 2.0.0-rc.9
@@ -4166,8 +4215,8 @@ packages:
postcss-load-config: 5.0.3(postcss@8.4.38)
rollup: 4.13.0
vite: 5.2.2(@types/node@20.9.1)
- vue: 3.4.21(typescript@5.4.5)
- vue-router: 4.3.0(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vue-router: 4.3.0(vue@3.4.22)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -4202,8 +4251,8 @@ packages:
dependencies:
'@vue/devtools-api': 6.6.1
'@vuepress/shared': 2.0.0-rc.9
- vue: 3.4.21(typescript@5.4.5)
- vue-router: 4.3.0(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vue-router: 4.3.0(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4215,7 +4264,7 @@ packages:
'@vuepress/markdown': 2.0.0-rc.9(patch_hash=f3on36z73gmvj4jugj25dg7wje)
'@vuepress/shared': 2.0.0-rc.9
'@vuepress/utils': 2.0.0-rc.9
- vue: 3.4.21(typescript@5.4.5)
+ vue: 3.4.22(typescript@5.4.5)
transitivePeerDependencies:
- supports-color
- typescript
@@ -4230,8 +4279,8 @@ packages:
cheerio: 1.0.0-rc.12
fflate: 0.8.2
gray-matter: 4.0.3
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4245,8 +4294,8 @@ packages:
cheerio: 1.0.0-rc.12
fflate: 0.8.2
gray-matter: 4.0.3
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4280,9 +4329,9 @@ packages:
peerDependencies:
vuepress: 2.0.0-rc.9
dependencies:
- '@vueuse/core': 10.9.0(vue@3.4.21)
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ '@vueuse/core': 10.9.0(vue@3.4.22)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- '@vue/composition-api'
- typescript
@@ -4308,8 +4357,8 @@ packages:
dependencies:
'@vuepress/helper': 2.0.0-rc.24(typescript@5.4.5)(vuepress@2.0.0-rc.9)
giscus: 1.5.0
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4322,7 +4371,7 @@ packages:
'@types/markdown-it': 13.0.7
markdown-it: 14.1.0
markdown-it-container: 4.0.0
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
dev: false
/@vuepress/plugin-docsearch@2.0.0-rc.24(@algolia/client-search@4.20.0)(search-insights@2.7.0)(typescript@5.4.5)(vuepress@2.0.0-rc.9):
@@ -4334,10 +4383,10 @@ packages:
'@docsearch/js': 3.6.0(@algolia/client-search@4.20.0)(search-insights@2.7.0)
'@docsearch/react': 3.6.0(@algolia/client-search@4.20.0)(search-insights@2.7.0)
'@vuepress/helper': 2.0.0-rc.24(typescript@5.4.5)(vuepress@2.0.0-rc.9)
- '@vueuse/core': 10.9.0(vue@3.4.21)
+ '@vueuse/core': 10.9.0(vue@3.4.22)
ts-debounce: 4.0.0
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- '@algolia/client-search'
- '@types/react'
@@ -4353,8 +4402,8 @@ packages:
peerDependencies:
vuepress: 2.0.0-rc.9
dependencies:
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4365,7 +4414,7 @@ packages:
vuepress: 2.0.0-rc.9
dependencies:
execa: 8.0.1
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
dev: false
/@vuepress/plugin-medium-zoom@2.0.0-rc.24(typescript@5.4.5)(vuepress@2.0.0-rc.9):
@@ -4375,8 +4424,8 @@ packages:
dependencies:
'@vuepress/helper': 2.0.0-rc.24(typescript@5.4.5)(vuepress@2.0.0-rc.9)
medium-zoom: 1.1.0
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4386,8 +4435,8 @@ packages:
peerDependencies:
vuepress: 2.0.0-rc.9
dependencies:
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4398,7 +4447,7 @@ packages:
vuepress: 2.0.0-rc.9
dependencies:
chokidar: 3.6.0
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
dev: false
/@vuepress/plugin-reading-time@2.0.0-rc.24(typescript@5.4.5)(vuepress@2.0.0-rc.9):
@@ -4407,8 +4456,8 @@ packages:
vuepress: 2.0.0-rc.9
dependencies:
'@vuepress/helper': 2.0.0-rc.24(typescript@5.4.5)(vuepress@2.0.0-rc.9)
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4419,7 +4468,7 @@ packages:
vuepress: 2.0.0-rc.9
dependencies:
'@vuepress/helper': 2.0.0-rc.24(typescript@5.4.5)(vuepress@2.0.0-rc.9)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4431,7 +4480,7 @@ packages:
dependencies:
'@vuepress/helper': 2.0.0-rc.24(typescript@5.4.5)(vuepress@2.0.0-rc.9)
sitemap: 7.1.1
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4442,8 +4491,8 @@ packages:
vuepress: 2.0.0-rc.9
dependencies:
'@vue/devtools-api': 6.6.1
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4453,9 +4502,9 @@ packages:
peerDependencies:
vuepress: 2.0.0-rc.9
dependencies:
- vue: 3.4.21(typescript@5.4.5)
- vue-router: 4.3.0(vue@3.4.21)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vue-router: 4.3.0(vue@3.4.22)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- typescript
dev: false
@@ -4484,19 +4533,19 @@ packages:
- supports-color
dev: false
- /@vueuse/core@10.9.0(vue@3.4.21):
+ /@vueuse/core@10.9.0(vue@3.4.22):
resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==}
dependencies:
'@types/web-bluetooth': 0.0.20
'@vueuse/metadata': 10.9.0
- '@vueuse/shared': 10.9.0(vue@3.4.21)
- vue-demi: 0.14.7(vue@3.4.21)
+ '@vueuse/shared': 10.9.0(vue@3.4.22)
+ vue-demi: 0.14.7(vue@3.4.22)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: false
- /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.21):
+ /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.22):
resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==}
peerDependencies:
async-validator: '*'
@@ -4537,10 +4586,10 @@ packages:
universal-cookie:
optional: true
dependencies:
- '@vueuse/core': 10.9.0(vue@3.4.21)
- '@vueuse/shared': 10.9.0(vue@3.4.21)
+ '@vueuse/core': 10.9.0(vue@3.4.22)
+ '@vueuse/shared': 10.9.0(vue@3.4.22)
focus-trap: 7.5.4
- vue-demi: 0.14.7(vue@3.4.21)
+ vue-demi: 0.14.7(vue@3.4.22)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -4550,10 +4599,10 @@ packages:
resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==}
dev: false
- /@vueuse/shared@10.9.0(vue@3.4.21):
+ /@vueuse/shared@10.9.0(vue@3.4.22):
resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==}
dependencies:
- vue-demi: 0.14.7(vue@3.4.21)
+ vue-demi: 0.14.7(vue@3.4.22)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -8503,7 +8552,7 @@ packages:
resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
dev: true
- /floating-vue@5.2.2(vue@3.4.21):
+ /floating-vue@5.2.2(vue@3.4.22):
resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==}
peerDependencies:
'@nuxt/kit': ^3.2.0
@@ -8513,8 +8562,8 @@ packages:
optional: true
dependencies:
'@floating-ui/dom': 1.1.1
- vue: 3.4.21(typescript@5.4.5)
- vue-resize: 2.0.0-alpha.1(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vue-resize: 2.0.0-alpha.1(vue@3.4.22)
dev: false
/flowchart.ts@3.0.0:
@@ -10656,6 +10705,14 @@ packages:
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
+ dev: true
+
+ /magic-string@0.30.9:
+ resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
+ dev: false
/make-dir@3.1.0:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
@@ -15284,8 +15341,8 @@ packages:
fsevents: 2.3.3
dev: false
- /vite@5.2.8(@types/node@20.9.1):
- resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==}
+ /vite@5.2.9(@types/node@20.9.1):
+ resolution: {integrity: sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -15320,7 +15377,7 @@ packages:
fsevents: 2.3.3
dev: true
- /vue-demi@0.14.7(vue@3.4.21):
+ /vue-demi@0.14.7(vue@3.4.22):
resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==}
engines: {node: '>=12'}
hasBin: true
@@ -15332,7 +15389,7 @@ packages:
'@vue/composition-api':
optional: true
dependencies:
- vue: 3.4.21(typescript@5.4.5)
+ vue: 3.4.22(typescript@5.4.5)
dev: false
/vue-eslint-parser@9.4.2(eslint@9.0.0):
@@ -15353,21 +15410,21 @@ packages:
- supports-color
dev: true
- /vue-resize@2.0.0-alpha.1(vue@3.4.21):
+ /vue-resize@2.0.0-alpha.1(vue@3.4.22):
resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==}
peerDependencies:
vue: ^3.0.0
dependencies:
- vue: 3.4.21(typescript@5.4.5)
+ vue: 3.4.22(typescript@5.4.5)
dev: false
- /vue-router@4.3.0(vue@3.4.21):
+ /vue-router@4.3.0(vue@3.4.22):
resolution: {integrity: sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==}
peerDependencies:
vue: ^3.2.0
dependencies:
'@vue/devtools-api': 6.5.1
- vue: 3.4.21(typescript@5.4.5)
+ vue: 3.4.22(typescript@5.4.5)
dev: false
/vue-template-compiler@2.7.16:
@@ -15377,19 +15434,19 @@ packages:
he: 1.2.0
dev: false
- /vue@3.4.21(typescript@5.4.5):
- resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==}
+ /vue@3.4.22(typescript@5.4.5):
+ resolution: {integrity: sha512-CIx7NiP+n5WHBCG/fDNaUPP4qbQ5CIa8XIHZE3HpfS/rb2vmSIsp74BxsZyrrGKF0vHW3GoToqP3l0hzrMTecw==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@vue/compiler-dom': 3.4.21
- '@vue/compiler-sfc': 3.4.21
- '@vue/runtime-dom': 3.4.21
- '@vue/server-renderer': 3.4.21(vue@3.4.21)
- '@vue/shared': 3.4.21
+ '@vue/compiler-dom': 3.4.22
+ '@vue/compiler-sfc': 3.4.22
+ '@vue/runtime-dom': 3.4.22
+ '@vue/server-renderer': 3.4.22(vue@3.4.22)
+ '@vue/shared': 3.4.22
typescript: 5.4.5
dev: false
@@ -15468,12 +15525,12 @@ packages:
'@mdit/plugin-uml': 0.8.0(markdown-it@14.1.0)
'@types/markdown-it': 13.0.7
'@vuepress/helper': 2.0.0-rc.21(typescript@5.4.5)(vuepress@2.0.0-rc.9)
- '@vueuse/core': 10.9.0(vue@3.4.21)
+ '@vueuse/core': 10.9.0(vue@3.4.22)
balloon-css: 1.2.0
js-yaml: 4.1.0
katex: 0.16.10
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
vuepress-plugin-sass-palette: 2.0.0-rc.32(typescript@5.4.5)(vuepress@2.0.0-rc.9)
vuepress-shared: 2.0.0-rc.32(typescript@5.4.5)(vuepress@2.0.0-rc.9)
transitivePeerDependencies:
@@ -15495,7 +15552,7 @@ packages:
'@vuepress/helper': 2.0.0-rc.21(typescript@5.4.5)(vuepress@2.0.0-rc.9)
chokidar: 3.6.0
sass: 1.72.0
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
vuepress-shared: 2.0.0-rc.32(typescript@5.4.5)(vuepress@2.0.0-rc.9)
transitivePeerDependencies:
- '@vue/composition-api'
@@ -15509,21 +15566,21 @@ packages:
vuepress: 2.0.0-rc.9
dependencies:
'@vuepress/helper': 2.0.0-rc.21(typescript@5.4.5)(vuepress@2.0.0-rc.9)
- '@vueuse/core': 10.9.0(vue@3.4.21)
+ '@vueuse/core': 10.9.0(vue@3.4.22)
cheerio: 1.0.0-rc.12
dayjs: 1.11.10
execa: 8.0.1
fflate: 0.8.2
gray-matter: 4.0.3
semver: 7.6.0
- vue: 3.4.21(typescript@5.4.5)
- vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21)
+ vue: 3.4.22(typescript@5.4.5)
+ vuepress: 2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22)
transitivePeerDependencies:
- '@vue/composition-api'
- typescript
dev: false
- /vuepress@2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.21):
+ /vuepress@2.0.0-rc.9(@vuepress/bundler-vite@2.0.0-rc.9)(typescript@5.4.5)(vue@3.4.22):
resolution: {integrity: sha512-jT1ln2lawdph+vVI6n2JfEUhQIcyc1RQWDdQu9DffhJGywJunFcumnUJudpqd1SNIES2Fz1hVCD6gdrE/rVKOQ==}
engines: {node: '>=18.16.0'}
hasBin: true
@@ -15544,7 +15601,7 @@ packages:
'@vuepress/markdown': 2.0.0-rc.9(patch_hash=f3on36z73gmvj4jugj25dg7wje)
'@vuepress/shared': 2.0.0-rc.9
'@vuepress/utils': 2.0.0-rc.9
- vue: 3.4.21(typescript@5.4.5)
+ vue: 3.4.22(typescript@5.4.5)
transitivePeerDependencies:
- supports-color
- typescript
diff --git a/theme/package.json b/theme/package.json
index 6ad101d2..5d94de3b 100644
--- a/theme/package.json
+++ b/theme/package.json
@@ -30,6 +30,17 @@
"types": "./lib/client/index.d.ts",
"import": "./lib/client/index.js"
},
+ "./client/components/*": {
+ "import": "./lib/client/components/*"
+ },
+ "./client/composables": {
+ "types": "./lib/client/composables/index.d.ts",
+ "import": "./lib/client/composables/index.js"
+ },
+ "./client/composables/*": {
+ "types": "./lib/client/composables/*.d.ts",
+ "import": "./lib/client/composables/*.js"
+ },
"./shared": {
"types": "./lib/shared/index.d.ts",
"import": "./lib/shared/index.js"
@@ -86,7 +97,7 @@
"katex": "^0.16.10",
"lodash.merge": "^4.6.2",
"nanoid": "^5.0.7",
- "vue": "^3.4.21",
+ "vue": "^3.4.22",
"vue-router": "4.3.0",
"vuepress-plugin-md-enhance": "2.0.0-rc.32",
"vuepress-plugin-md-power": "workspace:*"
diff --git a/theme/src/client/components/Flyout/MenuGroup.vue b/theme/src/client/components/Flyout/MenuGroup.vue
index 15898aa4..bfb5981b 100644
--- a/theme/src/client/components/Flyout/MenuGroup.vue
+++ b/theme/src/client/components/Flyout/MenuGroup.vue
@@ -1,9 +1,10 @@
@@ -11,7 +12,7 @@ defineProps<{
diff --git a/theme/src/client/components/Flyout/index.vue b/theme/src/client/components/Flyout/index.vue
index 4882638d..969f732e 100644
--- a/theme/src/client/components/Flyout/index.vue
+++ b/theme/src/client/components/Flyout/index.vue
@@ -1,10 +1,11 @@
diff --git a/theme/src/client/components/Home/HomeHero.vue b/theme/src/client/components/Home/HomeHero.vue
index f17ed7fa..387dbb7c 100644
--- a/theme/src/client/components/Home/HomeHero.vue
+++ b/theme/src/client/components/Home/HomeHero.vue
@@ -4,7 +4,7 @@ import { isLinkHttp } from 'vuepress/shared'
import { computed, ref } from 'vue'
import VButton from '../VButton.vue'
import { useDarkMode } from '../../composables/index.js'
-import { useHomeHeroFilterBackground } from '../../composables/home.js'
+import { useHomeHeroTintPlate } from '../../composables/home.js'
import type { PlumeThemeHomeFrontmatter, PlumeThemeHomeHero } from '../../../shared/index.js'
const props = defineProps()
@@ -13,7 +13,7 @@ const matter = usePageFrontmatter()
const isDark = useDarkMode()
const heroBackground = computed(() => {
- if (props.background === 'filter-blur')
+ if (props.background === 'tint-plate')
return null
const image = props.backgroundImage
? typeof props.backgroundImage === 'string'
@@ -37,14 +37,18 @@ const hero = computed(() => props.hero ?? matter.value.hero ?? {})
const actions = computed(() => hero.value.actions ?? [])
const canvas = ref()
-useHomeHeroFilterBackground(canvas, computed(() => props.background === 'filter-blur'))
+useHomeHeroTintPlate(
+ canvas,
+ computed(() => props.background === 'tint-plate'),
+ computed(() => props.tintPlate),
+)
-
+
@@ -188,9 +192,9 @@ useHomeHeroFilterBackground(canvas, computed(() => props.background === 'filter-
top: 0;
left: 0;
width: 100%;
- height: 20%;
+ height: 100%;
content: "";
- background: linear-gradient(var(--vp-c-bg) 0, transparent 100%);
+ background: linear-gradient(to bottom, var(--vp-c-bg) 0, transparent 40%, transparent 60%, var(--vp-c-bg) 140%);
}
.bg-filter canvas {
diff --git a/theme/src/client/components/Nav/NavBarMenuLink.vue b/theme/src/client/components/Nav/NavBarMenuLink.vue
index a82bc13f..57c4134e 100644
--- a/theme/src/client/components/Nav/NavBarMenuLink.vue
+++ b/theme/src/client/components/Nav/NavBarMenuLink.vue
@@ -3,6 +3,7 @@ import { usePageData } from 'vuepress/client'
import type { NavItemWithLink } from '../../../shared/index.js'
import { isActive } from '../../utils/index.js'
import AutoLink from '../AutoLink.vue'
+import VIcon from '../VIcon.vue'
defineProps<{
item: NavItemWithLink
@@ -23,7 +24,7 @@ const page = usePageData()
:href="item.link"
:no-icon="true"
>
-
+
diff --git a/theme/src/client/components/Nav/NavScreenMenuGroup.vue b/theme/src/client/components/Nav/NavScreenMenuGroup.vue
index 8f2d0139..d935b243 100644
--- a/theme/src/client/components/Nav/NavScreenMenuGroup.vue
+++ b/theme/src/client/components/Nav/NavScreenMenuGroup.vue
@@ -1,11 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/theme/src/client/composables/home.ts b/theme/src/client/composables/home.ts
index 24132e04..93537c77 100644
--- a/theme/src/client/composables/home.ts
+++ b/theme/src/client/composables/home.ts
@@ -1,10 +1,30 @@
import type { Ref } from 'vue'
import { computed, onMounted, onUnmounted } from 'vue'
+import type { PlumeThemeHomeHero } from '../../shared/index.js'
import { useDarkMode } from './darkMode.js'
-export function useHomeHeroFilterBackground(
+export interface TintPlate {
+ r: { value: number, offset: number }
+ g: { value: number, offset: number }
+ b: { value: number, offset: number }
+}
+
+const lightTint = {
+ r: { value: 200, offset: 36 },
+ g: { value: 200, offset: 36 },
+ b: { value: 200, offset: 36 },
+}
+
+const darkTint = {
+ r: { value: 32, offset: 36 },
+ g: { value: 32, offset: 36 },
+ b: { value: 32, offset: 36 },
+}
+
+export function useHomeHeroTintPlate(
canvas: Ref
,
enable: Ref,
+ tintPlate: Ref,
) {
const isDark = useDarkMode()
@@ -12,7 +32,61 @@ export function useHomeHeroFilterBackground(
let t = 0
let timer: number
- const F = computed(() => isDark.value ? 32 : 220)
+ const plate = computed(() => {
+ const defaultTint = isDark.value ? darkTint : lightTint
+ if (!tintPlate.value)
+ return defaultTint
+
+ const plate = tintPlate.value
+ if (typeof plate === 'string' || typeof plate === 'number') {
+ if (isDark.value)
+ return darkTint
+ const values = toPlate(plate)
+ return values.length !== 3 ? lightTint : toTint(values)
+ }
+
+ if (typeof plate === 'object') {
+ if ('r' in plate) {
+ if (isDark.value)
+ return darkTint
+ return toNumber({ ...lightTint, ...plate })
+ }
+ const key = isDark.value ? 'dark' : 'light'
+ if (key in plate) {
+ const _plate = plate[key]
+ if (typeof _plate === 'string' || typeof _plate === 'number') {
+ const values = toPlate(_plate)
+ return values.length !== 3 ? lightTint : toTint(values)
+ }
+ return toNumber({ ...defaultTint, ...plate })
+ }
+ }
+ return defaultTint
+ })
+
+ function toPlate(plate: number | string) {
+ return typeof plate === 'number' || Number(plate) === Number.parseInt(plate)
+ ? [plate, plate, plate].map(n => Number(n))
+ : plate.includes(',') ? plate.replace(/\s/g, '').split(',').map(n => Number(n)) : []
+ }
+
+ function toTint([r, g, b]: number[]) {
+ return { r: toColor(r), g: toColor(g), b: toColor(b) }
+ }
+
+ function toColor(num: number) {
+ const offset = 256 - num
+ return { value: num, offset: offset > 64 ? 64 : offset }
+ }
+
+ function toNumber(tint: TintPlate): TintPlate {
+ Object.keys(tint).forEach((key) => {
+ const p = tint[key]
+ p.value = Number(p.value)
+ p.offset = Number(p.offset)
+ })
+ return tint
+ }
onMounted(() => {
if (canvas.value && enable.value) {
@@ -43,14 +117,17 @@ export function useHomeHeroFilterBackground(
}
function R(x: number, y: number, t: number) {
- return (Math.floor(F.value + 36 * Math.cos((x * x - y * y) / 300 + t)))
+ const r = plate.value.r
+ return (Math.floor(r.value + r.offset * Math.cos((x * x - y * y) / 300 + t)))
}
function G(x: number, y: number, t: number) {
- return (Math.floor(F.value + 36 * Math.sin((x * x * Math.cos(t / 4) + y * y * Math.sin(t / 3)) / 300)))
+ const g = plate.value.g
+ return (Math.floor(g.value + g.offset * Math.sin((x * x * Math.cos(t / 4) + y * y * Math.sin(t / 3)) / 300)))
}
function B(x: number, y: number, t: number) {
- return (Math.floor(F.value + 36 * Math.sin(5 * Math.sin(t / 9) + ((x - 100) * (x - 100) + (y - 100) * (y - 100)) / 1100)))
+ const b = plate.value.b
+ return (Math.floor(b.value + b.offset * Math.sin(5 * Math.sin(t / 9) + ((x - 100) * (x - 100) + (y - 100) * (y - 100)) / 1100)))
}
}
diff --git a/theme/src/shared/frontmatter.ts b/theme/src/shared/frontmatter.ts
index 5a4ff0ff..0778f061 100644
--- a/theme/src/shared/frontmatter.ts
+++ b/theme/src/shared/frontmatter.ts
@@ -36,11 +36,22 @@ export interface PlumeThemeHomeBanner extends Pick