From 2e53e8c41664c5aa920ca84e738e95c8a05fb349 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Sun, 29 Jan 2023 03:55:13 +0100 Subject: [PATCH 01/89] feat: page transition --- guide/animations.md | 72 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/guide/animations.md b/guide/animations.md index 875123f..d394dfe 100644 --- a/guide/animations.md +++ b/guide/animations.md @@ -200,4 +200,74 @@ Learn mode: [Demo](https://sli.dev/demo/starter/7) | [@vueuse/motion](https://mo ## Pages Transitions -> Built-in support for slides is NOT YET provided in the current version. We are planning to add support for them in the next major version. Before that, you can still use your custom styles and libraries to do that. +> Available since v0.39.0 + +Slidev supports page transitions out of the box. You can enable it by setting the `transition` frontmatter option: + +```md +--- +transition: slide-left +--- +``` + +This will give you a nice sliding effects on slide switching. Setting it in the frontmatter will apply to all slides. You can also set different transition per slide. + +### Builtin Transitions + +- `fade` - Crossfade in/out +- `fade-out` - Fade out and then fade in +- `slide-left` - Slides to the left, slide to right when going back +- `slide-right` - Slides to the right, slide to left when going back +- `slide-top` - Slides to the top, slide to bottom when going back +- `slide-bottom` - Slides to the bottom, slide to top when going back + +### Custom Transitions + +Slidev's page transitions are powered by [Vue Transition](https://vuejs.org/guide/built-ins/transition.html). You can provide your custom transitions by: + +```md +--- +transition: my-transition +--- +``` + +and then in your custom stylesheets: + +```css +.my-transition-enter-active, +.my-transition-leave-active { + transition: opacity 0.5s ease; +} + +.my-transition-enter-from, +.my-transition-leave-to { + opacity: 0; +} +``` + +Learn more how it works in [Vue Transition](https://vuejs.org/guide/built-ins/transition.html). + +### Forward & Backward Transitions + +You can specify different transitions for forward and backward navigation using `|` as a separator in the transition name: + +```md +--- +transition: go-forward | go-backward +--- +``` + +With this, when you go from slide 1 to slide 2, the `go-forward` transition will be applied. When you go from slide 2 to slide 1, the `go-backward` transition will be applied. + +### Advanced Usage + +The `transition` field accepts an option that will passed to the [``](https://vuejs.org/api/built-in-components.html#transition) component. For example: + +```md +--- +transition: + name: my-transition + enterFromClass: custom-enter-from + enterActiveClass: custom-enter-active +--- +``` From fcb11d11a499480757c50cb793ef4eab97f3bebe Mon Sep 17 00:00:00 2001 From: TheJChaps Date: Fri, 3 Feb 2023 03:34:27 -0500 Subject: [PATCH 02/89] docs: fix broken link in faq (#111) --- guide/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guide/faq.md b/guide/faq.md index 6a1beb2..1918a3c 100644 --- a/guide/faq.md +++ b/guide/faq.md @@ -43,7 +43,7 @@ The third column (10% width to parent container) ``` -Learn more about [Windi CSS Grids](https://windicss.org/utilities/grid.html). +Learn more about [Windi CSS Grids](https://windicss.org/utilities/layout/grid.html). ## Positioning From e1c823dc686884305284e986b4ad90d8ddf17cb8 Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Fri, 3 Feb 2023 09:51:25 +0100 Subject: [PATCH 03/89] docs: added an example of creating custom Mermaid styles (#110) --- custom/config-mermaid.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/custom/config-mermaid.md b/custom/config-mermaid.md index 4469d12..f2a6f8a 100644 --- a/custom/config-mermaid.md +++ b/custom/config-mermaid.md @@ -15,3 +15,33 @@ export default defineMermaidSetup(() => { ``` With the setup, you can provide a custom default setting for [Mermaid](https://mermaid-js.github.io/). Refer to the type definitions and its documentation for more details. + +## Custom theme/styles + +In case you want to create your custom Mermaid themes or styles, you can do this by defining `themeVariables` like in the following example: + +```ts +import { defineMermaidSetup } from '@slidev/types' + +export default defineMermaidSetup(() => { + return { + theme: 'base', + themeVariables: { + // General theme variables + noteBkgColor: "#181d29", + noteTextColor: "#F3EFF5cc", + noteBorderColor: "#404551", + + // Sequence diagram variables + actorBkg: "#0E131F", + actorBorder: "#44FFD2", + actorTextColor: "#F3EFF5", + actorLineColor: "#F3EFF5", + signalColor: "#F3EFF5", + signalTextColor: "#F3EFF5", + } + } +}) +``` + +You can find all theme variables on the [Mermaid Theme Configuration](https://mermaid.js.org/config/theming.html) page. From d6bb78bee02ae26b2b28a0fbb1a84020007ef547 Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Fri, 3 Feb 2023 09:52:02 +0100 Subject: [PATCH 04/89] docs: Added the unnamed theme (#109) --- .vitepress/themes.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.vitepress/themes.ts b/.vitepress/themes.ts index 8d98809..4821888 100644 --- a/.vitepress/themes.ts +++ b/.vitepress/themes.ts @@ -386,6 +386,25 @@ export const community: ThemeInfo[] = [ 'light', ], }, + { + id: 'slidev-theme-the-unnamed', + name: 'The unnamed', + description: 'A theme based on The unnamed VS Code theme', + author: { + name: 'Elio Struyf', + link: 'https://elio.dev', + }, + repo: 'https://github.com/estruyf/slidev-theme-the-unnamed', + previews: [ + 'https://cdn.jsdelivr.net/gh/estruyf/slidev-theme-the-unnamed@main/assets/cover.png', + 'https://cdn.jsdelivr.net/gh/estruyf/slidev-theme-the-unnamed@main/assets/about-me.png', + 'https://cdn.jsdelivr.net/gh/estruyf/slidev-theme-the-unnamed@main/assets/default.png', + 'https://cdn.jsdelivr.net/gh/estruyf/slidev-theme-the-unnamed@main/assets/section.png', + ], + tags: [ + 'dark' + ], + }, // Add yours here! { id: '', From 4e268b66b3d9c80085bd3b005dd2736a4b187b98 Mon Sep 17 00:00:00 2001 From: Neil Mispelaar Date: Fri, 3 Feb 2023 03:53:21 -0500 Subject: [PATCH 05/89] docs: add documentation for export range feature Fix #821 (#104) --- guide/exporting.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/guide/exporting.md b/guide/exporting.md index 334be75..450d762 100644 --- a/guide/exporting.md +++ b/guide/exporting.md @@ -45,9 +45,17 @@ When passing in the `--format png` option, Slidev will export PNG images for eac $ slidev export --format png ``` -### Single-Page Application (SPA) +### Export a range of slides -See [Static Hosting](/guide/hosting). +By default, all slides in the presentation are exported. If you want to export a specific slide or a range of slides you can set the `--range` option and specify which slides you would like to export. + +```bash +$ slidev export --range 1,6-8,10 +``` + +This option accepts both specific slide numbers and ranges. + +The example above would export slides 1,6,7,8, and 10. ## Presenter notes @@ -58,3 +66,7 @@ Export only the presenter notes (the last comment block for each slide) into a t ```bash $ slidev export-notes ``` + +## Single-Page Application (SPA) + +See [Static Hosting](/guide/hosting). From 38e076f9a7c55cbd4d7b58579eecb54e77e9723a Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 3 Feb 2023 09:55:44 +0100 Subject: [PATCH 06/89] docs: improve slide transition explanation --- guide/animations.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/guide/animations.md b/guide/animations.md index d394dfe..badc4b1 100644 --- a/guide/animations.md +++ b/guide/animations.md @@ -198,11 +198,13 @@ The text `Slidev` will move from `-80px` to its original position on initializat Learn mode: [Demo](https://sli.dev/demo/starter/7) | [@vueuse/motion](https://motion.vueuse.org/) | [v-motion](https://motion.vueuse.org/directive-usage.html) | [Presets](https://motion.vueuse.org/presets.html) -## Pages Transitions +## Slide Transitions + +
> Available since v0.39.0 -Slidev supports page transitions out of the box. You can enable it by setting the `transition` frontmatter option: +Slidev supports slide transitions out of the box. You can enable it by setting the `transition` frontmatter option: ```md --- @@ -216,14 +218,14 @@ This will give you a nice sliding effects on slide switching. Setting it in the - `fade` - Crossfade in/out - `fade-out` - Fade out and then fade in -- `slide-left` - Slides to the left, slide to right when going back -- `slide-right` - Slides to the right, slide to left when going back -- `slide-top` - Slides to the top, slide to bottom when going back -- `slide-bottom` - Slides to the bottom, slide to top when going back +- `slide-left` - Slides to the left (slide to right when going backward) +- `slide-right` - Slides to the right (slide to left when going backward) +- `slide-top` - Slides to the top (slide to bottom when going backward) +- `slide-bottom` - Slides to the bottom (slide to top when going backward) ### Custom Transitions -Slidev's page transitions are powered by [Vue Transition](https://vuejs.org/guide/built-ins/transition.html). You can provide your custom transitions by: +Slidev's slide transitions are powered by [Vue Transition](https://vuejs.org/guide/built-ins/transition.html). You can provide your custom transitions by: ```md --- From 8ffa1fd2a7c795eb019785595170c2cc8d47c39b Mon Sep 17 00:00:00 2001 From: yheuhtozr <84892012+yheuhtozr@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:23:34 +0900 Subject: [PATCH 07/89] Update syntax.md: Embedded Styles (#113) --- guide/syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guide/syntax.md b/guide/syntax.md index 1586585..b5a832d 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -163,7 +163,7 @@ h1 { # Next slide is not affected ``` -` diff --git a/.vitepress/theme/components/BooleanDisplay.vue b/.vitepress/theme/components/BooleanDisplay.vue index 3a876f2..d51afbc 100644 --- a/.vitepress/theme/components/BooleanDisplay.vue +++ b/.vitepress/theme/components/BooleanDisplay.vue @@ -1,6 +1,4 @@ + + diff --git a/.vitepress/theme/components/DemoContainer.vue b/.vitepress/theme/components/DemoContainer.vue index 9d2b56f..1ea93e1 100644 --- a/.vitepress/theme/components/DemoContainer.vue +++ b/.vitepress/theme/components/DemoContainer.vue @@ -1,18 +1,18 @@ - - + + diff --git a/.vitepress/theme/components/EditLink.vue b/.vitepress/theme/components/EditLink.vue deleted file mode 100644 index 7504e01..0000000 --- a/.vitepress/theme/components/EditLink.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/Home.vue b/.vitepress/theme/components/Home.vue deleted file mode 100644 index 59b6eff..0000000 --- a/.vitepress/theme/components/Home.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/HomeFeatures.vue b/.vitepress/theme/components/HomeFeatures.vue deleted file mode 100644 index 292bc99..0000000 --- a/.vitepress/theme/components/HomeFeatures.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/HomeFooter.vue b/.vitepress/theme/components/HomeFooter.vue deleted file mode 100644 index 678be92..0000000 --- a/.vitepress/theme/components/HomeFooter.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/.vitepress/theme/components/HomeHero.vue b/.vitepress/theme/components/HomeHero.vue deleted file mode 100644 index efbc158..0000000 --- a/.vitepress/theme/components/HomeHero.vue +++ /dev/null @@ -1,174 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/LastUpdated.vue b/.vitepress/theme/components/LastUpdated.vue deleted file mode 100644 index c899316..0000000 --- a/.vitepress/theme/components/LastUpdated.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/NavBar.vue b/.vitepress/theme/components/NavBar.vue deleted file mode 100644 index ed00270..0000000 --- a/.vitepress/theme/components/NavBar.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/NavBarTitle.vue b/.vitepress/theme/components/NavBarTitle.vue deleted file mode 100644 index 5c4ca6f..0000000 --- a/.vitepress/theme/components/NavBarTitle.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/NavDropdownLink.vue b/.vitepress/theme/components/NavDropdownLink.vue deleted file mode 100644 index 6422ce9..0000000 --- a/.vitepress/theme/components/NavDropdownLink.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/NavDropdownLinkItem.vue b/.vitepress/theme/components/NavDropdownLinkItem.vue deleted file mode 100644 index cd8064a..0000000 --- a/.vitepress/theme/components/NavDropdownLinkItem.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/NavLink.vue b/.vitepress/theme/components/NavLink.vue deleted file mode 100644 index f48f4dc..0000000 --- a/.vitepress/theme/components/NavLink.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/NavLinks.vue b/.vitepress/theme/components/NavLinks.vue deleted file mode 100644 index 6be0326..0000000 --- a/.vitepress/theme/components/NavLinks.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/NextAndPrevLinks.vue b/.vitepress/theme/components/NextAndPrevLinks.vue deleted file mode 100644 index dcfea07..0000000 --- a/.vitepress/theme/components/NextAndPrevLinks.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/Note.vue b/.vitepress/theme/components/Note.vue deleted file mode 100644 index 0329e9f..0000000 --- a/.vitepress/theme/components/Note.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/.vitepress/theme/components/Page.vue b/.vitepress/theme/components/Page.vue deleted file mode 100644 index f622cb9..0000000 --- a/.vitepress/theme/components/Page.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/PageFooter.vue b/.vitepress/theme/components/PageFooter.vue deleted file mode 100644 index 34e8ab6..0000000 --- a/.vitepress/theme/components/PageFooter.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/ShowCaseInfo.vue b/.vitepress/theme/components/ShowCaseInfo.vue index 74ea1f9..8f0a87a 100644 --- a/.vitepress/theme/components/ShowCaseInfo.vue +++ b/.vitepress/theme/components/ShowCaseInfo.vue @@ -8,14 +8,14 @@ defineProps<{ diff --git a/.vitepress/theme/components/SideBar.vue b/.vitepress/theme/components/SideBar.vue deleted file mode 100644 index 5c7fc8e..0000000 --- a/.vitepress/theme/components/SideBar.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/SideBarLink.ts b/.vitepress/theme/components/SideBarLink.ts deleted file mode 100644 index 14247f0..0000000 --- a/.vitepress/theme/components/SideBarLink.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { FunctionalComponent, h, VNode } from 'vue' -import { useRoute, useData } from 'vitepress' -import { DefaultTheme } from '../config' -import { joinUrl, isActive } from '../utils' - -export interface Header { - level: number - title: string - slug: string -} - -interface HeaderWithChildren extends Header { - children?: Header[] -} - -export const SideBarLink: FunctionalComponent<{ - item: DefaultTheme.SideBarItem -}> = (props) => { - const route = useRoute() - const {site} = useData() - - const headers = route.data.headers - const text = props.item.text - const link = resolveLink(site.value.base, props.item.link) - const children = (props.item as DefaultTheme.SideBarGroup).children - const active = isActive(route, props.item.link) - const childItems = createChildren(active, children, headers) - - return h('li', { class: 'sidebar-link' }, [ - h( - link ? 'a' : 'p', - { - class: { 'sidebar-link-item': true, active }, - href: link, - }, - text, - ), - childItems, - ]) -} - -function resolveLink(base: string, path?: string): string | undefined { - if (path === undefined) - return path - - // keep relative hash to the same page - if (path.startsWith('#')) - return path - - return joinUrl(base, path) -} - -function createChildren( - active: boolean, - children?: DefaultTheme.SideBarItem[], - headers?: Header[], -): VNode | null { - if (children && children.length > 0) { - return h( - 'ul', - { class: 'sidebar-links' }, - children.map((c) => { - return h(SideBarLink, { item: c }) - }), - ) - } - - return active && headers - ? createChildren(false, resolveHeaders(headers)) - : null -} - -function resolveHeaders(headers: Header[]): DefaultTheme.SideBarItem[] { - return mapHeaders(groupHeaders(headers)) -} - -function groupHeaders(headers: Header[]): HeaderWithChildren[] { - headers = headers.map(h => Object.assign({}, h)) - let lastH2: HeaderWithChildren - headers.forEach((h) => { - if (h.level === 2) - lastH2 = h - - else if (lastH2) - (lastH2.children || (lastH2.children = [])).push(h) - }) - return headers.filter(h => h.level === 2) -} - -function mapHeaders(headers: HeaderWithChildren[]): DefaultTheme.SideBarItem[] { - return headers.map(header => ({ - text: header.title, - link: `#${header.slug}`, - children: header.children ? mapHeaders(header.children) : undefined, - })) -} diff --git a/.vitepress/theme/components/SideBarLinks.vue b/.vitepress/theme/components/SideBarLinks.vue deleted file mode 100644 index 77aea38..0000000 --- a/.vitepress/theme/components/SideBarLinks.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/.vitepress/theme/components/ThemeGallery.vue b/.vitepress/theme/components/ThemeGallery.vue index b7fe1f9..ee92e0c 100644 --- a/.vitepress/theme/components/ThemeGallery.vue +++ b/.vitepress/theme/components/ThemeGallery.vue @@ -1,10 +1,10 @@ + - - @@ -429,6 +459,22 @@ This shows on the right This shows on the left ``` +## Import Code Snippets + +> Available since v0.47.0 + +You can import code snippets from existing files via following syntax: + +```md +<<< @/snippets/snippet.js +``` + +::: ttp +The value of `@` corresponds to the source root, the directory where the `slides.md` is located. +::: + +This feature is vendored from VitePress, learn more about it in [VitePress's documentation](https://vitepress.dev/guide/markdown#import-code-snippets). + ## Configurations All configurations needed can be defined in the Markdown file. For example: diff --git a/guide/why.md b/guide/why.md index 01c5ac2..20a4ab6 100644 --- a/guide/why.md +++ b/guide/why.md @@ -66,6 +66,4 @@ $ npm init slidev Or have a quick preview of it: -
- -
+ diff --git a/package.json b/package.json index 482f06e..457b3b1 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "devDependencies": { "@antfu/eslint-config": "^2.6.3", "@iconify/json": "^2.2.178", + "@shikijs/vitepress-twoslash": "1.0.0-beta.5", "@slidev/client": "0.34.3", "@slidev/parser": "0.34.3", "@slidev/theme-default": "0.21.2", @@ -26,13 +27,12 @@ "eslint": "^8.56.0", "fs-extra": "^11.2.0", "markdown-it": "^14.0.0", - "shiki": "1.0.0-beta.5", + "shiki": "^1.0.0-beta.5", "typescript": "^5.3.3", "unocss": "^0.58.4", "unplugin-icons": "^0.18.3", "unplugin-vue-components": "^0.26.0", "vite-plugin-inspect": "^0.8.3", - "vitepress": "^1.0.0-rc.41", - "windicss": "^3.5.6" + "vitepress": "^1.0.0-rc.41" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b866f17..5e5f60b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,6 +22,9 @@ devDependencies: '@iconify/json': specifier: ^2.2.178 version: 2.2.178 + '@shikijs/vitepress-twoslash': + specifier: 1.0.0-beta.5 + version: 1.0.0-beta.5(typescript@5.3.3) '@slidev/client': specifier: 0.34.3 version: 0.34.3(typescript@5.3.3)(vite@3.2.8) @@ -53,7 +56,7 @@ devDependencies: specifier: ^14.0.0 version: 14.0.0 shiki: - specifier: 1.0.0-beta.5 + specifier: ^1.0.0-beta.5 version: 1.0.0-beta.5 typescript: specifier: ^5.3.3 @@ -73,9 +76,6 @@ devDependencies: vitepress: specifier: ^1.0.0-rc.41 version: 1.0.0-rc.41(@algolia/client-search@4.22.1)(@types/node@18.19.14)(postcss@8.4.33)(search-insights@2.13.0)(typescript@5.3.3) - windicss: - specifier: ^3.5.6 - version: 3.5.6 packages: @@ -983,6 +983,22 @@ packages: engines: {node: '>=14'} dev: true + /@floating-ui/core@1.6.0: + resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} + dependencies: + '@floating-ui/utils': 0.2.1 + dev: true + + /@floating-ui/dom@1.1.1: + resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==} + dependencies: + '@floating-ui/core': 1.6.0 + dev: true + + /@floating-ui/utils@0.2.1: + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + dev: true + /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -1295,6 +1311,33 @@ packages: shiki: 1.0.0-beta.4 dev: true + /@shikijs/twoslash@1.0.0-beta.5(typescript@5.3.3): + resolution: {integrity: sha512-BPn2PFgy6Bon/hWU52ELWeGrdO1lsuR6ZIhTTDw4q+GrOZQsVDkdNlhIjoanGv1UY95dlbTEuPqXtzmk+4O73Q==} + dependencies: + '@shikijs/core': 1.0.0-beta.5 + twoslash: 0.1.0(typescript@5.3.3) + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@shikijs/vitepress-twoslash@1.0.0-beta.5(typescript@5.3.3): + resolution: {integrity: sha512-FBjhz1sgSVNepZgPIk3jxPfI4tTVr+hCbR3niVQHrm9hgdqBBoU3cU3TUS3yB+7GJArGJAFrCtYUxsU9g/mUaQ==} + dependencies: + '@shikijs/twoslash': 1.0.0-beta.5(typescript@5.3.3) + floating-vue: 5.2.2(vue@3.4.15) + mdast-util-from-markdown: 2.0.0 + mdast-util-gfm: 3.0.0 + mdast-util-to-hast: 13.1.0 + shiki: 1.0.0-beta.5 + twoslash-vue: 0.1.0(typescript@5.3.3) + vue: 3.4.15(typescript@5.3.3) + transitivePeerDependencies: + - '@nuxt/kit' + - supports-color + - typescript + dev: true + /@sindresorhus/merge-streams@1.0.0: resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} engines: {node: '>=18'} @@ -1435,6 +1478,12 @@ packages: - typescript dev: true + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: true + /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true @@ -1446,6 +1495,12 @@ packages: '@types/node': 18.19.14 dev: true + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + dependencies: + '@types/unist': 2.0.10 + dev: true + /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true @@ -1473,10 +1528,20 @@ packages: '@types/unist': 2.0.10 dev: true + /@types/mdast@4.0.3: + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + dependencies: + '@types/unist': 3.0.2 + dev: true + /@types/mdurl@1.0.5: resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} dev: true + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: true + /@types/node@18.19.14: resolution: {integrity: sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==} dependencies: @@ -1495,6 +1560,10 @@ packages: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: true + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + dev: true + /@types/web-bluetooth@0.0.14: resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==} dev: true @@ -1634,6 +1703,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript/vfs@1.5.0: + resolution: {integrity: sha512-AJS307bPgbsZZ9ggCT3wwpg3VbTKMFNHfaY/uF0ahSkYYrPF2dSSKDNIDIQAHm9qJqbLvCsSJH7yN4Vs/CsMMg==} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -1997,6 +2074,18 @@ packages: vue: 3.4.15(typescript@5.3.3) dev: true + /@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + dependencies: + '@volar/source-map': 1.11.1 + dev: true + + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + dependencies: + muggle-string: 0.3.1 + dev: true + /@vue/compiler-core@3.4.15: resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==} dependencies: @@ -2062,6 +2151,26 @@ packages: rfdc: 1.3.1 dev: true + /@vue/language-core@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.4.15 + '@vue/shared': 3.4.15 + computeds: 0.0.1 + minimatch: 9.0.3 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + typescript: 5.3.3 + vue-template-compiler: 2.7.16 + dev: true + /@vue/reactivity@3.4.15: resolution: {integrity: sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==} dependencies: @@ -2458,6 +2567,10 @@ packages: resolution: {integrity: sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==} dev: true + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: true + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -2483,6 +2596,10 @@ packages: resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} dev: true + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: true + /character-reference-invalid@1.1.4: resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} dev: true @@ -2586,6 +2703,10 @@ packages: engines: {node: '>= 12.0.0'} dev: true + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -2932,6 +3053,10 @@ packages: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: true + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -2955,6 +3080,12 @@ packages: ms: 2.1.2 dev: true + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: true + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -2987,6 +3118,11 @@ packages: robust-predicates: 3.0.1 dev: true + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + /destr@1.2.2: resolution: {integrity: sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==} dev: true @@ -2995,6 +3131,12 @@ packages: resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==} dev: true + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: true + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -3317,7 +3459,6 @@ packages: engines: {node: '>=12'} requiresBuild: true dev: true - optional: true /eslint-compat-utils@0.1.2(eslint@8.56.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} @@ -3889,6 +4030,20 @@ packages: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true + /floating-vue@5.2.2(vue@3.4.15): + resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==} + peerDependencies: + '@nuxt/kit': ^3.2.0 + vue: ^3.2.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@floating-ui/dom': 1.1.1 + vue: 3.4.15(typescript@5.3.3) + vue-resize: 2.0.0-alpha.1(vue@3.4.15) + dev: true + /focus-trap@7.5.4: resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} dependencies: @@ -4078,6 +4233,11 @@ packages: function-bind: 1.1.2 dev: true + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + /heap@0.2.7: resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} dev: true @@ -4332,6 +4492,7 @@ packages: /jsonc-parser@3.2.1: resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + requiresBuild: true dev: true /jsonfile@6.1.0: @@ -4439,6 +4600,10 @@ packages: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: true + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -4482,6 +4647,19 @@ packages: uc.micro: 2.0.0 dev: true + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: true + + /mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + dependencies: + '@types/mdast': 4.0.3 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: true + /mdast-util-from-markdown@0.8.5: resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} dependencies: @@ -4494,10 +4672,138 @@ packages: - supports-color dev: true + /mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + dependencies: + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + dependencies: + '@types/mdast': 4.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + dev: true + + /mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + dependencies: + '@types/mdast': 4.0.3 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + dependencies: + mdast-util-from-markdown: 2.0.0 + mdast-util-gfm-autolink-literal: 2.0.0 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + dependencies: + '@types/mdast': 4.0.3 + unist-util-is: 6.0.0 + dev: true + + /mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + dev: true + + /mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + dependencies: + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + dev: true + /mdast-util-to-string@2.0.0: resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} dev: true + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + dependencies: + '@types/mdast': 4.0.3 + dev: true + /mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} dev: true @@ -4536,6 +4842,157 @@ packages: web-worker: 1.3.0 dev: true + /micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: true + + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: true + + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + dev: true + + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: true + + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: true + + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: true + + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + dependencies: + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + dev: true + + /micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: true + + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: true + /micromark@2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} dependencies: @@ -4545,6 +5002,30 @@ packages: - supports-color dev: true + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -4652,6 +5133,10 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + dev: true + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4866,6 +5351,10 @@ packages: lines-and-columns: 1.2.4 dev: true + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -5419,6 +5908,10 @@ packages: engines: {node: '>=6'} dev: true + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: true + /ts-api-utils@1.0.3(typescript@5.3.3): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} @@ -5437,6 +5930,29 @@ packages: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} dev: true + /twoslash-vue@0.1.0(typescript@5.3.3): + resolution: {integrity: sha512-4IVOdvQcjLY5KTrsR9GuTUAThhpYQqkkKawCtfUaTSkui3CXR2KPYBJMvY5yM1by+TkENBlW1ykLywP2BGukHg==} + peerDependencies: + typescript: '*' + dependencies: + '@vue/language-core': 1.8.27(typescript@5.3.3) + twoslash: 0.1.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /twoslash@0.1.0(typescript@5.3.3): + resolution: {integrity: sha512-zvDn23/FwNdi/i2xMTTDcn7xnX4iKlp6tJt68aD86zRqesQrb/HOnMBtaUu6+vme4gtlX9ScEfKYog1+7IPKSw==} + peerDependencies: + typescript: '*' + dependencies: + '@typescript/vfs': 1.5.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -5541,12 +6057,45 @@ packages: dev: true optional: true + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.2 + dev: true + + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.2 + dev: true + /unist-util-stringify-position@2.0.3: resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} dependencies: '@types/unist': 2.0.10 dev: true + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.2 + dev: true + + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + dev: true + + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: true + /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} @@ -5740,6 +6289,21 @@ packages: spdx-expression-parse: 3.0.1 dev: true + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + dev: true + + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + dev: true + /vite-plugin-inspect@0.8.3(vite@3.2.8): resolution: {integrity: sha512-SBVzOIdP/kwe6hjkt7LSW4D0+REqqe58AumcnCfRNw4Kt3mbS9pEBkch+nupu2PBxv2tQi69EQHQ1ZA1vgB/Og==} engines: {node: '>=14'} @@ -5937,6 +6501,14 @@ packages: - supports-color dev: true + /vue-resize@2.0.0-alpha.1(vue@3.4.15): + resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.15(typescript@5.3.3) + dev: true + /vue-router@4.2.5(vue@3.4.15): resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} peerDependencies: @@ -5956,6 +6528,13 @@ packages: - typescript dev: true + /vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + /vue@3.4.15(typescript@5.3.3): resolution: {integrity: sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==} peerDependencies: @@ -6066,3 +6645,7 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: true diff --git a/resources/learning.md b/resources/learning.md index cfa4cab..614872d 100644 --- a/resources/learning.md +++ b/resources/learning.md @@ -4,7 +4,7 @@ ### Videos - + ### Articles diff --git a/themes/write-a-theme.md b/themes/write-a-theme.md index 08ee0fe..5e79af9 100644 --- a/themes/write-a-theme.md +++ b/themes/write-a-theme.md @@ -118,7 +118,7 @@ Slidev toggles a `dark` class on the page's `html` element for switching color s ### Highlighter -Syntax highlighting colors are also provided in the theme. We support both [Prism](https://prismjs.com/), [Shiki](https://github.com/shikijs/shiki) and [Shikiji](https://github.com/antfu/shikiji). For more information please refer to [the syntax highlighting docs](/custom/highlighters). +Syntax highlighting colors are also provided in the theme. We support both [Prism](https://prismjs.com/), [Shiki](https://github.com/shikijs/shiki). For more information please refer to [the syntax highlighting docs](/custom/highlighters). You can support either one of them, or both. Refer to the default theme for configurations examples [`./styles/code.css`](https://github.com/slidevjs/slidev/blob/main/packages/create-theme/template/styles/code.css) / [`./setup/shiki.ts`](https://github.com/slidevjs/slidev/blob/main/packages/create-theme/template/setup/shiki.ts). From 6733ad9849abeb71c82213da07b3fc1e1b995b73 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 2 Feb 2024 21:32:06 +0100 Subject: [PATCH 59/89] chore: update --- components.d.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/components.d.ts b/components.d.ts index 0b36d01..10dffc6 100644 --- a/components.d.ts +++ b/components.d.ts @@ -12,9 +12,6 @@ declare module 'vue' { ArrowRight: typeof import('./.vitepress/theme/components/icons/ArrowRight.vue')['default'] AutoFitText: typeof import('./.vitepress/@slidev/client/builtin/AutoFitText.vue')['default'] BooleanDisplay: typeof import('./.vitepress/theme/components/BooleanDisplay.vue')['default'] - 'Carbon:chevronLeft': typeof import('~icons/carbon/chevron-left')['default'] - 'Carbon:chevronRight': typeof import('~icons/carbon/chevron-right')['default'] - 'Carbon:logoTwitter': typeof import('~icons/carbon/logo-twitter')['default'] CarbonApps: typeof import('~icons/carbon/apps')['default'] CarbonArrowLeft: typeof import('~icons/carbon/arrow-left')['default'] CarbonArrowRight: typeof import('~icons/carbon/arrow-right')['default'] @@ -38,7 +35,6 @@ declare module 'vue' { DemoEditor: typeof import('./.vitepress/theme/components/demo/DemoEditor.vue')['default'] DemoSlide: typeof import('./.vitepress/theme/components/demo/DemoSlide.vue')['default'] Environment: typeof import('./.vitepress/theme/components/Environment.vue')['default'] - HomeFeatures: typeof import('./.vitepress/theme/components/HomeFeatures.vue')['default'] Link: typeof import('./.vitepress/@slidev/client/builtin/Link.vue')['default'] LogosVue: typeof import('~icons/logos/vue')['default'] MdiAccountCircle: typeof import('~icons/mdi/account-circle')['default'] @@ -53,8 +49,6 @@ declare module 'vue' { RouterView: typeof import('vue-router')['RouterView'] ShowCaseInfo: typeof import('./.vitepress/theme/components/ShowCaseInfo.vue')['default'] ShowCases: typeof import('./.vitepress/theme/components/ShowCases.vue')['default'] - SimpleIconsGithub: typeof import('~icons/simple-icons/github')['default'] - SimpleIconsNpm: typeof import('~icons/simple-icons/npm')['default'] SlideCurrentNo: typeof import('./.vitepress/@slidev/client/builtin/SlideCurrentNo.vue')['default'] SlidesTotal: typeof import('./.vitepress/@slidev/client/builtin/SlidesTotal.vue')['default'] Starport: typeof import('vue-starport')['Starport'] From 0a3ecb18a203289747bc5c18fb332402a4a8e393 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 2 Feb 2024 21:40:28 +0100 Subject: [PATCH 60/89] chore: update --- .vitepress/theme/components/demo/DemoEditor.vue | 12 +++++++----- .vitepress/theme/styles/vars.css | 1 + components.d.ts | 2 ++ netlify.toml | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.vitepress/theme/components/demo/DemoEditor.vue b/.vitepress/theme/components/demo/DemoEditor.vue index 0d685f6..51e8aee 100644 --- a/.vitepress/theme/components/demo/DemoEditor.vue +++ b/.vitepress/theme/components/demo/DemoEditor.vue @@ -1,11 +1,11 @@ - From 36a1b5a39b047328e5666ec04c57c77e21277408 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 2 Feb 2024 22:36:53 +0100 Subject: [PATCH 62/89] chore: fix netlify --- netlify.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netlify.toml b/netlify.toml index 6174c77..56736cf 100755 --- a/netlify.toml +++ b/netlify.toml @@ -3,7 +3,7 @@ publish = ".vitepress/dist" command = "pnpm run build" [build.environment] -NODE_VERSION = 20 +NODE_VERSION = "20" PLAYWRIGHT_BROWSERS_PATH = "0" [[redirects]] From b41368d064b797a78bad162df3a02793b4b8e8ef Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 2 Feb 2024 22:56:25 +0100 Subject: [PATCH 63/89] chore: update --- .vitepress/theme/components/{demo => }/Demo.vue | 0 .vitepress/theme/components/{demo => }/DemoEditor.vue | 0 .vitepress/theme/components/{demo => }/DemoSlide.vue | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename .vitepress/theme/components/{demo => }/Demo.vue (100%) rename .vitepress/theme/components/{demo => }/DemoEditor.vue (100%) rename .vitepress/theme/components/{demo => }/DemoSlide.vue (100%) diff --git a/.vitepress/theme/components/demo/Demo.vue b/.vitepress/theme/components/Demo.vue similarity index 100% rename from .vitepress/theme/components/demo/Demo.vue rename to .vitepress/theme/components/Demo.vue diff --git a/.vitepress/theme/components/demo/DemoEditor.vue b/.vitepress/theme/components/DemoEditor.vue similarity index 100% rename from .vitepress/theme/components/demo/DemoEditor.vue rename to .vitepress/theme/components/DemoEditor.vue diff --git a/.vitepress/theme/components/demo/DemoSlide.vue b/.vitepress/theme/components/DemoSlide.vue similarity index 100% rename from .vitepress/theme/components/demo/DemoSlide.vue rename to .vitepress/theme/components/DemoSlide.vue From 79a4d453cf7d626368487ec247f6becebd0a20d5 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 2 Feb 2024 23:11:01 +0100 Subject: [PATCH 64/89] chore: fix demo style --- .vitepress/config.ts | 1 + .vitepress/theme/Layout.vue | 138 ------------------ .vitepress/theme/NotFound.vue | 23 --- .../theme/components/BooleanDisplay.vue | 25 ---- .../theme/components/DarkModeSwitch.vue | 13 -- .vitepress/theme/components/Demo.vue | 3 + .vitepress/theme/components/DemoContainer.vue | 18 --- .vitepress/theme/components/LandingPage.vue | 24 +++ .../components/{Tweet.vue => TheTweet.vue} | 2 +- .../theme/components/ToggleSideBarButton.vue | 46 ------ .../theme/components/icons/ArrowLeft.vue | 5 - .../theme/components/icons/ArrowRight.vue | 5 - .vitepress/theme/components/icons/Moon.vue | 8 - .../theme/components/icons/OutboundLink.vue | 31 ---- .vitepress/theme/components/icons/README.md | 1 - .vitepress/theme/components/icons/Sun.vue | 28 ---- .vitepress/theme/config.ts | 128 ---------------- .vitepress/theme/support/sideBar.ts | 67 --------- .vitepress/theme/utils.ts | 77 ---------- components.d.ts | 20 +-- guide/drawing.md | 2 +- guide/editors.md | 2 +- guide/recording.md | 2 +- guide/syntax.md | 2 +- index.md | 34 +---- 25 files changed, 40 insertions(+), 665 deletions(-) delete mode 100644 .vitepress/theme/Layout.vue delete mode 100644 .vitepress/theme/NotFound.vue delete mode 100644 .vitepress/theme/components/BooleanDisplay.vue delete mode 100644 .vitepress/theme/components/DarkModeSwitch.vue delete mode 100644 .vitepress/theme/components/DemoContainer.vue create mode 100644 .vitepress/theme/components/LandingPage.vue rename .vitepress/theme/components/{Tweet.vue => TheTweet.vue} (98%) delete mode 100644 .vitepress/theme/components/ToggleSideBarButton.vue delete mode 100644 .vitepress/theme/components/icons/ArrowLeft.vue delete mode 100644 .vitepress/theme/components/icons/ArrowRight.vue delete mode 100644 .vitepress/theme/components/icons/Moon.vue delete mode 100644 .vitepress/theme/components/icons/OutboundLink.vue delete mode 100644 .vitepress/theme/components/icons/README.md delete mode 100644 .vitepress/theme/components/icons/Sun.vue delete mode 100644 .vitepress/theme/config.ts delete mode 100644 .vitepress/theme/support/sideBar.ts delete mode 100644 .vitepress/theme/utils.ts diff --git a/.vitepress/config.ts b/.vitepress/config.ts index feffd36..8c5d9e1 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -1,6 +1,7 @@ import type { DefaultTheme } from 'vitepress' import { defineConfig } from 'vitepress' import { transformerTwoslash } from '@shikijs/vitepress-twoslash' +import vite from '../vite.config' const CURRENT_VERSION = '0.47.1' diff --git a/.vitepress/theme/Layout.vue b/.vitepress/theme/Layout.vue deleted file mode 100644 index 098f608..0000000 --- a/.vitepress/theme/Layout.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - diff --git a/.vitepress/theme/NotFound.vue b/.vitepress/theme/NotFound.vue deleted file mode 100644 index bfaacb6..0000000 --- a/.vitepress/theme/NotFound.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - diff --git a/.vitepress/theme/components/BooleanDisplay.vue b/.vitepress/theme/components/BooleanDisplay.vue deleted file mode 100644 index d51afbc..0000000 --- a/.vitepress/theme/components/BooleanDisplay.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - diff --git a/.vitepress/theme/components/DarkModeSwitch.vue b/.vitepress/theme/components/DarkModeSwitch.vue deleted file mode 100644 index 3e1c70b..0000000 --- a/.vitepress/theme/components/DarkModeSwitch.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/.vitepress/theme/components/Demo.vue b/.vitepress/theme/components/Demo.vue index 1d1d41c..0c3d0eb 100644 --- a/.vitepress/theme/components/Demo.vue +++ b/.vitepress/theme/components/Demo.vue @@ -15,6 +15,9 @@ import SlideContainer from '@slidev/client/internals/SlideContainer.vue' import '@slidev/client/styles/layouts-base.css' import '@slidev/theme-default/styles/layouts.css' +import DemoEditor from './DemoEditor.vue' +import DemoSlide from './DemoSlide.vue' + const page = ref(0) const paused = ref(false) const code = ref('') diff --git a/.vitepress/theme/components/DemoContainer.vue b/.vitepress/theme/components/DemoContainer.vue deleted file mode 100644 index 1ea93e1..0000000 --- a/.vitepress/theme/components/DemoContainer.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/.vitepress/theme/components/LandingPage.vue b/.vitepress/theme/components/LandingPage.vue new file mode 100644 index 0000000..1a60abf --- /dev/null +++ b/.vitepress/theme/components/LandingPage.vue @@ -0,0 +1,24 @@ + diff --git a/.vitepress/theme/components/Tweet.vue b/.vitepress/theme/components/TheTweet.vue similarity index 98% rename from .vitepress/theme/components/Tweet.vue rename to .vitepress/theme/components/TheTweet.vue index af64870..9bf610e 100644 --- a/.vitepress/theme/components/Tweet.vue +++ b/.vitepress/theme/components/TheTweet.vue @@ -3,7 +3,7 @@ A simple wrapper for embedded Tweet Usage: - + --> - - - - diff --git a/.vitepress/theme/components/icons/ArrowLeft.vue b/.vitepress/theme/components/icons/ArrowLeft.vue deleted file mode 100644 index 3f64f1a..0000000 --- a/.vitepress/theme/components/icons/ArrowLeft.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/.vitepress/theme/components/icons/ArrowRight.vue b/.vitepress/theme/components/icons/ArrowRight.vue deleted file mode 100644 index 19d2186..0000000 --- a/.vitepress/theme/components/icons/ArrowRight.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/.vitepress/theme/components/icons/Moon.vue b/.vitepress/theme/components/icons/Moon.vue deleted file mode 100644 index 69567db..0000000 --- a/.vitepress/theme/components/icons/Moon.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/.vitepress/theme/components/icons/OutboundLink.vue b/.vitepress/theme/components/icons/OutboundLink.vue deleted file mode 100644 index 4d74eee..0000000 --- a/.vitepress/theme/components/icons/OutboundLink.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/.vitepress/theme/components/icons/README.md b/.vitepress/theme/components/icons/README.md deleted file mode 100644 index 58b1801..0000000 --- a/.vitepress/theme/components/icons/README.md +++ /dev/null @@ -1 +0,0 @@ -Download from https://icones.js.org/collection/carbon diff --git a/.vitepress/theme/components/icons/Sun.vue b/.vitepress/theme/components/icons/Sun.vue deleted file mode 100644 index 9cd6bdf..0000000 --- a/.vitepress/theme/components/icons/Sun.vue +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/.vitepress/theme/config.ts b/.vitepress/theme/config.ts deleted file mode 100644 index 3139fb5..0000000 --- a/.vitepress/theme/config.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* eslint-disable @typescript-eslint/no-namespace */ - -export namespace DefaultTheme { - export interface Config { - logo?: string - nav?: NavItem[] | false - sidebar?: SideBarConfig | MultiSideBarConfig - - /** - * GitHub repository following the format /. - * - * @example `"vuejs/vue-next"` - */ - repo?: string - - /** - * Customize the header label. Defaults to GitHub/Gitlab/Bitbucket - * depending on the provided repo. - * - * @exampe `"Contribute!"` - */ - repoLabel?: string - - /** - * If your docs are in a different repository from your main project. - * - * @example `"vuejs/docs-next"` - */ - docsRepo?: string - - /** - * If your docs are not at the root of the repo. - * - * @example `"docs"` - */ - docsDir?: string - - /** - * If your docs are in a different branch. Defaults to `main`. - * - * @example `"next"` - */ - docsBranch?: string - - /** - * Enable links to edit pages at the bottom of the page. - */ - editLinks?: boolean - - /** - * Custom text for edit link. Defaults to "Edit this page". - */ - editLinkText?: string - - /** - * Show last updated time at the bottom of the page. Defaults to `false`. - * If given a string, it will be displayed as a prefix (default value: - * "Last Updated"). - */ - lastUpdated?: string | boolean - - prevLinks?: boolean - nextLinks?: boolean - - locales?: Record> - } - - // navbar -------------------------------------------------------------------- - - export type NavItem = NavItemWithLink | NavItemWithChildren - - export interface NavItemBase { - text: string - target?: string - rel?: string - ariaLabel?: string - activeMatch?: string - } - - export interface NavItemWithLink extends NavItemBase { - link: string - } - - export interface NavItemWithChildren extends NavItemBase { - items: NavItemWithLink[] - } - - // sidebar ------------------------------------------------------------------- - - export type SideBarConfig = SideBarItem[] | 'auto' | false - - export interface MultiSideBarConfig { - [path: string]: SideBarConfig - } - - export type SideBarItem = SideBarLink | SideBarGroup - - export interface SideBarLink { - text: string - link: string - } - - export interface SideBarGroup { - text: string - link?: string - - /** - * @default false - */ - collapsable?: boolean - - children: SideBarItem[] - } - - // locales ------------------------------------------------------------------- - - export interface LocaleConfig { - /** - * Text for the language dropdown. - */ - selectText?: string - - /** - * Label for this locale in the language dropdown. - */ - label?: string - } -} diff --git a/.vitepress/theme/support/sideBar.ts b/.vitepress/theme/support/sideBar.ts deleted file mode 100644 index ccd068f..0000000 --- a/.vitepress/theme/support/sideBar.ts +++ /dev/null @@ -1,67 +0,0 @@ -import type { DefaultTheme } from '../config' -import { - ensureSlash, - ensureStartingSlash, - isArray, - removeExtension, -} from '../utils' - -export function isSideBarConfig( - sidebar: DefaultTheme.SideBarConfig | DefaultTheme.MultiSideBarConfig, -): sidebar is DefaultTheme.SideBarConfig { - return sidebar === false || sidebar === 'auto' || isArray(sidebar) -} - -export function isSideBarGroup( - item: DefaultTheme.SideBarItem, -): item is DefaultTheme.SideBarGroup { - return (item as DefaultTheme.SideBarGroup).children !== undefined -} - -/** - * Get the `SideBarConfig` from sidebar option. This method will ensure to get - * correct sidebar config from `MultiSideBarConfig` with various path - * combinations such as matching `guide/` and `/guide/`. If no matching config - * was found, it will return `auto` as a fallback. - */ -export function getSideBarConfig( - sidebar: DefaultTheme.SideBarConfig | DefaultTheme.MultiSideBarConfig, - path: string, -): DefaultTheme.SideBarConfig { - if (isSideBarConfig(sidebar)) - return sidebar - - // get the very first segment of the path to compare with nulti sidebar keys - // and make sure it's surrounded by slash - path = removeExtension(path) - path = ensureStartingSlash(path).split('/')[1] || '/' - path = ensureSlash(path) - - for (const dir of Object.keys(sidebar)) { - // make sure the multi sidebar key is surrounded by slash too - if (path === ensureSlash(dir)) - return sidebar[dir] - } - - return 'auto' -} - -/** - * Get flat sidebar links from the sidebar items. This method is useful for - * creating the "next and prev link" feature. It will ignore any items that - * don't have `link` property and removes `.md` or `.html` extension if a - * link contains it. - */ -export function getFlatSideBarLinks( - sidebar: DefaultTheme.SideBarItem[], -): DefaultTheme.SideBarLink[] { - return sidebar.reduce((links, item) => { - if (item.link) - links.push({ text: item.text, link: removeExtension(item.link) }) - - if (isSideBarGroup(item)) - links = [...links, ...getFlatSideBarLinks(item.children)] - - return links - }, []) -} diff --git a/.vitepress/theme/utils.ts b/.vitepress/theme/utils.ts deleted file mode 100644 index 6e985af..0000000 --- a/.vitepress/theme/utils.ts +++ /dev/null @@ -1,77 +0,0 @@ -export const hashRE = /#.*$/ -export const extRE = /(index)?\.(md|html)$/ -export const endingSlashRE = /\/$/ -export const outboundRE = /^[a-z]+:/i - -export function isNullish(value: any): value is null | undefined { - return value === null || value === undefined -} - -export function isArray(value: any): value is any[] { - return Array.isArray(value) -} - -export function isExternal(path: string): boolean { - return outboundRE.test(path) -} - -export function isActive(route: any, path?: string): boolean { - if (path === undefined) - return false - - const routePath = normalize(route.path) - const pagePath = normalize(path) - - return routePath === pagePath -} - -export function normalize(path: string): string { - return decodeURI(path).replace(hashRE, '').replace(extRE, '') -} - -export function joinUrl(base: string, path: string): string { - const baseEndsWithSlash = base.endsWith('/') - const pathStartsWithSlash = path.startsWith('/') - - if (baseEndsWithSlash && pathStartsWithSlash) - return base.slice(0, -1) + path - - if (!baseEndsWithSlash && !pathStartsWithSlash) - return `${base}/${path}` - - return base + path -} - -/** - * get the path without filename (the last segment). for example, if the given - * path is `/guide/getting-started.html`, this method will return `/guide/`. - * Always with a trailing slash. - */ -export function getPathDirName(path: string): string { - const segments = path.split('/') - - if (segments[segments.length - 1]) - segments.pop() - - return ensureEndingSlash(segments.join('/')) -} - -export function ensureSlash(path: string): string { - return ensureEndingSlash(ensureStartingSlash(path)) -} - -export function ensureStartingSlash(path: string): string { - return /^\//.test(path) ? path : `/${path}` -} - -export function ensureEndingSlash(path: string): string { - return /(\.html|\/)$/.test(path) ? path : `${path}/` -} - -/** - * Remove `.md` or `.html` extension from the given path. It also converts - * `index` to slush. - */ -export function removeExtension(path: string): string { - return path.replace(/(index)?(\.(md|html))?$/, '') || '/' -} diff --git a/components.d.ts b/components.d.ts index 8bb786d..b34c1cc 100644 --- a/components.d.ts +++ b/components.d.ts @@ -8,10 +8,7 @@ export {} declare module 'vue' { export interface GlobalComponents { Arrow: typeof import('./.vitepress/@slidev/client/builtin/Arrow.vue')['default'] - ArrowLeft: typeof import('./.vitepress/theme/components/icons/ArrowLeft.vue')['default'] - ArrowRight: typeof import('./.vitepress/theme/components/icons/ArrowRight.vue')['default'] AutoFitText: typeof import('./.vitepress/@slidev/client/builtin/AutoFitText.vue')['default'] - BooleanDisplay: typeof import('./.vitepress/theme/components/BooleanDisplay.vue')['default'] 'Carbon:chevronLeft': typeof import('~icons/carbon/chevron-left')['default'] 'Carbon:chevronRight': typeof import('~icons/carbon/chevron-right')['default'] CarbonApps: typeof import('~icons/carbon/apps')['default'] @@ -31,21 +28,17 @@ declare module 'vue' { CarbonUserSpeaker: typeof import('~icons/carbon/user-speaker')['default'] CarbonVideo: typeof import('~icons/carbon/video')['default'] CodeBlockWrapper: typeof import('./.vitepress/@slidev/client/builtin/CodeBlockWrapper.vue')['default'] - DarkModeSwitch: typeof import('./.vitepress/theme/components/DarkModeSwitch.vue')['default'] - Demo: typeof import('./.vitepress/theme/components/demo/Demo.vue')['default'] - DemoContainer: typeof import('./.vitepress/theme/components/DemoContainer.vue')['default'] - DemoEditor: typeof import('./.vitepress/theme/components/demo/DemoEditor.vue')['default'] - DemoSlide: typeof import('./.vitepress/theme/components/demo/DemoSlide.vue')['default'] + Demo: typeof import('./.vitepress/theme/components/Demo.vue')['default'] + DemoEditor: typeof import('./.vitepress/theme/components/DemoEditor.vue')['default'] + DemoSlide: typeof import('./.vitepress/theme/components/DemoSlide.vue')['default'] Environment: typeof import('./.vitepress/theme/components/Environment.vue')['default'] + LandingPage: typeof import('./.vitepress/theme/components/LandingPage.vue')['default'] Link: typeof import('./.vitepress/@slidev/client/builtin/Link.vue')['default'] LogosVue: typeof import('~icons/logos/vue')['default'] MdiAccountCircle: typeof import('~icons/mdi/account-circle')['default'] Mermaid: typeof import('./.vitepress/@slidev/client/builtin/Mermaid.vue')['default'] Monaco: typeof import('./.vitepress/@slidev/client/builtin/Monaco.vue')['default'] - Moon: typeof import('./.vitepress/theme/components/icons/Moon.vue')['default'] - OutboundLink: typeof import('./.vitepress/theme/components/icons/OutboundLink.vue')['default'] PlantUml: typeof import('./.vitepress/@slidev/client/builtin/PlantUml.vue')['default'] - README: typeof import('./.vitepress/theme/components/icons/README.md')['default'] RenderWhen: typeof import('./.vitepress/@slidev/client/builtin/RenderWhen.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] @@ -55,14 +48,13 @@ declare module 'vue' { SlidesTotal: typeof import('./.vitepress/@slidev/client/builtin/SlidesTotal.vue')['default'] Starport: typeof import('vue-starport')['Starport'] StarportCarrier: typeof import('vue-starport')['StarportCarrier'] - Sun: typeof import('./.vitepress/theme/components/icons/Sun.vue')['default'] ThemeGallery: typeof import('./.vitepress/theme/components/ThemeGallery.vue')['default'] ThemeInfo: typeof import('./.vitepress/theme/components/ThemeInfo.vue')['default'] + TheTweet: typeof import('./.vitepress/theme/components/TheTweet.vue')['default'] Toc: typeof import('./.vitepress/@slidev/client/builtin/Toc.vue')['default'] TocList: typeof import('./.vitepress/@slidev/client/builtin/TocList.vue')['default'] - ToggleSideBarButton: typeof import('./.vitepress/theme/components/ToggleSideBarButton.vue')['default'] Transform: typeof import('./.vitepress/@slidev/client/builtin/Transform.vue')['default'] - Tweet: typeof import('./.vitepress/theme/components/Tweet.vue')['default'] + Tweet: typeof import('./.vitepress/@slidev/client/builtin/Tweet.vue')['default'] TwemojiCatWithTearsOfJoy: typeof import('~icons/twemoji/cat-with-tears-of-joy')['default'] UimRocket: typeof import('~icons/uim/rocket')['default'] Youtube: typeof import('./.vitepress/@slidev/client/builtin/Youtube.vue')['default'] diff --git a/guide/drawing.md b/guide/drawing.md index 382da1e..24f7a60 100644 --- a/guide/drawing.md +++ b/guide/drawing.md @@ -6,7 +6,7 @@ We have [drauu](https://github.com/antfu/drauu) built-in for drawing and annotat To start, click the icon in the toolbar and start drawing. It's also available in the [Presenter Mode](/guide/presenter-mode). Drawings and annotations you created will be **synced up** automatically across all instances in real-time. - + ## Use with Stylus Pen diff --git a/guide/editors.md b/guide/editors.md index 3e92209..c9700e4 100644 --- a/guide/editors.md +++ b/guide/editors.md @@ -40,4 +40,4 @@ The VS Code extension provides some features to help you better organize your sl ![](https://user-images.githubusercontent.com/11247099/116809994-cc2caa00-ab73-11eb-879f-60585747c3c9.png) - + diff --git a/guide/recording.md b/guide/recording.md index 5b28b06..3a81163 100644 --- a/guide/recording.md +++ b/guide/recording.md @@ -6,7 +6,7 @@ Slidev has a built-in recording and camera view. You can use them to record your Click the button in the navigation panel to show your camera view in the presentation. You can drag to move it, and use the handler on the right bottom corner to resize it. The size and position will persist in `localStorage` and will therefore be consistent across multiple refreshes, so no need to worry about that. - + ## Recording diff --git a/guide/syntax.md b/guide/syntax.md index 65df553..a1335ec 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -497,7 +497,7 @@ Learn more about [frontmatter configurations](/custom/#frontmatter-configures). Slidev comes with LaTeX support out-of-box, powered by [KaTeX](https://katex.org/). - + ### Inline diff --git a/index.md b/index.md index 72fc3e4..70a3a9d 100644 --- a/index.md +++ b/index.md @@ -1,37 +1,5 @@ --- layout: home - -# hero: -# name: Slidev -# text: For Developers -# tagline: Presentation Slides for Developers -# image: -# src: /logo.svg -# alt: Slidev -# actions: -# - theme: brand -# text: Get Started -# link: /guide/ -# - theme: alt -# text: Why -# link: /guide/why --- -
-
-

Slidev

- Slidev -

Presentation Slides for Developers

- -
-
-
- - - -
-
-
+ From f6bcb597777955c1bfc329d6f0ea11d06e77d8d9 Mon Sep 17 00:00:00 2001 From: Julien Deniau <1398469+jdeniau@users.noreply.github.com> Date: Sun, 4 Feb 2024 19:57:20 +0100 Subject: [PATCH 65/89] docs: layout image: add backgroundSize doc (#164) --- builtin/layouts.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/builtin/layouts.md b/builtin/layouts.md index b3aac08..01c942d 100644 --- a/builtin/layouts.md +++ b/builtin/layouts.md @@ -79,6 +79,25 @@ image: ./path/to/the/image --- ``` +You can change the default background size (`cover`) by adding the `backgroundSize` attribute: + +```yaml +--- +layout: image +image: ./path/to/the/image +backgroundSize: contain +--- +``` + +```yaml +--- +layout: image-left +image: ./path/to/the/image +backgroundSize: 20em 70% +--- +``` + + ### `iframe-left` Shows a web page on the left side of the screen, the content will be placed on the right side. From 9bbccbb1bd2d1d93f3d376ed06c73986710dd518 Mon Sep 17 00:00:00 2001 From: George <31376482+george-gca@users.noreply.github.com> Date: Sun, 4 Feb 2024 20:03:07 -0300 Subject: [PATCH 66/89] docs: updated GitHub actions versions on hosting.md (#163) --- guide/hosting.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/guide/hosting.md b/guide/hosting.md index 6f7b738..e373669 100644 --- a/guide/hosting.md +++ b/guide/hosting.md @@ -169,9 +169,9 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 'lts/*' @@ -181,15 +181,15 @@ jobs: - name: Build run: npm run build -- --base // - - uses: actions/configure-pages@v3 + - uses: actions/configure-pages@v4 - - uses: actions/upload-pages-artifact@v1 + - uses: actions/upload-pages-artifact@v3 with: path: dist - name: Deploy id: deployment - uses: actions/deploy-pages@v2 + uses: actions/deploy-pages@v4 ``` - In your repository, go to Settings>Pages. Under "Build and deployment", select "Github Actions". - Finally, after all workflows are executed, a link to the slides should appear under Settings>Pages. From e52d01f8924fc2746acb41ca2510db795a7b0c4a Mon Sep 17 00:00:00 2001 From: Ethan Niser <100045248+ethanniser@users.noreply.github.com> Date: Tue, 6 Feb 2024 03:39:12 -0600 Subject: [PATCH 67/89] docs: add 'cards' prop in Tweet component (#166) --- builtin/components.md | 1 + 1 file changed, 1 insertion(+) diff --git a/builtin/components.md b/builtin/components.md index be2a9c8..35cbc0b 100644 --- a/builtin/components.md +++ b/builtin/components.md @@ -241,6 +241,7 @@ Parameters: * `id` (`number | string`, required): id of the tweet * `scale` (`number | string`, default `1`): transform scale value * `conversation` (`string`, default `'none'`): [tweet embed parameter](https://developer.twitter.com/en/docs/twitter-for-websites/embedded-tweets/guides/embedded-tweet-parameter-reference) +* `cards` (`'hidden' | 'visible'`, default `'visible'`): [tweet embed parameter](https://developer.twitter.com/en/docs/twitter-for-websites/embedded-tweets/guides/embedded-tweet-parameter-reference) ### `VAfter`, `VClick` and `VClicks` From 2ff459093d432ffb43fa5738d207017ad78a7b38 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Sun, 11 Feb 2024 22:09:25 +0800 Subject: [PATCH 68/89] fix: components not found (#165) (#167) --- vite.config.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 88feddb..eba4341 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -33,9 +33,7 @@ export default defineConfig({ './.vitepress/@slidev/client/builtin', ], extensions: ['vue', 'md'], - include: [ - /\.(vue|md)$/, - ], + include: [/\.vue$/, /\.vue\?vue/, /\.md$/], resolvers: [ IconsResolver({ prefix: '', From dbfb0168dc2a10c37d04f991ec135a402b411f02 Mon Sep 17 00:00:00 2001 From: Bogdan Cerovac Date: Sun, 11 Feb 2024 15:31:54 +0100 Subject: [PATCH 69/89] docs: added info about the possibility to start YouTube video at specific time (#168) --- builtin/components.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builtin/components.md b/builtin/components.md index 35cbc0b..7e333f1 100644 --- a/builtin/components.md +++ b/builtin/components.md @@ -262,6 +262,8 @@ Parameters: * `width` (`number`): width of the video * `height` (`number`): height of the video +You can also make the video start at specific time if you add `?start=1234` to the id value (where 1234 are seconds), + ## Custom Components Create a directory `components/` under your project root, and simply put your custom Vue components under it, then you can use it with the same name in your markdown file! From 178a989f589711edd18c5f67699e14917e0fae0b Mon Sep 17 00:00:00 2001 From: _Kerman Date: Thu, 15 Feb 2024 16:55:30 +0800 Subject: [PATCH 70/89] docs: update docs about click animations (#169) Co-authored-by: Anthony Fu --- guide/animations.md | 181 ++++++++++++++++++++++++++++++++------------ guide/syntax.md | 49 ++++-------- 2 files changed, 144 insertions(+), 86 deletions(-) diff --git a/guide/animations.md b/guide/animations.md index a00268a..393b761 100644 --- a/guide/animations.md +++ b/guide/animations.md @@ -1,51 +1,59 @@ +--- +outline: deep +--- + # Animations ## Click Animations +> [!NOTE] +> Since v0.48.0, we are rewritten the click animations system with much more consistent behaviors. It might change the behaviors of your existing slides in edge cases. While this page is showing the new click system, you can find more details about the refactor in [#1279](https://github.com/slidevjs/slidev/pull/1279). + ### `v-click` To apply "click animations" for elements, you can use the `v-click` directive or `` components ```md -# Hello - - - - -Hello World - - - - -
+ + Hello **World** -Hey! - -
+ +
Hey!
``` ### `v-after` -The usage of `v-after` is similar to `v-click` but it will turn the element visible when the previous `v-click` is triggered. +`v-after` is only provided as a directive. It will turn the element visible when the previous `v-click` is triggered. ```md -
Hello
-
World
+
Hello
+
World
``` -When you click the "next" button, both `Hello` and `World` will show up together. +When you press "next", both `Hello` and `World` will show up together. -### `v-click-hide` +### Hide after clicking -Same as `v-click` but instead of making the element appear, it makes the element invisible after clicking. +Add a `.hide` modifier to `v-click` or `v-after` to make the element invisible after clicking, instead of showing up. ```md -
Hello
+
Visible after 1 click
+
Hidden after 2 click
+
Hidden after 2 click
+``` + +For `v-click` component, you can use the `hide` prop to achieve the same effect: + +```md + Visible after 1 click + Hidden after 2 click ``` ### `v-clicks` -`v-clicks` is only provided as a component. It's a shorthand to apply the `v-click` directive to all its child elements. It is especially useful when working with lists. +`v-clicks` is only provided as a component. It's a shorthand to apply the `v-click` directive to all its child elements. It is especially useful when working with lists and tables. ```md @@ -53,14 +61,12 @@ Same as `v-click` but instead of making the element appear, it makes the element - Item 1 - Item 2 - Item 3 -- Item 4 ``` An item will become visible each time you click "next". - -It accepts a `depth` props for nested list: +It accepts a `depth` prop for nested list: ```md @@ -75,44 +81,108 @@ It accepts a `depth` props for nested list: ``` -### Custom Clicks Count +Also, you can use the `every` prop to specify the number of items to show after each click: -By default, Slidev counts how many steps are needed before going to the next slide. You can override this setting by passing the `clicks` frontmatter option: +```md + -```yaml ---- -# 10 clicks in this slide, before going to the next -clicks: 10 ---- +- Item 1 (part 1) +- Item 1 (part 2) +- Item 2 (part 1) +- Item 2 (part 2) + + ``` -### Ordering +### Positioning -Passing the click index to your directives, you can customize the order of the revealing +By default, the clicking animations take place one by one. You can customize the animation position of elements by using the `at` prop or the `v-click` directive with value. -```md -
1
-
2
-
3
+Like the CSS layout system, click-animated elements can be "relative" or "absolute": + +#### Relative Position + +This actual position of relative elements are calculated based on the previous relative elements: + +~~~md +
visible after 1 click
+
visible after 3 clicks
+
hidden after 2 clicks
+ +```js {none|1|2}{at:'+5'} +1 // highlighted after 7 clicks +2 // highlighted after 8 clicks ``` +~~~ + +> [!NOTE] +> The default value of `v-click` is `'+1'` when you don't specify it. + +In fact, `v-after` are just shortcuts for `v-click` with `at` prop: ```md - -
1
-
2
-
3
+ + + + + + + + ``` -```md ---- -clicks: 3 ---- +:::info +Only string values start with `'+'` or `'-'` like `'+1'` are treated as relative positions: - - -
Hi
-
+| Value | Kind | +| -------------- | -------- | +| `'-1'`, `'+1'` | Relative | +| `+1` === `1` | Absolute | +| `'1'` | Absolute | + +So don't forget the single quotes for the relative values. +::: + +#### Absolute Position + +The given value is the exact click count to show the element: + +~~~md +
visible after 3 clicks
+
visible after 2 clicks
+
hidden after 1 click
+ +```js {none|1|2}{at:3} +1 // highlighted after 3 clicks +2 // highlighted after 4 clicks ``` +~~~ + +#### Mixed Case + +You can mix the absolute and relative positions: + +~~~md +
visible after 1 click
+
visible after 3 clicks
+
visible after 2 click
+
visible after 1 click
+
visible after 4 clicks
+~~~ + +The following example synchronizes the highlighting of the two code blocks: + +~~~md +```js {1|2}{at:1} +1 + 1 +'a' + 'b' +``` + +```js {1|2}{at:1} +2 +'ab' +``` +~~~ ### Enter & Leave @@ -124,6 +194,17 @@ You can also specify the enter and leave index for the `v-click` directive by pa
This will be shown on the 2nd and 3rd clicks, and hide again after the 4th.
``` +### Custom Total Clicks Count + +By default, Slidev counts how many steps are needed before going to the next slide. You can override this setting by passing the `clicks` frontmatter option: + +```yaml +--- +# 10 clicks in this slide, before going to the next +clicks: 10 +--- +``` + ### Element Transitions When you apply the `v-click` directive to your elements, it will attach the class name `slidev-vclick-target` to it. When the elements are hidden, the class name `slidev-vclick-hidden` will also be attached. For example: diff --git a/guide/syntax.md b/guide/syntax.md index a1335ec..d0cd2de 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -120,20 +120,7 @@ function add( ``` ~~~ -You can enable line number to all slides by setting `lineNumbers: true` on the config or enable each code block individually by setting `lines:true`. In case you want to disable the numbering for an specific block when `lineNumbers: true` you can set `lines:false` for that block: - -~~~md -```ts {2,3}{lines:true} -function add( - a: Ref | number, - b: Ref | number -) { - return computed(() => unref(a) + unref(b)) -} -``` -~~~ - -You can also set the starting line for each code block and highlight the lines accordingly, defaults to 1: +You can enable line number to all slides by setting `lineNumbers: true` on the config or enable each code block individually by setting `lines:true`. You can also set the starting line for each code block and highlight the lines accordingly, defaults to 1: ~~~md ```ts {6,7}{lines:true, startLine:5} @@ -146,7 +133,7 @@ function add( ``` ~~~ -To change the highlight in multiple steps, you can use `|` to separate them. For example +To change the highlight in multiple clicks, you can use `|` to separate them: ~~~md ```ts {2-3|5|all} @@ -159,12 +146,12 @@ function add( ``` ~~~ -This will first highlight `a: Ref | number` and `b: Ref | number`, and then `return computed(() => unref(a) + unref(b))` after one click, and lastly, the whole block. Learn more in the [clicks animations guide](/guide/animations). +This will first highlight `a: Ref | number` and `b: Ref | number`, and then `return computed(() => unref(a) + unref(b))` after one click, and lastly, the whole block. -You can start the highlight at a specific click: +You can set the line number to `hide` to hide the code block or `none` to not highlight any line: ~~~md -```ts {2-3|5|all}{at:0} +```ts {hide|none} function add( a: Ref | number, b: Ref | number @@ -174,26 +161,14 @@ function add( ``` ~~~ -This is especially useful when you need to sync different animations (when using `two-cols` layout and list animation for instance). -You may need to set the [custom clicks count](/guide/animations#custom-clicks-count) for the slide progression to function correctly. - -To skip highlighting any lines, you can set the line number to `0`. For example +::: tip +Learn more in the [clicks animations guide](./animations#positioning). +::: -~~~md {1} -```ts {0} -function add( - a: Ref | number, - b: Ref | number -) { - return computed(() => unref(a) + unref(b)) -} -``` -~~~ -If the code doesn't fit into one slide, you can pass an extra maxHeight option which will set fixed height -and enable scrolling +If the code doesn't fit into one slide, you use the `maxHeight` to set fixed height and enable scrolling: -~~~md {1} +~~~md ```ts {2|3|7|12}{maxHeight:'100px'} function add( a: Ref | number, @@ -469,7 +444,7 @@ You can import code snippets from existing files via following syntax: <<< @/snippets/snippet.js ``` -::: ttp +::: tip The value of `@` corresponds to the source root, the directory where the `slides.md` is located. ::: @@ -546,6 +521,8 @@ $$ {1|3|all} $$ ``` +The `at` and `finally` options of [code blocks](#line-highlighting) are also available for LaTeX blocks. + ## Diagrams You can also create diagrams / graphs from textual descriptions in your Markdown, powered by [Mermaid](https://mermaid-js.github.io/mermaid). From 5bb36b886ae9009e4661ee060cce1d86954d7280 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 15 Feb 2024 09:56:57 +0100 Subject: [PATCH 71/89] chore: update lint --- .vitepress/config.ts | 3 +-- .vitepress/theme/components/TheTweet.vue | 4 ++-- builtin/layouts.md | 1 - guide/hosting.md | 12 ++++++------ guide/syntax.md | 1 - 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/.vitepress/config.ts b/.vitepress/config.ts index 8c5d9e1..c3faaee 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -1,9 +1,8 @@ import type { DefaultTheme } from 'vitepress' import { defineConfig } from 'vitepress' import { transformerTwoslash } from '@shikijs/vitepress-twoslash' -import vite from '../vite.config' -const CURRENT_VERSION = '0.47.1' +const CURRENT_VERSION = '0.48.0-beta.2' const Guide: DefaultTheme.NavItemWithLink[] = [ { diff --git a/.vitepress/theme/components/TheTweet.vue b/.vitepress/theme/components/TheTweet.vue index 9bf610e..f822111 100644 --- a/.vitepress/theme/components/TheTweet.vue +++ b/.vitepress/theme/components/TheTweet.vue @@ -23,7 +23,7 @@ const vm = getCurrentInstance()! const loaded = ref(false) async function create() { - // @ts-expect-error + // @ts-expect-error Global variable await window.twttr.widgets.createTweet( props.id.toString(), tweet.value, @@ -36,7 +36,7 @@ async function create() { } if (isClient) { - // @ts-expect-error + // @ts-expect-error Global variable if (window?.twttr?.widgets) { onMounted(create) } diff --git a/builtin/layouts.md b/builtin/layouts.md index 01c942d..b04b0cd 100644 --- a/builtin/layouts.md +++ b/builtin/layouts.md @@ -97,7 +97,6 @@ backgroundSize: 20em 70% --- ``` - ### `iframe-left` Shows a web page on the left side of the screen, the content will be placed on the right side. diff --git a/guide/hosting.md b/guide/hosting.md index e373669..26177c0 100644 --- a/guide/hosting.md +++ b/guide/hosting.md @@ -106,15 +106,15 @@ We recommend to use `npm init slidev@latest` to scaffold your project, which con Create `netlify.toml` in your project root with the following content. -```ts -[build.environment] -NODE_VERSION = '14' - - [build] +```toml +[build] publish = 'dist' command = 'npm run build' - [[redirects]] +[build.environment] +NODE_VERSION = '20' + +[[redirects]] from = '/*' to = '/index.html' status = 200 diff --git a/guide/syntax.md b/guide/syntax.md index d0cd2de..33f5f3a 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -165,7 +165,6 @@ function add( Learn more in the [clicks animations guide](./animations#positioning). ::: - If the code doesn't fit into one slide, you use the `maxHeight` to set fixed height and enable scrolling: ~~~md From 081241c66e4b17a1a524facc9585f0b6f74f5699 Mon Sep 17 00:00:00 2001 From: Stefan Freitag Date: Sun, 18 Feb 2024 09:44:57 +0100 Subject: [PATCH 72/89] docs: fix typo in syntax.md (#171) --- guide/syntax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guide/syntax.md b/guide/syntax.md index 33f5f3a..2582f76 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -646,9 +646,9 @@ src: ./content.md > Available since v0.43.0 -Slidev has and experimental support for [MDC (Markdown Components) Syntax](https://content.nuxtjs.org/guide/writing/mdc) powered by [`markdown-it-mdc`](https://github.com/antfu/markdown-it-mdc). +Slidev has an experimental support for [MDC (Markdown Components) Syntax](https://content.nuxtjs.org/guide/writing/mdc) powered by [`markdown-it-mdc`](https://github.com/antfu/markdown-it-mdc). -You can enable it by add `mdc: true` to the frontmatter of your markdown file. +You can enable it by adding `mdc: true` to the frontmatter of your markdown file. ```md --- From 7a04557f35275398f1e4314e782f6a42936f7152 Mon Sep 17 00:00:00 2001 From: Xiangdong Zeng Date: Wed, 21 Feb 2024 00:52:47 +0800 Subject: [PATCH 73/89] docs: fix typo in fonts.md (#173) --- custom/fonts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom/fonts.md b/custom/fonts.md index 03cfa38..be4674c 100644 --- a/custom/fonts.md +++ b/custom/fonts.md @@ -86,7 +86,7 @@ If you want to disable the fallback fonts, configure as following --- fonts: mono: 'Fira Code, monospace' - fallback: false + fallbacks: false --- ``` From c3c1774bdf48295664f5b30d7ba7bfbda5a0f3d2 Mon Sep 17 00:00:00 2001 From: _Kerman Date: Wed, 21 Feb 2024 21:32:19 +0800 Subject: [PATCH 74/89] docs: update latest features (#174) --- custom/index.md | 11 ++++++----- guide/install.md | 3 ++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/custom/index.md b/custom/index.md index 00399c4..de17375 100644 --- a/custom/index.md +++ b/custom/index.md @@ -99,17 +99,18 @@ Check out the [type definitions](https://github.com/slidevjs/slidev/blob/main/pa In addition, every slide accepts the following configuration in the Frontmatter block: -* `clicks` (`number`): Custom clicks count (learn more [here](/guide/animations.html#custom-clicks-count)). -* `disabled` (`boolean`): Completely disable the slide. -* `hide` (`boolean`): Hide sub-slides when using `src` (learn more [here](/guide/syntax.html#multiple-entries)). +* `clicks` (`number`): Custom clicks count (learn more [here](/guide/animations.html#custom-total-clicks-count)). +* `disabled` (`boolean`): Completely disable and hide the slide. +* `hide` (`boolean`): The same as `disabled`. * `hideInToc` (`boolean`): Hide the slide for the `` components (learn more [here](/builtin/components.html#toc)). * `layout` (`string`): Defines the layout component applied to the slide (learn more [here](/guide/syntax.html#front-matter-layouts) and [here](/builtin/layouts.html)). * `level` (`number`): Override the title level for the `` and `<Toc>` components (only if `title` has also been declared, learn more [here](/builtin/components.html#titles)). -* `preload` (`boolean`, default `true`): preload the next slide (learn more [here](/guide/animations.html#motion)). -* `routeAlias` (`string`): create a route alias that can be used in the URL or with the `<Link>` component (learn more [here](/builtin/components.html#link)). +* `preload` (`boolean`, default `true`): Preload the next slide (learn more [here](/guide/animations.html#motion)). +* `routeAlias` (`string`): Create a route alias that can be used in the URL or with the `<Link>` component (learn more [here](/builtin/components.html#link)). * `src` (`string`): Includes a markdown file (learn more [here](/guide/syntax.html#multiple-entries)). * `title` (`string`): Override the title for the `<Title>` and `<Toc>` components (learn more [here](/builtin/components.html#titles)). * `transition` (`string | TransitionProps`): Defines the transition between the slide and the next one (learn more [here](/guide/animations.html#slide-transitions)). +* `zoom` (`number`): Custom zoom scale. Useful for slides with a lot of content. ## Directory Structure diff --git a/guide/install.md b/guide/install.md index b5c308a..ff78ed7 100644 --- a/guide/install.md +++ b/guide/install.md @@ -163,8 +163,9 @@ Options: * `--port`, `-p` (`number`, default: `3030`): port number. * `--open`, `-o` (`boolean`, default: `false`): open in browser. * `--remote [password]` (`string`): listen to public host and enable remote control, if a value is passed then the presenter mode is private and only accessible by passing the given password in the URL query `password` parameter. +* `--bind` (`string`, default: `0.0.0.0`): specify which IP addresses the server should listen on in the remote mode. * `--log` (`'error', 'warn', 'info', 'silent'`, default: `'warn'`): Log level. -* `--force`, `-f` (`boolean`, default `false`): force the optimizer to ignore the cache and re-bundle. +* `--force`, `-f` (`boolean`, default: `false`): force the optimizer to ignore the cache and re-bundle. * `--theme`, `-t` (`string`): override theme. ### `slidev build [entry]` From 1d54c861642c679ca01887a28e187047fedcbc83 Mon Sep 17 00:00:00 2001 From: _Kerman <kermanx@qq.com> Date: Fri, 23 Feb 2024 14:24:29 +0800 Subject: [PATCH 75/89] docs: fix icons installation guide (#175) --- guide/syntax.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/guide/syntax.md b/guide/syntax.md index 2582f76..1d841ff 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -328,15 +328,15 @@ This is another note ## Icons -Slidev allows you to have the accessing to almost all the popular open-source iconsets **directly** in your markdown. Powered by [`unplugin-icons`](https://github.com/antfu/unplugin-icons) and [Iconify](https://iconify.design/). +Slidev allows you to have the accessing to almost all the popular open-source iconsets **directly** in your markdown after installing the corresponding package. Powered by [`unplugin-icons`](https://github.com/antfu/unplugin-icons) and [Iconify](https://iconify.design/). The naming follows [Iconify](https://iconify.design/)'s conversion `{collection-name}-{icon-name}`. For example: -- `<mdi-account-circle />` - <mdi-account-circle /> from [Material Design Icons](https://github.com/Templarian/MaterialDesign) -- `<carbon-badge />` - <carbon-badge /> from [Carbon](https://github.com/carbon-design-system/carbon/tree/main/packages/icons) -- `<uim-rocket />` - <uim-rocket /> from [Unicons Monochrome](https://github.com/Iconscout/unicons) -- `<twemoji-cat-with-tears-of-joy />` - <twemoji-cat-with-tears-of-joy /> from [Twemoji](https://github.com/twitter/twemoji) -- `<logos-vue />` - <logos-vue /> from [SVG Logos](https://github.com/gilbarbara/logos) +- `<mdi-account-circle />` - <mdi-account-circle /> from [Material Design Icons](https://github.com/Templarian/MaterialDesign) - [`@iconify-json/mdi`](https://npmjs.com/package/@iconify-json/mdi) +- `<carbon-badge />` - <carbon-badge /> from [Carbon](https://github.com/carbon-design-system/carbon/tree/main/packages/icons) - [`@iconify-json/carbon`](https://npmjs.com/package/@iconify-json/carbon) +- `<uim-rocket />` - <uim-rocket /> from [Unicons Monochrome](https://github.com/Iconscout/unicons) - [`@iconify-json/uim`](https://npmjs.com/package/@iconify-json/uim) +- `<twemoji-cat-with-tears-of-joy />` - <twemoji-cat-with-tears-of-joy /> from [Twemoji](https://github.com/twitter/twemoji) - [`@iconify-json/twemoji`](https://npmjs.com/package/@iconify-json/twemoji) +- `<logos-vue />` - <logos-vue /> from [SVG Logos](https://github.com/gilbarbara/logos) - [`@iconify-json/logos`](https://npmjs.com/package/@iconify-json/logos) - And much more... Browse and search for all the icons available with [Icônes](https://icones.js.org/). From aa8c4cadc05aeca1e672a8297d644c558b294402 Mon Sep 17 00:00:00 2001 From: Anthony Fu <anthonyfu117@hotmail.com> Date: Sun, 25 Feb 2024 13:15:12 +0100 Subject: [PATCH 76/89] docs: update MDC support --- guide/animations.md | 2 +- guide/syntax.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/guide/animations.md b/guide/animations.md index 393b761..569ec5c 100644 --- a/guide/animations.md +++ b/guide/animations.md @@ -342,7 +342,7 @@ Experimental: This is not supported by all browsers. Check the [Browser compatib You can use the `view-transition-name` CSS property to name view transitions, which creates connections between different page elements and smooth transitions when switching slides. -You can enable [MDC (Markdown Component) Syntax](https://content.nuxtjs.org/guide/writing/mdc) support to conveniently name view-transitions: +You can enable [MDC (Markdown Component) Syntax](/syntax#mdc-syntax) support to conveniently name view-transitions: ```md --- diff --git a/guide/syntax.md b/guide/syntax.md index 1d841ff..fcd9fce 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -646,11 +646,11 @@ src: ./content.md > Available since v0.43.0 -Slidev has an experimental support for [MDC (Markdown Components) Syntax](https://content.nuxtjs.org/guide/writing/mdc) powered by [`markdown-it-mdc`](https://github.com/antfu/markdown-it-mdc). +Slidev supports optional [MDC (Markdown Components) Syntax](https://content.nuxtjs.org/guide/writing/mdc) powered by [`markdown-it-mdc`](https://github.com/antfu/markdown-it-mdc). You can enable it by adding `mdc: true` to the frontmatter of your markdown file. -```md +```mdc --- mdc: true --- @@ -664,4 +664,4 @@ The **default** slot :: ``` -Learn more about [the syntax](https://content.nuxtjs.org/guide/writing/mdc). +Learn more about [the syntax](https://content.nuxt.com/guide/writing/mdc). From 97da56b358bb9174ae380a59239ebe11fd5dda12 Mon Sep 17 00:00:00 2001 From: _Kerman <kermanx@qq.com> Date: Tue, 27 Feb 2024 21:20:56 +0800 Subject: [PATCH 77/89] docs: more detailed explain about code snippets (#178) --- guide/syntax.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/guide/syntax.md b/guide/syntax.md index fcd9fce..79ecff1 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -443,11 +443,28 @@ You can import code snippets from existing files via following syntax: <<< @/snippets/snippet.js ``` -::: tip -The value of `@` corresponds to the source root, the directory where the `slides.md` is located. +:::tip +The value of `@` corresponds to your package's root directory. It's recommended to put snippets in `@/snippets`, for compatibility with the Monaco editor. Alternatively, you can also import from relative paths. ::: -This feature is vendored from VitePress, learn more about it in [VitePress's documentation](https://vitepress.dev/guide/markdown#import-code-snippets). +You can also use a [VS Code region](https://code.visualstudio.com/docs/editor/codebasics#_folding) to only include the corresponding part of the code file: + +```md +<<< @/snippets/snippet.js#region-name +``` + +To explicitly specify the language of the imported code, you can add a language identifier after: + +```md +<<< @/snippets/snippet.js ts +``` + +Any code block features like [line highlighting](#line-highlighting) and [Monaco editor](#monaco-editor) are also supported: + +```md +<<< @/snippets/snippet.js {2,3|5}{lines:true} +<<< @/snippets/snippet.js ts {monaco}{height:200px} +``` ## Configurations From 55df176a16c5693491d5823c68f1af798e1f718f Mon Sep 17 00:00:00 2001 From: _Kerman <kermanx@qq.com> Date: Tue, 27 Feb 2024 21:21:24 +0800 Subject: [PATCH 78/89] docs: add docs about the Prettier plugin (#177) --- guide/editors.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/guide/editors.md b/guide/editors.md index c9700e4..6215472 100644 --- a/guide/editors.md +++ b/guide/editors.md @@ -41,3 +41,7 @@ The VS Code extension provides some features to help you better organize your sl ![](https://user-images.githubusercontent.com/11247099/116809994-cc2caa00-ab73-11eb-879f-60585747c3c9.png) <TheTweet id="1395333405345148930" /> + +## Prettier Plugin + +Slidev also provides a Prettier plugin to format your slides. You can use it with your favorite editor that supports Prettier. Docs for the plugin can be found [here](https://github.com/slidevjs/prettier-plugin). From 15820b064d1f419ed06cd798ae4b6dfe0c230e94 Mon Sep 17 00:00:00 2001 From: _Kerman <kermanx@qq.com> Date: Thu, 29 Feb 2024 12:42:23 +0800 Subject: [PATCH 79/89] docs: fix dead link in `animations.md` (#180) --- guide/animations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guide/animations.md b/guide/animations.md index 569ec5c..5375e31 100644 --- a/guide/animations.md +++ b/guide/animations.md @@ -342,7 +342,7 @@ Experimental: This is not supported by all browsers. Check the [Browser compatib You can use the `view-transition-name` CSS property to name view transitions, which creates connections between different page elements and smooth transitions when switching slides. -You can enable [MDC (Markdown Component) Syntax](/syntax#mdc-syntax) support to conveniently name view-transitions: +You can enable [MDC (Markdown Component) Syntax](/guide/syntax#mdc-syntax) support to conveniently name view-transitions: ```md --- From 3ecc509629ef65c79e45d4b34f31174ba34bde6a Mon Sep 17 00:00:00 2001 From: Anthony Fu <anthonyfu117@hotmail.com> Date: Sat, 2 Mar 2024 20:38:04 +0100 Subject: [PATCH 80/89] docs: mention about magic-shiki integration --- components.d.ts | 4 ++++ guide/syntax.md | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/components.d.ts b/components.d.ts index b34c1cc..d1d99c8 100644 --- a/components.d.ts +++ b/components.d.ts @@ -11,6 +11,10 @@ declare module 'vue' { AutoFitText: typeof import('./.vitepress/@slidev/client/builtin/AutoFitText.vue')['default'] 'Carbon:chevronLeft': typeof import('~icons/carbon/chevron-left')['default'] 'Carbon:chevronRight': typeof import('~icons/carbon/chevron-right')['default'] + 'Carbon:logoGithub': typeof import('~icons/carbon/logo-github')['default'] + 'Carbon:logoTwitter': typeof import('~icons/carbon/logo-twitter')['default'] + 'Carbon:presentationFile': typeof import('~icons/carbon/presentation-file')['default'] + 'Carbon:video': typeof import('~icons/carbon/video')['default'] CarbonApps: typeof import('~icons/carbon/apps')['default'] CarbonArrowLeft: typeof import('~icons/carbon/arrow-left')['default'] CarbonArrowRight: typeof import('~icons/carbon/arrow-right')['default'] diff --git a/guide/syntax.md b/guide/syntax.md index 79ecff1..56a6f2b 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -182,6 +182,8 @@ const c = add(1, 2) ### TwoSlash Integration +> Available since v0.46 + This feature is only available when you [set `highlighter` to `shiki`](/custom/highlighters) [TwoSlash](https://twoslash.netlify.app/) is a powerful tool for rendering TypeScript code blocks with type information on hover or inlined. It's quite useful for preparing slides for JavaScript/TypeScript-related topics. @@ -206,6 +208,30 @@ const count = ref(0) // ^? ``` +### Magic Shiki Integration + +> Available since v0.48 + +Magic Shiki enables you to have granular transition between code changes. You can check [this demo](https://shiki-magic-move.netlify.app/) to see how Magic Shiki works. + +In Slidev, we bind it to the [clicks system](guide/animations#click-animations). The syntax is wrap multiple code blocks representing each steps with <code>````md magic-move</code> (mind it's **4** backticks), this will be transformed into one code block, that morphing to each steps as you click. + +~~~~md +````md magic-move +```ts +console.log(`Step ${1}`) +``` +```ts +console.log(`Step ${1 + 1}`) +``` +```ts +console.log(`Step ${3}`) +``` +```` +~~~~ + +<!-- TODO: add an inline demo --> + ### Monaco Editor Whenever you want to do some modification in the presentation, simply add `{monaco}` after the language id — it turns the block into a fully-featured Monaco editor! From 7ce53a8019f375752d94f11701a87b2972a90f38 Mon Sep 17 00:00:00 2001 From: Anthony Fu <anthonyfu117@hotmail.com> Date: Sat, 2 Mar 2024 20:51:59 +0100 Subject: [PATCH 81/89] docs: mention about click markers --- guide/syntax.md | 92 +++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 48 deletions(-) diff --git a/guide/syntax.md b/guide/syntax.md index 56a6f2b..56fd8c2 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -66,32 +66,35 @@ This is a default page without any additional metadata. Refer to [customization](/custom/) for more details. -> The custom syntax might not be compactible with some formatters like Prettier. To improve that, we also support using a direct `yaml` code block to define the frontmatter: -> -> ~~~markdown -> --- -> layout: cover -> --- -> -> # Slidev -> -> This is the cover page. -> -> --- -> -> ```yaml -> # The first yaml block will be treated as the frontmatter of that slide -> layout: center -> background: './images/background-1.png' -> class: 'text-white' -> ``` -> -> # Page 2 -> -> This is a page with the layout `center` and a background image. -> ~~~ -> -> (Available since v0.44.0) +### Prettier Support + +> Available since v0.44 + +The custom syntax might not be compactible with some formatters like Prettier. +You can either install the [Prettier Plugin](/guide/editors#prettier-plugin) or use a direct `yaml` code block to define the frontmatter instead: + +~~~markdown +--- +layout: cover +--- + +# Slidev + +This is the cover page. + +--- + +```yaml +# The first yaml block will be treated as the frontmatter of that slide +layout: center +background: './images/background-1.png' +class: 'text-white' +``` + +# Page 2 + +This is a page with the layout `center` and a background image. +~~~ ## Code Blocks @@ -208,11 +211,11 @@ const count = ref(0) // ^? ``` -### Magic Shiki Integration +### Shiki Magic Move > Available since v0.48 -Magic Shiki enables you to have granular transition between code changes. You can check [this demo](https://shiki-magic-move.netlify.app/) to see how Magic Shiki works. +Shiki Magic Move enables you to have granular transition between code changes like Keynote's Magic Move. You can check [this demo](https://shiki-magic-move.netlify.app/) to see how it works. In Slidev, we bind it to the [clicks system](guide/animations#click-animations). The syntax is wrap multiple code blocks representing each steps with <code>````md magic-move</code> (mind it's **4** backticks), this will be transformed into one code block, that morphing to each steps as you click. @@ -352,6 +355,16 @@ This is another note --> ~~~ +Basic Markdown and HTML are also supported in notes on Presenter renderering. + +### Click Markers + +> Available since v0.48 + +For some slides you might have longer notes that might be hard to find where you are looking at, we introduced the click markers that allows highlighting and auto-scrolling to the section of notes of your corresponding content. Put `[click]` markers in your notes for the timming you need to go to another [click](/guide/animations#click-animations), Slidev divide the content between the click markers and highlight them in presenter notes, synchronized with your slide progress. + +<!-- TODO: add a video --> + ## Icons Slidev allows you to have the accessing to almost all the popular open-source iconsets **directly** in your markdown after installing the corresponding package. Powered by [`unplugin-icons`](https://github.com/antfu/unplugin-icons) and [Iconify](https://iconify.design/). @@ -469,28 +482,11 @@ You can import code snippets from existing files via following syntax: <<< @/snippets/snippet.js ``` -:::tip -The value of `@` corresponds to your package's root directory. It's recommended to put snippets in `@/snippets`, for compatibility with the Monaco editor. Alternatively, you can also import from relative paths. +::: tip +The value of `@` corresponds to the source root, the directory where the `slides.md` is located. ::: -You can also use a [VS Code region](https://code.visualstudio.com/docs/editor/codebasics#_folding) to only include the corresponding part of the code file: - -```md -<<< @/snippets/snippet.js#region-name -``` - -To explicitly specify the language of the imported code, you can add a language identifier after: - -```md -<<< @/snippets/snippet.js ts -``` - -Any code block features like [line highlighting](#line-highlighting) and [Monaco editor](#monaco-editor) are also supported: - -```md -<<< @/snippets/snippet.js {2,3|5}{lines:true} -<<< @/snippets/snippet.js ts {monaco}{height:200px} -``` +This feature is vendored from VitePress, learn more about it in [VitePress's documentation](https://vitepress.dev/guide/markdown#import-code-snippets). ## Configurations From 5a1464eb1ca581bc8167f4ea5f450a0b3bedcbae Mon Sep 17 00:00:00 2001 From: Anthony Fu <anthonyfu117@hotmail.com> Date: Sat, 2 Mar 2024 20:55:38 +0100 Subject: [PATCH 82/89] chore: update deps --- package.json | 24 +- pnpm-lock.yaml | 857 +++++++++++++++++++++++++++++-------------------- 2 files changed, 527 insertions(+), 354 deletions(-) diff --git a/package.json b/package.json index 457b3b1..251bdf4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "type": "module", "private": true, - "packageManager": "pnpm@8.15.1", + "packageManager": "pnpm@8.15.4", "scripts": { "dev": "vitepress", "build": "vitepress build", @@ -10,29 +10,29 @@ }, "dependencies": { "@antfu/utils": "^0.7.7", - "@vueuse/core": "^10.7.2", + "@vueuse/core": "^10.9.0", "typeit": "^7.0.4" }, "devDependencies": { - "@antfu/eslint-config": "^2.6.3", - "@iconify/json": "^2.2.178", - "@shikijs/vitepress-twoslash": "1.0.0-beta.5", + "@antfu/eslint-config": "^2.6.4", + "@iconify/json": "^2.2.188", + "@shikijs/vitepress-twoslash": "^1.1.7", "@slidev/client": "0.34.3", "@slidev/parser": "0.34.3", "@slidev/theme-default": "0.21.2", "@slidev/types": "0.34.3", "@types/fs-extra": "^11.0.4", - "@types/node": "^18.19.14", - "@unocss/reset": "^0.58.4", - "eslint": "^8.56.0", + "@types/node": "^20.11.24", + "@unocss/reset": "^0.58.5", + "eslint": "^8.57.0", "fs-extra": "^11.2.0", "markdown-it": "^14.0.0", - "shiki": "^1.0.0-beta.5", + "shiki": "^1.1.7", "typescript": "^5.3.3", - "unocss": "^0.58.4", - "unplugin-icons": "^0.18.3", + "unocss": "^0.58.5", + "unplugin-icons": "^0.18.5", "unplugin-vue-components": "^0.26.0", "vite-plugin-inspect": "^0.8.3", - "vitepress": "^1.0.0-rc.41" + "vitepress": "^1.0.0-rc.44" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5e5f60b..ea745a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,22 +9,22 @@ dependencies: specifier: ^0.7.7 version: 0.7.7 '@vueuse/core': - specifier: ^10.7.2 - version: 10.7.2(vue@3.4.15) + specifier: ^10.9.0 + version: 10.9.0(vue@3.4.15) typeit: specifier: ^7.0.4 version: 7.0.4 devDependencies: '@antfu/eslint-config': - specifier: ^2.6.3 - version: 2.6.3(@vue/compiler-sfc@3.4.15)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^2.6.4 + version: 2.6.4(@vue/compiler-sfc@3.4.15)(eslint@8.57.0)(typescript@5.3.3) '@iconify/json': - specifier: ^2.2.178 - version: 2.2.178 + specifier: ^2.2.188 + version: 2.2.188 '@shikijs/vitepress-twoslash': - specifier: 1.0.0-beta.5 - version: 1.0.0-beta.5(typescript@5.3.3) + specifier: ^1.1.7 + version: 1.1.7(typescript@5.3.3) '@slidev/client': specifier: 0.34.3 version: 0.34.3(typescript@5.3.3)(vite@3.2.8) @@ -41,14 +41,14 @@ devDependencies: specifier: ^11.0.4 version: 11.0.4 '@types/node': - specifier: ^18.19.14 - version: 18.19.14 + specifier: ^20.11.24 + version: 20.11.24 '@unocss/reset': - specifier: ^0.58.4 - version: 0.58.4 + specifier: ^0.58.5 + version: 0.58.5 eslint: - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^8.57.0 + version: 8.57.0 fs-extra: specifier: ^11.2.0 version: 11.2.0 @@ -56,17 +56,17 @@ devDependencies: specifier: ^14.0.0 version: 14.0.0 shiki: - specifier: ^1.0.0-beta.5 - version: 1.0.0-beta.5 + specifier: ^1.1.7 + version: 1.1.7 typescript: specifier: ^5.3.3 version: 5.3.3 unocss: - specifier: ^0.58.4 - version: 0.58.4(postcss@8.4.33)(vite@3.2.8) + specifier: ^0.58.5 + version: 0.58.5(postcss@8.4.33)(vite@3.2.8) unplugin-icons: - specifier: ^0.18.3 - version: 0.18.3(@vue/compiler-sfc@3.4.15) + specifier: ^0.18.5 + version: 0.18.5(@vue/compiler-sfc@3.4.15) unplugin-vue-components: specifier: ^0.26.0 version: 0.26.0(vue@3.4.15) @@ -74,8 +74,8 @@ devDependencies: specifier: ^0.8.3 version: 0.8.3(vite@3.2.8) vitepress: - specifier: ^1.0.0-rc.41 - version: 1.0.0-rc.41(@algolia/client-search@4.22.1)(@types/node@18.19.14)(postcss@8.4.33)(search-insights@2.13.0)(typescript@5.3.3) + specifier: ^1.0.0-rc.44 + version: 1.0.0-rc.44(@algolia/client-search@4.22.1)(@types/node@20.11.24)(postcss@8.4.33)(search-insights@2.13.0)(typescript@5.3.3) packages: @@ -226,8 +226,8 @@ packages: '@jridgewell/trace-mapping': 0.3.22 dev: true - /@antfu/eslint-config@2.6.3(@vue/compiler-sfc@3.4.15)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-sfkamrOatMwMZkp14mBerHKIw8FY0SD1iCb5UZ6Y5hgb+FeDpNQPlVA0i2PN95TQ8NSYyPC1QnoM+UA5NSl0Kg==} + /@antfu/eslint-config@2.6.4(@vue/compiler-sfc@3.4.15)(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-dMD/QC5KWS1OltdpKLhfZM7W7y7zils85opk8d4lyNr7yn0OFjZs7eMYtcC6DrrN2kQ1JrFvBM7uB0QdWn5PUQ==} hasBin: true peerDependencies: '@unocss/eslint-plugin': '>=0.50.0' @@ -259,28 +259,28 @@ packages: '@eslint-types/jsdoc': 46.8.2-1 '@eslint-types/typescript-eslint': 6.19.1 '@eslint-types/unicorn': 50.0.1 - '@stylistic/eslint-plugin': 1.5.4(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@stylistic/eslint-plugin': 1.5.4(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@8.57.0)(typescript@5.3.3) + eslint: 8.57.0 eslint-config-flat-gitignore: 0.1.2 - eslint-merge-processors: 0.1.0(eslint@8.56.0) - eslint-plugin-antfu: 2.1.2(eslint@8.56.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0) - eslint-plugin-i: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) - eslint-plugin-jsdoc: 48.0.4(eslint@8.56.0) - eslint-plugin-jsonc: 2.13.0(eslint@8.56.0) - eslint-plugin-markdown: 3.0.1(eslint@8.56.0) - eslint-plugin-n: 16.6.2(eslint@8.56.0) + eslint-merge-processors: 0.1.0(eslint@8.57.0) + eslint-plugin-antfu: 2.1.2(eslint@8.57.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) + eslint-plugin-i: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.57.0) + eslint-plugin-jsdoc: 48.0.4(eslint@8.57.0) + eslint-plugin-jsonc: 2.13.0(eslint@8.57.0) + eslint-plugin-markdown: 3.0.1(eslint@8.57.0) + eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-perfectionist: 2.5.0(eslint@8.56.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2) - eslint-plugin-toml: 0.9.2(eslint@8.56.0) - eslint-plugin-unicorn: 50.0.1(eslint@8.56.0) - eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0) - eslint-plugin-vitest: 0.3.21(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0)(typescript@5.3.3) - eslint-plugin-vue: 9.21.1(eslint@8.56.0) - eslint-plugin-yml: 1.12.2(eslint@8.56.0) - eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.4.15)(eslint@8.56.0) + eslint-plugin-perfectionist: 2.5.0(eslint@8.57.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2) + eslint-plugin-toml: 0.9.2(eslint@8.57.0) + eslint-plugin-unicorn: 50.0.1(eslint@8.57.0) + eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.57.0) + eslint-plugin-vitest: 0.3.21(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.57.0)(typescript@5.3.3) + eslint-plugin-vue: 9.21.1(eslint@8.57.0) + eslint-plugin-yml: 1.12.2(eslint@8.57.0) + eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.4.15)(eslint@8.57.0) globals: 13.24.0 jsonc-eslint-parser: 2.4.0 local-pkg: 0.5.0 @@ -288,7 +288,7 @@ packages: picocolors: 1.0.0 prompts: 2.4.2 toml-eslint-parser: 0.9.3 - vue-eslint-parser: 9.4.2(eslint@8.56.0) + vue-eslint-parser: 9.4.2(eslint@8.57.0) yaml-eslint-parser: 1.2.2 yargs: 17.7.2 transitivePeerDependencies: @@ -929,13 +929,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 dev: true @@ -973,8 +973,8 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1019,8 +1019,8 @@ packages: resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true - /@iconify/json@2.2.178: - resolution: {integrity: sha512-AYw9z/Lu9Y0Q5V0DvyhysJA3ohwKMOgXxCJ1AzTnsZizbUqZ7zh5/wnBegv1ikBEISAY0tC/R46j0tJBjliHkw==} + /@iconify/json@2.2.188: + resolution: {integrity: sha512-gsJwZ60Vb5IrtjYu+Al4qMaML9ZKUnop6Gi0537ZcA6nEhe3Nb58WH4c6b1+mXOHwOkFlLA8AFBXJUHY5nKMdA==} dependencies: '@iconify/types': 2.0.0 pathe: 1.1.2 @@ -1047,8 +1047,8 @@ packages: - supports-color dev: true - /@iconify/utils@2.1.20: - resolution: {integrity: sha512-t8TeKlYK/5i9yTY9VAGAE4P0qQHd/0vH+VSRO+bdpxlt8wqB6f2I0/IrciRsdeFZPMoL8IICgP7lgl2ZtbG8Tw==} + /@iconify/utils@2.1.22: + resolution: {integrity: sha512-6UHVzTVXmvO8uS6xFF+L/QTSpTzA/JZxtgU+KYGFyDYMEObZ1bu/b5l+zNJjHy+0leWjHI+C0pXlzGvv3oXZMA==} dependencies: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.7.7 @@ -1056,6 +1056,7 @@ packages: debug: 4.3.4 kolorist: 1.8.0 local-pkg: 0.5.0 + mlly: 1.5.0 transitivePeerDependencies: - supports-color dev: true @@ -1297,41 +1298,38 @@ packages: dev: true optional: true - /@shikijs/core@1.0.0-beta.4: - resolution: {integrity: sha512-iOGXTiBjezVbjAQIhV99M9Tfn4JzTvq04axoCV1wD6YWp6PDU2zbqnVG5BITWjlhIllKnfeaWobYGxLN+nePpQ==} - dev: true - - /@shikijs/core@1.0.0-beta.5: - resolution: {integrity: sha512-C/MxtvK3FFCQZSsDq6OfjDHHOmyP1Jc9wO66cnE8VLEyWXzWch7Zpoc2MWuVJTSC0Pz9QxyUlsBCnroplFqoSg==} + /@shikijs/core@1.1.7: + resolution: {integrity: sha512-gTYLUIuD1UbZp/11qozD3fWpUTuMqPSf3svDMMrL0UmlGU7D9dPw/V1FonwAorCUJBltaaESxq90jrSjQyGixg==} dev: true - /@shikijs/transformers@1.0.0-beta.4: - resolution: {integrity: sha512-C02t81fzpawddxq1Xs2yhNpehymqK/qw0RtlCeBwYrmvMz87rvBpVYmaYv8AkCaNeT8EFH5noTZL8U6ABu5Ciw==} + /@shikijs/transformers@1.1.7: + resolution: {integrity: sha512-lXz011ao4+rvweps/9h3CchBfzb1U5OtP5D51Tqc9lQYdLblWMIxQxH6Ybe1GeGINcEVM4goMyPrI0JvlIp4UQ==} dependencies: - shiki: 1.0.0-beta.4 + shiki: 1.1.7 dev: true - /@shikijs/twoslash@1.0.0-beta.5(typescript@5.3.3): - resolution: {integrity: sha512-BPn2PFgy6Bon/hWU52ELWeGrdO1lsuR6ZIhTTDw4q+GrOZQsVDkdNlhIjoanGv1UY95dlbTEuPqXtzmk+4O73Q==} + /@shikijs/twoslash@1.1.7(typescript@5.3.3): + resolution: {integrity: sha512-WH/Ee67eixqDWjsAUXIJQUgRzPDApsz7Bci65Yobc7SWHNc8T2sY1UBa+MCV2mAj0D6VCYBwWlNxMDTfhN7K0Q==} dependencies: - '@shikijs/core': 1.0.0-beta.5 - twoslash: 0.1.0(typescript@5.3.3) + '@shikijs/core': 1.1.7 + twoslash: 0.2.4(typescript@5.3.3) transitivePeerDependencies: - supports-color - typescript dev: true - /@shikijs/vitepress-twoslash@1.0.0-beta.5(typescript@5.3.3): - resolution: {integrity: sha512-FBjhz1sgSVNepZgPIk3jxPfI4tTVr+hCbR3niVQHrm9hgdqBBoU3cU3TUS3yB+7GJArGJAFrCtYUxsU9g/mUaQ==} + /@shikijs/vitepress-twoslash@1.1.7(typescript@5.3.3): + resolution: {integrity: sha512-rjPJlG1QvNDib5tQlQJKCZSN34lpqNwFRGO6hR50MkULmZRCMENRx22q1TZGJ4WJUeZYORIW7sxv5Y2s+TvLOQ==} dependencies: - '@shikijs/twoslash': 1.0.0-beta.5(typescript@5.3.3) - floating-vue: 5.2.2(vue@3.4.15) + '@shikijs/twoslash': 1.1.7(typescript@5.3.3) + floating-vue: 5.2.2(vue@3.4.21) mdast-util-from-markdown: 2.0.0 mdast-util-gfm: 3.0.0 mdast-util-to-hast: 13.1.0 - shiki: 1.0.0-beta.5 - twoslash-vue: 0.1.0(typescript@5.3.3) - vue: 3.4.15(typescript@5.3.3) + shiki: 1.1.7 + twoslash: 0.2.4(typescript@5.3.3) + twoslash-vue: 0.2.4(typescript@5.3.3) + vue: 3.4.21(typescript@5.3.3) transitivePeerDependencies: - '@nuxt/kit' - supports-color @@ -1412,7 +1410,7 @@ packages: engines: {node: '>=14.0.0'} dev: true - /@stylistic/eslint-plugin-js@1.5.4(eslint@8.56.0): + /@stylistic/eslint-plugin-js@1.5.4(eslint@8.57.0): resolution: {integrity: sha512-3ctWb3NvJNV1MsrZN91cYp2EGInLPSoZKphXIbIRx/zjZxKwLDr9z4LMOWtqjq14li/OgqUUcMq5pj8fgbLoTw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1420,59 +1418,59 @@ packages: dependencies: acorn: 8.11.3 escape-string-regexp: 4.0.0 - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 espree: 9.6.1 dev: true - /@stylistic/eslint-plugin-jsx@1.5.4(eslint@8.56.0): + /@stylistic/eslint-plugin-jsx@1.5.4(eslint@8.57.0): resolution: {integrity: sha512-JUfrpCkeBCqt1IZ4QsP4WgxGza4PhK4LPbc0VnCjHKygl+rgqoDAovqOuzFJ49wJ4Ix3r6OIHFuwiBGswZEVvg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: '>=8.40.0' dependencies: - '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0) - eslint: 8.56.0 + '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.57.0) + eslint: 8.57.0 estraverse: 5.3.0 dev: true - /@stylistic/eslint-plugin-plus@1.5.4(eslint@8.56.0)(typescript@5.3.3): + /@stylistic/eslint-plugin-plus@1.5.4(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-dI0Cs5vYX/0uMhQDY+NK0cKQ0Pe9B6jWYxd0Ndud+mNloDaVLrsmJocK4zn+YfhGEDs1E4Nk5uAPZEumIpDuSg==} peerDependencies: eslint: '*' dependencies: - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/utils': 6.20.0(eslint@8.57.0)(typescript@5.3.3) + eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@stylistic/eslint-plugin-ts@1.5.4(eslint@8.56.0)(typescript@5.3.3): + /@stylistic/eslint-plugin-ts@1.5.4(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-NZDFVIlVNjuPvhT+0Cidm5IS3emtx338xbJTqs2xfOVRDGTpYwRHhNVEGa1rFOpYHmv0sAj6+OXbMDn7ul0K/g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: '>=8.40.0' dependencies: - '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.57.0) + '@typescript-eslint/utils': 6.20.0(eslint@8.57.0)(typescript@5.3.3) + eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@stylistic/eslint-plugin@1.5.4(eslint@8.56.0)(typescript@5.3.3): + /@stylistic/eslint-plugin@1.5.4(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-zWPXr+O67GC9KDAFkbL1U9UVqE6Iv69YMKhkIECCmE0GvClUJwdfsimm4XebEDondV7kfjMrTDZaYfrI5aS0Jg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: '>=8.40.0' dependencies: - '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0) - '@stylistic/eslint-plugin-jsx': 1.5.4(eslint@8.56.0) - '@stylistic/eslint-plugin-plus': 1.5.4(eslint@8.56.0)(typescript@5.3.3) - '@stylistic/eslint-plugin-ts': 1.5.4(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.57.0) + '@stylistic/eslint-plugin-jsx': 1.5.4(eslint@8.57.0) + '@stylistic/eslint-plugin-plus': 1.5.4(eslint@8.57.0)(typescript@5.3.3) + '@stylistic/eslint-plugin-ts': 1.5.4(eslint@8.57.0)(typescript@5.3.3) + eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript @@ -1492,13 +1490,13 @@ packages: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 18.19.14 + '@types/node': 20.11.24 dev: true /@types/hast@3.0.4: resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 3.0.2 dev: true /@types/json-schema@7.0.15: @@ -1508,7 +1506,7 @@ packages: /@types/jsonfile@6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 18.19.14 + '@types/node': 20.11.24 dev: true /@types/linkify-it@3.0.5: @@ -1542,8 +1540,8 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true - /@types/node@18.19.14: - resolution: {integrity: sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==} + /@types/node@20.11.24: + resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} dependencies: undici-types: 5.26.5 dev: true @@ -1571,7 +1569,7 @@ packages: /@types/web-bluetooth@0.0.20: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1583,13 +1581,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.20.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.20.0(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -1600,7 +1598,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/parser@6.20.0(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1615,7 +1613,7 @@ packages: '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -1629,7 +1627,7 @@ packages: '@typescript-eslint/visitor-keys': 6.20.0 dev: true - /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@6.20.0(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1640,9 +1638,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.20.0(eslint@8.57.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -1676,19 +1674,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.20.0(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.20.0 '@typescript-eslint/types': 6.20.0 '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - eslint: 8.56.0 + eslint: 8.57.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -1715,18 +1713,18 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@unocss/astro@0.58.4(vite@3.2.8): - resolution: {integrity: sha512-feS8+f3oPmCeR1XF7isQjs3Z9ojM5Ssv0vCNR/dexPFdROfccK/7sIu1YnHWtVg1trPc1kMfI8XJRqfrHMdd5w==} + /@unocss/astro@0.58.5(vite@3.2.8): + resolution: {integrity: sha512-LtuVnj8oFAK9663OVhQO8KpdJFiOyyPsYfnOZlDCOFK3gHb/2WMrzdBwr1w8LoQF3bDedkFMKirVF7gWjyZiaw==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: vite: optional: true dependencies: - '@unocss/core': 0.58.4 - '@unocss/reset': 0.58.4 - '@unocss/vite': 0.58.4(vite@3.2.8) - vite: 3.2.8(@types/node@18.19.14) + '@unocss/core': 0.58.5 + '@unocss/reset': 0.58.5 + '@unocss/vite': 0.58.5(vite@3.2.8) + vite: 3.2.8(@types/node@20.11.24) transitivePeerDependencies: - rollup dev: true @@ -1748,16 +1746,16 @@ packages: perfect-debounce: 0.1.3 dev: true - /@unocss/cli@0.58.4: - resolution: {integrity: sha512-8dAs1TzzWCtb3FxoTsVtR2+JGkdmchuP0RvGlSywADf5FqYn9nbP0m3z4STtpPavHO9JaGbabStyjS0nA8Ck6w==} + /@unocss/cli@0.58.5: + resolution: {integrity: sha512-FzVVXO9ghsGtJpu9uR4o7JeM9gUfWNbVZZ/IfH+0WbDJuyx4rO/jwN55z0yA5QDkhvOz9DvzwPCBzLpTJ5q+Lw==} engines: {node: '>=14'} hasBin: true dependencies: '@ampproject/remapping': 2.2.1 '@rollup/pluginutils': 5.1.0 - '@unocss/config': 0.58.4 - '@unocss/core': 0.58.4 - '@unocss/preset-uno': 0.58.4 + '@unocss/config': 0.58.5 + '@unocss/core': 0.58.5 + '@unocss/preset-uno': 0.58.5 cac: 6.7.14 chokidar: 3.5.3 colorette: 2.0.20 @@ -1778,11 +1776,11 @@ packages: unconfig: 0.3.11 dev: true - /@unocss/config@0.58.4: - resolution: {integrity: sha512-b/inDCOnhUPzobhj+SxRI7xeSwoAQU+3D3J5JoWZNPBI4OaJdwpuz40uLXl9VsPz5N6dc8/qa+FrSsgCjUcLTg==} + /@unocss/config@0.58.5: + resolution: {integrity: sha512-O1pLSeNXfG11QHaLSVwS9rJKvE4b9304IQ3UvOdbYN+7SAT4YTZ7JDU4ngO1KWyOFBO6RD0WspCR95pgqOqJiQ==} engines: {node: '>=14'} dependencies: - '@unocss/core': 0.58.4 + '@unocss/core': 0.58.5 unconfig: 0.3.11 dev: true @@ -1790,14 +1788,14 @@ packages: resolution: {integrity: sha512-fExFmLDkquL+AevDCperw0ry1vcyD8RCZwrnLOmkBIZdUcXhy7OKOkzinj/5dEVm11mmPJC8A0wiw4VXbQRGuQ==} dev: true - /@unocss/core@0.58.4: - resolution: {integrity: sha512-wh4pxXUCkhC+C/0ct74PMYeZgX+oWuHj2mnvr09nM0WmvOm1HeeISrDCCBGcxmKbErUk+D1v3JgzXF7b6j2l4g==} + /@unocss/core@0.58.5: + resolution: {integrity: sha512-qbPqL+46hf1/UelQOwUwpAuvm6buoss43DPYHOPdfNJ+NTWkSpATQMF0JKT04QE0QRQbHNSHdMe9ariG+IIlCw==} dev: true - /@unocss/extractor-arbitrary-variants@0.58.4: - resolution: {integrity: sha512-TQlVtSQk8YdBU9KuTA5k6JBJ8d/aPrIsCWjDPfBvAqDvrll/dzwBCLoLTQMdCHFjCXCOYWKPum1ET+Wn9R+XbA==} + /@unocss/extractor-arbitrary-variants@0.58.5: + resolution: {integrity: sha512-KJQX0OJKzy4YjJo09h2la2Q+cn5IJ1JdyPVJJkzovHnv7jSBWzsfct+bj/6a+SJ4p4JBIqEJz3M/qxHv4EPJyA==} dependencies: - '@unocss/core': 0.58.4 + '@unocss/core': 0.58.5 dev: true /@unocss/inspector@0.42.1: @@ -1807,24 +1805,24 @@ packages: sirv: 2.0.4 dev: true - /@unocss/inspector@0.58.4: - resolution: {integrity: sha512-BbsaIMqP6dqa3qCfkC0nkvjCg11JRigvFPU4319imTPcTHQNQSg35t2mVFPGZ+QYHlU/3ouBeogUQfJDHBmtVQ==} + /@unocss/inspector@0.58.5: + resolution: {integrity: sha512-cbJlIHEZ14puTtttf7sl+VZFDscV1DJiSseh9sSe0xJ/1NVBT9Bvkm09/1tnpLYAgF5gfa1CaCcjKmURgYzKrA==} dependencies: - '@unocss/core': 0.58.4 - '@unocss/rule-utils': 0.58.4 + '@unocss/core': 0.58.5 + '@unocss/rule-utils': 0.58.5 gzip-size: 6.0.0 sirv: 2.0.4 dev: true - /@unocss/postcss@0.58.4(postcss@8.4.33): - resolution: {integrity: sha512-pg2qCGakV1TyMApPdvuvqqmPDhgogPWF14J97BT5zIfGYITAJSmBsm7d3+06w6EuqIS+vcYRw+qCV3oX6qTeiA==} + /@unocss/postcss@0.58.5(postcss@8.4.33): + resolution: {integrity: sha512-m4L2YRdYfT6CV306Kl2VwEwbqa/92EpW4GE2Kqak1RuJyFJXBnWEEMJV4Uy6B1jWKLlCEWkuVUW33JUg7X6BxQ==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 dependencies: - '@unocss/config': 0.58.4 - '@unocss/core': 0.58.4 - '@unocss/rule-utils': 0.58.4 + '@unocss/config': 0.58.5 + '@unocss/core': 0.58.5 + '@unocss/rule-utils': 0.58.5 css-tree: 2.3.1 fast-glob: 3.3.2 magic-string: 0.30.6 @@ -1837,10 +1835,10 @@ packages: '@unocss/core': 0.42.1 dev: true - /@unocss/preset-attributify@0.58.4: - resolution: {integrity: sha512-r7pDXgcOgGMmrMoqM4/w20KKn4PxF+/vpElatAGXW3V/tHJWFOLGzk+wYeCMgMxeC+vPzqyJkjTfoqYlZrlokQ==} + /@unocss/preset-attributify@0.58.5: + resolution: {integrity: sha512-OR4gUHamHCb4/LB/zZHlibaraTyILfFvRIzgmJnEb6lITGApQUl86qaJcTbTyfTfLVRufLG/JVeuz2HLUBPRXw==} dependencies: - '@unocss/core': 0.58.4 + '@unocss/core': 0.58.5 dev: true /@unocss/preset-icons@0.42.1: @@ -1853,11 +1851,11 @@ packages: - supports-color dev: true - /@unocss/preset-icons@0.58.4: - resolution: {integrity: sha512-xdOe3PLfEWS4y+rA7Gxh/kDI82VkW0PbdoYO2FBwXH7a0JegdUDD5zuOTsTKAIymvQ7eVH53WXN9mcuhfNmdvQ==} + /@unocss/preset-icons@0.58.5: + resolution: {integrity: sha512-LDNXavHtWaIvMvBezT9O8yiqHJChVCEfTRO6YFVY0yy+wo5jHiuMh6iKeHVcwbYdn3NqHYmpi7b/hrXPMtODzA==} dependencies: - '@iconify/utils': 2.1.20 - '@unocss/core': 0.58.4 + '@iconify/utils': 2.1.22 + '@unocss/core': 0.58.5 ofetch: 1.3.3 transitivePeerDependencies: - supports-color @@ -1869,12 +1867,12 @@ packages: '@unocss/core': 0.42.1 dev: true - /@unocss/preset-mini@0.58.4: - resolution: {integrity: sha512-cpIWUYxLi4VCkkjxpNJOVqH9D32NX1ebRFaoAVnvCRsoj5TRsZJSdxs0WMN7reHT/CUHh0Wh6d3TfMCFxzbZ4g==} + /@unocss/preset-mini@0.58.5: + resolution: {integrity: sha512-WqD31fKUAN28OCUOyi1uremmLk0eTMqtCizjbbXsY/DP6RKYUT7trFAtppTcHWFhSQcknb4FURfAZppACsTVQQ==} dependencies: - '@unocss/core': 0.58.4 - '@unocss/extractor-arbitrary-variants': 0.58.4 - '@unocss/rule-utils': 0.58.4 + '@unocss/core': 0.58.5 + '@unocss/extractor-arbitrary-variants': 0.58.5 + '@unocss/rule-utils': 0.58.5 dev: true /@unocss/preset-tagify@0.42.1: @@ -1883,10 +1881,10 @@ packages: '@unocss/core': 0.42.1 dev: true - /@unocss/preset-tagify@0.58.4: - resolution: {integrity: sha512-1E3vQvg5Qy4tbgovvrV0JaIXFfcdhK4NCSz+MuUk5ZYgKGVDh4IEw0WPuic534nlLm9+YFqyCSLLyIs3bT/GYQ==} + /@unocss/preset-tagify@0.58.5: + resolution: {integrity: sha512-UB9IXi8vA/SzmmRLMWR7bzeBpxpiRo7y9xk3ruvDddYlsyiwIeDIMwG23YtcA6q41FDQvkrmvTxUEH9LFlv6aA==} dependencies: - '@unocss/core': 0.58.4 + '@unocss/core': 0.58.5 dev: true /@unocss/preset-typography@0.42.1: @@ -1895,11 +1893,11 @@ packages: '@unocss/core': 0.42.1 dev: true - /@unocss/preset-typography@0.58.4: - resolution: {integrity: sha512-0Opt3Y0At4F03092iwGgz7HswRC2ElBXHR+IO9wWxSbldtpdmKzFJ/GBHEalzQjacWnyyzmRjabjA2quoQ8FQA==} + /@unocss/preset-typography@0.58.5: + resolution: {integrity: sha512-rFny4a9yxgY34XOom5euCqQaOLV8PpbTg0Pn+5FelUMG4OfMevTwBCe9JttFJcUc3cNTL2enkzIdMa3l66114g==} dependencies: - '@unocss/core': 0.58.4 - '@unocss/preset-mini': 0.58.4 + '@unocss/core': 0.58.5 + '@unocss/preset-mini': 0.58.5 dev: true /@unocss/preset-uno@0.42.1: @@ -1910,13 +1908,13 @@ packages: '@unocss/preset-wind': 0.42.1 dev: true - /@unocss/preset-uno@0.58.4: - resolution: {integrity: sha512-FWBPGIt0UcQHu58l75kvhB4vF2v+s2m0OW9DnIrPm3aY7Qj3q4yA2wdahR37qSsH+6vR3JP4+mV9WBrGjIsjrQ==} + /@unocss/preset-uno@0.58.5: + resolution: {integrity: sha512-vgq/R4f7RDmdROy+pX+PeE38I3SgYKd4LL7Wb1HJUaVwz7PkF0XHCynOTbwrPXnK1kp1cnZYYEww7/RiYp+IQQ==} dependencies: - '@unocss/core': 0.58.4 - '@unocss/preset-mini': 0.58.4 - '@unocss/preset-wind': 0.58.4 - '@unocss/rule-utils': 0.58.4 + '@unocss/core': 0.58.5 + '@unocss/preset-mini': 0.58.5 + '@unocss/preset-wind': 0.58.5 + '@unocss/rule-utils': 0.58.5 dev: true /@unocss/preset-web-fonts@0.42.1: @@ -1926,10 +1924,10 @@ packages: ohmyfetch: 0.4.21 dev: true - /@unocss/preset-web-fonts@0.58.4: - resolution: {integrity: sha512-vcy20fIK37GdhesRpiWGvCvkJDQsSiRF1jxw3dy8J5n9kFpIV8DQoPWUIE0ePF4i5ky2dHSDxKaNOP1bxHdKGA==} + /@unocss/preset-web-fonts@0.58.5: + resolution: {integrity: sha512-WKZ5raSClFXhqzfAhApef3+fuMq6cjKBxvhJ1FBIxFKcSOvN8e2czty2iGQVl02yMsxBWMv0Bpfm7np+cCoI1w==} dependencies: - '@unocss/core': 0.58.4 + '@unocss/core': 0.58.5 ofetch: 1.3.3 dev: true @@ -1940,27 +1938,27 @@ packages: '@unocss/preset-mini': 0.42.1 dev: true - /@unocss/preset-wind@0.58.4: - resolution: {integrity: sha512-e2F0HsqPXw+nD85MKIZ63mx5yUx5g8iPOtMw9/eEUeK67HrD+jFxeLq0hAM3ou3a4589QIzeg23LXAkM7gCzvg==} + /@unocss/preset-wind@0.58.5: + resolution: {integrity: sha512-54RkjLmlqMUlC8o8nDCVzB25D1zzK4eth+/3uQzt739qU0U92NxuZKY21ADj9Rp/mVhKBV5FKuXPjmYc6yTQRQ==} dependencies: - '@unocss/core': 0.58.4 - '@unocss/preset-mini': 0.58.4 - '@unocss/rule-utils': 0.58.4 + '@unocss/core': 0.58.5 + '@unocss/preset-mini': 0.58.5 + '@unocss/rule-utils': 0.58.5 dev: true /@unocss/reset@0.42.1: resolution: {integrity: sha512-sByjZKqqsXSavOOebaY6pPtZWFSO71adNbBFUPH7De56YtAGiS89PC9tQ/RGPhNBuZ2krZIMsN9og3+HivGUvg==} dev: true - /@unocss/reset@0.58.4: - resolution: {integrity: sha512-ZZTrAdl4WWmMjQdOqcOSWdgFH6kdFKZjPu4c6Ijxk7KvY2BW3nttTTBa7IYeuXFHVfcExUFqlOgRurt+NeWYyQ==} + /@unocss/reset@0.58.5: + resolution: {integrity: sha512-2wMrkCj3SSb5hrx9TKs5jZa34QIRkHv9FotbJutAPo7o8hx+XXn56ogzdoUrcFPJZJUx2R2nyOVbSlGMIjtFtw==} dev: true - /@unocss/rule-utils@0.58.4: - resolution: {integrity: sha512-52Jp4I+joGTaDm7ehB/7uZ2kJL+9BZcYRDUVk4IDacDH5W9yxf1F75LzYT8jJVWXD/HIhiS0r9V6qhcBq2OWZw==} + /@unocss/rule-utils@0.58.5: + resolution: {integrity: sha512-w0sGJoeUGwMWLVFLEE9PDiv/fQcQqZnTIIQLYNCjTdqXDRlwTp9ACW0h47x/hAAIXdOtEOOBuTfjGD79GznUmA==} engines: {node: '>=14'} dependencies: - '@unocss/core': 0.58.4 + '@unocss/core': 0.58.5 magic-string: 0.30.6 dev: true @@ -1968,25 +1966,25 @@ packages: resolution: {integrity: sha512-nFkfZwBGLl6nN6bBaUrF1l2ZkMcg2dAibSlA0U1mr+75L14gem2o+QR++Q76dATiLA9ljdL++Tn5JLR8zGQ7xg==} dev: true - /@unocss/scope@0.58.4: - resolution: {integrity: sha512-JrX98xoYnv0HN41WyzlvCCU1T3jnDOry+V8mm2dB9DvByzxI484X6gtKbOXlJFAPwOlZPU5Bru/XTDaL6yQQww==} + /@unocss/scope@0.58.5: + resolution: {integrity: sha512-vSentagAwYTnThGRCjzZ6eNSSRuzdWBl21L1BbvVNM91Ss/FugQnZ1hd0m3TrVvvStYXnFVHMQ/MjCAEJ4cMYg==} dev: true - /@unocss/transformer-attributify-jsx-babel@0.58.4: - resolution: {integrity: sha512-yJd+OxAdgAxSQHVrqC6z19ibPqwwWO7J0TFf2caiP3hidSJ0iOvxcC0h62YCMr9dg4MsCpXaiHmGzxXbWGJ9nQ==} + /@unocss/transformer-attributify-jsx-babel@0.58.5: + resolution: {integrity: sha512-IAWSSKN3V0D87DE8bqaaPrZBWOdWQ06QNfi9vRuQJfRWOui87ezi9+NffjcnQw/ap9xMk1O6z74/WOW3zo6uYA==} dependencies: '@babel/core': 7.23.9 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) '@babel/preset-typescript': 7.23.3(@babel/core@7.23.9) - '@unocss/core': 0.58.4 + '@unocss/core': 0.58.5 transitivePeerDependencies: - supports-color dev: true - /@unocss/transformer-attributify-jsx@0.58.4: - resolution: {integrity: sha512-Y4YMVkgY/EF7x0llV8Y42WGs8b77hbXkPstRLNeRD5x8KBNKnjYUXADwhTBEKXjDR8/y5Ewie8u43i1nbh1XuA==} + /@unocss/transformer-attributify-jsx@0.58.5: + resolution: {integrity: sha512-sItEALyvAt3PZLd9Q1tlIATjaj3kWbS/qI3otUVsYBdZjP4UudzJ3D1fcWNL2WPlgz8KtlVzRUuxob8TQ4ibZg==} dependencies: - '@unocss/core': 0.58.4 + '@unocss/core': 0.58.5 dev: true /@unocss/transformer-compile-class@0.42.1: @@ -1995,10 +1993,10 @@ packages: '@unocss/core': 0.42.1 dev: true - /@unocss/transformer-compile-class@0.58.4: - resolution: {integrity: sha512-GPz462ogvtb64W0iweuB0Dcm1snGsGte0RlVpFUeG2eWlVqKMRvNRtYuive2Ky2zSZKefWJQBGk3Ti+7CM4wFA==} + /@unocss/transformer-compile-class@0.58.5: + resolution: {integrity: sha512-4MaxjaZo1rf5uHvDGa2mbnXxAYVYoj1+oRNpL4fE3FoExS1Ka2CiNGQn/S4bHMF51vmXMSWtOzurJpPD4BaJUQ==} dependencies: - '@unocss/core': 0.58.4 + '@unocss/core': 0.58.5 dev: true /@unocss/transformer-directives@0.42.1: @@ -2008,11 +2006,11 @@ packages: css-tree: 2.3.1 dev: true - /@unocss/transformer-directives@0.58.4: - resolution: {integrity: sha512-5g2XVhwpmu2IrGHqPwxh+S3ZtkC/AwAtLIBLWB1QNhY3HVzAAaOzcif6uarngrCTTDQSDmsjzm8TSAq26LtCmQ==} + /@unocss/transformer-directives@0.58.5: + resolution: {integrity: sha512-allspF5TlT1B2bJSZ1houHScXOTaTPlatLiEmgQKzr/m93rCvktokaO5J6qeN2VXQdpTIsxdA5B8//7UkfTuIA==} dependencies: - '@unocss/core': 0.58.4 - '@unocss/rule-utils': 0.58.4 + '@unocss/core': 0.58.5 + '@unocss/rule-utils': 0.58.5 css-tree: 2.3.1 dev: true @@ -2022,10 +2020,10 @@ packages: '@unocss/core': 0.42.1 dev: true - /@unocss/transformer-variant-group@0.58.4: - resolution: {integrity: sha512-zpJ4TMor7aJ3SoLJm4jNBOSqikyXUdQEO1AxkILd9Zcn7JWRgudfFXiXnFP+WGJcs9mMLoUiISxzT8SKNCckfA==} + /@unocss/transformer-variant-group@0.58.5: + resolution: {integrity: sha512-SjUwGzKK5CVqn7Gg+3v3hV47ZUll7GcGu0vR3RCLO4gqEfFlZWMTHml1Sl2sY1WAca2iVcDRu+dp0RLxRG/dUA==} dependencies: - '@unocss/core': 0.58.4 + '@unocss/core': 0.58.5 dev: true /@unocss/vite@0.42.1(vite@3.2.8): @@ -2040,38 +2038,38 @@ packages: '@unocss/scope': 0.42.1 '@unocss/transformer-directives': 0.42.1 magic-string: 0.26.7 - vite: 3.2.8(@types/node@18.19.14) + vite: 3.2.8(@types/node@20.11.24) dev: true - /@unocss/vite@0.58.4(vite@3.2.8): - resolution: {integrity: sha512-TqD5fIXv6NF3v10FFrCII//GRbkou6Dn/OzW+d4T5f0KM5+T6DutljpYUdGo0+2QXKDroUWLAspFUaZUx8iwVw==} + /@unocss/vite@0.58.5(vite@3.2.8): + resolution: {integrity: sha512-p4o1XNX1rvjmoUqSSdua8XyWNg/d+YUChDd2L/xEty+6j2qv0wUaohs3UQ87vWlv632/UmgdX+2MbrgtqthCtw==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 dependencies: '@ampproject/remapping': 2.2.1 '@rollup/pluginutils': 5.1.0 - '@unocss/config': 0.58.4 - '@unocss/core': 0.58.4 - '@unocss/inspector': 0.58.4 - '@unocss/scope': 0.58.4 - '@unocss/transformer-directives': 0.58.4 + '@unocss/config': 0.58.5 + '@unocss/core': 0.58.5 + '@unocss/inspector': 0.58.5 + '@unocss/scope': 0.58.5 + '@unocss/transformer-directives': 0.58.5 chokidar: 3.5.3 fast-glob: 3.3.2 magic-string: 0.30.6 - vite: 3.2.8(@types/node@18.19.14) + vite: 3.2.8(@types/node@20.11.24) transitivePeerDependencies: - rollup dev: true - /@vitejs/plugin-vue@5.0.3(vite@5.0.12)(vue@3.4.15): - resolution: {integrity: sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA==} + /@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.21): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 5.0.12(@types/node@18.19.14) - vue: 3.4.15(typescript@5.3.3) + vite: 5.1.4(@types/node@20.11.24) + vue: 3.4.21(typescript@5.3.3) dev: true /@volar/language-core@1.11.1: @@ -2095,12 +2093,29 @@ packages: estree-walker: 2.0.2 source-map-js: 1.0.2 + /@vue/compiler-core@3.4.21: + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/shared': 3.4.21 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + /@vue/compiler-dom@3.4.15: resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==} dependencies: '@vue/compiler-core': 3.4.15 '@vue/shared': 3.4.15 + /@vue/compiler-dom@3.4.21: + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + dependencies: + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + /@vue/compiler-sfc@3.4.15: resolution: {integrity: sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==} dependencies: @@ -2114,12 +2129,33 @@ packages: postcss: 8.4.33 source-map-js: 1.0.2 + /@vue/compiler-sfc@3.4.21: + resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + estree-walker: 2.0.2 + magic-string: 0.30.7 + postcss: 8.4.35 + source-map-js: 1.0.2 + dev: true + /@vue/compiler-ssr@3.4.15: resolution: {integrity: sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==} dependencies: '@vue/compiler-dom': 3.4.15 '@vue/shared': 3.4.15 + /@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/devtools-api@6.5.1: resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} dev: true @@ -2176,12 +2212,25 @@ packages: dependencies: '@vue/shared': 3.4.15 + /@vue/reactivity@3.4.21: + resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} + dependencies: + '@vue/shared': 3.4.21 + dev: true + /@vue/runtime-core@3.4.15: resolution: {integrity: sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==} dependencies: '@vue/reactivity': 3.4.15 '@vue/shared': 3.4.15 + /@vue/runtime-core@3.4.21: + resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} + dependencies: + '@vue/reactivity': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + /@vue/runtime-dom@3.4.15: resolution: {integrity: sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==} dependencies: @@ -2189,6 +2238,14 @@ packages: '@vue/shared': 3.4.15 csstype: 3.1.3 + /@vue/runtime-dom@3.4.21: + resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} + dependencies: + '@vue/runtime-core': 3.4.21 + '@vue/shared': 3.4.21 + csstype: 3.1.3 + dev: true + /@vue/server-renderer@3.4.15(vue@3.4.15): resolution: {integrity: sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==} peerDependencies: @@ -2198,20 +2255,58 @@ packages: '@vue/shared': 3.4.15 vue: 3.4.15(typescript@5.3.3) + /@vue/server-renderer@3.4.21(vue@3.4.21): + resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} + peerDependencies: + vue: 3.4.21 + dependencies: + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + vue: 3.4.21(typescript@5.3.3) + dev: true + /@vue/shared@3.4.15: resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==} - /@vueuse/core@10.7.2(vue@3.4.15): + /@vue/shared@3.4.21: + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} + dev: true + + /@vueuse/core@10.7.2(vue@3.4.21): resolution: {integrity: sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==} dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.7.2 - '@vueuse/shared': 10.7.2(vue@3.4.15) + '@vueuse/shared': 10.7.2(vue@3.4.21) + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/core@10.9.0(vue@3.4.15): + 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.15) vue-demi: 0.14.7(vue@3.4.15) transitivePeerDependencies: - '@vue/composition-api' - vue + /@vueuse/core@10.9.0(vue@3.4.21): + 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) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + /@vueuse/core@8.9.4(vue@3.4.15): resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==} peerDependencies: @@ -2241,7 +2336,7 @@ packages: - '@vue/composition-api' dev: true - /@vueuse/integrations@10.7.2(focus-trap@7.5.4)(vue@3.4.15): + /@vueuse/integrations@10.7.2(focus-trap@7.5.4)(vue@3.4.21): resolution: {integrity: sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==} peerDependencies: async-validator: '*' @@ -2282,10 +2377,10 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.7.2(vue@3.4.15) - '@vueuse/shared': 10.7.2(vue@3.4.15) + '@vueuse/core': 10.7.2(vue@3.4.21) + '@vueuse/shared': 10.7.2(vue@3.4.21) focus-trap: 7.5.4 - vue-demi: 0.14.7(vue@3.4.15) + vue-demi: 0.14.7(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -2293,6 +2388,10 @@ packages: /@vueuse/metadata@10.7.2: resolution: {integrity: sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==} + dev: true + + /@vueuse/metadata@10.9.0: + resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} /@vueuse/metadata@8.9.4: resolution: {integrity: sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==} @@ -2303,7 +2402,7 @@ packages: peerDependencies: vue: '>=3.0.0' dependencies: - '@vueuse/core': 10.7.2(vue@3.4.15) + '@vueuse/core': 10.9.0(vue@3.4.15) '@vueuse/shared': 10.7.2(vue@3.4.15) csstype: 3.1.3 framesync: 6.1.2 @@ -2325,6 +2424,33 @@ packages: transitivePeerDependencies: - '@vue/composition-api' - vue + dev: true + + /@vueuse/shared@10.7.2(vue@3.4.21): + resolution: {integrity: sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==} + dependencies: + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/shared@10.9.0(vue@3.4.15): + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} + dependencies: + vue-demi: 0.14.7(vue@3.4.15) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /@vueuse/shared@10.9.0(vue@3.4.21): + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} + dependencies: + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true /@vueuse/shared@8.9.4(vue@3.4.15): resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==} @@ -3460,22 +3586,22 @@ packages: requiresBuild: true dev: true - /eslint-compat-utils@0.1.2(eslint@8.56.0): + /eslint-compat-utils@0.1.2(eslint@8.57.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true - /eslint-compat-utils@0.4.1(eslint@8.56.0): + /eslint-compat-utils@0.4.1(eslint@8.57.0): resolution: {integrity: sha512-5N7ZaJG5pZxUeNNJfUchurLVrunD1xJvyg5kYOIVF8kg1f3ajTikmAu/5fZ9w100omNPOoMjngRszh/Q/uFGMg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 semver: 7.5.4 dev: true @@ -3495,15 +3621,15 @@ packages: - supports-color dev: true - /eslint-merge-processors@0.1.0(eslint@8.56.0): + /eslint-merge-processors@0.1.0(eslint@8.57.0): resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} peerDependencies: eslint: '*' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -3524,46 +3650,46 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@8.57.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-antfu@2.1.2(eslint@8.56.0): + /eslint-plugin-antfu@2.1.2(eslint@8.57.0): resolution: {integrity: sha512-s7ZTOM3uq0iqpp6gF0UEotnvup7f2PHBUftCytLZX0+6C9j9KadKZQh6bVVngAyFgsmeD9+gcBopOYLClb2oDg==} peerDependencies: eslint: '*' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.56.0): + /eslint-plugin-es-x@7.5.0(eslint@8.57.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.56.0 - eslint-compat-utils: 0.1.2(eslint@8.56.0) + eslint: 8.57.0 + eslint-compat-utils: 0.1.2(eslint@8.57.0) dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.56.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.57.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.56.0 + eslint: 8.57.0 ignore: 5.3.1 dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0): + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.57.0): resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: @@ -3571,9 +3697,9 @@ packages: dependencies: debug: 4.3.4 doctrine: 3.0.0 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 @@ -3585,7 +3711,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@48.0.4(eslint@8.56.0): + /eslint-plugin-jsdoc@48.0.4(eslint@8.57.0): resolution: {integrity: sha512-A0cH+5svWPXzGZszBjXA1t0aAqVGS+/x3i02KFmb73rU0iMLnadEcVWcD/dGBZHIfAMKr3YpWh58f6wn4N909w==} engines: {node: '>=18'} peerDependencies: @@ -3596,7 +3722,7 @@ packages: comment-parser: 1.4.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.56.0 + eslint: 8.57.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.5.4 @@ -3605,15 +3731,15 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.13.0(eslint@8.56.0): + /eslint-plugin-jsonc@2.13.0(eslint@8.57.0): resolution: {integrity: sha512-2wWdJfpO/UbZzPDABuUVvlUQjfMJa2p2iQfYt/oWxOMpXCcjuiMUSaA02gtY/Dbu82vpaSqc+O7Xq6ECHwtIxA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - eslint: 8.56.0 - eslint-compat-utils: 0.4.1(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + eslint: 8.57.0 + eslint-compat-utils: 0.4.1(eslint@8.57.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 @@ -3621,28 +3747,28 @@ packages: synckit: 0.6.2 dev: true - /eslint-plugin-markdown@3.0.1(eslint@8.56.0): + /eslint-plugin-markdown@3.0.1(eslint@8.57.0): resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-n@16.6.2(eslint@8.56.0): + /eslint-plugin-n@16.6.2(eslint@8.57.0): resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) builtins: 5.0.1 - eslint: 8.56.0 - eslint-plugin-es-x: 7.5.0(eslint@8.56.0) + eslint: 8.57.0 + eslint-plugin-es-x: 7.5.0(eslint@8.57.0) get-tsconfig: 4.7.2 globals: 13.24.0 ignore: 5.3.1 @@ -3658,7 +3784,7 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-perfectionist@2.5.0(eslint@8.56.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2): + /eslint-plugin-perfectionist@2.5.0(eslint@8.57.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2): resolution: {integrity: sha512-F6XXcq4mKKUe/SREoMGQqzgw6cgCgf3pFzkFfQVIGtqD1yXVpQjnhTepzhBeZfxZwgMzR9HO4yH4CUhIQ2WBcQ==} peerDependencies: astro-eslint-parser: ^0.16.0 @@ -3676,44 +3802,44 @@ packages: vue-eslint-parser: optional: true dependencies: - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/utils': 6.20.0(eslint@8.57.0)(typescript@5.3.3) + eslint: 8.57.0 minimatch: 9.0.3 natural-compare-lite: 1.4.0 - vue-eslint-parser: 9.4.2(eslint@8.56.0) + vue-eslint-parser: 9.4.2(eslint@8.57.0) transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-toml@0.9.2(eslint@8.56.0): + /eslint-plugin-toml@0.9.2(eslint@8.57.0): resolution: {integrity: sha512-ri0xf63PYf3pIq/WY9BIwrqxZmGTIwSkAO0bHddI0ajUwN4KGz6W8vOvdXFHOpRdRfzxlmXze/vfsY/aTEXESg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.56.0 - eslint-compat-utils: 0.4.1(eslint@8.56.0) + eslint: 8.57.0 + eslint-compat-utils: 0.4.1(eslint@8.57.0) lodash: 4.17.21 toml-eslint-parser: 0.9.3 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-unicorn@50.0.1(eslint@8.56.0): + /eslint-plugin-unicorn@50.0.1(eslint@8.57.0): resolution: {integrity: sha512-KxenCZxqSYW0GWHH18okDlOQcpezcitm5aOSz6EnobyJ6BIByiPDviQRjJIUAjG/tMN11958MxaQ+qCoU6lfDA==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.56.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint/eslintrc': 2.1.4 ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.35.1 - eslint: 8.56.0 + eslint: 8.57.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -3728,7 +3854,7 @@ packages: - supports-color dev: true - /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0): + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.57.0): resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3738,12 +3864,12 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.57.0)(typescript@5.3.3) + eslint: 8.57.0 eslint-rule-composer: 0.3.0 dev: true - /eslint-plugin-vitest@0.3.21(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0)(typescript@5.3.3): + /eslint-plugin-vitest@0.3.21(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-oYwR1MrwaBw/OG6CKU+SJYleAc442w6CWL1RTQl5WLwy8X3sh0bgHIQk5iEtmTak3Q+XAvZglr0bIoDOjFdkcw==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: @@ -3756,41 +3882,41 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.20.0(eslint@8.57.0)(typescript@5.3.3) + eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-vue@9.21.1(eslint@8.56.0): + /eslint-plugin-vue@9.21.1(eslint@8.57.0): resolution: {integrity: sha512-XVtI7z39yOVBFJyi8Ljbn7kY9yHzznKXL02qQYn+ta63Iy4A9JFBw6o4OSB9hyD2++tVT+su9kQqetUyCCwhjw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - eslint: 8.56.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + eslint: 8.57.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.15 semver: 7.5.4 - vue-eslint-parser: 9.4.2(eslint@8.56.0) + vue-eslint-parser: 9.4.2(eslint@8.57.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-yml@1.12.2(eslint@8.56.0): + /eslint-plugin-yml@1.12.2(eslint@8.57.0): resolution: {integrity: sha512-hvS9p08FhPT7i/ynwl7/Wt7ke7Rf4P2D6fT8lZlL43peZDTsHtH2A0SIFQ7Kt7+mJ6if6P+FX3iJhMkdnxQwpg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.56.0 - eslint-compat-utils: 0.4.1(eslint@8.56.0) + eslint: 8.57.0 + eslint-compat-utils: 0.4.1(eslint@8.57.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -3798,14 +3924,14 @@ packages: - supports-color dev: true - /eslint-processor-vue-blocks@0.1.1(@vue/compiler-sfc@3.4.15)(eslint@8.56.0): + /eslint-processor-vue-blocks@0.1.1(@vue/compiler-sfc@3.4.15)(eslint@8.57.0): resolution: {integrity: sha512-9+dU5lU881log570oBwpelaJmOfOzSniben7IWEDRYQPPWwlvaV7NhOtsTuUWDqpYT+dtKKWPsgz4OkOi+aZnA==} peerDependencies: '@vue/compiler-sfc': ^3.3.0 eslint: ^8.50.0 dependencies: '@vue/compiler-sfc': 3.4.15 - eslint: 8.56.0 + eslint: 8.57.0 dev: true /eslint-rule-composer@0.3.0: @@ -3826,15 +3952,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 + '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -4030,7 +4156,7 @@ packages: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true - /floating-vue@5.2.2(vue@3.4.15): + /floating-vue@5.2.2(vue@3.4.21): resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==} peerDependencies: '@nuxt/kit': ^3.2.0 @@ -4040,8 +4166,8 @@ packages: optional: true dependencies: '@floating-ui/dom': 1.1.1 - vue: 3.4.15(typescript@5.3.3) - vue-resize: 2.0.0-alpha.1(vue@3.4.15) + vue: 3.4.21(typescript@5.3.3) + vue-resize: 2.0.0-alpha.1(vue@3.4.21) dev: true /focus-trap@7.5.4: @@ -4631,6 +4757,13 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + /magic-string@0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} dev: true @@ -5453,6 +5586,15 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /preact@10.5.14: resolution: {integrity: sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==} dev: true @@ -5680,16 +5822,10 @@ packages: engines: {node: '>=8'} dev: true - /shiki@1.0.0-beta.4: - resolution: {integrity: sha512-bY7Hz1+kWsSeimt+AWoBSrpUKzd5KivteL880z+UdgfMDuDsi8apk+0TXb/U37Y6aCBnI3jKmD4SEbmk+CHZ+Q==} - dependencies: - '@shikijs/core': 1.0.0-beta.4 - dev: true - - /shiki@1.0.0-beta.5: - resolution: {integrity: sha512-S5FV55ZH8zLicVyqlJZj8LYqh/VuUICDDNG/L9eDM9I4d69EX+FbgSnKRIuJIwLrmJfTiPoGVnH1HsHX5whP/g==} + /shiki@1.1.7: + resolution: {integrity: sha512-9kUTMjZtcPH3i7vHunA6EraTPpPOITYTdA5uMrvsJRexktqP0s7P3s9HVK80b4pP42FRVe03D7fT3NmJv2yYhw==} dependencies: - '@shikijs/core': 1.0.0-beta.5 + '@shikijs/core': 1.1.7 dev: true /signal-exit@3.0.7: @@ -5930,24 +6066,30 @@ packages: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} dev: true - /twoslash-vue@0.1.0(typescript@5.3.3): - resolution: {integrity: sha512-4IVOdvQcjLY5KTrsR9GuTUAThhpYQqkkKawCtfUaTSkui3CXR2KPYBJMvY5yM1by+TkENBlW1ykLywP2BGukHg==} + /twoslash-protocol@0.2.4: + resolution: {integrity: sha512-AEGTJj4mFGfvQc/M6qi0+s82Zq+mxLcjWZU+EUHGG8LQElyHDs+uDR+/3+m1l+WP7WL+QmWrVzFXgFX+hBg+bg==} + dev: true + + /twoslash-vue@0.2.4(typescript@5.3.3): + resolution: {integrity: sha512-AIcsYRSxn5WuZC+dD7/n99s1UEY6e5IljoGL3YijQvI/pylgsKk5sWXptp5NrRTH0srBLXoeVpE1re1Eo6eiJw==} peerDependencies: typescript: '*' dependencies: '@vue/language-core': 1.8.27(typescript@5.3.3) - twoslash: 0.1.0(typescript@5.3.3) + twoslash: 0.2.4(typescript@5.3.3) + twoslash-protocol: 0.2.4 typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /twoslash@0.1.0(typescript@5.3.3): - resolution: {integrity: sha512-zvDn23/FwNdi/i2xMTTDcn7xnX4iKlp6tJt68aD86zRqesQrb/HOnMBtaUu6+vme4gtlX9ScEfKYog1+7IPKSw==} + /twoslash@0.2.4(typescript@5.3.3): + resolution: {integrity: sha512-hc3y11BjLHP4kV37TR6lUKksxpZp0LQi9kCy95ka6qobye/gV49PqXZIuWlRaRVGNvp4AJBMg8aiwkp0M8x/nQ==} peerDependencies: typescript: '*' dependencies: '@typescript/vfs': 1.5.0 + twoslash-protocol: 0.2.4 typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -6130,11 +6272,11 @@ packages: - vite dev: true - /unocss@0.58.4(postcss@8.4.33)(vite@3.2.8): - resolution: {integrity: sha512-JYeQddAIObJPr6nuxahOgku0MIzjIaQ2P73KtJr0zSuzx6kiq20jf67FgDIOP1Ks6s7iJd7Ga3yuY2h49XjDjg==} + /unocss@0.58.5(postcss@8.4.33)(vite@3.2.8): + resolution: {integrity: sha512-0g4P6jLgRRNnhscxw7nQ9RHGrKJ1UPPiHPet+YT3TXUcmy4mTiYgo9+kGQf5bjyrzsELJ10cT6Qz2y6g9Tls4g==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 0.58.4 + '@unocss/webpack': 0.58.5 vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: '@unocss/webpack': @@ -6142,35 +6284,35 @@ packages: vite: optional: true dependencies: - '@unocss/astro': 0.58.4(vite@3.2.8) - '@unocss/cli': 0.58.4 - '@unocss/core': 0.58.4 - '@unocss/extractor-arbitrary-variants': 0.58.4 - '@unocss/postcss': 0.58.4(postcss@8.4.33) - '@unocss/preset-attributify': 0.58.4 - '@unocss/preset-icons': 0.58.4 - '@unocss/preset-mini': 0.58.4 - '@unocss/preset-tagify': 0.58.4 - '@unocss/preset-typography': 0.58.4 - '@unocss/preset-uno': 0.58.4 - '@unocss/preset-web-fonts': 0.58.4 - '@unocss/preset-wind': 0.58.4 - '@unocss/reset': 0.58.4 - '@unocss/transformer-attributify-jsx': 0.58.4 - '@unocss/transformer-attributify-jsx-babel': 0.58.4 - '@unocss/transformer-compile-class': 0.58.4 - '@unocss/transformer-directives': 0.58.4 - '@unocss/transformer-variant-group': 0.58.4 - '@unocss/vite': 0.58.4(vite@3.2.8) - vite: 3.2.8(@types/node@18.19.14) + '@unocss/astro': 0.58.5(vite@3.2.8) + '@unocss/cli': 0.58.5 + '@unocss/core': 0.58.5 + '@unocss/extractor-arbitrary-variants': 0.58.5 + '@unocss/postcss': 0.58.5(postcss@8.4.33) + '@unocss/preset-attributify': 0.58.5 + '@unocss/preset-icons': 0.58.5 + '@unocss/preset-mini': 0.58.5 + '@unocss/preset-tagify': 0.58.5 + '@unocss/preset-typography': 0.58.5 + '@unocss/preset-uno': 0.58.5 + '@unocss/preset-web-fonts': 0.58.5 + '@unocss/preset-wind': 0.58.5 + '@unocss/reset': 0.58.5 + '@unocss/transformer-attributify-jsx': 0.58.5 + '@unocss/transformer-attributify-jsx-babel': 0.58.5 + '@unocss/transformer-compile-class': 0.58.5 + '@unocss/transformer-directives': 0.58.5 + '@unocss/transformer-variant-group': 0.58.5 + '@unocss/vite': 0.58.5(vite@3.2.8) + vite: 3.2.8(@types/node@20.11.24) transitivePeerDependencies: - postcss - rollup - supports-color dev: true - /unplugin-icons@0.18.3(@vue/compiler-sfc@3.4.15): - resolution: {integrity: sha512-6EHPMXOq7XL8JAULzX0o3KqOsJHhYfpDfB1WvBWwZJH/PutIkV/ahRpHytucQ1evfRFuv/DVIozEmFIhP1xRxA==} + /unplugin-icons@0.18.5(@vue/compiler-sfc@3.4.15): + resolution: {integrity: sha512-KVNAohXbZ7tVcG1C3p6QaC7wU9Qrj7etv4XvsMMJAxr5LccQZ+Iuv5LOIv/7GtqXaGN1BuFCqRO1ErsHEgEXdQ==} peerDependencies: '@svgr/core': '>=7.0.0' '@svgx/core': ^1.0.1 @@ -6191,7 +6333,7 @@ packages: dependencies: '@antfu/install-pkg': 0.3.1 '@antfu/utils': 0.7.7 - '@iconify/utils': 2.1.20 + '@iconify/utils': 2.1.22 '@vue/compiler-sfc': 3.4.15 debug: 4.3.4 kolorist: 1.8.0 @@ -6323,7 +6465,7 @@ packages: perfect-debounce: 1.0.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 3.2.8(@types/node@18.19.14) + vite: 3.2.8(@types/node@20.11.24) transitivePeerDependencies: - rollup - supports-color @@ -6337,13 +6479,13 @@ packages: '@windicss/plugin-utils': 1.9.3 debug: 4.3.4 kolorist: 1.8.0 - vite: 3.2.8(@types/node@18.19.14) + vite: 3.2.8(@types/node@20.11.24) windicss: 3.5.6 transitivePeerDependencies: - supports-color dev: true - /vite@3.2.8(@types/node@18.19.14): + /vite@3.2.8(@types/node@20.11.24): resolution: {integrity: sha512-EtQU16PLIJpAZol2cTLttNP1mX6L0SyI0pgQB1VOoWeQnMSvtiwovV3D6NcjN8CZQWWyESD2v5NGnpz5RvgOZA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -6368,7 +6510,7 @@ packages: terser: optional: true dependencies: - '@types/node': 18.19.14 + '@types/node': 20.11.24 esbuild: 0.15.18 postcss: 8.4.33 resolve: 1.22.8 @@ -6377,8 +6519,8 @@ packages: fsevents: 2.3.3 dev: true - /vite@5.0.12(@types/node@18.19.14): - resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + /vite@5.1.4(@types/node@20.11.24): + resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -6405,20 +6547,20 @@ packages: terser: optional: true dependencies: - '@types/node': 18.19.14 + '@types/node': 20.11.24 esbuild: 0.19.12 - postcss: 8.4.33 + postcss: 8.4.35 rollup: 4.9.6 optionalDependencies: fsevents: 2.3.3 dev: true - /vitepress@1.0.0-rc.41(@algolia/client-search@4.22.1)(@types/node@18.19.14)(postcss@8.4.33)(search-insights@2.13.0)(typescript@5.3.3): - resolution: {integrity: sha512-PAEoIIc9J//k/Wg39C6k86hZpXPmLZjRiTBwieDNeYGdevD7xr5Ve8o1W/w+e9dtyQMkuvzgianEamXDX3aj7g==} + /vitepress@1.0.0-rc.44(@algolia/client-search@4.22.1)(@types/node@20.11.24)(postcss@8.4.33)(search-insights@2.13.0)(typescript@5.3.3): + resolution: {integrity: sha512-tO5taxGI7fSpBK1D8zrZTyJJERlyU9nnt0jHSt3fywfq3VKn977Hg0wUuTkEmwXlFYwuW26+6+3xorf4nD3XvA==} hasBin: true peerDependencies: markdown-it-mathjax3: ^4.3.2 - postcss: ^8.4.33 + postcss: ^8.4.35 peerDependenciesMeta: markdown-it-mathjax3: optional: true @@ -6427,20 +6569,20 @@ packages: dependencies: '@docsearch/css': 3.5.2 '@docsearch/js': 3.5.2(@algolia/client-search@4.22.1)(search-insights@2.13.0) - '@shikijs/core': 1.0.0-beta.5 - '@shikijs/transformers': 1.0.0-beta.4 + '@shikijs/core': 1.1.7 + '@shikijs/transformers': 1.1.7 '@types/markdown-it': 13.0.7 - '@vitejs/plugin-vue': 5.0.3(vite@5.0.12)(vue@3.4.15) + '@vitejs/plugin-vue': 5.0.4(vite@5.1.4)(vue@3.4.21) '@vue/devtools-api': 7.0.14 - '@vueuse/core': 10.7.2(vue@3.4.15) - '@vueuse/integrations': 10.7.2(focus-trap@7.5.4)(vue@3.4.15) + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/integrations': 10.7.2(focus-trap@7.5.4)(vue@3.4.21) focus-trap: 7.5.4 mark.js: 8.11.1 minisearch: 6.3.0 postcss: 8.4.33 - shiki: 1.0.0-beta.5 - vite: 5.0.12(@types/node@18.19.14) - vue: 3.4.15(typescript@5.3.3) + shiki: 1.1.7 + vite: 5.1.4(@types/node@20.11.24) + vue: 3.4.21(typescript@5.3.3) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -6483,14 +6625,29 @@ packages: dependencies: vue: 3.4.15(typescript@5.3.3) - /vue-eslint-parser@9.4.2(eslint@8.56.0): + /vue-demi@0.14.7(vue@3.4.21): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.21(typescript@5.3.3) + dev: true + + /vue-eslint-parser@9.4.2(eslint@8.57.0): resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -6501,12 +6658,12 @@ packages: - supports-color dev: true - /vue-resize@2.0.0-alpha.1(vue@3.4.15): + /vue-resize@2.0.0-alpha.1(vue@3.4.21): resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} peerDependencies: vue: ^3.0.0 dependencies: - vue: 3.4.15(typescript@5.3.3) + vue: 3.4.21(typescript@5.3.3) dev: true /vue-router@4.2.5(vue@3.4.15): @@ -6550,6 +6707,22 @@ packages: '@vue/shared': 3.4.15 typescript: 5.3.3 + /vue@3.4.21(typescript@5.3.3): + resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} + 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 + typescript: 5.3.3 + dev: true + /web-worker@1.3.0: resolution: {integrity: sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==} dev: true From 609f2b6bbf55ff4c77fdaccde2eeb77a4dc23282 Mon Sep 17 00:00:00 2001 From: Anthony Fu <anthonyfu117@hotmail.com> Date: Sat, 2 Mar 2024 21:03:51 +0100 Subject: [PATCH 83/89] chore: fix links --- components.d.ts | 2 ++ guide/syntax.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/components.d.ts b/components.d.ts index d1d99c8..b0f0cf0 100644 --- a/components.d.ts +++ b/components.d.ts @@ -48,6 +48,8 @@ declare module 'vue' { RouterView: typeof import('vue-router')['RouterView'] ShowCaseInfo: typeof import('./.vitepress/theme/components/ShowCaseInfo.vue')['default'] ShowCases: typeof import('./.vitepress/theme/components/ShowCases.vue')['default'] + SimpleIconsGithub: typeof import('~icons/simple-icons/github')['default'] + SimpleIconsNpm: typeof import('~icons/simple-icons/npm')['default'] SlideCurrentNo: typeof import('./.vitepress/@slidev/client/builtin/SlideCurrentNo.vue')['default'] SlidesTotal: typeof import('./.vitepress/@slidev/client/builtin/SlidesTotal.vue')['default'] Starport: typeof import('vue-starport')['Starport'] diff --git a/guide/syntax.md b/guide/syntax.md index 56fd8c2..e4bce7d 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -217,7 +217,7 @@ const count = ref(0) Shiki Magic Move enables you to have granular transition between code changes like Keynote's Magic Move. You can check [this demo](https://shiki-magic-move.netlify.app/) to see how it works. -In Slidev, we bind it to the [clicks system](guide/animations#click-animations). The syntax is wrap multiple code blocks representing each steps with <code>````md magic-move</code> (mind it's **4** backticks), this will be transformed into one code block, that morphing to each steps as you click. +In Slidev, we bind it to the [clicks system](/guide/animations#click-animations). The syntax is wrap multiple code blocks representing each steps with <code>````md magic-move</code> (mind it's **4** backticks), this will be transformed into one code block, that morphing to each steps as you click. ~~~~md ````md magic-move From e8054222645741a1f15a6138c2b0b6a091fb43a1 Mon Sep 17 00:00:00 2001 From: Anthony Fu <anthonyfu117@hotmail.com> Date: Sat, 2 Mar 2024 23:33:11 +0100 Subject: [PATCH 84/89] chore: update --- guide/syntax.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/guide/syntax.md b/guide/syntax.md index e4bce7d..c3fefda 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -211,6 +211,9 @@ const count = ref(0) // ^? ``` +<!-- For the popup to not to overlap the content below --> +<div class="py-20" /> + ### Shiki Magic Move > Available since v0.48 From ee683ae81a2021c44b278d720a418ee0c6ddb537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Emonet?= <twitwi@users.noreply.github.com> Date: Sun, 3 Mar 2024 21:42:27 +0100 Subject: [PATCH 85/89] docs: explain mode parameter for preparser extensions (#176) --- custom/config-parser.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/custom/config-parser.md b/custom/config-parser.md index 4784932..10febc1 100644 --- a/custom/config-parser.md +++ b/custom/config-parser.md @@ -12,7 +12,7 @@ Configuring the markdown parser used in step 2 can be done by [configuring Vite ## Preparser Extensions -> Available since v0.37.0 +> Available since v0.37.0. :::warning Important: when modifying the preparser configuration, you need to stop and start slidev again (restart might not be sufficient). @@ -25,7 +25,7 @@ To customize it, create a `./setup/preparser.ts` file with the following content ```ts import { definePreparserSetup } from '@slidev/types' -export default definePreparserSetup(({ filepath, headmatter }) => { +export default definePreparserSetup(({ filepath, headmatter, mode }) => { return [ { transformRawLines(lines) { @@ -41,7 +41,7 @@ export default definePreparserSetup(({ filepath, headmatter }) => { This example systematically replaces any `@@@` line by a line with `hello`. It illustrates the structure of a preparser configuration file and some of the main concepts the preparser involves: - `definePreparserSetup` must be called with a function as parameter. -- The function receives the file path (of the root presentation file) and headmatter (from the md file). It could use this information (e.g., enable extensions based on the presentation file). +- The function receives the file path (of the root presentation file), the headmatter (from the md file) and, since v0.48.0, a mode (dev, build or export). It could use this information (e.g., enable extensions based on the presentation file or whether we are exporting a PDF). - The function must return a list of preparser extensions. - An extension can contain: - a `transformRawLines(lines)` function that runs just after parsing the headmatter of the md file and receives a list of all lines (from the md file). The function can mutate the list arbitrarily. From d90cc87f0123f472cecc705e7e9fb1dce0fe9d1c Mon Sep 17 00:00:00 2001 From: Anthony Fu <anthonyfu117@hotmail.com> Date: Tue, 5 Mar 2024 01:55:01 +0100 Subject: [PATCH 86/89] fix: landing page style --- .vitepress/theme/components/LandingPage.vue | 4 ++-- index.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.vitepress/theme/components/LandingPage.vue b/.vitepress/theme/components/LandingPage.vue index 1a60abf..145f2a0 100644 --- a/.vitepress/theme/components/LandingPage.vue +++ b/.vitepress/theme/components/LandingPage.vue @@ -9,8 +9,8 @@ Presentation Slides for Developers </h2> <div flex="~ gap-3 justify-center" p4 mt-5> - <a href="/guide/" class="bg-$vp-c-brand-3 text-white px5 py3 text-xl font-bold rounded-xl hover:bg-$vp-c-brand-1">Get Started</a> - <a href="/guide/why" class="bg-$vp-c-gray-1 text-white px5 py3 text-xl font-bold rounded-2xl hover:bg-$vp-c-brand-1">Why</a> + <a href="/guide/" class="bg-$vp-c-brand-3 text-white! no-underline! px5 py3 text-xl font-bold rounded-xl hover:bg-$vp-c-brand-1">Get Started</a> + <a href="/guide/why" class="bg-$vp-c-gray-1 text-white! no-underline! px5 py3 text-xl font-bold rounded-2xl hover:bg-$vp-c-brand-1">Why</a> </div> </div> <div flex> diff --git a/index.md b/index.md index 70a3a9d..bee44a8 100644 --- a/index.md +++ b/index.md @@ -1,5 +1,6 @@ --- layout: home +markdownStyles: false --- <LandingPage /> From d85cd98e3b3e88363b670144c5633d51bea5f261 Mon Sep 17 00:00:00 2001 From: Anthony Fu <anthonyfu117@hotmail.com> Date: Tue, 5 Mar 2024 02:09:31 +0100 Subject: [PATCH 87/89] docs: update docs about Monaco --- .vitepress/config.ts | 2 +- custom/config-monaco.md | 89 ++++++++++++++--------------------------- 2 files changed, 32 insertions(+), 59 deletions(-) diff --git a/.vitepress/config.ts b/.vitepress/config.ts index c3faaee..e6f8ae1 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -2,7 +2,7 @@ import type { DefaultTheme } from 'vitepress' import { defineConfig } from 'vitepress' import { transformerTwoslash } from '@shikijs/vitepress-twoslash' -const CURRENT_VERSION = '0.48.0-beta.2' +const CURRENT_VERSION = '0.48.0-beta.22' const Guide: DefaultTheme.NavItemWithLink[] = [ { diff --git a/custom/config-monaco.md b/custom/config-monaco.md index 5743908..3a101dd 100644 --- a/custom/config-monaco.md +++ b/custom/config-monaco.md @@ -19,7 +19,7 @@ Learn more about [configuring Monaco](https://github.com/Microsoft/monaco-editor To use Monaco in your slides, simply append `{monaco}` to your code snippets: ~~~md -```js +```js {monaco} // [!code ++] const count = ref(1) const plusOne = computed(() => count.value + 1) @@ -29,30 +29,7 @@ plusOne.value++ // error ``` ~~~ -To - -~~~md -```js {monaco} -const count = ref(1) -const plusOne = computed(() => count.value + 1) - -console.log(plusOne.value) // 2 - -plusOne.value++ // error -``` -~~~ - -## Exporting - -By default, Monaco will ONLY work on `dev` mode. If you would like to have it available in the exported SPA, configure it in your frontmatter: - -```yaml ---- -monaco: true # default "dev" ---- -``` - -## Types Auto Installing +## TypeScript Types When use TypeScript with Monaco, types for dependencies will be installed to the client-side automatically. @@ -65,49 +42,35 @@ const counter = ref(0) ``` ~~~ -In the example above, make sure `vue` and `@vueuse/core` are installed locally as dependencies / devDependencies, Slidev will handle the rest to get the types working for the editor automatically! +In the example above, make sure `vue` and `@vueuse/core` are installed locally as dependencies / devDependencies, Slidev will handle the rest to get the types working for the editor automatically. When deploy as SPA, those types will also be bundled for static hosting. -## Configure Themes - -The theme is controlled by Slidev based on the light/dark theme. If you want to customize it, you can pass the theme id to the setup function: +### Additional Types -```ts -// ./setup/monaco.ts -import { defineMonacoSetup } from '@slidev/types' +Slidev will scan all the monaco codeblocks in your slides and import the types for those used libraries for you. In case it missed some, you can explicitly specify extra packages to import the types for: -export default defineMonacoSetup(() => { - return { - theme: { - dark: 'vs-dark', - light: 'vs', - }, - } -}) +```md +--- +monacoTypesAdditionalPackages: + - lodash-es + - foo +--- ``` -If you want to load custom themes: +### Auto Type Acquisition -```ts -import { defineMonacoSetup } from '@slidev/types' +You can optionally switch to load types from CDN by setting the following headmatter: -// change to your themes -import dark from 'theme-vitesse/themes/vitesse-dark.json' -import light from 'theme-vitesse/themes/vitesse-light.json' +```md +--- +monacoTypesSource: ata +--- +``` -export default defineMonacoSetup((monaco) => { - monaco.editor.defineTheme('vitesse-light', light as any) - monaco.editor.defineTheme('vitesse-dark', dark as any) +This feature is powered by [`@typescript/ata`](https://github.com/microsoft/TypeScript-Website/tree/v2/packages/ata) and runs completely on the client-side. - return { - theme: { - light: 'vitesse-light', - dark: 'vitesse-dark', - }, - } -}) -``` +## Configure Themes -> If you are creating a theme for Slidev, use dynamic `import()` inside the setup function to get better tree-shaking and code-splitting results. +Since v0.48.0, Monaco will reuse the Shiki theme you configured in [Shiki's setup file](/custom/highlighters#configure-shiki), powered by [`@shikijs/monaco`](https://shiki.style/packages/monaco). You don't need to worry about it anymore and it will have a consistent style with the rest of your code blocks. ## Configure the Editor @@ -135,3 +98,13 @@ export default defineMonacoSetup(() => { } }) ``` + +## Disabling + +Since v0.48.0, Monaco editor is enabled by default and only be bundled when you use it. If you want to disable it, you can set `monaco` to `false` in the frontmatter of your slide: + +```yaml +--- +monaco: false # can also be `dev` or `build` tp conditionally enable it +--- +``` From ff88e581211d8dda4f85b37fdda6dd91b2678a19 Mon Sep 17 00:00:00 2001 From: Anthony Fu <anthonyfu117@hotmail.com> Date: Tue, 5 Mar 2024 02:18:49 +0100 Subject: [PATCH 88/89] feat: docs for `v-mark` --- guide/animations.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/guide/animations.md b/guide/animations.md index 5375e31..57cc2e1 100644 --- a/guide/animations.md +++ b/guide/animations.md @@ -239,7 +239,7 @@ You can override them to customize the transition effects in your custom stylesh For example, you can achieve the scaling up transitions by: ```css -// styles.css +/* styles.css */ .slidev-vclick-target { transition: all 500ms ease; @@ -267,6 +267,42 @@ To specify animations for only certain slide or layout Learn more about [customizing styles](/custom/directory-structure#style). +## Rough Markers + +> Available since v0.48.0 + +Slidev integrates [Rough Notation](https://github.com/linkstrifer/react-rough-notation) to allow marking or highlighting elements in your slides. + +### `v-mark` + +Rough Notation integrates comes with the `v-mark` directive. + +#### Type + +`v-mark.underline` for Underline mark, `v-mark.circle` for Circle mark, etc. Default to `underline` + +#### Color + +`v-mark.red` make the notation `red`. Supported builtin color themes from UnoCSS. For custom colors, use object syntax `v-mark="{ color: '#234' }"` + +#### Clicks + +`v-mark` works like `v-click` and will trigger after a click. Same as `v-click`, it allows you to pass a custom click value, like `v-mark="5"` or `v-mark="'+1'"`. + +#### Options + +Optionally you can pass an object to `v-mark` to specify the options, for example: + +```vue +<span v-mark="{ at: 5, color: '#234', type: 'circle' }"> +Important text +</span> +``` + +#### Preview + +<video src="https://github.com/slidevjs/slidev/assets/11247099/c840340c-0aa1-4cde-b228-e6c67e5f6879" rounded-lg shadow controls></video> + ## Motion Slidev has [@vueuse/motion](https://motion.vueuse.org/) built-in. You can use the `v-motion` directive to any elements to make apply motion on them. For example From 4ee072e055e04965fad621e5941c6905ef2a2be0 Mon Sep 17 00:00:00 2001 From: Anthony Fu <anthonyfu117@hotmail.com> Date: Tue, 5 Mar 2024 02:25:41 +0100 Subject: [PATCH 89/89] docs: update magic move docs --- guide/syntax.md | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/guide/syntax.md b/guide/syntax.md index c3fefda..0606cfa 100644 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -123,10 +123,10 @@ function add( ``` ~~~ -You can enable line number to all slides by setting `lineNumbers: true` on the config or enable each code block individually by setting `lines:true`. You can also set the starting line for each code block and highlight the lines accordingly, defaults to 1: +You can enable line number to all slides by setting `lineNumbers: true` on the config or enable each code block individually by setting `lines: true`. You can also set the starting line for each code block and highlight the lines accordingly, defaults to 1: ~~~md -```ts {6,7}{lines:true, startLine:5} +```ts {6,7}{lines:true,startLine:5} function add( a: Ref<number> | number, b: Ref<number> | number @@ -218,20 +218,40 @@ const count = ref(0) > Available since v0.48 -Shiki Magic Move enables you to have granular transition between code changes like Keynote's Magic Move. You can check [this demo](https://shiki-magic-move.netlify.app/) to see how it works. +[Shiki Magic Move](https://github.com/shikijs/shiki-magic-move) enables you to have granular transition between code changes, similar to Keynote's Magic Move. You can check [the playground](https://shiki-magic-move.netlify.app/) to see how it works. In Slidev, we bind it to the [clicks system](/guide/animations#click-animations). The syntax is wrap multiple code blocks representing each steps with <code>````md magic-move</code> (mind it's **4** backticks), this will be transformed into one code block, that morphing to each steps as you click. ~~~~md ````md magic-move -```ts +```js console.log(`Step ${1}`) ``` -```ts +```js console.log(`Step ${1 + 1}`) ``` ```ts -console.log(`Step ${3}`) +console.log(`Step ${3}` as string) +``` +```` +~~~~ + +It's also possible mix Magic Move with [line highlighting](#line-highlighting), for example: + +~~~~md +````md magic-move {at:4} // [!code hl] +```js {*|1|2-5} // [!code hl] +let count = 1 +function add() { + count++ +} +``` + +Non-code blocks in between as ignored, you can put some comments. + +```js +let count = 1 +const add = () => count += 1 ``` ```` ~~~~