From 7edf081fb73f20a82ce5f6bdd2abe023e2943767 Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 30 Apr 2026 11:17:00 +0200 Subject: [PATCH 01/10] =?UTF-8?q?docs:=20traduction=20compl=C3=A8te=20de?= =?UTF-8?q?=20la=20documentation=20Slidev=20en=20fran=C3=A7ais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Traduction de tous les fichiers .md (guide/, features/, custom/, builtin/, resources/) - Traduction des descriptions dans le frontmatter YAML - Traduction des commentaires dans les blocs de code - Traduction des fichiers de configuration .vitepress/ - Préservation de tous les liens, ancres, composants et URLs techniques --- .vitepress/addons.ts | 291 +++++++++++++++ .vitepress/config.ts | 165 +++++++++ .vitepress/customizations.ts | 70 ++++ .vitepress/pages.ts | 111 ++++++ .vitepress/showcases.ts | 254 ++++++++++++-- .vitepress/sidebar-gen.ts | 161 +++++++++ .vitepress/themes.ts | 415 ++++++++++++++++++---- .vitepress/utils.ts | 51 +++ builtin/cli.md | 97 +++++ builtin/components.md | 378 +++++++++++++++++--- builtin/layouts.md | 157 +++++---- custom/config-code-runners.md | 77 ++++ custom/config-context-menu.md | 38 ++ custom/config-fonts.md | 105 ++++++ custom/config-highlighter.md | 70 ++++ custom/config-katex.md | 7 +- custom/config-mermaid-renderer.md | 19 + custom/config-mermaid.md | 36 +- custom/config-monaco.md | 128 ++++--- custom/config-parser.md | 232 ++++++++++++ custom/config-routes.md | 28 ++ custom/config-shortcuts.md | 34 +- custom/config-transformers.md | 39 +++ custom/config-unocss.md | 46 +++ custom/config-vite.md | 82 +++-- custom/config-vue.md | 17 +- custom/directory-structure.md | 132 +++---- custom/index.md | 210 ++++++++--- features/block-frontmatter.md | 39 +++ features/build-with-pdf.md | 42 +++ features/bundle-remote-assets.md | 29 ++ features/canvas-size.md | 32 ++ features/click-marker.md | 31 ++ features/code-block-line-numbers.md | 32 ++ features/code-block-max-height.md | 32 ++ features/code-groups.md | 156 +++++++++ features/comark.md | 31 ++ features/direction-variant.md | 31 ++ features/draggable.md | 82 +++++ features/drawing.md | 74 ++++ features/eject-theme.md | 27 ++ features/frontmatter-merging.md | 49 +++ features/global-layers.md | 99 ++++++ features/icons.md | 62 ++++ features/import-snippet.md | 48 +++ features/importing-slides.md | 69 ++++ features/index.data.ts | 64 ++++ features/index.md | 102 ++++++ features/latex.md | 78 +++++ features/line-highlighting.md | 57 +++ features/mermaid.md | 37 ++ features/monaco-editor.md | 49 +++ features/monaco-run.md | 44 +++ features/monaco-write.md | 22 ++ features/notes-auto-ruby.md | 30 ++ features/og-image.md | 41 +++ features/plantuml.md | 26 ++ features/prettier-plugin.md | 59 ++++ features/recording.md | 28 ++ features/remote-access.md | 79 +++++ features/rough-marker.md | 46 +++ features/seo-meta.md | 36 ++ features/shiki-magic-move.md | 116 ++++++ features/side-editor.md | 17 + features/slide-hook.md | 33 ++ features/slide-scope-style.md | 44 +++ features/slot-sugar.md | 83 +++++ features/timer.md | 23 ++ features/transform-component.md | 29 ++ features/twoslash.md | 37 ++ features/vscode-extension.md | 103 ++++++ features/zoom-slide.md | 33 ++ guide/animations.md | 453 +++++++++++++++++++----- guide/component.md | 36 ++ guide/exporting.md | 234 ++++++++++++- guide/faq.md | 173 ++++----- guide/global-context.md | 165 +++++++++ guide/hosting.md | 268 ++++++++++---- guide/index.md | 201 +++++++---- guide/layout.md | 32 ++ guide/syntax.md | 524 +++++----------------------- guide/theme-addon.md | 62 ++++ guide/ui.md | 149 ++++++++ guide/why.md | 115 ++++-- guide/work-with-ai.md | 59 ++++ guide/write-addon.md | 48 +++ guide/write-layout.md | 43 +++ guide/write-theme.md | 113 ++++++ index.md | 13 +- resources/addon-gallery.md | 32 ++ resources/covers.md | 10 +- resources/learning.md | 19 +- resources/showcases.md | 10 + resources/theme-gallery.md | 32 ++ 94 files changed, 7236 insertions(+), 1286 deletions(-) create mode 100644 .vitepress/addons.ts create mode 100644 .vitepress/config.ts create mode 100644 .vitepress/customizations.ts create mode 100644 .vitepress/pages.ts mode change 100755 => 100644 .vitepress/showcases.ts create mode 100644 .vitepress/sidebar-gen.ts mode change 100755 => 100644 .vitepress/themes.ts create mode 100644 .vitepress/utils.ts create mode 100644 builtin/cli.md mode change 100755 => 100644 builtin/components.md mode change 100755 => 100644 builtin/layouts.md create mode 100644 custom/config-code-runners.md create mode 100644 custom/config-context-menu.md create mode 100644 custom/config-fonts.md create mode 100644 custom/config-highlighter.md mode change 100755 => 100644 custom/config-katex.md create mode 100644 custom/config-mermaid-renderer.md mode change 100755 => 100644 custom/config-mermaid.md mode change 100755 => 100644 custom/config-monaco.md create mode 100644 custom/config-parser.md create mode 100644 custom/config-routes.md mode change 100755 => 100644 custom/config-shortcuts.md create mode 100644 custom/config-transformers.md create mode 100644 custom/config-unocss.md mode change 100755 => 100644 custom/config-vite.md mode change 100755 => 100644 custom/config-vue.md mode change 100755 => 100644 custom/directory-structure.md mode change 100755 => 100644 custom/index.md create mode 100644 features/block-frontmatter.md create mode 100644 features/build-with-pdf.md create mode 100644 features/bundle-remote-assets.md create mode 100644 features/canvas-size.md create mode 100644 features/click-marker.md create mode 100644 features/code-block-line-numbers.md create mode 100644 features/code-block-max-height.md create mode 100644 features/code-groups.md create mode 100644 features/comark.md create mode 100644 features/direction-variant.md create mode 100644 features/draggable.md create mode 100644 features/drawing.md create mode 100644 features/eject-theme.md create mode 100644 features/frontmatter-merging.md create mode 100644 features/global-layers.md create mode 100644 features/icons.md create mode 100644 features/import-snippet.md create mode 100644 features/importing-slides.md create mode 100644 features/index.data.ts create mode 100644 features/index.md create mode 100644 features/latex.md create mode 100644 features/line-highlighting.md create mode 100644 features/mermaid.md create mode 100644 features/monaco-editor.md create mode 100644 features/monaco-run.md create mode 100644 features/monaco-write.md create mode 100644 features/notes-auto-ruby.md create mode 100644 features/og-image.md create mode 100644 features/plantuml.md create mode 100644 features/prettier-plugin.md create mode 100644 features/recording.md create mode 100644 features/remote-access.md create mode 100644 features/rough-marker.md create mode 100644 features/seo-meta.md create mode 100644 features/shiki-magic-move.md create mode 100644 features/side-editor.md create mode 100644 features/slide-hook.md create mode 100644 features/slide-scope-style.md create mode 100644 features/slot-sugar.md create mode 100644 features/timer.md create mode 100644 features/transform-component.md create mode 100644 features/twoslash.md create mode 100644 features/vscode-extension.md create mode 100644 features/zoom-slide.md mode change 100755 => 100644 guide/animations.md create mode 100644 guide/component.md mode change 100755 => 100644 guide/exporting.md mode change 100755 => 100644 guide/faq.md create mode 100644 guide/global-context.md mode change 100755 => 100644 guide/index.md create mode 100644 guide/layout.md mode change 100755 => 100644 guide/syntax.md create mode 100644 guide/theme-addon.md create mode 100644 guide/ui.md mode change 100755 => 100644 guide/why.md create mode 100644 guide/work-with-ai.md create mode 100644 guide/write-addon.md create mode 100644 guide/write-layout.md create mode 100644 guide/write-theme.md mode change 100755 => 100644 index.md create mode 100644 resources/addon-gallery.md mode change 100755 => 100644 resources/covers.md create mode 100644 resources/showcases.md create mode 100644 resources/theme-gallery.md diff --git a/.vitepress/addons.ts b/.vitepress/addons.ts new file mode 100644 index 0000000..ff3483c --- /dev/null +++ b/.vitepress/addons.ts @@ -0,0 +1,291 @@ +import type { ThemeInfo } from './themes' + +export type AddonInfo = Omit + +export const official: AddonInfo[] = [ + { + id: '', + link: '#', + name: 'Work in Progress', + description: '', + tags: [], + author: { + name: '', + }, + }, +] + +// Please add your addon to the end of the list. +export const community: AddonInfo[] = [ + { + id: 'slidev-addon-python-runner', + name: 'Python Runner', + description: 'Exécuter du code Python réel dans vos diapositives', + tags: ['Code runner'], + author: { + name: '_Kerman', + link: 'https://github.com/KermanX', + }, + repo: 'https://github.com/KermanX/slidev-addon-python-runner', + }, + { + id: 'slidev-addon-tldraw', + name: 'tldraw', + description: 'Intégrer des diagrammes tldraw directement dans Slidev, avec support d\'édition dans la diapositive', + tags: ['Integration', 'Diagram'], + author: { + name: 'Albert Brand', + link: 'https://github.com/AlbertBrand', + }, + repo: 'https://github.com/AlbertBrand/slidev-addon-tldraw', + }, + { + id: 'slidev-addon-react', + name: 'React Components', + description: 'Utiliser des composants React avec JSX/TSX dans vos présentations Slidev.', + tags: ['React', 'Component', 'Integration'], + repo: 'https://github.com/Ygilany/slidev-addon-react', + author: { + name: 'YGilany', + link: 'https://github.com/YGilany', + }, + }, + { + id: 'slidev-addon-typst', + name: 'Typst', + description: 'Addon Typst pour Slidev', + tags: ['Integration', 'Diagram'], + author: { + name: 'Shigma', + link: 'https://github.com/shigma', + }, + repo: 'https://github.com/shigma/slidev-addon-typst', + }, + { + id: 'slidev-addon-fancy-arrow', + name: 'Fancy Arrow', + description: 'Flèches dessinées à la main avec diverses options de style et de positionnement', + tags: ['Component'], + author: { + name: 'whitphx', + link: 'https://github.com/whitphx', + }, + repo: 'https://github.com/whitphx/slidev-addon-fancy-arrow', + }, + { + id: 'slidev-addon-sync', + name: 'Remote Sync', + description: 'Composant de synchronisation pour la construction statique Slidev utilisant un serveur SSE ou WS', + tags: ['Remote control', 'Navigation'], + author: { + name: 'Tony Cabaye', + link: 'https://github.com/tonai', + }, + repo: 'https://github.com/Smile-SA/slidev-addon-sync', + }, + { + id: 'slidev-addon-tikzjax', + name: 'tikzjax', + description: 'Compiler TikZ/Chemfig/... en SVG et les afficher dans Slidev', + tags: ['Integration', 'Diagram'], + author: { + name: 'Ethan Goh', + link: 'https://github.com/7086cmd', + }, + repo: 'https://github.com/7086cmd/slidev-addon-tikzjax', + }, + { + id: 'slidev-component-pager', + name: 'Pager', + description: 'Afficher la page actuelle et le nombre total de pages', + tags: ['Component', 'Navigation'], + author: { + name: 'Tony Cabaye', + link: 'https://github.com/tonai', + }, + repo: 'https://github.com/Smile-SA/slidev-component-pager', + }, + { + id: 'slidev-component-poll', + name: 'Poll and Quiz', + description: 'Composants de sondage et quiz pour Slidev', + tags: ['Component'], + author: { + name: 'Tony Cabaye', + link: 'https://github.com/tonai', + }, + repo: 'https://github.com/Smile-SA/slidev-component-poll', + }, + { + id: 'slidev-component-progress', + name: 'Progress', + description: 'Afficher une barre de progression interactive pour Slidev', + tags: ['Tool', 'Navigation'], + author: { + name: 'Tony Cabaye', + link: 'https://github.com/tonai', + }, + repo: 'https://github.com/Smile-SA/slidev-component-progress', + }, + { + id: 'slidev-component-scroll', + name: 'Mouse Scroll', + description: 'Utiliser la molette de la souris pour naviguer', + tags: ['Navigation'], + author: { + name: 'Tony Cabaye', + link: 'https://github.com/tonai', + }, + repo: 'https://github.com/Smile-SA/slidev-component-scroll', + }, + { + id: 'slidev-component-spotlight', + name: 'Spotlight', + description: 'Activer un projecteur pour surligner une région spécifique en maintenant une touche', + tags: ['Tool'], + author: { + name: 'Tony Cabaye', + link: 'https://github.com/tonai', + }, + repo: 'https://github.com/Smile-SA/slidev-component-spotlight', + }, + { + id: 'slidev-component-zoom', + name: 'Zooming', + description: 'Permettre le zoom dans les diapositives', + tags: ['Tool'], + author: { + name: 'Tony Cabaye', + link: 'https://github.com/tonai', + }, + repo: 'https://github.com/Smile-SA/slidev-component-zoom', + }, + { + id: 'slidev-addon-rabbit', + name: 'Rabbit', + description: 'Gestion du temps de présentation pour Slidev inspirée de Rabbit', + tags: ['Tool', 'Navigation'], + author: { + name: 'kaakaa', + link: 'https://github.com/kaakaa', + }, + repo: 'https://github.com/kaakaa/slidev-addon-rabbit', + }, + { + id: 'slidev-addon-stem', + name: 'STEM', + description: 'Addon Slidev pour les présentations scientifiques', + tags: ['Component', 'Layout'], + author: { + name: 'yutaka-shoji', + link: 'https://github.com/yutaka-shoji', + }, + repo: 'https://github.com/yutaka-shoji/slidev-addon-stem', + }, + { + id: 'slidev-addon-naive', + name: 'Naive UI', + description: 'Apporte les composants Naive UI dans Slidev', + tags: ['Component'], + author: { + name: 'Samuel Huang', + link: 'https://sghuang.com', + }, + repo: 'https://github.com/sghuang19/slidev-addon-naive', + }, + { + id: 'slidev-addon-hls-player', + name: 'HLS player', + description: 'Ajouter un lecteur vidéo basique propulsé par hls.js sur vos diapositives pour afficher des vidéos HTTP Live Streaming', + tags: ['hls', 'video'], + author: { + name: 'Albert Brand', + link: 'https://github.com/AlbertBrand', + }, + repo: 'https://github.com/AlbertBrand/slidev-addon-hls-player', + }, + { + id: 'slidev-addon-window-mockup', + name: 'Window Mockup', + description: 'Cadres de fenêtres stylisés', + tags: ['Component'], + author: { + name: 'whitphx', + link: 'https://github.com/whitphx', + }, + repo: 'https://github.com/whitphx/slidev-addon-window-mockup', + }, + { + id: 'slidev-addon-bpmn', + name: 'BPMN viewer', + description: 'Visualiser des fichiers BPMN dans vos diapositives', + tags: ['Component'], + author: { + name: 'emaarco', + link: 'https://github.com/emaarco', + }, + repo: 'https://github.com/emaarco/slidev-addon-bpmn', + }, + { + id: 'slidev-addon-dmn', + name: 'DMN viewer', + description: 'Afficher des tableaux de décision DMN et des diagrammes DRD dans vos diapositives', + tags: ['Component'], + author: { + name: 'emaarco', + link: 'https://github.com/emaarco', + }, + repo: 'https://github.com/emaarco/slidev-addon-dmn', + }, + { + id: 'slidev-addon-p5', + name: 'Runner for p5js', + description: 'Afficher, modifier et exécuter des croquis p5js dans vos diapositives', + tags: ['Component', 'Code runner'], + author: { + name: 'mjvo', + link: 'https://github.com/mjvo', + }, + repo: 'https://github.com/mjvo/slidev-addon-p5', + }, + { + id: 'slidev-pane', + name: 'slidev-pane', + description: 'Présentateur de volets style PowerPoint pour Slidev avec vignettes de diapositives, navigation rapide et canevas principal zoomable.', + tags: ['Navigation'], + author: { + name: 'xunz', + link: 'https://github.com/xunz3', + }, + repo: 'https://github.com/xunz3/slidev-pane', + }, + { + id: 'slidev-agent', + name: 'slidev-agent', + description: 'Addon Slidev et CLI wrapper pour la création de diapositives propulsée par LangChain.', + tags: ['Component', 'Integration'], + author: { + name: 'Christian Bromann', + link: 'https://github.com/christian-bromann', + }, + repo: 'https://github.com/christian-bromann/slidev-agent', + }, + { + id: 'slidev-addon-animated-text', + name: 'Animated text', + description: 'Texte animé trait par trait avec n\'importe quelle police en utilisant tegaki.', + tags: ['Component'], + author: { + name: 'Andreas Taranetz', + link: 'https://andreas.taranetz.com/', + }, + repo: 'https://github.com/andreas-taranetz/slidev-addon-animated-text', + }, + // Ajoutez votre addon ici! + { + id: '', + link: 'https://github.com/slidevjs/slidev/edit/main/docs/.vitepress/addons.ts', + name: 'Votre addon?', + description: 'Cliquez ici pour soumettre votre addon :)', + }, +] diff --git a/.vitepress/config.ts b/.vitepress/config.ts new file mode 100644 index 0000000..83b6c16 --- /dev/null +++ b/.vitepress/config.ts @@ -0,0 +1,165 @@ +import type { DefaultTheme } from 'vitepress' +import { fileURLToPath } from 'node:url' +import { transformerTwoslash } from '@shikijs/vitepress-twoslash' +import { defineConfig } from 'vitepress' +import { groupIconMdPlugin } from 'vitepress-plugin-group-icons' +import { version } from '../package.json' +import Customizations from './customizations' +import { Advanced, BuiltIn, Guides, Resources } from './pages' +import { getSidebarObject } from './sidebar-gen' + +export const slidebars: DefaultTheme.SidebarItem[] = [ + { + text: 'Guide', + items: Guides, + }, + { + text: 'Avancé', + items: Advanced, + }, + { + text: 'Personnalisations', + items: Customizations, + }, + { + text: 'Intégré', + items: BuiltIn, + }, + { + text: 'Ressources', + items: Resources, + }, +] + +export default defineConfig({ + title: 'Slidev', + description: 'Diapositives de présentation pour développeurs', + head: [ + ['link', { rel: 'icon', type: 'image/png', href: '/favicon.png' }], + ['meta', { name: 'author', content: 'Anthony Fu' }], + ['meta', { property: 'og:title', content: 'Slidev' }], + ['meta', { property: 'og:image', content: 'https://sli.dev/og-image.png' }], + ['meta', { property: 'og:description', content: 'Diapositives de présentation pour développeurs' }], + ['meta', { name: 'twitter:card', content: 'summary_large_image' }], + ['meta', { name: 'twitter:creator', content: '@slidevjs' }], + ['meta', { name: 'twitter:image', content: 'https://sli.dev/og-image.png' }], + ['link', { rel: 'dns-prefetch', href: 'https://fonts.gstatic.com' }], + ['link', { rel: 'preconnect', crossorigin: 'anonymous', href: 'https://fonts.gstatic.com' }], + ['link', { href: 'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@200;400;500&family=Inter:wght@200;400;500;600', rel: 'stylesheet' }], + ], + markdown: { + theme: { + light: 'vitesse-light', + dark: 'vitesse-dark', + }, + async shikiSetup(shiki) { + await shiki.loadLanguage( + 'html', + 'xml', + 'vue', + 'markdown', + 'mermaid', + 'latex', + ) + }, + codeTransformers: [ + transformerTwoslash({ + twoslashOptions: { + // The @slidev/* installed in docs package are very old and should only be used in the homepage demo + vfsRoot: fileURLToPath(import.meta.url), + compilerOptions: { + resolveJsonModule: true, + moduleResolution: /* Bundler */ 100, + }, + }, + }), + ], + config(md) { + md.use(groupIconMdPlugin) + }, + }, + cleanUrls: true, + themeConfig: { + logo: '/logo.svg', + editLink: { + pattern: 'https://github.com/slidevjs/slidev/edit/main/docs/:path', + text: 'Suggérer des modifications sur cette page', + }, + + search: { + provider: 'local', + }, + + nav: [ + { + text: '📖 Guide', + items: [ + ...Guides, + { + text: 'Avancé', + items: Advanced, + }, + ], + }, + { + text: '✨ Fonctionnalités', + link: '/features/', + }, + { + text: 'Référence', + items: [ + { + text: 'Intégré', + items: BuiltIn, + }, + { + text: 'Personnaliser', + items: Customizations, + }, + ], + }, + { + text: 'Ressources', + items: Resources, + }, + ], + + socialLinks: [ + { icon: 'github', link: 'https://github.com/slidevjs/slidev' }, + { icon: 'twitter', link: 'https://twitter.com/slidevjs' }, + { icon: 'discord', link: 'https://chat.sli.dev' }, + ], + + sidebar: { + '/guide/': slidebars, + '/themes/': slidebars, + '/addons/': slidebars, + '/custom/': slidebars, + '/builtin/': slidebars, + '/resources/': slidebars, + // eslint-disable-next-line antfu/no-top-level-await + ...await getSidebarObject(), + '/features/': [], + '/': slidebars, + }, + + footer: { + message: 'Publié sous la licence MIT.', + copyright: 'Copyright © 2020-2025 Anthony Fu.', + }, + }, + + locales: { + root: { + label: `Français (v${version})`, + }, + zh: { + label: '简体中文', + link: 'https://cn.sli.dev/', + }, + ja: { + label: '日本語', + link: 'https://ja.sli.dev/', + }, + }, +}) diff --git a/.vitepress/customizations.ts b/.vitepress/customizations.ts new file mode 100644 index 0000000..6c51973 --- /dev/null +++ b/.vitepress/customizations.ts @@ -0,0 +1,70 @@ +export default [ + { + text: 'Configurations', + link: '/custom/', + }, + { + text: 'Structure des répertoires', + link: '/custom/directory-structure', + }, + { + text: 'Configurer le colorateur syntaxique', + link: '/custom/config-highlighter', + }, + { + text: 'Configurer Vite et les plugins', + link: '/custom/config-vite', + }, + { + text: 'Configurer l\'application Vue', + link: '/custom/config-vue', + }, + { + text: 'Configurer UnoCSS', + link: '/custom/config-unocss', + }, + { + text: 'Configurer les exécuteurs de code', + link: '/custom/config-code-runners', + }, + { + text: 'Configurer les transformateurs', + link: '/custom/config-transformers', + }, + { + text: 'Configurer Monaco', + link: '/custom/config-monaco', + }, + { + text: 'Configurer KaTeX', + link: '/custom/config-katex', + }, + { + text: 'Configurer Mermaid', + link: '/custom/config-mermaid', + }, + { + text: 'Configurer le rendu Mermaid', + link: '/custom/config-mermaid-renderer', + }, + { + text: 'Configurer les routes', + link: '/custom/config-routes', + }, + { + text: 'Configurer les raccourcis', + link: '/custom/config-shortcuts', + }, + { + text: 'Configurer le menu contextuel', + link: '/custom/config-context-menu', + }, + { + text: 'Configurer les polices', + link: '/custom/config-fonts', + }, + { + text: 'Configurer le pré-analyseur', + link: '/custom/config-parser', + }, +] diff --git a/.vitepress/pages.ts b/.vitepress/pages.ts new file mode 100644 index 0000000..36e2e55 --- /dev/null +++ b/.vitepress/pages.ts @@ -0,0 +1,111 @@ +export const Guides = [ + { + text: 'Pourquoi Slidev', + link: '/guide/why', + }, + { + text: 'Pour commencer', + link: '/guide/', + }, + { + text: 'Guide de syntaxe', + link: '/guide/syntax', + }, + { + text: 'Interface utilisateur', + link: '/guide/ui', + }, + { + text: 'Animations', + link: '/guide/animations', + }, + { + text: 'Thèmes et addons', + link: '/guide/theme-addon', + }, + { + text: 'Composants', + link: '/guide/component', + }, + { + text: 'Mises en page', + link: '/guide/layout', + }, + { + text: 'Exporter', + link: '/guide/exporting', + }, + { + text: 'Hébergement', + link: '/guide/hosting', + }, + { + text: 'Travailler avec l\'IA', + link: '/guide/work-with-ai', + }, + { + text: 'FAQ', + link: '/guide/faq', + }, +] + +export const BuiltIn = [ + { + text: 'CLI', + link: '/builtin/cli', + }, + { + text: 'Composants', + link: '/builtin/components', + }, + { + text: 'Mises en page', + link: '/builtin/layouts', + }, +] + +export const Advanced = [ + { + text: 'Contexte global', + link: '/guide/global-context', + }, + { + text: 'Écrire des mises en page', + link: '/guide/write-layout', + }, + { + text: 'Écrire des thèmes', + link: '/guide/write-theme', + }, + { + text: 'Écrire des addons', + link: '/guide/write-addon', + }, +] + +export const Resources = [ + { + text: 'Exemples de réalisations', + link: '/resources/showcases', + }, + { + text: 'Galerie de thèmes', + link: '/resources/theme-gallery', + }, + { + text: 'Galerie d\'addons', + link: '/resources/addon-gallery', + }, + { + text: 'Ressources d\'apprentissage', + link: '/resources/learning', + }, + { + text: 'Couvertures sélectionnées', + link: '/resources/covers', + }, + { + text: 'Notes de version', + link: 'https://github.com/slidevjs/slidev/releases', + }, +] diff --git a/.vitepress/showcases.ts b/.vitepress/showcases.ts old mode 100755 new mode 100644 index 7c4c6fa..fd4d1b6 --- a/.vitepress/showcases.ts +++ b/.vitepress/showcases.ts @@ -20,8 +20,8 @@ export const showcases: ShowCaseInfo[] = [ name: 'Anthony Fu', link: 'https://github.com/antfu', }, - slidesLink: 'https://sli.dev/demo/composable-vue', - sourceLink: 'https://github.com/antfu/talks/tree/master/2021-04-29', + slidesLink: 'https://talks.antfu.me/2021/composable-vue/', + sourceLink: 'https://github.com/antfu/talks/tree/main/2021-04-29', at: 'VueDay 2021', datetime: '2021-04-29', }, @@ -49,29 +49,29 @@ export const showcases: ShowCaseInfo[] = [ at: 'Enter.js Vue Day', datetime: '2021-06-15', }, - { - title: 'Simply Publish Your Package to npm', - author: { - name: 'Lucky Dewa Satria', - link: 'https://github.com/lucky401', - }, - at: 'Weekly sharing', - slidesLink: 'https://masukin.link/talks/simply-publish-your-package-to-npm', - cover: 'https://masukin.link/talks-cover-npm.png', - datetime: '2021-06-12', - }, - { - title: 'Create Icon Package With Vue and Rollup', - author: { - name: 'Lucky Dewa Satria', - link: 'https://github.com/lucky401', - }, - at: 'Weekly Sharing', - slidesLink: 'https://masukin.link/talks/create-icon-package-with-vue-and-rollup', - sourceLink: 'https://github.com/lucky401/Create-Icon-Package-With-Vue-and-Rollup', - cover: 'https://masukin.link/talks-cover-create-icon-package-with-vue-and-rollup.png', - datetime: '2021-06-19', - }, + // { + // title: 'Simply Publish Your Package to npm', + // author: { + // name: 'Lucky Dewa Satria', + // link: 'https://github.com/lucky401', + // }, + // at: 'Weekly sharing', + // slidesLink: 'https://masukin.link/talks/simply-publish-your-package-to-npm', + // cover: 'https://masukin.link/talks-cover-npm.png', + // datetime: '2021-06-12', + // }, + // { + // title: 'Create Icon Package With Vue and Rollup', + // author: { + // name: 'Lucky Dewa Satria', + // link: 'https://github.com/lucky401', + // }, + // at: 'Weekly Sharing', + // slidesLink: 'https://masukin.link/talks/create-icon-package-with-vue-and-rollup', + // sourceLink: 'https://github.com/lucky401/Create-Icon-Package-With-Vue-and-Rollup', + // cover: 'https://masukin.link/talks-cover-create-icon-package-with-vue-and-rollup.png', + // datetime: '2021-06-19', + // }, { title: 'BeAPT', author: { @@ -115,7 +115,7 @@ export const showcases: ShowCaseInfo[] = [ name: 'Alexander Eble', link: 'https://github.com/alexanderdavide', }, - slidesLink: 'https://git-most-wanted.alex-eble.de', + slidesLink: 'https://alexeble.de/talks/git-most-wanted/', sourceLink: 'https://github.com/alexanderdavide/git-most-wanted', at: 'Internal Tech Talk', datetime: '2022-03-11', @@ -132,15 +132,205 @@ export const showcases: ShowCaseInfo[] = [ at: 'OpenFunction Tutorial Sharing', datetime: '2022-05-08', }, - // Add yours here! { - title: 'Yours?', + title: 'Is it Okay to Pursue Functional Programming on Frontend?', + author: { + name: 'Minsu Kim , Changhui Lee', + }, + at: '2022 JSConf Korea', + slidesLink: 'https://moonlit-nougat-422445.netlify.app/1', + sourceLink: 'https://github.com/alstn2468/2022-jsconf-presentation', + cover: 'https://raw.githubusercontent.com/alstn2468/2022-jsconf-presentation/main/public/images/og.png', + datetime: '2022-09-16', + }, + { + title: 'Blazing slidev ppt template with naive-ui', + author: { + name: 'godkun', + }, + at: 'personal sharing', + slidesLink: 'https://ppt.godkun.top', + sourceLink: 'https://github.com/godkun/ppt-template', + cover: 'https://github.com/godkun/ppt-template/raw/main/public/show.gif', + datetime: '2022-10-24', + }, + { + title: 'Building a Polite Popup with Nuxt 3', + author: { + name: 'Michael Hoffmann', + link: 'https://github.com/mokkapps', + }, + at: 'Vue.js Nation 2023', + slidesLink: 'https://vuejsnation-2023-talk-polite-popup.netlify.app', + sourceLink: 'https://github.com/Mokkapps/vuejsnation-2023-lightning-talk-polite-popup-nuxt-3-slides', + cover: 'https://raw.githubusercontent.com/Mokkapps/vuejsnation-2023-lightning-talk-polite-popup-nuxt-3-slides/main/screenshots/001.png', + datetime: '2023-01-25', + }, + { + title: 'Dev Environment as Code', + cover: 'https://cdn.jsdelivr.net/gh/alexanderdavide/dev-environment-as-code@assets/slides-export/001.png', + author: { + name: 'Alexander Eble', + link: 'https://github.com/alexanderdavide', + }, + slidesLink: 'https://alexeble.de/talks/dev-environment-as-code/', + sourceLink: 'https://github.com/alexanderdavide/dev-environment-as-code', + at: 'Internal Tech Talk', + datetime: '2022-12-01', + }, + { + title: 'Exploring Social Engineering', + cover: 'https://raw.githubusercontent.com/zyf722/exploring-social-engineering-slides/main/assets/Screenshot_Cover.png', + author: { + name: 'zyf722', + link: 'https://github.com/zyf722', + }, + slidesLink: 'https://zyf722.github.io/exploring-social-engineering-slides/', + sourceLink: 'https://github.com/zyf722/exploring-social-engineering-slides', + at: 'Presentation on Social Engineering in Computers in Society class', + datetime: '2023-10-20', + }, + { + title: 'Diablo Health Orb Shader', + author: { + name: 'SuneBear', + link: 'https://github.com/sunebear', + }, + at: 'rctAI Sessions', + slidesLink: 'https://rct-ai.github.io/frontend-slides/diablo-health-orb-shader/', + sourceLink: 'https://github.com/rct-ai/frontend-slides', + cover: 'https://github-production-user-asset-6210df.s3.amazonaws.com/7693264/284304324-db973b4c-a043-4644-932c-826169a1b4d8.gif', + datetime: '2022-09-01', + }, + { + title: 'Comparison of Packaging Tools in 2023', + author: { + name: 'Peacock (Yoichi Takai)', + link: 'https://p3ac0ck.net', + }, + at: 'PyCon APAC 2023', + slidesLink: 'https://slides.p3ac0ck.net/pyconapac2023/1', + sourceLink: 'https://github.com/peacock0803sz/slidev-slides/blob/7d41aa5e89ad8627cb68ae2cdbfe1681017b0408/talks/pyconapac2023/pyconapac2023.md', + cover: 'https://slides.p3ac0ck.net/pyconapac2023/cover.png', + datetime: '2023-10-28', + }, + { + title: 'How Rust error handling ease web development', + author: { + name: 'Nguyễn Hồng Quân', + link: 'https://quan.hoabinh.vn', + }, + at: 'FOSSASIA Summit 2024', + slidesLink: 'https://talk.quan.hoabinh.vn/rust-error-handling-ease-web-dev/', + sourceLink: 'https://hongquan@bitbucket.org/hongquan/rust-error-handling-ease-web-dev', + cover: 'https://i.imgur.com/2eBJofY.png', + datetime: '2024-04-10', + }, + { + title: 'Sit Back and Relax with Fault Awareness and Robust Instant Recovery for Large Scale AI Workloads', + author: { + name: 'Neko', + link: 'https://github.com/nekomeowww', + }, + at: 'KubeCon 2024 China', + slidesLink: 'https://talks.ayaka.io/nekoayaka/2024-08-21-kubecon-hk/', + sourceLink: 'https://github.com/nekomeowww/talks/tree/main/packages/2024-08-21-kubecon-hk', + cover: 'https://raw.githubusercontent.com/BaizeAI/talks/main/packages/2024-08-21-kubecon-hk/public/screenshot.png', + datetime: '2024-08-21', + }, + { + title: 'Hacker Numerology', + author: { + name: 'HD Moore', + link: 'https://hdm.io', + }, + at: 'LASCON 2024', + slidesLink: 'https://hdm.io/decks/2024-LASCON-Numerology/', + sourceLink: 'https://github.com/hdm/decks-2024-lascon-numerology.git', + cover: 'https://raw.githubusercontent.com/hdm/decks-2024-lascon-numerology/refs/heads/main/screenshot.png', + datetime: '2024-10-25', + }, + { + title: 'Python Zero To Hero - Episode 1', + author: { + name: 'Kareim Tarek', + link: 'https://kareimgazer.github.io/', + }, + at: 'Kareem Kreates YouTube Channel', + slidesLink: 'https://kareimgazer.github.io/py-intro/', + sourceLink: 'https://github.com/KareimGazer/py-intro', + cover: 'https://i.ytimg.com/vi/hVMaPBrWvAo/hqdefault.jpg', + datetime: '2025-01-12', + }, + { + title: 'Taming Dependency Chaos for LLM in K8s', + author: { + name: 'Neko', + link: 'https://github.com/nekomeowww', + }, + at: 'KubeCon 2025 China', + slidesLink: 'https://baizeai.github.io/talks/2025-06-11-kubecon-hk/', + sourceLink: 'https://github.com/BaizeAI/talks/tree/main/packages/2025-06-11-kubecon-hk', + cover: 'https://raw.githubusercontent.com/BaizeAI/talks/main/packages/2025-06-11-kubecon-hk/public/screenshot.png', + datetime: '2025-06-11', + }, + { + title: 'Single Image Super-Resolution Based on Capsule Neural Networks', + author: { + name: 'George Corrêa de Araújo', + link: 'https://george-gca.github.io/', + }, + at: 'Brazilian Conference on Intelligent Systems 2023', + slidesLink: 'https://george-gca.github.io/bracis_2023_srcaps/', + sourceLink: 'https://github.com/george-gca/bracis_2023_srcaps', + cover: 'https://raw.githubusercontent.com/george-gca/bracis_2023_srcaps/refs/heads/main/cover.png', + datetime: '2023-09-27', + }, + { + title: 'Threat Modeling', + author: { + name: 'guisso', + link: 'https://github.com/fguisso', + }, + at: 'OWASP Meetup', + slidesLink: 'https://guisso.dev/talks/threat-modeling', + sourceLink: 'https://github.com/fguisso/talks/tree/main/slides/threat-modeling', + cover: 'https://guisso.dev/posts/threat-modeling-intro/featured-threat-modeling_hu12396ec5bf9ecba1dda33f1443a5eb10_76776_600x0_resize_box_3.png', + datetime: '2023-09-22', + }, + { + title: 'A 14-year journey developing nCine, an open-source 2D game framework', + author: { + name: 'Angelo Theodorou', + link: 'https://encelo.github.io', + }, + at: '/dev/games/2025', + slidesLink: 'https://encelo.github.io/nCine_14Years_Presentation/', + sourceLink: 'https://github.com/encelo/nCine_14Years_Presentation', + cover: 'https://i.imgur.com/AbTdfhg.png', + datetime: '2025-06-05', + }, + { + title: 'Reverse Engineering Denuvo in Hogwarts Legacy', + author: { + name: 'Maurice Heumann', + link: 'https://momo5502.com', + }, + at: 'Navaja Negra 2025', + slidesLink: 'https://momo5502.com/slides/denuvo', + sourceLink: 'https://github.com/momo5502/denuvo-slides', + cover: 'https://raw.githubusercontent.com/momo5502/denuvo-slides/refs/heads/master/images/preview.png', + datetime: '2025-10-03', + }, + // Ajoutez votre présentation ici! + { + title: 'Votre présentation?', author: { name: '', }, - at: 'Submit your talk/presentation to be list here!', - slidesLink: 'https://github.com/slidevjs/docs/edit/main/.vitepress/showcases.ts', + at: 'Soumettez votre présentation pour être listé ici !', + slidesLink: 'https://github.com/slidevjs/slidev/edit/main/docs/.vitepress/showcases.ts', cover: `${import.meta.env.BASE_URL}theme-placeholder.png`, - datetime: '2021-04-29', + datetime: '2020-1-1', }, -] +].sort((a, b) => new Date(b.datetime).getTime() - new Date(a.datetime).getTime()) diff --git a/.vitepress/sidebar-gen.ts b/.vitepress/sidebar-gen.ts new file mode 100644 index 0000000..eb425fe --- /dev/null +++ b/.vitepress/sidebar-gen.ts @@ -0,0 +1,161 @@ +import type { DefaultTheme } from 'vitepress' +import { join } from 'node:path' +import { fileURLToPath } from 'node:url' +import fg from 'fast-glob' +import graymatter from 'gray-matter' + +const root = fileURLToPath(new URL('../../', import.meta.url)) + +const RE_HEADING1 = /^#\s+(.*)/m +const RE_HASH_FRAGMENT = /#.*$/ + +interface ParsedFile { + filepath: string + path: string + matter: graymatter.GrayMatterFile + title: string +} + +function parseFile(file: string) { + const filepath = join(root, file) + const path = file.replace('docs/', '').replace('.md', '') + const matter = graymatter.read(filepath) + const title = matter.data.title || matter.content.match(RE_HEADING1)?.[1] || path + return { + filepath, + path, + matter, + title, + } +} + +export async function getSidebarObject() { + const map: Record = {} + + const parsedFeatures: ParsedFile[] = await fg([ + 'docs/features/*.md', + ], { + onlyFiles: true, + cwd: root, + }) + .then(files => files.map(parseFile)) + + const parsedGuides: ParsedFile[] = await fg([ + 'docs/guide/*.md', + ], { + onlyFiles: true, + cwd: root, + }) + .then(files => files.map(parseFile)) + + const parsedCustoms: ParsedFile[] = await fg([ + 'docs/custom/*.md', + ], { + onlyFiles: true, + cwd: root, + }) + .then(files => files.map(parseFile)) + + parsedFeatures.forEach(({ matter, path }) => { + const items: DefaultTheme.SidebarItem[] = [ + { + text: 'Retour à', + items: [ + { + text: 'Toutes les fonctionnalités', + link: '/features', + }, + ], + }, + ] + + function findParsed(related: string) { + related = related.replace(RE_HASH_FRAGMENT, '') + const feature = parsedFeatures.find(file => file.path === related) + if (feature) { + return { + type: 'features', + item: feature, + } + } + const guide = parsedGuides.find(file => file.path === related) + if (guide) { + return { + type: 'guide', + item: guide, + } + } + const custom = parsedCustoms.find(file => file.path === related) + if (custom) { + return { + type: 'custom', + item: custom, + } + } + return undefined + } + + function frontmatterToSidebarItem(path: string | Record): DefaultTheme.SidebarItem[] { + if (typeof path === 'string') { + const match = findParsed(path) + if (match?.type === 'features') { + return [{ + text: `✨ ${match.item.title}`, + link: `/${path}`, + }] + } + if (match?.type === 'guide') { + return [{ + text: `📖 ${match.item.title}`, + link: `/${path}`, + }] + } + if (match?.type === 'custom') { + return [{ + text: `🛠️ ${match.item.title}`, + link: `/${path}`, + }] + } + console.warn(`Dependent file not found: ${path}`) + return [{ + text: path, + link: `/${path}`, + }] + } + else { + return Object.entries(path).map(([text, link]) => ({ + text, + link, + })) + } + } + + if (matter.data.depends) { + items.push({ + text: 'Dépend de', + items: matter.data.depends.flatMap(frontmatterToSidebarItem), + }) + } + + if (matter.data.relates) { + items.push({ + text: 'Lié à', + items: matter.data.relates.flatMap(frontmatterToSidebarItem), + }) + } + + const derives = matter.data.derives + ?? parsedFeatures.filter(f => f.matter.data.depends?.includes(path)).map(f => f.path) + + if (derives.length) { + items.push({ + text: 'Dérive de', + items: derives.flatMap(frontmatterToSidebarItem), + }) + } + + map[`/${path}`] = items + }) + + return map +} diff --git a/.vitepress/themes.ts b/.vitepress/themes.ts old mode 100755 new mode 100644 index 6e504da..dcb0216 --- a/.vitepress/themes.ts +++ b/.vitepress/themes.ts @@ -1,29 +1,22 @@ -export type Tag = - | 'official' - | 'dark' - | 'light' - | 'colorful' - | 'minimalism' - export interface ThemeInfo { id: string name: string description: string previews: string[] repo?: string - author: { + author?: { name: string link?: string } link?: string - tags?: Tag[] + tags?: string[] } export const official: ThemeInfo[] = [ { id: '@slidev/theme-default', name: 'Default', - description: 'The minimalism default theme for Slidev', + description: 'Le thème minimaliste par défaut de Slidev', author: { name: 'Anthony Fu', link: 'https://github.com/antfu', @@ -45,7 +38,7 @@ export const official: ThemeInfo[] = [ { id: '@slidev/theme-seriph', name: 'Seriph', - description: 'A more formal looking theme using Serif fonts', + description: 'Un thème plus formel utilisant des polices Serif', author: { name: 'Anthony Fu', link: 'https://github.com/antfu', @@ -67,7 +60,7 @@ export const official: ThemeInfo[] = [ { id: '@slidev/theme-apple-basic', name: 'Apple Basic', - description: 'Inspired by the Basic Black/White theme from Apple Keynote', + description: 'Inspiré du thème Basic Black/White d\'Apple Keynote', author: { name: 'Jeremy Meissner', link: 'https://github.com/JeremyMeissner', @@ -89,7 +82,7 @@ export const official: ThemeInfo[] = [ { id: '@slidev/theme-bricks', name: 'Bricks', - description: 'Building bricks', + description: 'Briques de construction', author: { name: 'iiiiiiinès', link: 'https://github.com/iiiiiiines', @@ -108,7 +101,7 @@ export const official: ThemeInfo[] = [ { id: '@slidev/theme-shibainu', name: 'Shibainu', - description: 'Meow!', + description: 'Miaou !', author: { name: 'iiiiiiinès', link: 'https://github.com/iiiiiiines', @@ -126,31 +119,12 @@ export const official: ThemeInfo[] = [ }, ] +// Please add your theme to the end of the list. export const community: ThemeInfo[] = [ - { - id: 'slidev-theme-flayyer', - name: 'Flayyer', - description: 'This theme is inspired by the layout of Flayyer and the way that it works.', - author: { - name: 'Daniel Esteves', - link: 'https://github.com/danestves', - }, - repo: 'https://github.com/danestves/slidev-theme-flayyer', - previews: [ - 'https://i.imgur.com/grKiGIK.png', - 'https://i.imgur.com/tAvcf5S.png', - 'https://i.imgur.com/mj42LcL.png', - 'https://i.imgur.com/41QWv3c.png', - ], - tags: [ - 'dark', - 'light', - ], - }, { id: 'slidev-theme-geist', name: 'Vercel', - description: 'A theme based on Vercel\'s design system.', + description: 'Un thème basé sur le système de design de Vercel.', author: { name: 'Nico Bachner', link: 'https://github.com/nico-bachner', @@ -171,7 +145,7 @@ export const community: ThemeInfo[] = [ { id: 'slidev-theme-light-icons', name: 'Light Icons', - description: 'A simple, light and elegant theme for Slidev, combined together with creative layouts, custom components & fonts', + description: 'Un thème simple, léger et élégant pour Slidev, combinant des mises en page créatives, des composants personnalisés et des polices', author: { name: 'Pulkit Aggarwal', link: 'https://github.com/BashCloud', @@ -195,18 +169,18 @@ export const community: ThemeInfo[] = [ { id: 'slidev-theme-eloc', name: 'Eloc', - description: 'Focus on writing, present in a concise style.', + description: 'Concentrez-vous sur l\'écriture, présentez dans un style concis.', author: { name: 'Amio', link: 'https://github.com/amio', }, repo: 'https://github.com/zthxxx/slides/tree/master/packages/slidev-theme-eloc', previews: [ - 'https://cdn.jsdelivr.net/gh/zthxxx/slides@master/packages/slidev-theme-eloc/screenshot/01.png', - 'https://cdn.jsdelivr.net/gh/zthxxx/slides@master/packages/slidev-theme-eloc/screenshot/02.png', - 'https://cdn.jsdelivr.net/gh/zthxxx/slides@master/packages/slidev-theme-eloc/screenshot/03.png', - 'https://cdn.jsdelivr.net/gh/zthxxx/slides@master/packages/slidev-theme-eloc/screenshot/04.png', - 'https://cdn.jsdelivr.net/gh/zthxxx/slides@master/packages/slidev-theme-eloc/screenshot/05.png', + 'https://media.githubusercontent.com/media/zthxxx/slides/refs/heads/master/packages/slidev-theme-eloc/screenshot/01.png', + 'https://media.githubusercontent.com/media/zthxxx/slides/refs/heads/master/packages/slidev-theme-eloc/screenshot/02.png', + 'https://media.githubusercontent.com/media/zthxxx/slides/refs/heads/master/packages/slidev-theme-eloc/screenshot/03.png', + 'https://media.githubusercontent.com/media/zthxxx/slides/refs/heads/master/packages/slidev-theme-eloc/screenshot/04.png', + 'https://media.githubusercontent.com/media/zthxxx/slides/refs/heads/master/packages/slidev-theme-eloc/screenshot/05.png', ], tags: [ 'dark', @@ -216,7 +190,7 @@ export const community: ThemeInfo[] = [ { id: 'slidev-theme-purplin', name: 'Purplin', - description: 'Theme with bar bottom component. Based on purple color', + description: 'Thème avec composant de barre inférieure. Basé sur la couleur violette', author: { name: 'Mauricio Martínez', link: 'https://github.com/moudev', @@ -236,9 +210,9 @@ export const community: ThemeInfo[] = [ { id: 'slidev-theme-unicorn', name: 'Unicorn', - description: 'Based on Dawntraoz website design', + description: 'Basé sur le design du site web Dawntraoz', author: { - name: 'Alba Silvente (dawntraoz)', + name: 'Alba Silvente', link: 'https://github.com/dawntraoz', }, repo: 'https://github.com/dawntraoz/slidev-theme-unicorn', @@ -256,7 +230,7 @@ export const community: ThemeInfo[] = [ { id: 'slidev-theme-zhozhoba', name: 'Zhozhoba', - description: 'A zhozhoba theme for Slidev', + description: 'Un thème zhozhoba pour Slidev', author: { name: 'Bogenbai Bayzharassov', link: 'https://github.com/thatoranzhevyy', @@ -277,12 +251,12 @@ export const community: ThemeInfo[] = [ { id: 'slidev-theme-penguin', name: 'Penguin', - description: 'A Penguin theme for Slidev', + description: 'Un thème Pingouin pour Slidev', author: { - name: 'Alvaro Saburido (alvarosaburido)', - link: 'https://github.com/alvarosaburido', + name: 'Alvaro Saburido', + link: 'https://github.com/alvarosabu', }, - repo: 'https://github.com/alvarosaburido/slidev-theme-penguin', + repo: 'https://github.com/alvarosabu/slidev-theme-penguin', previews: [ 'https://cdn.jsdelivr.net/gh/alvarosaburido/slidev-theme-penguin@master/screenshots/dark/01.png', 'https://cdn.jsdelivr.net/gh/alvarosaburido/slidev-theme-penguin@master/screenshots/light/02.png', @@ -297,7 +271,7 @@ export const community: ThemeInfo[] = [ { id: 'slidev-theme-vuetiful', name: 'Vuetiful', - description: 'A Vue-inspired theme for Slidev', + description: 'Un thème inspiré de Vue pour Slidev', author: { name: 'Thorsten Lünborg', link: 'https://github.com/LinusBorg', @@ -317,7 +291,7 @@ export const community: ThemeInfo[] = [ { id: 'slidev-theme-takahashi', name: 'Takahashi', - description: 'A simple theme for Slidev', + description: 'Un thème simple pour Slidev', author: { name: 'Percy M.', link: 'https://github.com/kecrily', @@ -339,7 +313,7 @@ export const community: ThemeInfo[] = [ { id: 'slidev-theme-academic', name: 'Academic', - description: 'Academic presentations with Slidev made simple', + description: 'Présentations académiques avec Slidev simplifiées', author: { name: 'Alexander Eble', link: 'https://github.com/alexanderdavide', @@ -359,15 +333,338 @@ export const community: ThemeInfo[] = [ 'light', ], }, - // Add yours here! { - id: '', - link: 'https://github.com/slidevjs/docs/edit/main/.vitepress/themes.ts', - name: 'Yours?', - description: 'Submit your theme to be list here!', + id: 'slidev-theme-mokkapps', + name: 'Mokkapps', + description: 'Un thème pour ma marque personnelle « Mokkapps »', + author: { + name: 'Michael Hoffmann', + link: 'https://github.com/mokkapps', + }, + repo: 'https://github.com/mokkapps/slidev-theme-mokkapps', + previews: [ + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/001.png', + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/002.png', + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/003.png', + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/004.png', + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/005.png', + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/006.png', + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/007.png', + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/008.png', + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/009.png', + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/010.png', + 'https://cdn.jsdelivr.net/gh/mokkapps/slidev-theme-mokkapps@master/screenshots/dark/011.png', + ], + tags: [ + 'dark', + 'light', + ], + }, + { + id: 'slidev-theme-the-unnamed', + name: 'The unnamed', + description: 'Un thème basé sur le thème VS Code The unnamed', + 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', + ], + }, + { + id: 'slidev-theme-dracula', + name: 'Dracula', + description: 'L\'un des meilleurs thèmes sombres rencontre Slidev', + author: { + name: 'JD Solanki', + link: 'https://github.com/jd-solanki', + }, + repo: 'https://github.com/jd-solanki/slidev-theme-dracula', + previews: [ + 'https://cdn.jsdelivr.net/gh/jd-solanki/slidev-theme-dracula/screenshots/screenshot-1.png', + 'https://cdn.jsdelivr.net/gh/jd-solanki/slidev-theme-dracula/screenshots/screenshot-2.png', + 'https://cdn.jsdelivr.net/gh/jd-solanki/slidev-theme-dracula/screenshots/screenshot-3.png', + 'https://cdn.jsdelivr.net/gh/jd-solanki/slidev-theme-dracula/screenshots/screenshot-4.png', + 'https://cdn.jsdelivr.net/gh/jd-solanki/slidev-theme-dracula/screenshots/screenshot-5.png', + ], + tags: [ + 'dark', + 'minimalism', + ], + }, + { + id: 'slidev-theme-frankfurt', + name: 'Frankfurt', + description: 'Inspiré du thème Beamer Frankfurt', + author: { + name: 'Mu-Tsun Tsai', + link: 'https://github.com/MuTsunTsai', + }, + repo: 'https://github.com/MuTsunTsai/slidev-theme-frankfurt', + previews: [ + 'https://cdn.jsdelivr.net/gh/MuTsunTsai/slidev-theme-frankfurt/screenshots/01.png', + 'https://cdn.jsdelivr.net/gh/MuTsunTsai/slidev-theme-frankfurt/screenshots/04.png', + 'https://cdn.jsdelivr.net/gh/MuTsunTsai/slidev-theme-frankfurt/screenshots/06.png', + 'https://cdn.jsdelivr.net/gh/MuTsunTsai/slidev-theme-frankfurt/screenshots/07.png', + ], + tags: [ + 'dark', + 'light', + ], + }, + { + id: 'slidev-theme-hep', + name: 'HEP', + description: 'Style académique pour la physique des hautes énergies', author: { - name: '', + name: 'Yulei ZHANG', + link: 'https://github.com/AvencastF', }, + repo: 'https://github.com/AvencastF/slidev-theme-hep', + previews: [ + 'https://cdn.jsdelivr.net/gh/avencastf/slidev-theme-hep/screenshot/001.png', + 'https://cdn.jsdelivr.net/gh/avencastf/slidev-theme-hep/screenshot/004.png', + 'https://cdn.jsdelivr.net/gh/avencastf/slidev-theme-hep/screenshot/006.png', + 'https://cdn.jsdelivr.net/gh/avencastf/slidev-theme-hep/screenshot/008.png', + ], + tags: [ + 'light', + ], + }, + { + id: 'slidev-theme-excali-slide', + name: 'Excali-slide', + description: 'Un thème basé sur Excalidraw avec un effet de surlignage animé', + author: { + name: 'Filip Hric', + link: 'https://github.com/filiphric', + }, + repo: 'https://github.com/filiphric/slidev-theme-excali-slide', + previews: [ + 'https://raw.githubusercontent.com/filiphric/excali-slide/main/images/default_slide.png', + 'https://raw.githubusercontent.com/filiphric/excali-slide/main/images/intro_slide.png', + ], + tags: [ + 'dark', + 'light', + ], + }, + { + id: 'slidev-theme-mint', + name: 'mint', + description: 'Thème Slidev Mint', + author: { + name: 'Alfatta Rezqa', + link: 'https://github.com/alfatta', + }, + repo: 'https://github.com/alfatta/slidev-theme-mint', + previews: [ + 'https://cdn.jsdelivr.net/gh/alfatta/slidev-theme-mint/screenshot/1.png', + 'https://cdn.jsdelivr.net/gh/alfatta/slidev-theme-mint/screenshot/2.png', + 'https://cdn.jsdelivr.net/gh/alfatta/slidev-theme-mint/screenshot/3.png', + 'https://cdn.jsdelivr.net/gh/alfatta/slidev-theme-mint/screenshot/4.png', + 'https://cdn.jsdelivr.net/gh/alfatta/slidev-theme-mint/screenshot/5.png', + 'https://cdn.jsdelivr.net/gh/alfatta/slidev-theme-mint/screenshot/6.png', + 'https://cdn.jsdelivr.net/gh/alfatta/slidev-theme-mint/screenshot/7.png', + 'https://cdn.jsdelivr.net/gh/alfatta/slidev-theme-mint/screenshot/8.png', + 'https://cdn.jsdelivr.net/gh/alfatta/slidev-theme-mint/screenshot/9.png', + ], + tags: [ + 'light', + 'mint', + 'green', + 'cool', + ], + }, + { + id: 'slidev-theme-neversink', + name: 'neversink', + description: 'Thème Slidev Neversink', + author: { + name: 'Todd M. Gureckis', + link: 'https://github.com/gureckis', + }, + repo: 'https://github.com/gureckis/slidev-theme-neversink', + previews: [ + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/2.png', + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/6.png', + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/8.png', + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/15.png', + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/18.png', + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/22.png', + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/26.png', + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/34.png', + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/36.png', + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/38.png', + 'https://gureckis.github.io/slidev-theme-neversink/screenshots/35.png', + ], + tags: [ + 'light', + 'academic', + 'education', + ], + }, + { + id: 'slidev-theme-ktym4a', + name: 'ktym4a', + description: 'Basé sur le design du site web ktym4a', + author: { + name: 'ktym4a', + link: 'https://github.com/ktym4a', + }, + repo: 'https://github.com/ktym4a/slidev-theme-ktym4a', + previews: [ + 'https://cdn.jsdelivr.net/gh/ktym4a/slidev-theme-ktym4a@main/example-export/rotation/0.png', + 'https://cdn.jsdelivr.net/gh/ktym4a/slidev-theme-ktym4a@main/example-export/rotation/1.png', + 'https://cdn.jsdelivr.net/gh/ktym4a/slidev-theme-ktym4a@main/example-export/rotation/6.png', + 'https://cdn.jsdelivr.net/gh/ktym4a/slidev-theme-ktym4a@main/example-export/rotation/7.png', + 'https://cdn.jsdelivr.net/gh/ktym4a/slidev-theme-ktym4a@main/example-export/rotation/8.png', + 'https://cdn.jsdelivr.net/gh/ktym4a/slidev-theme-ktym4a@main/example-export/single/0.png', + 'https://cdn.jsdelivr.net/gh/ktym4a/slidev-theme-ktym4a@main/example-export/single/1.png', + 'https://cdn.jsdelivr.net/gh/ktym4a/slidev-theme-ktym4a@main/example-export/single/3.png', + 'https://cdn.jsdelivr.net/gh/ktym4a/slidev-theme-ktym4a@main/example-export/single/4.png', + ], + tags: [ + 'dark', + 'catppuccin', + ], + }, + { + id: 'slidev-theme-nord', + name: 'Nord', + description: 'Basé sur le thème Nord', + author: { + name: 'David Ollerhead', + link: 'https://github.com/oller', + }, + repo: 'https://github.com/oller/slidev-theme-nord', + previews: [ + 'https://raw.githubusercontent.com/oller/slidev-theme-nord/HEAD/example-export/1.png', + 'https://raw.githubusercontent.com/oller/slidev-theme-nord/HEAD/example-export/2.png', + 'https://raw.githubusercontent.com/oller/slidev-theme-nord/HEAD/example-export/3.png', + 'https://raw.githubusercontent.com/oller/slidev-theme-nord/HEAD/example-export/4.png', + 'https://raw.githubusercontent.com/oller/slidev-theme-nord/HEAD/example-export/5.png', + 'https://raw.githubusercontent.com/oller/slidev-theme-nord/HEAD/example-export/6.png', + 'https://raw.githubusercontent.com/oller/slidev-theme-nord/HEAD/example-export/7.png', + ], + tags: [ + 'dark', + 'light', + 'nord', + ], + }, + { + id: 'slidev-theme-scholarly', + name: 'Scholarly', + description: 'Basé sur le thème Nord', + author: { + name: 'Jiaxin Peng', + link: 'https://github.com/jxpeng98', + }, + repo: 'https://github.com/jxpeng98/slidev-theme-scholarly', + previews: [ + 'https://raw.githubusercontent.com/jxpeng98/slidev-theme-scholarly/HEAD/images/themes/classic-blue/1.png', + 'https://raw.githubusercontent.com/jxpeng98/slidev-theme-scholarly/HEAD/images/themes/oxford/1.png', + 'https://raw.githubusercontent.com/jxpeng98/slidev-theme-scholarly/HEAD/images/themes/cambridge/1.png', + 'https://raw.githubusercontent.com/jxpeng98/slidev-theme-scholarly/HEAD/images/themes/princeton/1.png', + 'https://raw.githubusercontent.com/jxpeng98/slidev-theme-scholarly/HEAD/images/themes/classic-blue/2.png', + 'https://raw.githubusercontent.com/jxpeng98/slidev-theme-scholarly/HEAD/images/themes/classic-blue/3.png', + 'https://raw.githubusercontent.com/jxpeng98/slidev-theme-scholarly/HEAD/images/themes/classic-blue/4.png', + ], + tags: [ + 'dark', + 'light', + 'academic', + 'oxford', + 'cambridge', + 'princeton', + ], + }, + { + id: 'slidev-theme-field-manual', + name: 'Field Manual', + description: 'Un thème de 24 mises en page inspiré du style des manuels de terrain militaires vintage', + author: { + name: 'PJ Doland', + link: 'https://github.com/pjdoland', + }, + repo: 'https://github.com/pjdoland/slidev-theme-field-manual', + previews: [ + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/1.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/2.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/3.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/4.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/5.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/6.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/7.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/8.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/9.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/10.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/11.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/12.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/13.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/14.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/15.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/16.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/17.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/18.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/19.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/20.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/21.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/22.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/23.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/24.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/25.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/26.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/27.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/28.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/29.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/30.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/31.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/32.jpg', + 'https://raw.githubusercontent.com/pjdoland/slidev-theme-field-manual/main/screenshots/33.jpg', + ], + tags: [ + 'light', + 'dark', + 'vintage', + 'military', + ], + }, + { + id: 'slidev-theme-touying', + name: 'Touying', + description: 'Un thème basé sur le design du Typst Touying', + author: { + name: '_Kerman', + link: 'https://github.com/kermanx', + }, + repo: 'https://github.com/kermanx/slidev-theme-touying', + previews: [ + 'https://github.com/user-attachments/assets/a075a45c-7ee7-4ede-b3e7-90f29edf3845', + 'https://github.com/user-attachments/assets/5ddea6cb-e604-41f9-a857-9f43b439c91b', + 'https://github.com/user-attachments/assets/2b649cbc-537d-4306-adcd-3877bbeeb87a', + 'https://github.com/user-attachments/assets/e2258aef-1c80-4db0-af2f-eb430b83f2e7', + 'https://github.com/user-attachments/assets/f3010e84-7b9c-42b7-bffc-bdf48fdfbd2e', + ], + tags: [ + 'light', + ], + }, + // Ajoutez votre thème ici! + { + id: '', + link: 'https://github.com/slidevjs/slidev/edit/main/docs/.vitepress/themes.ts', + name: 'Votre thème?', + description: 'Cliquez ici pour soumettre votre thème :)', previews: [ '/theme-placeholder.png', ], diff --git a/.vitepress/utils.ts b/.vitepress/utils.ts new file mode 100644 index 0000000..19ddf63 --- /dev/null +++ b/.vitepress/utils.ts @@ -0,0 +1,51 @@ +import { data as features } from '../features/index.data.js' +import { Advanced, Guides } from './pages' + +function removeHash(link: string) { + const idx = link.lastIndexOf('#') + return idx < 0 ? link : link.slice(0, idx) +} + +function getGuideTitle(id: string) { + return Guides.find(g => g.link.endsWith(`/${id}`))?.text ?? Advanced.find(g => g.link.endsWith(id))?.text ?? id +} + +export function resolveLink(link: string): { + kind: 'external' | 'features' | 'guide' + url: string + title?: string + tags?: string[] + descripton?: string +} { + const [kind, nameWithHash] = link.split('/') + const name = removeHash(nameWithHash) + switch (kind) { + case 'http:': + case 'https:': + case 'mailto:': + return { kind: 'external', url: link } + case 'features': { + const feature = features[name] + if (!feature) + throw new Error(`Feature "${name}" not found.`) + return { + kind: 'features', + title: `✨ ${feature.title}`, + tags: feature.tags, + descripton: feature.description, + url: `/features/${nameWithHash}`, + } + } + case 'guide': { + return { + kind: 'guide', + title: `📖 ${getGuideTitle(name)}`, + tags: ['guide'], + descripton: 'Cliquez pour lire ce guide', + url: `/guide/${nameWithHash}`, + } + } + default: + throw new Error(`Invalid link: ${link}`) + } +} diff --git a/builtin/cli.md b/builtin/cli.md new file mode 100644 index 0000000..c678d7c --- /dev/null +++ b/builtin/cli.md @@ -0,0 +1,97 @@ +# Slidev CLI + +`@slidev/cli` expose un binaire appelé `slidev` que vous pouvez utiliser pour développer, construire et exporter vos diapositives. + +## Prérequis + +Pour utiliser la CLI, vous pouvez soit installer `@slidev/cli` globalement, soit l'installer localement dans votre projet Node.js. Si vous avez créé votre projet avec `npm init slidev`, la CLI est déjà installée localement. + +::: warning +En général, `npx slidev` n'est pas supporté car le nom du paquet est en fait `@slidev/cli`. +::: + +Les options de ligne de commande des commandes suivent les conventions suivantes : + +- la valeur de l'option peut être passée après un espace ou un caractère `=` : + + Exemple : `slidev --port 8080` est équivalent à `slidev --port=8080` + +- `true` peut être omis pour les options booléennes : + + Exemple : `slidev --open` est équivalent à `slidev --open true` + +::: info + +Si vous utilisez npm, n'oubliez pas d'ajouter `--` avant les options pour les passer à Slidev : + +```bash +npm run slidev -- --remote --port 8080 --open +``` + +::: + +## `slidev [entry]` {#dev} + +Démarre un serveur local pour Slidev. + +- `[entry]` (`string`, par défaut : `slides.md`) : chemin vers le fichier markdown contenant vos diapositives. + +Options : + +- `--port`, `-p` (`number`, par défaut : `3030`) : numéro de port. +- `--base` (`string`, par défaut : `/`) : URL de base (voir https://vitejs.dev/config/shared-options.html#base). +- `--open`, `-o` (`boolean`, par défaut : `false`) : ouvrir dans le navigateur. +- `--remote [password]` (`string`) : écouter sur l'hôte public et activer le contrôle à distance, si une valeur est passée alors le mode présentateur est privé et uniquement accessible en passant le mot de passe donné dans le paramètre de requête URL `password`. +- `--bind` (`string`, par défaut : `0.0.0.0`) : spécifie sur quelles adresses IP le serveur doit écouter en mode distant. +- `--log` (`'error', 'warn', 'info', 'silent'`, par défaut : `'warn'`) : niveau de journalisation. +- `--force`, `-f` (`boolean`, par défaut : `false`) : forcer l'optimiseur à ignorer le cache et re-bundler. +- `--theme`, `-t` (`string`) : remplacer le thème. + +## `slidev build [entry]` {#build} + +Construit une SPA hébergeable. Voir pour plus de détails. + +- `[entry]` (`string`, par défaut : `slides.md`) : chemin vers le fichier markdown des diapositives. + +Options : + +- `--out`, `-o` (`string`, par défaut : `dist`) : répertoire de sortie +- `--base` (`string`, par défaut : `/`) : URL de base (voir https://vitejs.dev/config/shared-options.html#base) +- `--download` (`boolean`, par défaut : `false`) : autoriser le téléchargement des diapositives en PDF dans la SPA +- `--theme`, `-t` (`string`) : remplacer le thème +- `--without-notes` (`boolean`, par défaut : `false`) : exclure les notes du présentateur de la SPA + +## `slidev export [...entry]` {#export} + +Exporte les diapositives en PDF (ou autre format). Voir pour plus de détails. + +- `[entry]` (`string`, par défaut : `slides.md`) : chemin vers le fichier markdown des diapositives. + +Options : + +- `--output` (`string`, par défaut : utilise `exportFilename` (voir https://sli.dev/custom/#frontmatter-configures) ou utilise `[entry]-export`) : chemin de sortie. +- `--format` (`'pdf', 'png', 'pptx', 'md'`, par défaut : `'pdf'`) : format de sortie. +- `--timeout` (`number`, par défaut : `30000`) : délai d'attente pour le rendu de la page d'impression (voir https://playwright.dev/docs/api/class-page#page-goto). +- `--range` (`string`) : plages de pages à exporter (exemple : `'1,4-5,6'`). +- `--dark` (`boolean`, par défaut : `false`) : exporter en thème sombre. +- `--with-clicks`, `-c` (`boolean`, par défaut : `false`) : exporter les pages pour chaque animation de clic (voir https://sli.dev/guide/animations.html#click-animation). +- `--theme`, `-t` (`string`) : remplacer le thème. +- `--omit-background` (`boolean`, par défaut : `false`) : supprimer le fond par défaut du navigateur + +## `slidev format [entry]` {#format} + +Formate le fichier markdown. Notez que cela ne formatera pas le contenu des diapositives, seulement l'organisation du fichier markdown. + +- `[entry]` (`string`, par défaut : `slides.md`) : chemin vers le fichier markdown des diapositives. + +## `slidev theme [subcommand]` {#theme} + +Opérations liées au thème. + +Sous-commandes : + +- `eject [entry]` : Éjecter le thème actuel dans le système de fichiers local. Voir . + - `[entry]` (`string`, par défaut : `slides.md`) : chemin vers le fichier markdown des diapositives. + - Options : + - `--dir` (`string`, par défaut : `theme`) : le répertoire de sortie. + - `--theme`, `-t` (`string`) : remplacer le thème. diff --git a/builtin/components.md b/builtin/components.md old mode 100755 new mode 100644 index 72e9750..b8f2037 --- a/builtin/components.md +++ b/builtin/components.md @@ -1,62 +1,195 @@ # Composants -## Composants Intégrés +Cette page liste tous les composants intégrés fournis par Slidev. Ces composants peuvent être utilisés **directement** dans vos diapositives. -> Les documentations de cette section sont toujours en cours d'élaboration. Avant cela, vous pouvez directement jeter un coup d'oeil au [code source](https://github.com/slidevjs/slidev/blob/main/packages/client/builtin) +Notez que peut fournir des composants supplémentaires. Pour ajouter vos propres composants, voir . -### `Toc` +## `Arrow` -Insérez une table des matières. +Dessiner une flèche. -Si vous souhaitez qu'une diapositive n'apparaisse pas dans le composant ``, vous pouvez utiliser dans le bloc de présentation de la diapositive : -```yml ---- -hideInToc: true ---- +### Utilisation + +```md + ``` -Les titres sont affichés à l'aide du composant [``](#titles) +Ou : + +```md + +``` -#### Usage +Props : -~~~md - -~~~ +- `x1` (`string | number`, requis) : position x du point de départ +- `y1` (`string | number`, requis) : position y du point de départ +- `x2` (`string | number`, requis) : position x du point d'arrivée +- `y2` (`string | number`, requis) : position y du point d'arrivée +- `width` (`string | number`, par défaut : `2`) : épaisseur de la ligne +- `color` (`string`, par défaut : `'currentColor'`) : couleur de la ligne +- `two-way` (`boolean`, par défaut : `false`) : dessiner une flèche bidirectionnelle + +## `VDragArrow` + +Un composant `Arrow` qui peut être déplacé. + +### Utilisation + + + +Les props non liées à la position sont les mêmes que [le composant `Arrow`](#arrow). + +## `AutoFitText` + +> Expérimental + +Boîte à l'intérieur de laquelle la taille de la police s'adapte automatiquement au contenu. Similaire aux zones de texte de PowerPoint ou Keynote. + +### Utilisation + +```md + +``` + +Props : + +- `max` (`string | number`, par défaut `100`) : taille de police maximale +- `min` (`string | number`, par défaut `30`) : taille de police minimale +- `modelValue` (`string`, par défaut `''`) : contenu du texte + +## `LightOrDark` + +Utilisez-le pour afficher un contenu ou un autre en fonction du thème clair ou sombre actif. + +### Utilisation + +Utilisez-le avec les deux Slots nommés `#dark` et `#light` : + +```md + + + + +``` + +Les props fournies sur le composant `LightOrDark` seront disponibles via les props de slot scopé : + +```md + + + + +``` + +Vous pouvez fournir du markdown dans les slots, mais vous devrez entourer le contenu de lignes vides : -Parameters: +```md + + + + +``` + +## `Link` + +Insérer un lien que vous pouvez utiliser pour naviguer vers une diapositive donnée. + +### Utilisation -~~~md +```md Aller à la diapositive 42 -~~~ + +``` + +Props : + +- `to` (`string | number`) : le chemin de la diapositive vers laquelle naviguer (les chemins des diapositives commencent à `1`) +- `title` (`string`) : le titre à afficher + +On peut utiliser une chaîne comme `to`, à condition que la route correspondante existe, par ex. + +```md +--- +routeAlias: solutions +--- + +# Quelques solutions! +``` + +## `PoweredBySlidev` + +Affiche « Powered by Slidev » avec un lien vers le site web de Slidev. + +## `RenderWhen` + +Rendre les slots en fonction du contexte (par exemple si nous sommes dans la vue présentateur). + +### Utilisation + +```md +Cela ne sera rendu qu’en vue présentateur. +``` + +Type de contexte : `'main' | 'visible' | 'print' | 'slide' | 'overview' | 'presenter' | 'previewNext'` + +Props : + +- `context` (`Context | Context[]`) : un contexte ou un tableau de contextes à vérifier + - `'main'` : Rendre dans les diapositives et la vue présentateur (équivalent à ['slide', 'presenter']), + - `'visible'` : Rendre le contenu s'il est visible + - `'print'` : Rendre en mode impression + - `'slide'` : Rendre dans les diapositives + - `'overview'` : Rendre dans la vue d'ensemble + - `'presenter'` : Rendre dans la vue présentateur + - `'previewNext'` : Rendre dans la vue de la prochaine diapositive du présentateur + +Slots : + +- `#default` : Rendu lorsque le contexte correspond +- `#fallback` : Rendu lorsque le contexte ne correspond pas + +## `SlideCurrentNo` + +Numéro de la diapositive actuelle. + +### Utilisation + +```md + +``` + +## `SlidesTotal` -Paramètres: +Nombre total de diapositives. -* `to` (`string | number`): Le chemin de la diapositive vers laquelle naviguer (les diapositives commencent à partir de "1") -* `title` (`string`): Le titre à afficher +### Utilisation -### `Titles` +```md + +``` + +## `TitleRenderer` -Insérez le titre principal d'une diapositive analysée au format HTML. +Insérer le titre principal d'une diapositive analysé en HTML. Les titres et les niveaux de titre sont automatiquement récupérés à partir du premier élément de titre de chaque diapositive. -Vous pouvez remplacer ce comportement automatique pour une diapositive à l'aide de la syntaxe frontale : +Vous pouvez remplacer ce comportement automatique pour une diapositive en utilisant la syntaxe front matter : + ```yml --- title: Amazing slide title @@ -64,30 +197,179 @@ level: 2 --- ``` -#### Usage +### Utilisation + +Le composant `` est un composant virtuel que vous pouvez importer avec : -Le composant `` est un composant virtuel avec lequel vous pouvez importer : ```js -import Titles from '/@slidev/titles.md' +import TitleRenderer from '#slidev/title-renderer' ``` Ensuite, vous pouvez l'utiliser avec : -~~~md - -~~~ -Paramètres: +```md + +``` + +Props : + +- `no` (`string | number`) : le numéro de la diapositive dont afficher le titre (les diapositives commencent à `1`) + +## `Toc` + +Insérer une table des matières. + +Si vous souhaitez qu'une diapositive n'apparaisse pas dans le composant ``, vous pouvez utiliser l'option `hideInToc` dans le frontmatter de la diapositive : + +```yml +--- +hideInToc: true +--- +``` + +Les titres sont affichés en utilisant [le composant ``](#titles) + +### Utilisation + +```md + +``` + +Props : + +- `columns` (`string | number`, par défaut : `1`) : le nombre de colonnes de l'affichage +- `listClass` (`string | string[]`, par défaut : `''`) : classes à appliquer à la liste de la table des matières +- `maxDepth` (`string | number`, par défaut : `Infinity`) : le niveau de profondeur maximal des titres à afficher +- `minDepth` (`string | number`, par défaut : `1`) : le niveau de profondeur minimal des titres à afficher +- `mode` (`'all' | 'onlyCurrentTree'| 'onlySiblings'`, par défaut : `'all'`) : + - `'all'` : Afficher tous les éléments + - `'onlyCurrentTree'` : Afficher uniquement les éléments de l'arborescence actuelle (élément actif, parents et enfants de l'élément actif) + - `'onlySiblings'` : Afficher uniquement les éléments de l'arborescence actuelle et leurs frères et sœurs directs + +## `Transform` + +Appliquer une mise à l'échelle ou une transformation aux éléments. + +### Utilisation + +```md + + + +``` + +Props : + +- `scale` (`number | string`, par défaut `1`) : valeur de l'échelle de transformation +- `origin` (`string`, par défaut `'top left'`) : valeur de l'origine de transformation + +## `Tweet` -* `no` (`string | number`): Le numéro de la diapositive à partir de laquelle afficher le titre (les diapositives commencent à partir de `1`) +Intégrer un tweet. -## Composants Customisés +### Utilisation -Créer un répertoire `components/` sous la racine de votre projet, et placez simplement vos composants Vue personnalisés sous celui-ci, puis vous pouvez l'utiliser avec le même nom dans votre fichier markdown! +```md + +``` + +Props : + +- `id` (`number | string`, requis) : id du tweet +- `scale` (`number | string`, par défaut `1`) : valeur de l'échelle de transformation +- `conversation` (`string`, par défaut `'none'`) : [paramètre d'intégration de tweet](https://developer.twitter.com/en/docs/twitter-for-websites/embedded-tweets/guides/embedded-tweet-parameter-reference) +- `cards` (`'hidden' | 'visible'`, par défaut `'visible'`) : [paramètre d'intégration de tweet](https://developer.twitter.com/en/docs/twitter-for-websites/embedded-tweets/guides/embedded-tweet-parameter-reference) + +## `BlueSky` + +Intégrer un post Bluesky. + +### Utilisation + +```md + + +``` + +Props : + +- `uri` (`string`, requis) : AT-URI du post Bluesky, ou une URL `https://bsky.app/profile/.../post/...` +- `scale` (`number | string`, par défaut `1`) : valeur de l'échelle de transformation + +## `VAfter`, `VClick` et `VClicks` + + + +## `VSwitch` + +Basculer entre plusieurs slots en fonction des clics. + + + +- Si la prop `unmount` est définie à `true`, le slot précédent sera démonté lors du passage au slot suivant. La valeur par défaut est `false`. +- Utilisez les props `tag` et `childTag` pour changer la balise par défaut du composant et de ses enfants. La valeur par défaut est `div`. +- Utilisez la prop `transition` pour changer l'effet de transition. La valeur par défaut est `false` (désactivé). -Pour en savoir plus, consultez la section [Customisation](/custom/directory-structure#components). +## `VDrag` + + + +## `SlidevVideo` + +Intégrer une vidéo. + +### Utilisation + +```md + + + + +

+ Votre navigateur ne supporte pas les vidéos. Vous pouvez la télécharger + ici. +

+
+``` + +Consultez la [documentation de l'élément vidéo HTML](https://developer.mozilla.org/docs/Web/HTML/Element/Video) pour voir ce qui peut être inclus dans le slot de ce composant. + +Props : + +- `controls` (`boolean`, par défaut : `false`) : afficher les contrôles de la vidéo +- `autoplay` (`boolean | 'once'`, par défaut : `false`) : + - `true` ou `'once'` : démarrer la vidéo une seule fois et ne pas la redémarrer une fois terminée ou mise en pause + - `false` : ne jamais démarrer automatiquement la vidéo (utiliser `controls` à la place) +- `autoreset` (`'slide' | 'click'`, par défaut : `undefined`) : + - `'slide'` : revenir au début de la vidéo lors du retour à la diapositive + - `'click'` : revenir au début de la vidéo lors du retour au tour de clic du composant +- `poster` (`string | undefined`, par défaut : `undefined`) : + - La source de l'image à afficher lorsque la vidéo ne joue pas. +- `printPoster` (`string | undefined`, par défaut : `undefined`) : + - Le remplacement pour `poster` lors de l'impression. +- `timestamp` (`string | number`, par défaut : `0`) : + - Le temps de départ de la vidéo en secondes. +- `printTimestamp` (`string | number | 'last' | undefined`, par défaut : `undefined`) : + - Le remplacement pour `timestamp` lors de l'impression. + +::: warning +Lors de l'exportation, la vidéo peut ne pas se charger car Chromium ne supporte pas certains formats vidéo. Dans ce cas, vous pouvez spécifier le chemin de l'exécutable du navigateur. Voir [Chemin de l'exécutable Chromium](/guide/exporting.html#executable-path) pour plus d'informations. +::: + +## `Youtube` + +Intégrer une vidéo YouTube. + +### Utilisation + +```md + +``` -## Composants fournis par thème +Props : -Les thèmes peuvent également fournir des composants. Veuillez lire leurs documentations pour découvrir ce qu'ils fournissent. +- `id` (`string`, requis) : id de la vidéo YouTube +- `width` (`number`) : largeur de la vidéo +- `height` (`number`) : hauteur de la vidéo -En savoir plus sur la section [structure de répertoires](/custom/directory-structure) +Vous pouvez également faire démarrer la vidéo à un moment précis en ajoutant `?start=1234` à la valeur de l'id (où `1234` est le nombre de secondes), diff --git a/builtin/layouts.md b/builtin/layouts.md old mode 100755 new mode 100644 index afa2a86..b0d91dd --- a/builtin/layouts.md +++ b/builtin/layouts.md @@ -1,186 +1,223 @@ # Mises en page -## Mises en page intégrées +Cette page liste toutes les mises en page intégrées fournies par Slidev. Ces mises en page peuvent être utilisées via l'option `layout` dans les frontmatters de vos diapositives. -> Comme les thèmes peuvent remplacer le comportement des mises en page, le meilleur moyen de connaître exactement l'usage, les paramètres et les exemples est de se référer à leur documentation +Notez que peut fournir des mises en page supplémentaires ou remplacer les existantes. Pour ajouter vos propres mises en page, voir . -### `center` +## `center` Affiche le contenu au milieu de l'écran. -### `cover` +## `cover` -Utilisé pour afficher la page de couverture pour la présentation, peut contenir le titre de la présentation, la contextualisation, etc. +Utilisé pour afficher la page de couverture de la présentation, peut contenir le titre de la présentation, la contextualisation, etc. -### `default` +## `default` -La mise en page la plus basique, pour afficher n'importe quel type de contenu. +La mise en page la plus basique, pour afficher tout type de contenu. -### `end` +## `end` La page finale de la présentation. -### `fact` +## `fact` -Pour montrer un fait ou des données avec beaucoup d'importance à l'écran. +Pour afficher un fait ou des données avec une grande importance à l'écran. -### `full` +## `full` Utilise tout l'espace de l'écran pour afficher le contenu. -### `image-left` +## `image-left` Affiche une image sur le côté gauche de l'écran, le contenu sera placé sur le côté droit. -#### Usage +### Utilisation ```yaml --- layout: image-left # la source de l'image -image: ./path/to/the/image +image: /path/to/the/image -# un nom de classe customisé du contenu +# un nom de classe customisée pour le contenu class: my-cool-content-on-the-right --- ``` -### `image-right` +## `image-right` Affiche une image sur le côté droit de l'écran, le contenu sera placé sur le côté gauche. -#### Usage +### Utilisation ```yaml --- layout: image-right # la source de l'image -image: ./path/to/the/image +image: /path/to/the/image -# un nom de classe customisé du contenu +# un nom de classe customisée pour le contenu class: my-cool-content-on-the-left --- ``` -### `image` +## `image` Affiche une image comme contenu principal de la page. -#### Usage +### Utilisation ```yaml --- layout: image # la source de l'image -image: ./path/to/the/image +image: /path/to/the/image --- ``` +Vous pouvez changer la taille de fond par défaut (`cover`) en ajoutant l'attribut `backgroundSize` : -### `iframe-left` +```yaml +--- +layout: image +image: /path/to/the/image +backgroundSize: contain +--- +``` -Affiche une page Web sur le côté gauche de l'écran, le contenu sera placé sur le côté droit. +```yaml +--- +layout: image-left +image: /path/to/the/image +backgroundSize: 20em 70% +--- +``` -#### Usage +## `iframe-left` + +Affiche une page web sur le côté gauche de l'écran, le contenu sera placé sur le côté droit. + +### Utilisation ```yaml --- layout: iframe-left -# la source de la page Web +# la source de la page web url: https://github.com/slidevjs/slidev -# un nom de classe personnalisé au contenu +# un nom de classe customisée pour le contenu class: my-cool-content-on-the-right --- ``` -### `iframe-right` +## `iframe-right` -Affiche une page Web sur le côté droit de l'écran, le contenu sera placé sur le côté gauche. +Affiche une page web sur le côté droit de l'écran, le contenu sera placé sur le côté gauche. -#### Usage +### Utilisation ```yaml --- layout: iframe-right -# la source de la page Web +# la source de la page web url: https://github.com/slidevjs/slidev -# un nom de classe personnalisé au contenu +# un nom de classe customisée pour le contenu class: my-cool-content-on-the-left --- ``` -### `iframe` +## `iframe` -Affiche une page Web comme contenu principal de la page. +Affiche une page web comme contenu principal de la page. -#### Usage +### Utilisation ```yaml --- layout: iframe -# la source de la page Web +# la source de la page web url: https://github.com/slidevjs/slidev --- ``` +## `intro` -### `intro` - -Pour introduire la présentation, habituellement avec le titre de présentation, une courte description, l'auteur, etc. +Pour introduire la présentation, généralement avec le titre de la présentation, une courte description, l'auteur, etc. -### `none` +## `none` -Une mise en page sans style existant. +Une mise en page sans aucun style existant. -### `quote` +## `quote` -Pour afficher une citation avec proéminence. +Pour afficher une citation avec importance. -### `section` +## `section` -Utilisé pour marquer le début d'une nouvelle section de présentation. +Utilisé pour marquer le début d'une nouvelle section de la présentation. -### `statement` +## `statement` -Faire une affirmation/déclaration comme contenu de la page principale. +Faire une affirmation/déclaration comme contenu principal de la page. -### `two-cols` +## `two-cols` -Séparer le contenu de la page en deux colonnes. - -#### Usage +Sépare le contenu de la page en deux colonnes. +### Utilisation ```md --- layout: two-cols --- -# Left +# Gauche -Cela apparait sur la gauche +Ceci s'affiche à gauche ::right:: -# Right +# Droite -Cela apparait sur la droite +Ceci s'affiche à droite ``` -## Mises en page customisées +## `two-cols-header` + +Sépare les lignes supérieure et inférieure du contenu de la page, et la seconde ligne sépare les colonnes gauche et droite. + +### Utilisation + +```md +--- +layout: two-cols-header +--- -Créer un répertoire `layouts/` sous la racine de votre projet, et placez simplement vos composants Vue personnalisés sous celui-ci. +Ceci s'affiche sur les deux côté -Pour en savoir plus, consultez la section [Customisation](/custom/directory-structure#layouts). +::left:: -## Mises en page fournies par thème +# Gauche -Les thèmes peuvent fournir des mises en page ou remplacer celles existantes. Veuillez lire leurs documentations pour découvrir ce qu'ils fournissent. +Ceci s'affiche à gauche + +::right:: + +# Droite + +Ceci s'affiche à droite + + +``` diff --git a/custom/config-code-runners.md b/custom/config-code-runners.md new file mode 100644 index 0000000..3465ac0 --- /dev/null +++ b/custom/config-code-runners.md @@ -0,0 +1,77 @@ +# Configurer les exécuteurs de code + + + +Définir des exécuteurs de code pour des langages personnalisés dans votre éditeur Monaco. + +Par défaut, les exécuteurs JavaScript et TypeScript sont supportés nativement. Ils s'exécutent dans le navigateur **sans** environnement sandbox. Si vous souhaitez des intégrations plus avancées, vous pouvez fournir votre propre exécuteur de code qui envoie le code vers un serveur distant, s'exécute dans un Web Worker, ou autre, selon vos besoins. + +Créez `./setup/code-runners.ts` avec le contenu suivant : + +```ts twoslash [setup/code-runners.ts] +/* eslint-disable import/first */ +declare const executePythonCodeRemotely: (code: string) => Promise +declare const sanitizeHtml: (html: string) => string +// ---cut--- +import { defineCodeRunnersSetup } from '@slidev/types' + +export default defineCodeRunnersSetup(() => { + return { + async python(code, ctx) { + // Exécuter le code d'une manière ou d'une autre et retourner le résultat + const result = await executePythonCodeRemotely(code) + return { + text: result + } + }, + html(code, ctx) { + return { + html: sanitizeHtml(code) + } + }, + // ou autres langages, la clé est l'identifiant du langage + } +}) +``` + +## Contexte de l'exécuteur + +Le second argument `ctx` est le contexte de l'exécuteur, qui contient les propriétés suivantes : + +```ts twoslash +import type { CodeRunnerOutputs } from '@slidev/types' +import type { CodeToHastOptions } from 'shiki' +// ---cut--- +export interface CodeRunnerContext { + /** + * Options passées à l'exécuteur via la prop `runnerOptions`. + */ + options: Record + /** + * Colorer le code avec shiki. + */ + highlight: (code: string, lang: string, options?: Partial) => string + /** + * Utiliser un (autre) exécuteur de code pour exécuter le code. + */ + run: (code: string, lang: string) => Promise +} +``` + +## Sortie de l'exécuteur + +L'exécuteur peut retourner une sortie texte ou HTML, ou un élément à monter. Référez-vous à https://github.com/slidevjs/slidev/blob/main/packages/types/src/code-runner.ts pour plus de détails. + +## Dépendances supplémentaires de l'exécuteur + +Par défaut, Slidev analyse la source Markdown et importe automatiquement les dépendances nécessaires pour les exécuteurs de code. Si vous souhaitez importer manuellement des dépendances, vous pouvez utiliser l'option `monacoRunAdditionalDeps` dans le [headmatter](./index#headmatter) : + +```yaml +monacoRunAdditionalDeps: + - ./path/to/dependency + - lodash-es +``` + +::: tip +Les chemins sont résolus relativement au répertoire `snippets`. Et les noms des dépendances doivent être exactement les mêmes que ceux importés dans le code. +::: diff --git a/custom/config-context-menu.md b/custom/config-context-menu.md new file mode 100644 index 0000000..1fc56df --- /dev/null +++ b/custom/config-context-menu.md @@ -0,0 +1,38 @@ +# Configurer le menu contextuel + + + +Personnaliser les éléments du menu contextuel dans Slidev. + +Créez `./setup/context-menu.ts` avec le contenu suivant : + +```ts twoslash [./setup/context-menu.ts] +// ---cut--- +import { useNav } from '@slidev/client' +import { defineContextMenuSetup } from '@slidev/types' +import { computed } from 'vue' +// ---cut-start--- +// @ts-expect-error missing types +// ---cut-end--- +import Icon3DCursor from '~icons/carbon/3d-cursor' + +export default defineContextMenuSetup((items) => { + const { isPresenter } = useNav() + return computed(() => [ + ...items.value, + { + small: false, + icon: Icon3DCursor, // si `small` est `true`, seule l'icône est affichée + label: 'Élément de menu personnalisé', // ou un composant Vue + action() { + alert('Élément de menu personnalisé cliqué !') + }, + disabled: isPresenter.value, + }, + ]) +}) +``` + +Cela ajoutera un nouvel élément de menu au menu contextuel. + +Pour désactiver le menu contextuel globalement, définissez `contextMenu` à `false` dans le frontmatter. `contextMenu` peut également être défini à `dev` ou `build` pour n'activer le menu contextuel qu'en mode développement ou build. diff --git a/custom/config-fonts.md b/custom/config-fonts.md new file mode 100644 index 0000000..b766c5b --- /dev/null +++ b/custom/config-fonts.md @@ -0,0 +1,105 @@ +# Configurer les polices + +Bien que vous puissiez utiliser HTML et CSS pour personnaliser les polices et le style de vos diapositives comme vous le souhaitez, Slidev propose également un moyen pratique de les utiliser sans effort. + +Dans votre frontmatter, configurez comme suit : + +```yaml +--- +fonts: + # basiquement le texte + sans: Robot + # utiliser avec la classe CSS `font-serif` d'UnoCSS + serif: Robot Slab + # pour les blocs de code, le code en ligne, etc. + mono: Fira Code +--- +``` + +Et c'est tout. + +Les polices seront **importées automatiquement depuis un fournisseur via CDN, par défaut c'est [Google Fonts](https://fonts.google.com/)**. Cela signifie que vous pouvez utiliser n'importe quelle police disponible sur Google Fonts directement. + +## Polices locales + +Par défaut, Slidev considère que toutes les polices spécifiées via les configurations `fonts` proviennent de Google Fonts. Si vous souhaitez utiliser des polices locales, spécifiez `fonts.local` pour désactiver l'importation automatique. + +```yaml +--- +fonts: + # comme font-family en CSS, vous pouvez utiliser `,` pour séparer plusieurs polices de secours + sans: 'Helvetica Neue,Robot' + # marquer 'Helvetica Neue' comme police locale + local: Helvetica Neue +--- +``` + +## Graisses et italique + +Par défaut, Slidev importe trois graisses `200`, `400`, `600` pour chaque police. Vous pouvez les configurer avec : + +```yaml +--- +fonts: + sans: Robot + # par défaut + weights: '200,400,600' + # importer les polices italiques, par défaut `false` + italic: false +--- +``` + +Cette configuration s'applique à toutes les polices web. Pour un contrôle plus fin des graisses de chaque police, vous devrez les importer manuellement avec [HTML](/custom/directory-structure.html#index-html) et CSS. + +## Polices de repli + +Pour la plupart des scénarios, vous n'avez besoin que de spécifier la « police spéciale » et Slidev ajoutera les polices de repli pour vous, par exemple : + +```yaml +--- +fonts: + sans: Robot + serif: Robot Slab + mono: Fira Code +--- +``` + +donnera + + + +```css +.font-sans { + font-family: "Robot",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; +} +.font-serif { + font-family: "Robot Slab",ui-serif,Georgia,Cambria,"Times New Roman",Times,serif; +} +.font-mono { + font-family: "Fira Code",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; +} +``` + +Si vous souhaitez désactiver les polices de repli, configurez comme suit : + +```yaml +--- +fonts: + mono: 'Fira Code, monospace' + fallbacks: false +--- +``` + +## Fournisseurs + +- Options : `google` | `coollabs` | `none` +- Par défaut : `google` + +Actuellement, seuls [Google Fonts](https://fonts.google.com/) et [coolLabs](https://fonts.coollabs.io/) sont supportés, nous prévoyons d'ajouter plus de fournisseurs à l'avenir. Spécifier `none` désactivera complètement la fonctionnalité d'importation automatique et traitera toutes les polices localement. + +```yaml +--- +fonts: + provider: none +--- +``` diff --git a/custom/config-highlighter.md b/custom/config-highlighter.md new file mode 100644 index 0000000..42597cf --- /dev/null +++ b/custom/config-highlighter.md @@ -0,0 +1,70 @@ +# Configurer le colorateur syntaxique + +Slidev utilise [Shiki](https://github.com/shikijs/shiki) comme colorateur syntaxique. C'est un colorateur syntaxique basé sur TextMate Grammar, aussi précis que VS Code. Il génère des tokens colorés donc aucun CSS supplémentaire n'est requis. Shiki propose également [de nombreux thèmes intégrés](https://shiki.style/themes). Dans Slidev, nous fournissons également le support [TwoSlash](#twoslash-integration). + +## Configurer Shiki + + + +Créez le fichier `./setup/shiki.ts` avec le contenu suivant : + +```ts twoslash [setup/shiki.ts] +import { defineShikiSetup } from '@slidev/types' + +export default defineShikiSetup(() => { + return { + themes: { + dark: 'min-dark', + light: 'min-light', + }, + transformers: [ + // ... + ], + } +}) +``` + +Si vous souhaitez ajouter un thème ou un langage personnalisé (grammaires/thèmes TextMate en JSON), vous pouvez les importer dans le fichier de configuration : + +```ts twoslash [setup/shiki.ts] +import { defineShikiSetup } from '@slidev/types' +// ---cut-start--- +// @ts-expect-error missing types +// ---cut-end--- +import customLanguage from './customLanguage.tmLanguage.json' +// ---cut-start--- +// @ts-expect-error missing types +// ---cut-end--- +import customTheme from './customTheme.tmTheme.json' + +export default defineShikiSetup(() => { + return { + themes: { + dark: customTheme, + light: 'min-light', + }, + langs: [ + 'js', + 'typescript', + 'cpp', + customLanguage, + // ... + ], + transformers: [ + // ... + ], + } +}) +``` + +Consultez les [Langages intégrés](https://shiki.style/languages) et les [Thèmes intégrés](https://shiki.style/themes), et référez-vous à la [documentation de Shiki](https://shiki.style) pour plus de détails. + +:::info +Pour le moment, Shiki Magic Move ne supporte pas les transformateurs. +::: + +## Configurer Prism + +:::warning +Le support de Prism a été supprimé depuis la v0.50. Veuillez utiliser Shiki à la place. +::: diff --git a/custom/config-katex.md b/custom/config-katex.md old mode 100755 new mode 100644 index 65533e5..33d0d88 --- a/custom/config-katex.md +++ b/custom/config-katex.md @@ -2,16 +2,17 @@ -Créer `./setup/katex.ts` avec le contenu suivant : +Créez `./setup/katex.ts` avec le contenu suivant : -```ts +```ts twoslash [setup/katex.ts] import { defineKatexSetup } from '@slidev/types' export default defineKatexSetup(() => { return { + maxExpand: 2000, /* ... */ } }) ``` -Avec la configuration, vous pouvez fournir le paramètre personnalisé pour [Options KaTex](https://katex.org/docs/options.html). Reportez-vous aux définitions de type et à leur documentation pour plus de détails. +La valeur de retour doit être les options personnalisées pour KaTeX. Référez-vous à la [documentation de KaTeX](https://katex.org/docs/options.html) ou à la définition de type pour la liste complète des options. diff --git a/custom/config-mermaid-renderer.md b/custom/config-mermaid-renderer.md new file mode 100644 index 0000000..eaf5834 --- /dev/null +++ b/custom/config-mermaid-renderer.md @@ -0,0 +1,19 @@ +# Configurer le rendu Mermaid + + + +1. L'utilisateur installe la bibliothèque Mermaid qu'il souhaite utiliser. Par ex. : `npm install beautiful-mermaid` +2. Créez `./setup/mermaid-renderer.ts` avec le contenu suivant : + +```ts +// setup/mermaid-renderer.ts +import { defineMermaidRendererSetup } from '@slidev/types' +// exemple. https://github.com/lukilabs/beautiful-mermaid?tab=readme-ov-file#readme +import { renderMermaid } from 'beautiful-mermaid' + +export default defineMermaidRendererSetup(() => { + return (code, _options) => renderMermaid(code) +}) +``` + +Ce paramètre vous permet d'utiliser une bibliothèque Mermaid tierce. Remplacez la partie `renderMermaid()` par la fonction de rendu de la bibliothèque. diff --git a/custom/config-mermaid.md b/custom/config-mermaid.md old mode 100755 new mode 100644 index 5372781..95bbd98 --- a/custom/config-mermaid.md +++ b/custom/config-mermaid.md @@ -2,9 +2,9 @@ -Créer `./setup/mermaid.ts` avec le contenu suivant : +Créez `./setup/mermaid.ts` avec le contenu suivant : -```ts +```ts twoslash [setup/mermaid.ts] import { defineMermaidSetup } from '@slidev/types' export default defineMermaidSetup(() => { @@ -14,4 +14,34 @@ export default defineMermaidSetup(() => { }) ``` -Avec la configuration, vous pouvez fournir un paramètre par défaut personnalisé pour [Mermaid](https://mermaid-js.github.io/). Reportez-vous aux définitions de type et à sa documentation pour plus de détails. +La valeur de retour doit être les configurations personnalisées pour [Mermaid](https://mermaid.js.org/). Référez-vous à la [documentation Mermaid](https://mermaid.js.org/config/schema-docs/config.html) ou à la définition de type pour la liste complète des configurations. + +## Thèmes/styles personnalisés + +Dans le cas où vous souhaitez créer vos propres thèmes ou styles Mermaid, vous pouvez le faire en définissant `themeVariables` comme dans l'exemple suivant : + +```ts twoslash +import { defineMermaidSetup } from '@slidev/types' + +export default defineMermaidSetup(() => { + return { + theme: 'base', + themeVariables: { + // Variables générales du thème + noteBkgColor: '#181d29', + noteTextColor: '#F3EFF5cc', + noteBorderColor: '#404551', + + // Variables du diagramme de séquence + actorBkg: '#0E131F', + actorBorder: '#44FFD2', + actorTextColor: '#F3EFF5', + actorLineColor: '#F3EFF5', + signalColor: '#F3EFF5', + signalTextColor: '#F3EFF5', + } + } +}) +``` + +Vous pouvez trouver toutes les variables de thème sur la page [Configuration des thèmes Mermaid](https://mermaid.js.org/config/theming.html). diff --git a/custom/config-monaco.md b/custom/config-monaco.md old mode 100755 new mode 100644 index 5855b3d..19852a4 --- a/custom/config-monaco.md +++ b/custom/config-monaco.md @@ -2,111 +2,109 @@ -> Par défaut, uniquement Monaco est activé uniquement en mode développement. Pour le faire fonctionner sur la version SPA, ajoutez `monaco: true` à vos configurations frontmatter. +Créez `./setup/monaco.ts` avec le contenu suivant : -Créer `./setup/monaco.ts` avec le contenu suivant : - -```ts +```ts twoslash [./setup/monaco.ts] import { defineMonacoSetup } from '@slidev/types' export default defineMonacoSetup(async (monaco) => { - // use `monaco` to configure + // utiliser `monaco` pour configurer }) ``` -En savoir plus sur [la configuration de Monaco](https://github.com/Microsoft/monaco-editor). - -## Utilisation +En savoir plus sur la [configuration de Monaco](https://github.com/Microsoft/monaco-editor). -Pour utiliser Monaco dans vos diapositives, ajoutez simplement `{monaco}` à vos extraits de code : +## Types TypeScript -~~~js -//```js -const count = ref(1) -const plusOne = computed(() => count.value + 1) +Lors de l'utilisation de TypeScript avec Monaco, les types des dépendances seront installés côté client automatiquement. -console.log(plusOne.value) // 2 +````md +```ts {monaco} +import { ref } from 'vue' +import { useMouse } from '@vueuse/core' -plusOne.value++ // error -//``` -~~~ +const counter = ref(0) +``` +```` -À +Dans l'exemple ci-dessus, assurez-vous que `vue` et `@vueuse/core` sont installés localement en tant que dépendances / devDependencies, Slidev gérera le reste pour que les types fonctionnent automatiquement pour l'éditeur. Lors du déploiement en SPA, ces types seront également bundlés pour l'hébergement statique. -~~~js -//```js {monaco} -const count = ref(1) -const plusOne = computed(() => count.value + 1) +### Types supplémentaires -console.log(plusOne.value) // 2 +Slidev analysera tous les blocs de code Monaco dans vos diapositives et importera les types des bibliothèques utilisées pour vous. Dans le cas où il en manquerait, vous pouvez spécifier explicitement des paquets supplémentaires pour lesquels importer les types : -plusOne.value++ // error -//``` -~~~ +```md +--- +monacoTypesAdditionalPackages: + - lodash-es + - foo +--- +``` -## Exporter +### Acquisition automatique de types -Par défaut, Monaco fonctionnera UNIQUEMENT en mode `dev`. Si vous souhaitez également l'avoir disponible dans le SPA exporté, vous pouvez le configurer dans votre frontmatter : +Vous pouvez optionnellement basculer vers le chargement des types depuis le CDN en définissant le headmatter suivant : -```yaml +```md --- -monaco: true # default "dev" +monacoTypesSource: ata --- ``` -## Types d'installation automatique +Cette fonctionnalité est propulsée par [`@typescript/ata`](https://github.com/microsoft/TypeScript-Website/tree/v2/packages/ata) et s'exécute entièrement côté client. -Lorsque vous utilisez TypeScript avec Monaco, les types de dépendances sont installés automatiquement côté client. +## Configurer les thèmes -~~~ts -//```ts {monaco} -import { ref } from 'vue' -import { useMouse } from '@vueuse/core' +Depuis la v0.48.0, Monaco réutilisera le thème Shiki que vous avez configuré dans [le fichier de configuration de Shiki](/custom/config-highlighter#configure-shiki), propulsé par [`@shikijs/monaco`](https://shiki.style/packages/monaco). Vous n'avez plus à vous en soucier et il aura un style cohérent avec le reste de vos blocs de code. -const counter = ref(0) -//``` -~~~ +## Configurer l'éditeur + +> Disponible depuis la v0.43.0 -Dans l'exemple ci-dessus, assurez-vous simplement que `vue` et` @vueuse/core` sont installés localement en tant que dependencies / devDependencies, Slidev s'occupera du reste et votre éditeur fonctionnera ! +Si vous souhaitez personnaliser l'éditeur Monaco, vous pouvez passer un objet `editorOptions` qui correspond à la définition [Monaco IEditorOptions](https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IEditorOptions.html). -## Configure Themes +````md +```ts {monaco} { editorOptions: { wordWrap:'on'} } +console.log('HelloWorld') +``` +```` -Le thème est controllé par Slidev basé sur le thème clair/sombre. Si vous souhaitez le customiser, vous pouvez passer l'identifiant du thème dans la fonction setup : +Alternativement, si vous souhaitez que ces options soient appliquées à chaque instance Monaco, vous pouvez les retourner dans la fonction `defineMonacoSetup` -```ts -// ./setup/monaco.ts +```ts twoslash [./setup/monaco.ts] import { defineMonacoSetup } from '@slidev/types' export default defineMonacoSetup(() => { return { - theme: { - dark: 'vs-dark', - light: 'vs', - }, + editorOptions: { + wordWrap: 'on' + } } }) ``` -Si vous souhaitez charger des thèmes customisés : +## Désactivation -```ts -import { defineMonacoSetup } from '@slidev/types' +Depuis la v0.48.0, l'éditeur Monaco est activé par défaut et n'est bundlé que lorsque vous l'utilisez. Si vous souhaitez le désactiver, vous pouvez définir `monaco` à `false` dans le frontmatter de votre diapositive : -// change to your themes -import dark from 'theme-vitesse/themes/vitesse-dark.json' -import light from 'theme-vitesse/themes/vitesse-light.json' +```yaml +--- +monaco: false # peut également être `dev` ou `build` pour l'activer conditionnellement +--- +``` -export default defineMonacoSetup((monaco) => { - monaco.editor.defineTheme('vitesse-light', light as any) - monaco.editor.defineTheme('vitesse-dark', dark as any) +## Mode strict {#strict-mode} - return { - theme: { - light: 'vitesse-light', - dark: 'vitesse-dark', - }, - } -}) +> Disponible depuis la v0.52.0 + +Par défaut, le code exécutable de Monaco s'exécute en mode strict (`"use strict"`). Vous pouvez désactiver cela si votre code repose sur un comportement non strict : + +```yaml +--- +monacoRunUseStrict: false +--- ``` -> Si vous créez un thème pour Slidev, utilisez dynamiquement `import()` au sein de la fonction de setup afin d'avoir le meilleur résultat d'arborescence et de fractionnement de code possible. +## Configurer les exécuteurs de code + +Pour configurer la façon dont l'exécuteur Monaco exécute le code, ou pour ajouter le support de langages personnalisés, veuillez vous référer à [Configurer les exécuteurs de code](/custom/config-code-runners). diff --git a/custom/config-parser.md b/custom/config-parser.md new file mode 100644 index 0000000..65d3501 --- /dev/null +++ b/custom/config-parser.md @@ -0,0 +1,232 @@ +# Configurer le pré-analyseur + +::: info +Les pré-analyseurs personnalisés ne sont pas censés être utilisés trop souvent. Habituellement, vous pouvez utiliser les [Transformateurs](./config-transformers) pour les syntaxes personnalisées. +::: + +Slidev analyse votre fichier de présentation (par ex. `slides.md`) en trois étapes : + +1. Une étape de « pré-analyse » est effectuée : le fichier est découpé en diapositives en utilisant le séparateur `---`, en tenant compte des blocs frontmatter possibles. +2. Chaque diapositive est analysée avec une bibliothèque externe. +3. Slidev résout la propriété frontmatter spéciale `src: ....`, qui permet d'inclure d'autres fichiers md. + +## Analyseur Markdown + +La configuration de l'analyseur markdown utilisé à l'étape 2 peut être faite en [configurant les plugins internes de Vite](/custom/config-vite#configure-internal-plugins). + +## Extensions du pré-analyseur + +> Disponible depuis la v0.37.0. + +::: warning +Important : lors de la modification de la configuration du pré-analyseur, vous devez arrêter et redémarrer Slidev (le redémarrage peut ne pas suffire). +::: + +Le pré-analyseur (étape 1 ci-dessus) est hautement extensible et vous permet d'implémenter des syntaxes personnalisées pour vos fichiers md. L'extension du pré-analyseur est considérée comme **une fonctionnalité avancée** et est susceptible de casser les [intégrations d'éditeur](../features/side-editor) en raison de changements implicites dans la syntaxe. + +Pour le personnaliser, créez un fichier `./setup/preparser.ts` avec le contenu suivant : + +```ts twoslash [./setup/preparser.ts] +import { definePreparserSetup } from '@slidev/types' + +export default definePreparserSetup(({ filepath, headmatter, mode }) => { + return [ + { + transformRawLines(lines) { + for (const i in lines) { + if (lines[i] === '@@@') + lines[i] = 'HELLO' + } + }, + } + ] +}) +``` + +Cet exemple remplace systématiquement toute ligne `@@@` par une ligne avec `hello`. Il illustre la structure d'un fichier de configuration du pré-analyseur et certains des concepts principaux impliqués : + +- `definePreparserSetup` doit être appelé avec une fonction comme paramètre. +- La fonction reçoit le chemin du fichier (du fichier de présentation racine), le headmatter (du fichier md) et, depuis la v0.48.0, un mode (dev, build ou export). Elle peut utiliser ces informations (par ex., activer des extensions en fonction du fichier de présentation ou si nous exportons un PDF). +- La fonction doit retourner une liste d'extensions du pré-analyseur. +- Une extension peut contenir : + - une fonction `transformRawLines(lines)` qui s'exécute juste après l'analyse du headmatter du fichier md et reçoit une liste de toutes les lignes (du fichier md). La fonction peut modifier la liste de manière arbitraire. + - une fonction `transformSlide(content, frontmatter)` qui est appelée pour chaque diapositive, juste après la division du fichier, et reçoit le contenu de la diapositive sous forme de chaîne et le frontmatter de la diapositive sous forme d'objet. La fonction peut modifier le frontmatter et doit retourner la chaîne de contenu (possiblement modifiée, possiblement `undefined` si aucune modification n'a été faite). + - une fonction `transformNote(note, frontmatter)` qui est appelée pour chaque diapositive, juste après la division du fichier, et reçoit la note de la diapositive sous forme de chaîne ou undefined et le frontmatter de la diapositive sous forme d'objet. La fonction peut modifier le frontmatter et doit retourner la chaîne de note (possiblement modifiée, possiblement `undefined` si aucune modification n'a été faite). + - un `name` + +## Exemples d'extensions du pré-analyseur + +### Cas d'utilisation 1 : présentation de haut niveau avec syntaxe compacte + +Imaginez une situation où (une partie de) votre présentation montre principalement des images de couverture et inclut d'autres fichiers md. Vous pourriez vouloir une notation compacte où par exemple (une partie de) `slides.md` est comme suit : + + + +```md +@cover: /nice.jpg +# Welcome +@src: page1.md +@src: page2.md +@cover: /break.jpg +@src: pages3-4.md +@cover: https://cover.sli.dev +# Questions? +a bientôt +``` + +Pour permettre ces syntaxes `@src:` et `@cover:`, créez un fichier `./setup/preparser.ts` avec le contenu suivant : + +```ts twoslash [./setup/preparser.ts] +import { definePreparserSetup } from '@slidev/types' + +export default definePreparserSetup(() => { + return [ + { + transformRawLines(lines) { + let i = 0 + while (i < lines.length) { + const l = lines[i] + if (/^@cover:/i.test(l)) { + lines.splice( + i, + 1, + '---', + 'layout: cover', + `background: ${l.replace(/^@cover: */i, '')}`, + '---', + '' + ) + continue + } + if (/^@src:/i.test(l)) { + lines.splice( + i, + 1, + '---', + `src: ${l.replace(/^@src: */i, '')}`, + '---', + '' + ) + continue + } + i++ + } + } + }, + ] +}) +``` + +Et c'est tout. + +### Cas d'utilisation 2 : utiliser le frontmatter personnalisé pour envelopper les diapositives + +Imaginez un cas où vous souhaitez souvent mettre à l'échelle certaines de vos diapositives mais voulez encore utiliser une variété de mises en page existantes, donc créer une nouvelle mise en page ne serait pas adapté. +Par exemple, vous pourriez vouloir écrire votre `slides.md` comme suit : + + + +```md +--- +layout: quote +_scale: 0.75 +--- + +# Bienvenue + +> bien! + +--- +_scale: 4 +--- +# Stop + +--- + +# Ok + +--- +layout: center +_scale: 2.5 +--- +# Questions? +a bientôt +``` + +Ici, nous avons utilisé un underscore dans `_scale` pour éviter les conflits possibles avec les propriétés frontmatter existantes (en effet, le cas de `scale`, sans underscore causerait des problèmes potentiels). + +Pour gérer cette syntaxe `_scale: ...` dans le frontmatter, créez un fichier `./setup/preparser.ts` avec le contenu suivant : + +```ts twoslash [./setup/preparser.ts] +import { definePreparserSetup } from '@slidev/types' + +export default definePreparserSetup(() => { + return [ + { + async transformSlide(content, frontmatter) { + if ('_scale' in frontmatter) { + return [ + ``, + '', + content, + '', + '' + ].join('\n') + } + }, + }, + ] +}) +``` + +Et c'est tout. + +### Cas d'utilisation 3 : utiliser le frontmatter personnalisé pour transformer les notes + +Imaginez un cas où vous souhaitez remplacer les notes par défaut des diapositives par des notes personnalisées. +Par exemple, vous pourriez vouloir écrire votre `slides.md` comme suit : + + + +```md +--- +layout: quote +_note: notes/note.md +--- + +# Bienvenue + +> bien! + + +``` + +Ici, nous avons utilisé un underscore dans `_note` pour éviter les conflits possibles avec les propriétés frontmatter existantes. + +Pour gérer cette syntaxe `_note: ...` dans le frontmatter, créez un fichier `./setup/preparser.ts` avec le contenu suivant : + +```ts twoslash [./setup/preparser.ts] +import fs, { promises as fsp } from 'node:fs' +import { definePreparserSetup } from '@slidev/types' + +export default definePreparserSetup(() => { + return [ + { + async transformNote(note, frontmatter) { + if ('_note' in frontmatter && fs.existsSync(frontmatter._note)) { + try { + const newNote = await fsp.readFile(frontmatter._note, 'utf8') + return newNote + } + catch (err) { + } + } + + return note + }, + }, + ] +}) +``` diff --git a/custom/config-routes.md b/custom/config-routes.md new file mode 100644 index 0000000..0a23970 --- /dev/null +++ b/custom/config-routes.md @@ -0,0 +1,28 @@ +# Configurer les routes + + + +Ajouter des pages personnalisées à l'application Slidev. + +## Utilisation + +Créez `./setup/routes.ts` avec le contenu suivant : + +```ts twoslash [./setup/routes.ts] +import { defineRoutesSetup } from '@slidev/types' + +export default defineRoutesSetup((routes) => { + return [ + ...routes, + { + path: '/my-page', + // ---cut-start--- + // @ts-expect-error missing types + // ---cut-end--- + component: () => import('../pages/my-page.vue'), + }, + ] +}) +``` + +En savoir plus sur les routes dans la [documentation de Vue Router](https://router.vuejs.org/). diff --git a/custom/config-shortcuts.md b/custom/config-shortcuts.md old mode 100755 new mode 100644 index 3fab6a0..14c1fc5 --- a/custom/config-shortcuts.md +++ b/custom/config-shortcuts.md @@ -1,20 +1,18 @@ # Configurer les raccourcis -> Disponible depuis v0.20 - -> Since v0.35.6 (excluded), you decide which base shortcuts to keep (see `...base,` below). - +## Pour commencer + Créez `./setup/shortcuts.ts` avec le contenu suivant : -```ts +```ts twoslash [./setup/shortcuts.ts] import type { NavOperations, ShortcutOptions } from '@slidev/types' import { defineShortcutsSetup } from '@slidev/types' export default defineShortcutsSetup((nav: NavOperations, base: ShortcutOptions[]) => { return [ - ...base, // keep the existing shortcuts + ...base, // conserver les raccourcis existants { key: 'enter', fn: () => nav.next(), @@ -29,26 +27,10 @@ export default defineShortcutsSetup((nav: NavOperations, base: ShortcutOptions[] }) ``` -Avec la configuration, vous pouvez fournir le paramètre personnalisé pour les raccourcis mentionnés dans [Navigation](/guide/navigation#navigation-bar). La configuration ci-dessus lie l'animation ou la diapositive suivante à enter et l'animation ou la diapositive précédente à backspace. - -La fonction de configuration reçoit un objet avec certaines méthodes de navigation et renvoie un tableau contenant une configuration de raccourci. Reportez-vous aux définitions de type pour plus de détails. +Dans la fonction de configuration, vous pouvez personnaliser les raccourcis clavier en retournant un nouveau tableau de raccourcis. L'exemple ci-dessus lie l'opération `next` à enter et l'opération `prev` à backspace. -Le type `key` n'autorise que les chaînes, mais vous pouvez toujours lier plusieurs clés en utilisant la convention suivante : +Veuillez vous référer à la section [Actions de navigation](../guide/ui#navigation-actions) pour les raccourcis par défaut et les opérations de navigation. -```ts -import type { NavOperations, ShortcutOptions } from '@slidev/types' -import { defineShortcutsSetup } from '@slidev/types' - -export default defineShortcutsSetup((nav: NavOperations, base: ShortcutOptions[]) => { - return [ - ...base, - { - key: 'ShiftLeft+ArrowRight', - fn: () => nav.next(), - autoRepeat: true, - } - ] -}) -``` +## Format des liaisons de touches -Reportez-vous à [useMagicKeys | VueUse](https://vueuse.org/core/useMagicKeys/) pour plus de détails sur l'événement de pression de touche. +Le `key` de chaque raccourci peut être soit une chaîne (par ex. `'Shift+Ctrl+A'`) soit un booléen calculé. Veuillez vous référer à [`useMagicKeys` de VueUse](https://vueuse.org/core/useMagicKeys/) pour diff --git a/custom/config-transformers.md b/custom/config-transformers.md new file mode 100644 index 0000000..b1906cc --- /dev/null +++ b/custom/config-transformers.md @@ -0,0 +1,39 @@ +# Configurer les transformateurs + + + +Cette fonction de configuration vous permet de définir des transformateurs personnalisés pour le contenu markdown de **chaque diapositive**. C'est utile lorsque vous souhaitez ajouter une syntaxe Markdown personnalisée et rendre des blocs de code personnalisés. Pour commencer, créez un fichier `./setup/transformers.ts` avec le contenu suivant : + +```ts twoslash [setup/transformers.ts] +import { defineCodeblockTransformer, defineMarkdownTransformer, defineTransformersSetup } from '@slidev/types' +import lz from 'lz-string' + +const mySyntax = defineMarkdownTransformer((ctx) => { + console.log('index in presentation', ctx.slide.index) + ctx.s.replace( + /^\[\[\[(.*)\]\]\]/gm, + (full, content) => { + return `...` + }, + ) +}) + +const myCodeblock = defineCodeblockTransformer((ctx) => { + if (ctx.info.startsWith('myblock')) { + console.log('index in presentation', ctx.slide?.index) + return `` + } +}) + +export default defineTransformersSetup(() => { + return { + // Ceci s'applique avant l'analyse du Markdown, par diapositive + pre: [mySyntax], + // Ceci s'applique par bloc de code Markdown + codeblocks: [myCodeblock], + } +}) +``` + +> [!NOTE] +> Lorsque c'est possible, implémentez les transformateurs `pre` comme des plugins markdown-it pour une meilleure robustesse. diff --git a/custom/config-unocss.md b/custom/config-unocss.md new file mode 100644 index 0000000..f509ca0 --- /dev/null +++ b/custom/config-unocss.md @@ -0,0 +1,46 @@ +# Configurer UnoCSS + + + +[UnoCSS](https://unocss.dev) est désormais le framework CSS par défaut pour Slidev depuis la v0.42.0. UnoCSS est un moteur CSS atomique rapide qui offre une grande flexibilité et extensibilité. La plupart des classes Tailwind CSS sont supportées **nativement**, et vous pouvez également l'étendre avec vos propres configurations. + +Par défaut, Slidev active les presets suivants nativement : + +- [@unocss/preset-wind3](https://unocss.dev/presets/wind3) - Utilitaires compatibles Tailwind / Windi CSS +- [@unocss/preset-attributify](https://unocss.dev/presets/attributify) - Mode Attributify +- [@unocss/preset-icons](https://unocss.dev/presets/icons) - Utiliser n'importe quelle icône comme classe +- [@unocss/preset-web-fonts](https://unocss.dev/presets/web-fonts) - Utiliser des polices web facilement +- [@unocss/transformer-directives](https://unocss.dev/transformers/directives) - Utiliser `@apply` en CSS + +Slidev ajoute également des raccourcis comme on peut le voir dans son [code source](https://github.com/slidevjs/slidev/blob/main/packages/client/uno.config.ts). + +Vous pouvez donc styliser votre contenu comme vous le souhaitez. Par exemple : + +```html +
+ +### Name + +- Item 1 +- Item 2 + +
+``` + +## Configurations + +Vous pouvez créer `uno.config.ts` à la racine de votre projet pour étendre les configurations intégrées + +```ts twoslash [uno.config.ts] +import { defineConfig } from 'unocss' + +export default defineConfig({ + shortcuts: { + // personnaliser l'arrière-plan par défaut + 'bg-main': 'bg-white text-[#181818] dark:(bg-[#121212] text-[#ddd])', + }, + // ... +}) +``` + +En savoir plus sur les [configurations UnoCSS](https://unocss.dev/guide/config-file) diff --git a/custom/config-vite.md b/custom/config-vite.md old mode 100755 new mode 100644 index 24f3d51..62225e1 --- a/custom/config-vite.md +++ b/custom/config-vite.md @@ -1,47 +1,83 @@ -# Configure Vite +# Configurer Vite et les plugins -Slidev est alimenté par [Vite](http://vitejs.dev/) sous le capot. Cela signifie que vous pouvez tirer parti de l'excellent système de plugins de Vite pour personnaliser encore plus vos diapositives. +Slidev est propulsé par [Vite](https://vitejs.dev/) en coulisses. Cela signifie que vous pouvez tirer parti du formidable système de plugins de Vite pour personnaliser vos diapositives encore plus. -La configuration `vite.config.ts` sera respectée si vous en avez une. +Le fichier `vite.config.ts` sera respecté si vous en avez un, et sera fusionné avec la configuration Vite fournie par Slidev, votre thème et les addons. -Slidev a les plugins suivants préconfigurés : +## Configurer les plugins internes + +Slidev ajoute en interne les plugins suivants à Vite : -- [@vitejs/plugin-vue](https://github.com/vitejs/vite/tree/main/packages/plugin-vue) -- [unplugin-vue-components](https://github.com/antfu/unplugin-vue-components) -- [unplugin-icons](https://github.com/antfu/unplugin-icons) -- [vite-plugin-vue-markdown](https://github.com/antfu/vite-plugin-vue-markdown) +- [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue) +- [unplugin-vue-components](https://github.com/unplugin/unplugin-vue-components) +- [unplugin-icons](https://github.com/unplugin/unplugin-icons) +- [vite-plugin-vue-markdown](https://github.com/unplugin/unplugin-vue-markdown) - [vite-plugin-remote-assets](https://github.com/antfu/vite-plugin-remote-assets) -- [vite-plugin-windicss](https://github.com/windicss/vite-plugin-windicss) - [unocss/vite](https://github.com/unocss/unocss/tree/main/packages/vite) -Découvrez le mode sur les [pré-configurations ici](https://github.com/slidevjs/slidev/blob/main/packages/slidev/node/plugins/preset.ts). - -## Configurer les plugins internes - -> Disponible depuis v0.21 +Pour configurer les plugins intégrés listés ci-dessus, créez un `vite.config.ts` avec le contenu suivant. Veuillez noter que Slidev a des [configurations par défaut](https://github.com/slidevjs/slidev/blob/main/packages/slidev/node/vite/index.ts) pour ces plugins, cette utilisation en remplacera certaines, ce qui pourrait potentiellement casser l'application. Veuillez traiter cela comme **une fonctionnalité avancée**, et assurez-vous de savoir ce que vous faites avant de continuer. -Pour configurer la liste des plugins intégrés ci-dessus, créez `vite.config.ts` avec le contenu suivant. Veuillez noter que Slidev a quelques options de préconfiguration pour ces plugins, cette utilisation remplacera certaines d'entre elles, ce qui pourrait potentiellement provoquer la panne de l'application. Veuillez considérer cela comme **une fonctionnalité avancée**, assurez-vous de savoir ce que vous faites avant de continuer. +```ts twoslash [vite.config.ts] +/* eslint-disable import/first */ +/// +import type MarkdownExit from 'markdown-exit' -```ts +declare const MyPlugin: (md: any) => void +// ---cut--- import { defineConfig } from 'vite' export default defineConfig({ slidev: { vue: { - /* vue options */ + /* options vue */ }, markdown: { - /* markdown-it options */ - markdownItSetup(md) { - /* custom markdown-it plugins */ - md.use(/* ... */) + /* options markdown-exit */ + markdownSetup(md) { + /* plugins markdown-exit personnalisés */ + md.use(MyPlugin) }, }, - /* options for other plugins */ + /* options pour les autres plugins */ }, }) ``` -Voir les [déclarations de types](https://github.com/slidevjs/slidev/blob/main/packages/slidev/node/options.ts#L50) pour plus d'options. +Voir les [déclarations de types](https://github.com/slidevjs/slidev/blob/main/packages/types/src/vite.ts#L11) pour plus d'options. + +::: warning +Il n'est pas permis de ré-ajouter des plugins qui sont déjà utilisés en interne par Slidev. Par exemple, au lieu de + +```ts twoslash +import Vue from '@vitejs/plugin-vue' +import { defineConfig } from 'vite' + +export default defineConfig({ + plugins: [ + Vue({ + /* options vue */ + }) + ], +}) +``` + +Veuillez passer les options Vue au champ `slidev.vue` comme décrit ci-dessus +::: + +## Ajouter des plugins personnalisés basés sur les données des diapositives + +Habituellement, vous pouvez ajouter des plugins Vite dans votre `vite.config.ts` (voir ci-dessus). +Cependant, si vous souhaitez ajouter des plugins basés sur les données des diapositives, vous devez ajouter un `./setup/vite-plugins.ts` avec le contenu suivant : + +```ts twoslash +import { defineVitePluginsSetup } from '@slidev/types' + +export default defineVitePluginsSetup((options) => { + return [ + // Vos plugins ici + // Les données des diapositives sont disponibles via options.data.slides + ] +}) +``` diff --git a/custom/config-vue.md b/custom/config-vue.md old mode 100755 new mode 100644 index 57766ac..9970471 --- a/custom/config-vue.md +++ b/custom/config-vue.md @@ -1,20 +1,25 @@ -# Configurer Vue +# Configurer l'application Vue Slidev utilise [Vue 3](https://v3.vuejs.org/) pour rendre l'application côté client. Vous pouvez étendre l'application pour ajouter des plugins ou des configurations personnalisés. -Créer `./setup/main.ts` avec le contenu suivant : +Créez `./setup/main.ts` avec le contenu suivant : -```ts +```ts twoslash [setup/main.ts] +/* eslint-disable import/first */ +import type { Plugin } from 'vue' + +declare const YourPlugin: Plugin +// ---cut--- import { defineAppSetup } from '@slidev/types' export default defineAppSetup(({ app, router }) => { - // Vue App + // Application Vue app.use(YourPlugin) }) ``` -Cela peut également être utilisé comme entrée principale de votre application Slidev pour effectuer des initialisations avant le démarrage de l'application. +Cela peut également être utilisé comme point d'entrée principal de votre application Slidev pour effectuer des initialisations avant le démarrage de l'application. -En savoir plus: [Vue Application API](https://v3.vuejs.org/api/application-api.html#component). +En savoir plus : [API de l'application Vue](https://v3.vuejs.org/api/application-api.html#component). diff --git a/custom/directory-structure.md b/custom/directory-structure.md old mode 100755 new mode 100644 index c9457b3..0e2a0fd --- a/custom/directory-structure.md +++ b/custom/directory-structure.md @@ -1,101 +1,53 @@ -# Structure du répertoire +# Structure des répertoires -Slidev utilise certaines conventions de structure de répertoires pour minimiser la surface de configuration et rendre les extensions de fonctionnalités flexibles et intuitives. +Slidev utilise des conventions de structure de répertoires pour minimiser la surface de configuration et rendre les extensions de fonctionnalités flexibles et intuitives. -La structure de base est la suivante : +La structure de répertoires conventionnelle est : ```bash your-slidev/ - ├── components/ # composants customisés - ├── layouts/ # mises en page customisées - ├── public/ # assets statiques - ├── setup/ # configuration personnalisée / hooks - ├── styles/ # style personnalisé + ├── components/ # composants personnalisés + ├── layouts/ # mises en page personnalisées + ├── public/ # ressources statiques + ├── setup/ # configuration / hooks personnalisés + ├── snippets/ # extraits de code + ├── styles/ # styles personnalisés ├── index.html # injections dans index.html - ├── slides.md # l'entrée principale des diapositives - ├── vite.config.ts # extension de vite config + ├── slides.md # entrée principale des diapositives + └── vite.config.ts # extension de la configuration vite ``` -Tous sont facultatifs. +Tous sont optionnels. ## Composants -Conventions: `./components/*.{vue,js,ts,jsx,tsx,md}` +Pattern : `./components/*.{vue,js,ts,jsx,tsx,md}` -Les composants à l'intérieur de ce répertoire peuvent être directement utilisés dans les diapositives Markdown avec le même nom de composant que le nom de fichier. - -Par exemple : - -```bash -your-slidev/ - ├── ... - └── components/ - ├── MyComponent.vue - └── HelloWorld.ts -``` - -```md - - -# My Slide - - - - - - - Slot - -``` - -Cette fonctionnalité est alimentée par [`unplugin-vue-components`](https://github.com/antfu/unplugin-vue-components), apprenez-en plus ici. - -Slidev fournit également des [composants intégrés](/builtin/components) que vous pouvez utiliser. + ## Mises en page -Conventions : `./layouts/*.{vue,js,ts,jsx,tsx}` +Pattern : `./layouts/*.{vue,js,ts,jsx,tsx}` -``` -your-slidev/ - ├── ... - └── layouts/ - ├── cover.vue - └── my-cool-theme.vue -``` - -Vous pouvez utiliser n'importe quel nom de fichier pour votre mise en page. Vous référencez ensuite votre mise en page dans votre en-tête YAML en utilisant le nom de fichier. - -```yaml ---- -layout: my-cool-theme ---- -``` - -Si la mise en page que vous fournissez porte le même nom qu'une mise en page intégrée ou une mise en page de thème, votre mise en page personnalisée prévaudra sur la mise en page intégrée / thème. L'ordre de priorité est `local > thème > intégré`. - -Dans le composant de mise en page, utilisez `` pour le contenu de la diapositive. Par exemple : - -```html - - -``` + ## Public -Conventions : `./public/*` +Pattern : `./public/*` -Les actifs de ce répertoire seront servis à la racine du chemin `/` pendant le développement, et copiés à la racine du répertoire dist tels quels. En savoir plus sur [le répertoire `public` de Vite](https://vitejs.dev/guide/assets.html#the-public-directory). +Les ressources dans ce répertoire seront servies au chemin racine `/` pendant le développement, et copiées à la racine du répertoire dist telles quelles. En savoir plus sur la [Gestion des ressources](../guide/faq#assets-handling). ## Style -Conventions : `./style.css` | `./styles/index.{css,js,ts}` +Pattern : `./style.css` | `./styles/index.{css,js,ts}` + +Les fichiers suivant cette convention seront injectés à la racine de l'App. Si vous devez importer plusieurs entrées CSS, vous pouvez créer la structure suivante et gérer l'ordre d'importation vous-même. + +:::warning +Le CSS global ici s'applique également à l'interface du présentateur. Privilégiez le scoping des styles aux diapositives individuelles, ou enveloppez vos sélecteurs sous `.slidev-layout` pour éviter que les styles ne fuitent dans le mode présentateur. -Les fichiers suivant cette convention seront injectés à la racine de l'application. Si vous devez importer plusieurs entrées CSS, vous pouvez créer la structure suivante et gérer vous-même l'ordre d'importation. +**Exemple :** Utilisez `.slidev-layout .grid { ... }` au lieu de simplement `.grid { ... }`. +::: ```bash your-slidev/ @@ -115,18 +67,20 @@ import './code.css' import './layouts.css' ``` -Les styles seront traités par [Windi CSS](http://windicss.org/) et [PostCSS](https://postcss.org/), vous pouvez donc utiliser l'imbrication css et [at-directives](https://windicss.org/features/directives.html) prêt à l'emploi. Par exemple : +Les styles seront traités par [UnoCSS](https://unocss.dev/) et [PostCSS](https://postcss.org/), vous pouvez donc utiliser l'imbrication CSS et les [at-directives](https://unocss.dev/transformers/directives#apply) et le Nested CSS nativement. Par exemple : -```less + + +```css .slidev-layout { - @apply px-14 py-10 text-[1.1rem]; + --uno: px-14 py-10 text-[1.1rem]; h1, h2, h3, h4, p, div { - @apply select-none; + --uno: select-none; } pre, code { - @apply select-text; + --uno: select-text; } a { @@ -135,18 +89,17 @@ Les styles seront traités par [Windi CSS](http://windicss.org/) et [PostCSS](ht } ``` -[En savoir plus sur la syntaxe](https://windicss.org/features/directives.html). +En savoir plus sur la syntaxe [ici](https://unocss.dev/transformers/directives#apply). ## `index.html` -Conventions : `index.html` +Pattern : `index.html` -Le `index.html` offre la possibilité d'injecter des balises meta et/ou des scripts dans le `index.html` principal +Le fichier `index.html` offre la possibilité d'injecter des balises meta et/ou des scripts dans le `index.html` principal Par exemple, pour le `index.html` personnalisé suivant : -```html - +```html [index.html] @@ -157,7 +110,7 @@ Par exemple, pour le `index.html` personnalisé suivant : ``` -Le fichier `index.html` final hébergé sera : +Le `index.html` hébergé final sera : ```html @@ -166,14 +119,14 @@ Le fichier `index.html` final hébergé sera : - +
- + @@ -181,7 +134,6 @@ Le fichier `index.html` final hébergé sera : ## Couches globales -Conventions : `global-top.vue` | `global-bottom.vue` - -En savoir plus: [Couches globales](/custom/global-layers) +Pattern : `global-top.vue` | `global-bottom.vue` | `custom-nav-controls.vue` | `slide-top.vue` | `slide-bottom.vue` + diff --git a/custom/index.md b/custom/index.md old mode 100755 new mode 100644 index ad5c4d3..07c38a6 --- a/custom/index.md +++ b/custom/index.md @@ -1,66 +1,105 @@ -# Customisations +# Personnalisations -Slidev est entièrement personnalisable, du style aux configurations d'outillage. Il vous permet de configurer les outils ci-dessous ([Vite](/custom/config-vite), [Windi CSS](/custom/config-windicss), [Monaco](/custom/config-monaco), etc.) +Slidev est entièrement personnalisable, du style aux configurations d'outils. Il vous permet de configurer les outils sous-jacents ([Vite](/custom/config-vite), [UnoCSS](/custom/config-unocss), [Monaco](/custom/config-monaco), etc.) -## Configurations du frontmatter +## Configurations du deck de diapositives {#headmatter} -Vous pouvez configurer Slidev dans le frontmatter de votre première diapositive, ce qui suit montre la valeur par défaut pour chaque option. +Vous pouvez configurer l'ensemble du projet de diapositives dans le frontmatter de votre **première** diapositive (c'est-à-dire le headmatter). Ce qui suit montre la valeur par défaut pour chaque option : ```yaml --- -# identifiant du thème ou nom du package -# En savoir plus : https://sli.dev/themes/use.html -theme: 'default' -# titre de votre diapositive, sera automatiquement déduit du premier en-tête s'il n'est pas spécifié -title: 'Slidev' -# titleTemplate pour la page Web, `%s` sera remplacé par le titre de la page +# identifiant du thème, nom du paquet ou chemin local +# En savoir plus : https://sli.dev/guide/theme-addon.html#use-theme +theme: default +# addons, peut être une liste de noms de paquets ou de chemins locaux +# En savoir plus : https://sli.dev/guide/theme-addon.html#use-addon +addons: [] +# titre de votre diapositive, sera déduit du premier en-tête si non spécifié +title: Slidev +# modèle de titre pour la page web, `%s` sera remplacé par le titre du deck de diapositives titleTemplate: '%s - Slidev' -# informations pour vos diapositives, peut être une chaîne de démarquage +# informations pour vos diapositives, peut être une chaîne Markdown info: false - -# téléchargement de pdf activé dans la version SPA, peut également être une URL personnalisée +# champ auteur pour les PDF ou PPTX exportés +author: Votre Nom Ici +# champ mots-clés pour les PDF exportés, séparés par des virgules +keywords: motcle1,motcle2 + +# activer le mode présentateur, peut être boolean, 'dev' ou 'build' +presenter: true +# activer l'exportateur navigateur, peut être boolean, 'dev' ou 'build' +browserExporter: dev +# activer le téléchargement PDF dans la construction SPA, peut aussi être une url personnalisée download: false -# nom de fichier du fichier d'exportation -exportFilename: 'slidev-exported' -# surligneur de syntaxe, peut être 'prism' ou 'shiki' -highlighter: 'prism' +# nom du fichier d'exportation +exportFilename: slidev-exported +# options d'exportation +# utiliser les options CLI d'exportation en format camelCase +# En savoir plus : https://sli.dev/guide/exporting.html +export: + format: pdf + timeout: 30000 + dark: false + withClicks: false + withToc: false +# activer twoslash, peut être boolean, 'dev' ou 'build' +twoslash: true # afficher les numéros de ligne dans les blocs de code lineNumbers: false -# activer l'éditeur monaco, peut être booléen, 'dev' ou 'build' -monaco: 'dev' -# télécharger les actifs distants en local à l'aide de vite-plugin-remote-assets, peut être booléen, 'dev' ou 'build' +# activer l'éditeur monaco, peut être boolean, 'dev' ou 'build' +monaco: true +# Où charger les types monaco, peut être 'cdn', 'local' ou 'none' +monacoTypesSource: local +# spécifier explicitement des paquets locaux supplémentaires pour importer les types +monacoTypesAdditionalPackages: [] +# spécifier explicitement des modules locaux supplémentaires comme dépendances de l'exécutable monaco +monacoRunAdditionalDeps: [] +# télécharger les ressources distantes localement via vite-plugin-remote-assets, peut être boolean, 'dev' ou 'build' remoteAssets: false -# contrôle si les textes des diapositives sont sélectionnables +# contrôle si les textes dans les diapositives sont sélectionnables selectable: true -# activer l'enregistrement de diapositives, peut être booléen, 'dev' ou 'build' -record: 'dev' +# activer l'enregistrement des diapositives, peut être boolean, 'dev' ou 'build' +record: dev +# activer le menu contextuel de Slidev, peut être boolean, 'dev' ou 'build' +contextMenu: true +# activer le verrouillage de l'écran, peut être boolean, 'dev' ou 'build' +wakeLock: true +# prendre un instantané pour chaque diapositive dans la vue d'ensemble +overviewSnapshots: false +# mode du routeur pour vue-router, peut être "history" ou "hash" +routerMode: history # forcer le schéma de couleur pour les diapositives, peut être 'auto', 'light' ou 'dark' -colorSchema: 'auto' -# mode routeur pour vue-router, peut être 'history' ou 'hash' -routerMode: 'history' -# ratio d'aspect pour les diapositives -aspectRatio: '16/9' -# largeur réelle du canvas, unité en px +colorSchema: auto +# rapport d'aspect des diapositives +aspectRatio: 16/9 +# largeur réelle du canevas, unité en px canvasWidth: 980 +# définit la transition par défaut entre les diapositives +# En savoir plus : https://sli.dev/guide/animations.html#slide-transitions +transition: undefined # ou BuiltinSlideTransition | string | TransitionGroupProps | null +# définit les préréglages d'animation par défaut pour les animations de clic +# En savoir plus : https://sli.dev/guide/animations.html#click-animation-presets +clickAnimation: undefined # ou chaîne séparée par des virgules # utilisé pour la personnalisation du thème, injectera les styles racine comme `--slidev-theme-x` pour l'attribut `x` themeConfig: primary: '#5d8392' # favicon, peut être un chemin de fichier local ou une URL favicon: 'https://cdn.jsdelivr.net/gh/slidevjs/slidev/assets/favicon.png' -# URL du serveur PlantUML utilisé pour afficher les diagrammes -plantUmlServer: 'https://www.plantuml.com/plantuml' -# polices seront automatiquement importées à partir des polices Google -# En savoir plus : https://sli.dev/custom/fonts +# URL du serveur PlantUML utilisé pour rendre les diagrammes +# En savoir plus : https://sli.dev/features/plantuml.html +plantUmlServer: https://www.plantuml.com/plantuml +# les polices seront automatiquement importées depuis Google Fonts +# En savoir plus : https://sli.dev/custom/config-fonts.html fonts: - sans: 'Roboto' - serif: 'Roboto Slab' - mono: 'Fira Code' + sans: Roboto + serif: Roboto Slab + mono: Fira Code -# le frontmatter par défaut s'applique à toutes les diapositives +# frontmatter par défaut appliqué à toutes les diapositives defaults: - layout: 'default' + layout: default # ... # options de dessin @@ -70,30 +109,93 @@ drawings: persist: false presenterOnly: false syncAll: true + +# attributs des balises HTML +htmlAttrs: + dir: ltr + lang: fr + +# balises méta SEO +seoMeta: + ogTitle: Modèle de démarrage Slidev + ogDescription: Diapositives de présentation pour développeurs + ogImage: https://cover.sli.dev + ogUrl: https://example.com + twitterCard: summary_large_image + twitterTitle: Modèle de démarrage Slidev + twitterDescription: Diapositives de présentation pour développeurs + twitterImage: https://cover.sli.dev + twitterSite: username + twitterUrl: https://example.com +--- ``` -Consultez les [définitions de type](https://github.com/slidevjs/slidev/blob/main/packages/types/src/types.ts#L29) pour plus d'options. +Consultez les [définitions de types](https://github.com/slidevjs/slidev/blob/main/packages/types/src/config.ts) pour plus de détails. -## Structure du répertoire +## Configurations par diapositive {#frontmatter} -Slidev utilise des conventions de structure de répertoires pour minimiser la surface de configuration et rendre les extensions de fonctionnalités flexibles et intuitives. +Chaque diapositive accepte également la configuration suivante dans son bloc frontmatter. Ce qui suit montre la valeur par défaut pour chaque option : -Reportez-vous à la section [Structure des répertoires](/custom/directory-structure). +```yaml +--- +# nombre de clics personnalisé +# En savoir plus : https://sli.dev/guide/animations#total +clicks: 0 +# nombre de clics de départ personnalisé +clicksStart: 0 +# désactiver complètement et masquer la diapositive +disabled: false +# identique à `disabled` +hide: false +# masquer la diapositive pour les composants +hideInToc: false +# définit le composant de mise en page appliqué à la diapositive +layout: <"cover" si la diapositive est la première, sinon "default"> +# remplacer le niveau de titre pour les composants et +# uniquement si `title` a aussi été déclaré +level: 1 +# précharger cette diapositive avant d'y entrer +preload: true +# créer un alias de route utilisable dans l'URL ou avec le composant +routeAlias: undefined # ou string +# inclure un fichier markdown +# En savoir plus : https://sli.dev/guide/syntax.html#importing-slides +src: undefined # ou string +# remplacer le titre pour les composants et +# uniquement si `title` a aussi été déclaré +title: undefined # ou string +# définit la transition entre la diapositive et la suivante +# En savoir plus : https://sli.dev/guide/animations.html#slide-transitions +transition: undefined # ou BuiltinSlideTransition | string | TransitionGroupProps | null +# définit les préréglages d'animation par défaut pour les animations de clic dans cette diapositive +# En savoir plus : https://sli.dev/guide/animations.html#click-animation-presets +clickAnimation: undefined # ou chaîne séparée par des virgules +# échelle de zoom personnalisée +# utile pour les diapositives avec beaucoup de contenu +zoom: 1 +# utilisé comme positions des éléments déplaçables +# En savoir plus : https://sli.dev/features/draggable.html +dragPos: {} # type: Record +--- +``` -## `vite.config.ts` +Consultez la [définition de type](https://github.com/slidevjs/slidev/blob/main/packages/types/src/frontmatter.ts#L260) pour plus de détails. -Reportez-vous à la section [Configurer Vite](/custom/config-vite). +## Structure des répertoires -## `windicss.config.ts` +Slidev utilise des conventions de structure de répertoires pour minimiser la surface de configuration et rendre les extensions de fonctionnalités flexibles et intuitives. + +Reportez-vous à la section [Structure des répertoires](/custom/directory-structure). -Reportez-vous à la section [Configurer Windi CSS](/custom/config-windicss). +## Outils de configuration -## Configuration des outils + -- [Surligneurs](/custom/highlighters) -- [Configurer Vue](/custom/config-vue) -- [Configurer Vite](/custom/config-vite) -- [Configurer Windi CSS](/custom/config-windicss) -- [Configurer Monaco](/custom/config-monaco) -- [Configurer KaTeX](/custom/config-katex) -- [Configurer Mermaid](/custom/config-mermaid) +
  • + + {{ c.text }} + +
  • diff --git a/features/block-frontmatter.md b/features/block-frontmatter.md new file mode 100644 index 0000000..cbe224b --- /dev/null +++ b/features/block-frontmatter.md @@ -0,0 +1,39 @@ +--- +depends: + - guide/syntax +relates: + - features/prettier-plugin +tags: [syntax] +description: | + Utiliser un bloc YAML comme frontmatter. +--- + +# Frontmatter en bloc + +La façon habituelle de définir les frontmatters des diapositives est concise, mais peut manquer de support de coloration syntaxique et de formatage. Pour résoudre cela, vous pouvez utiliser un bloc YAML au tout début du contenu de la diapositive comme frontmatter de la diapositive : + +````md +--- +theme: default +--- + +# Slide 1 + +--- + +```yaml +layout: quote +``` + +# Slide 2 + +--- + +# Slide 3 +```` + +::: warning À propos du headmatter + +Le headmatter dans Slidev est exactement ce qu'on appelle habituellement le « frontmatter » d'un fichier Markdown, qui est supporté par la plupart des éditeurs et formatages Markdown. Vous ne pouvez donc pas utiliser un bloc YAML comme headmatter de l'ensemble du deck de diapositives. + +::: diff --git a/features/build-with-pdf.md b/features/build-with-pdf.md new file mode 100644 index 0000000..dd6ca00 --- /dev/null +++ b/features/build-with-pdf.md @@ -0,0 +1,42 @@ +--- +depends: + - guide/exporting + - guide/hosting +relates: + - CLI export options: /builtin/cli#export + - Headmatter export options: /custom/#headmatter +tags: [export, build] +description: | + Générer un PDF téléchargeable avec la construction de vos diapositives. +--- + +# Générer un PDF lors de la construction + +Vous pouvez fournir un PDF téléchargeable dans vos diapositives construites avec la configuration suivante dans le headmatter : + +```md +--- +download: true +--- +``` + +Slidev générera un fichier PDF lors de la construction, et un bouton de téléchargement sera affiché dans la construction. + +Vous pouvez également fournir une URL personnalisée pour le PDF. Dans ce cas, le processus de rendu sera ignoré. + +```md +--- +download: 'https://myside.com/my-talk.pdf' +--- +``` + +Cela peut également être fait avec l'option CLI `--download` (`boolean` uniquement). + +```bash +$ slidev build --download +``` + +Lors de l'utilisation de l'option de téléchargement, vous pouvez également fournir les options d'exportation via : + +- [Options d'exportation CLI](/builtin/cli#export) +- [Options d'exportation du headmatter](/custom/#frontmatter-configures) diff --git a/features/bundle-remote-assets.md b/features/bundle-remote-assets.md new file mode 100644 index 0000000..bad972b --- /dev/null +++ b/features/bundle-remote-assets.md @@ -0,0 +1,29 @@ +--- +relates: + - vite-plugin-remote-assets: https://github.com/antfu/vite-plugin-remote-assets +tags: [build] +description: | + Télécharger et bundler les ressources distantes lors de la construction de vos diapositives. +--- + +# Bundler les ressources distantes + +Comme vous le feriez en markdown, vous pouvez utiliser des images pointant vers une URL distante ou locale. + +Pour les ressources distantes, le plugin intégré [`vite-plugin-remote-assets`](https://github.com/antfu/vite-plugin-remote-assets) les mettra en cache sur le disque au premier lancement, garantissant un chargement instantané même pour les grandes images par la suite. + +```md +![Remote Image](https://sli.dev/favicon.png) +``` + +Pour les ressources locales, placez-les dans le [dossier `public`](/custom/directory-structure.html#public) et référez-les avec un **slash initial** (c'est-à-dire `/pic.png`, PAS `./pic.png`, qui est relatif au fichier en cours). + +```md +![Local Image](/pic.png) +``` + +Si vous souhaitez appliquer des tailles ou styles personnalisés, vous pouvez les convertir en balise `` : + +```html + +``` diff --git a/features/canvas-size.md b/features/canvas-size.md new file mode 100644 index 0000000..6ac346c --- /dev/null +++ b/features/canvas-size.md @@ -0,0 +1,32 @@ +--- +relates: + - guide/faq#adjust-size + - features/zoom-slide + - features/transform-component +tags: [layout] +description: | + Définir la taille de toutes vos diapositives. +--- + +# Taille du canevas des diapositives + +Slidev vous permet de définir la taille du canevas des diapositives via les options `canvasWidth` et `aspectRatio` dans le headmatter : + +```md +--- +# aspect ratio pour les diapositives +aspectRatio: 16/9 +# largeur réelle des canevas, unité en px +canvasWidth: 980 +--- + +# Vos diapositives ici +``` + +Pour mettre à l'échelle plusieurs diapositives de votre présentation, vous pouvez utiliser l'option `zoom` : + + + +Pour ajuster la taille de certains éléments sur vos diapositives, vous pouvez utiliser le composant `Transform` : + + diff --git a/features/click-marker.md b/features/click-marker.md new file mode 100644 index 0000000..99d6adc --- /dev/null +++ b/features/click-marker.md @@ -0,0 +1,31 @@ +--- +depends: + - guide/syntax#notes + - guide/animations +since: v0.48.0 +tags: [presenter, animation] +description: | + Surligner les notes et défiler automatiquement vers la section active des notes. +--- + +# Marqueurs de clic + +Pour certaines diapositives, vous pouvez avoir des notes plus longues qui pourraient être difficiles à situer. Slidev supporte les marqueurs de clic qui permettent de mettre en surbrillance et de défiler automatiquement vers la section de notes correspondant à votre contenu. Placez des marqueurs `[click]` au début de n'importe quelle ligne dans vos notes pour le moment où vous devez passer à un autre [click](/guide/animations#click-animation). Vous pouvez sauter `n` clics en utilisant `[click:{n+1}]`. Par exemple : + +```md + +--> +``` + +Slidev divise le contenu entre les marqueurs de clic et le met en surbrillance dans les notes du présentateur, synchronisé avec la progression de votre diapositive. + + diff --git a/features/code-block-line-numbers.md b/features/code-block-line-numbers.md new file mode 100644 index 0000000..c54364c --- /dev/null +++ b/features/code-block-line-numbers.md @@ -0,0 +1,32 @@ +--- +depends: + - guide/syntax#code-block +tags: [codeblock] +description: | + Activer la numérotation des lignes pour tous les blocs de code dans les diapositives ou individuellement. +--- + +# Numéros de ligne + +Vous pouvez activer la numérotation des lignes pour tous les blocs de code dans les diapositives en définissant `lineNumbers: true` dans le headmatter, ou activer chaque bloc de code individuellement en définissant `lines: true`. + +Vous pouvez également définir la ligne de départ pour chaque bloc de code et surligner les lignes en conséquence via `{startLine: number}`, dont la valeur par défaut est 1. + +````md +```ts {6,7}{lines:true,startLine:5} +function add( + a: Ref | number, + b: Ref | number +) { + return computed(() => unref(a) + unref(b)) +} +``` +```` + +Notez que vous pouvez utiliser `{*}` comme espace réservé pour : + +````md +```ts {*}{lines:true,startLine:5} +// ... +``` +```` diff --git a/features/code-block-max-height.md b/features/code-block-max-height.md new file mode 100644 index 0000000..7e62c2a --- /dev/null +++ b/features/code-block-max-height.md @@ -0,0 +1,32 @@ +--- +depends: + - guide/syntax#code-block +tags: [codeblock, layout] +description: | + Définir une hauteur maximale pour un bloc de code et activer le défilement. +--- + +# Hauteur maximale + +Si le code ne tient pas dans une diapositive, vous pouvez utiliser `maxHeight` pour définir une hauteur fixe et activer le défilement : + +````md +```ts {2|3|7|12}{maxHeight:'100px'} +function add( + a: Ref | number, + b: Ref | number +) { + return computed(() => unref(a) + unref(b)) +} +/// ...autant de lignes que vous souhaitez +const c = add(1, 2) +``` +```` + +Notez que vous pouvez utiliser `{*}` comme espace réservé pour : + +````md +```ts {*}{maxHeight:'100px'} +// ... +``` +```` diff --git a/features/code-groups.md b/features/code-groups.md new file mode 100644 index 0000000..ab5cbc6 --- /dev/null +++ b/features/code-groups.md @@ -0,0 +1,156 @@ +--- +depends: + - guide/syntax#code-block +tags: [codeblock] +description: | + Regrouper plusieurs blocs de code et associer automatiquement une icône par le nom du titre. +--- + +# Groupes de code + +> [!NOTE] +> Cette fonctionnalité nécessite la [Syntaxe Comark](/features/comark#comark-syntax). Activez `comark: true` pour l'utiliser. + +Vous pouvez regrouper plusieurs blocs de code comme ceci : + +````md +::code-group + +```sh [npm] +npm i @slidev/cli +``` + +```sh [yarn] +yarn add @slidev/cli +``` + +```sh [pnpm] +pnpm add @slidev/cli +``` + +:: +```` + +## Correspondance d'icônes par titre + +Les `groupes de code`, les `blocs de code` et [`Shiki Magic Move`](/features/shiki-magic-move) supportent également la correspondance automatique d'icônes par le nom du titre. + +![code-groups-demo](/assets/code-groups-demo.png) + +::: info + +Par défaut, nous fournissons des icônes intégrées, vous pouvez les utiliser en installant [@iconify-json/vscode-icons](https://www.npmjs.com/package/@iconify-json/vscode-icons). + +::: + +::: details Toutes les icônes intégrées + +```js +const builtinIcons = { + // gestionnaires de paquets + 'pnpm': 'i-vscode-icons:file-type-light-pnpm', + 'npm': 'i-vscode-icons:file-type-npm', + 'yarn': 'i-vscode-icons:file-type-yarn', + 'bun': 'i-vscode-icons:file-type-bun', + 'deno': 'i-vscode-icons:file-type-deno', + // frameworks + 'vue': 'i-vscode-icons:file-type-vue', + 'svelte': 'i-vscode-icons:file-type-svelte', + 'angular': 'i-vscode-icons:file-type-angular', + 'react': 'i-vscode-icons:file-type-reactjs', + 'next': 'i-vscode-icons:file-type-light-next', + 'nuxt': 'i-vscode-icons:file-type-nuxt', + 'solid': 'logos:solidjs-icon', + 'astro': 'i-vscode-icons:file-type-light-astro', + // bundlers + 'rollup': 'i-vscode-icons:file-type-rollup', + 'webpack': 'i-vscode-icons:file-type-webpack', + 'vite': 'i-vscode-icons:file-type-vite', + 'esbuild': 'i-vscode-icons:file-type-esbuild', + // fichiers de configuration + 'package.json': 'i-vscode-icons:file-type-node', + 'tsconfig.json': 'i-vscode-icons:file-type-tsconfig', + '.npmrc': 'i-vscode-icons:file-type-npm', + '.editorconfig': 'i-vscode-icons:file-type-editorconfig', + '.eslintrc': 'i-vscode-icons:file-type-eslint', + '.eslintignore': 'i-vscode-icons:file-type-eslint', + 'eslint.config': 'i-vscode-icons:file-type-eslint', + '.gitignore': 'i-vscode-icons:file-type-git', + '.gitattributes': 'i-vscode-icons:file-type-git', + '.env': 'i-vscode-icons:file-type-dotenv', + '.env.example': 'i-vscode-icons:file-type-dotenv', + '.vscode': 'i-vscode-icons:file-type-vscode', + 'tailwind.config': 'vscode-icons:file-type-tailwind', + 'uno.config': 'i-vscode-icons:file-type-unocss', + 'unocss.config': 'i-vscode-icons:file-type-unocss', + '.oxlintrc': 'i-vscode-icons:file-type-oxlint', + 'vue.config': 'i-vscode-icons:file-type-vueconfig', + // extensions de fichiers + '.mts': 'i-vscode-icons:file-type-typescript', + '.cts': 'i-vscode-icons:file-type-typescript', + '.ts': 'i-vscode-icons:file-type-typescript', + '.tsx': 'i-vscode-icons:file-type-typescript', + '.mjs': 'i-vscode-icons:file-type-js', + '.cjs': 'i-vscode-icons:file-type-js', + '.json': 'i-vscode-icons:file-type-json', + '.js': 'i-vscode-icons:file-type-js', + '.jsx': 'i-vscode-icons:file-type-js', + '.md': 'i-vscode-icons:file-type-markdown', + '.py': 'i-vscode-icons:file-type-python', + '.ico': 'i-vscode-icons:file-type-favicon', + '.html': 'i-vscode-icons:file-type-html', + '.css': 'i-vscode-icons:file-type-css', + '.scss': 'i-vscode-icons:file-type-scss', + '.yml': 'i-vscode-icons:file-type-light-yaml', + '.yaml': 'i-vscode-icons:file-type-light-yaml', + '.php': 'i-vscode-icons:file-type-php', +} +``` + +::: + +## Icônes personnalisées + +Vous pouvez utiliser n'importe quel nom de la collection [iconify](https://icones.js.org) en utilisant la syntaxe `~icon~`, par exemple : + +````md +```js [npm ~i-uil:github~] +console.log('Hello, GitHub!') +``` +```` + +Pour que cela fonctionne, vous devez : + +1. Installer la collection de l'icône. + +:::code-group + +```sh [npm] +npm add @iconify-json/uil +``` + +```sh [yarn] +yarn add @iconify-json/uil +``` + +```sh [pnpm] +pnpm add @iconify-json/uil +``` + +```sh [bun] +bun add @iconify-json/uil +``` + +::: + +2. Ajouter l'icône au fichier `uno.config.ts`. + +```ts [uno.config.ts] {4-6} +import { defineConfig } from 'unocss' + +export default defineConfig({ + safelist: [ + 'i-uil:github', + ], +}) +``` diff --git a/features/comark.md b/features/comark.md new file mode 100644 index 0000000..3d78baa --- /dev/null +++ b/features/comark.md @@ -0,0 +1,31 @@ +--- +relates: + - Comark Syntax: https://comark.dev/syntax/markdown + - '@comark/markdown-it': https://github.com/comarkdown/comark +since: v0.43.0 +tags: [syntax, styling] +description: | + Une syntaxe puissante pour enrichir votre contenu markdown avec des composants et des styles. +--- + +# Syntaxe Comark + +Slidev supporte la [Syntaxe Comark](https://comark.dev/syntax/markdown) optionnelle (anciennement connue sous le nom de MDC, Markdown Components) propulsée par [`@comark/markdown-it`](https://github.com/comarkdown/comark). + +Vous pouvez l'activer en ajoutant `comark: true` dans le frontmatter de votre fichier markdown. + +```mdc +--- +comark: true +--- + +Ceci est un [text rouge]{style="color:red"} :inline-component{prop="value"} + +![](/image.png){width=500px lazy} + +::block-component{prop="value"} +Le slot **par défaut** +:: +``` + +En savoir plus sur la [Syntaxe Comark](https://comark.dev/syntax/markdown). diff --git a/features/direction-variant.md b/features/direction-variant.md new file mode 100644 index 0000000..02b55b8 --- /dev/null +++ b/features/direction-variant.md @@ -0,0 +1,31 @@ +--- +relates: + - UnoCSS Variants: https://unocss.dev/config/variants#variants +since: v0.48.0 +tags: [navigation, styling] +description: | + Appliquer différents styles et animations selon la direction de navigation. +--- + +# Variantes de direction de navigation + +Vous pourriez vouloir appliquer différentes classes selon que la navigation se fait vers l'avant ou vers l'arrière. La classe `.slidev-nav-go-forward` ou `.slidev-nav-go-backward` sera appliquée au conteneur de la diapositive lors de la navigation, et vous pouvez les utiliser pour appliquer différents styles ou animations : + +```css +/* exemple : délai uniquement en avant mais pas en arrière */ +.slidev-nav-go-forward .slidev-vclick-target { + transition-delay: 500ms; +} +.slidev-nav-go-backward .slidev-vclick-target { + transition-delay: 0; +} +``` + +Pour faciliter les choses, nous avons également fourni des [variantes UnoCSS](https://github.com/slidevjs/slidev/blob/6adcf2016b8fb0cab65cf150221f1f67a76a2dd8/packages/client/uno.config.ts#L32-L38) pour cela. Vous pouvez utiliser le préfixe `forward:` ou `backward:` avec n'importe quelle classe UnoCSS pour ne les activer que dans la direction de navigation spécifique : + +```html +
    Element
    // [!code --] +
    Element
    // [!code ++] +``` + +Dans l'exemple ci-dessus, l'animation n'est retardée que lors de la navigation vers l'avant. diff --git a/features/draggable.md b/features/draggable.md new file mode 100644 index 0000000..d6283a1 --- /dev/null +++ b/features/draggable.md @@ -0,0 +1,82 @@ +--- +tags: [layout] +description: | + Déplacer, redimensionner et faire pivoter des éléments en les faisant glisser avec la souris. +--- + +# Éléments déplaçables + +Les éléments déplaçables vous donnent la possibilité de déplacer, redimensionner et faire pivoter des éléments en les faisant glisser avec la souris. C'est utile pour créer des éléments flottants dans vos diapositives. + +## Utilisation avec directive + +### Données du frontmatter + +```md +--- +dragPos: + square: Left,Top,Width,Height,Rotate +--- + + +``` + +### Données de la valeur de la directive + +::: warning +Slidev utilise des expressions régulières pour mettre à jour la valeur de la position dans le contenu de la diapositive. Si vous rencontrez des problèmes, veuillez utiliser le frontmatter pour définir les valeurs à la place. +::: + +```md + +``` + +## Utilisation avec composant + +### Données du frontmatter + +```md +--- +dragPos: + foo: Left,Top,Width,Height,Rotate +--- + + +
    + Utilisez le composant `v-drag` pour avoir un conteneur déplaçable ! + +``` + +### Données des props + +```md + +
    + Utilisez le composant `v-drag` pour avoir un conteneur déplaçable ! + +``` + +## Créer un élément déplaçable + +Lorsque vous créez un nouvel élément déplaçable, vous n'avez pas besoin de spécifier la valeur de la position (mais vous devez spécifier le nom de la position si vous souhaitez utiliser le frontmatter). Slidev générera automatiquement la valeur de position initiale pour vous. + +## Hauteur automatique + +Vous pouvez définir `Height` sur `NaN` (en) ou `_` (si vous utilisez le composant) pour que la hauteur de l'élément déplaçable s'adapte automatiquement à son contenu. + +## Contrôles + +- Double-cliquez sur l'élément déplaçable pour commencer à le déplacer. +- Vous pouvez également utiliser les touches fléchées pour déplacer l'élément. +- Maintenez `Shift` pendant le déplacement pour conserver son rapport d'aspect. +- Cliquez en dehors de l'élément déplaçable pour arrêter de le déplacer. + +## Flèche déplaçable + +Le composant `` crée un élément de flèche déplaçable. Utilisez-le simplement comme ceci : + +```md + +``` + +Et vous obtiendrez un élément de flèche déplaçable. Les autres props sont les mêmes que [le composant `Arrow`](/builtin/components#arrow). diff --git a/features/drawing.md b/features/drawing.md new file mode 100644 index 0000000..5de8131 --- /dev/null +++ b/features/drawing.md @@ -0,0 +1,74 @@ +--- +depends: + - guide/ui#navigation-bar +relates: + - drauu: https://github.com/antfu/drauu +tags: [drawing] +description: | + Dessiner et annoter vos diapositives facilement. +--- + +# Dessin et annotations + +Slidev dispose d'une fonctionnalité intégrée de dessin et d'annotation propulsée par [drauu](https://github.com/antfu/drauu). Elle vous permet de dessiner et d'annoter vos diapositives facilement. + +Pour commencer, cliquez sur l'icône dans la [barre de navigation](../guide/ui#navigation-bar) pour ouvrir la barre d'outils de dessin. Elle est également disponible dans le [Mode Présentateur](/guide/ui#presenter-mode). Les dessins et annotations que vous créez seront **synchronisés** automatiquement entre toutes les instances en temps réel. + + + +## Utilisation avec un stylet + +Lors de l'utilisation d'un stylet sur une tablette (par exemple, iPad avec Apple Pencil), Slidev détectera intelligemment le type d'entrée. Vous pouvez dessiner directement sur vos diapositives avec le stylet sans activer le mode dessin tandis que vos doigts ou la souris contrôlent la navigation. + +## Persister les dessins + +La configuration frontmatter suivante vous permet de persister vos dessins en tant que SVGs dans le répertoire `.slidev/drawings` et de les inclure dans votre PDF exporté ou votre site hébergé. + +```md +--- +drawings: + persist: true +--- +``` + +## Désactiver les dessins + +Entièrement : + +```md +--- +drawings: + enabled: false +--- +``` + +Uniquement en développement : + +```md +--- +drawings: + enabled: dev +--- +``` + +Uniquement en mode présentateur : + +```md +--- +drawings: + presenterOnly: true +--- +``` + +## Synchronisation des dessins + +Par défaut, Slidev synchronise vos dessins entre toutes les instances. Si vous partagez vos diapositives avec d'autres, vous pourriez vouloir désactiver la synchronisation via : + +```md +--- +drawings: + syncAll: false +--- +``` + +Avec cette configuration, seul le dessin de l'instance présentateur pourra se synchroniser avec les autres. diff --git a/features/eject-theme.md b/features/eject-theme.md new file mode 100644 index 0000000..53661dd --- /dev/null +++ b/features/eject-theme.md @@ -0,0 +1,27 @@ +--- +depends: + - guide/theme-addon +tags: [theme, cli] +description: | + Éjecter le thème installé de votre projet pour le personnaliser. +--- + +# Éjecter le thème + +Si vous souhaitez obtenir un contrôle total du thème actuel, vous pouvez l'**éjecter** vers votre système de fichiers local et le modifier comme vous le souhaitez. En exécutant la commande suivante + +```bash +$ slidev theme eject +``` + +Cela éjectera le thème que vous utilisez actuellement dans `./theme`, et changera votre frontmatter en + +```yaml +--- +theme: ./theme +--- +``` + +Cela pourrait également être utile si vous souhaitez créer un thème basé sur un thème existant. Si vous le faites, n'oubliez pas de mentionner le thème original et l'auteur :) + +Pour plus d'options de la commande `theme`, veuillez vous référer à la section [Commande Theme](../builtin/cli#theme). diff --git a/features/frontmatter-merging.md b/features/frontmatter-merging.md new file mode 100644 index 0000000..c0e0968 --- /dev/null +++ b/features/frontmatter-merging.md @@ -0,0 +1,49 @@ +--- +depends: + - guide/syntax#importing-slides + - features/importing-slides +tags: [syntax] +description: | + Fusionner le frontmatter de plusieurs fichiers markdown. +--- + +# Fusion du frontmatter + +Vous pouvez fournir des instructions frontmatter depuis votre entrée principale et des pages markdown externes. S'il y a des clés en double, celles de l'**entrée principale ont la priorité la plus élevée**. Par exemple : + +::: code-group + +```md [./slides.md] +--- +src: ./cover.md +background: https://sli.dev/bar.png // [!code highlight] +class: text-center +--- +``` + +```md [./cover.md] +--- +layout: cover +background: https://sli.dev/foo.png // [!code highlight] +--- + +# Couverture + +Page de couverture +``` + +::: + +Ils finiront par être équivalents à la page suivante : + +```md +--- +layout: cover +background: https://sli.dev/bar.png // [!code highlight] +class: text-center +--- + +# Couverture + +Page de couverture +``` diff --git a/features/global-layers.md b/features/global-layers.md new file mode 100644 index 0000000..e0fae6f --- /dev/null +++ b/features/global-layers.md @@ -0,0 +1,99 @@ +--- +tags: [navigation, layout] +description: | + Créer des composants personnalisés qui persistent entre les diapositives. +--- + +# Couches globales + +Les couches globales vous permettent d'avoir des composants personnalisés qui **persistent** entre les diapositives. Cela peut être utile pour avoir des pieds de page, des animations inter-diapositives, des effets globaux, etc. + +Slidev fournit trois couches pour cet usage, créez `global-top.vue`, `global-bottom.vue`, ou `custom-nav-controls.vue` à la racine de votre projet et il les détectera automatiquement. + +Il existe également des couches pour **chaque** diapositive : `slide-top.vue` et `slide-bottom.vue`. L'usage est similaire aux couches globales, mais elles sont appliquées à chaque diapositive, il peut donc y avoir plus d'une instance de celles-ci. + +::: tip +Si vous utilisez `global-top.vue` ou `global-bottom.vue` en fonction de l'état de navigation actuel, lors de l'exportation, l'option `--per-slide` doit être utilisée pour garantir que l'état correct est appliqué à chaque diapositive. Ou vous pouvez utiliser `slide-top.vue` et `slide-bottom.vue` à la place. +::: + +## Relation des couches + +En z-axis, de haut en bas : + +- NavControls + - Contrôles de navigation personnalisés (`custom-nav-controls.vue`) +- Global Top (`global-top.vue`) - instance unique +- Slide Top (`slide-top.vue`) - instance par diapositive +- Contenu de la diapositive +- Slide Bottom (`slide-bottom.vue`) - instance par diapositive +- Global Bottom (`global-bottom.vue`) - instance unique + +## Exemple + +```html + + +``` + +Le texte `Your Name` apparaîtra sur toutes vos diapositives. + +```html + + +``` + +Le bouton `Next` apparaîtra dans NavControls. + +Pour l'activer conditionnellement, vous pouvez utiliser + +```html + + +``` + +```html + + +``` + +```html + + +``` + +```html + + + +``` diff --git a/features/icons.md b/features/icons.md new file mode 100644 index 0000000..4ec3896 --- /dev/null +++ b/features/icons.md @@ -0,0 +1,62 @@ +--- +relates: + - Iconify: https://iconify.design/ + - Icones: https://icones.js.org/ + - unplugin-icons: https://github.com/antfu/unplugin-icons +tags: [components] +description: | + Utiliser des icônes de pratiquement tous les ensembles d'icônes open-source directement dans votre markdown. +--- + +# Icônes + +Slidev vous permet d'accéder à pratiquement tous les ensembles d'icônes open-source **directement** dans votre markdown après avoir installé le paquet correspondant. Propulsé par [`unplugin-icons`](https://github.com/antfu/unplugin-icons) et [Iconify](https://iconify.design/). + +Le nommage suit la convention [Iconify](https://iconify.design/) de `{collection-name}-{icon-name}`. Par exemple : + +- `` - de [Material Design Icons](https://github.com/Templarian/MaterialDesign) - [`@iconify-json/mdi`](https://npmjs.com/package/@iconify-json/mdi) +- `` - de [Carbon](https://github.com/carbon-design-system/carbon/tree/main/packages/icons) - [`@iconify-json/carbon`](https://npmjs.com/package/@iconify-json/carbon) +- `` - de [Unicons Monochrome](https://github.com/Iconscout/unicons) - [`@iconify-json/uim`](https://npmjs.com/package/@iconify-json/uim) +- `` - de [Twemoji](https://github.com/twitter/twemoji) - [`@iconify-json/twemoji`](https://npmjs.com/package/@iconify-json/twemoji) +- `` - de [SVG Logos](https://github.com/gilbarbara/logos) - [`@iconify-json/logos`](https://npmjs.com/package/@iconify-json/logos) +- Et bien plus encore... + +::: code-group + +```bash [pnpm] +pnpm add @iconify-json/[the-collection-you-want] +``` + +```bash [npm] +npm install @iconify-json/[the-collection-you-want] +``` + +```bash [yarn] +yarn add @iconify-json/[the-collection-you-want] +``` + +```bash [bun] +bun add @iconify-json/[the-collection-you-want] +``` + +```bash [deno] +deno add jsr:@iconify-json/[the-collection-you-want] +``` + +::: + +Nous utilisons [Iconify](https://iconify.design) comme source de données pour les icônes. Vous devez installer l'ensemble d'icônes correspondant dans `dependencies` en suivant le motif `@iconify-json/*`. Par exemple, `@iconify-json/mdi` pour [Material Design Icons](https://materialdesignicons.com/), `@iconify-json/tabler` pour [Tabler](https://tabler-icons.io/). Vous pouvez vous référer à [Icônes](https://icones.js.org/) ou [Iconify](https://icon-sets.iconify.design/) pour toutes les collections disponibles. + +### Styliser les icônes + +Vous pouvez styliser les icônes comme n'importe quel autre élément HTML. Par exemple : + +```html + + + +``` + + + + diff --git a/features/import-snippet.md b/features/import-snippet.md new file mode 100644 index 0000000..5669443 --- /dev/null +++ b/features/import-snippet.md @@ -0,0 +1,48 @@ +--- +relates: + - features/monaco-write + - features/monaco-editor +since: v0.47.0 +tags: [codeblock, syntax] +description: | + Importer des extraits de code depuis des fichiers existants dans vos diapositives. +--- + +# Importer des extraits de code + +Vous pouvez importer des extraits de code depuis des fichiers existants via la syntaxe suivante : + +```md +<<< @/snippets/snippet.js +``` + +::: tip +La valeur de `@` correspond au répertoire racine de votre paquet. Il est recommandé de placer les extraits dans `@/snippets` pour être compatible avec l'éditeur Monaco. Alternativement, vous pouvez également importer depuis des chemins relatifs. +::: + +Vous pouvez également utiliser une [région VS Code](https://code.visualstudio.com/docs/editor/codebasics#_folding) pour n'inclure que la partie correspondante du fichier code : + +```md +<<< @/snippets/snippet.js#region-name +``` + +Pour spécifier explicitement le langage du code importé, vous pouvez ajouter un identifiant de langage après : + +```md +<<< @/snippets/snippet.js ts +``` + +Toutes les fonctionnalités de bloc de code comme [le surlignage de lignes](#line-highlighting) et [l'éditeur Monaco](#monaco-editor) sont également supportées : + +```md +<<< @/snippets/snippet.js {2,3|5}{lines:true} +<<< @/snippets/snippet.js ts {monaco}{height:200px} +``` + +Notez que vous pouvez utiliser `{*}` comme espace réservé pour : + + + +```md +<<< @/snippets/snippet.js {*}{lines:true} +``` diff --git a/features/importing-slides.md b/features/importing-slides.md new file mode 100644 index 0000000..2c8be68 --- /dev/null +++ b/features/importing-slides.md @@ -0,0 +1,69 @@ +--- +relates: + - features/frontmatter-merging +tags: [syntax] +description: | + Diviser votre `slides.md` en plusieurs fichiers pour une meilleure réutilisabilité et organisation. +--- + +# Importer des diapositives + +Vous pouvez diviser votre `slides.md` en plusieurs fichiers pour une meilleure réutilisabilité et organisation. Pour ce faire, vous pouvez utiliser l'option frontmatter `src` pour spécifier le chemin vers le fichier markdown externe. Par exemple : + +::: code-group + + + +```md [./slides.md] +# Title + +Ceci est une page normale + +--- +src: ./pages/toc.md // [!code highlight] +--- + + + +Le contenu ici est ignoré + +--- + +# Page 4 + +Une autre page normale + +--- +src: ./pages/toc.md # Reuse the same file // [!code highlight] +--- +``` + +```md [./pages/toc.md] +# Table des matières + +Partie 1 + +--- + +# Table des matières + +Partie 2 +``` + +::: + +## Importer des diapositives spécifiques + +Pour réutiliser certaines diapositives dans un autre fichier Markdown, vous pouvez utiliser la partie hash du chemin d'importation : + +```md +--- +src: ./another-presentation.md#2,5-7 +--- +``` + +Cela importera les diapositives 2, 5, 6 et 7 de `./another-presentation.md`. + +## Fusion du frontmatter + + diff --git a/features/index.data.ts b/features/index.data.ts new file mode 100644 index 0000000..48504d0 --- /dev/null +++ b/features/index.data.ts @@ -0,0 +1,64 @@ +import { basename } from 'node:path' +import { createContentLoader } from 'vitepress' + +const RE_FEATURE_NAME = /\/([\w-]+)($|#)/ +const RE_HEADING1 = /^# (.*)$/m + +export interface Feature { + name: string + title: string + link: string + description: string + depends: string[] + relates: string[] + derives: string[] + tags: string[] + since?: string +} + +export default createContentLoader('features/*.md', { + includeSrc: true, + transform(data) { + const derivesMap: Record = {} + for (const md of data) { + const name = basename(md.url, '.md') + if (name === 'index' || name === 'features') + continue + for (const depend of md.frontmatter.depends ?? []) { + const dependName = depend.match(RE_FEATURE_NAME)?.[1] + if (dependName) { + derivesMap[dependName] ??= [] + derivesMap[dependName].push(`features/${name}`) + } + } + } + + const result: Record = {} + for (const md of data) { + const name = basename(md.url, '.md') + if (name === 'index' || name === 'features') + continue + const title = md.src?.match(RE_HEADING1)?.[1]?.trim() ?? name + const derives = md.frontmatter.derives ?? [] + for (const d of derivesMap[name] ?? []) { + if (!derives.includes(d)) { + derives.push(d) + } + } + result[name] = { + name, + title, + link: `/features/${name}.html`, + description: md.frontmatter.description ?? '', + depends: md.frontmatter.depends ?? [], + relates: md.frontmatter.relates ?? [], + derives, + tags: md.frontmatter.tags ?? [], + since: md.frontmatter.since, + } + } + return result + }, +}) + +export declare const data: Record diff --git a/features/index.md b/features/index.md new file mode 100644 index 0000000..f4df98d --- /dev/null +++ b/features/index.md @@ -0,0 +1,102 @@ +--- +editLink: false +footer: false +aside: false +outline: false +sidebar: false +pageClass: all-features-page +--- + + + +# Fonctionnalités + +Voici la liste de toutes les fonctionnalités individuelles que Slidev fournit. Chaque fonctionnalité peut être utilisée indépendamment et est optionnelle. + +Vous pouvez également lire pour découvrir les fonctionnalités par thème. + + +
    +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + Aucun résultat trouvé + +
    + + + + + diff --git a/features/latex.md b/features/latex.md new file mode 100644 index 0000000..baf6090 --- /dev/null +++ b/features/latex.md @@ -0,0 +1,78 @@ +--- +relates: + - Demo: /demo/starter/11 + - KaTeX: https://katex.org/ +tags: [codeblock, syntax] +description: | + Slidev intègre le support LaTeX nativement, propulsé par KaTeX. +--- + +# LaTeX + +Slidev intègre le support LaTeX nativement, propulsé par [KaTeX](https://katex.org/). + +## En ligne + +Entourez votre LaTeX d'un seul `$` de chaque côté pour un rendu en ligne. + +```md +$\sqrt{3x-1}+(1+x)^2$ +``` + +## En bloc + +Utilisez deux (`$$`) pour un rendu en bloc. Ce mode utilise des symboles plus grands et centre le résultat. + +```latex +$$ +\begin{aligned} +\nabla \cdot \vec{E} &= \frac{\rho}{\varepsilon_0} \\ +\nabla \cdot \vec{B} &= 0 \\ +\nabla \times \vec{E} &= -\frac{\partial\vec{B}}{\partial t} \\ +\nabla \times \vec{B} &= \mu_0\vec{J} + \mu_0\varepsilon_0\frac{\partial\vec{E}}{\partial t} +\end{aligned} +$$ +``` + +## Surlignage de lignes + +Pour surligner des lignes spécifiques, ajoutez simplement les numéros de ligne entre accolades `{}`. Les numéros de ligne commencent à compter à partir de 1 par défaut. + +```latex +$$ {1|3|all} +\begin{aligned} +\nabla \cdot \vec{E} &= \frac{\rho}{\varepsilon_0} \\ +\nabla \cdot \vec{B} &= 0 \\ +\nabla \times \vec{E} &= -\frac{\partial\vec{B}}{\partial t} \\ +\nabla \times \vec{B} &= \mu_0\vec{J} + \mu_0\varepsilon_0\frac{\partial\vec{E}}{\partial t} +\end{aligned} +$$ +``` + +Les options `at` et `finally` des [blocs de code](#line-highlighting) sont également disponibles pour les blocs LaTeX. + +## Équations chimiques + +Pour activer le rendu des équations chimiques, l'extension KaTeX [mhchem](https://github.com/KaTeX/KaTeX/tree/main/contrib/mhchem) doit être chargée. + +Créez `vite.config.ts` avec le contenu suivant : + +```ts +import 'katex/contrib/mhchem' + +export default {} +``` + +Maintenant les équations chimiques peuvent être rendues correctement. + +```latex +$$ +\displaystyle{\ce{B(OH)3 + H2O <--> B(OH)4^- + H+}} +$$ +``` + +En savoir plus : [Syntaxe](https://mhchem.github.io/MathJax-mhchem) + +--- + + diff --git a/features/line-highlighting.md b/features/line-highlighting.md new file mode 100644 index 0000000..eb1ea34 --- /dev/null +++ b/features/line-highlighting.md @@ -0,0 +1,57 @@ +--- +depends: + - guide/syntax#code-block + - guide/animations +tags: [codeblock, animation] +description: | + Surligner des lignes spécifiques dans les blocs de code en fonction des clics. +--- + +# Surlignage de lignes + +Pour surligner des lignes spécifiques, ajoutez simplement les numéros de ligne entre accolades `{}`. Les numéros de ligne commencent à compter à partir de 1 par défaut. + +````md +```ts {2,3} +function add( + a: Ref | number, + b: Ref | number +) { + return computed(() => unref(a) + unref(b)) +} +``` +```` + +## Surlignage dynamique de lignes + +Pour changer ce qui est surligné avec plusieurs clics, vous pouvez utiliser `|` pour séparer chaque étape : + +````md +```ts {2-3|5|all} +function add( + a: Ref | number, + b: Ref | number +) { + return computed(() => unref(a) + unref(b)) +} +``` +```` + +Cela surlignera d'abord `a: Ref | number` et `b: Ref | number`, puis `return computed(() => unref(a) + unref(b))` après un clic, et enfin, tout le bloc. + +Vous pouvez définir le numéro de ligne sur `hide` pour masquer le bloc de code ou `none` pour ne surligner aucune ligne : + +````md +```ts {hide|none} +function add( + a: Ref | number, + b: Ref | number +) { + return computed(() => unref(a) + unref(b)) +} +``` +```` + +::: tip +En savoir plus dans le [guide des animations de clic](/guide/animations#positioning). +::: diff --git a/features/mermaid.md b/features/mermaid.md new file mode 100644 index 0000000..07d6c71 --- /dev/null +++ b/features/mermaid.md @@ -0,0 +1,37 @@ +--- +relates: + - Mermaid: https://mermaid.js.org/ + - Mermaid Live Editor: https://mermaid.live/ + - Demo Slide: https://sli.dev/demo/starter/12 + - features/plantuml +tags: [diagram] +description: | + Créer des diagrammes/graphiques à partir de descriptions textuelles, propulsé par Mermaid. +--- + +# Diagrammes Mermaid + +Vous pouvez également créer des diagrammes/graphiques à partir de descriptions textuelles dans votre Markdown, propulsés par [Mermaid](https://mermaid.js.org/). + +Les blocs de code marqués comme `mermaid` seront convertis en diagrammes, par exemple : + +````md +```mermaid +sequenceDiagram + Alice->John: Hello John, how are you? + Note over Alice,John: A typical interaction +``` +```` + +Vous pouvez également passer un objet d'options pour spécifier la mise à l'échelle et le thème. La syntaxe de l'objet est un littéral objet JavaScript, vous devrez ajouter des guillemets (`'`) pour les chaînes et utiliser une virgule (`,`) entre les clés. + +````md +```mermaid {theme: 'neutral', scale: 0.8} +graph TD +B[Text] --> C{Decision} +C -->|One| D[Result 1] +C -->|Two| E[Result 2] +``` +```` + +Visitez le [site web de Mermaid](https://mermaid.js.org/) pour plus d'informations. diff --git a/features/monaco-editor.md b/features/monaco-editor.md new file mode 100644 index 0000000..0e2d295 --- /dev/null +++ b/features/monaco-editor.md @@ -0,0 +1,49 @@ +--- +depends: + - guide/syntax#code-block +relates: + - Monaco Editor: https://microsoft.github.io/monaco-editor/ + - Configure Monaco Editor: /custom/config-monaco +tags: [codeblock, editor] +description: | + Transformer les blocs de code en éditeurs complets, ou générer un diff entre deux blocs de code. +--- + +# Éditeur Monaco + + + +Lorsque vous souhaitez effectuer une modification dans la présentation, ajoutez simplement `{monaco}` après l'identifiant de langage — cela transforme le bloc en un éditeur Monaco complet ! + +````md +```ts {monaco} +console.log('HelloWorld') +``` +```` + +En savoir plus sur la [Configuration de Monaco](/custom/config-monaco). + +## Éditeur de diff + +Monaco peut également générer un diff entre deux blocs de code. Utilisez `{monaco-diff}` pour transformer le bloc en un [éditeur de diff Monaco](https://microsoft.github.io/monaco-editor/playground.html?source=v0.36.1#example-creating-the-diffeditor-multi-line-example) et utilisez `~~~` pour séparer le code original et modifié ! + +````md +```ts {monaco-diff} +console.log('Original text') +~~~ +console.log('Modified text') +``` +```` + +## Hauteur de l'éditeur + +Par défaut, l'éditeur Monaco a une hauteur fixe basée sur le contenu initial. Si vous commencez avec un bloc de code vide ou petit et que vous souhaitez que l'éditeur grandisse automatiquement à mesure que vous tapez plus de code, vous pouvez définir `{height:'auto'}`. + +````md +```ts {monaco} {height:'auto'} +// L'éditeur grandira automatiquement à mesure que vous tapez du code +console.log('Hello, World!') +``` +```` + +Vous pouvez également définir une hauteur spécifique en utilisant des unités CSS comme `{height:'300px'}` ou `{height:'100%'}`. diff --git a/features/monaco-run.md b/features/monaco-run.md new file mode 100644 index 0000000..6f63292 --- /dev/null +++ b/features/monaco-run.md @@ -0,0 +1,44 @@ +--- +depends: + - features/monaco-editor + - guide/animations +relates: + - Custom Code Runners: /custom/config-code-runners +since: v0.48.0 +tags: [codeblock, editor] +description: | + Exécuter le code directement dans l'éditeur et voir le résultat. +--- + +# Exécuteur Monaco + +Slidev fournit également l'éditeur Exécuteur Monaco, qui vous permet d'exécuter le code directement dans l'éditeur et de voir le résultat. Utilisez `{monaco-run}` pour transformer le bloc en un éditeur Exécuteur Monaco. + +````md +```ts {monaco-run} +function distance(x: number, y: number) { + return Math.sqrt(x ** 2 + y ** 2) +} +console.log(distance(3, 4)) +``` +```` + +Il fournit à l'éditeur un bouton « Exécuter », et affiche le résultat de l'exécution du code juste en dessous du bloc de code. Vous pouvez également modifier le code et le résultat sera réévalué à la volée. + +Par défaut, il exécutera automatiquement le code lorsque la diapositive est chargée ; si vous souhaitez plutôt déclencher explicitement l'exécution, vous pouvez définir `{autorun:false}`. + +````md +```ts {monaco-run} {autorun:false} +console.log('Click the play button to run me') +``` +```` + +Si vous souhaitez n'afficher la sortie qu'à certains clics, vous pouvez utiliser la prop `showOutputAt`. La valeur est la même que `v-click`. + +````md +```ts {monaco-run} {showOutputAt:'+1'} +console.log('Shown after 1 click') +``` +```` + +Actuellement, Slidev supporte l'exécution de code JavaScript et TypeScript nativement. Référez-vous aux [Exécuteurs de code personnalisés](/custom/config-code-runners) pour le support de langages personnalisés. diff --git a/features/monaco-write.md b/features/monaco-write.md new file mode 100644 index 0000000..6dcc917 --- /dev/null +++ b/features/monaco-write.md @@ -0,0 +1,22 @@ +--- +depends: + - features/monaco-editor + - features/import-snippet +relates: + - features/import-snippet + - Custom Code Runners: /custom/config-code-runners +since: v0.49.5 +tags: [codeblock, editor] +description: | + Un éditeur Monaco qui permet d'écrire du code directement dans les diapositives et d'enregistrer les modifications dans le fichier. +--- + +# Éditeur Monaco en écriture + +Vous pouvez également utiliser la syntaxe [Importer des extraits de code](#import-code-snippets) combinée avec la directive `{monaco-write}`, pour lier votre éditeur Monaco à un fichier sur votre système de fichiers. Cela vous permettra de modifier le code directement dans l'éditeur et d'enregistrer les modifications dans le fichier. + +```md +<<< ./some-file.ts {monaco-write} +``` + +Lors de l'utilisation de cette fonctionnalité, assurez-vous de sauvegarder vos fichiers au préalable, car les modifications seront enregistrées directement dans le fichier. diff --git a/features/notes-auto-ruby.md b/features/notes-auto-ruby.md new file mode 100644 index 0000000..3e0a4d1 --- /dev/null +++ b/features/notes-auto-ruby.md @@ -0,0 +1,30 @@ +--- +tags: [notes, presenter] +description: Ajouter automatiquement des balises `` à vos notes. +--- + +# Ruby automatique pour les notes + +> Disponible depuis la v52.4.0 + +Lorsque vous écrivez des notes dans vos diapositives, vous pourriez vouloir ajouter du texte ruby pour aider à prononcer certains mots. Vous pouvez toujours ajouter des balises `` à vos notes manuellement, mais Slidev propose également un moyen pratique de le faire automatiquement par un remplacement global automatique. + +Dans le headmatter, vous pouvez définir l'option `notesAutoRuby` sur une carte de mots vers leur texte ruby : + +```md +--- +notesAutoRuby: + 日本語: ni hon go + 勉強: べんきょう +--- + +# Vos diapositives ici + + +``` + +Et les notes seront rendues comme : + +

    私は日本語ni hon go勉強べんきょうしています。

    diff --git a/features/og-image.md b/features/og-image.md new file mode 100644 index 0000000..31936f9 --- /dev/null +++ b/features/og-image.md @@ -0,0 +1,41 @@ +--- +relates: + - features/seo-meta +tags: ['SEO', head] +description: | + Définir l'image Open Graph pour vos diapositives. +--- + +# Image Open Graph + +Slidev vous permet de définir l'image Open Graph via l'option `seoMeta.ogImage` dans le headmatter : + +```md +--- +seoMeta: + ogImage: https://url.to.your.image.png +--- + +# Vos diapositives ici +``` + +En savoir plus sur les [Balises méta SEO](./seo-meta). + +## Image locale + +Si vous avez `./og-image.png` à la racine de votre projet, Slidev la prendra comme image Open Graph automatiquement sans aucune configuration. + +## Génération automatique + +Depuis la v52.1.0, Slidev supporte la génération automatique de l'image Open Graph à partir de la première diapositive. + +Vous pouvez définir `seoMeta.ogImage` sur `auto` pour activer cette fonctionnalité. + +```md +--- +seoMeta: + ogImage: auto +--- +``` + +Il utilisera [playwright](https://playwright.dev/) pour capturer la première diapositive et la sauvegarder en tant que `./og-image.png` (même chose que `slidev export`). Vous pouvez également commettre l'image générée dans votre dépôt pour éviter la génération automatique. Ou si vous la générez sur CI, vous pourriez également vouloir configurer l'environnement playwright. diff --git a/features/plantuml.md b/features/plantuml.md new file mode 100644 index 0000000..c1004e3 --- /dev/null +++ b/features/plantuml.md @@ -0,0 +1,26 @@ +--- +relates: + - Plant UML: https://plantuml.com/ + - Plant UML Live Editor: https://plantuml.com/plantuml + - Example Slide: https://sli.dev/demo/starter/12 + - features/mermaid +tags: [diagram] +description: | + Créer des diagrammes à partir de descriptions textuelles, propulsé par PlantUML. +--- + +# Diagrammes PlantUML + +Vous pouvez créer des diagrammes PlantUML facilement dans vos diapositives, par exemple : + +````md +```plantuml +@startuml +Alice -> Bob : Hello! +@enduml +``` +```` + +Le code source sera envoyé à https://www.plantuml.com/plantuml pour rendre le diagramme par défaut. Vous pouvez également configurer votre propre serveur en définissant `plantUmlServer` dans la [configuration de Slidev](../custom/index#headmatter). + +Visitez le [site web de PlantUML](https://plantuml.com/) pour plus d'informations. diff --git a/features/prettier-plugin.md b/features/prettier-plugin.md new file mode 100644 index 0000000..30a9aa2 --- /dev/null +++ b/features/prettier-plugin.md @@ -0,0 +1,59 @@ +--- +relates: + - features/block-frontmatter + - GitHub Repo: https://github.com/slidevjs/prettier-plugin + - Prettier: https://prettier.io/ +tags: [editor] +description: | + Utiliser le plugin Prettier pour formater vos diapositives. +--- + +# Plugin Prettier + +La syntaxe de Slidev peut être incompatible avec l'analyseur Markdown par défaut de [Prettier](https://prettier.io/). Pour résoudre cela, Slidev fournit un plugin Prettier pour formater vos diapositives. Vous pouvez l'utiliser avec votre éditeur préféré qui supporte Prettier. + +## 1. Installer + +::: code-group + +```bash [npm] +npm i -D prettier prettier-plugin-slidev +``` + +```bash [pnpm] +pnpm i -D prettier prettier-plugin-slidev +``` + +```bash [yarn] +yarn add -D prettier prettier-plugin-slidev +``` + +```bash [bun] +bun add -D prettier prettier-plugin-slidev +``` + +```bash [deno] +deno add -D npm:prettier npm:prettier-plugin-slidev +``` + +::: + +## 2. Activer le plugin + +Créez ou modifiez votre [fichier de configuration prettier](https://prettier.io/docs/en/configuration) pour activer le plugin : + +```json +{ + "overrides": [ + { + "files": ["slides.md", "pages/*.md"], + "options": { + "parser": "slidev", + "plugins": ["prettier-plugin-slidev"] + } + } + ] +} +``` + +Notez que spécifier uniquement `plugins` ne suffit pas, car Slidev et les fichiers Markdown courants partagent la même extension de fichier `.md`. diff --git a/features/recording.md b/features/recording.md new file mode 100644 index 0000000..416c38d --- /dev/null +++ b/features/recording.md @@ -0,0 +1,28 @@ +--- +depends: + - guide/ui#navigation-bar +relates: + - RecordRTC: https://github.com/muaz-khan/RecordRTC + - WebRTC API: https://webrtc.org/ +tags: [presenter, tool] +description: | + Enregistrer votre présentation avec la vue caméra et la fonctionnalité d'enregistrement intégrées. +--- + +# Enregistrement + +Slidev dispose d'une fonctionnalité intégrée de vue caméra et d'enregistrement. Elles simplifient l'enregistrement de votre présentation sans avoir à basculer entre d'autres outils d'enregistrement pendant la présentation. + +## Vue caméra {#camera-view} + +Cliquez sur le bouton dans la [barre de navigation](../guide/ui#navigation-bar) pour afficher votre vue caméra dans la présentation. Vous pouvez la faire glisser pour la déplacer, et utiliser la poignée dans le coin inférieur droit pour la redimensionner. La taille et la position seront conservées entre les rechargements. + + + +## Commencer l'enregistrement {#start-recording} + +Cliquer sur le bouton dans la [barre de navigation](../guide/ui#navigation-bar) ouvrira une boîte de dialogue. Ici, vous pouvez choisir soit d'enregistrer la sortie de votre caméra intégrée dans vos diapositives, soit de les séparer en deux fichiers vidéo. + +Cette fonctionnalité est propulsée par [RecordRTC](https://github.com/muaz-khan/RecordRTC) et utilise l'[API WebRTC](https://webrtc.org/). + +![](/screenshots/recording.png) diff --git a/features/remote-access.md b/features/remote-access.md new file mode 100644 index 0000000..e0d617a --- /dev/null +++ b/features/remote-access.md @@ -0,0 +1,79 @@ +--- +relates: + - guide/ui + - CLI: builtin/cli + - Cloudflare Quick Tunnels: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/do-more-with-tunnels/trycloudflare/ +tags: [remote, tool] +description: | + Accéder à votre présentation à distance avec la fonctionnalité d'accès distant de Slidev. +--- + +# Accès distant + +Vous pouvez exécuter votre présentation avec un accès distant en utilisant le drapeau `--remote` : + +::: code-group + +```bash [pnpm] +pnpm dev --remote +# i.e. slidev --remote +``` + +```bash [npm] +npm run dev -- --remote +# i.e. slidev --remote +``` + +```bash [yarn] +yarn dev --remote +# i.e. slidev --remote +``` + +```bash [bun] +bun dev --remote +# i.e. slidev --remote +``` + +```bash [deno] +deno run dev --remote +# i.e. slidev --remote +``` + +::: + +## Protection par mot de passe + +Si vous souhaitez partager vos diapositives mais ne voulez pas que d'autres personnes accèdent au mode présentateur, vous pouvez passer un mot de passe à l'option, c'est-à-dire `--remote=votre_mot_de_passe`. Le mot de passe sera alors requis lors de l'accès au mode présentateur. + +## Tunnel distant + +Vous pouvez ouvrir un [Cloudflare Quick Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/do-more-with-tunnels/trycloudflare/) pour exposer votre serveur local à Internet. Ainsi, vous pouvez partager vos diapositives avec d'autres sans configurer de serveur. + +::: code-group + +```bash [pnpm] +pnpm dev --remote --tunnel +# i.e. slidev --remote --tunnel +``` + +```bash [npm] +npm run dev -- --remote --tunnel +# i.e. slidev --remote --tunnel +``` + +```bash [yarn] +yarn dev --remote --tunnel +# i.e. slidev --remote --tunnel +``` + +```bash [bun] +bun dev --remote --tunnel +# i.e. slidev --remote --tunnel +``` + +```bash [deno] +deno run dev --remote --tunnel +# i.e. slidev --remote --tunnel +``` + +::: diff --git a/features/rough-marker.md b/features/rough-marker.md new file mode 100644 index 0000000..f6a731c --- /dev/null +++ b/features/rough-marker.md @@ -0,0 +1,46 @@ +--- +depends: + - guide/animations +relates: + - Rough Notation: https://github.com/slidevjs/rough-notation +since: v0.48.0 +tags: [drawing, animation] +description: | + Intégrer Rough Notation pour permettre de marquer ou surligner des éléments dans vos diapositives. +--- + +# Marqueurs Rough + +Slidev intègre [Rough Notation](https://github.com/slidevjs/rough-notation) pour permettre de marquer ou surligner des éléments dans vos diapositives. + +--- + +### Directive `v-mark` + +L'intégration de Rough Notation est fournie avec la directive `v-mark`. + +#### Type + +Utilisez `v-mark.underline` pour le soulignement, `v-mark.circle` pour le cerclage, etc. (par défaut `underline`). + +#### Couleur + +`v-mark.red` rend la notation `rouge`. Thèmes de couleurs intégrés supportés depuis UnoCSS. Pour des couleurs personnalisées, utilisez la syntaxe objet `v-mark="{ color: '#234' }"`. + +#### Clics + +`v-mark` fonctionne comme `v-click` et se déclenchera après un clic. Comme `v-click`, il vous permet de passer une valeur de clic personnalisée, comme `v-mark="5"` ou `v-mark="'+1'"`. + +#### Options + +Optionnellement, vous pouvez passer un objet à `v-mark` pour spécifier les options, par exemple : + +```vue + +Texte important + +``` + +#### Aperçu + + diff --git a/features/seo-meta.md b/features/seo-meta.md new file mode 100644 index 0000000..738df94 --- /dev/null +++ b/features/seo-meta.md @@ -0,0 +1,36 @@ +--- +depends: + - custom/index#headmatter +relates: + - features/og-image +tags: [SEO, head] +description: | + Configurer les balises méta SEO pour un meilleur partage sur les réseaux sociaux et l'optimisation pour les moteurs de recherche. +--- + +# Balises méta SEO + +Slidev vous permet de configurer les balises méta SEO dans le headmatter pour améliorer le partage sur les réseaux sociaux et l'optimisation pour les moteurs de recherche. Vous pouvez configurer les balises méta Open Graph et Twitter Card pour contrôler comment vos diapositives apparaissent lorsqu'elles sont partagées sur les plateformes sociales. + +## Configuration + +Ajoutez la configuration `seoMeta` au frontmatter de votre deck de diapositives : + +```yaml +--- +# SEO meta tags +seoMeta: + ogTitle: Slidev Starter Template + ogDescription: Presentation slides for developers + ogImage: https://cover.sli.dev + ogUrl: https://example.com + twitterCard: summary_large_image + twitterTitle: Slidev Starter Template + twitterDescription: Presentation slides for developers + twitterImage: https://cover.sli.dev + twitterSite: username + twitterUrl: https://example.com +--- +``` + +Cette fonctionnalité est propulsée par le hook `useHead` de [unhead](https://unhead.unjs.io/), veuillez vous référer à la [documentation](https://unhead.unjs.io/docs/head/api/composables/use-seo-meta) pour plus de détails. diff --git a/features/shiki-magic-move.md b/features/shiki-magic-move.md new file mode 100644 index 0000000..fcb9506 --- /dev/null +++ b/features/shiki-magic-move.md @@ -0,0 +1,116 @@ +--- +depends: + - guide/syntax#code-block + - guide/animations +relates: + - Shiki Magic Move: https://github.com/shikijs/shiki-magic-move +since: v0.48.0 +tags: [codeblock, animation] +description: | + Activer une transition granulaire entre les modifications de code, similaire au Magic Move de Keynote. +--- + +# Shiki Magic Move + +[Shiki Magic Move](https://github.com/shikijs/shiki-magic-move) vous permet d'avoir une transition granulaire entre les modifications de code, similaire au Magic Move de Keynote. Vous pouvez consulter [le playground](https://shiki-magic-move.netlify.app/) pour voir comment ça fonctionne. + + + +Dans Slidev, nous lions le magic-move au [système de clics](/guide/animations#click-animation). La syntaxe consiste à envelopper plusieurs blocs de code représentant chaque étape avec ````md magic-move (attention, ce sont **4** backticks), cela sera transformé en un seul bloc de code, qui se morphing à chaque étape au fur et à mesure que vous cliquez. + +`````md +````md magic-move +```js +console.log(`Step ${1}`) +``` +```js +console.log(`Step ${1 + 1}`) +``` +```ts +console.log(`Step ${3}` as string) +``` +```` +````` + +Il est également possible de combiner Magic Move avec et , par exemple : + +`````md +````md magic-move {at:4, lines: true} // [!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 {*}{lines: false} // [!code hl] +let count = 1 +const add = () => count += 1 +``` +```` +````` + +## Barre de titre {#title-bar} + +> Disponible depuis la v0.52.0 + +Vous pouvez ajouter une barre de titre aux blocs magic move en spécifiant un nom de fichier dans la clôture d'ouverture de chaque étape : + +`````md +````md magic-move [app.js] +```js +console.log('Step 1') +``` +```js +console.log('Step 2') +``` +```` +````` + +La barre de titre affichera également une icône automatiquement appariée basée sur le nom de fichier (voir ). + +## Durée de l'animation {#duration} + +> Disponible depuis la v0.52.0 + +Vous pouvez personnaliser la durée de l'animation pour les transitions magic move globalement via le headmatter : + +```yaml +--- +magicMoveDuration: 500 # duration in milliseconds, default is 800 +--- +``` + +Ou par bloc en passant l'option `duration` : + +`````md +````md magic-move {duration:500} +```js +console.log('Step 1') +``` +```js +console.log('Step 2') +``` +```` +````` + +## Bouton de copie {#copy-button} + +> Disponible depuis la v0.52.0 + +Les blocs de code magic move supportent un bouton de copie qui apparaît au survol. Configurez ce comportement globalement avec l'option headmatter `magicMoveCopy` : + + + +```yaml +--- +# Options: true | false | 'always' | 'final' +magicMoveCopy: true # afficher le bouton de copie sur toutes les étapes (par défaut) +magicMoveCopy: false # désactiver le bouton de copie +magicMoveCopy: 'final' # afficher le bouton de copie uniquement sur la dernière étape +--- +``` + +Le bouton de copie respecte le paramètre global `codeCopy`. Si `codeCopy` est `false`, le bouton de copie magic move sera également désactivé. diff --git a/features/side-editor.md b/features/side-editor.md new file mode 100644 index 0000000..a0caafd --- /dev/null +++ b/features/side-editor.md @@ -0,0 +1,17 @@ +--- +depends: + - guide/ui#navigation-actions +relates: + - features/vscode-extension +tags: [editor] +description: | + Modifier le fichier source de vos diapositives en parallèle de la présentation. +--- + +# Éditeur intégré + +Slidev dispose d'un éditeur intégré qui rechargera instantanément et enregistrera les modifications dans votre fichier. + +Cliquez sur le bouton sur le panneau de navigation pour l'ouvrir. + +![](/screenshots/integrated-editor.png) diff --git a/features/slide-hook.md b/features/slide-hook.md new file mode 100644 index 0000000..994cd36 --- /dev/null +++ b/features/slide-hook.md @@ -0,0 +1,33 @@ +--- +depends: + - guide/global-context +tags: [client-api] +description: | + Hooks pour gérer le cycle de vie des diapositives. +--- + +# Hooks de diapositives + +Slidev fournit un ensemble de hooks pour vous aider à gérer le cycle de vie des diapositives : + +```ts twoslash +import { onSlideEnter, onSlideLeave, useIsSlideActive } from '@slidev/client' + +const isActive = useIsSlideActive() + +onSlideEnter((to, from) => { + /* Appelé chaque fois que la diapositive devient active */ +}) + +onSlideLeave((to, from) => { + /* Appelé chaque fois que la diapositive devient inactive */ +}) +``` + +Vous pouvez également utiliser pour accéder à d'autres informations de contexte utiles. + +::: warning + +Dans le composant de diapositive, les hooks `onMounted` et `onUnmounted` ne sont pas disponibles, car l'instance du composant est préservée même lorsque la diapositive n'est pas active. Utilisez `onSlideEnter` et `onSlideLeave` à la place. + +::: diff --git a/features/slide-scope-style.md b/features/slide-scope-style.md new file mode 100644 index 0000000..e9e91a6 --- /dev/null +++ b/features/slide-scope-style.md @@ -0,0 +1,44 @@ +--- +relates: + - Vue's Scoped CSS: https://vuejs.org/api/sfc-css-features.html#scoped-css + - UnoCSS directives: https://unocss.dev/transformers/directives +tags: [styling, syntax] +description: | + Définir des styles uniquement pour la diapositive actuelle. +--- + +# Styles à portée de diapositive + +Vous pouvez utiliser la balise ` + +--- + +# Les autres diapositives ne sont pas affectées +``` + +La balise ` +``` diff --git a/features/slot-sugar.md b/features/slot-sugar.md new file mode 100644 index 0000000..0c6697d --- /dev/null +++ b/features/slot-sugar.md @@ -0,0 +1,83 @@ +--- +relates: + - Vue's Named Slots: https://v3.vuejs.org/guide/component-slots.html +tags: [layout, syntax] +description: | + Un sucre syntaxique pour les slots nommés dans les mises en page. +--- + +# Sucre syntaxique pour les slots des mises en page + +Certaines mises en page peuvent fournir plusieurs points de contribution en utilisant les [slots nommés de Vue](https://vuejs.org/guide/components/slots.html). + +Par exemple, dans la [mise en page `two-cols`](https://github.com/slidevjs/slidev/blob/main/packages/client/layouts/two-cols.vue), vous pouvez avoir deux colonnes gauche (slot `default`) et droite (slot `right`) côte à côte. + +```md +--- +layout: two-cols +--- + + + +``` + +
    +
    +

    Gauche

    +

    Ceci s'affiche à gauche

    +
    +
    +

    Droite

    +

    Ceci s'affiche à droite

    +
    +
    + +Nous fournissons également un raccourci syntaxique `::name::` pour le nom du slot. Ce qui suit fonctionne exactement de la même manière que l'exemple précédent. + +```md +--- +layout: two-cols +--- + +# Gauche + +Ceci s'affiche à gauche + +::right:: + +# Droite + +Ceci s'affiche à droite +``` + +Vous pouvez également spécifier explicitement le slot par défaut et le fournir dans l'ordre personnalisé. + +```md +--- +layout: two-cols +--- + +::right:: + +# Droite + +Ceci s'affiche à droite + +::default:: + +# gauche + +Ceci s'affiche à gauche +``` diff --git a/features/timer.md b/features/timer.md new file mode 100644 index 0000000..9791d2c --- /dev/null +++ b/features/timer.md @@ -0,0 +1,23 @@ +--- +tags: [presenter] +description: Minuteur pour le mode présentateur. +--- + +# Minuteur du présentateur + +Slidev fournit un minuteur pour le mode présentateur. Vous pouvez démarrer, mettre en pause et réinitialiser le minuterie. + +Il affichera un minuteur (en mode chronomètre ou compte à rebours), et une barre de progression dans le mode présentateur. + +## Configuration + +Vous pouvez définir la durée de la présentation dans le headmatter. La valeur par défaut est `30min`. + +```yaml +--- +# durée de la présentation, par défaut '30min' +duration: 30min +# # Mode minuterie, peut être 'countdown' ou 'stopwatch', par défaut 'stopwatch' +timer: stopwatch +--- +``` diff --git a/features/transform-component.md b/features/transform-component.md new file mode 100644 index 0000000..355ca60 --- /dev/null +++ b/features/transform-component.md @@ -0,0 +1,29 @@ +--- +relates: + - guide/faq#adjust-size + - features/canvas-size + - features/zoom-slide +tags: [layout] +description: | + Un composant pour mettre à l'échelle certains éléments. +--- + +# Le composant `Transform` + +Le composant `Transform` vous permet de mettre à l'échelle la taille des éléments sur vos diapositives : + +```md + + + +``` + +C'est utile lorsque vous souhaitez ajuster la taille de certains éléments sur vos diapositives sans affecter la mise en page de l'ensemble de la diapositive. + +Pour mettre à l'échelle toutes les diapositives de votre présentation, vous pouvez définir la taille du canevas des diapositives : + + + +Pour mettre à l'échelle plusieurs diapositives de votre présentation, vous pouvez utiliser l'option `zoom` : + + diff --git a/features/twoslash.md b/features/twoslash.md new file mode 100644 index 0000000..233dd4d --- /dev/null +++ b/features/twoslash.md @@ -0,0 +1,37 @@ +--- +depends: + - guide/syntax#code-block +relates: + - TwoSlash: https://twoslash.netlify.app/ +since: v0.46.0 +tags: [codeblock] +description: | + Un outil puissant pour le rendu des blocs de code TypeScript avec des informations de type au survol ou en ligne. +--- + +# Intégration TwoSlash + +[TwoSlash](https://twoslash.netlify.app/) est un outil puissant pour le rendu des blocs de code TypeScript avec des informations de type au survol ou en ligne. C'est très utile pour préparer des diapositives sur des sujets liés à JavaScript/TypeScript. + +Pour l'utiliser, vous pouvez ajouter `twoslash` à l'identifiant de langage du bloc de code : + +````md +```ts twoslash +import { ref } from 'vue' + +const count = ref(0) +// ^? +``` +```` + +Il sera rendu comme : + +```ts twoslash +import { ref } from 'vue' + +const count = ref(0) +// ^? +``` + + +
    diff --git a/features/vscode-extension.md b/features/vscode-extension.md new file mode 100644 index 0000000..0496dc4 --- /dev/null +++ b/features/vscode-extension.md @@ -0,0 +1,103 @@ +--- +relates: + - VS Code: https://code.visualstudio.com/ + - View in Marketplace: https://marketplace.visualstudio.com/items?itemName=antfu.slidev + - View in OVSX: https://open-vsx.org/extension/antfu/slidev +tags: [editor] +description: | + Vous aider à mieux organiser vos diapositives et en avoir un aperçu rapide. +--- + +# Extension VS Code + +

    + + Slidev + +

    + + + Visual Studio Marketplace Version +   + + Visual Studio Marketplace Downloads + + +L'extension VS Code fournit des fonctionnalités pour vous aider à mieux organiser vos diapositives et en avoir un aperçu rapide. + +### Fonctionnalités + +- Aperçu des diapositives dans le panneau latéral +- Vue arborescente des diapositives avec numéros +- Réorganisation des diapositives par glisser-déposer +- Repli pour les blocs de diapositives +- Support de plusieurs projets de diapositives +- Démarrer le serveur de développement en un clic +- Intégration AI/Copilot via les outils de modèle de langage + +![](https://github.com/slidevjs/slidev/assets/63178754/2c9ba01a-d21f-4b33-b6b6-4e249873f865) + + + + + +### Installation + +Vous pouvez installer l'extension depuis le [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=antfu.slidev) ou l'[Open VSX Registry](https://open-vsx.org/extension/antfu/slidev). + +### Utilisation + +Cliquez sur l'icône `Slidev` dans la barre d'activités pour ouvrir le **panneau Slidev**. Dans le panneau Slidev, vous pouvez voir la vue arborescente des projets, la vue arborescente des diapositives et l'aperçu webview. + +Dans la **vue arborescente des projets**, vous pouvez voir tous les projets Slidev dans votre espace de travail. Vous pouvez cliquer sur l'élément pour ouvrir le fichier correspondant, et cliquer sur l'icône au-dessus pour basculer le projet actif. L'icône vous permet de charger un projet de diapositives qui n'a pas été scanné automatiquement. + +Dans la **vue arborescente des diapositives**, vous pouvez voir toutes les diapositives du projet actif. Vous pouvez cliquer sur l'élément pour déplacer votre curseur vers la diapositive dans l'éditeur, et glisser-déposer pour réorganiser les diapositives. + +Dans l'**aperçu webview**, vous pouvez cliquer sur l'icône pour démarrer le serveur de développement et cliquer sur l'icône pour ouvrir les diapositives dans le navigateur. Basculez l'icône pour synchroniser/désynchroniser la navigation de l'aperçu avec le curseur de l'éditeur. + +Il existe également des **commandes** que vous pouvez utiliser. Tapez `Slidev` dans la palette de commandes pour les voir. + +Vous pouvez ajouter des motifs glob à la configuration `slidev.include` pour inclure des fichiers comme entrées Slidev. La valeur par défaut est `["**/*.md"]`. Exemple : + +```json +{ + "slidev.include": ["**/presentation.md"] +} +``` + +#### Commande Dev {#dev-command} + +Vous pouvez personnaliser la commande pour démarrer le serveur de développement en définissant la configuration `slidev.dev-command`. La valeur par défaut est `npm exec -c 'slidev ${args}'`. + +La commande configurée peut contenir des espaces réservés : + +- `${args}` : Tous les arguments CLI. Par ex. `slides.md --port 3000 --remote` +- `${port}` : Le numéro de port. Par ex. `3000` + +Exemples : + +- Installation globale : `slidev ${args}` +- Pour les utilisateurs PNPM, vous pouvez la définir sur `pnpm slidev ${args}`. +- Pour les utilisateurs [code-server](https://coder.com/docs/code-server/), vous pouvez la définir sur `pnpm slidev ${args} --base /proxy/${port}/`. Cela rendra le serveur de développement accessible à `http://localhost:8080/proxy/3000/`. + +#### Vue arborescente des diapositives {#slides-tree} + +> Disponible depuis la v0.52.0 + +La vue arborescente des diapositives affiche toutes les diapositives de votre présentation avec leurs numéros et titres. Chaque diapositive est affichée comme `{slideNo}. {title}` ce qui facilite la navigation vers des diapositives spécifiques. + +#### Intégration AI/Copilot {#ai-integration} + +> Disponible depuis la v0.52.0 + +L'extension fournit des outils de modèle de langage qui permettent au Copilot de VSCode et à d'autres assistants IA d'interagir avec votre projet Slidev. Les outils suivants sont disponibles : + +- `slidev_getActiveSlide` - Obtenir des informations sur la diapositive active actuelle et le projet +- `slidev_getSlideContent` - Récupérer le contenu d'une diapositive spécifique par numéro +- `slidev_getAllSlideTitles` - Lister tous les titres des diapositives de la présentation +- `slidev_findSlideNoByTitle` - Trouver un numéro de diapositive par son titre +- `slidev_listEntries` - Lister toutes les entrées de projet Slidev chargées +- `slidev_getPreviewPort` - Obtenir le port du serveur d'aperçu pour un projet +- `slidev_chooseEntry` - Changer l'entrée Slidev active + +Ces outils permettent aux assistants IA de vous aider à naviguer, modifier et comprendre vos diapositives plus efficacement. diff --git a/features/zoom-slide.md b/features/zoom-slide.md new file mode 100644 index 0000000..bac933b --- /dev/null +++ b/features/zoom-slide.md @@ -0,0 +1,33 @@ +--- +relates: + - guide/faq#adjust-size + - features/canvas-size + - features/transform-component +tags: [layout] +description: | + Mettre à l'échelle le contenu d'une diapositive à une échelle spécifique. +--- + +# Zoom des diapositives + +Vous trouverez peut-être certaines diapositives de votre présentation trop spacieuses ou trop encombrées. Slidev fournit une option `zoom` pour chaque diapositive qui vous permet de mettre à l'échelle le contenu d'une diapositive : + +```md +--- +zoom: 0.8 +--- + +# Une diapositive avec beaucoup de contenu + +--- + +# Les autres diapositives ne sont pas affectées +``` + +Pour mettre à l'échelle toutes les diapositives de votre présentation, vous pouvez définir la taille du canevas des diapositives : + + + +Pour ajuster la taille de certains éléments sur vos diapositives, vous pouvez utiliser le composant `Transform` : + + diff --git a/guide/animations.md b/guide/animations.md old mode 100755 new mode 100644 index 5992d32..7346c20 --- a/guide/animations.md +++ b/guide/animations.md @@ -1,51 +1,66 @@ -# Animations +--- +outline: deep +--- -## Animations de Clics +# Animation -### `v-click` +L'animation est une partie essentielle des présentations de diapositives. Slidev propose une variété de moyens pour animer vos diapositives, du plus simple au plus complexe. Ce guide vous montrera comment les utiliser efficacement. -Pour appliquer des "animations de clic" aux éléments, vous pouvez utiliser la directive `v-click` ou les composants `` +## Animation au clic {#click-animation} -```md -# Hello +Un « **clic** » peut être considéré comme l'unité des étapes d'animation dans les diapositives. Une diapositive peut avoir un ou plusieurs clics, et chaque clic peut déclencher une ou plusieurs animations — par exemple, afficher ou masquer des éléments. - - +> [!NOTE] +> Depuis la v0.48.0, nous avons réécrit le système d'animations au clic avec des comportements beaucoup plus cohérents. Cela pourrait modifier le comportement de vos diapositives existantes dans certains cas limites. Cette page présente le nouveau système de clics, et vous pouvez trouver plus de détails sur la refactorisation dans [#1279](https://github.com/slidevjs/slidev/pull/1279). -Hello World +### `v-click` {#v-click} - +Pour appliquer des « animations de clic » d'affichage/masquage aux éléments, vous pouvez utiliser le composant `` ou la directive `v-click`. - -
    + -Bonjour! +```md + + Hello World! -
    + +
    Hey!
    ``` -### `v-after` +### `v-after` {#v-after} -L'utilisation de `v-after` est similaire à `v-click` mais cela rendra l'élément visible lorsque le `v-click` précédent sera déclenché. +`v-after` rendra l'élément visible lorsque le `v-click` précédent est déclenché. ```md -
    Hello
    -
    World
    +
    Hello
    +
    World
    ``` -Lorsque vous cliquez sur le bouton "suivant", `Hello` et `World` s'affichent ensemble. +Lorsque vous appuyez sur « suivant », `Hello` et `World` apparaîtront ensemble. -### `v-click-hide` +### Masquer après le clic {#hide-after-clicking} -Same as `v-click` but instead of making the element appear, it makes the element invisible after clicking. +Ajoutez un modificateur `.hide` aux directives `v-click` ou `v-after` pour rendre les éléments invisibles après le clic, au lieu de les afficher. ```md -
    Hello
    +
    Visible après 1 clic
    +
    Masqué après 2 clics
    +
    Masqué après 2 clics
    ``` -### `v-clicks` +Pour les composants, vous pouvez utiliser la prop `hide` pour obtenir le même effet : -`v-clicks` n'est fourni qu'en tant que composant. C'est un raccourci pour appliquer la directive `v-click` à tous ses éléments enfants. C'est particulièrement utile lorsque vous travaillez avec des listes. +```md + Visible après 1 clic + Masqué après 2 clics + Également masqué après 2 clics +``` + +### `v-clicks` {#v-clicks} + +`v-clicks` est uniquement fourni en tant que composant. C'est un raccourci pour appliquer la directive `v-click` à tous ses éléments enfants. Il est particulièrement utile pour travailler avec des listes et des tableaux. ```md @@ -53,70 +68,222 @@ Same as `v-click` but instead of making the element appear, it makes the element - Item 1 - Item 2 - Item 3 -- Item 4 ``` -Un élément deviendra visible à chaque fois que vous cliquerez sur "suivant". +Un élément deviendra visible chaque fois que vous cliquez sur « suivant ». +Il accepte une prop `depth` pour les listes imbriquées : + +```md + -### Nombre de clics personnalisés +- Item 1 + - Item 1.1 + - Item 1.2 +- Item 2 + - Item 2.1 + - Item 2.2 + + +``` -Par défaut, Slidev compte le nombre d'étapes nécessaires avant de passer à la diapositive suivante. Vous pouvez remplacer ce paramètre en passant l'option frontmatter `clicks` : +Vous pouvez également utiliser la prop `every` pour spécifier le nombre d'éléments à afficher après chaque clic : -```yaml ---- -# 10 clicks in this slide, before going to the next -clicks: 10 ---- +```md + + +- Item 1.1 +- Item 1.2 +- Item 2.1 +- Item 2.2 + + +``` + +### Positionnement {#positioning} + +Par défaut, les animations au clic sont déclenchées une par une. Vous pouvez personnaliser la « position » d'animation des éléments en utilisant la prop `at` ou la directive `v-click` avec une valeur. + +Comme le système de mise en page CSS, les éléments animés au clic peuvent être « relatifs » ou « absolus » : + +#### Position relative {#relative-position} + +La position réelle des éléments relatifs est calculée par rapport aux éléments relatifs précédents : + +````md +
    visible après 1 clic
    +
    visible après 3 clics
    +
    masqué après 2 clics
    + +```js {none|1|2}{at:'+5'} +1 // surligné après 7 clics +2 // surligné après 8 clics ``` +```` -### Ordre +> [!NOTE] +> La valeur par défaut de `v-click` est `'+1'` lorsque vous ne la spécifiez pas. -En passant l'index de clic à vos directives, vous pouvez personnaliser l'ordre de la révélation +En fait, `v-after` sont simplement des raccourcis pour `v-click` avec la prop `at` : ```md -
    1
    -
    2
    -
    3
    + + + + + + + + +``` + +::: tip Format de la valeur de la prop `at` +Seules les valeurs de chaîne commençant par `'+'` ou `'-'` comme `'+1'` sont traitées comme des positions relatives : + +| Value | Kind | +| -------------- | -------- | +| `'-1'`, `'+1'` | Relative | +| `+1` === `1` | Absolute | +| `'1'` | Absolute | + +N'oubliez donc pas les guillemets simples pour les valeurs relatives. +::: + +#### Position absolue {#absolute-position} + +La valeur donnée est le nombre exact de clics pour déclencher cette animation : + +````md +
    visible après 3 clics
    +
    visible après 2 clics
    +
    masqué après 1 clic
    + +```js {none|1|2}{at:3} +1 // surligné après 3 clics +2 // surligné après 4 clics ``` +```` + +#### Cas mixte {#mixed-case} + +Vous pouvez mélanger les positions absolues et relatives : + +```md +
    visible après 1 clic
    +
    visible après 3 clics
    +
    visible après 2 clics
    +
    visible après 1 clic
    +
    visible après 4 clics
    +``` + +L'exemple suivant synchronise la mise en surbrillance des deux blocs de code : + +````md {1,6} +```js {1|2}{at:1} +1 + 1 +'a' + 'b' +``` + +```js {1|2}{at:1} += 2 += 'ab' +``` +```` + +### Entrée & Sortie {#enter-leave} + +Vous pouvez également spécifier les index d'entrée et de sortie pour la directive `v-click` en passant un tableau. L'index de fin est exclusif. ```md - -
    1
    -
    2
    -
    3
    +
    + Ceci sera masqué au clic 2 et 3 (et affiché autrement). +
    +
    +
    + Ceci sera affiché uniquement au clic 2 (et masqué autrement). +
    ``` +Vous pouvez également utiliser `v-switch` pour obtenir le même effet : + ```md + + + + + +``` + +Voir le [composant `VSwitch`](/builtin/components#vswitch) pour plus de détails. + +### Nombre total de clics personnalisé {#total} + +Par défaut, Slidev calcule automatiquement le nombre de clics nécessaires avant de passer à la diapositive suivante. Vous pouvez remplacer cela via l'option frontmatter `clicks` : + +```yaml --- -clicks: 3 +# 10 clics dans cette diapositive, avant de passer à la suivante +clicks: 10 --- +``` - - -
    Bonjour
    -
    +### Préréglages d'animation au clic {#click-animation-presets} + +Vous pouvez définir des préréglages d'animation au clic par défaut dans le headmatter/frontmatter : + +```yaml +--- +clickAnimation: up +--- ``` -### Transitions d'éléments +Ou les spécifier par élément avec des modificateurs de directive : + +```md +
    Utilise le préréglage d'animation par défaut défini dans le frontmatter
    +
    Agrandit à l'affichage et réduit au masquage
    +
    Composes multiple animations: fade and right
    +
    Pas d'animation pour cet élément
    +``` + +Voici les préréglages intégrés disponibles : + +- `fade` : Fondu depuis l'opacité 0.5 jusqu'à 1 +- `fade-in` : Fondu depuis l'opacité 0 jusqu'à 1 +- `up` : Translation de 20px vers le haut +- `down` : Translation de 20px vers le bas +- `left` : Translation de 20px vers la gauche +- `right` : Translation de 20px vers la droite +- `scale` : Mise à l'échelle à 0.9 +- `none` : Désactive l'animation pour cet élément + +Vous pouvez également définir vos propres préréglages avec des règles CSS personnalisées pour `.slidev-vclick-anim-{presetName}` : + +```css +.slidev-vclick-anim-pop.slidev-vclick-hidden { + transform: scale(0.96) translateY(8px); +} +``` -Lorsque vous appliquez la directive `v-click` à vos éléments, elle y attache le nom de classe` slidev-vclick-target`. Lorsque les éléments sont masqués, le nom de classe `slidev-vclick-hidden` sera également attaché. Par exemple : +### Transitions d'éléments {#element-transitions} + +Lorsque vous appliquez la directive `v-click` à vos éléments, elle attache le nom de classe `slidev-vclick-target` à l'élément. Lorsque les éléments sont masqués, le nom de classe `slidev-vclick-hidden` est également ajouté. Par exemple : ```html
    Text
    ``` -Après un clic, il deviendra +Après un clic, il peut devenir : ```html
    Text
    ``` -Par défaut, une transition d'opacité subtile est appliquée à ces classes : +Par défaut, une transition subtile d'opacité est appliquée à ces classes : ```css -// the default +/* ci-dessous le style par défaut */ .slidev-vclick-target { transition: opacity 100ms ease; @@ -128,12 +295,10 @@ Par défaut, une transition d'opacité subtile est appliquée à ces classes : } ``` -Vous pouvez les remplacer pour personnaliser les effets de transition dans vos feuilles de style personnalisées. - -Par exemple, vous pouvez réaliser les transitions de mise à l'échelle en : +Vous pouvez les remplacer pour personnaliser les effets de transition dans vos feuilles de style personnalisées. Par exemple, vous pouvez obtenir des transitions de mise à l'échelle avec : ```css -// styles.css +/* styles.css */ .slidev-vclick-target { transition: all 500ms ease; @@ -144,7 +309,7 @@ Par exemple, vous pouvez réaliser les transitions de mise à l'échelle en : } ``` -Pour spécifier des animations uniquement pour certaines diapositives ou mises en page +Pour spécifier des animations uniquement pour certaines diapositives ou mises en page : ```scss .slidev-page-7, @@ -161,43 +326,169 @@ Pour spécifier des animations uniquement pour certaines diapositives ou mises e En savoir plus sur la [personnalisation des styles](/custom/directory-structure#style). -## Mouvement +## Mouvement {#motion} -Slidev a [@vueuse/motion](https://motion.vueuse.org/) intégré. Vous pouvez utiliser la directive `v-motion` sur n'importe quel élément pour y appliquer un mouvement. Par exemple +Slidev intègre [@vueuse/motion](https://motion.vueuse.org/). Vous pouvez utiliser la directive `v-motion` sur n'importe quel élément pour lui appliquer un mouvement. Par exemple : ```html
    + :enter="{ x: 0 }" + :leave="{ x: 80 }" +> Slidev
    ``` -Le texte `Slidev` passera de `-80px` à sa position d'origine lors de l'initialisation. +Le texte `Slidev` se déplacera de `-80px` vers sa position originale lors de l'entrée dans la diapositive. À la sortie, il se déplacera de `80px`. -> Remarque : Slidev précharge la diapositive suivante pour les performances, ce qui signifie que les animations peuvent démarrer avant que vous ne naviguiez vers la page. Pour que cela fonctionne correctement, vous pouvez désactiver le préchargement pour la diapositive particulière -> -> ```md -> --- -> preload: false -> --- -> ``` +> Avant la v0.48.9, vous deviez ajouter `preload: false` au frontmatter de la diapositive pour activer le mouvement. + +### Mouvement avec clics {#motion-with-clicks} + +> Disponible depuis la v0.48.9 + +Vous pouvez également déclencher le mouvement par des clics : + +```html +
    -> Ou contrôlez le cycle de vie de l'élément avec `v-if` pour avoir des contrôles fins + Slidev +
    +``` + +Ou combiner `v-click` avec `v-motion` : + +```html +
    -> ```html ->
    v-if="$slidev.nav.currentPage === 7" -> v-motion -> :initial="{ x: -80 }" -> :enter="{ x: 0 }"> -> Slidev ->
    -> ``` + Affiché au clic 2 et masqué au clic 4. +
    +``` + +Signification des variantes : + +- `initial` : Lorsque `currentPage < thisPage`, ou que `v-click` masque l'élément courant car `$clicks` est trop petit. +- `enter` : Lorsque `currentPage === thisPage`, et que `v-click` affiche l'élément. _Priorité : la plus basse_ +- `click-x` : `x` est un nombre représentant le numéro de clic **absolu**. La variante prendra effet si `$clicks >= x`. _Priorité : `x`_ +- `click-x-y` : La variante prendra effet si `x <= $clicks < y`. _Priorité : `x`_ +- `leave` : `currentPage > thisPage`, ou que `v-click` masque l'élément courant car `$clicks` est trop grand. + +Les variantes seront combinées selon la priorité définie ci-dessus. + +::: warning +En raison d'un [bug](https://github.com/vuejs/core/issues/10295) interne à Vue, actuellement **seul** `v-click` appliqué au même élément que `v-motion` peut contrôler l'animation de mouvement. En contournement, vous pouvez utiliser quelque chose comme `v-if="3 < $clicks"` pour obtenir le même effet. +::: + +En savoir plus : [Démo](https://sli.dev/demo/starter/10) | [@vueuse/motion](https://motion.vueuse.org/) | [v-motion](https://motion.vueuse.org/features/directive-usage) | [Préréglages](https://motion.vueuse.org/features/presets) + +## Transitions de diapositives {#slide-transitions} + +
    + +Slidev supporte les transitions de diapositives nativement. Vous pouvez les activer en définissant l'option frontmatter `transition` : + +```md +--- +transition: slide-left +--- +``` + +Cela vous donnera un bel effet de glissement lors du changement de diapositive. Le définir dans le headmatter l'appliquera à toutes les diapositives. Vous pouvez également définir différentes transitions par diapositive dans les frontmatters. + +### Transitions intégrées {#builtin-transitions} + +- `fade` - Fondu croisé entrée/sortie +- `fade-out` - Fondu sortant puis fondu entrant +- `slide-left` - Glissement vers la gauche (glissement vers la droite en arrière) +- `slide-right` - Glissement vers la droite (glissement vers la gauche en arrière) +- `slide-up` - Glissement vers le haut (glissement vers le bas en arrière) +- `slide-down` - Glissement vers le bas (glissement vers le haut en arrière) +- `view-transition` - Via l'API view transitions + +### API View Transition {#view-transitions} + +L'API View Transitions fournit un mécanisme pour créer facilement des transitions animées entre différents états du DOM. En savoir plus dans [View Transitions API - MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API). + +:::warning +Expérimental : Ce n'est pas supporté par tous les navigateurs. Vérifiez attentivement le [tableau de compatibilité des navigateurs](https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API#browser_compatibility) avant de l'utiliser. +::: -Mode d'apprentissage: [Démo](https://sli.dev/demo/starter/7) | [@vueuse/motion](https://motion.vueuse.org/) | [v-motion](https://motion.vueuse.org/directive-usage.html) | [Préréglages]f(https://motion.vueuse.org/presets.html) +Vous pouvez utiliser la propriété CSS `view-transition-name` pour nommer les transitions de vue, ce qui crée des connexions entre les différents éléments de la page et des transitions fluides lors du changement de diapositives. -## Transitions de pages +Vous pouvez activer le support de la [syntaxe Comark](/guide/syntax#comark-syntax) pour nommer facilement les view-transitions : -> La prise en charge intégrée des diapositives n'est PAS ENCORE fournie dans la version actuelle. Nous prévoyons d'ajouter un support pour eux dans la prochaine version majeure. Avant cela, vous pouvez toujours utiliser vos styles et bibliothèques personnalisés pour ce faire. +```md +--- +transition: view-transition +comark: true +--- + +# View Transition {.inline-block.view-transition-title} + +--- + +# View Transition {.inline-block.view-transition-title} +``` + +### Transitions personnalisées {#custom-transitions} + +Les transitions de diapositives de Slidev sont alimentées par [Vue Transition](https://vuejs.org/guide/built-ins/transition.html). Vous pouvez fournir vos propres transitions personnalisées en : + +```md +--- +transition: my-transition +--- +``` + +puis dans vos feuilles de style personnalisées : + +```css +.my-transition-enter-active, +.my-transition-leave-active { + transition: opacity 0.5s ease; +} + +.my-transition-enter-from, +.my-transition-leave-to { + opacity: 0; +} +``` + +En savoir plus sur son fonctionnement dans [Vue Transition](https://vuejs.org/guide/built-ins/transition.html). + +### Transitions avant & arrière {#forward-backward-transitions} + +Vous pouvez spécifier des transitions différentes pour la navigation avant et arrière en utilisant `|` comme séparateur dans le nom de la transition : + +```md +--- +transition: go-forward | go-backward +--- +``` + +Ainsi, lorsque vous passez de la diapositive 1 à la diapositive 2, la transition `go-forward` sera appliquée. Lorsque vous passez de la diapositive 2 à la diapositive 1, la transition `go-backward` sera appliquée. + +### Utilisation avancée {#advanced-usage} + +Le champ `transition` accepte une option qui sera passée au composant [``](https://vuejs.org/api/built-in-components.html#transition). Par exemple : + +```md +--- +transition: + name: my-transition + enterFromClass: custom-enter-from + enterActiveClass: custom-enter-active +--- +``` diff --git a/guide/component.md b/guide/component.md new file mode 100644 index 0000000..23a2577 --- /dev/null +++ b/guide/component.md @@ -0,0 +1,36 @@ +# Composants dans les diapositives + +L'une des fonctionnalités les plus puissantes de Slidev est la possibilité d'utiliser des composants Vue directement dans vos diapositives. Cela vous permet de créer du contenu interactif et dynamique facilement. + +## Utiliser des composants {#use} + +Grâce à [`unplugin-vue-components`](https://github.com/unplugin/unplugin-vue-components), Slidev vous permet d'utiliser des composants Vue directement dans vos diapositives sans les importer manuellement : + +```md +# My Slide + + +``` + +Les composants proviennent de : + +- Composants intégrés. Voir [Composants intégrés](../builtin/components) pour référence. +- Fournis par le thème et les extensions. Voir . +- Composants personnalisés dans le répertoire `components`. Voir la section suivante. + +## Écrire des composants {#write} + +Pour créer un composant personnalisé, créez simplement un nouveau fichier Vue dans le répertoire `components` : + +```bash +your-slidev/ + ├── ... + ├── slides.md + └── components/ + ├── ... + └── MyComponent.vue +``` + +Référez-vous à la [documentation Vue](https://vuejs.org/guide/essentials/component-basics.html) pour savoir comment écrire des composants Vue. + +Vous pouvez également pour réutiliser et partager vos composants avec d'autres. diff --git a/guide/exporting.md b/guide/exporting.md old mode 100755 new mode 100644 index 276ff52..15893be --- a/guide/exporting.md +++ b/guide/exporting.md @@ -1,42 +1,244 @@ -# Exportation +--- +outline: deep +--- -## PDF +# Exporter -> L'exportation au format PDF ou PNG repose sur [Playwright](https://playwright.dev) pour le rendu. Vous devrez donc installer [`playwright-chromium`](https://playwright.dev/docs/installation#download-single-browser-binary) pour utiliser cette fonctionnalité. -> Si vous effectuez une exportation dans un environnement CI, [le guide du dramaturge CI](https://playwright.dev/docs/ci) peut être utile. +Généralement, les diapositives sont affichées dans un navigateur web, mais vous pouvez aussi les exporter en PDF, PPTX, PNG ou fichiers Markdown pour le partage ou l'impression. Cette fonctionnalité est disponible via la commande CLI [`slidev export`](../builtin/cli#export). -Installez `playwright-chrome` +Cependant, les fonctionnalités interactives de vos diapositives peuvent ne pas être disponibles dans les fichiers exportés. Vous pouvez construire et héberger vos diapositives en tant qu'application web pour conserver l'interactivité. Voir [Construction et hébergement](./hosting) pour plus d'informations. -```bash +## L'exportateur navigateur Recommandé {#browser} + +> Disponible depuis la v0.50.0-beta.11 + +Slidev fournit une interface dans le navigateur pour exporter vos diapositives. Vous pouvez y accéder en cliquant sur le bouton « Export » dans le menu « Plus d'options » de la [barre de navigation](./ui#navigation-bar), ou en allant directement à `http://localhost:/export`. + +Dans l'interface, vous pouvez exporter les diapositives en PDF, ou capturer les diapositives en images et les télécharger en fichier PPTX ou zip. + +Notez que les navigateurs autres que les **navigateurs modernes basés sur Chromium** peuvent ne pas fonctionner correctement avec l'interface d'exportation. Si vous rencontrez des problèmes, essayez d'utiliser la CLI à la place. + +> Le contenu suivant de cette page concerne uniquement la CLI. + +## La CLI {#cli} + +L'exportation en PDF, PPTX ou PNG repose sur [Playwright](https://playwright.dev) pour le rendu des diapositives. Par conséquent, [`playwright-chromium`](https://npmjs.com/package/playwright-chromium) doit être installé dans votre projet : + +::: code-group + +```bash [pnpm] +$ pnpm add -D playwright-chromium +``` + +```bash [npm] $ npm i -D playwright-chromium ``` -Exportez maintenant vos diapositives au format PDF à l'aide de la commande suivante +```bash [yarn] +$ yarn add -D playwright-chromium +``` + +```bash [bun] +$ bun add -D playwright-chromium +``` + +```bash [deno] +$ deno add -D npm:playwright-chromium +``` + +::: + +## Formats + +### PDF + +Après avoir installé `playwright-chromium` comme décrit ci-dessus, vous pouvez exporter vos diapositives en PDF avec la commande suivante : ```bash $ slidev export ``` -Après quelques secondes, vos diapositives seront prêtes dans `./slides-exports.pdf`. +Par défaut, le PDF sera placé dans `./slides-export.pdf`. + +### PPTX + +Slidev peut également exporter vos diapositives en fichier PPTX : + +```bash +$ slidev export --format pptx +``` + +Notez que toutes les diapositives du fichier PPTX seront exportées en tant qu'images, le texte ne sera donc pas sélectionnable. Les notes du présentateur seront intégrées dans le fichier PPTX par diapositive. -### Étapes d'exportation des clics +Dans ce mode, l'option `--with-clicks` est activée par défaut. Pour la désactiver, passez `--with-clicks false`. -> Disponible depuis v0.21 +### PNG et Markdown -Par défaut, Slide export une page par diapositive avec les animations de clics désactivées. Si vous souhaitez exporter des diapositives avec plusieurs étapes dans plusieurs pages, passez l'option `--with-clicks`. +En passant l'option `--format png`, Slidev exportera des images PNG pour chaque diapositive au lieu d'un PDF : + +```bash +$ slidev export --format png +``` + +Vous pouvez également compiler un fichier markdown composé de PNG compilés avec `--format md` : + +```bash +$ slidev export --format md +``` + +## Options + +Voici quelques options courantes que vous pouvez utiliser avec la commande `slidev export`. Pour une liste complète des options, consultez la [documentation de la CLI](../builtin/cli#export). + +### Exporter les étapes des clics + +Par défaut, Slidev exporte une page par diapositive avec les animations de clics désactivées. Si vous souhaitez exporter des diapositives avec plusieurs étapes en plusieurs pages, passez l'option `--with-clicks` : ```bash $ slidev export --with-clicks ``` -## PNGs +### Nom du fichier de sortie -En passant l'option `--format png`, Slidev exportera des images PNG pour chaque diapositive au lieu d'un PDF. +Vous pouvez spécifier le nom du fichier de sortie avec l'option `--output` : ```bash -$ slidev export --format png +$ slidev export --output my-pdf-export +``` + +Ou dans la configuration headmatter : + +```yaml +--- +exportFilename: my-pdf-export +--- +``` + +### Exporter avec une plage + +Par défaut, toutes les diapositives de la présentation sont exportées. Si vous souhaitez exporter une diapositive spécifique ou une plage de diapositives, vous pouvez définir l'option `--range` et spécifier les diapositives à exporter : + +```bash +$ slidev export --range 1,6-8,10 +``` + +Cette option accepte à la fois des numéros de diapositives spécifiques et des plages. L'exemple ci-dessus exporterait les diapositives 1, 6, 7, 8 et 10. + +### Exportations multiples + +Vous pouvez également exporter plusieurs diapositives à la fois : + +```bash +$ slidev export slides1.md slides2.md +``` + +Ou (disponible uniquement dans certains shells) : + +```bash +$ slidev export *.md +``` + +Dans ce cas, chaque fichier d'entrée générera son propre fichier PDF. + +### Mode sombre + +Si vous souhaitez exporter vos diapositives avec la version sombre du thème, utilisez l'option `--dark` : + +```bash +$ slidev export --dark +``` + +### Délais d'attente + +Pour les grandes présentations, vous pouvez augmenter le délai d'attente Playwright avec `--timeout` : + +```bash +$ slidev export --timeout 60000 +``` + +### Attente + +Certaines parties de vos diapositives peuvent nécessiter plus de temps pour le rendu. Vous pouvez utiliser l'option `--wait` pour ajouter un délai supplémentaire avant l'exportation : + +```bash +$ slidev export --wait 10000 +``` + +Il existe également une option `--wait-until` pour attendre un état avant d'exporter chaque diapositive. Si vous continuez à rencontrer des problèmes de délai d'attente, essayez de définir cette option : + +```bash +$ slidev export --wait-until none +``` + +Valeurs possibles : + +- `'networkidle'` - (_par défaut_) considère l'opération terminée lorsqu'il n'y a pas de connexions réseau pendant au moins `500` ms. C'est le plus sûr, mais peut provoquer des dépassements de délai. +- `'domcontentloaded'` - considère l'opération terminée lorsque l'événement `DOMContentLoaded` est déclenché. +- `'load'` - considère l'opération terminée lorsque l'événement `load` est déclenché. +- `'none'` - n'attend aucun événement. + +::: warning +Lorsque vous spécifiez des valeurs autres que `'networkidle'`, assurez-vous que les diapositives imprimées sont complètes et correctes. Si du contenu manque, vous devrez peut-être utiliser l'option `--wait`. +::: + +### Chemin de l'exécutable + +Chromium peut manquer de certaines fonctionnalités comme les codecs nécessaires au décodage de certaines vidéos. Vous pouvez définir le chemin de l'exécutable du navigateur pour Playwright vers votre Chrome ou Edge avec `--executable-path` : + +```bash +$ slidev export --executable-path [path_to_chromium] +``` + +### Structure du PDF + +> Disponible depuis la v0.36.10 + +Vous pouvez générer la structure du PDF en passant l'option `--with-toc` : + +```bash +$ slidev export --with-toc +``` + +### Omettre l'arrière-plan + +Lors de l'exportation en PNG, vous pouvez supprimer l'arrière-plan par défaut du navigateur en passant `--omit-background` : + +```bash +$ slidev export --omit-background +``` + +L'arrière-plan par défaut du navigateur est l'arrière-plan blanc visible sur toutes les fenêtres de navigateur et est différent des autres arrière-plans appliqués dans l'application via le style CSS. [Voir la documentation Playwright](https://playwright.dev/docs/api/class-page#page-screenshot-option-omit-background). Vous devrez ensuite appliquer un style CSS supplémentaire à l'application pour rendre la transparence visible. + +Voici un exemple de base qui couvre tous les arrière-plans de l'application : + +```css +* { + background: transparent !important; +} +``` + +## Dépannage + +### Contenu manquant ou animation non terminée + +Si vous constatez que du contenu manque ou que les animations ne sont pas terminées dans le PDF exporté, essayez d'ajouter un temps d'attente avant l'exportation de chaque diapositive : + +```bash +$ slidev export --wait 1000 +``` + +### Emojis cassés + +Si les emojis sont manquants dans le PDF ou le PNG, il vous manque probablement les polices requises (comme par exemple [_Noto Emoji_ de Google](https://fonts.google.com/noto/specimen/Noto+Emoji)) dans votre environnement. + +Cela peut affecter par exemple les environnements Linux de type CI/CD dans des conteneurs. Cela peut être corrigé par exemple ainsi : + +```bash +$ curl -L --output NotoColorEmoji.ttf https://github.com/googlefonts/noto-emoji/raw/main/fonts/NotoColorEmoji.ttf +$ sudo mv NotoColorEmoji.ttf /usr/local/share/fonts/ +$ fc-cache -fv ``` -## Single-Page Application (SPA) +### Contexte incorrect dans les couches globales -Voir [Hébergement statique](/guide/hosting). +Voir l'astuce dans https://sli.dev/features/global-layers. diff --git a/guide/faq.md b/guide/faq.md old mode 100755 new mode 100644 index 19693bf..7dbd5da --- a/guide/faq.md +++ b/guide/faq.md @@ -1,131 +1,134 @@ +--- +outline: deep +--- + # FAQ -## Grilles +## Gestion des ressources {#assets-handling} -Étant donné que Slidev est basé sur le Web, vous pouvez appliquer n'importe quelle disposition de grille à votre guise. [Grilles CSS](https://css-tricks.com/snippets/css/complete-guide-grid/), [flexboxes](https://css-tricks.com/snippets/css/a-guide-to-flexbox/), ou même [Masonry](https://css-tricks.com/native-css-masonry-layout-in-css-grid/), vous obtenez tous les contrôles. +Vous pouvez utiliser des ressources statiques comme des images et des vidéos dans vos diapositives. Comme Slidev est basé sur Vite, vous pouvez les importer directement dans vos fichiers markdown. -Puisque nous avons [Windi CSS](https://windicss.org/) intégré, voici un moyen simple de référence : +Les URLs qui peuvent être analysées statiquement comme des ressources peuvent utiliser des chemins relatifs : -```html -
    -
    +```md +![alt](./image.png) + +``` -La première colonne +Dans le cas ci-dessus, les URLs seront résolues en `/BASE_URL/assets/image.png` après la construction. -
    -
    +Cependant, les chemins relatifs dans le frontmatter et d'autres composants seront cassés après la construction : -La seconde colonne +```md +--- +background: ./image.png # Cassé après la construction +--- -
    -
    + ``` -Pour allez plus loin, vous pouvez personnaliser la taille de chaque colonne comme : +Dans le cas ci-dessus, les URLs ne sont pas analysables statiquement et seront conservées telles quelles, ce qui entraînera des erreurs 404 après la construction. -```html -
    -
    - -La première colonne (200px) +Pour résoudre ce problème, vous pouvez placer ces ressources dans le [dossier public](../custom/directory-structure#public) et utiliser un chemin absolu pour les importer : -
    -
    - -La seconde colonne (ajustement automatique) +```md +--- +background: /image.png +--- -
    -
    + +``` -La troisième colonne (10% de largeur jusqu'au conteneur parent) +Pour plus de détails, consultez la [documentation de Vite](https://vitejs.dev/guide/assets.html). -
    -
    -``` +## Positionnement {#positioning} -En savoir plus sur [les grilles Windi CSS](https://windicss.org/utilities/grid.html). +Comme Slidev est basé sur le web, CSS est la principale façon de positionner les éléments. Voici quelques conseils utiles pour positionner les éléments : -## Positionnement +### Grilles et Flexboxes -Les diapositives sont définies dans des tailles fixes (par défaut `980x552px`) et à l'échelle pour s'adapter à l'écran de l'utilisateur. Vous pouvez utiliser en toute sécurité la position absolue dans vos diapositives car elles évolueront avec l'écran. +Vous pouvez utiliser CSS Grids pour créer des mises en page complexes : -Par exemple : +::: code-group -```html -
    -Ceci est un pied de page aligné en bas à gauche +```md [Deux colonnes] +
    +
    + La première colonne +
    +
    + La deuxième colonne +
    ``` -Pour changer la taille réelle du canvas, vous pouvez passer les options `canvasWidth` dans votre premier frontmatter : - -```yaml ---- -canvasWidth: 800 ---- +```md [Cas complexe] +
    +
    + La première colonne (200px) +
    +
    + La deuxième colonne (ajustement automatique) +
    +
    + La troisième colonne (10% de largeur par rapport au conteneur parent) +
    +
    ``` -## Taille de police - -Si vous pensez que la taille de la police de vos diapositives est trop petite, vous pouvez l'ajuster de plusieurs manières : +::: -### Remplacer le style local +Et utilisez Flexboxes pour créer des mises en page plus réactives : -Vous pouvez remplacer les styles de chaque diapositive avec la balise ` - ---- +::: code-group -# Page 2 +```md [Horizontal] +
    +
    + Premier bloc +
    +
    + Deuxième bloc +
    +
    +``` -Cela ne sera pas affecté. +```md [Vertical] +
    +
    + Contenu centré +
    +
    ``` -En savoir plus: [Styles intégrés](/guide/syntax.html#embedded-styles) +::: -### Remplacer le style global +En savoir plus : [CSS Grids](https://css-tricks.com/snippets/css/complete-guide-grid/), [flexboxes](https://css-tricks.com/snippets/css/a-guide-to-flexbox/), ou même [Masonry](https://css-tricks.com/native-css-masonry-layout-in-css-grid/). -Vous pouvez fournir des styles globaux personnalisés en créant `./style.css`, par exemple +### Position absolue -```css -/* style.css */ +Vous pouvez utiliser UnoCSS pour positionner les éléments de manière absolue : -h1 { - font-size: 10em !important; -} +```md +
    + Ceci est un pied de page aligné en bas à gauche +
    ``` -En savoir plus: [Style Global](/custom/directory-structure.html#style) +Ou utilisez la fonctionnalité d'éléments déplaçables : -### Mettre à l'échelle le canvas + -Changer la taille réelle du canvas mettra à l'échelle tout votre contenu (texte, images, composants, etc.) et les diapositives +## Ajuster les tailles {#adjust-size} -```yaml ---- -# defaut : 980 -# puisque la toile devient plus petite, la taille visuelle deviendra plus grande -canvasWidth: 800 ---- -``` +- Ajuster la taille de toutes les diapositives : -### Utiliser la transformation + -Nous fournissons un composant intégré ``, qui est un wrapper de la propriété de transformation CSS. +- Ajuster la taille de plusieurs diapositives : -```md - + -- Item 1 -- Item 2 +- Ajuster la taille de certains éléments : - -``` + diff --git a/guide/global-context.md b/guide/global-context.md new file mode 100644 index 0000000..768a0d3 --- /dev/null +++ b/guide/global-context.md @@ -0,0 +1,165 @@ +# Contexte global + +Slidev injecte plusieurs valeurs de contexte global pour des contrôles de navigation avancés. + +## Utilisation directe {#direct-usage} + +Vous pouvez y accéder directement dans vos diapositives ou composants : + +```md [slides.md] +# Page 1 + +La page actuelle est : {{ $nav.currentPage }} +``` + +```vue [Foo.vue] + +``` + +## Utilisation composable {#composable-usage} + +> Disponible depuis la v0.48.0 + +Si vous souhaitez obtenir le contexte de manière programmatique (et de manière typée), vous pouvez importer des composables depuis `@slidev/client` : + +```vue + +``` + +> [!NOTE] +> Auparavant, vous pouviez voir l'utilisation de modules imbriqués comme `import { isDark } from '@slidev/client/logic/dark.ts'`, cela est **DÉCONSEILLÉ** car ce sont des détails d'implémentation internes qui peuvent changer à l'avenir. Utilisez toujours les API publiques de `@slidev/client` si possible. + +::: warning + +Lorsque le composable `useSlideContext` est utilisé dans un fichier, l'injection automatique de `$slidev` sera désactivée. Vous devez obtenir manuellement l'objet `$slidev` depuis la fonction `useSlideContext`. + +::: + + + +## Propriétés {#properties} + +### `$slidev` {#slidev} + +L'objet de contexte global. + +### `$frontmatter` {#frontmatter} + +L'objet frontmatter de la diapositive actuelle. Notez que ceci est vide pour les composants en dehors des diapositives comme . + +### `$clicks` {#clicks} + +`$clicks` contient le nombre de clics sur la diapositive actuelle. Peut être utilisé conditionnellement pour afficher différents contenu selon les clics. + +```html +
    Contenu
    +``` + +Consultez le guide pour plus d'informations. + +### `$nav` {#nav} + +Un objet réactif contenant les propriétés et les contrôles de la navigation des diapositives. Par exemple : + +```js +$nav.next() // passer à l'étape suivante +$nav.nextSlide() // passer à la diapositive suivante (ignorer les clics) +$nav.go(10) // aller à la diapositive #10 + +$nav.currentPage // numéro de la diapositive actuelle +$nav.currentLayout // nom de la mise en page actuelle +``` + +Pour plus de propriétés disponibles, consultez l'interface [`SlidevContextNav`](https://github.com/slidevjs/slidev/blob/main/packages/client/composables/useNav.ts). + +### `$page` {#page} + +`$page` contient le numéro de la page actuelle, indexé à partir de 1. + +```md +Page : {{ $page }} + +La page actuelle est-elle active : {{ $page === $nav.currentPage }} +``` + +> [!Note] > `$nav.clicks` est un état global tandis que `$clicks` est le nombre de clics local pour chaque diapositive. + +### `$renderContext` {#render-context} + +`$renderContext` contient le contexte de rendu actuel, qui peut être `slide`, `overview`, `presenter` ou `previewNext` + +```md +
    + Ce contenu ne sera rendu que dans la vue des diapositives principales +
    +``` + +Vous pouvez également utiliser le [composant ``](../builtin/components#renderwhen). + +### `$slidev.configs` {#configs} + +Un objet réactif contenant les configurations du projet de diapositives. Par exemple : + +```md +--- +title: Ma première Slidev ! +--- + +# Page 1 + +--- + +# N'importe quelle page + +{{ $slidev.configs.title }} // 'Ma première Slidev !' +``` + +### `$slidev.themeConfigs` {#theme-configs} + +Un objet réactif contenant les configurations parsées du thème : + +```yaml +--- +title: Ma première Slidev ! +themeConfig: + primary: '#213435' +--- +``` + +Ensuite, le thème peut accéder à la couleur primaire comme suit : + +```md +{{ $slidev.themeConfigs.primary }} // '#213435' +``` + +## Types {#types} + +Si vous souhaitez obtenir un type de manière programmatique, vous pouvez importer des types comme `TocItem` depuis `@slidev/types` : + +```vue + +``` diff --git a/guide/hosting.md b/guide/hosting.md index 4ebcc1e..e17c554 100644 --- a/guide/hosting.md +++ b/guide/hosting.md @@ -1,85 +1,181 @@ -# Hébergement statique +--- +outline: deep +--- + +# Construction et hébergement -## Créer des applications monopage (SPA) +Slidev est conçu pour fonctionner comme un serveur web lorsque vous modifiez ou présentez vos diapositives. Cependant, après la présentation, vous souhaiterez peut-être partager vos diapositives **interactives** avec d'autres. Ce guide vous montrera comment construire et héberger vos diapositives. -Vous pouvez également intégrer les diapositives dans une SPA autohébergée : +## Construire en SPA {#spa} + +Vous pouvez construire les diapositives en une [application monopage (SPA)](https://developer.mozilla.org/en-US/docs/Glossary/SPA) statique via la commande suivante : ```bash $ slidev build ``` -L'application générée sera disponible sous `dist/` et vous pourrez ensuite l'héberger sur [Pages GitHub](https://pages.github.com/), [Netlify](https://netlify.app/), [Vercel](https://vercel.com/), ou ce que vous voulez. Vous pouvez maintenant partager vos diapositives avec le reste du monde avec un seul lien. +Par défaut, les fichiers générés sont placés dans le dossier `dist`. Vous pouvez tester la version construite de vos diapositives en exécutant : `npx vite preview` ou tout autre serveur statique. -### Chemin de base +### Chemin de base {#base} -Pour déployer vos slides sous des sous-routes, vous devrez passer l'option `--base`. Par exemple : +Pour déployer vos diapositives sous des sous-routes, vous devez passer l'option `--base`. Le chemin `--base` **doit commencer et se terminer par une barre oblique `/`**. Par exemple : ```bash $ slidev build --base /talks/my-cool-talk/ ``` -Reportez-vous à la [documentation de Vite](https://vitejs.dev/guide/build.html#public-base-path) pour plus de détails. +Consultez la [documentation de Vite](https://vitejs.dev/guide/build.html#public-base-path) pour plus de détails. -### Fournir un PDF téléchargeable +### Répertoire de sortie {#output-directory} -Vous pouvez fournir un PDF téléchargeable aux spectateurs de votre SPA avec la configuration suivante : +Vous pouvez changer le répertoire de sortie avec `--out`. -```md ---- -download: true ---- +```bash +$ slidev build --out my-build-folder ``` -Slidev générera un fichier pdf avec la construction et un bouton de téléchargement sera affiché dans le SPA. +### Supprimer les notes du présentateur {#without-notes} -Vous pouvez également fournir une URL personnalisée au PDF. Dans ce cas, le processus de rendu sera ignoré. +Si vous partagez les diapositives construites publiquement et ne souhaitez pas inclure vos notes de présentateur, exécutez la construction avec `--without-notes` : -```md ---- -download: 'https://myside.com/my-talk.pdf' ---- +```bash +$ slidev build --without-notes +``` + +### Constructions multiples {#multiple-builds} + +Vous pouvez construire plusieurs présentations en une seule fois en passant plusieurs fichiers markdown en arguments : + +```bash +$ slidev build slides1.md slides2.md ``` -## Exemples +Ou si votre shell le supporte, vous pouvez utiliser un modèle glob : -Voici quelques exemples de SPA exportées : +```bash +$ slidev build *.md +``` -- [Modèle de démarrage](https://sli.dev/demo/starter) -- [Vue composable](https://talks.antfu.me/2021/composable-vue) par [Anthony Fu](https://github.com/antfu) +Dans ce cas, chaque fichier d'entrée générera un dossier contenant la construction dans le répertoire de sortie. -Pour en savoir plus, consultez [Showcases](/showcases). +### Exemples {#examples} -## Hébergement +Voici quelques exemples de SPA exportés : -Nous vous recommandons d'utiliser `npm init slidev@lastest` pour échafauder votre projet, qui contient les fichiers de configuration nécessaires pour héberger les services prêts à l'emploi. +- [Diapositives de démo](https://sli.dev/demo/starter) +- [Composable Vue](https://talks.antfu.me/2021/composable-vue) par [Anthony Fu](https://github.com/antfu) +- Plus dans les [Vitrines](../resources/showcases) -### Netlify +### Options {#options} -- [Netlify](https://netlify.com/) + + -Créez `netlify.toml` dans la racine de votre projet avec le contenu suivant. +## Hébergement {#hosting} -```ts -[build.environment] - NODE_VERSION = "14" +Nous recommandons d'utiliser `npm init slidev@latest` pour initialiser votre projet, qui contient les fichiers de configuration nécessaires pour les services d'hébergement prêts à l'emploi. + +### GitHub Pages {#github-pages} + +Pour déployer vos diapositives sur [GitHub Pages](https://pages.github.com/) via GitHub Actions, suivez ces étapes : + +1. Dans votre dépôt, allez dans `Settings` > `Pages`. Sous `Build and deployment`, sélectionnez `GitHub Actions`. (Ne choisissez pas `Deploy from a branch` et ne téléchargez pas le répertoire `dist`, ce qui n'est pas recommandé.) +2. Créez `.github/workflows/deploy.yml` avec le contenu suivant pour déployer vos diapositives sur GitHub Pages via GitHub Actions. + +::: details deploy.yml + +```yaml +name: Deploy pages + +on: + workflow_dispatch: + push: + branches: [main, master] + +permissions: + contents: read + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + - name: Setup @antfu/ni + run: npm i -g @antfu/ni + + - name: Install dependencies + run: nci + + - name: Build + run: nr build --base /${{github.event.repository.name}}/ + + - name: Setup Pages + uses: actions/configure-pages@v4 + + - uses: actions/upload-pages-artifact@v3 + with: + path: dist + + deploy: + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + needs: build + runs-on: ubuntu-latest + name: Deploy + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 +``` + +::: + +3. Commitez et poussez les changements vers votre dépôt. Le workflow GitHub Actions déploiera automatiquement vos diapositives sur GitHub Pages à chaque push sur la branche `main`. +4. Vous pouvez accéder à vos diapositives à l'adresse `https://.github.io//`. + +### Netlify + +Créez `netlify.toml` à la racine de votre projet avec le contenu suivant : + +::: details netlify.toml + +```toml [build] - publish = "dist" - command = "npm run build" +publish = 'dist' +command = 'npm run build' + +[build.environment] +NODE_VERSION = '20' [[redirects]] - from = "/*" - to = "/index.html" - status = 200 +from = '/*' +to = '/index.html' +status = 200 ``` -Ensuite, accédez à votre tableau de bord Netlify, créez un nouveau site avec le repositorie. +::: + +Ensuite, allez sur votre [tableau de bord Netlify](https://netlify.com/) et créez un nouveau site avec le dépôt. ### Vercel -- [Vercel](https://vercel.com/) +Créez `vercel.json` à la racine de votre projet avec le contenu suivant : -Créez `vercel.json` dans la racine de votre projet avec le contenu suivant. +::: details vercel.json ```json { @@ -89,39 +185,67 @@ Créez `vercel.json` dans la racine de votre projet avec le contenu suivant. } ``` -Accédez ensuite à votre tableau de bord Vercel, créez un nouveau site avec le repository. +::: -## GitHub Pages +Ensuite, allez sur votre [tableau de bord Vercel](https://vercel.com/) et créez un nouveau site avec le dépôt. -- [GitHub Pages](https://pages.github.com/) +### Zephyr Cloud {#zephyr-cloud} -Pour déployer vos diapositives sur GitHub Pages : -- téléchargez tous les fichiers du projet dans votre repository (c'est-à-dire nommé `name_of_repo`) -- créez `.github/workflows/deploy.yml` avec le contenu suivant pour déployer vos diapositives sur GitHub Pages via GitHub Actions. Dans ce fichier, remplacez `` par `name_of_repo`. -- -```yaml -name: Deploy pages -on: push -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: '14' - - name: Install dependencies - run: npm install - - name: Install slidev - run: npm i -g @slidev/cli - - name: Build - run: slidev build --base - - name: Deploy pages - uses: crazy-max/ghaction-github-pages@v2 - with: - build_dir: dist - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +Pour déployer votre présentation Slidev sur [Zephyr Cloud](https://zephyr-cloud.io/), vous pouvez ajouter le support Zephyr à un projet Slidev existant avec : + +```bash +npx with-zephyr@latest ``` -- Dans votre repository, allez dans Paramètres > Pages. Sous « Build and Deployment », sélectionnez « Deploy from a branch », sélectionnez « gh-pages » et « root ». Cliquez sur enregistrer. -- Enfin, une fois tous les flux de travail exécutés, un lien vers les diapositives doit apparaître sous Paramètres > Pages. + +Ce codemod détecte votre bundler (Slidev utilise Vite) et met à jour votre configuration pour Zephyr Cloud. + +Après la configuration, exécutez votre commande de construction habituelle, par exemple : + +```bash +npm run build +``` + +Lorsque la construction s'exécute avec Zephyr activé, votre application est déployée et Zephyr Cloud renvoie une URL de prévisualisation. + +::: info +Zephyr Cloud est un peu différent de la plupart des fournisseurs d'hébergement : chaque exécution de `build` déclenche un déploiement. +::: + +### Héberger sur Docker {#docker} + +Si vous avez besoin d'un moyen rapide d'exécuter une présentation avec des conteneurs, vous pouvez utiliser l'[image Docker](https://hub.docker.com/r/tangramor/slidev) préconstruite maintenue par [tangramor](https://github.com/tangramor), ou construire la vôtre. + +::: details Utiliser l'image Docker + +Exécutez simplement la commande suivante dans votre dossier de travail : + +```bash +docker run --name slidev --rm -it \ + --user node \ + -v ${PWD}:/slidev \ + -p 3030:3030 \ + -e NPM_MIRROR="https://registry.npmmirror.com" \ + tangramor/slidev:latest +``` + +**_Note_** : Vous pouvez utiliser `NPM_MIRROR` pour spécifier un miroir npm pour accélérer le processus d'installation. + +Si votre dossier de travail est vide, il générera un modèle `slides.md` et d'autres fichiers associés dans votre dossier de travail, et lancera le serveur sur le port `3030`. + +Vous pouvez accéder à vos diapositives depuis `http://localhost:3030/` + +Pour créer une image Docker pour vos diapositives, vous pouvez utiliser le Dockerfile suivant : + +```Dockerfile +FROM tangramor/slidev:latest + +ADD . /slidev +``` + +Créez l'image Docker : `docker build -t myslides .` + +Et exécutez le conteneur : `docker run --name myslides --rm --user node -p 3030:3030 myslides` + +Vous pouvez visiter vos diapositives à l'adresse `http://localhost:3030/` + +::: diff --git a/guide/index.md b/guide/index.md old mode 100755 new mode 100644 index 14a2fb5..dc6e951 --- a/guide/index.md +++ b/guide/index.md @@ -1,114 +1,169 @@ -# Commencer +--- +outline: deep +--- -## Aperçu +# Pour commencer -Slidev (slide + dev, `/slʌɪdɪv/`) est un créateur et présentateur de diapositives basé sur le Web. Il est conçu pour que les développeurs se concentrent sur l'écriture de contenu dans Markdown tout en ayant la puissance des composants HTML et Vue pour fournir des mises en page et des conceptions parfaites au pixel près avec des démos interactives intégrées dans vos présentations. +Slidev (slide + dev, **/slaɪdɪv/**) est un créateur et présentateur de diapositives basé sur le web. Il est conçu pour que les développeurs se concentrent sur la rédaction de contenu en Markdown. Grâce à la puissance des technologies web comme Vue, vous pouvez créer des designs pixel-perfect avec des démos interactives pour votre présentation. -Il utilise un fichier de démarque riche en fonctionnalités pour générer de belles diapositives avec une expérience de rechargement instantané, ainsi que de nombreuses intégrations intégrées telles que le codage en direct, l'exportation de PDF, l'enregistrement de présentations, etc. Comme il est alimenté par le Web, vous pouvez tout faire avec Slidev - les possibilités sont infinies. +::: tip -Vous pouvez en savoir plus sur la raison d'être du projet dans la section [Pourquoi Slidev](/guide/why). +Vous pouvez en savoir plus sur la raison d'être de ce projet dans . -### Caractéristiques +::: -- 📝 [**basé sur Markdown**](/guide/syntax.html) - utilisez vos éditeurs et flux de travail préférés -- 🧑‍💻 [**Convivial pour les développeurs**](/guide/syntax.html#code-blocks) - coloration syntaxique intégrée, codage en direct, etc. -- 🎨 [**Themable**](/themes/gallery.html) - le thème peut être partagé et utilisé avec les packages npm -- 🌈 [**Élégant**](/guide/syntax.html#embedded-styles) - utilitaires à la demande via [Windi CSS](https://windicss.org/) ou [UnoCSS](https:// github.com/unocss/unocss). -- 🤹 [**Interactive**](/custom/directory-structure.html#components) - intégration transparente des composants Vue -- 🎙 [**Mode Présentateur**](/guide/presenter-mode.html) - utilisez une autre fenêtre, ou même votre téléphone pour contrôler vos diapositives -- 🎨 [**Dessin**](/guide/drawing.html) - dessinez et annotez sur vos diapositives -- 🧮 [**LaTeX**](/guide/syntax.html#latex) - prise en charge intégrée des équations mathématiques LaTeX -- 📰 [**Diagrams**](/guide/syntax.html#diagrams) - crée des diagrammes avec des descriptions textuelles -- 🌟 [**Icons**](/guide/syntax.html#icons) - Accès direct aux icônes de n'importe quel jeu d'icônes -- 💻 [**Editors**](/guide/editors.html) - éditeur intégré, ou [extension pour VS Code](https://github.com/slidevjs/slidev-vscode) -- 🎥 [**Enregistrement**](/guide/recording.html) - enregistrement intégré et vue caméra -- 📤 [**Portable**](/guide/exporting.html) - exportez en PDF, PNG ou même un SPA hébergeable -- ⚡️ [**Fast**](https://vitejs.dev) - rechargement instantané alimenté par [Vite](https://vitejs.dev) -- 🛠 [**Hackable**](/custom/config-vite.html) - en utilisant les plugins Vite, les composants Vue ou tout package npm + -### Pile technologique + -Slidev est rendu possible en combinant ces outils et technologies. +## Créer des diapositives -- [Vite](https://vitejs.dev) - Un outil frontal extrêmement rapide -- [Vue 3](https://v3.vuejs.org/) propulsé [Markdown](https://daringfireball.net/projects/markdown/syntax) - Concentrez-vous sur le contenu tout en ayant la puissance des composants HTML et Vue chaque fois que nécessaire -- [Windi CSS](https://github.com/windicss/windicss) ou [UnoCSS](https://github.com/unocss/unocss) - Utilitaire à la demande-premier cadre CSS, stylisez vos diapositives à l'aise -- [Prism](https://github.com/PrismJS/prism), [Shiki](https://github.com/shikijs/shiki), [Monaco Editor](https://github.com/Microsoft/ monaco-editor) - Prise en charge des extraits de code de première classe avec capacité de codage en direct -- [RecordRTC](https://recordrtc.org) - Enregistrement intégré et vue caméra -- Famille [VueUse](https://vueuse.org) - [`@vueuse/core`](https://github.com/vueuse/vueuse), [`@vueuse/head`](https:// github.com/vueuse/head), [`@vueuse/motion`](https://github.com/vueuse/motion), etc. -- [Iconify] (https://iconify.design/) - Collection d'ensembles d'icônes. -- [Drauu](https://github.com/antfu/drauu) - Prise en charge du dessin et des annotations -- [KaTeX](https://katex.org/) - Rendu mathématique LaTeX. -- [Mermaid] (https://mermaid-js.github.io/mermaid) - Diagrammes textuels. +### Essayer en ligne -### Création de votre première présentation +Démarrez Slidev directement dans votre navigateur avec StackBlitz : [sli.dev/new](https://sli.dev/new) -#### Essayez en ligne +### Créer localement -[sli.dev/new](https://sli.dev/new) +> Nécessite [Node.js](https://nodejs.org) >= 20.12.0 installé. -[![](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://sli.dev/new) +Exécutez la commande suivante pour créer un nouveau projet Slidev en local : -#### Créer localement +::: code-group -Avec NPM: +```bash [pnpm] +# Si vous n'avez pas installé pnpm +npm i -g pnpm -```bash -$ npm init slidev +pnpm create slidev ``` -Avec Yarn : +```bash [npm] +# Non recommandé - +# NPM va télécharger les packages chaque fois que vous creez un nouveau projet, +# ce qui est lent et prend beaucoup d'espace de stockage -```bash -$ yarn create slidev +npm init slidev@latest ``` -Suivez les instructions et commencez à créer vos diapositives maintenant ! Pour plus de détails sur la syntaxe de démarquage, lisez le [guide de syntaxe](/guide/syntax). +```bash [yarn] +yarn create slidev +``` -### Interface de ligne de commande +```bash [bun] +bun create slidev +``` -Dans un projet où Slidev est installé, vous pouvez utiliser le binaire `slidev` dans vos scripts npm. +```bash [deno] +deno init --npm slidev +``` -```json -{ - "scripts": { - "dev": "slidev", // lancer le serveur de développement - "build": "slidev build", // construire pour la production SPA - "export": "slidev export" // exporter les diapositives en pdf - } -} +::: + +Suivez les instructions pour démarrer votre projet de diapositives. Le contenu des diapositives se trouve dans `slides.md`, qui inclut initialement des démonstrations de la plupart des fonctionnalités de Slidev. Pour plus d'informations sur la syntaxe Markdown, consultez . + +:::: details Utilisation en fichier unique (non recommandé) + +Si vous préférez avoir un seul fichier Markdown pour vos diapositives, vous pouvez installer le CLI de Slidev globalement : + +::: code-group + +```bash [pnpm] +pnpm i -g @slidev/cli ``` -Sinon, vous pouvez l'utiliser avec [`npx`](https://www.npmjs.com/package/npx) +```bash [npm] +npm i -g @slidev/cli +``` + +```bash [yarn] +yarn global add @slidev/cli +``` + +```bash [bun] +bun i -g @slidev/cli +``` + +```bash [deno] +deno i -g npm:@slidev/cli +``` + +::: + +Ensuite, vous pouvez créer et démarrer un fichier unique de diapositives via : ```bash -$ npx slidev +slidev slides.md ``` -Exécutez `slidev --help` pour plus d'options disponibles. +:::: -### Syntaxe de Markdown +## Commandes de base -Slidev lit votre fichier `slides.md` sous la racine de votre projet et les convertit en diapositives. Chaque fois que vous y apportez des modifications, le contenu des diapositives est mis à jour immédiatement. Par exemple : +Slidev fournit un ensemble de commandes dans son CLI. Voici les plus courantes : -~~~md -# Slidev +- `slidev` - Démarrer le serveur de développement. Voir [la commande dev](../builtin/cli#dev). +- `slidev export` - Exporter les diapositives en PDF, PPTX ou PNGs. Voir . +- `slidev build` - Construire les diapositives en application web statique. Voir . +- `slidev format` - Formater les diapositives. Voir [la commande format](../builtin/cli#format). +- `slidev --help` - Afficher le message d'aide -Hello World +Pour exécuter ces commandes, vous pouvez les ajouter à vos scripts dans `package.json` (ce qui a été fait si le projet a été créé via `npm init slidev`) : ---- +```json [package.json] +{ + "scripts": { + "dev": "slidev --open", + "build": "slidev build", + "export": "slidev export" + } +} +``` -# Page 2 +Ensuite, vous pouvez simplement exécuter `npm run dev`, `npm run build`, et `npm run export`. -Utilisez directement des blocs de code pour la mise en évidence +Pour plus d'informations sur le CLI, consultez le [guide du CLI](../builtin/cli). -//```ts -console.log('Hello, World!') -//``` +## Configurer votre éditeur {#editor} ---- +Puisque Slidev utilise Markdown comme source, vous pouvez utiliser l'éditeur de votre choix pour créer vos diapositives. Nous fournissons également des outils pour vous aider à éditer vos diapositives plus facilement : + + + + + +## Rejoindre la communauté -# Page 3 -~~~ +Il est recommandé de rejoindre notre [serveur Discord](https://chat.sli.dev/) officiel pour obtenir de l'aide, partager vos diapositives, ou discuter de tout ce qui concerne Slidev. -En savoir plus sur la syntaxe Slidev Markdown dans le [guide de syntaxe](/guide/syntax). +Si vous rencontrez des bugs, n'hésitez pas à ouvrir une issue sur [GitHub](https://github.com/slidevjs/slidev/issues/new/choose). + +## Stack technique + +Slidev est rendu possible grâce à la combinaison de ces outils et technologies. + +- [Vite](https://vitejs.dev) - Un outil frontend extrêmement rapide +- [Vue 3](https://v3.vuejs.org/) powered [Markdown](https://daringfireball.net/projects/markdown/syntax) - Concentrez-vous sur le contenu tout en disposant de la puissance du HTML et des composants Vue quand nécessaire +- [UnoCSS](https://github.com/unocss/unocss) - Framework CSS utilitaire à la demande, stylez vos diapositives en toute tranquillité +- [Shiki](https://github.com/shikijs/shiki), [Monaco Editor](https://github.com/Microsoft/monaco-editor) - Support des extraits de code de première classe avec capacité de live coding +- [RecordRTC](https://recordrtc.org) - Enregistrement intégré et vue caméra +- [VueUse](https://vueuse.org) family - [`@vueuse/core`](https://github.com/vueuse/vueuse), [`@vueuse/head`](https://github.com/vueuse/head), [`@vueuse/motion`](https://github.com/vueuse/motion), etc. +- [Iconify](https://iconify.design/) - Collection d'icônes. +- [Drauu](https://github.com/antfu/drauu) - Support du dessin et des annotations +- [KaTeX](https://katex.org/) - Rendu des formules mathématiques LaTeX. +- [Mermaid](https://mermaid-js.github.io/mermaid) - Diagrammes textuels. diff --git a/guide/layout.md b/guide/layout.md new file mode 100644 index 0000000..aefd01a --- /dev/null +++ b/guide/layout.md @@ -0,0 +1,32 @@ +# Mise en page des diapositives + +Les mises en page dans Slidev sont utilisées pour définir la structure de chaque diapositive. Ce sont des composants Vue qui enveloppent le contenu des diapositives. + +## Utiliser des mises en page {#use} + +Pour utiliser une mise en page, vous pouvez la spécifier dans le frontmatter de la diapositive : + +```md +--- +layout: quote +--- + +Une citation de quelqu'un +``` + +Par défaut, la mise en page de la première diapositive est `cover`, et les autres sont `default`. + +Les mises en page sont chargées dans l'ordre suivant, et la dernière chargée écrasera les précédentes : + +1. mises en page par défaut. Voir [Mises en page intégrées](../builtin/layouts). +2. mises en page fournies par le thème +3. mises en page fournies par les addons +4. mises en page personnalisées dans le répertoire `layouts` + + + +## Écrire des mises en page {#write} + + diff --git a/guide/syntax.md b/guide/syntax.md old mode 100755 new mode 100644 index 93bc2ad..df6ac84 --- a/guide/syntax.md +++ b/guide/syntax.md @@ -1,518 +1,180 @@ -# Syntaxe de Markdown +--- +outline: deep +--- + +# Guide de syntaxe + +Les diapositives de Slidev sont écrites sous forme de fichiers Markdown, appelés **Slidev Markdown**. Une présentation a un Slidev Markdown comme point d'entrée, qui est `./slides.md` par défaut, mais vous pouvez le modifier en passant le chemin du fichier en argument aux [commandes CLI](../builtin/cli). + +Dans un Slidev Markdown, non seulement [les fonctionnalités Markdown de base](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) peuvent être utilisées comme d'habitude, mais Slidev fournit également des fonctionnalités supplémentaires pour enrichir vos diapositives. Cette section couvre la syntaxe introduite par Slidev. Assurez-vous de connaître la syntaxe Markdown de base avant de lire ce guide. -Les diapositives sont écrites dans **un seul fichier markdown** (par défaut `./slides.md`). +## Séparateurs de diapositives {#slide-separators} -Vous pouvez utiliser [les fonctionnalités Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) comme vous le feriez normalement, avec le support supplémentaire du HTML intégré et des composants Vue. Le style à l'aide de [Windi CSS](https://windicss.org) est également pris en charge. Utilisez `---` avec une nouvelle ligne pour séparer vos diapositives. +Utilisez `---` entouré d'une nouvelle ligne pour séparer vos diapositives. -~~~md -# Slidev +````md {5,15} +# Titre -Hello, World! +Bonjour, **Slidev**! --- -# Page 2 +# Slide 2 -Utilisez directement des blocs de code pour la mise en évidence +Utilisez des blocs de code pour mettre en évidence : -//```ts +```ts console.log('Hello, World!') -//``` +``` --- -# Page 3 +# Slide 3 -Vous pouvez directement utiliser les composants Windi CSS et Vue pour styliser et enrichir vos diapositives. +Utilisez les classes UnoCSS et les composants Vue pour styliser et enrichir vos diapositives :
    - +
    -~~~ +```` + +## Frontmatter & Headmatter {#frontmatter} -## Front Matter & Layouts +Au début de chaque diapositive, vous pouvez ajouter un [frontmatter](https://jekyllrb.com/docs/front-matter/) optionnel pour configurer la diapositive. Le premier bloc frontmatter est appelé **headmatter** et peut configurer l'ensemble du jeu de diapositives. Les autres sont des **frontmatters** pour chaque diapositive individuelle. Les textes dans le headmatter ou le frontmatter doivent être un objet au format [YAML](https://www.cloudbees.com/blog/yaml-tutorial-everything-you-need-get-started/). Par exemple : -Vous pouvez spécifier des mises en page et d'autres métadonnées pour chaque diapositive en convertissant les séparateurs en [blocs de présentation](https://jekyllrb.com/docs/front-matter/). Chaque avant-propos commence par un triple tiret et se termine par un autre. Les textes entre eux sont des objets de données au format [YAML](https://www.cloudbees.com/blog/yaml-tutorial-everything-you-need-get-started/). Par exemple : + -~~~md +```md {1-4,10-14,26-28} --- -layout: cover +theme: seriph +title: Bienvenue sur Slidev --- -# Slidev +# Slide 1 -Ceci est la page de garde. +Le frontmatter de cette diapositive est aussi le headmatter --- layout: center -background: './images/background-1.png' -class: 'text-white' +background: /background-1.png +class: text-white --- -# Page 2 +# Slide 2 -Ceci est une page avec la mise en page «centre» et une image d'arrière-plan. +Une page avec la mise en page `center` et une image de fond --- -# Page 3 +# Slide 3 -Il s'agit d'une page par défaut sans métadonnées supplémentaires. -~~~ - -Reportez-vous à [personnalisations](/custom/) pour plus de détails. - -## Blocs de code - -L'une des principales raisons pour lesquelles je construis Slidev est de faire en sorte que mon code apparaisse parfaitement dans les diapositives. Donc, comme vous vous y attendiez, vous pouvez utiliser le bloc de code aromatisé Markdown pour mettre en évidence votre code. - -~~~ts -//```ts -console.log('Hello, World!') -//``` -~~~ - -Nous supportons [Prism](http://prismjs.com) et [Shiki](https://github.com/shiki/shiki) en tant que surligneurs de syntaxe. Se référer à [la section Surligneurs](/custom/highlighters) pour plus de détails. - -### Mise en évidence de ligne - -Pour mettre en évidence des lignes spécifiques, ajoutez simplement des numéros de ligne entre crochets `{}`. Les numéros de ligne commencent à compter de 1. - -~~~ts -//```ts {2,3} -function add( - a: Ref | number, - b: Ref | number -) { - return computed(() => unref(a) + unref(b)) -} -//``` -~~~ - -Pour changer la surbrillance en plusieurs étapes, vous pouvez utiliser `|` pour les séparer. Par exemple - -~~~ts -//```ts {2-3|5|all} -function add( - a: Ref | number, - b: Ref | number -) { - return computed(() => unref(a) + unref(b)) -} -//``` -~~~ - -Cela mettra d'abord en évidence `a: Ref | number` et `b: Ref | number`, puis `return computed (() => unref (a) + unref (b))` après un clic, et enfin, tout le bloc. Pour en savoir plus, consultez le [guide des animations de clics](/guide/animations). - -Pour ignorer la mise en surbrillance des lignes, vous pouvez définir le numéro de ligne sur "0". Par exemple - -~~~ts {0} -//```ts {0} -function add( - a: Ref | number, - b: Ref | number -) { - return computed(() => unref(a) + unref(b)) -} -//``` -~~~ - -Si le code ne rentre pas dans une diapositive, vous pouvez passer une option maxHeight supplémentaire qui définira une hauteur fixe -et activer le défilement - -~~~ts {2|3|7|12} -//```ts {2|3|7|12} {maxHeight:'100'} -function add( - a: Ref | number, - b: Ref | number -) { - return computed(() => unref(a) + unref(b)) -} -/// ...as many lines as you want -const c = add(1, 2) -//``` -~~~ - -### Éditeur Monaco - -Chaque fois que vous souhaitez apporter des modifications à la présentation, ajoutez simplement `{monaco}` après l'identifiant de la langue - cela transforme le bloc en un éditeur Monaco complet! - -~~~ts -//```ts {monaco} -console.log('HelloWorld') -//``` -~~~ - -En savoir plus sur la [configuration de Monaco](/custom/config-monaco). - -## Styles intégrés - -Vous pouvez utiliser la balise ` +Une page sans frontmatter +--- +src: ./pages/4.md # Cette diapositive ne contient qu'un frontmatter --- -# La prochaine diapositive n'est pas affectée -``` - -La balise ` +# Slide 5 ``` -## Assets statiques +Les configurations que vous pouvez définir sont décrites dans les sections [Configurations du jeu de diapositives](/custom/#headmatter) et [Configurations par diapositive](/custom/#frontmatter). -Tout comme vous le feriez dans Markdown, vous pouvez utiliser des images pointant vers une URL distante ou locale. +Pour rendre le headmatter plus lisible, vous pouvez installer l'extension VSCode : -Pour les assets statiques, le [`vite-plugin-remote-assets`](https://github.com/antfu/vite-plugin-remote-assets) intégré les mettra en cache sur le disque à la première exécution afin que vous puissiez avoir un chargement instantané même pour de grandes images plus tard. - -```md -![Image distante](https://sli.dev/favicon.png) -``` + -Pour les ressources locales, placez-les dans le [dossier `public`](/custom/directory-structure.html#public) et référencez-les avec **la barre oblique principale**. +Il existe également un autre format de frontmatter possible : -```md -![Image locale](/pic.png) -``` - -Si vous souhaitez appliquer des tailles ou des styles personnalisés, vous pouvez les convertir en balise `` - -```html - -``` + -## Remarques +## Notes {#notes} -Vous pouvez également prendre des notes pour chaque diapositive. Ils apparaîtront en [Mode Présentateur](/guide/presenter-mode) pour que vous puissiez vous y référer pendant les présentations. +Vous pouvez également créer des notes de présentateur pour chaque diapositive. Elles apparaîtront dans le pour vous servir de référence pendant les présentations. -Dans Markdown, le dernier bloc de commentaire de chaque diapositive sera traité comme une note. +Les blocs de commentaires à la fin de chaque diapositive sont traités comme la note de la diapositive : -~~~md +```md {9,19-21} --- layout: cover --- -# Page 1 +# Slide 1 -Ceci est la page de garde. +Ceci est la page de couverture. - + --- -# Page 2 +# Slide 2 - + La deuxième page -~~~ - -## Icônes - -Slidev vous permet d'accéder à presque tous les jeux d'icônes open-source populaires **directement** dans votre markdown. Propulsé par [`unplugin-icons`](https://github.com/antfu/unplugin-icons) et [Iconify](https://iconify.design/). - -Le nom suit la conversion de [Iconify](https://iconify.design/) `{collection-name}-{icon-name}`. Par exemple: - -- `` - de [Material Design Icons](https://github.com/Templarian/MaterialDesign) -- `` - de [Carbon](https://github.com/carbon-design-system/carbon/tree/main/packages/icons) -- `` - de [Unicons Monochrome](https://github.com/Iconscout/unicons) -- `` - de [Twemoji](https://github.com/twitter/twemoji) -- `` - de [Logos SVG](https://github.com/gilbarbara/logos) -- Et beaucoup plus... - -Vous pouvez parcourir et rechercher toutes les icônes disponibles avec [Icônes](https://icones.js.org/). - -### Icônes de style - -Vous pouvez styliser les icônes comme les autres éléments HTML. Par exemple : - -```html - - - -``` - - - - - -## Emplacements - -> Disponible depuis v0.18 - -Certaines mises en page peuvent fournir de multiples points de contributions utilisant [Les emplacements nommés de Vue](https://v3.vuejs.org/guide/component-slots.html). - -Par exemple, dans [la mise en page `two-cols`](https://github.com/slidevjs/slidev/blob/main/packages/client/layouts/two-cols.vue), vous pouvez avoir deux colonnes à gauche (emplacement `par défaut`) et à droite (emplacement de `droite`) côte à côte. - -```md ---- -layout: two-cols ---- - - - -``` - -
    -
    - -

    Gauche

    -

    Cela apparaît sur la gauche

    -
    -
    -

    Droite

    -

    Cela apparaît sur la droite

    -
    -
    - -Nous fournissons également une syntaxe abrégée `::name::` pour le nom de l'emplacement. L'exemple suivant fonctionne exactement de la même manière que le précédent. - -```md ---- -layout: two-cols ---- - -# Gauche - -Cela apparaît sur la gauche - -::right:: - -# Droite - -Cela apparaît sur la droite ``` -Vous pouvez également spécifier explicitement l'emplacement par défaut et fournir dans un ordre personnalisé +Le Markdown et le HTML de base sont également supportés dans les notes et seront rendus. -```md ---- -layout: two-cols ---- + -::right:: +## Blocs de code {#code-block} -# Droite +Une des raisons principales de la création de Slidev était le besoin d'afficher parfaitement le code dans les diapositives. Par conséquent, vous pouvez utiliser les blocs de code Markdown pour mettre en surbrillance votre code. -Cela apparaît sur la droite - -::default:: - -# Gauche - -Cela apparaît sur la gauche -``` - -## Configurations - -Toutes les configurations nécessaires peuvent être définies dans le fichier Markdown. Par exemple : - -```md ---- -theme: seriph -layout: cover -background: 'https://source.unsplash.com/1600x900/?nature,water' ---- - -# Slidev - -Ceci est la page de garde. -``` - -En savoir plus sur les [configurations frontmatter](/custom/#frontmatter-configures). - -## LaTeX - -Slidev est livré avec le support LaTeX prêt à l'emploi, alimenté par [KaTeX](https://katex.org/). - - - -### Rendu en ligne - -Entourez votre LaTeX d'un seul `$` de chaque côté pour un rendu en ligne. - -```md -$\sqrt{3x-1}+(1+x)^2$ -``` - -### Block - -Utilisez deux (`$$`) pour le rendu en bloc. Ce mode utilise des symboles plus grands et centre -le résultat. - -```md -$$ -\begin{array}{c} - -\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & -= \frac{4\pi}{c}\vec{\mathbf{j}} \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ - -\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ - -\nabla \cdot \vec{\mathbf{B}} & = 0 - -\end{array} -$$ -``` - -En savoir plus: [Démo](https://sli.dev/demo/starter/8) | [KaTeX](https://katex.org/) | [`markdown-it-katex`](https://github.com/waylonflinn/markdown-it-katex) - -## Diagrammes - -Vous pouvez également créer des diagrammes / graphiques à partir de descriptions textuelles dans votre Markdown, alimenté par [Mermaid](https://mermaid-js.github.io/mermaid). - -Les blocs de code marqués comme `mermaid` seront convertis en digrammes, par exemple : - -~~~md -//```mermaid -sequenceDiagram -Alice->John: Hello John, how are you? -Note over Alice,John: A typical interaction -//``` -~~~ - -Vous pouvez en outre lui transmettre un objet d'options pour spécifier la mise à l'échelle et la thématisation. La syntaxe de l'objet est un littéral d'objet JavaScript, vous devrez ajouter des guillemets (`` '') pour les chaînes et utiliser une virgule (`,`) entre les clés. - -~~~md -//```mermaid {theme: 'neutral', scale: 0.8} -graph TD -B[Text] --> C{Decision} -C -->|One| D[Result 1] -C -->|Two| E[Result 2] -//``` -~~~ - -En savoir plus: [Démo](https://sli.dev/demo/starter/9) | [Mermaid](https://mermaid-js.github.io/mermaid) - -## Entrées multiples - -Depuis la version v0.15.0, nous avons livré le support multi-entrées. Cela signifie que vous pouvez diviser votre `slides.md` en plusieurs fichiers and les organiser comme vous le souhaitez. - -> Disponible depuis v0.15 - -Vous pouvez diviser votre `slides.md` en plusieurs fichiers et les organiser comme vous le souhaitez. - -`slides.md` : - -```md -# Page 1 - -Ceci est une page normale - ---- -src: ./sous-page2.md ---- - - -Le contenu en ligne sera ignoré +````md +```ts +console.log('Hello, World!') ``` +```` -`sous-page2.md` : +Slidev intègre [Shiki](https://github.com/shikijs/shiki) comme colorateur de syntaxe. Référez-vous à [Configurer Shiki](/custom/config-highlighter) pour plus de détails. -```md -# Page 2 +En savoir plus sur les blocs de code : -Cette page provient d'un autre fichier -``` + + + + + + + + + + -### Fusion de frontmatter +## Blocs LaTeX {#latex-block} -Vous pouvez fournir des frontmatters depuis l'entrée principale mais également depuis une page markdown externe. S'il y a les mêmes clés, celles de l'**entrée principale ont la priorité la plus élevée**. Par exemple +Slidev supporte les blocs LaTeX pour les formules mathématiques et chimiques : -`slides.md` : + -```md ---- -src: ./cover.md -background: https://sli.dev/bar.png -class: text-center ---- -``` +## Diagrammes {#diagrams} -`cover.md` : +Slidev supporte [Mermaid](https://mermaid.js.org/) et [PlantUML](https://plantuml.com/) pour créer des diagrammes à partir de texte : -```md ---- -layout: cover -background: https://sli.dev/foo.png ---- + + -# Couverture +## Syntaxe Comark {#comark-syntax} -Page de couverture -``` +La syntaxe Comark est le moyen le plus simple d'appliquer des styles et des classes aux éléments : -Ils finiront par être équivalents à la page suivante : + -```md ---- -layout: cover -background: https://sli.dev/bar.png -class: text-center ---- +## CSS scopé {#scoped-css} -# Couverture - -Page de couverture -``` +Vous pouvez utiliser le CSS scopé pour styliser vos diapositives : -### Réutilisation de la page + -Avec la prise en charge des entrées multiples, la réutilisation des pages peut être simple. Par exemple : +## Importer des diapositives {#importing-slides} -```yaml ---- -src: ./cover.md ---- - ---- -src: ./intro.md ---- - ---- -src: ./content.md ---- - ---- -# réutilisation -src: ./content.md ---- -``` + diff --git a/guide/theme-addon.md b/guide/theme-addon.md new file mode 100644 index 0000000..5c4de46 --- /dev/null +++ b/guide/theme-addon.md @@ -0,0 +1,62 @@ +# Thèmes et addons + +Un projet de diapositives peut avoir un thème et plusieurs addons. Tous peuvent fournir des styles, des composants, des mises en page et d'autres configurations à votre projet de diapositives. + +## Utiliser un thème {#use-theme} + +Changer le thème dans Slidev est étonnamment simple. Tout ce que vous devez faire est d'ajouter l'option `theme` dans votre [headmatter](../custom/index#headmatter) : + +```md +--- +theme: seriph +--- + +# La première diapositive +``` + +Vous pouvez trouver la liste des thèmes officiels et des thèmes communautaires dans la [Galerie de thèmes](../resources/theme-gallery). + +::: info Convention de nommage des thèmes + +- Vous pouvez également passer un chemin relatif ou absolu vers un dossier de thème local, comme `../my-theme` +- Vous pouvez toujours utiliser le nom complet du package comme nom de thème +- Si le thème est [officiel](../resources/theme-gallery#official-themes) ou est nommé comme `slidev-theme-name`, vous pouvez omettre le préfixe `slidev-theme-` +- Pour les packages avec portée comme `@org/slidev-theme-name`, le nom complet du package est requis + +::: + +Vous pouvez démarrer le serveur et il vous sera proposé d'installer le thème après une confirmation. + +
    +
    +? Le thème "@slidev/theme-seriph" n'a pas été trouvé dans votre projet, voulez-vous l'installer maintenant ? › (O/n)
    +
    +
    + +Ou installez le thème manuellement via : + +```bash +$ npm install @slidev/theme-seriph +``` + +Et c'est tout, profitez du nouveau thème ! Pour plus de détails sur l'utilisation, vous pouvez consulter le README du thème. + + + +## Utiliser un addon {#use-addon} + +Les addons sont similaires aux thèmes, mais ils sont plus flexibles et peuvent être utilisés pour ajouter des fonctionnalités supplémentaires à votre projet de diapositives. Vous pouvez ajouter plusieurs addons à votre projet, et ils peuvent être utilisés pour ajouter des fonctionnalités supplémentaires à votre projet de diapositives. + +Pour utiliser un addon, vous pouvez ajouter l'option `addons` dans votre [headmatter](../custom/index#headmatter) : + +```md +--- +addons: + - excalidraw + - '@slidev/plugin-notes' +--- +``` + +Vous pouvez trouver la liste des addons officiels et des addons communautaires dans la [Galerie d'addons](../resources/addon-gallery). diff --git a/guide/ui.md b/guide/ui.md new file mode 100644 index 0000000..215d2b2 --- /dev/null +++ b/guide/ui.md @@ -0,0 +1,149 @@ +--- +outline: deep +--- + +# Interface utilisateur + +## Barre de navigation {#navigation-bar} + +En mode Lecture, déplacez votre souris dans le coin inférieur gauche de la page pour voir la barre de navigation. +![](/screenshots/navbar.png) + +> Vous pouvez étendre la barre de navigation via . + +## Actions de navigation {#navigation-actions} + +| Raccourci clavier | Bouton dans la barre de navigation | Description | +| ----------------------------------- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------------- | +| f | | Basculer en plein écran | +| right / space | | Animation ou diapositive suivante | +| left | | Animation ou diapositive précédente | +| up | - | Diapositive précédente | +| down | - | Diapositive suivante | +| o | | Basculer la [vue d'ensemble rapide](#quick-overview) | +| d | | Basculer le mode sombre | +| - | | Basculer la [vue caméra](../features/recording#camera-view) | +| - | | Démarrer | +| - | | Entrer dans le [mode présentateur](#presenter-mode) | +| - | | Basculer | +| - | | Entrer dans l'[exportateur navigateur](#exporter) | +| - | | Télécharger le PDF. Voir | +| - | | Afficher les informations sur les diapositives | +| - | | Plus d'options | +| g | - | Afficher aller à... | + +> Vous pouvez [configurer les raccourcis](../custom/config-shortcuts). + +## Vue d'ensemble rapide {#quick-overview} + +En appuyant sur o ou en cliquant sur le bouton dans la barre de navigation, vous pouvez obtenir un aperçu de vos diapositives pour naviguer facilement entre elles. + +![](/screenshots/slides-overview.png) + +## Mode présentateur {#presenter-mode} + +Pour entrer dans le mode présentateur, vous pouvez cliquer sur le bouton dans le panneau de navigation, ou visiter `http://localhost:/presenter`. + +Lors d'une présentation, il est recommandé d'ouvrir deux fenêtres de navigateur — une en mode lecture pour l'audience, et une autre en mode présentateur pour vous. Vous pouvez ensuite partager le premier écran avec l'audience et garder le second pour vous. + +Chaque fois que vous naviguez dans les diapositives en mode présentateur, toutes les autres pages ouvertes suivront automatiquement cette navigation pour rester synchronisées avec le présentateur. + +![](/screenshots/presenter-mode.png) + +### Dispositions du présentateur {#presenter-layouts} + +> Disponible depuis la v0.50.0 + +La vue du présentateur propose trois dispositions différentes que vous pouvez parcourir en cliquant sur le bouton de bascule de disposition dans la barre de navigation : + +- **Disposition 1** (par défaut) : Diapositive actuelle affichée en grand en haut, avec les notes et l'aperçu de la diapositive suivante en dessous +- **Disposition 2** : Panneau de notes à gauche, diapositive actuelle et diapositive suivante empilées à droite +- **Disposition 3** : Notes et diapositive actuelle à gauche, aperçu plus grand de la diapositive suivante à droite + +Chaque disposition est optimisée pour différentes tailles d'écran et préférences de présentation. + +### Miroir d'écran {#screen-mirror} + +> Disponible depuis la v0.50.0 + +Dans la vue du présentateur, vous pouvez basculer la zone de diapositive principale en mode « Miroir d'écran ». Cela vous permet de capturer et afficher un autre moniteur ou fenêtre directement dans la vue du présentateur. + +Cliquez sur l'option « Miroir d'écran » dans le contrôle segment de la vue du présentateur, puis sélectionnez l'écran ou la fenêtre que vous souhaitez refléter. C'est utile lorsque vous voulez voir exactement ce que votre audience voit sur le projecteur ou l'écran externe (par ex. codage en direct / démo en direct). + +## Aperçu des diapositives {#slides-overview} + +> Disponible depuis la v0.48.0 + + + +Vous pouvez consulter un aperçu de toutes vos diapositives en ouvrant d'abord le [panneau de vue d'ensemble rapide](#quick-overview) puis en cliquant sur en haut à droite, ou en visitant directement `http://localhost:/overview`. + +La page d'aperçu vous donne une liste linéaire de toutes vos diapositives, avec toutes vos notes sur le côté. Vous pouvez double-cliquer sur les notes pour les modifier directement, et glisser les curseurs de clics pour prévisualiser les étapes de vos diapositives. + +## Éditeur de notes {#notes-editor} + +> Disponible depuis la v0.52.0 + +Slidev fournit un éditeur de notes par lot à `http://localhost:/notes-edit` où vous pouvez modifier les notes de toutes les diapositives dans une seule zone de texte. + +Les notes de chaque diapositive sont séparées par des marqueurs `--- #[slide-number]`. Les modifications sont automatiquement sauvegardées pendant la saisie avec un délai d'attente. + +C'est utile lorsque vous souhaitez écrire ou revoir toutes vos notes de présentateur en un seul endroit sans naviguer entre les diapositives. + +## Interface de dessin {#drawing} + +Voir : + + + +## Interface d'enregistrement {#recording} + +Voir : + + + +## Exportateur navigateur {#exporter} + +Voir : + + + +## Paramètres {#settings} + +Cliquez sur le bouton dans la barre de navigation pour accéder aux paramètres supplémentaires. + +### Filtres CSS {#css-filters} + +> Disponible depuis la v0.50.0 + +Lors de présentations sur différents projecteurs ou écrans, les couleurs peuvent apparaître différemment de ce qui est attendu. Slidev fournit des contrôles de filtre CSS pour ajuster l'affichage en temps réel : + +- **Inverser** : Inverser toutes les couleurs +- **Luminosité** : Ajuster la luminosité globale (0.5 - 1.5) +- **Contraste** : Ajuster les niveaux de contraste (0.5 - 1.5) +- **Saturation** : Ajuster la saturation des couleurs (0.5 - 1.5) +- **Sépia** : Ajouter un effet de ton sépia +- **Rotation de teinte** : Décaler toutes les couleurs en degrés (-180 à 180) + +Ces paramètres sont stockés localement et persistent entre les sessions. Un indicateur point apparaît sur le bouton des paramètres lorsqu'un filtre est actif. + +### Masquer le curseur inactif {#hide-idle-cursor} + +> Disponible depuis la v0.50.0 + +Lorsque cette option est activée, le curseur se masque automatiquement après une période d'inactivité pendant la présentation. Cela offre une expérience de visionnage plus propre pour votre audience. + +### Échelle des diapositives {#slide-scale} + +Choisissez entre le mode « Adapter » (redimensionne les diapositives pour remplir la fenêtre) ou le mode « 1:1 » (affiche les diapositives à leur résolution native). + +### Verrouillage écran {#wake-lock} + +Lorsque cette option est activée, empêche l'écran de se assombrir ou de se verrouiller pendant votre présentation. Nécessite la prise en charge du navigateur pour l'API Wake Lock. + +## Calques globaux {#global-layers} + +Vous pouvez ajouter une interface utilisateur personnalisée au-dessus ou en dessous de vos diapositives pour l'ensemble de la présentation ou par diapositive : + + diff --git a/guide/why.md b/guide/why.md old mode 100755 new mode 100644 index b2b96be..2115d54 --- a/guide/why.md +++ b/guide/why.md @@ -1,71 +1,112 @@ +--- +outline: deep +--- + # Pourquoi Slidev -Il existe de nombreux fabricants de diapositives WYSIWYG polyvalents et riches en fonctionnalités, tels que [Microsoft PowerPoint](https://www.microsoft.com/en-us/microsoft-365/powerpoint) et [Apple Keynote](https://www.apple.com/keynote/). Ils fonctionnent plutôt bien pour créer de belles diapositives avec des animations, des graphiques et bien d'autres choses, tout en étant très intuitifs et faciles à apprendre. Alors pourquoi prendre la peine de faire Slidev? +Il existe de nombreux créateurs de diapositives WYSIWYG riches en fonctionnalités comme [Microsoft PowerPoint](https://www.microsoft.com/en-us/microsoft-365/powerpoint) et [Apple Keynote](https://www.apple.com/keynote/) _(voir [Comparaisons](#comparisons))_. Ils sont intuitifs et faciles à apprendre. Alors pourquoi se donner la peine de créer Slidev ? + +Slidev vise à offrir flexibilité et interactivité aux **développeurs** pour rendre leurs présentations bien plus intéressantes, expressives et attrayantes en utilisant des technologies qu'ils connaissent bien. Slidev est également open source avec une communauté solide. + +Slidev est basé sur le Markdown, ce qui vous aide à **vous concentrer sur le contenu**. Slidev est également basé sur le Web, ce qui signifie que **rien n'est impossible** — tout ce que vous pouvez faire dans une application web peut s'appliquer à vos diapositives. + +Slidev est aussi **progressif**. Vous pouvez commencer avec un fichier Markdown super simple, puis utiliser les [fonctionnalités intégrées](../features/) dont vous avez besoin sans aucune configuration. Il existe également des [thèmes et addons](./theme-addon) que vous pouvez optionnellement installer pour améliorer vos diapositives. + +![demo slide](/screenshots/cover.png) {#welcome} + +## Fonctionnalités + +### 📝 Basé sur le Markdown + +Slidev utilise un format Markdown étendu pour organiser vos diapositives dans un seul fichier texte. Cela vous aide à vous concentrer sur le contenu tout en vous permettant d'utiliser Git et l'éditeur de votre choix. + +> En savoir plus : . + +### 🧑‍💻 Convivial pour les développeurs + +Slidev offre un support de premier ordre pour les extraits de code destinés aux développeurs. Il utilise [Shiki](https://github.com/shikijs/shiki) pour obtenir la coloration syntaxique la plus précise. Slidev prend également en charge et . Ce qui fait de Slidev le meilleur choix pour les conférences techniques. + +### 🎨 Thématisable + +Les thèmes pour Slidev peuvent être partagés via des packages npm. Vous appliquez un thème en une seule ligne de code. + +Consultez la [galerie de thèmes](../resources/theme-gallery) pour les magnifiques thèmes créés par l'équipe officielle et la communauté. + +### ⚡ Rapide + +Chaque modification que vous faites dans l'éditeur sera mise à jour dans vos diapositives dans le navigateur **instantanément** sans rechargement, grâce à la [fonctionnalité HMR de Vite](https://vitejs.dev/guide/features.html#hot-module-replacement). -Slidev vise à fournir la flexibilité et l'interactivité aux développeurs pour rendre leurs présentations encore plus intéressantes, expressives et attrayantes en utilisant les outils et les technologies avec lesquels ils sont déjà familiers. +### 🤹 Interactif et expressif -Lorsque vous travaillez avec des éditeurs WYSIWYG, il est facile de se laisser distraire par les options de style. Slidev remédie à cela en séparant le contenu et les éléments visuels. Cela vous permet de vous concentrer sur une chose à la fois, tout en pouvant réutiliser les thèmes de la communauté. Slidev ne cherche pas à remplacer entièrement les autres constructeurs de diapositives. Il se concentre plutôt sur la restauration de la communauté des développeurs. +Vous pouvez écrire des composants Vue et les utiliser dans vos diapositives, avec lesquels vous pouvez ensuite interagir pendant la présentation pour exprimer votre idée de manière plus intéressante et intuitive. -## Slidev +Slidev prend également en charge nativement , qui vous permet de faire du codage en direct dans votre présentation avec l'auto-complétion et les info-bulles. -![](/screenshots/cover.png) +### 🎥 Support d'enregistrement -Voici quelques-unes des fonctionnalités les plus intéressantes de Slidev : +Slidev fournit un enregistrement intégré et une vue caméra. Vous pouvez partager votre présentation avec votre vue caméra à l'intérieur, ou enregistrer et sauvegarder votre écran et votre caméra séparément. -## Basé sur Markdown +> En savoir plus : . -Slidev utilise un format Markdown étendu pour stocker et organiser vos diapositives dans un seul fichier de texte brut. Cela vous permet de vous concentrer sur la création du contenu. Et comme le contenu et les styles sont séparés, cela a également permis de basculer entre différents thèmes sans effort. +### 📤 Portable -En savoir plus sur la [Syntaxe Markdown de Slidev](/guide/syntax). +Vous pouvez exporter vos diapositives en PDF, PPTX, PNGs, ou même une application monopage (SPA) via une seule commande. Ensuite, vous pouvez les partager ou les héberger où vous le souhaitez. -## Thème +> En savoir plus : et . -Les thèmes pour Slidev peuvent être partagés et installés à l'aide des packages npm. Vous les appliquez ensuite avec une seule ligne de configuration. +### 🛠 Personnalisable -Consultez la [galerie de thèmes](/themes/gallery) ou [apprenez à écrire un thème](/themes/write-a-theme). +Parce que Slidev est basé sur le Web, tout ce qui peut être fait dans une application web classique peut être appliqué à vos diapositives. Par exemple, WebGL, requêtes API, iframes, ou même le partage en direct. C'est à votre imagination de décider ! -## Adapté aux développeurs +> En savoir plus : [Personnalisation](../custom/). -Slidev fournit un support de première classe pour les extraits de code pour les développeurs. Il prend en charge à la fois [Prism](https://prismjs.com/) et [Shiki](https://github.com/shikijs/shiki) pour obtenir une coloration syntaxique parfaite des pixels, tout en étant capable de modifier le code à tout moment temps. Avec [Monaco editor](https://microsoft.github.io/monaco-editor/) intégré, il vous permet également de faire du codage / démonstration en direct dans votre présentation avec la saisie semi-automatique, le survol de type et même la prise en charge de la vérification de type TypeScript. +## Comparaisons -En savoir plus sur [surligneurs](/custom/highlighters) et [configuration Monaco](/custom/config-monaco). +::: details Slidev vs. Microsoft PowerPoint / Apple Keynote -## Rapide +[Microsoft PowerPoint](https://www.microsoft.com/en-us/microsoft-365/powerpoint) et [Apple Keynote](https://www.apple.com/keynote/) sont des créateurs de diapositives WYSIWYG riches en fonctionnalités. Ils sont intuitifs et faciles à apprendre, ce qui en fait l'un des meilleurs choix pour les non-développeurs. -Slidev est alimenté par [Vite](https://vitejs.dev/), [Vue 3](https://v3.vuejs.org/) et [Windi CSS](https://windicss.org/), qui vous offrent la plus merveilleuse expérience de création. Chaque modification que vous apportez sera répercutée sur vos diapositives **instantanément**. +Par rapport à eux, Slidev présente les avantages suivants : -En savoir plus sur [notre pile technologique](/guide/#pile-technologique). +- Convivial pour les développeurs : Les extraits de code sont des citoyens de premier plan dans Slidev. +- Basé sur le Markdown : Concentrez-vous sur le contenu, et gérez la version de vos diapositives avec Git. +- Basé sur le Web : Tout ce que vous pouvez faire dans une application web peut s'appliquer à vos diapositives. +- Personnalisable : Personnalisez tout ce que vous voulez avec les technologies web. +- Open source : Slidev est entièrement open source, et possède une communauté solide. -## Interactif et expressif +::: -Vous pouvez écrire des composants Vue personnalisés et les utiliser directement dans votre fichier markdown. Vous pouvez également interagir avec eux dans la présentation pour exprimer votre idée de manière plus intéressante et intuitive. +::: details Slidev vs. Reveal.js -## Prise en charge de l'enregistrement +[Reveal.js](https://revealjs.com/) est un framework de présentation HTML populaire. Il est également open source et prend en charge le Markdown. -Slidev fournit un enregistrement intégré et une vue de la caméra. Vous pouvez partager votre présentation avec la vue de votre caméra à l'intérieur, ou les enregistrer et les enregistrer séparément pour votre écran et votre caméra. Tout cela d'un seul coup, aucun outil supplémentaire n'est nécessaire. +Par rapport à Reveal.js, Slidev présente les avantages suivants : -En savoir plus sur [enregistrement ici](/guide/recording). +- Plus concis : Slidev utilise un format Markdown étendu, tandis que Reveal.js vous encourage à écrire du HTML pour organiser vos diapositives. +- Support de Vue : Vous pouvez utiliser des composants Vue dans Slidev pour rendre vos diapositives interactives. +- Basé sur Vite : Slidev est construit sur Vite, qui offre un HMR instantané et une API de plugin flexible. +- CSS automatique : Vous pouvez utiliser [UnoCSS](https://unocss.dev/) dès le départ pour styliser vos diapositives. -## Portable +::: -Exportez vos diapositives au format PDF, PNG ou même dans une application monopage hébergée (SPA) avec une seule commande et partagez-les n'importe où. +::: details Slidev vs. Marp -Apprenez-en plus à ce sujet dans la [documentation d'exportation](/guide/exporting). +[Marp](https://marp.app/) est un outil de présentation Markdown qui se concentre sur la simplicité et la portabilité. Il est également open source et prend en charge le Markdown. -## Hackable +Par rapport à Marp, Slidev présente les avantages suivants : -Étant alimenté par les technologies Web, tout ce qui peut être fait dans une application Web est également possible avec Slidev. Par exemple, WebGL, requêtes API, iframes ou même partage en direct. C'est à votre imagination! +- La même simplicité : Les diapositives de Slidev peuvent commencer aussi simplement que celles de Marp. +- Plus de fonctionnalités : Slidev prend en charge de nombreuses fonctionnalités que Marp n'offre pas. +- Support de Vue : Vous pouvez utiliser des composants Vue dans Slidev pour rendre vos diapositives interactives. +- Basé sur Vite : Slidev est construit sur Vite, qui offre un HMR instantané et une API de plugin flexible. +- CSS automatique : Vous pouvez utiliser [UnoCSS](https://unocss.dev/) dès le départ pour styliser vos diapositives. -## Essaie +::: -Jouer avec Slidev vous en dira plus que mille mots. Vous n'êtes qu'à une seule commande : +## Essayez-le -```bash -$ npm init slidev -``` +Expérimenter avec Slidev vous en apprendra plus que mille mots. Consultez le guide pour créer votre premier projet Slidev en un clic ou une commande. -Ou en avoir un aperçu rapide : +Ou vous pouvez avoir un aperçu rapide : -
    - -
    + diff --git a/guide/work-with-ai.md b/guide/work-with-ai.md new file mode 100644 index 0000000..a7dbff5 --- /dev/null +++ b/guide/work-with-ai.md @@ -0,0 +1,59 @@ +# Travailler avec l'IA + +Grâce au fait que Slidev est basé sur le Markdown, il fonctionne parfaitement avec les agents de codage IA. + +## Compétences + +Slidev fournit des [compétences](https://code.claude.com/docs/en/skills) officielles pour les agents de codage IA, leur permettant de comprendre la syntaxe, les fonctionnalités et les bonnes pratiques de Slidev lorsqu'ils vous aident à créer des présentations. + +### Installation + +Installez la compétence Slidev sur votre agent de codage IA : + +```bash +npx skills add slidevjs/slidev +``` + +Le code source de la compétence est [ici](https://github.com/slidevjs/slidev/tree/main/skills/slidev). + +### Exemples de prompts + +Une fois installé, vous pouvez demander aux agents de vous aider avec diverses tâches Slidev : + +``` +Créez une présentation Slidev sur les génériques TypeScript avec des exemples de code +``` + +``` +Ajoutez une diapositive en deux colonnes avec du code à gauche et une explication à droite +``` + +``` +Configurez des animations de clic pour révéler les points un par un +``` + +``` +Configurez la présentation pour l'export PDF avec les notes du présentateur +``` + +### Ce qui est inclus + +La compétence Slidev fournit des connaissances sur : + +- La syntaxe Markdown, les séparateurs de diapositives et le frontmatter +- Les animations de clic et les transitions +- La coloration de code, l'éditeur Monaco et magic-move +- Les diagrammes (Mermaid, PlantUML) et les mathématiques LaTeX +- Les dispositions et composants intégrés +- Les options d'export et d'hébergement + +## Extension VS Code + +L'extension fournit des outils de modèle de langage qui permettent à Copilot de VS Code et à d'autres assistants IA d'interagir directement avec votre projet Slidev. Ces outils permettent à l'IA de : + +- Obtenir des informations sur la diapositive active et le projet +- Récupérer le contenu de diapositives spécifiques +- Lister et rechercher des diapositives par titre +- Naviguer entre les diapositives + +Voir pour plus de détails. diff --git a/guide/write-addon.md b/guide/write-addon.md new file mode 100644 index 0000000..aba5fd9 --- /dev/null +++ b/guide/write-addon.md @@ -0,0 +1,48 @@ +# Écrire des addons + +> Veuillez d'abord lire et . + +Chaque projet de diapositives ne peut avoir qu'un seul thème, mais peut avoir plusieurs addons. + +## Capacités + +En théorie, toutes les capacités d'un thème peuvent être réalisées dans un addon. Cependant, un addon est plus comme un plugin qui étend les fonctionnalités de Slidev. + +Il est recommandé d'implémenter un ou plusieurs des points suivants dans un addon : + +- Fournir des composants personnalisés +- Fournir de _nouvelles_ dispositions +- Fournir de nouveaux extraits de code +- Fournir de nouveaux exécuteurs de code +- Configurer des outils comme UnoCSS, Vite, etc. + +Cependant, les points suivants **ne** sont **pas** recommandés pour un addon, et seraient mieux [implémentés en tant que thème](./write-theme) : + +- Styles globaux généraux +- Remplacement des dispositions existantes +- Remplacement des configurations +- Autres choses qui pourraient être incompatibles avec le thème et d'autres addons + +Un addon peut également spécifier sa version de Slidev requise de la même manière que les thèmes. + +## Aperçu + +Comme pour les thèmes, vous pouvez prévisualiser votre addon via un fichier `./slides.md` comme ceci : + +```md [slides.md] +--- +addons: + - ./ +--- +``` + +## Publication + +Lors de la publication de l'addon, les fichiers non-JS comme les fichiers `.vue` et `.ts` peuvent être publiés directement sans compilation. Slidev les compilera automatiquement lors de l'utilisation de l'addon. + +Les addons doivent suivre les conventions suivantes : + +- Le nom du package doit commencer par `slidev-addon-`. Par exemple, `slidev-addon-name` ou `@scope/slidev-addon-name` +- Ajoutez `"slidev-addon"` et `"slidev"` dans le champ `keywords` de votre `package.json` + +Les addons peuvent être utilisés localement sans être publiés sur NPM. Si votre addon est uniquement à usage personnel, vous pouvez simplement l'utiliser comme addon local, ou le publier comme package privé avec portée. Cependant, il est recommandé de le publier sur le registre NPM si vous souhaitez le partager avec d'autres. diff --git a/guide/write-layout.md b/guide/write-layout.md new file mode 100644 index 0000000..6d8dbc3 --- /dev/null +++ b/guide/write-layout.md @@ -0,0 +1,43 @@ +# Écrire des mises en page + +> Veuillez d'abord lire . + +Pour créer une mise en page personnalisée, créez simplement un nouveau fichier Vue dans le répertoire `layouts` : + +```bash +your-slidev/ + ├── ... + ├── slides.md + └── layouts/ + ├── ... + └── MyLayout.vue +``` + +Les mises en page sont des composants Vue, vous pouvez donc utiliser toutes les fonctionnalités de Vue dans celles-ci. + +Dans le composant de mise en page, utilisez `` (le slot par défaut) pour le contenu de la diapositive : + +```vue [default.vue] + +``` + +Vous pouvez également avoir des [slots nommés](https://vuejs.org/guide/components/slots.html) pour des mises en page plus complexes : + +```vue [split.vue] + +``` + +Et ensuite l'utiliser avec . diff --git a/guide/write-theme.md b/guide/write-theme.md new file mode 100644 index 0000000..28a58ea --- /dev/null +++ b/guide/write-theme.md @@ -0,0 +1,113 @@ +# Écrire des thèmes + +> Veuillez d'abord lire . + +Chaque projet de diapositives ne peut avoir qu'un seul thème. Les thèmes doivent se concentrer sur l'apparence des diapositives. Si la fonctionnalité n'est pas liée à l'apparence et peut être utilisée séparément, elle doit être implémentée comme un [addon](./write-addon). + +Pour commencer, nous vous recommandons d'utiliser notre générateur pour échafauder votre premier thème + +::: code-group + +```bash [pnpm] +$ pnpm create slidev-theme +``` + +```bash [npm] +$ npm init slidev-theme@latest +``` + +```bash [yarn] +$ yarn create slidev-theme +``` + +```bash [bun] +$ bun create slidev-theme +``` + +```bash [deno] +$ deno init --npm slidev-theme +``` + +::: + +Ensuite, vous pouvez le modifier et l'expérimenter. Vous pouvez également vous référer aux [thèmes officiels](../resources/theme-gallery#official-themes) comme exemples. + +## Capacités + +Un thème peut contribuer aux points suivants : + +- Styles globaux +- Fournir des configurations par défaut +- Fournir des dispositions personnalisées ou remplacer les existantes +- Fournir des composants personnalisés +- Configurer des outils comme UnoCSS, Shiki, etc. + +Cependant, les points suivants **ne** sont **pas** recommandés pour un thème, et seraient mieux implémentés comme un [addon](./write-addon) : + +- Nouveaux extraits de code +- Nouveaux exécuteurs de code +- Autres choses qui peuvent être utilisées séparément + +Fondamentalement, la façon de fournir des styles globaux, des dispositions, des composants et de configurer des outils est la même que dans un projet de diapositives. Par exemple, pour configurer Shiki, vous pouvez créer un fichier `./setup/shiki.ts` comme décrit dans [Configurer le surligneur](../custom/config-highlighter). Vous pouvez vous référer au [guide de personnalisation](/custom/) pour plus d'informations. + +Pour fournir des configurations Slidev par défaut, vous pouvez ajouter un champ `slidev.defaults` dans le fichier `package.json`, qui sera fusionné avec les configurations de l'utilisateur : + +```json [package.json] +{ + "slidev": { + "defaults": { + "transition": "slide-left", + "aspectRatio": "4/3" + } + } +} +``` + +### Version de Slidev requise + +Si le thème dépend d'une fonctionnalité spécifique de Slidev récemment introduite, vous pouvez définir la version minimale de Slidev requise pour que votre thème fonctionne correctement : + +```json +{ + "engines": { + "slidev": ">=0.48.0" + } +} +``` + +Un message d'erreur sera affiché lorsqu'une version incompatible est utilisée. + +### Métadonnées du thème + +Par défaut, Slidev suppose que les thèmes prennent en charge à la fois le mode clair et le mode sombre. Si vous souhaitez que votre thème soit présenté uniquement dans un schéma de couleurs spécifique, vous devez le spécifier explicitement dans le `package.json` : + +```json [package.json] +{ + "slidev": { + "colorSchema": "light" // ou "dark" ou "both" + } +} +``` + +## Aperçu + +Vous pouvez prévisualiser votre thème pendant le développement en utilisant un jeu de diapositives de démonstration. Pour ce faire, créez un fichier `./slides.md` avec l'en-tête suivant : + +```md [slides.md] +--- +theme: ./ # Utiliser le thème dans le répertoire courant +--- +``` + +Ensuite, vous pouvez démarrer les diapositives de démonstration comme d'habitude. + +## Publication + +Lors de la publication du thème, les fichiers non-JS comme les fichiers `.vue` et `.ts` peuvent être publiés directement sans compilation. Slidev les compilera automatiquement lors de l'utilisation du thème. + +Les thèmes doivent suivre les conventions suivantes : + +- Le nom du package doit commencer par `slidev-theme-`. Par exemple, `slidev-theme-name` ou `@scope/slidev-theme-name` +- Ajoutez `"slidev-theme"` et `"slidev"` dans le champ `keywords` de votre `package.json` + +Les thèmes peuvent être utilisés localement sans être publiés sur NPM. Si votre thème est uniquement à usage personnel, vous pouvez simplement l'utiliser comme thème local, ou le publier comme package privé avec portée. Cependant, il est recommandé de le publier sur le registre NPM si vous souhaitez le partager avec d'autres. diff --git a/index.md b/index.md old mode 100755 new mode 100644 index 948fd38..bee44a8 --- a/index.md +++ b/index.md @@ -1,11 +1,6 @@ --- -home: true -heroImage: /logo.png -actionText: Démarrer -actionLink: /guide/ - -altActionText: En savoir plus -altActionLink: /guide/why - -footer: MIT Licensed | Copyright © 2021-PRESENT Anthony Fu +layout: home +markdownStyles: false --- + + diff --git a/resources/addon-gallery.md b/resources/addon-gallery.md new file mode 100644 index 0000000..e34b606 --- /dev/null +++ b/resources/addon-gallery.md @@ -0,0 +1,32 @@ +--- +aside: false +--- + + + +# Galerie d'addons + +Parcourez les addons fantastiques disponibles pour Slidev ici. + +En savoir plus sur pour les utiliser, et pour créer votre propre addon. + + + +## Addons communautaires + +Voici les addons sélectionnés créés par la communauté. + + + + + + +## Plus d'addons + +Retrouvez tous les [addons disponibles sur NPM](https://www.npmjs.com/search?q=keywords%3Aslidev-addon). diff --git a/resources/covers.md b/resources/covers.md old mode 100755 new mode 100644 index d3dd5a0..8b58924 --- a/resources/covers.md +++ b/resources/covers.md @@ -1,14 +1,16 @@ -# Couvertures organisées +# Couvertures sélectionnées -Nous avons organisé quelques images de couverture pour démontrer notre modèle de démarrage. +Nous avons sélectionné quelques images de couverture pour illustrer notre template de démarrage. ![](/screenshots/covers.png) ```yaml --- # image aléatoire de la collection organisée -background: https://source.unsplash.com/collection/94734566/1920x1080 +background: https://cover.sli.dev --- ``` -Si vous appréciez l'un d'entre eux, consultez notre [collection Unsplash](https://unsplash.com/collections/94734566/slidev) et découvrez leurs auteurs. +Si l'une d'entre elles vous plaît, consultez notre [collection Unsplash](https://unsplash.com/collections/94734566/slidev) et découvrez leurs auteurs. + +[cover.sli.dev](https://cover.sli.dev) est hébergé depuis [`slidevjs/slidev-covers`](https://github.com/slidevjs/slidev-covers). diff --git a/resources/learning.md b/resources/learning.md index cfa4cab..b1c3ea2 100644 --- a/resources/learning.md +++ b/resources/learning.md @@ -1,22 +1,23 @@ -# Learning Resources +# Ressources d'apprentissage ## English -### Videos +### Vidéos - +- [Slidev - one of the best presentation software and it is free!](https://www.youtube.com/watch?v=oSgM6GoSwyY) - par [Federico Tartarini](https://www.youtube.com/@FedericoTartarini) +- [Slides + developers = slidev](https://www.youtube.com/watch?v=nleqgO38pPU) par Murilo Cunha ### Articles -- [Tips To Turn R Markdown Into Slidev Presentation](https://yutani.rbind.io/post/2021-06-05-tips-to-turn-r-markdown-into-slidev-presentation/) by Hiroaki Yutani +- [Tips To Turn R Markdown Into Slidev Presentation](https://yutani.rbind.io/post/2021-06-05-tips-to-turn-r-markdown-into-slidev-presentation/) par Hiroaki Yutani ## 中文 -- [Slidev:一个用Markdown写slides的神器](https://zhuanlan.zhihu.com/p/372729473) by [梦里风林](https://www.zhihu.com/people/meng-li-feng-lin) -- [神器!这款开源项目可以让你使用 Markdown 来做 PPT!](https://zhuanlan.zhihu.com/p/377567327) by [Github掘金计划](https://www.zhihu.com/people/github-stars) -- [【用 markdown 写 Slide!】神器 Slidev 的安装及 bug 解决](https://blog.csdn.net/weixin_43828250/article/details/116664775) by HaloHoohoo +- [Slidev:一个用Markdown写slides的神器](https://zhuanlan.zhihu.com/p/372729473) par [梦里风林](https://www.zhihu.com/people/meng-li-feng-lin) +- [神器!这款开源项目可以让你使用 Markdown 来做 PPT!](https://zhuanlan.zhihu.com/p/377567327) par [Github掘金计划](https://www.zhihu.com/people/github-stars) ## 日本語 -- [開発者のためのスライド作成ツール Slidev がすごい](https://zenn.dev/ryo_kawamata/articles/introduce-slidev) by [ryo_kawamata](https://zenn.dev/ryo_kawamata) -- [Markdownでオシャレなスライドを作るSli.dev](https://qiita.com/e99h2121/items/a115f8865a0dc21bb462) by [Nobuko YAMADA](https://qiita.com/e99h2121) +- [開発者のためのスライド作成ツール Slidev がすごい](https://zenn.dev/ryo_kawamata/articles/introduce-slidev) par [ryo_kawamata](https://zenn.dev/ryo_kawamata) +- [Markdownでオシャレなスライドを作るSli.dev](https://qiita.com/e99h2121/items/a115f8865a0dc21bb462) par [Nobuko YAMADA](https://qiita.com/e99h2121) +- [【Slidev 超入門】エンジニアだからこそ作れるつよつよスライドの作り方!](https://zenn.dev/takumaru/articles/3faa75c2f09493) par [takuma-ru](https://zenn.dev/takumaru) diff --git a/resources/showcases.md b/resources/showcases.md new file mode 100644 index 0000000..c58c553 --- /dev/null +++ b/resources/showcases.md @@ -0,0 +1,10 @@ +--- +aside: false +--- + +# Exemples de réalisations + +Présentations réalisées avec Slidev. + + + diff --git a/resources/theme-gallery.md b/resources/theme-gallery.md new file mode 100644 index 0000000..2e0a878 --- /dev/null +++ b/resources/theme-gallery.md @@ -0,0 +1,32 @@ +--- +aside: false +--- + + + +# Galerie de thèmes + +Parcourez les thèmes fantastiques disponibles pour Slidev ici. + +En savoir plus sur pour les utiliser, et pour créer votre propre thème. + +## Thèmes officiels {#official-themes} + + + + + +## Thèmes communautaires {#community-themes} + +Voici les thèmes sélectionnés créés par la communauté. + + + + + + +## Plus de thèmes {#more-themes} + +Retrouvez tous les [thèmes disponibles sur NPM](https://www.npmjs.com/search?q=keywords%3Aslidev-theme). From 084296200ccd15d4f5d486500a5b9cde27bf805c Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 30 Apr 2026 11:25:27 +0200 Subject: [PATCH 02/10] updating --- .gitignore | 2 +- components.d.ts | 203 ++++++++++++++++++++++++++++++++--------------- eslint.config.js | 5 ++ netlify.toml | 51 ++++++------ package.json | 80 +++++++++++-------- tsconfig.json | 28 +++---- uno.config.ts | 28 +++++++ vite.config.ts | 64 ++++++--------- 8 files changed, 284 insertions(+), 177 deletions(-) create mode 100644 eslint.config.js create mode 100644 uno.config.ts diff --git a/.gitignore b/.gitignore index 3ebecbc..fda84bf 100755 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ node_modules dist .vitepress/@slidev -.idea +.vitepress/cache \ No newline at end of file diff --git a/components.d.ts b/components.d.ts index 6f154fa..2249a76 100644 --- a/components.d.ts +++ b/components.d.ts @@ -1,101 +1,174 @@ -// generated by unplugin-vue-components -// We suggest you to commit this file into source control +/* eslint-disable */ +// @ts-nocheck +// biome-ignore lint: disable +// oxlint-disable +// ------ +// Generated by unplugin-vue-components // Read more: https://github.com/vuejs/core/pull/3399 -import '@vue/runtime-core' +import { GlobalComponents } from 'vue' export {} -declare module '@vue/runtime-core' { +/* prettier-ignore */ +declare module 'vue' { export interface GlobalComponents { - AlgoliaSearchBox: typeof import('./.vitepress/theme/components/AlgoliaSearchBox.vue')['default'] - 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'] - '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'] + AddonGallery: typeof import('./.vitepress/theme/components/AddonGallery.vue')['default'] + AddonInfo: typeof import('./.vitepress/theme/components/AddonInfo.vue')['default'] + Arrow: typeof import('./node_modules/@slidev/client/builtin/Arrow.vue')['default'] + AutoFitText: typeof import('./node_modules/@slidev/client/builtin/AutoFitText.vue')['default'] CarbonApps: typeof import('~icons/carbon/apps')['default'] CarbonArrowLeft: typeof import('~icons/carbon/arrow-left')['default'] CarbonArrowRight: typeof import('~icons/carbon/arrow-right')['default'] CarbonBadge: typeof import('~icons/carbon/badge')['default'] + CarbonDocumentPdf: typeof import('~icons/carbon/document-pdf')['default'] CarbonDownload: typeof import('~icons/carbon/download')['default'] CarbonEdit: typeof import('~icons/carbon/edit')['default'] CarbonInformation: typeof import('~icons/carbon/information')['default'] + CarbonListBoxes: typeof import('~icons/carbon/list-boxes')['default'] CarbonMaximize: typeof import('~icons/carbon/maximize')['default'] CarbonMinimize: typeof import('~icons/carbon/minimize')['default'] CarbonMoon: typeof import('~icons/carbon/moon')['default'] CarbonPen: typeof import('~icons/carbon/pen')['default'] CarbonSettingsAdjust: typeof import('~icons/carbon/settings-adjust')['default'] CarbonSun: typeof import('~icons/carbon/sun')['default'] + CarbonTextAnnotationToggle: typeof import('~icons/carbon/text-annotation-toggle')['default'] CarbonUserAvatar: typeof import('~icons/carbon/user-avatar')['default'] 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'] - EditLink: typeof import('./.vitepress/theme/components/EditLink.vue')['default'] + CodeBlockWrapper: typeof import('./node_modules/@slidev/client/builtin/CodeBlockWrapper.vue')['default'] + CodeGroup: typeof import('./node_modules/@slidev/client/builtin/CodeGroup.vue')['default'] + CodiconAdd: typeof import('~icons/codicon/add')['default'] + CodiconEye: typeof import('~icons/codicon/eye')['default'] + CodiconGlobe: typeof import('~icons/codicon/globe')['default'] + CodiconLock: typeof import('~icons/codicon/lock')['default'] + CodiconRunAll: typeof import('~icons/codicon/run-all')['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'] - Home: typeof import('./.vitepress/theme/components/Home.vue')['default'] - HomeFeatures: typeof import('./.vitepress/theme/components/HomeFeatures.vue')['default'] - HomeFooter: typeof import('./.vitepress/theme/components/HomeFooter.vue')['default'] - HomeHero: typeof import('./.vitepress/theme/components/HomeHero.vue')['default'] - LastUpdated: typeof import('./.vitepress/theme/components/LastUpdated.vue')['default'] - Link: typeof import('./.vitepress/@slidev/client/builtin/Link.vue')['default'] + FeaturesAnimation: typeof import('./.vitepress/theme/components/FeaturesAnimation.vue')['default'] + FeaturesAnimationInner: typeof import('./.vitepress/theme/components/FeaturesAnimationInner.vue')['default'] + FeaturesOverview: typeof import('./.vitepress/theme/components/FeaturesOverview.vue')['default'] + FeatureTag: typeof import('./.vitepress/theme/components/FeatureTag.vue')['default'] + KaTexBlockWrapper: typeof import('./node_modules/@slidev/client/builtin/KaTexBlockWrapper.vue')['default'] + LandingPage: typeof import('./.vitepress/theme/components/LandingPage.vue')['default'] + Layout: typeof import('./.vitepress/theme/components/Layout.vue')['default'] + LightOrDark: typeof import('./node_modules/@slidev/client/builtin/LightOrDark.vue')['default'] + Link: typeof import('./node_modules/@slidev/client/builtin/Link.vue')['default'] + LinkCard: typeof import('./.vitepress/theme/components/LinkCard.vue')['default'] + LinkInline: typeof import('./.vitepress/theme/components/LinkInline.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'] - NavBar: typeof import('./.vitepress/theme/components/NavBar.vue')['default'] - NavBarTitle: typeof import('./.vitepress/theme/components/NavBarTitle.vue')['default'] - NavDropdownLink: typeof import('./.vitepress/theme/components/NavDropdownLink.vue')['default'] - NavDropdownLinkItem: typeof import('./.vitepress/theme/components/NavDropdownLinkItem.vue')['default'] - NavLink: typeof import('./.vitepress/theme/components/NavLink.vue')['default'] - NavLinks: typeof import('./.vitepress/theme/components/NavLinks.vue')['default'] - NextAndPrevLinks: typeof import('./.vitepress/theme/components/NextAndPrevLinks.vue')['default'] - Note: typeof import('./.vitepress/theme/components/Note.vue')['default'] - OutboundLink: typeof import('./.vitepress/theme/components/icons/OutboundLink.vue')['default'] - Page: typeof import('./.vitepress/theme/components/Page.vue')['default'] - PageFooter: typeof import('./.vitepress/theme/components/PageFooter.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'] - RiDiscordFill: typeof import('~icons/ri/discord-fill')['default'] - RiGithubFill: typeof import('~icons/ri/github-fill')['default'] - RiMoonFill: typeof import('~icons/ri/moon-fill')['default'] - RiSunFill: typeof import('~icons/ri/sun-fill')['default'] - RiTwitterFill: typeof import('~icons/ri/twitter-fill')['default'] + Mermaid: typeof import('./node_modules/@slidev/client/builtin/Mermaid.vue')['default'] + Monaco: typeof import('./node_modules/@slidev/client/builtin/Monaco.vue')['default'] + PlantUml: typeof import('./node_modules/@slidev/client/builtin/PlantUml.vue')['default'] + PoweredBySlidev: typeof import('./node_modules/@slidev/client/builtin/PoweredBySlidev.vue')['default'] + RenderWhen: typeof import('./node_modules/@slidev/client/builtin/RenderWhen.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + SeeAlso: typeof import('./.vitepress/theme/components/SeeAlso.vue')['default'] + ShikiMagicMove: typeof import('./node_modules/@slidev/client/builtin/ShikiMagicMove.vue')['default'] ShowCaseInfo: typeof import('./.vitepress/theme/components/ShowCaseInfo.vue')['default'] ShowCases: typeof import('./.vitepress/theme/components/ShowCases.vue')['default'] - SideBar: typeof import('./.vitepress/theme/components/SideBar.vue')['default'] - SideBarLinks: typeof import('./.vitepress/theme/components/SideBarLinks.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'] - StarportCarrier: typeof import('vue-starport')['StarportCarrier'] - Sun: typeof import('./.vitepress/theme/components/icons/Sun.vue')['default'] + SlideContainer: typeof import('./.vitepress/theme/components/SlideContainer.vue')['default'] + SlideCurrentNo: typeof import('./node_modules/@slidev/client/builtin/SlideCurrentNo.vue')['default'] + SlidesTotal: typeof import('./node_modules/@slidev/client/builtin/SlidesTotal.vue')['default'] + SlidevVideo: typeof import('./node_modules/@slidev/client/builtin/SlidevVideo.vue')['default'] ThemeGallery: typeof import('./.vitepress/theme/components/ThemeGallery.vue')['default'] ThemeInfo: typeof import('./.vitepress/theme/components/ThemeInfo.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'] + TheTweet: typeof import('./.vitepress/theme/components/TheTweet.vue')['default'] + Toc: typeof import('./node_modules/@slidev/client/builtin/Toc.vue')['default'] + TocList: typeof import('./node_modules/@slidev/client/builtin/TocList.vue')['default'] + Transform: typeof import('./node_modules/@slidev/client/builtin/Transform.vue')['default'] + Tweet: typeof import('./node_modules/@slidev/client/builtin/Tweet.vue')['default'] TwemojiCatWithTearsOfJoy: typeof import('~icons/twemoji/cat-with-tears-of-joy')['default'] UimRocket: typeof import('~icons/uim/rocket')['default'] - WorkingInProgress: typeof import('./.vitepress/theme/components/WorkingInProgress.vue')['default'] - Youtube: typeof import('./.vitepress/@slidev/client/builtin/Youtube.vue')['default'] + VClickGap: typeof import('./node_modules/@slidev/client/builtin/VClickGap.vue')['default'] + VDrag: typeof import('./node_modules/@slidev/client/builtin/VDrag.vue')['default'] + VDragArrow: typeof import('./node_modules/@slidev/client/builtin/VDragArrow.vue')['default'] + Youtube: typeof import('./node_modules/@slidev/client/builtin/Youtube.vue')['default'] } } + +// For TSX support +declare global { + const AddonGallery: typeof import('./.vitepress/theme/components/AddonGallery.vue')['default'] + const AddonInfo: typeof import('./.vitepress/theme/components/AddonInfo.vue')['default'] + const Arrow: typeof import('./node_modules/@slidev/client/builtin/Arrow.vue')['default'] + const AutoFitText: typeof import('./node_modules/@slidev/client/builtin/AutoFitText.vue')['default'] + const CarbonApps: typeof import('~icons/carbon/apps')['default'] + const CarbonArrowLeft: typeof import('~icons/carbon/arrow-left')['default'] + const CarbonArrowRight: typeof import('~icons/carbon/arrow-right')['default'] + const CarbonBadge: typeof import('~icons/carbon/badge')['default'] + const CarbonDocumentPdf: typeof import('~icons/carbon/document-pdf')['default'] + const CarbonDownload: typeof import('~icons/carbon/download')['default'] + const CarbonEdit: typeof import('~icons/carbon/edit')['default'] + const CarbonInformation: typeof import('~icons/carbon/information')['default'] + const CarbonListBoxes: typeof import('~icons/carbon/list-boxes')['default'] + const CarbonMaximize: typeof import('~icons/carbon/maximize')['default'] + const CarbonMinimize: typeof import('~icons/carbon/minimize')['default'] + const CarbonMoon: typeof import('~icons/carbon/moon')['default'] + const CarbonPen: typeof import('~icons/carbon/pen')['default'] + const CarbonSettingsAdjust: typeof import('~icons/carbon/settings-adjust')['default'] + const CarbonSun: typeof import('~icons/carbon/sun')['default'] + const CarbonTextAnnotationToggle: typeof import('~icons/carbon/text-annotation-toggle')['default'] + const CarbonUserAvatar: typeof import('~icons/carbon/user-avatar')['default'] + const CarbonUserSpeaker: typeof import('~icons/carbon/user-speaker')['default'] + const CarbonVideo: typeof import('~icons/carbon/video')['default'] + const CodeBlockWrapper: typeof import('./node_modules/@slidev/client/builtin/CodeBlockWrapper.vue')['default'] + const CodeGroup: typeof import('./node_modules/@slidev/client/builtin/CodeGroup.vue')['default'] + const CodiconAdd: typeof import('~icons/codicon/add')['default'] + const CodiconEye: typeof import('~icons/codicon/eye')['default'] + const CodiconGlobe: typeof import('~icons/codicon/globe')['default'] + const CodiconLock: typeof import('~icons/codicon/lock')['default'] + const CodiconRunAll: typeof import('~icons/codicon/run-all')['default'] + const Demo: typeof import('./.vitepress/theme/components/Demo.vue')['default'] + const DemoEditor: typeof import('./.vitepress/theme/components/DemoEditor.vue')['default'] + const DemoSlide: typeof import('./.vitepress/theme/components/DemoSlide.vue')['default'] + const Environment: typeof import('./.vitepress/theme/components/Environment.vue')['default'] + const FeaturesAnimation: typeof import('./.vitepress/theme/components/FeaturesAnimation.vue')['default'] + const FeaturesAnimationInner: typeof import('./.vitepress/theme/components/FeaturesAnimationInner.vue')['default'] + const FeaturesOverview: typeof import('./.vitepress/theme/components/FeaturesOverview.vue')['default'] + const FeatureTag: typeof import('./.vitepress/theme/components/FeatureTag.vue')['default'] + const KaTexBlockWrapper: typeof import('./node_modules/@slidev/client/builtin/KaTexBlockWrapper.vue')['default'] + const LandingPage: typeof import('./.vitepress/theme/components/LandingPage.vue')['default'] + const Layout: typeof import('./.vitepress/theme/components/Layout.vue')['default'] + const LightOrDark: typeof import('./node_modules/@slidev/client/builtin/LightOrDark.vue')['default'] + const Link: typeof import('./node_modules/@slidev/client/builtin/Link.vue')['default'] + const LinkCard: typeof import('./.vitepress/theme/components/LinkCard.vue')['default'] + const LinkInline: typeof import('./.vitepress/theme/components/LinkInline.vue')['default'] + const LogosVue: typeof import('~icons/logos/vue')['default'] + const MdiAccountCircle: typeof import('~icons/mdi/account-circle')['default'] + const Mermaid: typeof import('./node_modules/@slidev/client/builtin/Mermaid.vue')['default'] + const Monaco: typeof import('./node_modules/@slidev/client/builtin/Monaco.vue')['default'] + const PlantUml: typeof import('./node_modules/@slidev/client/builtin/PlantUml.vue')['default'] + const PoweredBySlidev: typeof import('./node_modules/@slidev/client/builtin/PoweredBySlidev.vue')['default'] + const RenderWhen: typeof import('./node_modules/@slidev/client/builtin/RenderWhen.vue')['default'] + const RouterLink: typeof import('vue-router')['RouterLink'] + const RouterView: typeof import('vue-router')['RouterView'] + const SeeAlso: typeof import('./.vitepress/theme/components/SeeAlso.vue')['default'] + const ShikiMagicMove: typeof import('./node_modules/@slidev/client/builtin/ShikiMagicMove.vue')['default'] + const ShowCaseInfo: typeof import('./.vitepress/theme/components/ShowCaseInfo.vue')['default'] + const ShowCases: typeof import('./.vitepress/theme/components/ShowCases.vue')['default'] + const SimpleIconsGithub: typeof import('~icons/simple-icons/github')['default'] + const SimpleIconsNpm: typeof import('~icons/simple-icons/npm')['default'] + const SlideContainer: typeof import('./.vitepress/theme/components/SlideContainer.vue')['default'] + const SlideCurrentNo: typeof import('./node_modules/@slidev/client/builtin/SlideCurrentNo.vue')['default'] + const SlidesTotal: typeof import('./node_modules/@slidev/client/builtin/SlidesTotal.vue')['default'] + const SlidevVideo: typeof import('./node_modules/@slidev/client/builtin/SlidevVideo.vue')['default'] + const ThemeGallery: typeof import('./.vitepress/theme/components/ThemeGallery.vue')['default'] + const ThemeInfo: typeof import('./.vitepress/theme/components/ThemeInfo.vue')['default'] + const TheTweet: typeof import('./.vitepress/theme/components/TheTweet.vue')['default'] + const Toc: typeof import('./node_modules/@slidev/client/builtin/Toc.vue')['default'] + const TocList: typeof import('./node_modules/@slidev/client/builtin/TocList.vue')['default'] + const Transform: typeof import('./node_modules/@slidev/client/builtin/Transform.vue')['default'] + const Tweet: typeof import('./node_modules/@slidev/client/builtin/Tweet.vue')['default'] + const TwemojiCatWithTearsOfJoy: typeof import('~icons/twemoji/cat-with-tears-of-joy')['default'] + const UimRocket: typeof import('~icons/uim/rocket')['default'] + const VClickGap: typeof import('./node_modules/@slidev/client/builtin/VClickGap.vue')['default'] + const VDrag: typeof import('./node_modules/@slidev/client/builtin/VDrag.vue')['default'] + const VDragArrow: typeof import('./node_modules/@slidev/client/builtin/VDragArrow.vue')['default'] + const Youtube: typeof import('./node_modules/@slidev/client/builtin/Youtube.vue')['default'] +} \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..a215f58 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,5 @@ +import antfu from '@antfu/eslint-config' + +export default antfu({ + +}) \ No newline at end of file diff --git a/netlify.toml b/netlify.toml index 3434994..3009785 100755 --- a/netlify.toml +++ b/netlify.toml @@ -1,37 +1,36 @@ -[build.environment] - NPM_FLAGS = "--prefix=/dev/null" - NODE_VERSION = "20" - PLAYWRIGHT_BROWSERS_PATH = "0" - [build] - publish = ".vitepress/dist" - command = "npx pnpm i --store=node_modules/.pnpm-store && npx pnpm run build" +publish = ".vitepress/dist" +command = "pnpm run build" + +[build.environment] +NODE_VERSION = "20" +PLAYWRIGHT_BROWSERS_PATH = "0" [[redirects]] - from = "/new" - to = "https://stackblitz.com/fork/slidev?file=slides.md" - status = 302 - force = true +from = "/new" +to = "https://stackblitz.com/github/slidevjs/new?file=slides.md" +status = 302 +force = true [[redirects]] - from = "https://slidev.antfu.me/*" - to = "https://sli.dev/:splat" - status = 301 - force = true +from = "https://slidev.antfu.me/*" +to = "https://sli.dev/:splat" +status = 301 +force = true [[redirects]] - from = "/demo/composable-vue/*" - to = "https://demo.sli.dev/composable-vue" - status = 301 - force = true +from = "/demo/composable-vue/*" +to = "https://demo.sli.dev/composable-vue" +status = 301 +force = true [[redirects]] - from = "/demo/starter/*" - to = "https://demo.sli.dev/starter" - status = 301 - force = true +from = "/demo/starter/*" +to = "https://demo.sli.dev/starter" +status = 301 +force = true [[redirects]] - from = "/*" - to = "/index.html" - status = 200 +from = "/*" +to = "/index.html" +status = 200 \ No newline at end of file diff --git a/package.json b/package.json index d6cae30..37392c0 100755 --- a/package.json +++ b/package.json @@ -1,37 +1,55 @@ { - "private": true, + "name": "@slidev/docs", + "type": "module", + "version": "52.11.1", + "license": "MIT", + "funding": "https://github.com/sponsors/antfu", + "homepage": "https://sli.dev", + "repository": { + "type": "git", + "url": "https://github.com/slidevjs/slidev", + "directory": "docs" + }, + "bugs": "https://github.com/slidevjs/slidev/issues", + "files": [ + "**/*.md", + "!.vitepress/**" + ], "scripts": { "dev": "vitepress", "build": "vitepress build", - "postinstall": "node .vitepress/scripts/prepare.js" + "preview": "vitepress preview" }, "devDependencies": { - "@iconify/json": "^2.1.76", - "@slidev/client": "^0.34.3", - "@slidev/parser": "^0.34.3", - "@slidev/theme-default": "^0.21.2", - "@slidev/types": "^0.34.3", - "@types/fs-extra": "^9.0.13", - "@types/node": "^18.0.3", - "fs-extra": "^10.1.0", - "markdown-it": "^13.0.1", - "typescript": "^4.7.4", - "unplugin-icons": "^0.14.7", - "unplugin-vue-components": "^0.21.1", - "vite-plugin-inspect": "^0.5.1", - "vite-plugin-windicss": "^1.8.6", - "vitepress": "^0.22.4", - "windicss": "^3.5.6" - }, - "dependencies": { - "@antfu/utils": "^0.5.2", - "@vueuse/core": "^8.9.2", - "typeit": "^7.0.4" - }, - "pnpm": { - "overrides": { - "vue-demi": "0.9.1" - } - }, - "packageManager": "pnpm@9.6.0+sha512.38dc6fba8dba35b39340b9700112c2fe1e12f10b17134715a4aa98ccf7bb035e76fd981cf0bb384dfa98f8d6af5481c2bef2f4266a24bfa20c34eb7147ce0b5e" -} + "@antfu/utils": "^9.3.0", + "@iconify-json/carbon": "^1.2.18", + "@iconify-json/codicon": "^1.2.39", + "@iconify-json/mdi": "^1.2.3", + "@iconify-json/twemoji": "^1.2.5", + "@iconify-json/uil": "^1.2.3", + "@iconify-json/uim": "^1.2.3", + "@iconify-json/vscode-icons": "^1.2.39", + "@shikijs/vitepress-twoslash": "^3.21.0", + "@slidev/client": "latest", + "@slidev/parser": "latest", + "@slidev/theme-default": "latest", + "@slidev/types": "latest", + "@types/node": "^25.0.7", + "@unocss/reset": "^66.5.12", + "@vueuse/core": "^14.1.0", + "fast-glob": "^3.3.3", + "gray-matter": "^4.0.3", + "markdown-it": "^14.1.0", + "shiki": "^3.21.0", + "typeit": "8.1.0", + "typescript": "^5.9.3", + "unocss": "^66.5.12", + "unplugin-icons": "^22.5.0", + "unplugin-vue-components": "^30.0.0", + "vite-plugin-inspect": "^11.3.3", + "vitepress": "^2.0.0-alpha.15", + "vitepress-plugin-group-icons": "^1.6.5", + "vitepress-plugin-llms": "^1.10.0", + "vue": "^3.5.26" + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 9997bfa..73ad78b 100755 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,27 +1,27 @@ { "compilerOptions": { - "module": "ESNext", - "baseUrl": ".", - "target": "es2016", - "lib": ["DOM", "ESNext"], - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true, - "noUnusedLocals": true, + "target": "ESNext", "jsx": "preserve", - "moduleResolution": "node", + "lib": ["DOM", "ESNext"], + "baseUrl": ".", + "module": "ESNext", + "moduleResolution": "bundler", "resolveJsonModule": true, - "strictNullChecks": true, - "forceConsistentCasingInFileNames": true, "types": [ "vite/client", "node" - ] + ], + "strict": true, + "strictNullChecks": true, + "noUnusedLocals": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true }, "include": [ "./*.ts", "./.vitepress/**/*.ts", - "./.vitepress/**/*.vue", + "./.vitepress/**/*.vue" ], "exclude": ["**/dist/**", "node_modules"] -} +} \ No newline at end of file diff --git a/uno.config.ts b/uno.config.ts new file mode 100644 index 0000000..2c5d432 --- /dev/null +++ b/uno.config.ts @@ -0,0 +1,28 @@ +import { defineConfig, presetAttributify, presetIcons, presetWebFonts, presetWind3, transformerDirectives } from 'unocss' + +export default defineConfig({ + presets: [ + presetWind3(), + presetAttributify(), + presetWebFonts({ + fonts: { + mono: ['IBM Plex Mono', 'monospace'], + }, + }), + presetIcons(), + ], + transformers: [ + transformerDirectives(), + ], + shortcuts: { + 'bg-main': 'bg-white dark:bg-[#111]', + }, + theme: { + colors: { + primary: { + DEFAULT: '#3AB9D4', + deep: '#2082A6', + }, + }, + }, +}) \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index dc50764..31f17b5 100755 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,19 +1,17 @@ -import { resolve } from 'path' -import { defineConfig } from 'vite' -import Icons from 'unplugin-icons/vite' +import { slidebars } from '.vitepress/config' +import UnoCSS from 'unocss/vite' import IconsResolver from 'unplugin-icons/resolver' +import Icons from 'unplugin-icons/vite' import Components from 'unplugin-vue-components/vite' -import WindiCSS from 'vite-plugin-windicss' +import { defineConfig } from 'vite' import Inspect from 'vite-plugin-inspect' +import { groupIconVitePlugin } from 'vitepress-plugin-group-icons' +import llmstxt from 'vitepress-plugin-llms' +import config from './.vitepress/config' + +const IS_ROOT_ENGLISH_DOC = config.locales?.root.label.includes('English') || false export default defineConfig({ - resolve: { - alias: { - '@slidev/client': resolve(__dirname, '.vitepress/@slidev/client'), - '@slidev/parser': resolve(__dirname, '.vitepress/@slidev/parser'), - '@slidev/theme-default': resolve(__dirname, '.vitepress/@slidev/theme-default'), - }, - }, optimizeDeps: { exclude: [ 'vue-demi', @@ -27,45 +25,31 @@ export default defineConfig({ }, }, plugins: [ + IS_ROOT_ENGLISH_DOC && llmstxt({ + ignoreFiles: [ + 'index.md', + 'README.md', + ], + sidebar: slidebars, + }), Components({ dirs: [ './.vitepress/theme/components', - './.vitepress/@slidev/client/builtin', + './node_modules/@slidev/client/builtin', ], extensions: ['vue', 'md'], - include: [ - /\.(vue|md)$/, - ], + include: [/\.vue$/, /\.vue\?vue/, /\.md$/, /\.md\?vue/], resolvers: [ IconsResolver({ prefix: '', }), ], }), - Icons(), - Inspect(), - WindiCSS({ - preflight: false, + Icons({ + defaultStyle: 'display: inline-block;', }), - { - name: 'code-block-escape', - enforce: 'post', - transform(code, id) { - if (!id.endsWith('.md')) - return - return code.replace(/\/\/```/mg, '```') - }, - }, - { - name: 'virtual-modules', - resolveId(id){ - return id === '/@slidev/configs' ? id : null - }, - load(id) { - if(id !== '/@slidev/configs') - return - return 'export default {}' - } - }, + Inspect(), + UnoCSS(), + groupIconVitePlugin(), ], -}) +}) \ No newline at end of file From b529781212243165d16191b099ae4375ff2b783b Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 30 Apr 2026 11:26:07 +0200 Subject: [PATCH 03/10] =?UTF-8?q?chore:=20supprimer=20les=20anciens=20fich?= =?UTF-8?q?iers=20VitePress=20obsol=C3=A8tes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vitepress/config.js | 300 ----------------- .vitepress/scripts/prepare.js | 8 - .vitepress/theme/Layout.vue | 166 ---------- .vitepress/theme/NotFound.vue | 22 -- .../theme/components/AlgoliaSearchBox.vue | 173 ---------- .../theme/components/BooleanDisplay.vue | 27 -- .../theme/components/DarkModeSwitch.vue | 13 - .vitepress/theme/components/DemoContainer.vue | 18 - .vitepress/theme/components/EditLink.vue | 39 --- .vitepress/theme/components/Environment.vue | 21 -- .vitepress/theme/components/Home.vue | 23 -- .vitepress/theme/components/HomeFeatures.vue | 137 -------- .vitepress/theme/components/HomeFooter.vue | 40 --- .vitepress/theme/components/HomeHero.vue | 173 ---------- .vitepress/theme/components/LastUpdated.vue | 68 ---- .vitepress/theme/components/NavBar.vue | 107 ------ .vitepress/theme/components/NavBarTitle.vue | 51 --- .../theme/components/NavDropdownLink.vue | 131 -------- .../theme/components/NavDropdownLinkItem.vue | 76 ----- .vitepress/theme/components/NavLink.vue | 61 ---- .vitepress/theme/components/NavLinks.vue | 48 --- .../theme/components/NextAndPrevLinks.vue | 87 ----- .vitepress/theme/components/Note.vue | 5 - .vitepress/theme/components/Page.vue | 48 --- .vitepress/theme/components/PageFooter.vue | 42 --- .vitepress/theme/components/ShowCaseInfo.vue | 66 ---- .vitepress/theme/components/ShowCases.vue | 9 - .vitepress/theme/components/SideBar.vue | 56 ---- .vitepress/theme/components/SideBarLink.ts | 96 ------ .vitepress/theme/components/SideBarLinks.vue | 12 - .vitepress/theme/components/ThemeGallery.vue | 18 - .vitepress/theme/components/ThemeInfo.vue | 76 ----- .../theme/components/ToggleSideBarButton.vue | 46 --- .vitepress/theme/components/Tweet.vue | 68 ---- .../theme/components/WorkingInProgress.vue | 35 -- .vitepress/theme/components/demo/Demo.vue | 163 --------- .../theme/components/demo/DemoEditor.vue | 30 -- .../theme/components/demo/DemoSlide.vue | 21 -- .../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 -- .../theme/composables/activeSidebarLink.ts | 131 -------- .vitepress/theme/composables/dark.ts | 3 - .vitepress/theme/composables/editLink.ts | 89 ----- .vitepress/theme/composables/nav.ts | 59 ---- .vitepress/theme/composables/navLink.ts | 58 ---- .../theme/composables/nextAndPrevLinks.ts | 46 --- .vitepress/theme/composables/repo.ts | 47 --- .vitepress/theme/composables/sideBar.ts | 72 ---- .vitepress/theme/composables/url.ts | 19 -- .vitepress/theme/composables/versions.ts | 1 - .vitepress/theme/config.ts | 129 -------- .vitepress/theme/index.ts | 18 - .vitepress/theme/styles/code.css | 120 ------- .vitepress/theme/styles/custom-blocks.css | 67 ---- .vitepress/theme/styles/layout.css | 312 ------------------ .vitepress/theme/styles/sidebar-links.css | 102 ------ .vitepress/theme/styles/vars.css | 104 ------ .vitepress/theme/support/sideBar.ts | 67 ---- .vitepress/theme/utils.ts | 77 ----- 63 files changed, 4179 deletions(-) delete mode 100755 .vitepress/config.js delete mode 100755 .vitepress/scripts/prepare.js delete mode 100755 .vitepress/theme/Layout.vue delete mode 100755 .vitepress/theme/NotFound.vue delete mode 100755 .vitepress/theme/components/AlgoliaSearchBox.vue delete mode 100755 .vitepress/theme/components/BooleanDisplay.vue delete mode 100755 .vitepress/theme/components/DarkModeSwitch.vue delete mode 100755 .vitepress/theme/components/DemoContainer.vue delete mode 100755 .vitepress/theme/components/EditLink.vue delete mode 100755 .vitepress/theme/components/Environment.vue delete mode 100755 .vitepress/theme/components/Home.vue delete mode 100755 .vitepress/theme/components/HomeFeatures.vue delete mode 100755 .vitepress/theme/components/HomeFooter.vue delete mode 100755 .vitepress/theme/components/HomeHero.vue delete mode 100755 .vitepress/theme/components/LastUpdated.vue delete mode 100755 .vitepress/theme/components/NavBar.vue delete mode 100755 .vitepress/theme/components/NavBarTitle.vue delete mode 100755 .vitepress/theme/components/NavDropdownLink.vue delete mode 100755 .vitepress/theme/components/NavDropdownLinkItem.vue delete mode 100755 .vitepress/theme/components/NavLink.vue delete mode 100755 .vitepress/theme/components/NavLinks.vue delete mode 100755 .vitepress/theme/components/NextAndPrevLinks.vue delete mode 100755 .vitepress/theme/components/Note.vue delete mode 100755 .vitepress/theme/components/Page.vue delete mode 100755 .vitepress/theme/components/PageFooter.vue delete mode 100755 .vitepress/theme/components/ShowCaseInfo.vue delete mode 100755 .vitepress/theme/components/ShowCases.vue delete mode 100755 .vitepress/theme/components/SideBar.vue delete mode 100755 .vitepress/theme/components/SideBarLink.ts delete mode 100755 .vitepress/theme/components/SideBarLinks.vue delete mode 100755 .vitepress/theme/components/ThemeGallery.vue delete mode 100755 .vitepress/theme/components/ThemeInfo.vue delete mode 100755 .vitepress/theme/components/ToggleSideBarButton.vue delete mode 100755 .vitepress/theme/components/Tweet.vue delete mode 100755 .vitepress/theme/components/WorkingInProgress.vue delete mode 100755 .vitepress/theme/components/demo/Demo.vue delete mode 100755 .vitepress/theme/components/demo/DemoEditor.vue delete mode 100755 .vitepress/theme/components/demo/DemoSlide.vue delete mode 100755 .vitepress/theme/components/icons/ArrowLeft.vue delete mode 100755 .vitepress/theme/components/icons/ArrowRight.vue delete mode 100755 .vitepress/theme/components/icons/Moon.vue delete mode 100755 .vitepress/theme/components/icons/OutboundLink.vue delete mode 100755 .vitepress/theme/components/icons/README.md delete mode 100755 .vitepress/theme/components/icons/Sun.vue delete mode 100755 .vitepress/theme/composables/activeSidebarLink.ts delete mode 100755 .vitepress/theme/composables/dark.ts delete mode 100755 .vitepress/theme/composables/editLink.ts delete mode 100755 .vitepress/theme/composables/nav.ts delete mode 100755 .vitepress/theme/composables/navLink.ts delete mode 100755 .vitepress/theme/composables/nextAndPrevLinks.ts delete mode 100755 .vitepress/theme/composables/repo.ts delete mode 100755 .vitepress/theme/composables/sideBar.ts delete mode 100755 .vitepress/theme/composables/url.ts delete mode 100755 .vitepress/theme/composables/versions.ts delete mode 100755 .vitepress/theme/config.ts delete mode 100755 .vitepress/theme/index.ts delete mode 100755 .vitepress/theme/styles/code.css delete mode 100755 .vitepress/theme/styles/custom-blocks.css delete mode 100755 .vitepress/theme/styles/layout.css delete mode 100755 .vitepress/theme/styles/sidebar-links.css delete mode 100755 .vitepress/theme/styles/vars.css delete mode 100755 .vitepress/theme/support/sideBar.ts delete mode 100755 .vitepress/theme/utils.ts diff --git a/.vitepress/config.js b/.vitepress/config.js deleted file mode 100755 index adf4ecf..0000000 --- a/.vitepress/config.js +++ /dev/null @@ -1,300 +0,0 @@ -// @ts-check - -const Guide = [ - { - text: 'Pourquoi Slidev', - link: '/guide/why', - }, - { - text: 'Commencer', - link: '/guide/', - }, - { - text: 'Installation', - link: '/guide/install', - }, - { - text: 'Syntaxe Markdown', - link: '/guide/syntax', - }, - { - text: 'Navigation', - link: '/guide/navigation', - }, - { - text: 'Animations', - link: '/guide/animations', - }, - { - text: 'Exportation', - link: '/guide/exporting', - }, - { - text: 'Hébergement statique', - link: '/guide/hosting', - }, - { - text: 'Enregistrer la présentation', - link: '/guide/recording', - }, - { - text: 'Mode présentateur', - link: '/guide/presenter-mode', - }, - { - text: 'Dessins & Annotations', - link: '/guide/drawing', - }, - { - text: 'Intégrations de l\'éditeur', - link: '/guide/editors', - }, - { - text: 'FAQ', - link: '/guide/faq', - }, -] - -const Theme = [ - { - text: 'Utiliser un thème', - link: '/themes/use', - }, - { - text: 'Galerie de thèmes', - link: '/themes/gallery', - }, - { - text: 'Écrire un thème', - link: '/themes/write-a-theme', - }, -] - -const Addon = [ - { - text: 'Utiliser un Addon', - link: '/addons/use', - }, - { - text: 'Écrire un Addon', - link: '/addons/write-an-addon', - }, -] - -const Translations = [ - { - text: 'Français', - }, - { - text: 'English', - link: 'https://sli.dev{{pathname}}', - }, - { - text: '简体中文', - link: 'https://cn.sli.dev{{pathname}}', - }, - { - text: 'Español', - link: 'https://es.sli.dev{{pathname}}', - }, - { - text: 'Русский', - link: 'https://ru.sli.dev{{pathname}}', - }, - { - text: 'Việt Nam', - link: 'https://vn.sli.dev{{pathname}}', - }, - { - text: 'Deutsch', - link: 'https://de.sli.dev{{pathname}}', - }, - { - text: 'Português (BR)', - link: 'https://br.sli.dev{{pathname}}', - }, - { - text: 'Ελληνικά', - link: 'https://el.sli.dev{{pathname}}', - }, - { - text: '日本語', - link: 'https://ja.sli.dev{{pathname}}', - }, -] - -const Customizations = [ - { - text: 'Personnalisations', - link: '/custom/', - }, - { - text: 'Structure des répertoires', - link: '/custom/directory-structure', - }, - { - text: 'Polices', - link: '/custom/fonts', - }, - { - text: 'Surligneurs', - link: '/custom/highlighters', - }, - { - text: 'Configurer Vue', - link: '/custom/config-vue', - }, - { - text: 'Configurer Vite', - link: '/custom/config-vite', - }, - { - text: 'Configurer Windi CSS', - link: '/custom/config-windicss', - }, - { - text: 'Configurer Monaco', - link: '/custom/config-monaco', - }, - { - text: 'Configurer KaTeX', - link: '/custom/config-katex', - }, - { - text: 'Configurer Mermaid', - link: '/custom/config-mermaid', - }, - { - text: 'Configurer les Raccourcis', - link: '/custom/config-shortcuts', - }, - { - text: 'Contexte Global Vue', - link: '/custom/vue-context', - }, - { - text: 'Couches Globales', - link: '/custom/global-layers', - } -] - -const Resources = [ - { - text: 'Vitrines', - link: '/showcases', - }, - { - text: 'Ressources d\'apprentissage', - link: '/resources/learning', - }, - { - text: 'Couvertures organisées', - link: '/resources/covers', - }, -] - -const slidebars = [ - { - text: 'Guide', - children: Guide, - }, - { - text: 'Thèmes', - children: Theme, - }, - { - text: 'Addons', - children: Addon, - }, - { - text: 'Personnalisation', - children: Customizations, - }, - { - text: 'Intégrations', - children: [ - { - text: 'Composants', - link: '/builtin/components', - }, - { - text: 'Mises en page', - link: '/builtin/layouts', - }, - ], - }, -] - -/** - * @type {import('vitepress').UserConfig} - */ -module.exports = { - title: 'Slidev', - description: 'Diapositives de présentation pour les développeurs', - head: [ - ['link', { rel: 'icon', type: 'image/png', href: '/favicon.png' }], - ['meta', { name: 'author', content: 'Anthony Fu' }], - ['meta', { property: 'og:title', content: 'Slidev' }], - ['meta', { property: 'og:image', content: 'https://sli.dev/og-image.png' }], - ['meta', { property: 'og:description', content: 'Presentation slides for developers' }], - ['meta', { name: 'twitter:card', content: 'summary_large_image' }], - ['meta', { name: 'twitter:creator', content: '@slidevjs' }], - ['meta', { name: 'twitter:image', content: 'https://sli.dev/og-image.png' }], - ['link', { rel: 'dns-prefetch', href: 'https://fonts.gstatic.com' }], - ['link', { rel: 'preconnect', crossorigin: 'anonymous', href: 'https://fonts.gstatic.com' }], - ['link', { href: 'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@200;400;500&family=Inter:wght@200;400;500;600', rel: 'stylesheet' }], - ], - themeConfig: { - repo: 'slidevjs/docs-fr', - logo: '/logo.svg', - docsBranch: 'main', - editLinks: true, - editLinkText: 'Suggérer un changement sur cette page', - - algolia: { - apiKey: '1a5c5a504139c58f428974c78c55291d', - indexName: 'slidev', - searchParameters: { - // for translations maintainers: change the filter to your locale code (subdomain name) - facetFilters: ['language:fr'] - } - }, - - nav: [ - { - text: 'Guide', - items: Guide, - }, - { - text: 'Thème', - items: Theme, - }, - { - text: 'Addon', - items: Addon, - }, - { - text: 'Personnaliser', - items: Customizations, - }, - { - text: 'Ressources', - items: Resources, - }, - { - text: 'Français', - items: Translations, - }, - ], - - sidebar: { - '/guide/': slidebars, - '/themes/': slidebars, - '/addons/': slidebars, - '/custom/': slidebars, - '/builtin/': slidebars, - '/resources/': slidebars, - '/': slidebars, - }, - }, -} diff --git a/.vitepress/scripts/prepare.js b/.vitepress/scripts/prepare.js deleted file mode 100755 index c0e13b3..0000000 --- a/.vitepress/scripts/prepare.js +++ /dev/null @@ -1,8 +0,0 @@ -const fs = require('fs-extra') - -async function main(){ - await fs.remove('.vitepress/@slidev') - await fs.copy('node_modules/@slidev', '.vitepress/@slidev', { dereference: true }) -} - -main() diff --git a/.vitepress/theme/Layout.vue b/.vitepress/theme/Layout.vue deleted file mode 100755 index 09f7c87..0000000 --- a/.vitepress/theme/Layout.vue +++ /dev/null @@ -1,166 +0,0 @@ - - - - - diff --git a/.vitepress/theme/NotFound.vue b/.vitepress/theme/NotFound.vue deleted file mode 100755 index 9ef4664..0000000 --- a/.vitepress/theme/NotFound.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/.vitepress/theme/components/AlgoliaSearchBox.vue b/.vitepress/theme/components/AlgoliaSearchBox.vue deleted file mode 100755 index b9a5b7f..0000000 --- a/.vitepress/theme/components/AlgoliaSearchBox.vue +++ /dev/null @@ -1,173 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/BooleanDisplay.vue b/.vitepress/theme/components/BooleanDisplay.vue deleted file mode 100755 index 3a876f2..0000000 --- a/.vitepress/theme/components/BooleanDisplay.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - diff --git a/.vitepress/theme/components/DarkModeSwitch.vue b/.vitepress/theme/components/DarkModeSwitch.vue deleted file mode 100755 index adeae06..0000000 --- a/.vitepress/theme/components/DarkModeSwitch.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/.vitepress/theme/components/DemoContainer.vue b/.vitepress/theme/components/DemoContainer.vue deleted file mode 100755 index 9d2b56f..0000000 --- a/.vitepress/theme/components/DemoContainer.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/.vitepress/theme/components/EditLink.vue b/.vitepress/theme/components/EditLink.vue deleted file mode 100755 index 7504e01..0000000 --- a/.vitepress/theme/components/EditLink.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/Environment.vue b/.vitepress/theme/components/Environment.vue deleted file mode 100755 index c0ede87..0000000 --- a/.vitepress/theme/components/Environment.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/.vitepress/theme/components/Home.vue b/.vitepress/theme/components/Home.vue deleted file mode 100755 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 100755 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 100755 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 100755 index 1153924..0000000 --- a/.vitepress/theme/components/HomeHero.vue +++ /dev/null @@ -1,173 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/LastUpdated.vue b/.vitepress/theme/components/LastUpdated.vue deleted file mode 100755 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 100755 index 11783a6..0000000 --- a/.vitepress/theme/components/NavBar.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/NavBarTitle.vue b/.vitepress/theme/components/NavBarTitle.vue deleted file mode 100755 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 100755 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 100755 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 100755 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 100755 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 100755 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 100755 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 100755 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 100755 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 deleted file mode 100755 index 74ea1f9..0000000 --- a/.vitepress/theme/components/ShowCaseInfo.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - diff --git a/.vitepress/theme/components/ShowCases.vue b/.vitepress/theme/components/ShowCases.vue deleted file mode 100755 index 44c95fe..0000000 --- a/.vitepress/theme/components/ShowCases.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/.vitepress/theme/components/SideBar.vue b/.vitepress/theme/components/SideBar.vue deleted file mode 100755 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 100755 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 100755 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 deleted file mode 100755 index b7fe1f9..0000000 --- a/.vitepress/theme/components/ThemeGallery.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/.vitepress/theme/components/ThemeInfo.vue b/.vitepress/theme/components/ThemeInfo.vue deleted file mode 100755 index f748772..0000000 --- a/.vitepress/theme/components/ThemeInfo.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/.vitepress/theme/components/ToggleSideBarButton.vue b/.vitepress/theme/components/ToggleSideBarButton.vue deleted file mode 100755 index 91f9504..0000000 --- a/.vitepress/theme/components/ToggleSideBarButton.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/Tweet.vue b/.vitepress/theme/components/Tweet.vue deleted file mode 100755 index a7bc116..0000000 --- a/.vitepress/theme/components/Tweet.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/WorkingInProgress.vue b/.vitepress/theme/components/WorkingInProgress.vue deleted file mode 100755 index 148a417..0000000 --- a/.vitepress/theme/components/WorkingInProgress.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/.vitepress/theme/components/demo/Demo.vue b/.vitepress/theme/components/demo/Demo.vue deleted file mode 100755 index db88355..0000000 --- a/.vitepress/theme/components/demo/Demo.vue +++ /dev/null @@ -1,163 +0,0 @@ - - - - - diff --git a/.vitepress/theme/components/demo/DemoEditor.vue b/.vitepress/theme/components/demo/DemoEditor.vue deleted file mode 100755 index 0d685f6..0000000 --- a/.vitepress/theme/components/demo/DemoEditor.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/.vitepress/theme/components/demo/DemoSlide.vue b/.vitepress/theme/components/demo/DemoSlide.vue deleted file mode 100755 index 3aa68be..0000000 --- a/.vitepress/theme/components/demo/DemoSlide.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/.vitepress/theme/components/icons/ArrowLeft.vue b/.vitepress/theme/components/icons/ArrowLeft.vue deleted file mode 100755 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 100755 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 100755 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 100755 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 100755 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 100755 index 9cd6bdf..0000000 --- a/.vitepress/theme/components/icons/Sun.vue +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/.vitepress/theme/composables/activeSidebarLink.ts b/.vitepress/theme/composables/activeSidebarLink.ts deleted file mode 100755 index 9cf3aba..0000000 --- a/.vitepress/theme/composables/activeSidebarLink.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { onMounted, onUnmounted, onUpdated } from 'vue-demi' - -export function useActiveSidebarLinks() { - let rootActiveLink: HTMLAnchorElement | null = null - let activeLink: HTMLAnchorElement | null = null - - const onScroll = throttleAndDebounce(setActiveLink, 300) - - function setActiveLink(): void { - const sidebarLinks = getSidebarLinks() - const anchors = getAnchors(sidebarLinks) - - for (let i = 0; i < anchors.length; i++) { - const anchor = anchors[i] - const nextAnchor = anchors[i + 1] - - const [isActive, hash] = isAnchorActive(i, anchor, nextAnchor) - - if (isActive) { - history.replaceState(null, document.title, hash || ' ') - activateLink(hash) - return - } - } - } - - function activateLink(hash: string | null): void { - deactiveLink(activeLink) - deactiveLink(rootActiveLink) - - activeLink = document.querySelector(`.sidebar a[href="${hash}"]`) - - if (!activeLink) - return - - activeLink.classList.add('active') - - // also add active class to parent h2 anchors - const rootLi = activeLink.closest('.sidebar-links > ul > li') - - if (rootLi && rootLi !== activeLink.parentElement) { - rootActiveLink = rootLi.querySelector('a') - rootActiveLink && rootActiveLink.classList.add('active') - } - else { - rootActiveLink = null - } - } - - function deactiveLink(link: HTMLAnchorElement | null): void { - link && link.classList.remove('active') - } - - onMounted(() => { - setActiveLink() - window.addEventListener('scroll', onScroll) - }) - - onUpdated(() => { - // sidebar update means a route change - activateLink(decodeURIComponent(location.hash)) - }) - - onUnmounted(() => { - window.removeEventListener('scroll', onScroll) - }) -} - -function getSidebarLinks(): HTMLAnchorElement[] { - return [].slice.call( - document.querySelectorAll('.sidebar a.sidebar-link-item'), - ) -} - -function getAnchors(sidebarLinks: HTMLAnchorElement[]): HTMLAnchorElement[] { - return [].slice - .call(document.querySelectorAll('.header-anchor')) - .filter((anchor: HTMLAnchorElement) => - sidebarLinks.some(sidebarLink => sidebarLink.hash === anchor.hash), - ) as HTMLAnchorElement[] -} - -function getPageOffset(): number { - return (document.querySelector('.nav-bar') as HTMLElement).offsetHeight -} - -function getAnchorTop(anchor: HTMLAnchorElement): number { - const pageOffset = getPageOffset() - - return anchor.parentElement!.offsetTop - pageOffset - 15 -} - -function isAnchorActive( - index: number, - anchor: HTMLAnchorElement, - nextAnchor: HTMLAnchorElement, -): [boolean, string | null] { - const scrollTop = window.scrollY - - if (index === 0 && scrollTop === 0) - return [true, null] - - if (scrollTop < getAnchorTop(anchor)) - return [false, null] - - if (!nextAnchor || scrollTop < getAnchorTop(nextAnchor)) - return [true, decodeURIComponent(anchor.hash)] - - return [false, null] -} - -function throttleAndDebounce(fn: () => void, delay: number): () => void { - let timeout: NodeJS.Timeout - let called = false - - return () => { - if (timeout) - clearTimeout(timeout) - - if (!called) { - fn() - called = true - setTimeout(() => { - called = false - }, delay) - } - else { - timeout = setTimeout(fn, delay) - } - } -} diff --git a/.vitepress/theme/composables/dark.ts b/.vitepress/theme/composables/dark.ts deleted file mode 100755 index 5976a5a..0000000 --- a/.vitepress/theme/composables/dark.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { useDark } from '@vueuse/core' - -export const isDark = useDark() diff --git a/.vitepress/theme/composables/editLink.ts b/.vitepress/theme/composables/editLink.ts deleted file mode 100755 index e06a1a3..0000000 --- a/.vitepress/theme/composables/editLink.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { computed } from 'vue-demi' -import { useData } from 'vitepress' -import { endingSlashRE, isNullish, isExternal } from '../utils' - -const bitbucketRE = /bitbucket.org/ - -export function useEditLink() { - const {site,page} = useData() - - const url = computed(() => { - const showEditLink = isNullish(page.value.frontmatter.editLink) - ? site.value.themeConfig.editLinks - : page.value.frontmatter.editLink - - const { - repo, - docsDir = '', - docsBranch = 'main', - docsRepo = repo, - } = site.value.themeConfig - - const { relativePath } = page.value - - if (!showEditLink || !relativePath || !repo) - return null - - return createUrl(repo, docsRepo, docsDir, docsBranch, relativePath) - }) - - const text = computed(() => { - return site.value.themeConfig.editLinkText || 'Modifier cette page' - }) - - return { - url, - text, - } -} - -function createUrl( - repo: string, - docsRepo: string, - docsDir: string, - docsBranch: string, - path: string, -): string { - return bitbucketRE.test(repo) - ? createBitbucketUrl(repo, docsRepo, docsDir, docsBranch, path) - : createGitHubUrl(repo, docsRepo, docsDir, docsBranch, path) -} - -function createGitHubUrl( - repo: string, - docsRepo: string, - docsDir: string, - docsBranch: string, - path: string, -): string { - const base = isExternal(docsRepo) - ? docsRepo - : `https://github.com/${docsRepo}` - - return ( - `${base.replace(endingSlashRE, '') - }/edit` - + `/${docsBranch}/${ - docsDir ? `${docsDir.replace(endingSlashRE, '')}/` : '' - }${path}` - ) -} - -function createBitbucketUrl( - repo: string, - docsRepo: string, - docsDir: string, - docsBranch: string, - path: string, -): string { - const base = isExternal(docsRepo) ? docsRepo : repo - - return ( - `${base.replace(endingSlashRE, '') - }/src` - + `/${docsBranch}/${ - docsDir ? `${docsDir.replace(endingSlashRE, '')}/` : '' - }${path - }?mode=edit&spa=0&at=${docsBranch}&fileviewer=file-view-default` - ) -} diff --git a/.vitepress/theme/composables/nav.ts b/.vitepress/theme/composables/nav.ts deleted file mode 100755 index 1e9418a..0000000 --- a/.vitepress/theme/composables/nav.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { computed } from 'vue-demi' -import { useRoute, useData, inBrowser } from 'vitepress' -import type { DefaultTheme } from '../config' - -export function useLocaleLinks() { - const route = useRoute() - const {site} = useData() - - return computed(() => { - const theme = site.value.themeConfig as DefaultTheme.Config - const locales = theme.locales - - if (!locales) - return null - - const localeKeys = Object.keys(locales) - - if (localeKeys.length <= 1) - return null - - // handle site base - const siteBase = inBrowser ? site.value.base : '/' - - const siteBaseWithoutSuffix = siteBase.endsWith('/') - ? siteBase.slice(0, -1) - : siteBase - - // remove site base in browser env - const routerPath = route.path.slice(siteBaseWithoutSuffix.length) - - const currentLangBase = localeKeys.find((key) => { - return key === '/' ? false : routerPath.startsWith(key) - }) - - const currentContentPath = currentLangBase - ? routerPath.substring(currentLangBase.length - 1) - : routerPath - - const candidates = localeKeys.map((v) => { - const localePath = v.endsWith('/') ? v.slice(0, -1) : v - - return { - text: locales[v].label, - link: `${localePath}${currentContentPath}`, - } - }) - - const currentLangKey = currentLangBase || '/' - - const selectText = locales[currentLangKey].selectText - ? locales[currentLangKey].selectText - : 'Languages' - - return { - text: selectText, - items: candidates, - } as DefaultTheme.NavItemWithChildren - }) -} diff --git a/.vitepress/theme/composables/navLink.ts b/.vitepress/theme/composables/navLink.ts deleted file mode 100755 index 2bf3172..0000000 --- a/.vitepress/theme/composables/navLink.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { computed, Ref } from 'vue-demi' -import { useRoute } from 'vitepress' -import type { DefaultTheme } from '../config' -import { isExternal as isExternalCheck } from '../utils' -import { useUrl } from '../composables/url' - -export function useNavLink(item: Ref) { - const route = useRoute() - const { withBase } = useUrl() - - const isExternal = isExternalCheck(item.value.link) - - const props = computed(() => { - const link = interpret(item.value.link) - const routePath = normalizePath(`/${route.data.relativePath}`) - - let active = false - if (item.value.activeMatch) { - active = new RegExp(item.value.activeMatch).test(routePath) - } - else { - const itemPath = normalizePath(withBase(link)) - active - = itemPath === '/' - ? itemPath === routePath - : routePath.startsWith(itemPath) - } - - return { - 'class': { - active, - isExternal, - }, - 'href': isExternal ? link : withBase(link), - 'target': item.value.target || isExternal ? '_blank' : null, - 'rel': item.value.rel || isExternal ? 'noopener noreferrer' : null, - 'aria-label': item.value.ariaLabel, - } - }) - - return { - props, - isExternal, - } -} - -function interpret(path = '') { - return path - .replace(/{{pathname}}/, typeof window === 'undefined' ? '/' : location.pathname) -} - -function normalizePath(path: string): string { - return path - .replace(/#.*$/, '') - .replace(/\?.*$/, '') - .replace(/\.(html|md)$/, '') - .replace(/\/index$/, '/') -} diff --git a/.vitepress/theme/composables/nextAndPrevLinks.ts b/.vitepress/theme/composables/nextAndPrevLinks.ts deleted file mode 100755 index 2749841..0000000 --- a/.vitepress/theme/composables/nextAndPrevLinks.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { computed } from 'vue-demi' -import { useData } from 'vitepress' -import { isArray, ensureStartingSlash } from '../utils' -import { getSideBarConfig, getFlatSideBarLinks } from '../support/sideBar' - -export function useNextAndPrevLinks() { - const {site,page} = useData() - - const path = computed(() => { - return ensureStartingSlash(page.value.relativePath) - }) - - const candidates = computed(() => { - const config = getSideBarConfig(site.value.themeConfig.sidebar, path.value) - - return isArray(config) ? getFlatSideBarLinks(config) : [] - }) - - const index = computed(() => { - return candidates.value.findIndex((item) => { - return item.link === path.value - }) - }) - - const next = computed(() => { - if ( - site.value.themeConfig.nextLinks !== false - && index.value > -1 - && index.value < candidates.value.length - 1 - ) - return candidates.value[index.value + 1] - }) - - const prev = computed(() => { - if (site.value.themeConfig.prevLinks !== false && index.value > 0) - return candidates.value[index.value - 1] - }) - - const hasLinks = computed(() => !!next.value || !!prev.value) - - return { - next, - prev, - hasLinks, - } -} diff --git a/.vitepress/theme/composables/repo.ts b/.vitepress/theme/composables/repo.ts deleted file mode 100755 index 8d30a64..0000000 --- a/.vitepress/theme/composables/repo.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { computed } from 'vue-demi' -import { useData } from 'vitepress' -import type { DefaultTheme } from '../config' - -export const platforms = ['GitHub', 'GitLab', 'Bitbucket'].map((platform) => { - return [platform, new RegExp(platform, 'i')] as const -}) - -export function useRepo() { - const {site} = useData() - - return computed(() => { - const theme = site.value.themeConfig as DefaultTheme.Config - const name = theme.docsRepo || theme.repo - - if (!name) - return null - - const link = getRepoUrl(name) - const text = getRepoText(link, theme.repoLabel) - - return { text, link } - }) -} - -function getRepoUrl(repo: string): string { - // if the full url is not provided, default to GitHub repo - return /^https?:/.test(repo) ? repo : `https://github.com/${repo}` -} - -function getRepoText(url: string, text?: string): string { - if (text) - return text - - // if no label is provided, deduce it from the repo url - const hosts = url.match(/^https?:\/\/[^/]+/) - - if (!hosts) - return 'Source' - - const platform = platforms.find(([, re]) => re.test(hosts[0])) - - if (platform && platform[0]) - return platform[0] - - return 'Source' -} diff --git a/.vitepress/theme/composables/sideBar.ts b/.vitepress/theme/composables/sideBar.ts deleted file mode 100755 index fe11fca..0000000 --- a/.vitepress/theme/composables/sideBar.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { computed } from 'vue-demi' -import { useRoute, useData } from 'vitepress' -// import { Header } from '/@types/shared' -import { useActiveSidebarLinks } from '../composables/activeSidebarLink' -import { getSideBarConfig } from '../support/sideBar' -import { DefaultTheme } from '../config' - -export function useSideBar() { - const route = useRoute() - const {site} = useData() - - useActiveSidebarLinks() - - return computed(() => { - // at first, we'll check if we can find the sidebar setting in frontmatter. - const headers = route.data.headers - const frontSidebar = route.data.frontmatter.sidebar - const sidebarDepth = route.data.frontmatter.sidebarDepth - - // if it's `false`, we'll just return an empty array here. - if (frontSidebar === false) - return [] - - // if it's `atuo`, render headers of the current page - if (frontSidebar === 'auto') - return resolveAutoSidebar(headers, sidebarDepth) - - // now, there's no sidebar setting at frontmatter; let's see the configs - const themeSidebar = getSideBarConfig( - site.value.themeConfig.sidebar, - route.path, - ) - - if (themeSidebar === false) - return [] - - if (themeSidebar === 'auto') - return resolveAutoSidebar(headers, sidebarDepth) - - return themeSidebar - }) -} - -function resolveAutoSidebar( - headers: any[], - depth: number, -): DefaultTheme.SideBarItem[] { - const ret: DefaultTheme.SideBarItem[] = [] - - if (headers === undefined) - return [] - - let lastH2: DefaultTheme.SideBarItem | undefined - headers.forEach(({ level, title, slug }) => { - if (level - 1 > depth) - return - - const item: DefaultTheme.SideBarItem = { - text: title, - link: `#${slug}`, - } - if (level === 2) { - lastH2 = item - ret.push(item) - } - else if (lastH2) { - ((lastH2 as any).children || ((lastH2 as any).children = [])).push(item) - } - }) - - return ret -} diff --git a/.vitepress/theme/composables/url.ts b/.vitepress/theme/composables/url.ts deleted file mode 100755 index 9040b6f..0000000 --- a/.vitepress/theme/composables/url.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { useData, } from 'vitepress' - -export function joinPath(base: string, path: string): string { - return `${base}${path}`.replace(/\/+/g, '/') -} - -export function useUrl() { - const {site} = useData() - - function withBase(path: string): string { - if (!path) - return '' - return joinPath(site.value.base, path) - } - - return { - withBase, - } -} diff --git a/.vitepress/theme/composables/versions.ts b/.vitepress/theme/composables/versions.ts deleted file mode 100755 index 28c22ce..0000000 --- a/.vitepress/theme/composables/versions.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '../../../../meta/packages' diff --git a/.vitepress/theme/config.ts b/.vitepress/theme/config.ts deleted file mode 100755 index 408f30f..0000000 --- a/.vitepress/theme/config.ts +++ /dev/null @@ -1,129 +0,0 @@ -/* eslint-disable no-use-before-define */ -/* 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/index.ts b/.vitepress/theme/index.ts deleted file mode 100755 index 5e15d50..0000000 --- a/.vitepress/theme/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import Layout from './Layout.vue' -import NotFound from './NotFound.vue' - -import 'windi-base.css' -import 'windi-components.css' -import './styles/vars.css' -import './styles/layout.css' -import './styles/code.css' -import './styles/custom-blocks.css' -import './styles/sidebar-links.css' -import 'windi-utilities.css' - -const theme = { - Layout, - NotFound, -} - -export default theme diff --git a/.vitepress/theme/styles/code.css b/.vitepress/theme/styles/code.css deleted file mode 100755 index 218eb9f..0000000 --- a/.vitepress/theme/styles/code.css +++ /dev/null @@ -1,120 +0,0 @@ -/* https://github.com/antfu/prism-theme-vars */ -@import 'prism-theme-vars/base.css'; -@import 'prism-theme-vars/marker.css'; - -:root { - --prism-font-family: var(--font-family-mono); - --prism-font-size: 0.85rem; - --prism-marker-opacity: 0; -} - -html:not(.dark) { - --prism-foreground: #393a34; - --prism-background: #fafafa; - --prism-inline-background: #f5f5f5; - --prism-comment: #a0ada0; - --prism-string: #b56959; - --prism-literal: #2f8a89; - --prism-number: #296aa3; - --prism-keyword: #1c6b48; - --prism-function: #6c7834; - --prism-boolean: #296aa3; - --prism-constant: #a65e2b; - --prism-deleted: #a14f55; - --prism-class: #2993a3; - --prism-builtin: #ab5959; - --prism-property: #b58451; - --prism-namespace: #b05a78; - --prism-punctuation: #8e8f8b; - --prism-decorator: #bd8f8f; - --prism-regex: #ab5e3f; - --prism-json-property: #698c96; -} - -html.dark { - --prism-scheme: dark; - --prism-foreground: #d4cfbf; - --prism-background: #181818; - --prism-comment: #758575; - --prism-string: #d48372; - --prism-literal: #429988; - --prism-keyword: #4d9375; - --prism-boolean: #6394bf; - --prism-number: #6394bf; - --prism-variable: #c2b36e; - --prism-function: #a1b567; - --prism-deleted: #bc6066; - --prism-class: #54b1bf; - --prism-builtin: #e0a569; - --prism-property: #dd8e6e; - --prism-namespace: #db889a; - --prism-punctuation: #858585; - --prism-decorator: #bd8f8f; - --prism-regex: #ab5e3f; - --prism-json-property: #6b8b9e; - --prism-line-number: #888888; - --prism-line-number-gutter: #eeeeee; - --prism-line-highlight-background: #444444; - --prism-selection-background: #444444; - --prism-inline-background: theme('colors.dark.300'); -} - - -.token.title { - color: var(--prism-keyword); -} - -/* Overrides */ - -pre, code { - @apply font-mono; -} - -:not(pre) > code { - background: var(--prism-inline-background); - padding: 1px 6px; - border-radius: 3px; -} - -a > code { - color: var(--c-brand-dark); -} - -div[class*='language-'] { - position: relative; -} - -div[class*='language-'] pre { - margin: 0; - z-index: 1; -} - -div[class*='language-'] code { - font-size: var(--prism-font-size); - font-family: var(--prism-font-family); -} - -.token.important { - font-weight: normal; -} - -/* Line highlighting */ - -.highlight-lines { - position: absolute; - top: 0; - bottom: 0; - left: 0; - padding: var(--prism-block-padding-y) 0; - width: 100%; - line-height: var(--prism-line-height); - font-family: var(--prism-font-family); - font-size: var(--prism-font-size); - user-select: none; - overflow: hidden; - z-index: -1; -} - -.highlight-lines .highlighted { - background-color: var(--prism-line-highlight-background); -} diff --git a/.vitepress/theme/styles/custom-blocks.css b/.vitepress/theme/styles/custom-blocks.css deleted file mode 100755 index d65bea1..0000000 --- a/.vitepress/theme/styles/custom-blocks.css +++ /dev/null @@ -1,67 +0,0 @@ -.custom-block.tip, -.custom-block.warning, -.custom-block.danger { - margin: 2rem 0 1rem 0; - border-left: .5rem solid; - padding: .1rem 1.5rem; - overflow-x: auto; -} - -.custom-block.tip { - background-color: var(--c-bg-secondary); - border-color: #42b983; -} - -.custom-block.warning { - border-color: #e7c000; - background-color: rgba(255, 229, 100, .3); -} - -.custom-block.warning .custom-block-title { - color: #b29400; -} - -.custom-block.warning a { - color: var(--c-text); -} - -.custom-block.danger { - border-color: #c00; - background-color: #ffe6e6; -} - -.custom-block.danger .custom-block-title { - color: #900; -} - -.custom-block.danger a { - color: var(--c-text); -} - -.custom-block.details { - position: relative; - display: block; - border-radius: 2px; - margin: 1.6em 0; - padding: 1.6em; - background-color: #eee; -} - -.custom-block.details h4 { - margin-top: 0; -} - -.custom-block.details figure:last-child, -.custom-block.details p:last-child { - margin-bottom: 0; - padding-bottom: 0; -} - -.custom-block.details summary { - outline: none; - cursor: pointer; -} - -.custom-block-title { - display: none; -} diff --git a/.vitepress/theme/styles/layout.css b/.vitepress/theme/styles/layout.css deleted file mode 100755 index 306966a..0000000 --- a/.vitepress/theme/styles/layout.css +++ /dev/null @@ -1,312 +0,0 @@ -*, -::before, -::after { - box-sizing: border-box; - border-width: 0; - border-style: solid; - border-color: #e5e7eb; -} -/* -* { - scrollbar-color: var(--c-divider-light) var(--c-bg); -} -::-webkit-scrollbar { - width: var(--scrollbar-width); -} -::-webkit-scrollbar:horizontal { - height: var(--scrollbar-width); -} -::-webkit-scrollbar-track { - background: var(--c-bg); - border-radius: 10px; -} -::-webkit-scrollbar-thumb { - background: transparent; - border-radius: 10px; - background-clip: padding-box; -} -::-webkit-scrollbar-thumb:hover { - background: var(--c-divider-dark); -} -*:hover::-webkit-scrollbar-thumb { - background: var(--c-divider-light); -} */ - -html { - line-height: 1.4; - font-size: 16px; - -webkit-text-size-adjust: 100%; -} - -body { - margin: 0; - width: 100%; - min-width: 320px; - min-height: 100vh; - line-height: 1.4; - font-family: var(--font-family-base); - font-size: 16px; - font-weight: 400; - color: var(--c-text); - background-color: var(--c-bg); - direction: ltr; - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - overflow-x: hidden; -} - -main { - display: block; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 0; - line-height: 1.25; -} - -h1, -h2, -h3, -h4, -h5, -h6, -strong, -b { - font-weight: 600; -} - -h1:hover .header-anchor, -h1:focus .header-anchor, -h2:hover .header-anchor, -h2:focus .header-anchor, -h3:hover .header-anchor, -h3:focus .header-anchor, -h4:hover .header-anchor, -h4:focus .header-anchor, -h5:hover .header-anchor, -h5:focus .header-anchor, -h6:hover .header-anchor, -h6:focus .header-anchor { - opacity: 1; -} - -h1 { - margin-top: 1.5rem; - font-size: 1.9rem; -} - -@media screen and (min-width: 420px) { - h1 { - font-size: 2.2rem; - } -} - -h2 { - margin-top: 2.25rem; - margin-bottom: 1.25rem; - border-bottom: 1px solid var(--c-divider); - padding-bottom: 0.3rem; - line-height: 1.25; - font-size: 1.65rem; - /* overflow-x: auto; */ -} - -h2 + h3 { - margin-top: 1.5rem; -} - -h3 { - margin-top: 2rem; - font-size: 1.35rem; -} - -h4 { - font-size: 1.15rem; -} - -p, -ol, -ul { - margin: 1rem 0; - line-height: 1.7; -} - -a, -area, -button, -[role="button"], -input, -label, -select, -summary, -textarea { - touch-action: manipulation; -} - -a { - text-decoration: none; - color: var(--c-brand); -} - -a:hover { - text-decoration: underline; -} - -a.header-anchor { - float: left; - margin-top: 0.125em; - margin-left: -0.87em; - padding-right: 0.23em; - font-size: 0.85em; - opacity: 0; -} - -a.header-anchor:hover, -a.header-anchor:focus { - text-decoration: none; -} - -figure { - margin: 0; -} - -img { - max-width: 100%; -} - -ul, -ol { - padding-left: 1.25em; -} - -li > ul, -li > ol { - margin: 0; -} - -table { - @apply w-full; -} - -tr { - @apply border-b border-gray-400 border-opacity-20; -} - -th { - @apply text-left font-600; -} - -td, th { - @apply p-1 py-2; -} - -blockquote { - margin: 1rem 0; - border-left: 0.2rem solid #8885; - padding: 0.25rem 0 0.25rem 1rem; - font-size: 1rem; - color: var(--c-text); - @apply bg-gray-400 bg-opacity-10; -} - -kbd { - @apply border border-gray-400 border-b-2 border-opacity-20 rounded; - @apply bg-gray-400 bg-opacity-5 py-0.5 px-2 text-sm text-center font-mono; -} - -blockquote > p { - margin: 0; -} - -form { - margin: 0; -} - -.theme.sidebar-open .sidebar-mask { - display: block; -} - -.theme.no-navbar > h1, -.theme.no-navbar > h2, -.theme.no-navbar > h3, -.theme.no-navbar > h4, -.theme.no-navbar > h5, -.theme.no-navbar > h6 { - margin-top: 1.5rem; - padding-top: 0; -} - -.theme.no-navbar aside { - top: 0; -} - -@media screen and (min-width: 720px) { - .theme.no-sidebar aside { - display: none; - } - - .theme.no-sidebar main { - margin-left: 0; - } -} - -.sidebar-mask { - position: fixed; - z-index: 2; - display: none; - width: 100vw; - height: 100vh; -} - -.nav-btn { - display: flex; - font-size: 1.05rem; - border: 0; - outline: none; - background: none; - color: var(--c-text); - opacity: 0.8; - cursor: pointer; -} -.nav-btn:hover { - opacity: 1; -} -.nav-btn svg { - margin: auto; -} -.external-link { - font-size: 0.95rem; - opacity: 0.7; -} - -.icon-btn { - @apply inline-block cursor-pointer select-none !outline-none; - @apply opacity-75 transition duration-200 ease-in-out align-middle rounded p-2; - @apply hover:(opacity-100 bg-gray-400 bg-opacity-10); -} - -.icon-btn.disabled { - @apply opacity-25 pointer-events-none; -} - -.inline-icon-btn { - @apply text-primary-deep; - @apply inline-block rounded p-0.5 text-2xl align-middle; - @apply border border-primary border-opacity-20 border-solid; -} - -p > img { - @apply rounded-2xl -} - -li > svg { - vertical-align: middle; - transform: translateY(-10%); -} diff --git a/.vitepress/theme/styles/sidebar-links.css b/.vitepress/theme/styles/sidebar-links.css deleted file mode 100755 index b87e43c..0000000 --- a/.vitepress/theme/styles/sidebar-links.css +++ /dev/null @@ -1,102 +0,0 @@ -.sidebar-links { - margin: 0; - padding: 0; - list-style: none; -} - -.sidebar-link-item { - display: block; - margin: 0; - border-left: .25rem solid transparent; - color: var(--c-text); -} - -a.sidebar-link-item:hover { - text-decoration: none; - color: var(--c-brand); -} - -a.sidebar-link-item.active { - color: var(--c-brand); -} - -.sidebar > .sidebar-links { - padding: .75rem 0 5rem; -} - -@media (min-width: 720px) { - .sidebar > .sidebar-links { - padding: 1.5rem 0; - } -} - -.sidebar > .sidebar-links > .sidebar-link + .sidebar-link { - padding-top: .5rem; -} - -@media (min-width: 720px) { - .sidebar > .sidebar-links > .sidebar-link + .sidebar-link { - padding-top: 1.25rem; - } -} - -.sidebar > .sidebar-links > .sidebar-link > .sidebar-link-item { - padding: .35rem 1.5rem .35rem 1.25rem; - font-size: 1.1rem; - font-weight: 700; -} - -.sidebar > .sidebar-links > .sidebar-link > a.sidebar-link-item.active { - border-left-color: var(--c-brand); - font-weight: 600; -} - -.sidebar > .sidebar-links > .sidebar-link > .sidebar-links > .sidebar-link > .sidebar-link-item { - display: block; - padding: .35rem 1.5rem .35rem 2rem; - line-height: 1.4; - font-size: 1rem; - font-weight: 400; -} - -.sidebar > .sidebar-links > .sidebar-link > .sidebar-links > .sidebar-link > a.sidebar-link-item.active { - border-left-color: var(--c-brand); - font-weight: 600; -} - -.sidebar > -.sidebar-links > -.sidebar-link > -.sidebar-links > -.sidebar-link > -.sidebar-links > -.sidebar-link > -.sidebar-link-item { - display: block; - padding: .3rem 1.5rem .3rem 3rem; - line-height: 1.4; - font-size: .9rem; - font-weight: 400; -} - -.sidebar > -.sidebar-links > -.sidebar-link > -.sidebar-links > -.sidebar-link > -.sidebar-links > -.sidebar-link > -.sidebar-links > -.sidebar-link > -.sidebar-link-item { - display: block; - padding: .3rem 1.5rem .3rem 4rem; - line-height: 1.4; - font-size: .9rem; - font-weight: 400; -} -/* -a.sidebar-link-item { - font-family: monospace; - letter-spacing: -0.5px; -} */ diff --git a/.vitepress/theme/styles/vars.css b/.vitepress/theme/styles/vars.css deleted file mode 100755 index eddc7b6..0000000 --- a/.vitepress/theme/styles/vars.css +++ /dev/null @@ -1,104 +0,0 @@ -/** Base Styles */ -:root { - - /** - * Colors - * --------------------------------------------------------------------- */ - --c-bg: #fff; - --c-bg-semi: rgba(255,255,255,0.8); - --c-bg-secondary: #f3f5f7; - - --c-white: #ffffff; - --c-black: #000000; - - --c-divider-light: rgba(60, 60, 67, .12); - --c-divider-dark: rgba(84, 84, 88, .48); - - --c-text-light-1: #2c3e50; - --c-text-light-2: #476582; - --c-text-light-3: #90a4b7; - - --c-brand: #3AB9D4; - --c-brand-active: #3AB9D4; - --c-brand-dark: #3AB9D4; - --c-brand-light: #3AB9D4; - - --c-disabled-bg: #e5e5e5; - --c-disabled-fg: #666; - - --code-bg-color: #f8f8f8; - --code-inline-bg-color: rgba(27, 31, 35, .04); - --code-highlight: rgba(0, 0, 0, .04); - - /** - * Typography - * --------------------------------------------------------------------- */ - - --font-family-base: 'Inter', apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; - --font-family-mono: 'IBM Plex Mono', source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; - - /** - * Z Indexes - * - * Algolia SearchBox has a z-index of 200, so make sure not to go above - * that value. - * --------------------------------------------------------------------- */ - - --z-index-navbar: 10; - --z-index-sidebar: 6; - - /** - * Shadows - * --------------------------------------------------------------------- */ - - --shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06); - --shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07); - --shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08); - --shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12); - --shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16); - - /** - * Sizes - * --------------------------------------------------------------------- */ - - --header-height: 3.6rem; - --sidebar-width: 17.5rem; - --scrollbar-width: 0; -} - -html.dark { - --c-bg: #111; - --c-bg-semi: rgba(17,17,17,0.8); - --c-bg-secondary: #222; - --c-text: #f5f7fa; - --c-text-light: #f9f9f9; - --c-text-lighter: #ffffff; - - --c-divider-light: rgba(200, 200, 200, .12); - --c-divider-dark: rgba(200, 200, 200, .48); - --code-bg-color: #191919; - --code-inline-bg-color: rgba(255, 255, 255, .04); - --code-highlight: rgba(0, 0, 0, .66); - - --c-disabled-bg: #333; - --c-disabled-fg: #aaa; -} - -/** Fallback Styles */ -:root { - --c-divider: var(--c-divider-light); - - --c-text: var(--c-text-light-1); - --c-text-light: var(--c-text-light-2); - --c-text-lighter: var(--c-text-light-3); - - --c-bg: var(--c-white); - - --code-line-height: 24px; - --code-font-family: var(--font-family-mono); - --code-font-size: 14px; -} - -.no-sidebar { - --sidebar-width: 0; -} diff --git a/.vitepress/theme/support/sideBar.ts b/.vitepress/theme/support/sideBar.ts deleted file mode 100755 index 0d6b201..0000000 --- a/.vitepress/theme/support/sideBar.ts +++ /dev/null @@ -1,67 +0,0 @@ -import type { DefaultTheme } from '../config' -import { - isArray, - ensureSlash, - ensureStartingSlash, - removeExtention, -} 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 = removeExtention(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: removeExtention(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 100755 index aad8b5a..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` extention from the given path. It also converts - * `index` to slush. - */ -export function removeExtention(path: string): string { - return path.replace(/(index)?(\.(md|html))?$/, '') || '/' -} From 800f8c98e8baf7c69d347e8861d6c9cdf63418a0 Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 30 Apr 2026 11:26:22 +0200 Subject: [PATCH 04/10] =?UTF-8?q?chore:=20supprimer=20les=20fichiers=20et?= =?UTF-8?q?=20dossiers=20obsol=C3=A8tes=20de=20l'ancien=20docs-fr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/config.yml | 4 - .npmrc | 2 - TRANSLATIONS.md | 99 - addons/use.md | 38 - addons/write-an-addon.md | 71 - pnpm-lock.yaml | 3801 ----------------------------- showcases.md | 10 - themes/gallery.md | 24 - themes/use.md | 57 - themes/write-a-theme.md | 149 -- windi.config.ts | 34 - yarn.lock | 2128 ---------------- 12 files changed, 6417 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100755 .npmrc delete mode 100755 TRANSLATIONS.md delete mode 100644 addons/use.md delete mode 100644 addons/write-an-addon.md delete mode 100644 pnpm-lock.yaml delete mode 100755 showcases.md delete mode 100755 themes/gallery.md delete mode 100755 themes/use.md delete mode 100755 themes/write-a-theme.md delete mode 100755 windi.config.ts delete mode 100644 yarn.lock diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 3db55b1..0000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,4 +0,0 @@ -contact_links: - - name: Main Repository - url: https://github.com/slidevjs/slidev/ - about: This translation is out of date, This translation is outdated, please do not file an issue here. diff --git a/.npmrc b/.npmrc deleted file mode 100755 index cf04042..0000000 --- a/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -shamefully-hoist=true -strict-peer-dependencies=false diff --git a/TRANSLATIONS.md b/TRANSLATIONS.md deleted file mode 100755 index 5c3a3c5..0000000 --- a/TRANSLATIONS.md +++ /dev/null @@ -1,99 +0,0 @@ -# Help on Translating - - - -First of all, thank you for being interested in contributing to translations! - -You can find the repositories for each existing translation in [README.md](./README.md). To help improve them, simply sending a Pull Request to their repo. - -If the language you want to contribute isn't on the list, join [our Discord server](https://chat.sli.dev), and find the `#translations` channel to see if someone is already working on the language you want, consider joining them and translate together. If not, you can start a new translation project with the following steps. - -In case it's already been translated but you're wondering how to maintain it, skip to the end. -## Some tips before you get started -- It is recommended that you use your IDE of choice (e.g VSCode) paired with a development server running, so you can see your translation changes in real-time. -- You can mark these checkmarks as the translation progresses or use your own workflow. The translations don't need to be made in any particular order. -- Translations don't need to be literal, but they should convey the same message. In case you're not sure how to translate something, you can either leave it as it is or use online tools like WordReference or Linguee to aid you. -- Most translations will simply consist in editing Markdown files. Certain areas are buried under Vue components, which will be listed below. You can also use your IDE to find the string to translate. - -## Getting started - -- [ ] Fork the main docs repo: [slidevjs/docs](https://github.com/slidevjs/docs) -- [ ] Translate README.md, you can take one of the already translated repositories as an example. -- [ ] Share your repo's link to the `#translations` channel telling people you are working on it and find collaborators. - -## Translating Markdown files - -- [ ] `showcases.md` - A gallery showcase of Slidev presentations. -- [ ] `index.md` - Mainpage content, note that some of it is buried under Vue components listed further below. - -### .vitepress/ - -- [ ] `config.js` - Sitemap -- [ ] `/theme/components/WorkingInProgress.vue` - WIP notice shown in mainpage -- [ ] `/theme/components/demo/Demo.vue` - Animated demo shown in mainpage -- [ ] `/theme/components/Environment.vue` - Describes the environment of a setting. - -### builtin/ - -- [ ] `components.md` - Use [Vue components](https://v3.vuejs.org/guide/component-basics.html) inside Slidev -- [ ] `layouts.md` - Use Vue layouts inside Slidev - -### custom/ - -- [ ] `config-katex.md` - Configuring Katex -- [ ] `config-mermaid.md` - Configuring Mermaid -- [ ] `config-monaco.md` - Configuring Monaco -- [ ] `config-shortcuts.md` - Configuring Shortcuts -- [ ] `config-vite.md` - Configuring Vite -- [ ] `config-vue.md` - Configuring Vue -- [ ] `config-windicss.md`- Configuring Windicss -- [ ] `directory-structure.md` - Configuring the directory structure -- [ ] `fonts.md` - Configuring fonts -- [ ] `global-layers.md` - Configuring the global layers -- [ ] `highlighters.md` - Configuring code highlighters -- [ ] `index.md`- Customizations index page -- [ ] `vue-context.md` - The Vue global context - -### guide/ - -- [ ] `animations.md` - Animations and transitions -- [ ] `editors.md` - Editor integrations -- [ ] `exporting.md`- Exporting your slides -- [ ] `faq.md` - Frequent Answered Questions -- [ ] `index.md` - Getting started with Slidev -- [ ] `navigation.md` - Navigation across slides -- [ ] `presenter-mode.md`- Toggling presenter mode -- [ ] `recording.md`- Recording your presentation -- [ ] `syntax.md` - Markdown syntax -- [ ] `why.md` - _Why Slidev?_ - -### resources/ - -- [ ] `covers.md` - Curated covers for Slidev - -### themes/ - -- [ ] `gallery.md` - Theme gallery -- [ ] `use.md` - How to use Slidev themes -- [ ] `write-a-theme.md` - Write your own theme - -### addons/ - -- [ ] `use.md` - How to use Slidev addons -- [ ] `write-an-addon.md` - Write your own addon - -## Publishing your translations - -- [ ] When you finish the translation (at least 90%), `@antfu` in the Discord and we will invite you to the org and make the translation official. -- [ ] Once the transferring is done, we will set up the subdomain, auto-deployment, and a daily sync-up bot to keep the translation up-to-date with the latest English docs. -- [ ] The site is live, and we will send a shout-out tweet on [our Twitter account](https://twitter.com/Slidevjs). - -## Maintaining the translations up-to-date - -- `docschina-bot` will periodically submit merge requests from the `slidev/docs` repository. Switch to the branch created in the pull request, make any changes necessary and merge it. [example](https://github.com/slidevjs/docs-fr/pull/13). -- Sometimes it will occur that a merge request is made and you haven't merged the previous one. The latest PR always checks your main branch against the English one; so you can just close the previous PR(s), move your work to the latest one and merge it. - - -[Working-in-progress translation list](https://discord.com/channels/851817370623410197/851822360955977760/852614294017146900) - -Thanks again! diff --git a/addons/use.md b/addons/use.md deleted file mode 100644 index 4135b18..0000000 --- a/addons/use.md +++ /dev/null @@ -1,38 +0,0 @@ -# Utiliser un Addon - -Les addons sont des ensembles de composants supplémentaires, de mises en page, de styles, de configuration, etc. que vous pouvez utiliser dans votre présentation. - -Ils sont assez similaires à [themes](/themes/use), mais en général : - -* ils n'affectent pas les styles globaux de vos diapositives -* vous pouvez utiliser plusieurs addons dans une présentation - -Pour utiliser les addons, vous devez les installer manuellement via : - -```bash -$ npm install [slidev-addon-package1] [slidev-addon-package2] -``` - -Et ensuite déclarez les addons soit dans votre frontmatter : - -```yaml ---- -addons: - - slidev-addon-package1 - - slidev-addon-package2 ---- -``` - -Ou dans votre fichier `package.json` : - -```json -// package.json -{ - "slidev": { - "addons": [ - "slidev-addon-package1", - "slidev-addon-package2", - ] - } -} -``` diff --git a/addons/write-an-addon.md b/addons/write-an-addon.md deleted file mode 100644 index f01ad6a..0000000 --- a/addons/write-an-addon.md +++ /dev/null @@ -1,71 +0,0 @@ -# Écrire un Addon - -> Disponible depuis v0.32.1 - -## Aptitude - -Un addon peut contribuer aux points suivants : - -- Styles globaux (à utiliser avec prudence c'est plus le rôle de [themes](/themes/use)) -- Fournir des mises en page personnalisées ou remplacer celle existante -- Fournir des composants personnalisés ou remplacer celui existant -- Étendre les configurations Windi CSS -- Configurer des outils comme Monaco et Prism - -## Conventions - -Les addons sont publiés dans le registre npm et doivent suivre les conventions ci-dessous : - -- Le nom du package doit commencer par `slidev-addon-`, par exemple : `slidev-addon-awesome` -- Ajoutez `slidev-addon` et `slidev` dans le champ `keywords` de votre `package.json` - -## Installer - -### Initialisation - -Pour créer votre addon, commencez par créer un répertoire avec créer un fichier `package.json` (vous pouvez utiliser `npm init`). - -Ensuite, installez les dépendances slidev : - -```bash -$ npm install -D @slidev/cli -``` - -### Essai - -Pour configurer le terrain de jeu de test pour votre addon, vous pouvez créer un fichier `example.md` avec du contenu. - -Et éventuellement, vous pouvez également ajouter des scripts à votre `packages.json` - -```json -// package.json -{ - "scripts": { - "dev": "slidev example.md", - "build": "slidev build example.md", - "export": "slidev export example.md", - "screenshot": "slidev export example.md --format png" - } -} -``` - -Pour publier votre addon, lancez simplement `npm publish et vous êtes prêt à partir. Aucun processus de construction n'est requis (ce qui signifie que vous pouvez publier directement les fichiers `.vue` et `.ts`, Slidev est assez intelligent pour les comprendre). - -Les points de contribution supplémentaires suivent les mêmes conventions que la personnalisation locale, veuillez vous référer à [la documentation pour les conventions de nommage](/custom/). - -## Métadonnées complémentaires - -### Version Diapositive - -Si l'addon s'appuie sur une fonctionnalité spécifique de Slidev qui vient d'être introduite, vous pouvez définir la version minimale de Slidev requise pour que votre addon fonctionne correctement : - -```json -// package.json -{ - "engines": { - "slidev": ">=0.32.1" - } -} -``` - -Si les utilisateurs utilisent des versions plus anciennes de Slidev, une erreur sera générée. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index dcdd22f..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,3801 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -overrides: - vue-demi: 0.9.1 - -importers: - - .: - dependencies: - '@antfu/utils': - specifier: ^0.5.2 - version: 0.5.2 - '@vueuse/core': - specifier: ^8.9.2 - version: 8.9.4(vue@3.4.32(typescript@4.9.5)) - typeit: - specifier: ^7.0.4 - version: 7.0.4 - devDependencies: - '@iconify/json': - specifier: ^2.1.76 - version: 2.2.229 - '@slidev/client': - specifier: ^0.34.3 - version: 0.34.3(rollup@2.77.3)(typescript@4.9.5)(vite@2.9.18) - '@slidev/parser': - specifier: ^0.34.3 - version: 0.34.3 - '@slidev/theme-default': - specifier: ^0.21.2 - version: 0.21.2 - '@slidev/types': - specifier: ^0.34.3 - version: 0.34.3 - '@types/fs-extra': - specifier: ^9.0.13 - version: 9.0.13 - '@types/node': - specifier: ^18.0.3 - version: 18.19.41 - fs-extra: - specifier: ^10.1.0 - version: 10.1.0 - markdown-it: - specifier: ^13.0.1 - version: 13.0.2 - typescript: - specifier: ^4.7.4 - version: 4.9.5 - unplugin-icons: - specifier: ^0.14.7 - version: 0.14.15(@vue/compiler-sfc@3.4.32) - unplugin-vue-components: - specifier: ^0.21.1 - version: 0.21.2(@babel/parser@7.24.8)(esbuild@0.14.54)(rollup@2.77.3)(vite@2.9.18)(vue@3.4.32(typescript@4.9.5)) - vite-plugin-inspect: - specifier: ^0.5.1 - version: 0.5.1(vite@2.9.18) - vite-plugin-windicss: - specifier: ^1.8.6 - version: 1.9.3(vite@2.9.18) - vitepress: - specifier: ^0.22.4 - version: 0.22.4(@algolia/client-search@4.24.0)(search-insights@2.15.0)(typescript@4.9.5) - windicss: - specifier: ^3.5.6 - version: 3.5.6 - -packages: - - '@algolia/autocomplete-core@1.9.3': - resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} - - '@algolia/autocomplete-plugin-algolia-insights@1.9.3': - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} - peerDependencies: - search-insights: '>= 1 < 3' - - '@algolia/autocomplete-preset-algolia@1.9.3': - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - - '@algolia/autocomplete-shared@1.9.3': - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - - '@algolia/cache-browser-local-storage@4.24.0': - resolution: {integrity: sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==} - - '@algolia/cache-common@4.24.0': - resolution: {integrity: sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==} - - '@algolia/cache-in-memory@4.24.0': - resolution: {integrity: sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==} - - '@algolia/client-account@4.24.0': - resolution: {integrity: sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==} - - '@algolia/client-analytics@4.24.0': - resolution: {integrity: sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==} - - '@algolia/client-common@4.24.0': - resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} - - '@algolia/client-personalization@4.24.0': - resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==} - - '@algolia/client-search@4.24.0': - resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} - - '@algolia/logger-common@4.24.0': - resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} - - '@algolia/logger-console@4.24.0': - resolution: {integrity: sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==} - - '@algolia/recommend@4.24.0': - resolution: {integrity: sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==} - - '@algolia/requester-browser-xhr@4.24.0': - resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} - - '@algolia/requester-common@4.24.0': - resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} - - '@algolia/requester-node-http@4.24.0': - resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} - - '@algolia/transporter@4.24.0': - resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@antfu/install-pkg@0.1.1': - resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} - - '@antfu/utils@0.5.2': - resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==} - - '@antfu/utils@0.7.10': - resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} - - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.24.9': - resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.24.9': - resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.24.10': - resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.24.8': - resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.24.9': - resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.24.8': - resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.24.8': - resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/standalone@7.24.10': - resolution: {integrity: sha512-nGC37EKfmelpyCXto1pw6SBkD5ZQRdMbL6WISi28xWit9dtiy9dChU1WgEfzturUTxrmOGkMDRrCydFMA7uOaQ==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.24.8': - resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.24.9': - resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} - engines: {node: '>=6.9.0'} - - '@braintree/sanitize-url@6.0.4': - resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==} - - '@docsearch/css@3.6.1': - resolution: {integrity: sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg==} - - '@docsearch/js@3.6.1': - resolution: {integrity: sha512-erI3RRZurDr1xES5hvYJ3Imp7jtrXj6f1xYIzDzxiS7nNBufYWPbJwrmMqWC5g9y165PmxEmN9pklGCdLi0Iqg==} - - '@docsearch/react@3.6.1': - resolution: {integrity: sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0' - react-dom: '>= 16.8.0 < 19.0.0' - search-insights: '>= 1 < 3' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true - search-insights: - optional: true - - '@drauu/core@0.3.7': - resolution: {integrity: sha512-JFTKEyVoFKHQLfYKqFrcbI2ZnHWfe2/heuDr2JUmLG9pdMJn2Gq1WMK4LuB4L1uZDfJyYjnLQ/OicZ0ePIwI0Q==} - - '@esbuild/linux-loong64@0.14.54': - resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@fastify/busboy@2.1.1': - resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} - engines: {node: '>=14'} - - '@iconify/json@2.2.229': - resolution: {integrity: sha512-DD1k97sjm87n+C15Ey1dVX1cBKCawfms6N0d+1vvAon5P3yurpPEO9OyU88f53+9Chpo+CuIp3+TihvsghlfQQ==} - - '@iconify/types@1.1.0': - resolution: {integrity: sha512-Jh0llaK2LRXQoYsorIH8maClebsnzTcve+7U3rQUSnC11X4jtPnFuyatqFLvMxZ8MLG8dB4zfHsbPfuvxluONw==} - - '@iconify/types@2.0.0': - resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - - '@iconify/utils@1.0.33': - resolution: {integrity: sha512-vGeAqo7aGPxOQmGdVoXFUOuyN+0V7Lcrx2EvaiRjxUD1x6Om0Tvq2bdm7E24l2Pz++4S0mWMCVFXe/17EtKImQ==} - - '@iconify/utils@2.1.25': - resolution: {integrity: sha512-Y+iGko8uv/Fz5bQLLJyNSZGOdMW0G7cnlEX1CiNcKsRXX9cq/y/vwxrIAtLCZhKHr3m0VJmsjVPsvnM4uX8YLg==} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@nuxt/kit@3.12.4': - resolution: {integrity: sha512-aNRD1ylzijY0oYolldNcZJXVyxdGzNTl+Xd0UYyFQCu9f4wqUZqQ9l+b7arCEzchr96pMK0xdpvLcS3xo1wDcw==} - engines: {node: ^14.18.0 || >=16.10.0} - - '@nuxt/schema@3.12.4': - resolution: {integrity: sha512-H7FwBV4ChssMaeiLyPdVLOLUa0326ebp3pNbJfGgFt7rSoKh1MmgjorecA8JMxOQZziy3w6EELf4+5cgLh/F1w==} - engines: {node: ^14.18.0 || >=16.10.0} - - '@polka/url@1.0.0-next.25': - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - - '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - - '@slidev/client@0.34.3': - resolution: {integrity: sha512-9B/fQ4ydrEM2TxwXiwrm6NiGgCJepoltvvlvBKaDzvHIZofDd5wta4vk3vKA5fO2Bs8vcPi6rpPqiehBELYtxw==} - engines: {node: '>=14.0.0'} - - '@slidev/parser@0.34.3': - resolution: {integrity: sha512-mCjNuKfpcDii2lpQHTtPRDN3bqwqBa62g2W2j5NCRtj52o0ZeMA9erSF8SlKkq1aJOCvIHrxiQMgfxGGjJ3Kzg==} - engines: {node: '>=14.0.0'} - - '@slidev/theme-default@0.21.2': - resolution: {integrity: sha512-neUucFs2YrRZZd73QwvLTyRG/o1nerDFUR5t8YAmXVLTMzWfY71flQ6aAhjYf+WjsozYsOHcxi/pZtIzZ4VhTQ==} - engines: {node: '>=14.0.0', slidev: '>=0.19.2'} - - '@slidev/types@0.22.7': - resolution: {integrity: sha512-mCVKQbcGTv6d6n9aHpYNp5U04HF+FMbpY083vqpJ6Folc805BB1Am02eubaW0J6nM+dSOu2dDgPY+kIjs75sAQ==} - engines: {node: '>=14.0.0'} - - '@slidev/types@0.34.3': - resolution: {integrity: sha512-yzjy2eOEL2XjyWai1kbfEF8I53Ue9xXRX+uLxXXPVLg+2G/62/3KBZ9lRPvFctJI/Im1VHK5pUtUSstV1QQZOg==} - engines: {node: '>=14.0.0'} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/fs-extra@9.0.13': - resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - - '@types/node@18.19.41': - resolution: {integrity: sha512-LX84pRJ+evD2e2nrgYCHObGWkiQJ1mL+meAgbvnwk/US6vmMY7S2ygBTGV2Jw91s9vUsLSXeDEkUHZIJGLrhsg==} - - '@types/web-bluetooth@0.0.14': - resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==} - - '@types/web-bluetooth@0.0.20': - resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - - '@unocss/cli@0.42.1': - resolution: {integrity: sha512-Vnq7ZjsjPPCUaYJ84L8hb5P8E1ROvtf355ETZx7MDlJ+CEfPAGHzT8lj/lwRiJA39/5yTd8haLGu4a1DV7iG4w==} - engines: {node: '>=14'} - hasBin: true - - '@unocss/config@0.42.1': - resolution: {integrity: sha512-FKG03o4mwHNxHfVtPa0RaEstQxSp8oC/FrFVEUQmWkOLzagdhxjKBG5rbrLfn8MI47wbBwl+298JTbfhLYbWmg==} - engines: {node: '>=14'} - - '@unocss/core@0.42.1': - resolution: {integrity: sha512-fExFmLDkquL+AevDCperw0ry1vcyD8RCZwrnLOmkBIZdUcXhy7OKOkzinj/5dEVm11mmPJC8A0wiw4VXbQRGuQ==} - - '@unocss/inspector@0.42.1': - resolution: {integrity: sha512-U5DzzuhAySb4r8emywM8fTUplnXwcE3GrwJj4/YoE06YrA71Y/UQqXK3IhaSKx0Cs4wbu/9eJ2Fh1cDwGZPEQw==} - - '@unocss/preset-attributify@0.42.1': - resolution: {integrity: sha512-fdTs/uThKB6edHBwJzLEGAif3lsZyu14SuRS+e2LpKUFNYJQyAIIS+qvQH2HSccLIcBM9BGu0XkcaNAqrMtKfA==} - - '@unocss/preset-icons@0.42.1': - resolution: {integrity: sha512-L2UckiG+Vi5J2pC2dtEH1QhxNrsUkM4KE4qm4RNpw5DANqDImn0kecL1ZP2J40eaUxYF3M7e8OlfOWS3EZseSQ==} - - '@unocss/preset-mini@0.42.1': - resolution: {integrity: sha512-vusdK7Wnu8z0+5+kGHV4bE/yQvw/ROGJcJY22x1aSCarRK2DX2GICjeDJTtNeqHK/zH3mP1nu4pzmjwe0ZZblA==} - - '@unocss/preset-tagify@0.42.1': - resolution: {integrity: sha512-ZUbIi0GhD3dw4Vpy1zklZ4CA5CXoErM+J57k2Ij4CRtzX1d0iSVh2qf1jiCzZ38Rth6oIAEHz3B/1dQoyBMuQg==} - - '@unocss/preset-typography@0.42.1': - resolution: {integrity: sha512-SJJ565PM//OpskCoD457dzb+yArjyKY9nJnfZvlkdn/giL9tycjp2zf6MhkHkU5rvuTkInW2S0FiDE7TCu7Srg==} - - '@unocss/preset-uno@0.42.1': - resolution: {integrity: sha512-9E3/ObXUl/STAYfU3Yt1dNoBo94qBttgWaBw6nVyQwPSWEWpL9TcRYAF3b8i4rJK5ItsoaLM3NmmgxnfZ56TqA==} - - '@unocss/preset-web-fonts@0.42.1': - resolution: {integrity: sha512-9vbZ1htarkXySeFF5YjQlE4LXXybfiRrU2osANGjtLRrsW0Mkk2Nh6Brnwpinw5I4wt89dYTeOh0V4vCKpVTpw==} - - '@unocss/preset-wind@0.42.1': - resolution: {integrity: sha512-Y8CZ6avUqB/qae8L1Z3Jyts1YsGbn87UGpAl3D/BEakITrV6ma47o6sbtvt526RLnNbzT9pMxV8AglZoEcIaNg==} - - '@unocss/reset@0.42.1': - resolution: {integrity: sha512-sByjZKqqsXSavOOebaY6pPtZWFSO71adNbBFUPH7De56YtAGiS89PC9tQ/RGPhNBuZ2krZIMsN9og3+HivGUvg==} - - '@unocss/scope@0.42.1': - resolution: {integrity: sha512-nFkfZwBGLl6nN6bBaUrF1l2ZkMcg2dAibSlA0U1mr+75L14gem2o+QR++Q76dATiLA9ljdL++Tn5JLR8zGQ7xg==} - - '@unocss/transformer-compile-class@0.42.1': - resolution: {integrity: sha512-GMaLnS1INrT3oj4Sgj2tvGeQR41I3PN74ZQvA8Q79/vsycxWKFrp/OiZFySL22Wq2OE8/kFQCosNFPv3Q8Vs9A==} - - '@unocss/transformer-directives@0.42.1': - resolution: {integrity: sha512-6pUUHVpjap+GmiBsCU/9elolVFo4xLk8tXi9xKXTccjT4qxr5FSoZa4wx5u9TPumnZVflQRt5XrEE9Cbzewq1A==} - - '@unocss/transformer-variant-group@0.42.1': - resolution: {integrity: sha512-FCjnY2byndBc6s9G0EhSio9sTsMbG0L0qcxCqSu6uh05msx5ickOqgleusKntOHrq83iH7AoR2GnaSTbfiV0Uw==} - - '@unocss/vite@0.42.1': - resolution: {integrity: sha512-H0xXpHt9ivMn/3mKIdvGPitx1VH7sCTR6174uzwz0sarVKevHxcV/rs90sWdgQJT7hy5N9ho7fRQ2CrIOLpN4Q==} - peerDependencies: - vite: ^2.9.0 || ^3.0.0-0 - - '@vitejs/plugin-vue@2.3.4': - resolution: {integrity: sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==} - engines: {node: '>=12.0.0'} - peerDependencies: - vite: ^2.5.10 - vue: ^3.2.25 - - '@vue/compiler-core@3.4.32': - resolution: {integrity: sha512-8tCVWkkLe/QCWIsrIvExUGnhYCAOroUs5dzhSoKL5w4MJS8uIYiou+pOPSVIOALOQ80B0jBs+Ri+kd5+MBnCDw==} - - '@vue/compiler-dom@3.4.32': - resolution: {integrity: sha512-PbSgt9KuYo4fyb90dynuPc0XFTfFPs3sCTbPLOLlo+PrUESW1gn/NjSsUvhR+mI2AmmEzexwYMxbHDldxSOr2A==} - - '@vue/compiler-sfc@3.4.32': - resolution: {integrity: sha512-STy9im/WHfaguJnfKjjVpMHukxHUrOKjm2vVCxiojQJyo3Sb6Os8SMXBr/MI+ekpstEGkDONfqAQoSbZhspLYw==} - - '@vue/compiler-ssr@3.4.32': - resolution: {integrity: sha512-nyu/txTecF6DrxLrpLcI34xutrvZPtHPBj9yRoPxstIquxeeyywXpYZrQMsIeDfBhlw1abJb9CbbyZvDw2kjdg==} - - '@vue/devtools-api@6.6.3': - resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} - - '@vue/reactivity@3.4.32': - resolution: {integrity: sha512-1P7QvghAzhSIWmiNmh4MNkLVjr2QTNDcFv2sKmytEWhR6t7BZzNicgm5ENER4uU++wbWxgRh/pSEYgdI3MDcvg==} - - '@vue/runtime-core@3.4.32': - resolution: {integrity: sha512-FxT2dTHUs1Hki8Ui/B1Hu339mx4H5kRJooqrNM32tGUHBPStJxwMzLIRbeGO/B1NMplU4Pg9fwOqrJtrOzkdfA==} - - '@vue/runtime-dom@3.4.32': - resolution: {integrity: sha512-Xz9G+ZViRyPFQtRBCPFkhMzKn454ihCPMKUiacNaUhuTIXvyfkAq8l89IZ/kegFVyw/7KkJGRGqYdEZrf27Xsg==} - - '@vue/server-renderer@3.4.32': - resolution: {integrity: sha512-3c4rd0522Ao8hKjzgmUAbcjv2mBnvnw0Ld2f8HOMCuWJZjYie/p8cpIoYJbeP0VV2JYmrJJMwGQDO5RH4iQ30A==} - peerDependencies: - vue: 3.4.32 - - '@vue/shared@3.4.32': - resolution: {integrity: sha512-ep4mF1IVnX/pYaNwxwOpJHyBtOMKWoKZMbnUyd+z0udqIxLUh7YCCd/JfDna8aUrmnG9SFORyIq2HzEATRrQsg==} - - '@vueuse/core@10.11.0': - resolution: {integrity: sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==} - - '@vueuse/core@8.9.4': - resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==} - peerDependencies: - '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue: - optional: true - - '@vueuse/head@0.7.13': - resolution: {integrity: sha512-VHSla/0uOAUii/mz+NWLFKMrMbz/lQoYxEcpS/ri7drepYjdB5QdbTnD2KdOX8EmQM/b07qpjKanr7erGrd3XA==} - peerDependencies: - vue: '>=2.7 || >=3' - - '@vueuse/metadata@10.11.0': - resolution: {integrity: sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==} - - '@vueuse/metadata@8.9.4': - resolution: {integrity: sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==} - - '@vueuse/motion@2.2.3': - resolution: {integrity: sha512-QsS9P7MDKFF2j4eDPuo6lezUDPE7MQp4+unBeR2Ym8RkhtMEw/oVbnHPHL986rsmnnlUZkHVSv5kKoHJzjbtmQ==} - peerDependencies: - vue: '>=3.0.0' - - '@vueuse/shared@10.11.0': - resolution: {integrity: sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==} - - '@vueuse/shared@8.9.4': - resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==} - peerDependencies: - '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue: - optional: true - - '@vueuse/shared@9.13.0': - resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} - - '@windicss/config@1.9.3': - resolution: {integrity: sha512-u8GUjsfC9r5X1AGYhzb1lX3zZj8wqk6SH1DYex8XUGmZ1M2UpvnUPOFi63XFViduspQ6l2xTX84QtG+lUzhEoQ==} - - '@windicss/plugin-utils@1.9.3': - resolution: {integrity: sha512-3VG5HEGeuIfG/9iTwLyzWWm/aGKNTbtSVkpkAabdRuDP/2lEmf6Hpo4uo5drwE+2O9gXfc6nSYgAwBjotx5CfQ==} - - '@zhead/schema-vue@0.7.4': - resolution: {integrity: sha512-Q7wPUly3ZWbPYQ5SEJBUuD6Mw3wiUfPMPquGfqsR2KF6sxQKRF8oaHnRLuu2uxpjuXjkzpBlZBPu1JgQX+Lf6Q==} - peerDependencies: - vue: '>=2.7 || >=3' - - '@zhead/schema@0.7.4': - resolution: {integrity: sha512-18gfgmZL8gM64JdcT11d1rYLnCaY2mOtbDDSAXtCySanPGpkA1r+w01LCssEI/OfLdoZPS/kYCIW09d1PmUFfQ==} - - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - - algoliasearch@4.24.0: - resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - c12@1.11.1: - resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==} - peerDependencies: - magicast: ^0.3.4 - peerDependenciesMeta: - magicast: - optional: true - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - caniuse-lite@1.0.30001642: - resolution: {integrity: sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - - citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - - codemirror-theme-vars@0.1.2: - resolution: {integrity: sha512-WTau8X2q58b0SOAY9DO+iQVw8JKVEgyQIqArp2D732tcc+pobbMta3bnVMdQdmgwuvNrOFFr6HoxPRoQOgooFA==} - - codemirror@5.65.16: - resolution: {integrity: sha512-br21LjYmSlVL0vFCPWPfhzUCT34FM/pAdK7rRIZwa0rrtrIdotvP4Oh4GUHsu2E3IrQMCfRkL/fN3ytMNxVQvg==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - compatx@0.1.8: - resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} - - confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - - consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cose-base@1.0.3: - resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} - - cose-base@2.2.0: - resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - cytoscape-cose-bilkent@4.1.0: - resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} - peerDependencies: - cytoscape: ^3.2.0 - - cytoscape-fcose@2.2.0: - resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} - peerDependencies: - cytoscape: ^3.2.0 - - cytoscape@3.30.1: - resolution: {integrity: sha512-TRJc3HbBPkHd50u9YfJh2FxD1lDLZ+JXnJoyBn5LkncoeuT7fapO/Hq/Ed8TdFclaKshzInge2i30bg7VKeoPQ==} - engines: {node: '>=0.10'} - - d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} - - d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} - - d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} - - d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} - - d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} - - d3-contour@4.0.2: - resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} - engines: {node: '>=12'} - - d3-delaunay@6.0.4: - resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} - engines: {node: '>=12'} - - d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} - - d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} - - d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} - hasBin: true - - d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} - - d3-fetch@3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} - engines: {node: '>=12'} - - d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} - engines: {node: '>=12'} - - d3-format@3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} - engines: {node: '>=12'} - - d3-geo@3.1.1: - resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} - engines: {node: '>=12'} - - d3-hierarchy@3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} - - d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} - - d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} - - d3-polygon@3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} - engines: {node: '>=12'} - - d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} - - d3-random@3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} - engines: {node: '>=12'} - - d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} - engines: {node: '>=12'} - - d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} - - d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} - - d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} - - d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} - - d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} - - d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} - - d3-transition@3.0.1: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 - - d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} - - d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} - engines: {node: '>=12'} - - dagre-d3-es@7.0.9: - resolution: {integrity: sha512-rYR4QfVmy+sR44IBDvVtcAmOReGBvRCWDpO2QjYwqgh9yijw6eSHBqaPG/LIOEy7aBsniLvtMW6pg19qJhq60w==} - - dayjs@1.11.12: - resolution: {integrity: sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==} - - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - - delaunator@5.0.1: - resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} - - destr@1.2.2: - resolution: {integrity: sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==} - - destr@2.0.3: - resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} - - dompurify@2.4.3: - resolution: {integrity: sha512-q6QaLcakcRjebxjg8/+NP+h0rPfatOgOzc46Fst9VAA3jF2ApfKBNKMzdP4DYTqtUMXSCd5pRS/8Po/OmoCHZQ==} - - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - - drauu@0.3.7: - resolution: {integrity: sha512-fENggzwwVYTiIfKt4hYLsG2azq//hflHqu1qwAWZBzZANkN5KdX+goZYeDsRx01uvtiuxH09w/i8oESygytutg==} - - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - - electron-to-chromium@1.4.830: - resolution: {integrity: sha512-TrPKKH20HeN0J1LHzsYLs2qwXrp8TF4nHdu4sq61ozGbzMpWhI7iIOPYPPkxeq1azMT9PZ8enPFcftbs/Npcjg==} - - elkjs@0.8.2: - resolution: {integrity: sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==} - - entities@3.0.1: - resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} - engines: {node: '>=0.12'} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - esbuild-android-64@0.14.54: - resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - esbuild-android-arm64@0.14.54: - resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - esbuild-darwin-64@0.14.54: - resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - esbuild-darwin-arm64@0.14.54: - resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - esbuild-freebsd-64@0.14.54: - resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - esbuild-freebsd-arm64@0.14.54: - resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - esbuild-linux-32@0.14.54: - resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - esbuild-linux-64@0.14.54: - resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - esbuild-linux-arm64@0.14.54: - resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - esbuild-linux-arm@0.14.54: - resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - esbuild-linux-mips64le@0.14.54: - resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - esbuild-linux-ppc64le@0.14.54: - resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - esbuild-linux-riscv64@0.14.54: - resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - esbuild-linux-s390x@0.14.54: - resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - esbuild-netbsd-64@0.14.54: - resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - esbuild-openbsd-64@0.14.54: - resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - esbuild-sunos-64@0.14.54: - resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - esbuild-windows-32@0.14.54: - resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - esbuild-windows-64@0.14.54: - resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - esbuild-windows-arm64@0.14.54: - resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - esbuild@0.14.54: - resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - file-saver@2.0.5: - resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - framesync@6.1.2: - resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==} - - fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - giget@1.2.3: - resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} - hasBin: true - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globby@14.0.2: - resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} - engines: {node: '>=18'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - hash-sum@2.0.0: - resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hey-listen@1.0.8: - resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} - - hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} - hasBin: true - - js-base64@3.7.7: - resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - katex@0.16.11: - resolution: {integrity: sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==} - hasBin: true - - khroma@2.1.0: - resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} - - klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - - knitwork@1.1.0: - resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} - - kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - - layout-base@1.0.2: - resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} - - layout-base@2.0.1: - resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} - - linkify-it@4.0.1: - resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} - - local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} - - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - magic-string@0.26.7: - resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} - engines: {node: '>=12'} - - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - - markdown-it@13.0.2: - resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==} - hasBin: true - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - mermaid@9.4.3: - resolution: {integrity: sha512-TLkQEtqhRSuEHSE34lh5bCa94KATCyluAXmFnNI2PRZwOpXFeqiJWwZl+d2CcemE1RS6QbbueSSq9QIg8Uxcyw==} - - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - mlly@1.7.1: - resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} - - monaco-editor@0.33.0: - resolution: {integrity: sha512-VcRWPSLIUEgQJQIE0pVT8FcGBIgFoxz7jtqctE+IiCxWugD0DwgyQBcZBhdSrdMC84eumoqMZsGl2GTreOzwqw==} - - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@4.0.2: - resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} - engines: {node: ^14 || ^16 || >=18} - hasBin: true - - node-fetch-native@0.1.8: - resolution: {integrity: sha512-ZNaury9r0NxaT2oL65GvdGDy+5PlSaHTovT6JV5tOW07k1TQmgC0olZETa4C9KZg0+6zBr99ctTYa3Utqj9P/Q==} - - node-fetch-native@1.6.4: - resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} - - node-releases@2.0.17: - resolution: {integrity: sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==} - - non-layered-tidy-tree-layout@2.0.2: - resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - nypm@0.3.9: - resolution: {integrity: sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==} - engines: {node: ^14.16.0 || >=16.10.0} - hasBin: true - - ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} - - ohmyfetch@0.4.21: - resolution: {integrity: sha512-VG7f/JRvqvBOYvL0tHyEIEG7XHWm7OqIfAs6/HqwWwDfjiJ1g0huIpe5sFEmyb+7hpFa1EGNH2aERWR72tlClw==} - deprecated: Package renamed to https://github.com/unjs/ofetch - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} - - pathe@0.3.9: - resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - - perfect-debounce@0.1.3: - resolution: {integrity: sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==} - - perfect-debounce@1.0.0: - resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pkg-types@1.1.3: - resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} - - popmotion@11.0.5: - resolution: {integrity: sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==} - - postcss@8.4.39: - resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} - engines: {node: ^10 || ^12 || >=14} - - preact@10.22.1: - resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} - - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - - prism-theme-vars@0.2.5: - resolution: {integrity: sha512-/D8gBTScYzi9afwE6v3TC1U/1YFZ6k+ly17mtVRdLpGy7E79YjJJWkXFgUDHJ2gDksV/ZnXF7ydJ4TvoDm2z/Q==} - - prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - rc9@2.1.2: - resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - recordrtc@5.6.2: - resolution: {integrity: sha512-1QNKKNtl7+KcwD1lyOgP3ZlbiJ1d0HtXnypUy7yq49xEERxk31PHvE9RCciDrulPCY7WJ+oz0R9hpNxgsIurGQ==} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - robust-predicates@3.0.2: - resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - - rollup@2.77.3: - resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} - engines: {node: '>=10.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - scule@1.3.0: - resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} - - search-insights@2.15.0: - resolution: {integrity: sha512-ch2sPCUDD4sbPQdknVl9ALSi9H7VyoeVbsxznYz6QV55jJ8CI3EtwpO1i84keN4+hF5IeHWIeGvc08530JkVXQ==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - - style-value-types@5.1.2: - resolution: {integrity: sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==} - - stylis@4.3.2: - resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - - theme-vitesse@0.1.14: - resolution: {integrity: sha512-b5s+Zpfaw5+djoCJ9AEbcTbpiTlLsOvGM9oblDmmWRGWNqg9oXtEYO/uwubwx77novHBI6zNuwZRHKNlAIBo4A==} - engines: {vscode: ^1.43.0} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} - engines: {node: '>=6.10'} - - tslib@2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - - typeit@7.0.4: - resolution: {integrity: sha512-ETiVr3s4XOXUE9W+tVhF3gxGTf5z4tc35YjvWEQhqKsJhXWvpQlt/D/ZvIHkZzHegU3stxagjeG2pfm1/AWsYQ==} - - typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true - - uc.micro@1.0.6: - resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} - - ufo@0.8.6: - resolution: {integrity: sha512-fk6CmUgwKCfX79EzcDQQpSCMxrHstvbLswFChHS0Vump+kFkw7nJBfTZoC1j0bOGoY9I7R3n2DGek5ajbcYnOw==} - - ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - - unconfig@0.3.13: - resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==} - - uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - - unctx@2.3.1: - resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - undici@5.28.4: - resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} - engines: {node: '>=14.0'} - - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - - unimport@3.9.0: - resolution: {integrity: sha512-H2ftTISja1BonUVdOKRos6HC6dqYDR40dQTZY3zIDJ/5/z4ihncuL0LqLvtxYqUDMib41eAtunQUhXIWTCZ8rA==} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - unocss@0.42.1: - resolution: {integrity: sha512-WmopJE6wI4t1xpFOTQGTWQCFi12gFf8y7cfLO6adxfknhAiBGaAONnKdMRkXmSeD1ZMhVKbv/g+foGqfGOZGJA==} - engines: {node: '>=14'} - peerDependencies: - '@unocss/webpack': 0.42.1 - peerDependenciesMeta: - '@unocss/webpack': - optional: true - - unplugin-icons@0.14.15: - resolution: {integrity: sha512-J6YBA+fUzVM2IZPXCK3Pnk36jYVwQ6lkjRgOnZaXNIxpMDsmwDqrE1AGJ0zUbfuEoOa90OBGc0OPfN1r+qlSIQ==} - peerDependencies: - '@svgr/core': '>=5.5.0' - '@vue/compiler-sfc': ^3.0.2 - vue-template-compiler: ^2.6.12 - vue-template-es2015-compiler: ^1.9.0 - peerDependenciesMeta: - '@svgr/core': - optional: true - '@vue/compiler-sfc': - optional: true - vue-template-compiler: - optional: true - vue-template-es2015-compiler: - optional: true - - unplugin-vue-components@0.21.2: - resolution: {integrity: sha512-HBU+EuesDj/HRs7EtYH7gBACljVhqLylltrCLModRmCToIIrrNvMh54aylUt4AD4qiwylgOx4Vgb9sBlrIcRDw==} - engines: {node: '>=14'} - peerDependencies: - '@babel/parser': ^7.15.8 - vue: 2 || 3 - peerDependenciesMeta: - '@babel/parser': - optional: true - - unplugin@0.7.2: - resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==} - peerDependencies: - esbuild: '>=0.13' - rollup: ^2.50.0 - vite: ^2.3.0 || ^3.0.0-0 - webpack: 4 || 5 - peerDependenciesMeta: - esbuild: - optional: true - rollup: - optional: true - vite: - optional: true - webpack: - optional: true - - unplugin@1.11.0: - resolution: {integrity: sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==} - engines: {node: '>=14.0.0'} - - untyped@1.4.2: - resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} - hasBin: true - - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - vite-plugin-inspect@0.5.1: - resolution: {integrity: sha512-cSVdNhVPAfH3OdVSV331/t/YWjg++HR/KiBkVST8pjLISna7O8gRwU8NN7KLrEBJqKKQqoRYLBb0RSdYurEyeg==} - engines: {node: '>=14'} - peerDependencies: - vite: ^2.9.0 || ^3.0.0-0 - - vite-plugin-windicss@1.9.3: - resolution: {integrity: sha512-PqNiIsrEftCrgn0xIpj8ZMSdpz8NZn+OJ3gKXnOF+hFzbHFrKGJA49ViOUKCHDOquxoGBZMmTjepWr8GrftKcQ==} - peerDependencies: - vite: ^2.0.1 || ^3.0.0 || ^4.0.0 || ^5.0.0 - - vite@2.9.18: - resolution: {integrity: sha512-sAOqI5wNM9QvSEE70W3UGMdT8cyEn0+PmJMTFvTB8wB0YbYUWw3gUbY62AOyrXosGieF2htmeLATvNxpv/zNyQ==} - engines: {node: '>=12.2.0'} - hasBin: true - peerDependencies: - less: '*' - sass: '*' - stylus: '*' - peerDependenciesMeta: - less: - optional: true - sass: - optional: true - stylus: - optional: true - - vitepress@0.22.4: - resolution: {integrity: sha512-oZUnLO/SpYdThaBKefDeOiVlr0Rie4Ppx3FzMnMyLtJnI5GlBMNjqYqMy/4+umm/iC+ZDJfI+IlDKxv5fZnYzA==} - engines: {node: '>=14.0.0'} - hasBin: true - - vue-demi@0.9.1: - resolution: {integrity: sha512-7s1lufRD2l369eFWPjgLvhqCRk0XzGWJsQc7K4q+0mZtixyGIvsK1Cg88P4NcaRIEiBuuN4q1NN4SZKFKwQswA==} - hasBin: true - peerDependencies: - '@vue/composition-api': ^1.0.0-beta.1 - vue: ^2.6.0 || >=3.0.0-rc.1 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - - vue-router@4.4.0: - resolution: {integrity: sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==} - peerDependencies: - vue: ^3.2.0 - - vue-starport@0.3.0: - resolution: {integrity: sha512-CfwYVxJDFqj7zoDw0TAMdNdpefuTdUH3rtupsadSa1je5Z7S/XwUCdxN0vVjBEEvWh33HmqjdK0IRQMWDlV7VQ==} - - vue@3.4.32: - resolution: {integrity: sha512-9mCGIAi/CAq7GtaLLLp2J92pEic+HArstG+pq6F+H7+/jB9a0Z7576n4Bh4k79/50L1cKMIhZC3MC0iGpl+1IA==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - web-worker@1.3.0: - resolution: {integrity: sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack-virtual-modules@0.4.6: - resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} - - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - windicss@3.5.6: - resolution: {integrity: sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==} - engines: {node: '>= 12'} - hasBin: true - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.15.0)': - dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.15.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - search-insights - - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.15.0)': - dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - search-insights: 2.15.0 - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': - dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - '@algolia/client-search': 4.24.0 - algoliasearch: 4.24.0 - - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': - dependencies: - '@algolia/client-search': 4.24.0 - algoliasearch: 4.24.0 - - '@algolia/cache-browser-local-storage@4.24.0': - dependencies: - '@algolia/cache-common': 4.24.0 - - '@algolia/cache-common@4.24.0': {} - - '@algolia/cache-in-memory@4.24.0': - dependencies: - '@algolia/cache-common': 4.24.0 - - '@algolia/client-account@4.24.0': - dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/client-analytics@4.24.0': - dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/client-common@4.24.0': - dependencies: - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/client-personalization@4.24.0': - dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/client-search@4.24.0': - dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/logger-common@4.24.0': {} - - '@algolia/logger-console@4.24.0': - dependencies: - '@algolia/logger-common': 4.24.0 - - '@algolia/recommend@4.24.0': - dependencies: - '@algolia/cache-browser-local-storage': 4.24.0 - '@algolia/cache-common': 4.24.0 - '@algolia/cache-in-memory': 4.24.0 - '@algolia/client-common': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/logger-common': 4.24.0 - '@algolia/logger-console': 4.24.0 - '@algolia/requester-browser-xhr': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/requester-node-http': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/requester-browser-xhr@4.24.0': - dependencies: - '@algolia/requester-common': 4.24.0 - - '@algolia/requester-common@4.24.0': {} - - '@algolia/requester-node-http@4.24.0': - dependencies: - '@algolia/requester-common': 4.24.0 - - '@algolia/transporter@4.24.0': - dependencies: - '@algolia/cache-common': 4.24.0 - '@algolia/logger-common': 4.24.0 - '@algolia/requester-common': 4.24.0 - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - optional: true - - '@antfu/install-pkg@0.1.1': - dependencies: - execa: 5.1.1 - find-up: 5.0.0 - - '@antfu/utils@0.5.2': {} - - '@antfu/utils@0.7.10': {} - - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 - optional: true - - '@babel/compat-data@7.24.9': - optional: true - - '@babel/core@7.24.9': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.10 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helpers': 7.24.8 - '@babel/parser': 7.24.8 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 - convert-source-map: 2.0.0 - debug: 4.3.5 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - optional: true - - '@babel/generator@7.24.10': - dependencies: - '@babel/types': 7.24.9 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - optional: true - - '@babel/helper-compilation-targets@7.24.8': - dependencies: - '@babel/compat-data': 7.24.9 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.2 - lru-cache: 5.1.1 - semver: 6.3.1 - optional: true - - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.9 - optional: true - - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 - optional: true - - '@babel/helper-hoist-variables@7.24.7': - dependencies: - '@babel/types': 7.24.9 - optional: true - - '@babel/helper-module-imports@7.24.7': - dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 - transitivePeerDependencies: - - supports-color - optional: true - - '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - transitivePeerDependencies: - - supports-color - optional: true - - '@babel/helper-simple-access@7.24.7': - dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 - transitivePeerDependencies: - - supports-color - optional: true - - '@babel/helper-split-export-declaration@7.24.7': - dependencies: - '@babel/types': 7.24.9 - optional: true - - '@babel/helper-string-parser@7.24.8': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/helper-validator-option@7.24.8': - optional: true - - '@babel/helpers@7.24.8': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 - optional: true - - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - optional: true - - '@babel/parser@7.24.8': - dependencies: - '@babel/types': 7.24.9 - - '@babel/standalone@7.24.10': - optional: true - - '@babel/template@7.24.7': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 - optional: true - - '@babel/traverse@7.24.8': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.10 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 - debug: 4.3.5 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@babel/types@7.24.9': - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - - '@braintree/sanitize-url@6.0.4': {} - - '@docsearch/css@3.6.1': {} - - '@docsearch/js@3.6.1(@algolia/client-search@4.24.0)(search-insights@2.15.0)': - dependencies: - '@docsearch/react': 3.6.1(@algolia/client-search@4.24.0)(search-insights@2.15.0) - preact: 10.22.1 - transitivePeerDependencies: - - '@algolia/client-search' - - '@types/react' - - react - - react-dom - - search-insights - - '@docsearch/react@3.6.1(@algolia/client-search@4.24.0)(search-insights@2.15.0)': - dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.15.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - '@docsearch/css': 3.6.1 - algoliasearch: 4.24.0 - optionalDependencies: - search-insights: 2.15.0 - transitivePeerDependencies: - - '@algolia/client-search' - - '@drauu/core@0.3.7': {} - - '@esbuild/linux-loong64@0.14.54': - optional: true - - '@fastify/busboy@2.1.1': {} - - '@iconify/json@2.2.229': - dependencies: - '@iconify/types': 2.0.0 - pathe: 1.1.2 - - '@iconify/types@1.1.0': {} - - '@iconify/types@2.0.0': {} - - '@iconify/utils@1.0.33': - dependencies: - '@antfu/install-pkg': 0.1.1 - '@antfu/utils': 0.5.2 - '@iconify/types': 1.1.0 - debug: 4.3.5 - kolorist: 1.8.0 - local-pkg: 0.4.3 - transitivePeerDependencies: - - supports-color - - '@iconify/utils@2.1.25': - dependencies: - '@antfu/install-pkg': 0.1.1 - '@antfu/utils': 0.7.10 - '@iconify/types': 2.0.0 - debug: 4.3.5 - kolorist: 1.8.0 - local-pkg: 0.5.0 - mlly: 1.7.1 - transitivePeerDependencies: - - supports-color - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - optional: true - - '@jridgewell/resolve-uri@3.1.2': - optional: true - - '@jridgewell/set-array@1.2.1': - optional: true - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - optional: true - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@nuxt/kit@3.12.4(rollup@2.77.3)': - dependencies: - '@nuxt/schema': 3.12.4(rollup@2.77.3) - c12: 1.11.1 - consola: 3.2.3 - defu: 6.1.4 - destr: 2.0.3 - globby: 14.0.2 - hash-sum: 2.0.0 - ignore: 5.3.1 - jiti: 1.21.6 - klona: 2.0.6 - knitwork: 1.1.0 - mlly: 1.7.1 - pathe: 1.1.2 - pkg-types: 1.1.3 - scule: 1.3.0 - semver: 7.6.3 - ufo: 1.5.4 - unctx: 2.3.1 - unimport: 3.9.0(rollup@2.77.3) - untyped: 1.4.2 - transitivePeerDependencies: - - magicast - - rollup - - supports-color - optional: true - - '@nuxt/schema@3.12.4(rollup@2.77.3)': - dependencies: - compatx: 0.1.8 - consola: 3.2.3 - defu: 6.1.4 - hookable: 5.5.3 - pathe: 1.1.2 - pkg-types: 1.1.3 - scule: 1.3.0 - std-env: 3.7.0 - ufo: 1.5.4 - uncrypto: 0.1.3 - unimport: 3.9.0(rollup@2.77.3) - untyped: 1.4.2 - transitivePeerDependencies: - - rollup - - supports-color - optional: true - - '@polka/url@1.0.0-next.25': {} - - '@rollup/pluginutils@4.2.1': - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - - '@rollup/pluginutils@5.1.0(rollup@2.77.3)': - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 2.77.3 - optional: true - - '@sindresorhus/merge-streams@2.3.0': - optional: true - - '@slidev/client@0.34.3(rollup@2.77.3)(typescript@4.9.5)(vite@2.9.18)': - dependencies: - '@antfu/utils': 0.5.2 - '@slidev/parser': 0.34.3 - '@slidev/types': 0.34.3 - '@unocss/reset': 0.42.1 - '@vueuse/core': 8.9.4(vue@3.4.32(typescript@4.9.5)) - '@vueuse/head': 0.7.13(vue@3.4.32(typescript@4.9.5)) - '@vueuse/motion': 2.2.3(rollup@2.77.3)(vue@3.4.32(typescript@4.9.5)) - codemirror: 5.65.16 - defu: 6.1.4 - drauu: 0.3.7 - file-saver: 2.0.5 - js-base64: 3.7.7 - js-yaml: 4.1.0 - katex: 0.16.11 - mermaid: 9.4.3 - monaco-editor: 0.33.0 - nanoid: 4.0.2 - prettier: 2.8.8 - recordrtc: 5.6.2 - resolve: 1.22.8 - unocss: 0.42.1(vite@2.9.18) - vite-plugin-windicss: 1.9.3(vite@2.9.18) - vue: 3.4.32(typescript@4.9.5) - vue-router: 4.4.0(vue@3.4.32(typescript@4.9.5)) - vue-starport: 0.3.0(typescript@4.9.5) - windicss: 3.5.6 - transitivePeerDependencies: - - '@unocss/webpack' - - '@vue/composition-api' - - magicast - - rollup - - supports-color - - typescript - - vite - - '@slidev/parser@0.34.3': - dependencies: - '@slidev/types': 0.34.3 - js-yaml: 4.1.0 - - '@slidev/theme-default@0.21.2': - dependencies: - '@slidev/types': 0.22.7 - codemirror-theme-vars: 0.1.2 - prism-theme-vars: 0.2.5 - theme-vitesse: 0.1.14 - - '@slidev/types@0.22.7': {} - - '@slidev/types@0.34.3': {} - - '@types/estree@1.0.5': - optional: true - - '@types/fs-extra@9.0.13': - dependencies: - '@types/node': 18.19.41 - - '@types/node@18.19.41': - dependencies: - undici-types: 5.26.5 - - '@types/web-bluetooth@0.0.14': {} - - '@types/web-bluetooth@0.0.20': {} - - '@unocss/cli@0.42.1': - dependencies: - '@unocss/config': 0.42.1 - '@unocss/core': 0.42.1 - '@unocss/preset-uno': 0.42.1 - cac: 6.7.14 - chokidar: 3.6.0 - colorette: 2.0.20 - consola: 2.15.3 - fast-glob: 3.3.2 - pathe: 0.3.9 - perfect-debounce: 0.1.3 - - '@unocss/config@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - unconfig: 0.3.13 - - '@unocss/core@0.42.1': {} - - '@unocss/inspector@0.42.1': - dependencies: - gzip-size: 6.0.0 - sirv: 2.0.4 - - '@unocss/preset-attributify@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - - '@unocss/preset-icons@0.42.1': - dependencies: - '@iconify/utils': 1.0.33 - '@unocss/core': 0.42.1 - ohmyfetch: 0.4.21 - transitivePeerDependencies: - - supports-color - - '@unocss/preset-mini@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - - '@unocss/preset-tagify@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - - '@unocss/preset-typography@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - - '@unocss/preset-uno@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - '@unocss/preset-mini': 0.42.1 - '@unocss/preset-wind': 0.42.1 - - '@unocss/preset-web-fonts@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - ohmyfetch: 0.4.21 - - '@unocss/preset-wind@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - '@unocss/preset-mini': 0.42.1 - - '@unocss/reset@0.42.1': {} - - '@unocss/scope@0.42.1': {} - - '@unocss/transformer-compile-class@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - - '@unocss/transformer-directives@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - css-tree: 2.3.1 - - '@unocss/transformer-variant-group@0.42.1': - dependencies: - '@unocss/core': 0.42.1 - - '@unocss/vite@0.42.1(vite@2.9.18)': - dependencies: - '@rollup/pluginutils': 4.2.1 - '@unocss/config': 0.42.1 - '@unocss/core': 0.42.1 - '@unocss/inspector': 0.42.1 - '@unocss/scope': 0.42.1 - '@unocss/transformer-directives': 0.42.1 - magic-string: 0.26.7 - vite: 2.9.18 - - '@vitejs/plugin-vue@2.3.4(vite@2.9.18)(vue@3.4.32(typescript@4.9.5))': - dependencies: - vite: 2.9.18 - vue: 3.4.32(typescript@4.9.5) - - '@vue/compiler-core@3.4.32': - dependencies: - '@babel/parser': 7.24.8 - '@vue/shared': 3.4.32 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - - '@vue/compiler-dom@3.4.32': - dependencies: - '@vue/compiler-core': 3.4.32 - '@vue/shared': 3.4.32 - - '@vue/compiler-sfc@3.4.32': - dependencies: - '@babel/parser': 7.24.8 - '@vue/compiler-core': 3.4.32 - '@vue/compiler-dom': 3.4.32 - '@vue/compiler-ssr': 3.4.32 - '@vue/shared': 3.4.32 - estree-walker: 2.0.2 - magic-string: 0.30.10 - postcss: 8.4.39 - source-map-js: 1.2.0 - - '@vue/compiler-ssr@3.4.32': - dependencies: - '@vue/compiler-dom': 3.4.32 - '@vue/shared': 3.4.32 - - '@vue/devtools-api@6.6.3': {} - - '@vue/reactivity@3.4.32': - dependencies: - '@vue/shared': 3.4.32 - - '@vue/runtime-core@3.4.32': - dependencies: - '@vue/reactivity': 3.4.32 - '@vue/shared': 3.4.32 - - '@vue/runtime-dom@3.4.32': - dependencies: - '@vue/reactivity': 3.4.32 - '@vue/runtime-core': 3.4.32 - '@vue/shared': 3.4.32 - csstype: 3.1.3 - - '@vue/server-renderer@3.4.32(vue@3.4.32(typescript@4.9.5))': - dependencies: - '@vue/compiler-ssr': 3.4.32 - '@vue/shared': 3.4.32 - vue: 3.4.32(typescript@4.9.5) - - '@vue/shared@3.4.32': {} - - '@vueuse/core@10.11.0(vue@3.4.32(typescript@4.9.5))': - dependencies: - '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.11.0 - '@vueuse/shared': 10.11.0(vue@3.4.32(typescript@4.9.5)) - vue-demi: 0.9.1(vue@3.4.32(typescript@4.9.5)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - '@vueuse/core@8.9.4(vue@3.4.32(typescript@4.9.5))': - dependencies: - '@types/web-bluetooth': 0.0.14 - '@vueuse/metadata': 8.9.4 - '@vueuse/shared': 8.9.4(vue@3.4.32(typescript@4.9.5)) - vue-demi: 0.9.1(vue@3.4.32(typescript@4.9.5)) - optionalDependencies: - vue: 3.4.32(typescript@4.9.5) - - '@vueuse/head@0.7.13(vue@3.4.32(typescript@4.9.5))': - dependencies: - '@zhead/schema-vue': 0.7.4(vue@3.4.32(typescript@4.9.5)) - vue: 3.4.32(typescript@4.9.5) - transitivePeerDependencies: - - '@vue/composition-api' - - '@vueuse/metadata@10.11.0': {} - - '@vueuse/metadata@8.9.4': {} - - '@vueuse/motion@2.2.3(rollup@2.77.3)(vue@3.4.32(typescript@4.9.5))': - dependencies: - '@vueuse/core': 10.11.0(vue@3.4.32(typescript@4.9.5)) - '@vueuse/shared': 10.11.0(vue@3.4.32(typescript@4.9.5)) - csstype: 3.1.3 - framesync: 6.1.2 - popmotion: 11.0.5 - style-value-types: 5.1.2 - vue: 3.4.32(typescript@4.9.5) - optionalDependencies: - '@nuxt/kit': 3.12.4(rollup@2.77.3) - transitivePeerDependencies: - - '@vue/composition-api' - - magicast - - rollup - - supports-color - - '@vueuse/shared@10.11.0(vue@3.4.32(typescript@4.9.5))': - dependencies: - vue-demi: 0.9.1(vue@3.4.32(typescript@4.9.5)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - '@vueuse/shared@8.9.4(vue@3.4.32(typescript@4.9.5))': - dependencies: - vue-demi: 0.9.1(vue@3.4.32(typescript@4.9.5)) - optionalDependencies: - vue: 3.4.32(typescript@4.9.5) - - '@vueuse/shared@9.13.0(vue@3.4.32(typescript@4.9.5))': - dependencies: - vue-demi: 0.9.1(vue@3.4.32(typescript@4.9.5)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - '@windicss/config@1.9.3': - dependencies: - debug: 4.3.5 - jiti: 1.21.6 - windicss: 3.5.6 - transitivePeerDependencies: - - supports-color - - '@windicss/plugin-utils@1.9.3': - dependencies: - '@antfu/utils': 0.7.10 - '@windicss/config': 1.9.3 - debug: 4.3.5 - fast-glob: 3.3.2 - magic-string: 0.30.10 - micromatch: 4.0.7 - windicss: 3.5.6 - transitivePeerDependencies: - - supports-color - - '@zhead/schema-vue@0.7.4(vue@3.4.32(typescript@4.9.5))': - dependencies: - '@vueuse/shared': 9.13.0(vue@3.4.32(typescript@4.9.5)) - '@zhead/schema': 0.7.4 - vue: 3.4.32(typescript@4.9.5) - transitivePeerDependencies: - - '@vue/composition-api' - - '@zhead/schema@0.7.4': {} - - acorn@8.12.1: {} - - algoliasearch@4.24.0: - dependencies: - '@algolia/cache-browser-local-storage': 4.24.0 - '@algolia/cache-common': 4.24.0 - '@algolia/cache-in-memory': 4.24.0 - '@algolia/client-account': 4.24.0 - '@algolia/client-analytics': 4.24.0 - '@algolia/client-common': 4.24.0 - '@algolia/client-personalization': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/logger-common': 4.24.0 - '@algolia/logger-console': 4.24.0 - '@algolia/recommend': 4.24.0 - '@algolia/requester-browser-xhr': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/requester-node-http': 4.24.0 - '@algolia/transporter': 4.24.0 - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - optional: true - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - argparse@2.0.1: {} - - balanced-match@1.0.2: {} - - binary-extensions@2.3.0: {} - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.23.2: - dependencies: - caniuse-lite: 1.0.30001642 - electron-to-chromium: 1.4.830 - node-releases: 2.0.17 - update-browserslist-db: 1.1.0(browserslist@4.23.2) - optional: true - - c12@1.11.1: - dependencies: - chokidar: 3.6.0 - confbox: 0.1.7 - defu: 6.1.4 - dotenv: 16.4.5 - giget: 1.2.3 - jiti: 1.21.6 - mlly: 1.7.1 - ohash: 1.1.3 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.1.3 - rc9: 2.1.2 - optional: true - - cac@6.7.14: {} - - caniuse-lite@1.0.30001642: - optional: true - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - optional: true - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chownr@2.0.0: - optional: true - - citty@0.1.6: - dependencies: - consola: 3.2.3 - optional: true - - codemirror-theme-vars@0.1.2: {} - - codemirror@5.65.16: {} - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - optional: true - - color-name@1.1.3: - optional: true - - colorette@2.0.20: {} - - commander@7.2.0: {} - - commander@8.3.0: {} - - compatx@0.1.8: - optional: true - - confbox@0.1.7: {} - - consola@2.15.3: {} - - consola@3.2.3: - optional: true - - convert-source-map@2.0.0: - optional: true - - cose-base@1.0.3: - dependencies: - layout-base: 1.0.2 - - cose-base@2.2.0: - dependencies: - layout-base: 2.0.1 - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.0 - - csstype@3.1.3: {} - - cytoscape-cose-bilkent@4.1.0(cytoscape@3.30.1): - dependencies: - cose-base: 1.0.3 - cytoscape: 3.30.1 - - cytoscape-fcose@2.2.0(cytoscape@3.30.1): - dependencies: - cose-base: 2.2.0 - cytoscape: 3.30.1 - - cytoscape@3.30.1: {} - - d3-array@3.2.4: - dependencies: - internmap: 2.0.3 - - d3-axis@3.0.0: {} - - d3-brush@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - d3-chord@3.0.1: - dependencies: - d3-path: 3.1.0 - - d3-color@3.1.0: {} - - d3-contour@4.0.2: - dependencies: - d3-array: 3.2.4 - - d3-delaunay@6.0.4: - dependencies: - delaunator: 5.0.1 - - d3-dispatch@3.0.1: {} - - d3-drag@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-selection: 3.0.0 - - d3-dsv@3.0.1: - dependencies: - commander: 7.2.0 - iconv-lite: 0.6.3 - rw: 1.3.3 - - d3-ease@3.0.1: {} - - d3-fetch@3.0.1: - dependencies: - d3-dsv: 3.0.1 - - d3-force@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-quadtree: 3.0.1 - d3-timer: 3.0.1 - - d3-format@3.1.0: {} - - d3-geo@3.1.1: - dependencies: - d3-array: 3.2.4 - - d3-hierarchy@3.1.2: {} - - d3-interpolate@3.0.1: - dependencies: - d3-color: 3.1.0 - - d3-path@3.1.0: {} - - d3-polygon@3.0.1: {} - - d3-quadtree@3.0.1: {} - - d3-random@3.0.1: {} - - d3-scale-chromatic@3.1.0: - dependencies: - d3-color: 3.1.0 - d3-interpolate: 3.0.1 - - d3-scale@4.0.2: - dependencies: - d3-array: 3.2.4 - d3-format: 3.1.0 - d3-interpolate: 3.0.1 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - - d3-selection@3.0.0: {} - - d3-shape@3.2.0: - dependencies: - d3-path: 3.1.0 - - d3-time-format@4.1.0: - dependencies: - d3-time: 3.1.0 - - d3-time@3.1.0: - dependencies: - d3-array: 3.2.4 - - d3-timer@3.0.1: {} - - d3-transition@3.0.1(d3-selection@3.0.0): - dependencies: - d3-color: 3.1.0 - d3-dispatch: 3.0.1 - d3-ease: 3.0.1 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-timer: 3.0.1 - - d3-zoom@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - d3@7.9.0: - dependencies: - d3-array: 3.2.4 - d3-axis: 3.0.0 - d3-brush: 3.0.0 - d3-chord: 3.0.1 - d3-color: 3.1.0 - d3-contour: 4.0.2 - d3-delaunay: 6.0.4 - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-dsv: 3.0.1 - d3-ease: 3.0.1 - d3-fetch: 3.0.1 - d3-force: 3.0.0 - d3-format: 3.1.0 - d3-geo: 3.1.1 - d3-hierarchy: 3.1.2 - d3-interpolate: 3.0.1 - d3-path: 3.1.0 - d3-polygon: 3.0.1 - d3-quadtree: 3.0.1 - d3-random: 3.0.1 - d3-scale: 4.0.2 - d3-scale-chromatic: 3.1.0 - d3-selection: 3.0.0 - d3-shape: 3.2.0 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - d3-timer: 3.0.1 - d3-transition: 3.0.1(d3-selection@3.0.0) - d3-zoom: 3.0.0 - - dagre-d3-es@7.0.9: - dependencies: - d3: 7.9.0 - lodash-es: 4.17.21 - - dayjs@1.11.12: {} - - debug@4.3.5: - dependencies: - ms: 2.1.2 - - defu@6.1.4: {} - - delaunator@5.0.1: - dependencies: - robust-predicates: 3.0.2 - - destr@1.2.2: {} - - destr@2.0.3: - optional: true - - dompurify@2.4.3: {} - - dotenv@16.4.5: - optional: true - - drauu@0.3.7: - dependencies: - '@drauu/core': 0.3.7 - - duplexer@0.1.2: {} - - electron-to-chromium@1.4.830: - optional: true - - elkjs@0.8.2: {} - - entities@3.0.1: {} - - entities@4.5.0: {} - - esbuild-android-64@0.14.54: - optional: true - - esbuild-android-arm64@0.14.54: - optional: true - - esbuild-darwin-64@0.14.54: - optional: true - - esbuild-darwin-arm64@0.14.54: - optional: true - - esbuild-freebsd-64@0.14.54: - optional: true - - esbuild-freebsd-arm64@0.14.54: - optional: true - - esbuild-linux-32@0.14.54: - optional: true - - esbuild-linux-64@0.14.54: - optional: true - - esbuild-linux-arm64@0.14.54: - optional: true - - esbuild-linux-arm@0.14.54: - optional: true - - esbuild-linux-mips64le@0.14.54: - optional: true - - esbuild-linux-ppc64le@0.14.54: - optional: true - - esbuild-linux-riscv64@0.14.54: - optional: true - - esbuild-linux-s390x@0.14.54: - optional: true - - esbuild-netbsd-64@0.14.54: - optional: true - - esbuild-openbsd-64@0.14.54: - optional: true - - esbuild-sunos-64@0.14.54: - optional: true - - esbuild-windows-32@0.14.54: - optional: true - - esbuild-windows-64@0.14.54: - optional: true - - esbuild-windows-arm64@0.14.54: - optional: true - - esbuild@0.14.54: - optionalDependencies: - '@esbuild/linux-loong64': 0.14.54 - esbuild-android-64: 0.14.54 - esbuild-android-arm64: 0.14.54 - esbuild-darwin-64: 0.14.54 - esbuild-darwin-arm64: 0.14.54 - esbuild-freebsd-64: 0.14.54 - esbuild-freebsd-arm64: 0.14.54 - esbuild-linux-32: 0.14.54 - esbuild-linux-64: 0.14.54 - esbuild-linux-arm: 0.14.54 - esbuild-linux-arm64: 0.14.54 - esbuild-linux-mips64le: 0.14.54 - esbuild-linux-ppc64le: 0.14.54 - esbuild-linux-riscv64: 0.14.54 - esbuild-linux-s390x: 0.14.54 - esbuild-netbsd-64: 0.14.54 - esbuild-openbsd-64: 0.14.54 - esbuild-sunos-64: 0.14.54 - esbuild-windows-32: 0.14.54 - esbuild-windows-64: 0.14.54 - esbuild-windows-arm64: 0.14.54 - - escalade@3.1.2: - optional: true - - escape-string-regexp@1.0.5: - optional: true - - escape-string-regexp@5.0.0: - optional: true - - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.5 - optional: true - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - execa@8.0.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - optional: true - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.7 - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - file-saver@2.0.5: {} - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - framesync@6.1.2: - dependencies: - tslib: 2.4.0 - - fs-extra@10.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - optional: true - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - gensync@1.0.0-beta.2: - optional: true - - get-stream@6.0.1: {} - - get-stream@8.0.1: - optional: true - - giget@1.2.3: - dependencies: - citty: 0.1.6 - consola: 3.2.3 - defu: 6.1.4 - node-fetch-native: 1.6.4 - nypm: 0.3.9 - ohash: 1.1.3 - pathe: 1.1.2 - tar: 6.2.1 - optional: true - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - globals@11.12.0: - optional: true - - globby@14.0.2: - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.2 - ignore: 5.3.1 - path-type: 5.0.0 - slash: 5.1.0 - unicorn-magic: 0.1.0 - optional: true - - graceful-fs@4.2.11: {} - - gzip-size@6.0.0: - dependencies: - duplexer: 0.1.2 - - has-flag@3.0.0: - optional: true - - hash-sum@2.0.0: - optional: true - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hey-listen@1.0.8: {} - - hookable@5.5.3: - optional: true - - human-signals@2.1.0: {} - - human-signals@5.0.0: - optional: true - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - - ignore@5.3.1: - optional: true - - internmap@2.0.3: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-core-module@2.15.0: - dependencies: - hasown: 2.0.2 - - is-extglob@2.1.1: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - is-stream@2.0.1: {} - - is-stream@3.0.0: - optional: true - - isexe@2.0.0: {} - - jiti@1.21.6: {} - - js-base64@3.7.7: {} - - js-tokens@4.0.0: - optional: true - - js-tokens@9.0.0: - optional: true - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsesc@2.5.2: - optional: true - - json5@2.2.3: - optional: true - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - katex@0.16.11: - dependencies: - commander: 8.3.0 - - khroma@2.1.0: {} - - klona@2.0.6: - optional: true - - knitwork@1.1.0: - optional: true - - kolorist@1.8.0: {} - - layout-base@1.0.2: {} - - layout-base@2.0.1: {} - - linkify-it@4.0.1: - dependencies: - uc.micro: 1.0.6 - - local-pkg@0.4.3: {} - - local-pkg@0.5.0: - dependencies: - mlly: 1.7.1 - pkg-types: 1.1.3 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash-es@4.17.21: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - optional: true - - magic-string@0.26.7: - dependencies: - sourcemap-codec: 1.4.8 - - magic-string@0.30.10: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - markdown-it@13.0.2: - dependencies: - argparse: 2.0.1 - entities: 3.0.1 - linkify-it: 4.0.1 - mdurl: 1.0.1 - uc.micro: 1.0.6 - - mdn-data@2.0.30: {} - - mdurl@1.0.1: {} - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - mermaid@9.4.3: - dependencies: - '@braintree/sanitize-url': 6.0.4 - cytoscape: 3.30.1 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.1) - cytoscape-fcose: 2.2.0(cytoscape@3.30.1) - d3: 7.9.0 - dagre-d3-es: 7.0.9 - dayjs: 1.11.12 - dompurify: 2.4.3 - elkjs: 0.8.2 - khroma: 2.1.0 - lodash-es: 4.17.21 - non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.3.2 - ts-dedent: 2.2.0 - uuid: 9.0.1 - web-worker: 1.3.0 - - micromatch@4.0.7: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mimic-fn@2.1.0: {} - - mimic-fn@4.0.0: - optional: true - - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.1 - - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - optional: true - - minipass@5.0.0: - optional: true - - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - optional: true - - mkdirp@1.0.4: - optional: true - - mlly@1.7.1: - dependencies: - acorn: 8.12.1 - pathe: 1.1.2 - pkg-types: 1.1.3 - ufo: 1.5.4 - - monaco-editor@0.33.0: {} - - mri@1.2.0: - optional: true - - mrmime@2.0.0: {} - - ms@2.1.2: {} - - nanoid@3.3.7: {} - - nanoid@4.0.2: {} - - node-fetch-native@0.1.8: {} - - node-fetch-native@1.6.4: - optional: true - - node-releases@2.0.17: - optional: true - - non-layered-tidy-tree-layout@2.0.2: {} - - normalize-path@3.0.0: {} - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - optional: true - - nypm@0.3.9: - dependencies: - citty: 0.1.6 - consola: 3.2.3 - execa: 8.0.1 - pathe: 1.1.2 - pkg-types: 1.1.3 - ufo: 1.5.4 - optional: true - - ohash@1.1.3: - optional: true - - ohmyfetch@0.4.21: - dependencies: - destr: 1.2.2 - node-fetch-native: 0.1.8 - ufo: 0.8.6 - undici: 5.28.4 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - optional: true - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - path-exists@4.0.0: {} - - path-key@3.1.1: {} - - path-key@4.0.0: - optional: true - - path-parse@1.0.7: {} - - path-type@5.0.0: - optional: true - - pathe@0.3.9: {} - - pathe@1.1.2: {} - - perfect-debounce@0.1.3: {} - - perfect-debounce@1.0.0: - optional: true - - picocolors@1.0.1: {} - - picomatch@2.3.1: {} - - pkg-types@1.1.3: - dependencies: - confbox: 0.1.7 - mlly: 1.7.1 - pathe: 1.1.2 - - popmotion@11.0.5: - dependencies: - framesync: 6.1.2 - hey-listen: 1.0.8 - style-value-types: 5.1.2 - tslib: 2.4.0 - - postcss@8.4.39: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - preact@10.22.1: {} - - prettier@2.8.8: {} - - prism-theme-vars@0.2.5: {} - - prismjs@1.29.0: {} - - queue-microtask@1.2.3: {} - - rc9@2.1.2: - dependencies: - defu: 6.1.4 - destr: 2.0.3 - optional: true - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - recordrtc@5.6.2: {} - - resolve@1.22.8: - dependencies: - is-core-module: 2.15.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - reusify@1.0.4: {} - - robust-predicates@3.0.2: {} - - rollup@2.77.3: - optionalDependencies: - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - rw@1.3.3: {} - - safer-buffer@2.1.2: {} - - scule@1.3.0: - optional: true - - search-insights@2.15.0: {} - - semver@6.3.1: - optional: true - - semver@7.6.3: - optional: true - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: - optional: true - - sirv@2.0.4: - dependencies: - '@polka/url': 1.0.0-next.25 - mrmime: 2.0.0 - totalist: 3.0.1 - - slash@5.1.0: - optional: true - - source-map-js@1.2.0: {} - - sourcemap-codec@1.4.8: {} - - std-env@3.7.0: - optional: true - - strip-final-newline@2.0.0: {} - - strip-final-newline@3.0.0: - optional: true - - strip-literal@2.1.0: - dependencies: - js-tokens: 9.0.0 - optional: true - - style-value-types@5.1.2: - dependencies: - hey-listen: 1.0.8 - tslib: 2.4.0 - - stylis@4.3.2: {} - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - optional: true - - supports-preserve-symlinks-flag@1.0.0: {} - - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - optional: true - - theme-vitesse@0.1.14: {} - - to-fast-properties@2.0.0: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - totalist@3.0.1: {} - - ts-dedent@2.2.0: {} - - tslib@2.4.0: {} - - typeit@7.0.4: {} - - typescript@4.9.5: {} - - uc.micro@1.0.6: {} - - ufo@0.8.6: {} - - ufo@1.5.4: {} - - unconfig@0.3.13: - dependencies: - '@antfu/utils': 0.7.10 - defu: 6.1.4 - jiti: 1.21.6 - - uncrypto@0.1.3: - optional: true - - unctx@2.3.1: - dependencies: - acorn: 8.12.1 - estree-walker: 3.0.3 - magic-string: 0.30.10 - unplugin: 1.11.0 - optional: true - - undici-types@5.26.5: {} - - undici@5.28.4: - dependencies: - '@fastify/busboy': 2.1.1 - - unicorn-magic@0.1.0: - optional: true - - unimport@3.9.0(rollup@2.77.3): - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@2.77.3) - acorn: 8.12.1 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - fast-glob: 3.3.2 - local-pkg: 0.5.0 - magic-string: 0.30.10 - mlly: 1.7.1 - pathe: 1.1.2 - pkg-types: 1.1.3 - scule: 1.3.0 - strip-literal: 2.1.0 - unplugin: 1.11.0 - transitivePeerDependencies: - - rollup - optional: true - - universalify@2.0.1: {} - - unocss@0.42.1(vite@2.9.18): - dependencies: - '@unocss/cli': 0.42.1 - '@unocss/core': 0.42.1 - '@unocss/preset-attributify': 0.42.1 - '@unocss/preset-icons': 0.42.1 - '@unocss/preset-mini': 0.42.1 - '@unocss/preset-tagify': 0.42.1 - '@unocss/preset-typography': 0.42.1 - '@unocss/preset-uno': 0.42.1 - '@unocss/preset-web-fonts': 0.42.1 - '@unocss/preset-wind': 0.42.1 - '@unocss/reset': 0.42.1 - '@unocss/transformer-compile-class': 0.42.1 - '@unocss/transformer-directives': 0.42.1 - '@unocss/transformer-variant-group': 0.42.1 - '@unocss/vite': 0.42.1(vite@2.9.18) - transitivePeerDependencies: - - supports-color - - vite - - unplugin-icons@0.14.15(@vue/compiler-sfc@3.4.32): - dependencies: - '@antfu/install-pkg': 0.1.1 - '@antfu/utils': 0.7.10 - '@iconify/utils': 2.1.25 - debug: 4.3.5 - kolorist: 1.8.0 - local-pkg: 0.4.3 - unplugin: 1.11.0 - optionalDependencies: - '@vue/compiler-sfc': 3.4.32 - transitivePeerDependencies: - - supports-color - - unplugin-vue-components@0.21.2(@babel/parser@7.24.8)(esbuild@0.14.54)(rollup@2.77.3)(vite@2.9.18)(vue@3.4.32(typescript@4.9.5)): - dependencies: - '@antfu/utils': 0.5.2 - '@rollup/pluginutils': 4.2.1 - chokidar: 3.6.0 - debug: 4.3.5 - fast-glob: 3.3.2 - local-pkg: 0.4.3 - magic-string: 0.26.7 - minimatch: 5.1.6 - resolve: 1.22.8 - unplugin: 0.7.2(esbuild@0.14.54)(rollup@2.77.3)(vite@2.9.18) - vue: 3.4.32(typescript@4.9.5) - optionalDependencies: - '@babel/parser': 7.24.8 - transitivePeerDependencies: - - esbuild - - rollup - - supports-color - - vite - - webpack - - unplugin@0.7.2(esbuild@0.14.54)(rollup@2.77.3)(vite@2.9.18): - dependencies: - acorn: 8.12.1 - chokidar: 3.6.0 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.4.6 - optionalDependencies: - esbuild: 0.14.54 - rollup: 2.77.3 - vite: 2.9.18 - - unplugin@1.11.0: - dependencies: - acorn: 8.12.1 - chokidar: 3.6.0 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.6.2 - - untyped@1.4.2: - dependencies: - '@babel/core': 7.24.9 - '@babel/standalone': 7.24.10 - '@babel/types': 7.24.9 - defu: 6.1.4 - jiti: 1.21.6 - mri: 1.2.0 - scule: 1.3.0 - transitivePeerDependencies: - - supports-color - optional: true - - update-browserslist-db@1.1.0(browserslist@4.23.2): - dependencies: - browserslist: 4.23.2 - escalade: 3.1.2 - picocolors: 1.0.1 - optional: true - - uuid@9.0.1: {} - - vite-plugin-inspect@0.5.1(vite@2.9.18): - dependencies: - '@rollup/pluginutils': 4.2.1 - debug: 4.3.5 - kolorist: 1.8.0 - sirv: 2.0.4 - ufo: 0.8.6 - vite: 2.9.18 - transitivePeerDependencies: - - supports-color - - vite-plugin-windicss@1.9.3(vite@2.9.18): - dependencies: - '@windicss/plugin-utils': 1.9.3 - debug: 4.3.5 - kolorist: 1.8.0 - vite: 2.9.18 - windicss: 3.5.6 - transitivePeerDependencies: - - supports-color - - vite@2.9.18: - dependencies: - esbuild: 0.14.54 - postcss: 8.4.39 - resolve: 1.22.8 - rollup: 2.77.3 - optionalDependencies: - fsevents: 2.3.3 - - vitepress@0.22.4(@algolia/client-search@4.24.0)(search-insights@2.15.0)(typescript@4.9.5): - dependencies: - '@docsearch/css': 3.6.1 - '@docsearch/js': 3.6.1(@algolia/client-search@4.24.0)(search-insights@2.15.0) - '@vitejs/plugin-vue': 2.3.4(vite@2.9.18)(vue@3.4.32(typescript@4.9.5)) - prismjs: 1.29.0 - vite: 2.9.18 - vue: 3.4.32(typescript@4.9.5) - transitivePeerDependencies: - - '@algolia/client-search' - - '@types/react' - - less - - react - - react-dom - - sass - - search-insights - - stylus - - typescript - - vue-demi@0.9.1(vue@3.4.32(typescript@4.9.5)): - dependencies: - vue: 3.4.32(typescript@4.9.5) - - vue-router@4.4.0(vue@3.4.32(typescript@4.9.5)): - dependencies: - '@vue/devtools-api': 6.6.3 - vue: 3.4.32(typescript@4.9.5) - - vue-starport@0.3.0(typescript@4.9.5): - dependencies: - '@vueuse/core': 8.9.4(vue@3.4.32(typescript@4.9.5)) - vue: 3.4.32(typescript@4.9.5) - transitivePeerDependencies: - - '@vue/composition-api' - - typescript - - vue@3.4.32(typescript@4.9.5): - dependencies: - '@vue/compiler-dom': 3.4.32 - '@vue/compiler-sfc': 3.4.32 - '@vue/runtime-dom': 3.4.32 - '@vue/server-renderer': 3.4.32(vue@3.4.32(typescript@4.9.5)) - '@vue/shared': 3.4.32 - optionalDependencies: - typescript: 4.9.5 - - web-worker@1.3.0: {} - - webpack-sources@3.2.3: {} - - webpack-virtual-modules@0.4.6: {} - - webpack-virtual-modules@0.6.2: {} - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - windicss@3.5.6: {} - - yallist@3.1.1: - optional: true - - yallist@4.0.0: - optional: true - - yocto-queue@0.1.0: {} diff --git a/showcases.md b/showcases.md deleted file mode 100755 index 0ba8941..0000000 --- a/showcases.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -sidebar: false ---- - -# Showcases - -Talks / Presentations using Slidev. - - - diff --git a/themes/gallery.md b/themes/gallery.md deleted file mode 100755 index d6c8dbb..0000000 --- a/themes/gallery.md +++ /dev/null @@ -1,24 +0,0 @@ -# Galerie de thèmes - -Parcourez les thèmes géniaux disponibles pour Slidev ici. - -En savoir plus sur [comment utiliser un thème](/themes/use), ou [comment écrire le vôtre](/themes/write-a-theme) et partagez avec la communauté ! - -## Thèmes officiels - - - - - -## Thèmes de la communauté - -Voici les thèmes sélectionnés par la communauté. - - - - - - -## Plus de thèmes - -Retrouvez tous les [thèmes disponibles sur NPM](https://www.npmjs.com/search?q=keywords%3Aslidev-theme). diff --git a/themes/use.md b/themes/use.md deleted file mode 100755 index 4913db5..0000000 --- a/themes/use.md +++ /dev/null @@ -1,57 +0,0 @@ -# Utiliser le thème - -Changer le thème dans Slidev est étonnamment facile. Tout ce que vous avez à faire est d'ajouter le champ `theme:` dans votre frontmatter. - -```yaml ---- -theme: seriph ---- -``` - -Vous pouvez démarrer le serveur, ce qui vous demandera d'installer le thème automatiquement - -
    -
    -? The theme "@slidev/theme-seriph" was not found in your project, do you want to install it now? › (Y/n)
    -
    -
    - -ou installez le thème manuellement via - -```bash -$ npm install @slidev/theme-seriph -``` - -Et c'est tout, profitez du nouveau thème! Pour plus de détails sur l'utilisation, vous pouvez vous référer au fichier README du thème. - -Envie de partager votre thème? Découvrez [comment écrire un thème](/themes/write-a-theme). - -## Ejecter le thème - -Si vous souhaitez obtenir le contrôle total du thème actuel, vous pouvez **l'éjecter** sur votre système de fichiers local et le modifier à votre guise. En exécutant la commande suivante - -```bash -$ slidev theme eject -``` - -Il éjectera le thème que vous utilisez actuellement dans `./theme`, et changera votre frontmatter en - -```yaml ---- -theme: ./theme ---- -``` - -Cela peut également être utile si vous souhaitez créer un thème basé sur un thème existant. Si vous le faites, n'oubliez pas de mentionner le thème d'origine et l'auteur :) - -## Thème local - -Comme vous l'avez probablement découvert dans la section précédente, vous pouvez avoir un thème local pour votre projet. En ayant un **chemin relatif** dans votre champ de thème. - -```yaml ---- -theme: ./path/to/theme ---- -``` - -Reportez-vous à [comment écrire un thème](/themes/write-a-theme) pour plus de détails. diff --git a/themes/write-a-theme.md b/themes/write-a-theme.md deleted file mode 100755 index a4cba66..0000000 --- a/themes/write-a-theme.md +++ /dev/null @@ -1,149 +0,0 @@ -# Ecrire un thème - -Pour commencer, nous vous recommandons d'utiliser notre générateur pour créer votre premier thème - -```bash -$ npm init slidev-theme -``` - -Ensuite, vous pouvez le modifier et jouer avec. Vous pouvez également vous référer aux [thèmes officiels](/themes/gallery) comme exemples. - -## Aptitude - -Un thème peut contribuer aux points suivants : - -- Styles globaux -- Fournir des configurations par défaut (police, schéma de couleurs, surligneurs, etc.) -- Fournir des mises en page personnalisées ou remplacer celle existante -- Fournir des composants personnalisés ou remplacer l'existant -- Étendre les configurations de WindiCSS -- Configurer des outils comme Monaco et Prism - -## Conventions - -Les thèmes sont publiés dans le registre npm et doivent respecter les conventions ci-dessous : - -- Le nom du package doit commencer par `slidev-theme-`, par exemple : `slidev-theme-awesome` -- Ajoutez `slidev-theme` et `slidev` dans le champ `keywords` de votre `package.json` - -## Installer - -Pour configurer le terrain de jeu de test pour votre thème, vous pouvez créer `example.md` avec le frontmatter suivant, pour dire à Slidev que vous utilisez le répertoire actuel comme thème. - -```md ---- -theme: ./ ---- -``` - -En option, vous pouvez également ajouter des scripts à votre `package.json` - -```json -// package.json -{ - "scripts": { - "dev": "slidev example.md", - "build": "slidev build example.md", - "export": "slidev export example.md", - "screenshot": "slidev export example.md --format png" - } -} -``` - -Pour publier votre thème, lancez simplement `npm publish` et vous êtes prêt à partir. Il n'y a pas de processus de construction requis (ce qui signifie que vous pouvez publier directement les fichiers `.vue` et `.ts`, Slidev est assez intelligent pour les comprendre). - -Les points de contribution de thème suivent les mêmes conventions que la personnalisation locale, veuillez vous référer à [la documentation pour les conventions](/custom/). - -## Configurations par défaut - -> Disponible depuis v0.19 - -Un thème peut fournir des [configurations par défaut](/custom/#frontmatter-configures) via `package.json` - -```json -// package.json -{ - "slidev": { - "default": { - "aspectRatio": "16/9", - "canvasWidth": 980, - "fonts": { - "sans": "Robot", - "mono": "Fira Code" - } - } - } -} -``` - -Les polices seront importées automatiquement depuis [Google Fonts](https://fonts.google.com/). - -En savoir plus sur les [polices](/custom/fonts) et sur les [configurations frontmatter](/custom/#frontmatter-configures). - -## Métadonnées du thème - -### Color Schema - -Par défaut, Slidev suppose que les thèmes prennent en charge à la fois le mode clair et le mode sombre. Si vous voulez seulement que votre thème soit présenté dans un schéma de couleurs conçu, vous devrez le spécifier explicitement dans `package.json` - -```json -// package.json -{ - "name": "slidev-theme-my-cool-theme", - "keywords": [ - "slidev-theme", - "slidev" - ], - "slidev": { - "colorSchema": "light" // or "dark" or "both" - } -} -``` - -Pour accéder au mode sombre lors de la création de vos styles de thème, vous pouvez envelopper le css spécifique au mode sombre dans une classe `dark`: - -```css -/* css general ici */ - -html:not(.dark) { - /* css mode clair ici */ -} - -html.dark { - /* css mode sombre ici */ -} -``` - -Slidev bascule une classe `dark` sur l'élément `html` de la page pour changer de schéma de couleur. - -## Surligneur - -Les couleurs de mise en évidence de la syntaxe sont également fournies dans le thème. Nous prenons en charge à la fois [Prism](https://prismjs.com/) et [Shiki](https://github.com/shikijs/shiki). Pour plus d'informations, veuillez consulter [la documentation sur la coloration syntaxique](/custom/highlighters). - -Vous pouvez prendre en charge l'un d'entre eux, ou les deux. Reportez-vous au thème par défaut pour des exemples de configurations [`./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). - -N'oubliez pas non plus de spécifier les surligneurs pris en charge dans votre `package.json` - -```json -// package.json -{ - "slidev": { - "highlighter": "shiki" // or "prism" or "all" - } -} -``` - -### Version de Slidev - -Si le thème repose sur une fonctionnalité spécifique de Slidev récemment introduite, vous pouvez définir la version minimale de Slidev requise pour que votre thème fonctionne correctement : - -```json -// package.json -{ - "engines": { - "slidev": ">=0.19.3" - } -} -``` - -Si les utilisateurs utilisent des versions plus anciennes de Slidev, une erreur sera générée. diff --git a/windi.config.ts b/windi.config.ts deleted file mode 100755 index dc1bf6e..0000000 --- a/windi.config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { defineConfig } from 'vite-plugin-windicss' -import aspectRatio from 'windicss/plugin/aspect-ratio' - -export default defineConfig({ - extract: { - include: [ - '**/*.md', - '.vitepress/theme/**/*.{md,vue}', - '.vitepress/@slidev/client/internals/SlideContainer.vue', - '.vitepress/@slidev/client/layouts/*.vue', - '.vitepress/@slidev/theme-default/layouts/*.vue', - ] - }, - attributify: true, - plugins: [ - aspectRatio, - ], - shortcuts: { - 'bg-main': 'bg-white dark:bg-[#111]', - }, - theme: { - extend: { - colors: { - primary: { - DEFAULT: '#3AB9D4', - deep: '#2082A6', - }, - }, - fontFamily: { - mono: '\'IBM Plex Mono\', source-code-pro, Menlo, Monaco, Consolas, \'Courier New\', monospace', - }, - }, - }, -}) diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 9cfb472..0000000 --- a/yarn.lock +++ /dev/null @@ -1,2128 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@algolia/cache-browser-local-storage@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.10.3.tgz#3bf81e0f66a4a1079a75914a987eb1ef432c7c68" - integrity sha512-TD1N7zg5lb56/PLjjD4bBl2eccEvVHhC7yfgFu2r9k5tf+gvbGxEZ3NhRZVKu2MObUIcEy2VR4LVLxOQu45Hlg== - dependencies: - "@algolia/cache-common" "4.10.3" - -"@algolia/cache-common@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.10.3.tgz#311b2b5ae06d55300f4230944c99bc39ad15847d" - integrity sha512-q13cPPUmtf8a2suBC4kySSr97EyulSXuxUkn7l1tZUCX/k1y5KNheMp8npBy8Kc8gPPmHpacxddRSfOncjiKFw== - -"@algolia/cache-in-memory@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.10.3.tgz#697e4994538426272ea29ccf2b32b46ea4c48862" - integrity sha512-JhPajhOXAjUP+TZrZTh6KJpF5VKTKyWK2aR1cD8NtrcVHwfGS7fTyfXfVm5BqBqkD9U0gVvufUt/mVyI80aZww== - dependencies: - "@algolia/cache-common" "4.10.3" - -"@algolia/client-account@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.10.3.tgz#f2cbefb1abce74c341115607d6af199df1b056ae" - integrity sha512-S/IsJB4s+e1xYctdpW3nAbwrR2y3pjSo9X21fJGoiGeIpTRdvQG7nydgsLkhnhcgAdLnmqBapYyAqMGmlcyOkg== - dependencies: - "@algolia/client-common" "4.10.3" - "@algolia/client-search" "4.10.3" - "@algolia/transporter" "4.10.3" - -"@algolia/client-analytics@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.10.3.tgz#43d934ef8df0cf551c78e6b2e9f2452e7fb27d93" - integrity sha512-vlHTbBqJktRgclh3v7bPQLfZvFIqY4erNFIZA5C7nisCj9oLeTgzefoUrr+R90+I+XjfoLxnmoeigS1Z1yg1vw== - dependencies: - "@algolia/client-common" "4.10.3" - "@algolia/client-search" "4.10.3" - "@algolia/requester-common" "4.10.3" - "@algolia/transporter" "4.10.3" - -"@algolia/client-common@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.10.3.tgz#c4257dd5c57c5c8ec4bd48a7b1897573e372d403" - integrity sha512-uFyP2Z14jG2hsFRbAoavna6oJf4NTXaSDAZgouZUZlHlBp5elM38sjNeA5HR9/D9J/GjwaB1SgB7iUiIWYBB4w== - dependencies: - "@algolia/requester-common" "4.10.3" - "@algolia/transporter" "4.10.3" - -"@algolia/client-personalization@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.10.3.tgz#58c800f90ab8ab4aa29abdf29a97e89e6bda419e" - integrity sha512-NS7Nx8EJ/nduGXT8CFo5z7kLF0jnFehTP3eC+z+GOEESH3rrs7uR12IZHxv5QhQswZa9vl925zCOZDcDVoENCg== - dependencies: - "@algolia/client-common" "4.10.3" - "@algolia/requester-common" "4.10.3" - "@algolia/transporter" "4.10.3" - -"@algolia/client-search@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.10.3.tgz#aa6b02c2d528cb264830f276739b7f68b58988ef" - integrity sha512-Zwnp2G94IrNFKWCG/k7epI5UswRkPvL9FCt7/slXe2bkjP2y/HA37gzRn+9tXoLVRwd7gBzrtOA4jFKIyjrtVw== - dependencies: - "@algolia/client-common" "4.10.3" - "@algolia/requester-common" "4.10.3" - "@algolia/transporter" "4.10.3" - -"@algolia/logger-common@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.10.3.tgz#6773d2e38581bf9ac57e2dda02f0c4f1bc72ce94" - integrity sha512-M6xi+qov2bkgg1H9e1Qtvq/E/eKsGcgz8RBbXNzqPIYoDGZNkv+b3b8YMo3dxd4Wd6M24HU1iqF3kmr1LaXndg== - -"@algolia/logger-console@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.10.3.tgz#bd8bdc1f9dba89db37be25d673ac1f2e68de7913" - integrity sha512-vVgRI7b4PHjgBdRkv/cRz490twvkLoGdpC4VYzIouSrKj8SIVLRhey3qgXk7oQXi3xoxVAv6NrklHfpO8Bpx0w== - dependencies: - "@algolia/logger-common" "4.10.3" - -"@algolia/requester-browser-xhr@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.10.3.tgz#81ae8f6caf562a28f96102f03da7f4b19bba568c" - integrity sha512-4WIk1zreFbc1EF6+gsfBTQvwSNjWc20zJAAExRWql/Jq5yfVHmwOqi/CajA53/cXKFBqo80DAMRvOiwP+hOLYw== - dependencies: - "@algolia/requester-common" "4.10.3" - -"@algolia/requester-common@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.10.3.tgz#c3112393cff97be79863bc28de76f9c69b2f5a95" - integrity sha512-PNfLHmg0Hujugs3rx55uz/ifv7b9HVdSFQDb2hj0O5xZaBEuQCNOXC6COrXR8+9VEfqp2swpg7zwgtqFxh+BtQ== - -"@algolia/requester-node-http@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.10.3.tgz#75ea7805ac0ba25a1124989d8632ef39c31441c1" - integrity sha512-A9ZcGfEvgqf0luJApdNcIhsRh6MShn2zn2tbjwjGG1joF81w+HUY+BWuLZn56vGwAA9ZB9n00IoJJpxibbfofg== - dependencies: - "@algolia/requester-common" "4.10.3" - -"@algolia/transporter@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.10.3.tgz#0aeee752923957cffe63e4cf1c7a22ca48d96dde" - integrity sha512-n1lRyKDbrckbMEgm7QXtj3nEWUuzA3aKLzVQ43/F/RCFib15j4IwtmYhXR6OIBRSc7+T0Hm48S0J6F+HeYCQkw== - dependencies: - "@algolia/cache-common" "4.10.3" - "@algolia/logger-common" "4.10.3" - "@algolia/requester-common" "4.10.3" - -"@antfu/utils@^0.1.6", "@antfu/utils@^0.1.7": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.1.7.tgz#ac9e0e62a2490db987c9d8c6b4f38076d763c27f" - integrity sha512-XbmXbhrjfxQq+ishOKeUIK1VYxQV0B+ZkAQkz00bxhmQd5izdT0YRSDwkyH/KX46gFVBMd+6anvSDlciUt3L4A== - -"@arr/every@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@arr/every/-/every-1.0.1.tgz#22fe1f8e6355beca6c7c7bde965eb15cf994387b" - integrity sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg== - -"@babel/helper-validator-identifier@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz#32be33a756f29e278a0d644fa08a2c9e0f88a34c" - integrity sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow== - -"@babel/parser@^7.12.0", "@babel/parser@^7.13.9": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.8.tgz#66fd41666b2d7b840bd5ace7f7416d5ac60208d4" - integrity sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA== - -"@babel/types@^7.12.0", "@babel/types@^7.13.0": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.8.tgz#38109de8fcadc06415fbd9b74df0065d4d41c728" - integrity sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q== - dependencies: - "@babel/helper-validator-identifier" "^7.14.8" - to-fast-properties "^2.0.0" - -"@braintree/sanitize-url@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz#8ff71d51053cd5ee4981e5a501d80a536244f7fd" - integrity sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg== - -"@docsearch/css@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-1.0.0-alpha.28.tgz#c8a2cd8c1bb3a6855c51892e9dbdab5d42fe6e23" - integrity sha512-1AhRzVdAkrWwhaxTX6/R7SnFHz8yLz1W8I/AldlTrfbNvZs9INk1FZiEFTJdgHaP68nhgQNWSGlQiDiI3y2RYg== - -"@docsearch/js@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-1.0.0-alpha.28.tgz#f0fde7b8a6b1e1d8a7ae1e7655c43d959b457b2b" - integrity sha512-2g7aPhBy7FoEyeZW2G3LYHWVa8CFvqyozEz8PXt3hyywdFcmEIqmoCRwn8kboVftrOKCjtPcuLCewsaBoB3uiw== - dependencies: - "@docsearch/react" "^1.0.0-alpha.28" - preact "^10.0.0" - -"@docsearch/react@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-1.0.0-alpha.28.tgz#4f039ed79f8b3332b19a57677b219aebc5010e9d" - integrity sha512-XjJOnCBXn+UZmtuDmgzlVIHnnvh6yHVwG4aFq8AXN6xJEIX3f180FvGaowFWAxgdtHplJxFGux0Xx4piHqBzIw== - dependencies: - "@docsearch/css" "^1.0.0-alpha.28" - "@francoischalifour/autocomplete-core" "^1.0.0-alpha.28" - "@francoischalifour/autocomplete-preset-algolia" "^1.0.0-alpha.28" - algoliasearch "^4.0.0" - -"@francoischalifour/autocomplete-core@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-core/-/autocomplete-core-1.0.0-alpha.28.tgz#6b9d8491288e77f831e9b345d461623b0d3f5005" - integrity sha512-rL9x+72btViw+9icfBKUJjZj87FgjFrD2esuTUqtj4RAX3s4AuVZiN8XEsfjQBSc6qJk31cxlvqZHC/BIyYXgg== - -"@francoischalifour/autocomplete-preset-algolia@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.28.tgz#a5ad7996f42e43e4acbb4e0010d663746d0e9997" - integrity sha512-bprfNmYt1opFUFEtD2XfY/kEsm13bzHQgU80uMjhuK0DJ914IjolT1GytpkdM6tJ4MBvyiJPP+bTtWO+BZ7c7w== - -"@iconify/json-tools@^1.0.10": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@iconify/json-tools/-/json-tools-1.0.10.tgz#d9a7050dbbe8bb29d684d4b3f9446ed2d0bea3cc" - integrity sha512-LFelJDOLZ6JHlmlAkgrvmcu4hpNPB91KYcr4f60D/exzU1eNOb4/KCVHIydGHIQFaOacIOD+Xy+B7P1z812cZg== - -"@iconify/json@^1.1.380": - version "1.1.461" - resolved "https://registry.yarnpkg.com/@iconify/json/-/json-1.1.461.tgz#9e76f2339292e1a89855f93e497439afeb642f11" - integrity sha512-9Y41Tk9s3LDt4WI20XySNhNX6qTJ/WOBeE3O2iyoV9LJ6gFEDjp0uTPzfRU9NUx7D6VkvQ/htJEuRe9LmyMqUA== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@polka/url@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-0.5.0.tgz#b21510597fd601e5d7c95008b76bf0d254ebfd31" - integrity sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw== - -"@polka/url@^1.0.0-next.15": - version "1.0.0-next.15" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23" - integrity sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA== - -"@slidev/client@^0.13.13": - version "0.13.13" - resolved "https://registry.yarnpkg.com/@slidev/client/-/client-0.13.13.tgz#a667b8a1854b1b803de27d28a8b1fd0dd99a1dbb" - integrity sha512-aOHsdYghvQJDAGGXMFJUeEq8x649JpwSwVGgMWbkcFvXG+IXmswb5RX3fEUIwuDheifnZ3Qx5D8Cr9NhBraV6Q== - dependencies: - "@antfu/utils" "^0.1.6" - "@slidev/parser" "0.13.13" - "@slidev/types" "0.13.13" - "@vueuse/core" "^4.11.1" - "@vueuse/head" "^0.5.1" - "@vueuse/motion" "^1.5.6" - codemirror "^5.61.1" - file-saver "^2.0.5" - js-base64 "^3.6.1" - js-yaml "^4.1.0" - katex "^0.13.11" - mermaid "8.5.0" - monaco-editor "^0.24.0" - nanoid "^3.1.23" - prettier "^2.3.0" - recordrtc "^5.6.2" - resolve "^1.20.0" - vue "^3.0.11" - vue-router "^4.0.8" - windicss "^3.0.12" - -"@slidev/parser@0.13.13", "@slidev/parser@^0.13.13": - version "0.13.13" - resolved "https://registry.yarnpkg.com/@slidev/parser/-/parser-0.13.13.tgz#f3b586b9f184f0b9c34c49a7dd301d377c36699e" - integrity sha512-k06oBv1gFS1rLiOrVjsiyfBYudAoieb4x6bd4eJrRMtRqIaObqHCo3o7hmjq0HJFJQ54v2cY2W6LVSLFXtE0fw== - dependencies: - "@slidev/types" "0.13.13" - js-yaml "^4.1.0" - -"@slidev/theme-default@^0.7.9": - version "0.7.9" - resolved "https://registry.yarnpkg.com/@slidev/theme-default/-/theme-default-0.7.9.tgz#90382ac87198e91368f5d3cbada5a35a2d2efafb" - integrity sha512-11+yoDYNiFcp0z5DCVUJK+apxdP25el1YI54Y5IfGNouk9UIjf0wZzDc5m73jF1dzQsHJkCMnqkMo3529TfuSQ== - dependencies: - "@slidev/types" "^0.13.13" - codemirror-theme-vars "^0.1.1" - prism-theme-vars "^0.2.2" - theme-vitesse "^0.1.11" - -"@slidev/types@0.13.13", "@slidev/types@^0.13.13": - version "0.13.13" - resolved "https://registry.yarnpkg.com/@slidev/types/-/types-0.13.13.tgz#c803c5e0dd704888605d83ff2544a2682c96ec51" - integrity sha512-PdYByaK2yCFNP0J5UFonGXbjuIWSiNwaZklOe9QTZDClUOye6YprSffJpEHPPXb2ktyTf6BZIPd4YNhpTda70w== - -"@types/estree@^0.0.48": - version "0.0.48" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" - integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== - -"@types/fs-extra@^9.0.12": - version "9.0.13" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" - integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== - dependencies: - "@types/node" "*" - -"@types/node@*": - version "16.4.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.1.tgz#9fad171a5b701613ee8a6f4ece3c88b1034b1b03" - integrity sha512-UW7cbLqf/Wu5XH2RKKY1cHwUNLicIDRLMraYKz+HHAerJ0ZffUEk+fMnd8qU2JaS6cAy0r8tsaf7yqHASf/Y0Q== - -"@types/node@^15.14.3": - version "15.14.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" - integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== - -"@vitejs/plugin-vue@^1.2.3": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.2.5.tgz#ef7dc4a92e53fe866b54bcc1266788513262ac09" - integrity sha512-GIR31mdXTEfvElmBUaRhDc5v7lfdkEdawWQqJRiaRL/5qKsH+xusukglkvJz5y7+c6dEpxgmvcATv2BbB7+fzQ== - -"@vue/compiler-core@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.1.5.tgz#298f905b6065d6d81ff63756f98c60876b393c87" - integrity sha512-TXBhFinoBaXKDykJzY26UEuQU1K07FOp/0Ie+OXySqqk0bS0ZO7Xvl7UmiTUPYcLrWbxWBR7Bs/y55AI0MNc2Q== - dependencies: - "@babel/parser" "^7.12.0" - "@babel/types" "^7.12.0" - "@vue/shared" "3.1.5" - estree-walker "^2.0.1" - source-map "^0.6.1" - -"@vue/compiler-dom@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.1.5.tgz#cbb97020c62a5faa3fbc2a97916bd98041ac9856" - integrity sha512-ZsL3jqJ52OjGU/YiT/9XiuZAmWClKInZM2aFJh9gnsAPqOrj2JIELMbkIFpVKR/CrVO/f2VxfPiiQdQTr65jcQ== - dependencies: - "@vue/compiler-core" "3.1.5" - "@vue/shared" "3.1.5" - -"@vue/compiler-sfc@^3.1.1": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.1.5.tgz#e61e54f3a963b0f4a8e523fbb8632390dc52b0d6" - integrity sha512-mtMY6xMvZeSRx9MTa1+NgJWndrkzVTdJ1pQAmAKQuxyb5LsHVvrgP7kcQFvxPHVpLVTORbTJWHaiqoKrJvi1iA== - dependencies: - "@babel/parser" "^7.13.9" - "@babel/types" "^7.13.0" - "@types/estree" "^0.0.48" - "@vue/compiler-core" "3.1.5" - "@vue/compiler-dom" "3.1.5" - "@vue/compiler-ssr" "3.1.5" - "@vue/shared" "3.1.5" - consolidate "^0.16.0" - estree-walker "^2.0.1" - hash-sum "^2.0.0" - lru-cache "^5.1.1" - magic-string "^0.25.7" - merge-source-map "^1.1.0" - postcss "^8.1.10" - postcss-modules "^4.0.0" - postcss-selector-parser "^6.0.4" - source-map "^0.6.1" - -"@vue/compiler-ssr@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.1.5.tgz#f068652774293256a1e53084bed48a67682df9d2" - integrity sha512-CU5N7Di/a4lyJ18LGJxJYZS2a8PlLdWpWHX9p/XcsjT2TngMpj3QvHVRkuik2u8QrIDZ8OpYmTyj1WDNsOV+Dg== - dependencies: - "@vue/compiler-dom" "3.1.5" - "@vue/shared" "3.1.5" - -"@vue/devtools-api@^6.0.0-beta.14": - version "6.0.0-beta.15" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.0-beta.15.tgz#ad7cb384e062f165bcf9c83732125bffbc2ad83d" - integrity sha512-quBx4Jjpexo6KDiNUGFr/zF/2A4srKM9S9v2uHgMXSU//hjgq1eGzqkIFql8T9gfX5ZaVOUzYBP3jIdIR3PKIA== - -"@vue/reactivity@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.1.5.tgz#dbec4d9557f7c8f25c2635db1e23a78a729eb991" - integrity sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg== - dependencies: - "@vue/shared" "3.1.5" - -"@vue/runtime-core@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.1.5.tgz#a545b7f146092929cb5e833e85439150f17ac87b" - integrity sha512-YQbG5cBktN1RowQDKA22itmvQ+b40f0WgQ6CXK4VYoYICAiAfu6Cc14777ve8zp1rJRGtk5oIeS149TOculrTg== - dependencies: - "@vue/reactivity" "3.1.5" - "@vue/shared" "3.1.5" - -"@vue/runtime-dom@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.1.5.tgz#4fa28947d408aa368fa17ea0edc1beb9af1472a1" - integrity sha512-tNcf3JhVR0RfW0kw1p8xZgv30nvX8Y9rsz7eiQ0dHe273sfoCngAG0y4GvMaY4Xd8FsjUwFedd4suQ8Lu8meXg== - dependencies: - "@vue/runtime-core" "3.1.5" - "@vue/shared" "3.1.5" - csstype "^2.6.8" - -"@vue/server-renderer@^3.1.1": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.1.5.tgz#905454eccbb97bb8daafc5db6eec83c452062648" - integrity sha512-b0LLsxwsVIFGNgAHXVT/1iHbPf+uNMdFOz7xUT2tKKIkHN4ps8fAaj1GTSYLhxaPi9ALjxRmWRdvMC69fAW1/A== - dependencies: - "@vue/compiler-ssr" "3.1.5" - "@vue/shared" "3.1.5" - -"@vue/shared@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.1.5.tgz#74ee3aad995d0a3996a6bb9533d4d280514ede03" - integrity sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA== - -"@vueuse/core@^4.11.0", "@vueuse/core@^4.11.1", "@vueuse/core@^4.11.2": - version "4.11.2" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-4.11.2.tgz#d4f54bd38e7c289c6f6357992c02423774cb26d9" - integrity sha512-4A17XvKXpMR6829EVWvrdSKEeAjTWaiC3+xh51KEtlyCwvWQwZ0xwKDrbMj+e15ANxjHrTw/0bJVaWDfPQt/Pw== - dependencies: - "@vueuse/shared" "4.11.2" - vue-demi "*" - -"@vueuse/head@^0.5.1": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@vueuse/head/-/head-0.5.1.tgz#7d8a31ba4d214fff75c1d0845148d7f0bdf5b68f" - integrity sha512-xt6qgtItb4z/7vp664opQc0c2+ZoU9itMfvpmg4+h0uJcEnhl7LYxO4V+G8H7EVki7SyXDIFMfoCiCFaJrArmg== - -"@vueuse/motion@^1.5.6": - version "1.5.6" - resolved "https://registry.yarnpkg.com/@vueuse/motion/-/motion-1.5.6.tgz#b100eba60af7add3cd5ba01a05e676871f33f5ac" - integrity sha512-rNFYsA9W6zo3YqCpg7MjorRT4Mhffe1NwpqhUauaNf+vKY4J6DZaxJLDiItDYxpwjaity51u/75RdpnwvjXcIA== - dependencies: - "@vueuse/core" "^4.11.0" - popmotion "^9.3.6" - vue-demi "*" - -"@vueuse/shared@4.11.2": - version "4.11.2" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-4.11.2.tgz#1d56e08937600e3e65abf76f27cb4a1bc182adfd" - integrity sha512-vTbTi6ou7ljH3CkKVoaIaCAoWB5T1ewSogpL6VnO1duMPNuiv7x8K/LunMbnTg4tVyt6QwaiCuEq/kyS6AUBRg== - dependencies: - vue-demi "*" - -"@windicss/plugin-utils@0.17.1": - version "0.17.1" - resolved "https://registry.yarnpkg.com/@windicss/plugin-utils/-/plugin-utils-0.17.1.tgz#e8eb7ede2bb69342d6ea0f20e0ae2ad465323a7b" - integrity sha512-jyJAWoPKdQCSkyLKI2KPnQfs7iJFlENQdyr9iDqQVOHjInSVK3fVBeJdi35sbtPFPibC/JUFqHNrf9dPnN22Mg== - dependencies: - "@antfu/utils" "^0.1.6" - debug "^4.3.2" - fast-glob "^3.2.5" - jiti "^1.10.1" - magic-string "^0.25.7" - micromatch "^4.0.4" - windicss "^3.0.12" - -accepts@~1.3.5: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -algoliasearch@^4.0.0: - version "4.10.3" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.10.3.tgz#22df4bb02fbf13a765b18b85df8745ee9c04f00a" - integrity sha512-OLY0AWlPKGLbSaw14ivMB7BT5fPdp8VdzY4L8FtzZnqmLKsyes24cltGlf7/X96ACkYEcT390SReCDt/9SUIRg== - dependencies: - "@algolia/cache-browser-local-storage" "4.10.3" - "@algolia/cache-common" "4.10.3" - "@algolia/cache-in-memory" "4.10.3" - "@algolia/client-account" "4.10.3" - "@algolia/client-analytics" "4.10.3" - "@algolia/client-common" "4.10.3" - "@algolia/client-personalization" "4.10.3" - "@algolia/client-search" "4.10.3" - "@algolia/logger-common" "4.10.3" - "@algolia/logger-console" "4.10.3" - "@algolia/requester-browser-xhr" "4.10.3" - "@algolia/requester-common" "4.10.3" - "@algolia/requester-node-http" "4.10.3" - "@algolia/transporter" "4.10.3" - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bl@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -camel-case@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -chalk@^4.1.0, chalk@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chokidar@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -clean-css@^4.1.6, clean-css@^4.2.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" - integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -codemirror-theme-vars@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/codemirror-theme-vars/-/codemirror-theme-vars-0.1.1.tgz#621d0e15028c896cc54b7dc8c3c4429719cca45a" - integrity sha512-Au0Ysn6tUMZB/1Jd5S8g4Or1kZxTuTnNx6MVs9H46Ad7w8IEjkHusH+4oyia/FBcVuAJO4DIlkDnPM8Qnnf1rg== - -codemirror@^5.61.1: - version "5.62.2" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.62.2.tgz#bce6d19c9829e6e788f83886d48ecf5c1e106e65" - integrity sha512-tVFMUa4J3Q8JUd1KL9yQzQB0/BJt7ZYZujZmTPgo/54Lpuq3ez4C8x/ATUY/wv7b7X3AUq8o3Xd+2C5ZrCGWHw== - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -commander@2, commander@^2.19.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -consolidate@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16" - integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== - dependencies: - bluebird "^3.7.2" - -crypto-random-string@^3.0.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-3.3.1.tgz#13cee94cac8001e4842501608ef779e0ed08f82d" - integrity sha512-5j88ECEn6h17UePrLi6pn1JcLtAiANa3KExyr9y9Z5vo2mv56Gh3I4Aja/B9P9uyMwyxNHAHWv+nE72f30T5Dg== - dependencies: - type-fest "^0.8.1" - -css-b64-images@~0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/css-b64-images/-/css-b64-images-0.2.5.tgz#42005d83204b2b4a5d93b6b1a5644133b5927a02" - integrity sha1-QgBdgyBLK0pdk7axpWRBM7WSegI= - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -csstype@^2.6.8: - version "2.6.17" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" - integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== - -d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" - integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== - -d3-axis@1: - version "1.0.12" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" - integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== - -d3-brush@1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b" - integrity sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA== - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - -d3-chord@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f" - integrity sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA== - dependencies: - d3-array "1" - d3-path "1" - -d3-collection@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" - integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== - -d3-color@1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" - integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== - -d3-contour@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3" - integrity sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg== - dependencies: - d3-array "^1.1.1" - -d3-dispatch@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== - -d3-drag@1: - version "1.2.5" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" - integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== - dependencies: - d3-dispatch "1" - d3-selection "1" - -d3-dsv@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" - integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== - dependencies: - commander "2" - iconv-lite "0.4" - rw "1" - -d3-ease@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" - integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== - -d3-fetch@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.2.0.tgz#15ce2ecfc41b092b1db50abd2c552c2316cf7fc7" - integrity sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA== - dependencies: - d3-dsv "1" - -d3-force@1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b" - integrity sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg== - dependencies: - d3-collection "1" - d3-dispatch "1" - d3-quadtree "1" - d3-timer "1" - -d3-format@1: - version "1.4.5" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" - integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== - -d3-geo@1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" - integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== - dependencies: - d3-array "1" - -d3-hierarchy@1: - version "1.1.9" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" - integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== - -d3-interpolate@1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== - dependencies: - d3-color "1" - -d3-path@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== - -d3-polygon@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e" - integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ== - -d3-quadtree@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" - integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== - -d3-random@1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291" - integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ== - -d3-scale-chromatic@1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98" - integrity sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg== - dependencies: - d3-color "1" - d3-interpolate "1" - -d3-scale@2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f" - integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw== - dependencies: - d3-array "^1.2.0" - d3-collection "1" - d3-format "1" - d3-interpolate "1" - d3-time "1" - d3-time-format "2" - -d3-selection@1, d3-selection@^1.1.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" - integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== - -d3-shape@1: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== - dependencies: - d3-path "1" - -d3-time-format@2: - version "2.3.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850" - integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ== - dependencies: - d3-time "1" - -d3-time@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" - integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== - -d3-timer@1: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - -d3-transition@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" - integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" - -d3-voronoi@1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" - integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== - -d3-zoom@1: - version "1.8.3" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" - integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - -d3@^5.14, d3@^5.7.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877" - integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw== - dependencies: - d3-array "1" - d3-axis "1" - d3-brush "1" - d3-chord "1" - d3-collection "1" - d3-color "1" - d3-contour "1" - d3-dispatch "1" - d3-drag "1" - d3-dsv "1" - d3-ease "1" - d3-fetch "1" - d3-force "1" - d3-format "1" - d3-geo "1" - d3-hierarchy "1" - d3-interpolate "1" - d3-path "1" - d3-polygon "1" - d3-quadtree "1" - d3-random "1" - d3-scale "2" - d3-scale-chromatic "1" - d3-selection "1" - d3-shape "1" - d3-time "1" - d3-time-format "2" - d3-timer "1" - d3-transition "1" - d3-voronoi "1" - d3-zoom "1" - -dagre-d3@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz#0728d5ce7f177ca2337df141ceb60fbe6eeb7b29" - integrity sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ== - dependencies: - d3 "^5.14" - dagre "^0.8.5" - graphlib "^2.1.8" - lodash "^4.17.15" - -dagre@^0.8.4, dagre@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" - integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== - dependencies: - graphlib "^2.1.8" - lodash "^4.17.15" - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0, debug@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -diacritics@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/diacritics/-/diacritics-1.3.0.tgz#3efa87323ebb863e6696cebb0082d48ff3d6f7a1" - integrity sha1-PvqHMj67hj5mls67AILUj/PW96E= - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -entities@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== - -esbuild@^0.12.8: - version "0.12.15" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.15.tgz#9d99cf39aeb2188265c5983e983e236829f08af0" - integrity sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw== - -escape-html@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escaper@^2.5.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/escaper/-/escaper-2.5.3.tgz#8b8fe90ba364054151ab7eff18b4ce43b1e13ab5" - integrity sha512-QGb9sFxBVpbzMggrKTX0ry1oiI4CSDAl9vIL702hzl1jGW8VZs7qfqTRX7WDOjoNDoEVGcEtu1ZOQgReSfT2kQ== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estree-walker@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -fast-glob@^3.1.1, fast-glob@^3.2.5: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fastq@^1.6.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" - integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw== - dependencies: - reusify "^1.0.4" - -file-saver@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" - integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -framesync@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/framesync/-/framesync-5.3.0.tgz#0ecfc955e8f5a6ddc8fdb0cc024070947e1a0d9b" - integrity sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA== - dependencies: - tslib "^2.1.0" - -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -generic-names@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" - integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== - dependencies: - loader-utils "^1.1.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -globby@^11.0.3: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -graphlib@^2.1.7, graphlib@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" - integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== - dependencies: - lodash "^4.17.15" - -gray-matter@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-sum@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" - integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hey-listen@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" - integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== - -html-minifier@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56" - integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== - dependencies: - camel-case "^3.0.0" - clean-css "^4.2.1" - commander "^2.19.0" - he "^1.2.0" - param-case "^2.1.1" - relateurl "^0.2.7" - uglify-js "^3.5.1" - -iconv-lite@0.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-core-module@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" - integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== - dependencies: - has "^1.0.3" - -is-extendable@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -jiti@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.10.1.tgz#bc2a175b9435274dc8659d3d9a121a91c6b3a1af" - integrity sha512-qux9juDtAC8HlZxAk/fku73ak4TWNLigRFTNzFShE/kw4bXVFsVu538vLXAxvNyPszXgpX4YxkXfwTYEi+zf5A== - -js-base64@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.1.tgz#555aae398b74694b4037af1f8a5a6209d170efbe" - integrity sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -katex@^0.13.11: - version "0.13.13" - resolved "https://registry.yarnpkg.com/katex/-/katex-0.13.13.tgz#15a796e95516869bc6d483443b58b2df872ee40f" - integrity sha512-cCMcil4jwMm7behpXGiQfXJA29sko/Gd/26iCsr53Dv5Jn2iHbHyEb14dm9uVrIijUXx6Zz1WhlFhHE6DckvkQ== - dependencies: - commander "^6.0.0" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -linkify-it@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8" - integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ== - dependencies: - uc.micro "^1.0.1" - -loader-utils@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lodash@^4.17.11, lodash@^4.17.15: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== - dependencies: - sourcemap-codec "^1.4.4" - -markdown-it-anchor@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-7.1.0.tgz#30fb21497bf59e83ff4d1ddc052d821962e2489e" - integrity sha512-loQggrwsIkkP7TOrESvmYkV2ikbQNNKhHcWyqC7/C2CmfHl1tkUizJJU8C5aGgg7J6oXVQJx17gk7i47tNn/lQ== - -markdown-it-container@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b" - integrity sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw== - -markdown-it-emoji@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-2.0.0.tgz#3164ad4c009efd946e98274f7562ad611089a231" - integrity sha512-39j7/9vP/CPCKbEI44oV8yoPJTpvfeReTn/COgRhSpNrjWF3PfP/JUxxB0hxV6ynOY8KH8Y8aX9NMDdo6z+6YQ== - -markdown-it-table-of-contents@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.5.2.tgz#2f941d386c277887910f2c7a8a16f5a17acb829c" - integrity sha512-6o+rxSwzXmXCUn1n8QGTSpgbcnHBG6lUU8x7A5Cssuq5vbfzTfitfGPvQ5PZkp+gP1NGS/DR2rkYqJPn0rbZ1A== - -markdown-it@^12.0.6: - version "12.1.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.1.0.tgz#7ad572caddd336bd27a68d20e86bac1fafe8fb20" - integrity sha512-7temG6IFOOxfU0SgzhqR+vr2diuMhyO5uUIEZ3C5NbXhqC9uFUHoU41USYuDFoZRsaY7BEIEei874Z20VMLF6A== - dependencies: - argparse "^2.0.1" - entities "~2.1.0" - linkify-it "^3.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -matchit@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/matchit/-/matchit-1.1.0.tgz#c4ccf17d9c824cc1301edbcffde9b75a61d10a7c" - integrity sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA== - dependencies: - "@arr/every" "^1.0.0" - -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -mermaid@8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.5.0.tgz#8ab141359e0ab2d20d00ff887f45648982b56158" - integrity sha512-fZf4GAzkqWuSwo5L+BmzaBwWPudHkxL3M/t1RmS9Dvc2mcnv6hdhMaeC7poARpHaSGwkpb74LL81qXj+vAsVBg== - dependencies: - "@braintree/sanitize-url" "^3.1.0" - crypto-random-string "^3.0.1" - d3 "^5.7.0" - dagre "^0.8.4" - dagre-d3 "^0.6.4" - graphlib "^2.1.7" - he "^1.2.0" - lodash "^4.17.11" - minify "^4.1.1" - moment-mini "^2.22.1" - scope-css "^1.2.1" - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mime-db@1.48.0, "mime-db@>= 1.43.0 < 2": - version "1.48.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" - integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== - -mime-types@~2.1.24: - version "2.1.31" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" - integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== - dependencies: - mime-db "1.48.0" - -mime@^2.3.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" - integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minify@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/minify/-/minify-4.1.3.tgz#58467922d14303f55a3a28fa79641371955b8fbd" - integrity sha512-ykuscavxivSmVpcCzsXmsVTukWYLUUtPhHj0w2ILvHDGqC+hsuTCihBn9+PJBd58JNvWTNg9132J9nrrI2anzA== - dependencies: - clean-css "^4.1.6" - css-b64-images "~0.2.5" - debug "^4.1.0" - html-minifier "^4.0.0" - terser "^4.0.0" - try-catch "^2.0.0" - try-to-catch "^1.0.2" - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -moment-mini@^2.22.1: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.24.0.tgz#fa68d98f7fe93ae65bf1262f6abb5fb6983d8d18" - integrity sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ== - -monaco-editor@^0.24.0: - version "0.24.0" - resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.24.0.tgz#990b55096bcc95d08d8d28e55264c6eb17707269" - integrity sha512-o1f0Lz6ABFNTtnEqqqvlY9qzNx24rQZx1RgYNQ8SkWkE+Ka63keHH/RqxQ4QhN4fs/UYOnvAtEUZsPrzccH++A== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -nanoid@^3.1.23: - version "3.1.23" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" - integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -ora@^5.4.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -param-case@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= - dependencies: - no-case "^2.2.0" - -path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -polka@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/polka/-/polka-0.5.2.tgz#588bee0c5806dbc6c64958de3a1251860e9f2e26" - integrity sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw== - dependencies: - "@polka/url" "^0.5.0" - trouter "^2.0.1" - -popmotion@^9.3.6: - version "9.4.0" - resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-9.4.0.tgz#56306854dbbe7e21bb06bdde43f52cf17c4e2ac8" - integrity sha512-FGnHjc8iDMrAwuZhka8eNx0yzcaufDqyZzW9vjJebRuC6BryR5ICyBmUH+wCgUuuaFSSU4r6oT2WtnbnDGcr3g== - dependencies: - framesync "5.3.0" - hey-listen "^1.0.8" - style-value-types "4.1.4" - tslib "^2.1.0" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-modules@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.2.2.tgz#5e7777c5a8964ea176919d90b2e54ef891321ce5" - integrity sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg== - dependencies: - generic-names "^2.0.1" - icss-replace-symbols "^1.1.0" - lodash.camelcase "^4.3.0" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - string-hash "^1.1.1" - -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.6" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss@^8.1.10, postcss@^8.3.5: - version "8.3.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" - integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== - dependencies: - colorette "^1.2.2" - nanoid "^3.1.23" - source-map-js "^0.6.2" - -preact@^10.0.0: - version "10.5.14" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.5.14.tgz#0b14a2eefba3c10a57116b90d1a65f5f00cd2701" - integrity sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ== - -prettier@^2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" - integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== - -prism-theme-vars@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/prism-theme-vars/-/prism-theme-vars-0.2.2.tgz#a4c8dd0bfdb76c9b50a6ad8cd99a9ebe7a921a64" - integrity sha512-EL9ifuU/F8tEldoCa2sspiiLWysCL54xDbf2gN/ubwdtbuJROqOGopG5kSwunapwaioT+jLUQ/Ky+7jnv62xJA== - -prismjs@^1.23.0: - version "1.24.1" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.1.tgz#c4d7895c4d6500289482fa8936d9cdd192684036" - integrity sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -readable-stream@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -recordrtc@^5.6.2: - version "5.6.2" - resolved "https://registry.yarnpkg.com/recordrtc/-/recordrtc-5.6.2.tgz#48fc214b35084973ccce82c6251198b5742bc327" - integrity sha512-1QNKKNtl7+KcwD1lyOgP3ZlbiJ1d0HtXnypUy7yq49xEERxk31PHvE9RCciDrulPCY7WJ+oz0R9hpNxgsIurGQ== - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rollup@^2.38.5: - version "2.53.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.53.3.tgz#14b0e57f0874d4ad23bdbb13050cf70bcd1eabf7" - integrity sha512-79QIGP5DXz5ZHYnCPi3tLz+elOQi6gudp9YINdaJdjG0Yddubo6JRFUM//qCZ0Bap/GJrsUoEBVdSOc4AkMlRA== - optionalDependencies: - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rw@1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= - -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -scope-css@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/scope-css/-/scope-css-1.2.1.tgz#c35768bc900cad030a3e0d663a818c0f6a57f40e" - integrity sha512-UjLRmyEYaDNiOS673xlVkZFlVCtckJR/dKgr434VMm7Lb+AOOqXKdAcY7PpGlJYErjXXJzKN7HWo4uRPiZZG0Q== - dependencies: - escaper "^2.5.3" - slugify "^1.3.1" - strip-css-comments "^3.0.0" - -section-matter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" - integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== - dependencies: - extend-shallow "^2.0.1" - kind-of "^6.0.0" - -signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -sirv@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.12.tgz#d816c882b35489b3c63290e2f455ae3eccd5f652" - integrity sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg== - dependencies: - "@polka/url" "^1.0.0-next.15" - mime "^2.3.1" - totalist "^1.0.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slugify@^1.3.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.0.tgz#6bdf8ed01dabfdc46425b67e3320b698832ff893" - integrity sha512-FkMq+MQc5hzYgM86nLuHI98Acwi3p4wX+a5BO9Hhw4JdK4L7WueIiZ4tXEobImPqBz2sVcV0+Mu3GRB30IGang== - -source-map-js@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" - integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== - -source-map-support@~0.5.12: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-bom-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= - -strip-css-comments@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-css-comments/-/strip-css-comments-3.0.0.tgz#7a5625eff8a2b226cf8947a11254da96e13dae89" - integrity sha1-elYl7/iisibPiUehElTaluE9rok= - dependencies: - is-regexp "^1.0.0" - -style-value-types@4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-4.1.4.tgz#80f37cb4fb024d6394087403dfb275e8bb627e75" - integrity sha512-LCJL6tB+vPSUoxgUBt9juXIlNJHtBMy8jkXzUJSBzeHWdBu6lhzHqCvLVkXFGsFIlNa2ln1sQHya/gzaFmB2Lg== - dependencies: - hey-listen "^1.0.8" - tslib "^2.1.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -terser@^4.0.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -theme-vitesse@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/theme-vitesse/-/theme-vitesse-0.1.12.tgz#0b30c2c2a83c2e4bacb603238c508ce9154e2b7d" - integrity sha512-lJLDcQm9/It6Aj+dr6FUHx8Ppy7COi53Ui2iSP5B4DJxNM+spaUPIPIOileSM8kZn60KsfLsV6eQzoknuQa7/A== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -totalist@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" - integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== - -trouter@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/trouter/-/trouter-2.0.1.tgz#2726a5f8558e090d24c3a393f09eaab1df232df6" - integrity sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ== - dependencies: - matchit "^1.0.0" - -try-catch@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/try-catch/-/try-catch-2.0.1.tgz#a35d354187c422f291a0bcfd9eb77e3a4f90c1e5" - integrity sha512-LsOrmObN/2WdM+y2xG+t16vhYrQsnV8wftXIcIOWZhQcBJvKGYuamJGwnU98A7Jxs2oZNkJztXlphEOoA0DWqg== - -try-to-catch@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/try-to-catch/-/try-to-catch-1.1.1.tgz#770162dd13b9a0e55da04db5b7f888956072038a" - integrity sha512-ikUlS+/BcImLhNYyIgZcEmq4byc31QpC+46/6Jm5ECWkVFhf8SM2Fp/0pMVXPX6vk45SMCwrP4Taxucne8I0VA== - -tslib@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" - integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typeit@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/typeit/-/typeit-7.0.4.tgz#7b42886943f6e0545c4d8eab4ef552a71388751c" - integrity sha512-ETiVr3s4XOXUE9W+tVhF3gxGTf5z4tc35YjvWEQhqKsJhXWvpQlt/D/ZvIHkZzHegU3stxagjeG2pfm1/AWsYQ== - -typescript@^4.3.5: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== - -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - -uglify-js@^3.5.1: - version "3.14.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.0.tgz#2d723a0afee81e0d08db9354a9c277006e942386" - integrity sha512-R/tiGB1ZXp2BC+TkRGLwj8xUZgdfT2f4UZEgX6aVjJ5uttPrr4fYmwTWDGqVnBCLbOXRMY6nr/BTbwCtVfps0g== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - -util-deprecate@^1.0.1, util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vite-plugin-components@^0.10.4: - version "0.10.4" - resolved "https://registry.yarnpkg.com/vite-plugin-components/-/vite-plugin-components-0.10.4.tgz#55a2757433833a9481765319d76d69653ba9ba57" - integrity sha512-QOGd+7IE4EonPGMlxmudj0HadVxKzCdvaZmZcRgap4gE8F55sAIztuAQN4IHACEKuappWsB6XpMAY1iVrJUqog== - dependencies: - chokidar "^3.5.1" - debug "^4.3.2" - fast-glob "^3.2.5" - magic-string "^0.25.7" - minimatch "^3.0.4" - -vite-plugin-icons@^0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/vite-plugin-icons/-/vite-plugin-icons-0.6.5.tgz#3f6bd08358bb126344e46ed08dc76808ce1f1887" - integrity sha512-lfePr8juO2ajp0571iLL+9zIoyBD9nSSSHlC4JYXbAeMOJB6WTP+Vdc2gze8yI8JRO+Z0TXCCvvL9bPgvkI4Cg== - dependencies: - "@iconify/json-tools" "^1.0.10" - vue-template-es2015-compiler "^1.9.1" - -vite-plugin-windicss@^0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/vite-plugin-windicss/-/vite-plugin-windicss-0.17.1.tgz#f5e1b3e92dbb96e5e1450b22cfa17570b60a1266" - integrity sha512-7kK/Zv4uuEsmfOO6D1F7njCJrBKGhS6sz9Vzhn/3q8Vx7dpPr8J+ltEYhlCuaJT+UKLuLbxksSdfCNbX6x/jJw== - dependencies: - "@windicss/plugin-utils" "0.17.1" - chalk "^4.1.1" - debug "^4.3.2" - windicss "^3.0.12" - -vite@^2.3.7: - version "2.4.3" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.4.3.tgz#fe4aa78e9dd7d36bcb12eccbd52313b26cfadf77" - integrity sha512-iT6NPeiUUZ2FkzC3eazytOEMRaM4J+xgRQcNcpRcbmfYjakCFP4WKPJpeEz1U5JEKHAtwv3ZBQketQUFhFU3ng== - dependencies: - esbuild "^0.12.8" - postcss "^8.3.5" - resolve "^1.20.0" - rollup "^2.38.5" - optionalDependencies: - fsevents "~2.3.2" - -vitepress@^0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-0.14.1.tgz#0f431d3070b9a18938985be8078f27faf90ed5c6" - integrity sha512-cGsDULwKvKljtDNm4uy8zDYoM3gBRxr75R8+buzeyWnpXEqIwWICl0P2AHwLm2Dbs7cVy8lAREOrcUsShDzPuA== - dependencies: - "@docsearch/css" "^1.0.0-alpha.28" - "@docsearch/js" "^1.0.0-alpha.28" - "@vitejs/plugin-vue" "^1.2.3" - "@vue/compiler-sfc" "^3.1.1" - "@vue/server-renderer" "^3.1.1" - chalk "^4.1.1" - compression "^1.7.4" - debug "^4.3.2" - diacritics "^1.3.0" - escape-html "^1.0.3" - fs-extra "^10.0.0" - globby "^11.0.3" - gray-matter "^4.0.3" - lru-cache "^6.0.0" - markdown-it "^12.0.6" - markdown-it-anchor "^7.1.0" - markdown-it-container "^3.0.0" - markdown-it-emoji "^2.0.0" - markdown-it-table-of-contents "^0.5.2" - minimist "^1.2.5" - ora "^5.4.0" - polka "^0.5.2" - prismjs "^1.23.0" - sirv "^1.0.12" - vite "^2.3.7" - vue "^3.1.1" - -vue-demi@*: - version "0.11.2" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.11.2.tgz#faa06da53887c493a695b997f4fcb4784a667990" - integrity sha512-J+X8Au6BhQdcej6LY4O986634hZLu55L0ewU2j8my7WIKlu8cK0dqmdUxqVHHMd/cMrKKZ9SywB/id6aLhwCtA== - -vue-router@^4.0.8: - version "4.0.10" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.10.tgz#ec8fda032949b2a31d3273170f8f376e86eb52ac" - integrity sha512-YbPf6QnZpyyWfnk7CUt2Bme+vo7TLfg1nGZNkvYqKYh4vLaFw6Gn8bPGdmt5m4qrGnKoXLqc4htAsd3dIukICA== - dependencies: - "@vue/devtools-api" "^6.0.0-beta.14" - -vue-template-es2015-compiler@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" - integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== - -vue@^3.0.11, vue@^3.1.1: - version "3.1.5" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.1.5.tgz#12879b11d0685ee4478c8869551799630a52f9fe" - integrity sha512-Ho7HNb1nfDoO+HVb6qYZgeaobt1XbY6KXFe4HGs1b9X6RhkWG/113n4/SrtM1LUclM6OrP/Se5aPHHvAPG1iVQ== - dependencies: - "@vue/compiler-dom" "3.1.5" - "@vue/runtime-dom" "3.1.5" - "@vue/shared" "3.1.5" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -windicss@^3.0.12: - version "3.1.5" - resolved "https://registry.yarnpkg.com/windicss/-/windicss-3.1.5.tgz#e9b6d6adcbc6f6c6e33e6625a3e5923b328f3137" - integrity sha512-sGi2YiN6Bp/vWJS0jlpJhMmh7O2TBQ+yTbL6oqoRXz32q1VKELOUMfF+5pdtVL5uoVnfKf4gOUQs2XKNgU30Lw== - -windicss@^3.1.5: - version "3.5.6" - resolved "https://registry.yarnpkg.com/windicss/-/windicss-3.5.6.tgz#30a34da76894d952a96c9a1921f2e91e13932183" - integrity sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== From d0a5cd2297aa296f65ca01eb94ad00463f4fc56d Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 30 Apr 2026 12:52:51 +0200 Subject: [PATCH 05/10] Fix conflicts --- .vitepress/config.ts | 4 + .vitepress/theme/components/Environment.vue | 24 +++ .vitepress/theme/components/ShowCaseInfo.vue | 65 ++++++++ .vitepress/theme/components/ShowCases.vue | 9 ++ .vitepress/theme/components/ThemeGallery.vue | 18 +++ .vitepress/theme/components/ThemeInfo.vue | 77 ++++++++++ .vitepress/theme/composables/dark.ts | 3 + .vitepress/theme/index.ts | 19 +++ .vitepress/theme/styles/vars.css | 152 +++++++++++++++++++ README.md | 2 +- components.d.ts | 2 + 11 files changed, 374 insertions(+), 1 deletion(-) create mode 100644 .vitepress/theme/components/Environment.vue create mode 100644 .vitepress/theme/components/ShowCaseInfo.vue create mode 100644 .vitepress/theme/components/ShowCases.vue create mode 100644 .vitepress/theme/components/ThemeGallery.vue create mode 100644 .vitepress/theme/components/ThemeInfo.vue create mode 100755 .vitepress/theme/composables/dark.ts create mode 100755 .vitepress/theme/index.ts create mode 100755 .vitepress/theme/styles/vars.css diff --git a/.vitepress/config.ts b/.vitepress/config.ts index 83b6c16..0a99752 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -153,6 +153,10 @@ export default defineConfig({ root: { label: `Français (v${version})`, }, + en: { + label: 'English', + link: 'https://sli.dev/', + }, zh: { label: '简体中文', link: 'https://cn.sli.dev/', diff --git a/.vitepress/theme/components/Environment.vue b/.vitepress/theme/components/Environment.vue new file mode 100644 index 0000000..b206920 --- /dev/null +++ b/.vitepress/theme/components/Environment.vue @@ -0,0 +1,24 @@ + + + diff --git a/.vitepress/theme/components/ShowCaseInfo.vue b/.vitepress/theme/components/ShowCaseInfo.vue new file mode 100644 index 0000000..3988bfa --- /dev/null +++ b/.vitepress/theme/components/ShowCaseInfo.vue @@ -0,0 +1,65 @@ + + + diff --git a/.vitepress/theme/components/ShowCases.vue b/.vitepress/theme/components/ShowCases.vue new file mode 100644 index 0000000..19f2c1a --- /dev/null +++ b/.vitepress/theme/components/ShowCases.vue @@ -0,0 +1,9 @@ + + + diff --git a/.vitepress/theme/components/ThemeGallery.vue b/.vitepress/theme/components/ThemeGallery.vue new file mode 100644 index 0000000..ee92e0c --- /dev/null +++ b/.vitepress/theme/components/ThemeGallery.vue @@ -0,0 +1,18 @@ + + + diff --git a/.vitepress/theme/components/ThemeInfo.vue b/.vitepress/theme/components/ThemeInfo.vue new file mode 100644 index 0000000..080f0fd --- /dev/null +++ b/.vitepress/theme/components/ThemeInfo.vue @@ -0,0 +1,77 @@ + + + diff --git a/.vitepress/theme/composables/dark.ts b/.vitepress/theme/composables/dark.ts new file mode 100755 index 0000000..a9e3a7e --- /dev/null +++ b/.vitepress/theme/composables/dark.ts @@ -0,0 +1,3 @@ +import { useDark } from '@vueuse/core' + +export const isDark = useDark() \ No newline at end of file diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts new file mode 100755 index 0000000..36beabd --- /dev/null +++ b/.vitepress/theme/index.ts @@ -0,0 +1,19 @@ +import type { EnhanceAppContext } from 'vitepress' +import TwoSlash from '@shikijs/vitepress-twoslash/client' +import Theme from 'vitepress/theme' +import Layout from './components/Layout.vue' + +import '@shikijs/vitepress-twoslash/style.css' +import './styles/vars.css' +import './styles/demo.css' +import './styles/custom.css' +import 'uno.css' +import 'virtual:group-icons.css' + +export default { + extends: Theme, + enhanceApp({ app }: EnhanceAppContext) { + app.use(TwoSlash as any) + }, + Layout, +} \ No newline at end of file diff --git a/.vitepress/theme/styles/vars.css b/.vitepress/theme/styles/vars.css new file mode 100755 index 0000000..50a1d3b --- /dev/null +++ b/.vitepress/theme/styles/vars.css @@ -0,0 +1,152 @@ +/** + * Customize default theme styling by overriding CSS variables: + * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css + */ + +/** + * Colors + * + * Each colors have exact same color scale system with 3 levels of solid + * colors with different brightness, and 1 soft color. + * + * - `XXX-1`: The most solid color used mainly for colored text. It must + * satisfy the contrast ratio against when used on top of `XXX-soft`. + * + * - `XXX-2`: The color used mainly for hover state of the button. + * + * - `XXX-3`: The color for solid background, such as bg color of the button. + * It must satisfy the contrast ratio with pure white (#ffffff) text on + * top of it. + * + * - `XXX-soft`: The color used for subtle background such as custom container + * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors + * on top of it. + * + * The soft color must be semi transparent alpha channel. This is crucial + * because it allows adding multiple "soft" colors on top of each other + * to create a accent, such as when having inline code block inside + * custom containers. + * + * - `default`: The color used purely for subtle indication without any + * special meanings attched to it such as bg color for menu hover state. + * + * - `brand`: Used for primary brand colors, such as link text, button with + * brand theme, etc. + * + * - `tip`: Used to indicate useful information. The default theme uses the + * brand color for this by default. + * + * - `warning`: Used to indicate warning to the users. Used in custom + * container, badges, etc. + * + * - `danger`: Used to show error, or dangerous message to the users. Used + * in custom container, badges, etc. + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-brand-1: #3ab9d4; + --vp-c-brand-2: #60c4db; + --vp-c-brand-3: #6fcce1; + --vp-c-brand-soft: #3ab9d450; + --vp-c-bg-alt: #f9f9f9; + + --vp-font-family-mono: theme('fontFamily.mono'); +} + +.dark { + --vp-c-brand-1: #6fcce1; + --vp-c-brand-2: #60c4db; + --vp-c-brand-3: #3ab9d4; + --vp-c-brand-soft: #3ab9d450; + --vp-c-bg-alt: #18181b; + --vp-c-gutter: #8883; +} + +:root { + --vp-c-default-1: var(--vp-c-gray-1); + --vp-c-default-2: var(--vp-c-gray-2); + --vp-c-default-3: var(--vp-c-gray-3); + --vp-c-default-soft: var(--vp-c-gray-soft); + + --vp-c-tip-1: var(--vp-c-brand-1); + --vp-c-tip-2: var(--vp-c-brand-2); + --vp-c-tip-3: var(--vp-c-brand-3); + --vp-c-tip-soft: var(--vp-c-brand-soft); +} + +:root { + -vp-c-text-1: rgba(42, 40, 47); + -vp-c-text-2: rgba(42, 40, 47, 0.78); + -vp-c-text-3: rgba(42, 40, 47, 0.56); + --black-text-1: rgba(42, 40, 47); +} + +.dark { + --vp-c-text-1: rgba(255, 255, 245, 0.86); + --vp-c-text-2: rgba(235, 235, 245, 0.6); + --vp-c-text-3: rgba(235, 235, 245, 0.38); +} + +/** + * Component: Button + * -------------------------------------------------------------------------- */ + +:root { + --vp-button-brand-border: transparent; + --vp-button-brand-text: var(--vp-c-white); + --vp-button-brand-bg: var(--vp-c-brand-1); + --vp-button-brand-hover-border: transparent; + --vp-button-brand-hover-text: var(--vp-c-white); + --vp-button-brand-hover-bg: var(--vp-c-brand-2); + --vp-button-brand-active-border: transparent; + --vp-button-brand-active-text: var(--vp-c-white); + --vp-button-brand-active-bg: var(--vp-c-brand-1); +} + +.dark { + --vp-button-brand-text: var(--black-text-1); + --vp-button-brand-bg: var(--vp-c-brand-2); + --vp-button-brand-hover-text: var(--black-text-1); + --vp-button-brand-hover-bg: var(--vp-c-brand-1); + --vp-button-brand-active-text: var(--black-text-1); + --vp-button-brand-active-bg: var(--vp-c-brand-3); +} + +/** + * Component: Home + * -------------------------------------------------------------------------- */ + +:root { + --vp-home-hero-name-color: var(--vp-c-brand-1); +} + +@media (min-width: 640px) { + :root { + --vp-home-hero-image-filter: blur(56px); + } +} + +@media (min-width: 960px) { + :root { + --vp-home-hero-image-filter: blur(72px); + } +} + +/** + * Component: Custom Block + * -------------------------------------------------------------------------- */ + +:root { + --vp-custom-block-tip-border: transparent; + --vp-custom-block-tip-text: var(--vp-c-text-1); + --vp-custom-block-tip-bg: var(--vp-c-brand-soft); + --vp-custom-block-tip-code-bg: var(--vp-c-brand-soft); +} + +/** + * Component: Algolia + * -------------------------------------------------------------------------- */ + +.DocSearch { + --docsearch-primary-color: var(--vp-c-brand-1) !important; +} \ No newline at end of file diff --git a/README.md b/README.md index fbd31de..24c2016 100755 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ French documentation for [Slidev](https://github.com/slidevjs/slidev) | ------------------------- | ---------------------------------------------- | -------------------------------: | --------------------------------------------------------------------- | | English | [docs](https://github.com/slidevjs/docs) | [sli.dev](https://sli.dev) | [@antfu](https://github.com/antfu) | | 简体中文 | [docs-cn](https://github.com/slidevjs/docs-cn) | [cn.sli.dev](https://cn.sli.dev) | [@QC-L](https://github.com/QC-L) [@Ivocin](https://github.com/Ivocin) | -| Français | [docs-fr](https://github.com/slidevjs/docs-fr) | [fr.sli.dev](https://fr.sli.dev) | [@ArthurDanjou](https://github.com/ArthurDanjou) | +| Français | [docs-fr](https://github.com/slidevjs/docs-fr) | [fr.sli.dev](https://fr.sli.dev) | [@ArthurDanjou](https://github.com/ArthurDanjou) | | Español | [docs-es](https://github.com/slidevjs/docs-es) | [es.sli.dev](https://es.sli.dev) | [@owlnai](https://github.com/owlnai) | | Русский | [docs-ru](https://github.com/slidevjs/docs-ru) | [ru.sli.dev](https://ru.sli.dev) | [@xesjkeee](https://github.com/xesjkeee) | | Việt Nam | [docs-vn](https://github.com/slidevjs/docs-vn) | [vn.sli.dev](https://vn.sli.dev) | [@bongudth](https://github.com/bongudth) | diff --git a/components.d.ts b/components.d.ts index 2249a76..5845e5a 100644 --- a/components.d.ts +++ b/components.d.ts @@ -16,6 +16,7 @@ declare module 'vue' { AddonInfo: typeof import('./.vitepress/theme/components/AddonInfo.vue')['default'] Arrow: typeof import('./node_modules/@slidev/client/builtin/Arrow.vue')['default'] AutoFitText: typeof import('./node_modules/@slidev/client/builtin/AutoFitText.vue')['default'] + BlueSky: typeof import('./node_modules/@slidev/client/builtin/BlueSky.vue')['default'] CarbonApps: typeof import('~icons/carbon/apps')['default'] CarbonArrowLeft: typeof import('~icons/carbon/arrow-left')['default'] CarbonArrowRight: typeof import('~icons/carbon/arrow-right')['default'] @@ -98,6 +99,7 @@ declare global { const AddonInfo: typeof import('./.vitepress/theme/components/AddonInfo.vue')['default'] const Arrow: typeof import('./node_modules/@slidev/client/builtin/Arrow.vue')['default'] const AutoFitText: typeof import('./node_modules/@slidev/client/builtin/AutoFitText.vue')['default'] + const BlueSky: typeof import('./node_modules/@slidev/client/builtin/BlueSky.vue')['default'] const CarbonApps: typeof import('~icons/carbon/apps')['default'] const CarbonArrowLeft: typeof import('~icons/carbon/arrow-left')['default'] const CarbonArrowRight: typeof import('~icons/carbon/arrow-right')['default'] From 3c0b0c59a836a0c65b219280c87261a58c2dfb75 Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 30 Apr 2026 12:51:57 +0200 Subject: [PATCH 06/10] Add VitePress theme components and styles --- .vitepress/theme/components/AddonGallery.vue | 18 + .vitepress/theme/components/AddonInfo.vue | 57 + .vitepress/theme/components/Demo.vue | 178 ++ .vitepress/theme/components/DemoEditor.vue | 39 + .vitepress/theme/components/DemoSlide.vue | 26 + .vitepress/theme/components/FeatureTag.vue | 82 + .../theme/components/FeaturesAnimation.vue | 13 + .../components/FeaturesAnimationInner.vue | 38 + .../theme/components/FeaturesOverview.vue | 48 + .vitepress/theme/components/LandingPage.vue | 24 + .vitepress/theme/components/Layout.vue | 58 + .vitepress/theme/components/LinkCard.vue | 61 + .vitepress/theme/components/LinkInline.vue | 46 + .vitepress/theme/components/SeeAlso.vue | 12 + .../theme/components/SlideContainer.vue | 47 + .vitepress/theme/components/TheTweet.vue | 71 + .vitepress/theme/styles/custom.css | 23 + .vitepress/theme/styles/demo.css | 170 ++ bun.lock | 1468 +++++++++++++++++ 19 files changed, 2479 insertions(+) create mode 100644 .vitepress/theme/components/AddonGallery.vue create mode 100644 .vitepress/theme/components/AddonInfo.vue create mode 100644 .vitepress/theme/components/Demo.vue create mode 100644 .vitepress/theme/components/DemoEditor.vue create mode 100644 .vitepress/theme/components/DemoSlide.vue create mode 100644 .vitepress/theme/components/FeatureTag.vue create mode 100644 .vitepress/theme/components/FeaturesAnimation.vue create mode 100644 .vitepress/theme/components/FeaturesAnimationInner.vue create mode 100644 .vitepress/theme/components/FeaturesOverview.vue create mode 100644 .vitepress/theme/components/LandingPage.vue create mode 100644 .vitepress/theme/components/Layout.vue create mode 100644 .vitepress/theme/components/LinkCard.vue create mode 100644 .vitepress/theme/components/LinkInline.vue create mode 100644 .vitepress/theme/components/SeeAlso.vue create mode 100644 .vitepress/theme/components/SlideContainer.vue create mode 100644 .vitepress/theme/components/TheTweet.vue create mode 100755 .vitepress/theme/styles/custom.css create mode 100755 .vitepress/theme/styles/demo.css create mode 100644 bun.lock diff --git a/.vitepress/theme/components/AddonGallery.vue b/.vitepress/theme/components/AddonGallery.vue new file mode 100644 index 0000000..5b38da3 --- /dev/null +++ b/.vitepress/theme/components/AddonGallery.vue @@ -0,0 +1,18 @@ + + + diff --git a/.vitepress/theme/components/AddonInfo.vue b/.vitepress/theme/components/AddonInfo.vue new file mode 100644 index 0000000..1a44339 --- /dev/null +++ b/.vitepress/theme/components/AddonInfo.vue @@ -0,0 +1,57 @@ + + + diff --git a/.vitepress/theme/components/Demo.vue b/.vitepress/theme/components/Demo.vue new file mode 100644 index 0000000..b7657c9 --- /dev/null +++ b/.vitepress/theme/components/Demo.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/.vitepress/theme/components/DemoEditor.vue b/.vitepress/theme/components/DemoEditor.vue new file mode 100644 index 0000000..9abb5b5 --- /dev/null +++ b/.vitepress/theme/components/DemoEditor.vue @@ -0,0 +1,39 @@ + + + diff --git a/.vitepress/theme/components/DemoSlide.vue b/.vitepress/theme/components/DemoSlide.vue new file mode 100644 index 0000000..4ba7c28 --- /dev/null +++ b/.vitepress/theme/components/DemoSlide.vue @@ -0,0 +1,26 @@ + + + diff --git a/.vitepress/theme/components/FeatureTag.vue b/.vitepress/theme/components/FeatureTag.vue new file mode 100644 index 0000000..32fb9b8 --- /dev/null +++ b/.vitepress/theme/components/FeatureTag.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/.vitepress/theme/components/FeaturesAnimation.vue b/.vitepress/theme/components/FeaturesAnimation.vue new file mode 100644 index 0000000..ec6bc9a --- /dev/null +++ b/.vitepress/theme/components/FeaturesAnimation.vue @@ -0,0 +1,13 @@ + + + + + diff --git a/.vitepress/theme/components/FeaturesAnimationInner.vue b/.vitepress/theme/components/FeaturesAnimationInner.vue new file mode 100644 index 0000000..4e4b203 --- /dev/null +++ b/.vitepress/theme/components/FeaturesAnimationInner.vue @@ -0,0 +1,38 @@ + + + diff --git a/.vitepress/theme/components/FeaturesOverview.vue b/.vitepress/theme/components/FeaturesOverview.vue new file mode 100644 index 0000000..90e5f63 --- /dev/null +++ b/.vitepress/theme/components/FeaturesOverview.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/.vitepress/theme/components/LandingPage.vue b/.vitepress/theme/components/LandingPage.vue new file mode 100644 index 0000000..d083ad8 --- /dev/null +++ b/.vitepress/theme/components/LandingPage.vue @@ -0,0 +1,24 @@ + diff --git a/.vitepress/theme/components/Layout.vue b/.vitepress/theme/components/Layout.vue new file mode 100644 index 0000000..0c82d71 --- /dev/null +++ b/.vitepress/theme/components/Layout.vue @@ -0,0 +1,58 @@ + + + diff --git a/.vitepress/theme/components/LinkCard.vue b/.vitepress/theme/components/LinkCard.vue new file mode 100644 index 0000000..80da69d --- /dev/null +++ b/.vitepress/theme/components/LinkCard.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/.vitepress/theme/components/LinkInline.vue b/.vitepress/theme/components/LinkInline.vue new file mode 100644 index 0000000..f643868 --- /dev/null +++ b/.vitepress/theme/components/LinkInline.vue @@ -0,0 +1,46 @@ + + + diff --git a/.vitepress/theme/components/SeeAlso.vue b/.vitepress/theme/components/SeeAlso.vue new file mode 100644 index 0000000..308db6f --- /dev/null +++ b/.vitepress/theme/components/SeeAlso.vue @@ -0,0 +1,12 @@ + + + diff --git a/.vitepress/theme/components/SlideContainer.vue b/.vitepress/theme/components/SlideContainer.vue new file mode 100644 index 0000000..929d1e5 --- /dev/null +++ b/.vitepress/theme/components/SlideContainer.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/.vitepress/theme/components/TheTweet.vue b/.vitepress/theme/components/TheTweet.vue new file mode 100644 index 0000000..1a849fa --- /dev/null +++ b/.vitepress/theme/components/TheTweet.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/.vitepress/theme/styles/custom.css b/.vitepress/theme/styles/custom.css new file mode 100755 index 0000000..11842f2 --- /dev/null +++ b/.vitepress/theme/styles/custom.css @@ -0,0 +1,23 @@ +.icon-btn { + --uno: inline-block cursor-pointer select-none important-outline-none; + --uno: opacity-75 transition duration-200 ease-in-out align-middle rounded p-2; + --uno: hover-(opacity-100 bg-gray-400 bg-opacity-10); +} + +.icon-btn.disabled { + --uno: opacity-25 pointer-events-none; +} + +.inline-icon-btn { + --uno: text-primary-deep; + --uno: inline-block rounded p-0.5 text-2xl align-middle; + --uno: border border-primary border-opacity-20 border-solid; +} + +kbd { + --uno: border-rounded bg-$vp-c-gray-1 bg-opacity-10 px-1 py-.5; +} + +[data-tweet-id] { + border-radius: 13px; +} \ No newline at end of file diff --git a/.vitepress/theme/styles/demo.css b/.vitepress/theme/styles/demo.css new file mode 100755 index 0000000..0b3e983 --- /dev/null +++ b/.vitepress/theme/styles/demo.css @@ -0,0 +1,170 @@ +html:not(.dark) { + --prism-foreground: #393a34; + --prism-background: #fafafa; + --prism-inline-background: #f5f5f5; + --prism-comment: #a0ada0; + --prism-string: #b56959; + --prism-literal: #2f8a89; + --prism-number: #296aa3; + --prism-keyword: #1c6b48; + --prism-function: #6c7834; + --prism-boolean: #296aa3; + --prism-constant: #a65e2b; + --prism-deleted: #a14f55; + --prism-class: #2993a3; + --prism-builtin: #ab5959; + --prism-property: #b58451; + --prism-namespace: #b05a78; + --prism-punctuation: #8e8f8b; + --prism-decorator: #bd8f8f; + --prism-regex: #ab5e3f; + --prism-json-property: #698c96; +} + +html.dark { + --prism-scheme: dark; + --prism-foreground: #d4cfbf; + --prism-background: #181818; + --prism-comment: #758575; + --prism-string: #d48372; + --prism-literal: #429988; + --prism-keyword: #4d9375; + --prism-boolean: #6394bf; + --prism-number: #6394bf; + --prism-variable: #c2b36e; + --prism-function: #a1b567; + --prism-deleted: #bc6066; + --prism-class: #54b1bf; + --prism-builtin: #e0a569; + --prism-property: #dd8e6e; + --prism-namespace: #db889a; + --prism-punctuation: #858585; + --prism-decorator: #bd8f8f; + --prism-regex: #ab5e3f; + --prism-json-property: #6b8b9e; + --prism-line-number: #888888; + --prism-line-number-gutter: #eeeeee; + --prism-line-highlight-background: #444444; + --prism-selection-background: #444444; + --prism-inline-background: theme('colors.dark.300'); +} + +.token.title { + color: var(--prism-keyword); +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: var(--prism-comment); + font-style: var(--prism-comment-style); +} + +.token.namespace { + color: var(--prism-namespace); +} + +.token.interpolation { + color: var(--prism-interpolation); +} + +.token.string { + color: var(--prism-string); +} + +.token.punctuation { + color: var(--prism-punctuation); +} + +.token.operator { + color: var(--prism-operator); +} + +.token.keyword.module, +.token.keyword.control-flow { + color: var(--prism-keyword-control); +} + +.token.url, +.token.symbol, +.token.inserted { + color: var(--prism-symbol); +} + +.token.constant { + color: var(--prism-constant); +} + +.token.string.url { + text-decoration: var(--prism-url-decoration); +} + +.token.boolean, +.language-json .token.boolean { + color: var(--prism-boolean); +} + +.token.number, +.language-json .token.number { + color: var(--prism-number); +} + +.token.variable { + color: var(--prism-variable); +} + +.token.keyword { + color: var(--prism-keyword); +} + +.token.atrule, +.token.attr-value, +.token.selector { + color: var(--prism-selector); +} + +.token.function { + color: var(--prism-function); +} + +.token.deleted { + color: var(--prism-deleted); +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.class-name { + color: var(--prism-class); +} + +.token.tag, +.token.builtin { + color: var(--prism-builtin); +} + +.token.attr-name, +.token.property, +.token.entity { + color: var(--prism-property); +} + +.language-json .token.property { + color: var(--prism-json-property); +} + +.token.regex { + color: var(--prism-regex); +} + +.token.decorator, +.token.annotation { + color: var(--prism-decorator); +} \ No newline at end of file diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..05e6e9c --- /dev/null +++ b/bun.lock @@ -0,0 +1,1468 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "@slidev/docs", + "devDependencies": { + "@antfu/utils": "^9.3.0", + "@iconify-json/carbon": "^1.2.18", + "@iconify-json/codicon": "^1.2.39", + "@iconify-json/mdi": "^1.2.3", + "@iconify-json/twemoji": "^1.2.5", + "@iconify-json/uil": "^1.2.3", + "@iconify-json/uim": "^1.2.3", + "@iconify-json/vscode-icons": "^1.2.39", + "@shikijs/vitepress-twoslash": "^3.21.0", + "@slidev/client": "latest", + "@slidev/parser": "latest", + "@slidev/theme-default": "latest", + "@slidev/types": "latest", + "@types/node": "^25.0.7", + "@unocss/reset": "^66.5.12", + "@vueuse/core": "^14.1.0", + "fast-glob": "^3.3.3", + "gray-matter": "^4.0.3", + "markdown-it": "^14.1.0", + "shiki": "^3.21.0", + "typeit": "8.1.0", + "typescript": "^5.9.3", + "unocss": "^66.5.12", + "unplugin-icons": "^22.5.0", + "unplugin-vue-components": "^30.0.0", + "vite-plugin-inspect": "^11.3.3", + "vitepress": "^2.0.0-alpha.15", + "vitepress-plugin-group-icons": "^1.6.5", + "vitepress-plugin-llms": "^1.10.0", + "vue": "^3.5.26", + }, + }, + }, + "packages": { + "@antfu/install-pkg": ["@antfu/install-pkg@1.1.0", "", { "dependencies": { "package-manager-detector": "^1.3.0", "tinyexec": "^1.0.1" } }, "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ=="], + + "@antfu/utils": ["@antfu/utils@9.3.0", "", {}, "sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA=="], + + "@babel/code-frame": ["@babel/code-frame@7.29.0", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw=="], + + "@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="], + + "@babel/core": ["@babel/core@7.29.0", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/traverse": "^7.29.0", "@babel/types": "^7.29.0", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA=="], + + "@babel/generator": ["@babel/generator@7.29.1", "", { "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw=="], + + "@babel/helper-annotate-as-pure": ["@babel/helper-annotate-as-pure@7.27.3", "", { "dependencies": { "@babel/types": "^7.27.3" } }, "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg=="], + + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.28.6", "", { "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA=="], + + "@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.28.6", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/traverse": "^7.28.6", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow=="], + + "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], + + "@babel/helper-member-expression-to-functions": ["@babel/helper-member-expression-to-functions@7.28.5", "", { "dependencies": { "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5" } }, "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg=="], + + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.28.6", "", { "dependencies": { "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw=="], + + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.6", "", { "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA=="], + + "@babel/helper-optimise-call-expression": ["@babel/helper-optimise-call-expression@7.27.1", "", { "dependencies": { "@babel/types": "^7.27.1" } }, "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw=="], + + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.28.6", "", {}, "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug=="], + + "@babel/helper-replace-supers": ["@babel/helper-replace-supers@7.28.6", "", { "dependencies": { "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg=="], + + "@babel/helper-skip-transparent-expression-wrappers": ["@babel/helper-skip-transparent-expression-wrappers@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], + + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], + + "@babel/helpers": ["@babel/helpers@7.29.2", "", { "dependencies": { "@babel/template": "^7.28.6", "@babel/types": "^7.29.0" } }, "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw=="], + + "@babel/parser": ["@babel/parser@7.29.2", "", { "dependencies": { "@babel/types": "^7.29.0" }, "bin": "./bin/babel-parser.js" }, "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA=="], + + "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w=="], + + "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A=="], + + "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.28.6", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw=="], + + "@babel/template": ["@babel/template@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ=="], + + "@babel/traverse": ["@babel/traverse@7.29.0", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/types": "^7.29.0", "debug": "^4.3.1" } }, "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA=="], + + "@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="], + + "@braintree/sanitize-url": ["@braintree/sanitize-url@7.1.2", "", {}, "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA=="], + + "@chevrotain/cst-dts-gen": ["@chevrotain/cst-dts-gen@12.0.0", "", { "dependencies": { "@chevrotain/gast": "12.0.0", "@chevrotain/types": "12.0.0" } }, "sha512-fSL4KXjTl7cDgf0B5Rip9Q05BOrYvkJV/RrBTE/bKDN096E4hN/ySpcBK5B24T76dlQ2i32Zc3PAE27jFnFrKg=="], + + "@chevrotain/gast": ["@chevrotain/gast@12.0.0", "", { "dependencies": { "@chevrotain/types": "12.0.0" } }, "sha512-1ne/m3XsIT8aEdrvT33so0GUC+wkctpUPK6zU9IlOyJLUbR0rg4G7ZiApiJbggpgPir9ERy3FRjT6T7lpgetnQ=="], + + "@chevrotain/regexp-to-ast": ["@chevrotain/regexp-to-ast@12.0.0", "", {}, "sha512-p+EW9MaJwgaHguhoqwOtx/FwuGr+DnNn857sXWOi/mClXIkPGl3rn7hGNWvo31HA3vyeQxjqe+H36yZJwYU8cA=="], + + "@chevrotain/types": ["@chevrotain/types@12.0.0", "", {}, "sha512-S+04vjFQKeuYw0/eW3U52LkAHQsB1ASxsPGsLPUyQgrZ2iNNibQrsidruDzjEX2JYfespXMG0eZmXlhA6z7nWA=="], + + "@chevrotain/utils": ["@chevrotain/utils@12.0.0", "", {}, "sha512-lB59uJoaGIfOOL9knQqQRfhl9g7x8/wqFkp13zTdkRu1huG9kg6IJs1O8hqj9rs6h7orGxHJUKb+mX3rPbWGhA=="], + + "@docsearch/css": ["@docsearch/css@4.6.3", "", {}, "sha512-nlOwcXcsNAptQl4vlL4MA78qNJKO0Qlds5GuBjCoePgkebTXLSf8Qt1oyZ3YBshYupKXG9VRGEsk1zr23d+bzQ=="], + + "@docsearch/js": ["@docsearch/js@4.6.3", "", {}, "sha512-qUIX2b4Apew3tv4F0qhmgShsl/Lfw4m6mqv/5/5dWNxwTcDdLMp2s3YwZ+NMGh3IKCg0pBaXm7Q5VdyU5Rj+cQ=="], + + "@docsearch/sidepanel-js": ["@docsearch/sidepanel-js@4.6.3", "", {}, "sha512-grGSmvXzG0if+mrzdIKykvpIAuEQ9u0sEJ2eLRRCaQfJvsWqh2C2/aY04bIzWvDh7myi5rvl8D+tUNsVrjYQ3A=="], + + "@drauu/core": ["@drauu/core@1.0.0", "", {}, "sha512-r1fPyuKaGuNHc8vxRFUT8LxqWjJ3nx+U+zsHcEOurmJoB7uN+zpFw5kTLInfdfvQZ+qF/ebQjw1AwbGcc1XKsQ=="], + + "@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], + + "@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], + + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.7", "", { "os": "aix", "cpu": "ppc64" }, "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.27.7", "", { "os": "android", "cpu": "arm" }, "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.7", "", { "os": "android", "cpu": "arm64" }, "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.27.7", "", { "os": "android", "cpu": "x64" }, "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.7", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.7", "", { "os": "freebsd", "cpu": "x64" }, "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.7", "", { "os": "linux", "cpu": "arm" }, "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.7", "", { "os": "linux", "cpu": "ia32" }, "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.7", "", { "os": "linux", "cpu": "ppc64" }, "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.7", "", { "os": "linux", "cpu": "s390x" }, "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.7", "", { "os": "linux", "cpu": "x64" }, "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.7", "", { "os": "none", "cpu": "arm64" }, "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.7", "", { "os": "none", "cpu": "x64" }, "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.7", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.7", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.7", "", { "os": "none", "cpu": "arm64" }, "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.7", "", { "os": "sunos", "cpu": "x64" }, "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.7", "", { "os": "win32", "cpu": "ia32" }, "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.7", "", { "os": "win32", "cpu": "x64" }, "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg=="], + + "@floating-ui/core": ["@floating-ui/core@1.7.5", "", { "dependencies": { "@floating-ui/utils": "^0.2.11" } }, "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ=="], + + "@floating-ui/dom": ["@floating-ui/dom@1.1.1", "", { "dependencies": { "@floating-ui/core": "^1.1.0" } }, "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw=="], + + "@floating-ui/utils": ["@floating-ui/utils@0.2.11", "", {}, "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg=="], + + "@iconify-json/carbon": ["@iconify-json/carbon@1.2.20", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-wqyxKEbIRdzGdfCAwQqn8iSfO6jx0m1toZAAQdx1NFjxd6iFl1YY4eKI1woWt7XOxs7s7phMW530kDD867JZGw=="], + + "@iconify-json/codicon": ["@iconify-json/codicon@1.2.52", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-yOf2BhHJBflzaBq5hkxqToecCi1gTPfDFLooKgzBZygSVU8Wx895gqd7/9X+/xC06tGgwvSWEkQehAy39ByiIQ=="], + + "@iconify-json/logos": ["@iconify-json/logos@1.2.11", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-fOo4pGEatuyuCFNL+cwquYMa2Im0oJHRHV7lt/Qqs5Ode/lPImHCQcfTtPzZj7qYMPb/h8YHN3TG54uEowrjNQ=="], + + "@iconify-json/mdi": ["@iconify-json/mdi@1.2.3", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg=="], + + "@iconify-json/ph": ["@iconify-json/ph@1.2.2", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-PgkEZNtqa8hBGjHXQa4pMwZa93hmfu8FUSjs/nv4oUU6yLsgv+gh9nu28Kqi8Fz9CCVu4hj1MZs9/60J57IzFw=="], + + "@iconify-json/simple-icons": ["@iconify-json/simple-icons@1.2.80", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-iglncJJ6X/dVuzFDU32MrHwwo4RBwivGf108dgyYg+HKS78ifx0h7sTenpDZMVT+UhdS6CSgZcvY/SvRXlIEUg=="], + + "@iconify-json/svg-spinners": ["@iconify-json/svg-spinners@1.2.4", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-ayn0pogFPwJA1WFZpDnoq9/hjDxN+keeCMyThaX4d3gSJ3y0mdKUxIA/b1YXWGtY9wVtZmxwcvOIeEieG4+JNg=="], + + "@iconify-json/twemoji": ["@iconify-json/twemoji@1.2.5", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-uKpuIEV0v6K5BW3Mjdyl+XKFVAbbcPxAgifKvEMtZoUZB5+YiY5zaMm2uNNCxyXzAWU9yNLlj41WU6/mvgALsw=="], + + "@iconify-json/uil": ["@iconify-json/uil@1.2.3", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-if91+UBhDQc6glPsIaXecGIcXnbQZfEO4Gdv89TV2xQ+V5e9GWbY5rNl2fsKZd8COsRQ5lRQAKimVQVL0CZZVg=="], + + "@iconify-json/uim": ["@iconify-json/uim@1.2.3", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-rCOU5nrRbcg5s5ZhL9Esoj/acyPeb6hPetVQYMJ18/wJwYsQtcwrFJXy6XOwyFs9TTLnjFGynLJO/TYihOQtDg=="], + + "@iconify-json/vscode-icons": ["@iconify-json/vscode-icons@1.2.47", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-+fHFC8V6mV+XimgtgB5LRcV4CXPqWMNOzS6C8icypUwyZhHvhOCee5PGHxVGm+dsdXNmnbcVQ/cIXqj9dLkAmw=="], + + "@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="], + + "@iconify/utils": ["@iconify/utils@3.1.1", "", { "dependencies": { "@antfu/install-pkg": "^1.1.0", "@iconify/types": "^2.0.0", "mlly": "^1.8.2" } }, "sha512-MwzoDtw9rO1x+qfgLTV/IVXsHDBqeYZoMIQC8SfxfYSlaSUG+oWiAcoiB1yajAda6mqblm4/1/w2E8tRu7a7Tw=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@mdit-vue/plugin-component": ["@mdit-vue/plugin-component@3.0.2", "", { "dependencies": { "@types/markdown-it": "^14.1.2", "markdown-it": "^14.1.0" } }, "sha512-Fu53MajrZMOAjOIPGMTdTXgHLgGU9KwTqKtYc6WNYtFZNKw04euSfJ/zFg8eBY/2MlciVngkF7Gyc2IL7e8Bsw=="], + + "@mdit-vue/plugin-frontmatter": ["@mdit-vue/plugin-frontmatter@3.0.2", "", { "dependencies": { "@mdit-vue/types": "3.0.2", "@types/markdown-it": "^14.1.2", "gray-matter": "^4.0.3", "markdown-it": "^14.1.0" } }, "sha512-QKKgIva31YtqHgSAz7S7hRcL7cHXiqdog4wxTfxeQCHo+9IP4Oi5/r1Y5E93nTPccpadDWzAwr3A0F+kAEnsVQ=="], + + "@mdit-vue/types": ["@mdit-vue/types@3.0.2", "", {}, "sha512-00aAZ0F0NLik6I6Yba2emGbHLxv+QYrPH00qQ5dFKXlAo1Ll2RHDXwY7nN2WAfrx2pP+WrvSRFTGFCNGdzBDHw=="], + + "@mermaid-js/parser": ["@mermaid-js/parser@1.1.0", "", { "dependencies": { "langium": "^4.0.0" } }, "sha512-gxK9ZX2+Fex5zu8LhRQoMeMPEHbc73UKZ0FQ54YrQtUxE1VVhMwzeNtKRPAu5aXks4FasbMe4xB4bWrmq6Jlxw=="], + + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="], + + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + + "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + + "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + + "@nuxt/kit": ["@nuxt/kit@3.21.4", "", { "dependencies": { "c12": "^3.3.4", "consola": "^3.4.2", "defu": "^6.1.7", "destr": "^2.0.5", "errx": "^0.1.0", "exsolve": "^1.0.8", "ignore": "^7.0.5", "jiti": "^2.6.1", "klona": "^2.0.6", "knitwork": "^1.3.0", "mlly": "^1.8.2", "ohash": "^2.0.11", "pathe": "^2.0.3", "pkg-types": "^2.3.1", "rc9": "^3.0.1", "scule": "^1.3.0", "semver": "^7.7.4", "tinyglobby": "^0.2.16", "ufo": "^1.6.4", "unctx": "^2.5.0", "untyped": "^2.0.0" } }, "sha512-XDWhQJsA5hpdFpVSmImQIVXcsANJI07TjT1LZC/AUKJxl/dcM52Rq4uU+b3uqyVl4LZR1fODSDEzLxcdXq4Rmg=="], + + "@oxc-parser/binding-android-arm-eabi": ["@oxc-parser/binding-android-arm-eabi@0.124.0", "", { "os": "android", "cpu": "arm" }, "sha512-+R9zCafSL8ovjokdPtorUp3sXrh8zQ2AC2L0ivXNvlLR0WS+5WdPkNVrnENq5UvzagM4Xgl0NPsJKz3Hv9+y8g=="], + + "@oxc-parser/binding-android-arm64": ["@oxc-parser/binding-android-arm64@0.124.0", "", { "os": "android", "cpu": "arm64" }, "sha512-ULHC/gVZ+nP4pd3kNNQTYaQ/e066BW/KuY5qUsvwkVWwOUQGDg+WpfyVOmQ4xfxoue6cMlkKkJ+ntdzfDXpNlg=="], + + "@oxc-parser/binding-darwin-arm64": ["@oxc-parser/binding-darwin-arm64@0.124.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-fGJ2hw7bnbUYn6UvTjp0m4WJ9zXz3cohgcwcgeo7gUZehpPNpvcVEVeIVHNmHnAuAw/ysf4YJR8DA1E+xCA4Lw=="], + + "@oxc-parser/binding-darwin-x64": ["@oxc-parser/binding-darwin-x64@0.124.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-j0+re9pgps5BH2Tk3fm59Hi3QuLP3C4KhqXi6A+wRHHHJWDFR8mc/KI9mBrfk2JRT+15doGo+zv1eN75/9DuOw=="], + + "@oxc-parser/binding-freebsd-x64": ["@oxc-parser/binding-freebsd-x64@0.124.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-0k5mS0npnrhKy72UfF51lpOZ2ESoPWn6gdFw+RdeRWcokraDW1O2kSx3laQ+yk7cCEavQdJSpWCYS/GvBbUCXQ=="], + + "@oxc-parser/binding-linux-arm-gnueabihf": ["@oxc-parser/binding-linux-arm-gnueabihf@0.124.0", "", { "os": "linux", "cpu": "arm" }, "sha512-P/i4eguRWvAUfGdfhQYg1jpwYkyUV6D3gefIH7HhmRl1Ph6P4IqTIEVcyJr1i/3vr1V5OHU4wonH6/ue/Qzvrw=="], + + "@oxc-parser/binding-linux-arm-musleabihf": ["@oxc-parser/binding-linux-arm-musleabihf@0.124.0", "", { "os": "linux", "cpu": "arm" }, "sha512-/ameqFQH5fFP+66Atr8Ynv/2rYe4utcU7L4MoWS5JtrFLVO78g4qDLavyIlJxa6caSwYOvG/eO3c/DXqY5/6Rw=="], + + "@oxc-parser/binding-linux-arm64-gnu": ["@oxc-parser/binding-linux-arm64-gnu@0.124.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-gNeyEcXTtfrRCbj2EfxWU85Fs0wIX3p44Y3twnvuMfkWlLrb9M1Z25AYNSKjJM+fdAjeeQCjw0on47zFuBYwQw=="], + + "@oxc-parser/binding-linux-arm64-musl": ["@oxc-parser/binding-linux-arm64-musl@0.124.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-uvG7v4Tz9S8/PVqY0SP0DLHxo4hZGe+Pv2tGVnwcsjKCCUPjplbrFVvDzXq+kOaEoUkiCY0Kt1hlZ6FDJ1LKNQ=="], + + "@oxc-parser/binding-linux-ppc64-gnu": ["@oxc-parser/binding-linux-ppc64-gnu@0.124.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-t7KZaaUhfp2au0MRpoENEFqwLKYDdptEry6V7pTAVdPEcFG4P6ii8yeGU9m6p5vb+b8WEKmdpGMNXBEYy7iJdw=="], + + "@oxc-parser/binding-linux-riscv64-gnu": ["@oxc-parser/binding-linux-riscv64-gnu@0.124.0", "", { "os": "linux", "cpu": "none" }, "sha512-eurGGaxHZiIQ+fBSageS8TAkRqZgdOiBeqNrWAqAPup9hXBTmQ0WcBjwsLElf+3jvDL9NhnX0dOgOqPfsjSjdg=="], + + "@oxc-parser/binding-linux-riscv64-musl": ["@oxc-parser/binding-linux-riscv64-musl@0.124.0", "", { "os": "linux", "cpu": "none" }, "sha512-d1V7/ll1i/LhqE/gZy6Wbz6evlk0egh2XKkwMI3epiojtbtUwQSLIER0Y3yDBBocPuWOjJdvmjtEmPTTLXje/w=="], + + "@oxc-parser/binding-linux-s390x-gnu": ["@oxc-parser/binding-linux-s390x-gnu@0.124.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-w1+cBvriUteOpox6ATqCFVkpGL47PFdcfCPGmgUZbd78Fw44U0gQkc+kVGvAOTvGrptMYgwomD1c6OTVvkrpGg=="], + + "@oxc-parser/binding-linux-x64-gnu": ["@oxc-parser/binding-linux-x64-gnu@0.124.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RRB1evQiXRtMCsQQiAh9U0H3HzguLpE0ytfStuhRgmOj7tqUCOVxkHsvM9geZjAax6NqVRj7VXx32qjjkZPsBw=="], + + "@oxc-parser/binding-linux-x64-musl": ["@oxc-parser/binding-linux-x64-musl@0.124.0", "", { "os": "linux", "cpu": "x64" }, "sha512-asVYN0qmSHlCU8H9Q47SmeJ/Z5EG4IWCC+QGxkfFboI5qh15aLlJnHmnrV61MwQRPXGnVC/sC3qKhrUyqGxUqw=="], + + "@oxc-parser/binding-openharmony-arm64": ["@oxc-parser/binding-openharmony-arm64@0.124.0", "", { "os": "none", "cpu": "arm64" }, "sha512-nhwuxm6B8pn9lzAzMUfa571L5hCXYwQo8C8cx5aGOuHWCzruR8gPJnRRXGBci+uGaIIQEZDyU/U6HDgrSp/JlQ=="], + + "@oxc-parser/binding-wasm32-wasi": ["@oxc-parser/binding-wasm32-wasi@0.124.0", "", { "dependencies": { "@napi-rs/wasm-runtime": "^1.1.2" }, "cpu": "none" }, "sha512-LWuq4Dl9tff7n+HjJcqoBjDlVCtruc0shgtdtGM+rTUIE9aFxHA/P+wCYR+aWMjN8m9vNaRME/sKXErmhmeKrA=="], + + "@oxc-parser/binding-win32-arm64-msvc": ["@oxc-parser/binding-win32-arm64-msvc@0.124.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-aOh3Lf3AeH0dgzT4yBXcArFZ8VhqNXwZ/xlN0GqBtgVaGoHOOqL2YHlcVIgT+ghsXPVR2PTtYgBiQ1CNK7jp5A=="], + + "@oxc-parser/binding-win32-ia32-msvc": ["@oxc-parser/binding-win32-ia32-msvc@0.124.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-sib5xC0nz/+SCpaETBuHBz4SXS02KuG5HtyOcHsO/SK5ZvLRGhOZx0elDKawjb6adFkD7dQCqpXUS25wY6ELKQ=="], + + "@oxc-parser/binding-win32-x64-msvc": ["@oxc-parser/binding-win32-x64-msvc@0.124.0", "", { "os": "win32", "cpu": "x64" }, "sha512-UgojtjGUgZgAZQYt7SC6VO65OVdxEkRe2q+2vbHJO//18qw3Hrk6UvHGQKldsQKgbVcIBT/YBrt85YberiYIPQ=="], + + "@oxc-project/types": ["@oxc-project/types@0.124.0", "", {}, "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg=="], + + "@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], + + "@quansync/fs": ["@quansync/fs@1.0.0", "", { "dependencies": { "quansync": "^1.0.0" } }, "sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ=="], + + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-rc.13", "", {}, "sha512-3ngTAv6F/Py35BsYbeeLeecvhMKdsKm4AoOETVhAA+Qc8nrA2I0kF7oa93mE9qnIurngOSpMnQ0x2nQY2FPviA=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.60.2", "", { "os": "android", "cpu": "arm" }, "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.60.2", "", { "os": "android", "cpu": "arm64" }, "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.60.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.60.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.60.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.60.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.60.2", "", { "os": "linux", "cpu": "arm" }, "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.60.2", "", { "os": "linux", "cpu": "arm" }, "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.60.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.60.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.60.2", "", { "os": "linux", "cpu": "none" }, "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A=="], + + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.60.2", "", { "os": "linux", "cpu": "none" }, "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.60.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw=="], + + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.60.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.60.2", "", { "os": "linux", "cpu": "none" }, "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.60.2", "", { "os": "linux", "cpu": "none" }, "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.60.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.60.2", "", { "os": "linux", "cpu": "x64" }, "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.60.2", "", { "os": "linux", "cpu": "x64" }, "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw=="], + + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.60.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.60.2", "", { "os": "none", "cpu": "arm64" }, "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.60.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.60.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.60.2", "", { "os": "win32", "cpu": "x64" }, "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.60.2", "", { "os": "win32", "cpu": "x64" }, "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA=="], + + "@shikijs/core": ["@shikijs/core@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA=="], + + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag=="], + + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g=="], + + "@shikijs/langs": ["@shikijs/langs@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0" } }, "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg=="], + + "@shikijs/markdown-it": ["@shikijs/markdown-it@4.0.2", "", { "dependencies": { "markdown-it": "^14.1.1", "shiki": "4.0.2" }, "peerDependencies": { "markdown-it-async": "^2.2.0" }, "optionalPeers": ["markdown-it-async"] }, "sha512-7DDEhknj/mXTN7ME8CjKWBv5O/4YgOiJBZLgs/NbUFMC7Ik1x/VEhaK+aBjX60bJdok0E2mxEYan/GzJ2xRx+A=="], + + "@shikijs/monaco": ["@shikijs/monaco@4.0.2", "", { "dependencies": { "@shikijs/core": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-yA49DPAjDyj9D8yxyr1S7qjcT1TVv6BqhZ+sXccwqcdp83RuncYOCUkJ1rjqAu3NA8YDc2wdesD+/js5pHJdqg=="], + + "@shikijs/primitive": ["@shikijs/primitive@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw=="], + + "@shikijs/themes": ["@shikijs/themes@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0" } }, "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA=="], + + "@shikijs/transformers": ["@shikijs/transformers@3.23.0", "", { "dependencies": { "@shikijs/core": "3.23.0", "@shikijs/types": "3.23.0" } }, "sha512-F9msZVxdF+krQNSdQ4V+Ja5QemeAoTQ2jxt7nJCwhDsdF1JWS3KxIQXA3lQbyKwS3J61oHRUSv4jYWv3CkaKTQ=="], + + "@shikijs/twoslash": ["@shikijs/twoslash@3.23.0", "", { "dependencies": { "@shikijs/core": "3.23.0", "@shikijs/types": "3.23.0", "twoslash": "^0.3.6" }, "peerDependencies": { "typescript": ">=5.5.0" } }, "sha512-pNaLJWMA3LU7PhT8tm9OQBZ1epy0jmdgeJzntBtr1EVXLbHxGzTj3mnf9vOdcl84l96qnlJXkJ/NGXZYBpXl5g=="], + + "@shikijs/types": ["@shikijs/types@3.23.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ=="], + + "@shikijs/vitepress-twoslash": ["@shikijs/vitepress-twoslash@3.23.0", "", { "dependencies": { "@shikijs/twoslash": "3.23.0", "floating-vue": "^5.2.2", "lz-string": "^1.5.0", "magic-string": "^0.30.21", "markdown-it": "^14.1.1", "mdast-util-from-markdown": "^2.0.3", "mdast-util-gfm": "^3.1.0", "mdast-util-to-hast": "^13.2.1", "ohash": "^2.0.11", "shiki": "3.23.0", "twoslash": "^0.3.6", "twoslash-vue": "^0.3.6", "vue": "^3.5.29" } }, "sha512-CnNsKIxxkRxRkL5+m6TNPit563TYfEEqlod8C6N1rfeZvX4xUlRrpoKyoWKmpGSNyjWWeYpMZTUH18YTTOxKfw=="], + + "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], + + "@slidev/client": ["@slidev/client@52.15.0", "", { "dependencies": { "@antfu/utils": "^9.3.0", "@iconify-json/carbon": "^1.2.20", "@iconify-json/ph": "^1.2.2", "@iconify-json/svg-spinners": "^1.2.4", "@shikijs/engine-javascript": "^4.0.2", "@shikijs/monaco": "^4.0.2", "@shikijs/vitepress-twoslash": "^4.0.2", "@slidev/parser": "52.15.0", "@slidev/rough-notation": "^0.1.0", "@slidev/types": "52.15.0", "@typescript/ata": "^0.9.8", "@unhead/vue": "^2.1.13", "@unocss/extractor-mdc": "^66.6.8", "@unocss/preset-mini": "^66.6.8", "@unocss/reset": "^66.6.8", "@vueuse/core": "^14.2.1", "@vueuse/math": "^14.2.1", "@vueuse/motion": "^3.0.3", "ansis": "^4.2.0", "drauu": "^1.0.0", "file-saver": "^2.0.5", "fix-webm-duration": "^1.0.6", "floating-vue": "^5.2.2", "fuse.js": "^7.3.0", "katex": "^0.16.45", "lz-string": "^1.5.0", "mermaid": "^11.14.0", "monaco-editor": "^0.55.1", "nanotar": "^0.3.0", "pptxgenjs": "^4.0.1", "recordrtc": "^5.6.2", "shiki": "^4.0.2", "shiki-magic-move": "^1.3.0", "typescript": "^5.9.3", "unocss": "^66.6.8", "vue": "^3.5.33", "vue-router": "^5.0.6", "yaml": "^2.8.3" } }, "sha512-xAQjerJuDCpqPdBP+xCTIQgfCbyDZQaArIk4JgjUajypbtDLXDSUXE6LS4dyvuiL+vzPnoI1cgYegzcsF3DnKg=="], + + "@slidev/parser": ["@slidev/parser@52.15.0", "", { "dependencies": { "@antfu/utils": "^9.3.0", "@slidev/types": "52.15.0", "yaml": "^2.8.3" } }, "sha512-Ic/QbooZwx+AoGS2Im9IpWO7JT0KumqXD7knYmPiQo1gPXRE6LP9iqhBQe4A2uLQXwhXItFJwkUjvbKOHQ8ofA=="], + + "@slidev/rough-notation": ["@slidev/rough-notation@0.1.0", "", { "dependencies": { "roughjs": "^4.6.6" } }, "sha512-a/CbVmjuoO3E4JbUr2HOTsXndbcrdLWOM+ajbSQIY3gmLFzhjeXHGksGcp1NZ08pJjLZyTCxfz1C7v/ltJqycA=="], + + "@slidev/theme-default": ["@slidev/theme-default@0.25.0", "", { "dependencies": { "@slidev/types": "^0.47.0", "codemirror-theme-vars": "^0.1.2", "prism-theme-vars": "^0.2.4" } }, "sha512-iWvthH1Ny+i6gTwRnEeeU+EiqsHC56UdEO45bqLSNmymRAOWkKUJ/M0o7iahLzHSXsiPu71B7C715WxqjXk2hw=="], + + "@slidev/types": ["@slidev/types@52.15.0", "", { "dependencies": { "@antfu/utils": "^9.3.0", "@shikijs/markdown-it": "^4.0.2", "@vitejs/plugin-vue": "^6.0.6", "@vitejs/plugin-vue-jsx": "^5.1.5", "katex": "^0.16.45", "mermaid": "^11.14.0", "monaco-editor": "^0.55.1", "shiki": "^4.0.2", "unocss": "^66.6.8", "unplugin-icons": "^23.0.1", "unplugin-vue-markdown": "^30.0.0", "vite-plugin-inspect": "^11.3.3", "vite-plugin-remote-assets": "^2.1.0", "vite-plugin-static-copy": "^4.1.0", "vite-plugin-vue-server-ref": "^1.0.0", "vue": "^3.5.33", "vue-router": "^5.0.6" } }, "sha512-9ynICo+RogQeo7cke2Sod0yvIME4q+Qr9ln/6yzDDmPBJlO121SS+wGMV7QQLAFr2alnkNuwdclnbEjHuhSm8g=="], + + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + + "@types/d3": ["@types/d3@7.4.3", "", { "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", "@types/d3-brush": "*", "@types/d3-chord": "*", "@types/d3-color": "*", "@types/d3-contour": "*", "@types/d3-delaunay": "*", "@types/d3-dispatch": "*", "@types/d3-drag": "*", "@types/d3-dsv": "*", "@types/d3-ease": "*", "@types/d3-fetch": "*", "@types/d3-force": "*", "@types/d3-format": "*", "@types/d3-geo": "*", "@types/d3-hierarchy": "*", "@types/d3-interpolate": "*", "@types/d3-path": "*", "@types/d3-polygon": "*", "@types/d3-quadtree": "*", "@types/d3-random": "*", "@types/d3-scale": "*", "@types/d3-scale-chromatic": "*", "@types/d3-selection": "*", "@types/d3-shape": "*", "@types/d3-time": "*", "@types/d3-time-format": "*", "@types/d3-timer": "*", "@types/d3-transition": "*", "@types/d3-zoom": "*" } }, "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww=="], + + "@types/d3-array": ["@types/d3-array@3.2.2", "", {}, "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw=="], + + "@types/d3-axis": ["@types/d3-axis@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw=="], + + "@types/d3-brush": ["@types/d3-brush@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A=="], + + "@types/d3-chord": ["@types/d3-chord@3.0.6", "", {}, "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg=="], + + "@types/d3-color": ["@types/d3-color@3.1.3", "", {}, "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="], + + "@types/d3-contour": ["@types/d3-contour@3.0.6", "", { "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" } }, "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg=="], + + "@types/d3-delaunay": ["@types/d3-delaunay@6.0.4", "", {}, "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw=="], + + "@types/d3-dispatch": ["@types/d3-dispatch@3.0.7", "", {}, "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA=="], + + "@types/d3-drag": ["@types/d3-drag@3.0.7", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ=="], + + "@types/d3-dsv": ["@types/d3-dsv@3.0.7", "", {}, "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g=="], + + "@types/d3-ease": ["@types/d3-ease@3.0.2", "", {}, "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="], + + "@types/d3-fetch": ["@types/d3-fetch@3.0.7", "", { "dependencies": { "@types/d3-dsv": "*" } }, "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA=="], + + "@types/d3-force": ["@types/d3-force@3.0.10", "", {}, "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw=="], + + "@types/d3-format": ["@types/d3-format@3.0.4", "", {}, "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g=="], + + "@types/d3-geo": ["@types/d3-geo@3.1.0", "", { "dependencies": { "@types/geojson": "*" } }, "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ=="], + + "@types/d3-hierarchy": ["@types/d3-hierarchy@3.1.7", "", {}, "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg=="], + + "@types/d3-interpolate": ["@types/d3-interpolate@3.0.4", "", { "dependencies": { "@types/d3-color": "*" } }, "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA=="], + + "@types/d3-path": ["@types/d3-path@3.1.1", "", {}, "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg=="], + + "@types/d3-polygon": ["@types/d3-polygon@3.0.2", "", {}, "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA=="], + + "@types/d3-quadtree": ["@types/d3-quadtree@3.0.6", "", {}, "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg=="], + + "@types/d3-random": ["@types/d3-random@3.0.3", "", {}, "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ=="], + + "@types/d3-scale": ["@types/d3-scale@4.0.9", "", { "dependencies": { "@types/d3-time": "*" } }, "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw=="], + + "@types/d3-scale-chromatic": ["@types/d3-scale-chromatic@3.1.0", "", {}, "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ=="], + + "@types/d3-selection": ["@types/d3-selection@3.0.11", "", {}, "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w=="], + + "@types/d3-shape": ["@types/d3-shape@3.1.8", "", { "dependencies": { "@types/d3-path": "*" } }, "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w=="], + + "@types/d3-time": ["@types/d3-time@3.0.4", "", {}, "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g=="], + + "@types/d3-time-format": ["@types/d3-time-format@4.0.3", "", {}, "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg=="], + + "@types/d3-timer": ["@types/d3-timer@3.0.2", "", {}, "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="], + + "@types/d3-transition": ["@types/d3-transition@3.0.9", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg=="], + + "@types/d3-zoom": ["@types/d3-zoom@3.0.8", "", { "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" } }, "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw=="], + + "@types/debug": ["@types/debug@4.1.13", "", { "dependencies": { "@types/ms": "*" } }, "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw=="], + + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + + "@types/geojson": ["@types/geojson@7946.0.16", "", {}, "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="], + + "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], + + "@types/linkify-it": ["@types/linkify-it@5.0.0", "", {}, "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q=="], + + "@types/markdown-it": ["@types/markdown-it@14.1.2", "", { "dependencies": { "@types/linkify-it": "^5", "@types/mdurl": "^2" } }, "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog=="], + + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + + "@types/mdurl": ["@types/mdurl@2.0.0", "", {}, "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg=="], + + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], + + "@types/node": ["@types/node@25.6.0", "", { "dependencies": { "undici-types": "~7.19.0" } }, "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ=="], + + "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + + "@types/web-bluetooth": ["@types/web-bluetooth@0.0.21", "", {}, "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA=="], + + "@typescript/ata": ["@typescript/ata@0.9.8", "", { "peerDependencies": { "typescript": ">=4.4.4" } }, "sha512-+M815CeDRJS5H5ciWfhFCKp25nNfF+LFWawWAaBhNlquFb2wS5IIMDI+2bKWN3GuU6mpj+FzySsOD29M4nG8Xg=="], + + "@typescript/vfs": ["@typescript/vfs@1.6.4", "", { "dependencies": { "debug": "^4.4.3" }, "peerDependencies": { "typescript": "*" } }, "sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ=="], + + "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], + + "@unhead/vue": ["@unhead/vue@2.1.13", "", { "dependencies": { "hookable": "^6.0.1", "unhead": "2.1.13" }, "peerDependencies": { "vue": ">=3.5.18" } }, "sha512-HYy0shaHRnLNW9r85gppO8IiGz0ONWVV3zGdlT8CQ0tbTwixznJCIiyqV4BSV1aIF1jJIye0pd1p/k6Eab8Z/A=="], + + "@unocss/cli": ["@unocss/cli@66.6.8", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "@unocss/config": "66.6.8", "@unocss/core": "66.6.8", "@unocss/preset-wind3": "66.6.8", "@unocss/preset-wind4": "66.6.8", "@unocss/transformer-directives": "66.6.8", "cac": "^7.0.0", "chokidar": "^5.0.0", "colorette": "^2.0.20", "consola": "^3.4.2", "magic-string": "^0.30.21", "pathe": "^2.0.3", "perfect-debounce": "^2.1.0", "tinyglobby": "^0.2.16", "unplugin-utils": "^0.3.1" }, "bin": { "unocss": "bin/unocss.mjs" } }, "sha512-dJ4AmrhCtQwEDJtpFG7AgJ4Qi4GWnNgWWlLWq4DhKBOCcvldr9k98mscdhs3MOwph25DIxU5MdLRAg/OS1JryQ=="], + + "@unocss/config": ["@unocss/config@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "colorette": "^2.0.20", "consola": "^3.4.2", "unconfig": "^7.5.0" } }, "sha512-f+a8OyhD7ZoK8Pa1b3Cbx1RQc3n5x+Qht/cHg3wh/g4DNQIjBI2EqwSLfBigWhdO96zIqFAdyTlO3onmrJwUOw=="], + + "@unocss/core": ["@unocss/core@66.6.8", "", {}, "sha512-P9IlQfgms+8/nka7fBhiiWU4SPwrTNKbTdK0z1SLnttXMHHjsB2zpG+Vi1JQDpICfY9Y1/2pWtguPE+zeOVu9Q=="], + + "@unocss/extractor-arbitrary-variants": ["@unocss/extractor-arbitrary-variants@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8" } }, "sha512-cOXstpPTOLt/HYcL0OsqFkNau0e8ktZ5Q8fgnXBZjmLGmi+VzdESNlwxZyCXLuamZGnbrZ8lDsKdsGG7P1pMKQ=="], + + "@unocss/extractor-mdc": ["@unocss/extractor-mdc@66.6.8", "", {}, "sha512-l4TZ/5PRRqYup3GB0CwcUGG7CRt4+d1FLqNppjRn3mGR8ILtqZSmZvX1mU7Y90rGjORfE3bLJ0XA0JS2w7Gm5g=="], + + "@unocss/inspector": ["@unocss/inspector@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "@unocss/rule-utils": "66.6.8", "colorette": "^2.0.20", "gzip-size": "^6.0.0", "sirv": "^3.0.2" } }, "sha512-g8uRzXDdmoNRjXX/mZP7m0rWXLtOimyOW7+VFK6FNxRWBmvIGYgTLHkutF6Wyh9lLPDYx3pkkEmfgL35BDT3Sg=="], + + "@unocss/preset-attributify": ["@unocss/preset-attributify@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8" } }, "sha512-YxyRSF5rq0WbY8kCG0gpj3DSXPL89QGxZeqABmceCzPJbXJBBHEJz/pgBPmzSa2Ziulgs0AEkHzWFPfpb2uGTA=="], + + "@unocss/preset-icons": ["@unocss/preset-icons@66.6.8", "", { "dependencies": { "@iconify/utils": "^3.1.0", "@unocss/core": "66.6.8", "ofetch": "^1.5.1" } }, "sha512-+zD5TNGZIXvVOMcvDIYaTXinffpDMERGj6Ch8WTtJluA6qHHBvRuFexoU2bY8nF1r0HZkYzNT9C+RujFSP+6TA=="], + + "@unocss/preset-mini": ["@unocss/preset-mini@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "@unocss/extractor-arbitrary-variants": "66.6.8", "@unocss/rule-utils": "66.6.8" } }, "sha512-vAechrReO7LtWzFAeF54P7CintG2m65SlVlBsi1x2Ru7IdgUNJEHII0MfXUvf9r1x8vsIlhATyaqqtBVT6ps/w=="], + + "@unocss/preset-tagify": ["@unocss/preset-tagify@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8" } }, "sha512-cG6zBYswtWTpeQe/Lb1Bh+IzU4Ck+VI8rpYvrnvSGl22rJjAsXd+buB1P0PjyDpoe924rq0bLTayZ8r6Ayyyvw=="], + + "@unocss/preset-typography": ["@unocss/preset-typography@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "@unocss/rule-utils": "66.6.8" } }, "sha512-wOApJpE0QfeOTWN5RuQts8zS6PXhTZIfjpt6cBj8dmv7+GlIQlwopxL7wcDb2wVwdCByuMvUbWl7nC3kz/iFTA=="], + + "@unocss/preset-uno": ["@unocss/preset-uno@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "@unocss/preset-wind3": "66.6.8" } }, "sha512-z01Rw/rBuahRulwQRnobUFnGqyU+UenOLz72KGn4p0Yh8gBC44fPlNHsOWA0TNediHRJg33HptX4kx16HCVWDg=="], + + "@unocss/preset-web-fonts": ["@unocss/preset-web-fonts@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "ofetch": "^1.5.1" } }, "sha512-AgEHO8h0AkeOT57AOE9PS7dJOa5Rfr0gIyz/FxA7vJ/FwgQL70uX+bRW8kmoH81zcjo5xBP2IX3Z6A8VAOo3Vw=="], + + "@unocss/preset-wind": ["@unocss/preset-wind@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "@unocss/preset-wind3": "66.6.8" } }, "sha512-F0mdmwK/HelYOgBRMHl+Yx/VyARCQJtPlcgPBejI3E9ZWOZlKS7hvPqPrgvS63WTGMHgM3/22cGuYYFjpi/ugA=="], + + "@unocss/preset-wind3": ["@unocss/preset-wind3@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "@unocss/preset-mini": "66.6.8", "@unocss/rule-utils": "66.6.8" } }, "sha512-WNTeDAYCatmEFjBJ4itUmz0TElBvNFqjh5i2/ianDJO/vkd+IYUb03jEPLUppVlvMhy8bN8AunP0AtW3Xf2psA=="], + + "@unocss/preset-wind4": ["@unocss/preset-wind4@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "@unocss/extractor-arbitrary-variants": "66.6.8", "@unocss/rule-utils": "66.6.8" } }, "sha512-CheOm7KXOsTI5t4RXgeYz95CO5p589F6jsyYp+inOCk4N0/d+DWiDHrQ+V0x0HWs3JXWlD+/Va/yXjlc3o2sIw=="], + + "@unocss/reset": ["@unocss/reset@66.6.8", "", {}, "sha512-H+YP3ltizUiPO9FzFgFhv8WGsefO7fTgT1If1/9ritPDqZlvzTqMmjelhcq8D8MGoQ1RQBUvtkZ5HJoKVY0Tgw=="], + + "@unocss/rule-utils": ["@unocss/rule-utils@66.6.8", "", { "dependencies": { "@unocss/core": "^66.6.8", "magic-string": "^0.30.21" } }, "sha512-WR35L07mLP6PElD4hlUHo5KbQ48uz2HT/XCuJyAsHP+15Gv6539hPWA5SresPuva9r8rl+PeGIgMSIKf4A5Ihw=="], + + "@unocss/transformer-attributify-jsx": ["@unocss/transformer-attributify-jsx@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "oxc-parser": "^0.124.0", "oxc-walker": "^0.7.0" } }, "sha512-g+7lvm+8V1MnJ21ialTxFBonCTtenn/KcZQbm0JfvQjgG+KuuSnt3BGEcXAHQZu3eBDGuJuasTHiXWwzCYIRBQ=="], + + "@unocss/transformer-compile-class": ["@unocss/transformer-compile-class@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8" } }, "sha512-37dFuzgYo8ki033KmuvyZXugQRVH1c3+/z5kcWLPhcMR8UJscAtjgRx80S1UvWup2q6TPxPpmy/rMbqWvs3jfg=="], + + "@unocss/transformer-directives": ["@unocss/transformer-directives@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8", "@unocss/rule-utils": "66.6.8", "css-tree": "^3.2.1" } }, "sha512-9hC3mQ8eycliW/igI9le0LovTIMBKoL6crucTkr4MmWuNqICMvNxTmGj5Xh64olBPnascevFwam6xsy+J1lX4Q=="], + + "@unocss/transformer-variant-group": ["@unocss/transformer-variant-group@66.6.8", "", { "dependencies": { "@unocss/core": "66.6.8" } }, "sha512-+t7gJDW3W3z3/f8zBf0DfV2UZyGyFOwG5CIsIj5ofu3VJ91mKD/5ZAH8fD3cryXCBSqslj4yv+8R+BLV07T5AA=="], + + "@unocss/vite": ["@unocss/vite@66.6.8", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "@unocss/config": "66.6.8", "@unocss/core": "66.6.8", "@unocss/inspector": "66.6.8", "chokidar": "^5.0.0", "magic-string": "^0.30.21", "pathe": "^2.0.3", "tinyglobby": "^0.2.16", "unplugin-utils": "^0.3.1" }, "peerDependencies": { "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0-0" } }, "sha512-bXfEnEHdW7zTGLIYU16MsfKSFy3Q47Pevhrt5f9fOGzC4UI1JGkkoQSfoFpXZGliDrhoSFK4Msz9Jt43Ta4j+w=="], + + "@upsetjs/venn.js": ["@upsetjs/venn.js@2.0.0", "", { "optionalDependencies": { "d3-selection": "^3.0.0", "d3-transition": "^3.0.1" } }, "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw=="], + + "@vitejs/plugin-vue": ["@vitejs/plugin-vue@6.0.6", "", { "dependencies": { "@rolldown/pluginutils": "1.0.0-rc.13" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", "vue": "^3.2.25" } }, "sha512-u9HHgfrq3AjXlysn0eINFnWQOJQLO9WN6VprZ8FXl7A2bYisv3Hui9Ij+7QZ41F/WYWarHjwBbXtD7dKg3uxbg=="], + + "@vitejs/plugin-vue-jsx": ["@vitejs/plugin-vue-jsx@5.1.5", "", { "dependencies": { "@babel/core": "^7.29.0", "@babel/plugin-syntax-typescript": "^7.28.6", "@babel/plugin-transform-typescript": "^7.28.6", "@rolldown/pluginutils": "^1.0.0-rc.2", "@vue/babel-plugin-jsx": "^2.0.1" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", "vue": "^3.0.0" } }, "sha512-jIAsvHOEtWpslLOI2MeElGFxH7M8pM83BU/Tor4RLyiwH0FM4nUW3xdvbw20EeU9wc5IspQwMq225K3CMnJEpA=="], + + "@volar/language-core": ["@volar/language-core@2.4.28", "", { "dependencies": { "@volar/source-map": "2.4.28" } }, "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ=="], + + "@volar/source-map": ["@volar/source-map@2.4.28", "", {}, "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ=="], + + "@vue-macros/common": ["@vue-macros/common@3.1.2", "", { "dependencies": { "@vue/compiler-sfc": "^3.5.22", "ast-kit": "^2.1.2", "local-pkg": "^1.1.2", "magic-string-ast": "^1.0.2", "unplugin-utils": "^0.3.0" }, "peerDependencies": { "vue": "^2.7.0 || ^3.2.25" }, "optionalPeers": ["vue"] }, "sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng=="], + + "@vue/babel-helper-vue-transform-on": ["@vue/babel-helper-vue-transform-on@2.0.1", "", {}, "sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA=="], + + "@vue/babel-plugin-jsx": ["@vue/babel-plugin-jsx@2.0.1", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.4", "@babel/types": "^7.28.4", "@vue/babel-helper-vue-transform-on": "2.0.1", "@vue/babel-plugin-resolve-type": "2.0.1", "@vue/shared": "^3.5.22" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "optionalPeers": ["@babel/core"] }, "sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA=="], + + "@vue/babel-plugin-resolve-type": ["@vue/babel-plugin-resolve-type@2.0.1", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/parser": "^7.28.4", "@vue/compiler-sfc": "^3.5.22" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ=="], + + "@vue/compiler-core": ["@vue/compiler-core@3.5.33", "", { "dependencies": { "@babel/parser": "^7.29.2", "@vue/shared": "3.5.33", "entities": "^7.0.1", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "sha512-3PZLQwFw4Za3TC8t0FvTy3wI16Kt+pmwcgNZca4Pj9iWL2E72a/gZlpBtAJvEdDMdCxdG/qq0C7PN0bsJuv0Rw=="], + + "@vue/compiler-dom": ["@vue/compiler-dom@3.5.33", "", { "dependencies": { "@vue/compiler-core": "3.5.33", "@vue/shared": "3.5.33" } }, "sha512-PXq0yrfCLzzL07rbXO4awtXY1Z06LG2eu6Adg3RJFa/j3Cii217XxxLXG22N330gw7GmALCY0Z8RgXEviwgpjA=="], + + "@vue/compiler-sfc": ["@vue/compiler-sfc@3.5.33", "", { "dependencies": { "@babel/parser": "^7.29.2", "@vue/compiler-core": "3.5.33", "@vue/compiler-dom": "3.5.33", "@vue/compiler-ssr": "3.5.33", "@vue/shared": "3.5.33", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", "postcss": "^8.5.10", "source-map-js": "^1.2.1" } }, "sha512-UTUvRO9cY+rROrx/pvN9P5Z7FgA6QGfokUCfhQE4EnmUj3rVnK+CHI0LsEO1pg+I7//iRYMUfcNcCPe7tg0CoA=="], + + "@vue/compiler-ssr": ["@vue/compiler-ssr@3.5.33", "", { "dependencies": { "@vue/compiler-dom": "3.5.33", "@vue/shared": "3.5.33" } }, "sha512-IErjYdnj1qIupG5xxiVIYiiRvDhGWV4zuh/RCrwfYpuL+HWQzeU6lCk/nF9r7olWMnjKxCAkOctT2qFWFkzb1A=="], + + "@vue/devtools-api": ["@vue/devtools-api@8.1.1", "", { "dependencies": { "@vue/devtools-kit": "^8.1.1" } }, "sha512-bsDMJ07b3GN1puVwJb/fyFnj/U2imyswK5UQVLZwVl7O05jDrt6BHxeG5XffmOOdasOj/bOmIjxJvGPxU7pcqw=="], + + "@vue/devtools-kit": ["@vue/devtools-kit@8.1.1", "", { "dependencies": { "@vue/devtools-shared": "^8.1.1", "birpc": "^2.6.1", "hookable": "^5.5.3", "perfect-debounce": "^2.0.0" } }, "sha512-gVBaBv++i+adg4JpH71k9ppl4soyR7Y2McEqO5YNgv0BI1kMZ7BDX5gnwkZ5COYgiCyhejZG+yGNrBAjj6Coqg=="], + + "@vue/devtools-shared": ["@vue/devtools-shared@8.1.1", "", {}, "sha512-+h4ttmJYl/txpxHKaoZcaKpC+pvckgLzIDiSQlaQ7kKthKh8KuwoLW2D8hPJEnqKzXOvu15UHEoGyngAXCz0EQ=="], + + "@vue/language-core": ["@vue/language-core@3.2.7", "", { "dependencies": { "@volar/language-core": "2.4.28", "@vue/compiler-dom": "^3.5.0", "@vue/shared": "^3.5.0", "alien-signals": "^3.1.2", "muggle-string": "^0.4.1", "path-browserify": "^1.0.1", "picomatch": "^4.0.4" } }, "sha512-Gn4q/tRxbpVGLEuARQ43p3YELlNAFgRUVCgW9U5Cr+5q4vfD2bWDWpl3ABbJMXUt5xlE1dF8dkigg2aUq7JYYw=="], + + "@vue/reactivity": ["@vue/reactivity@3.5.33", "", { "dependencies": { "@vue/shared": "3.5.33" } }, "sha512-p8UfIqyIhb0rYGlSgSBV+lPhF2iUSBcRy7enhTmPqKWadHy9kcOFYF1AejYBP9P+avnd3OBbD49DU4pLWX/94A=="], + + "@vue/runtime-core": ["@vue/runtime-core@3.5.33", "", { "dependencies": { "@vue/reactivity": "3.5.33", "@vue/shared": "3.5.33" } }, "sha512-UpFF45RI9//a7rvq7RdOQblb4tup7hHG9QsmIrxkFQLzQ7R8/iNQ5LE15NhLZ1/WcHMU2b47u6P33CPUelHyIQ=="], + + "@vue/runtime-dom": ["@vue/runtime-dom@3.5.33", "", { "dependencies": { "@vue/reactivity": "3.5.33", "@vue/runtime-core": "3.5.33", "@vue/shared": "3.5.33", "csstype": "^3.2.3" } }, "sha512-IOxMsAOwquhfITgmOgaPYl7/j8gKUxUFoflRc+u4LxyD3+783xne8vNta1PONVCvCV9A0w7hkyEepINDqfO0tw=="], + + "@vue/server-renderer": ["@vue/server-renderer@3.5.33", "", { "dependencies": { "@vue/compiler-ssr": "3.5.33", "@vue/shared": "3.5.33" }, "peerDependencies": { "vue": "3.5.33" } }, "sha512-0xylq/8/h44lVG0pZFknv1XIdEgymq2E9n59uTWJBG+dIgiT0TMCSsxrN7nO16Z0MU0MPjFcguBbZV8Itk52Hw=="], + + "@vue/shared": ["@vue/shared@3.5.33", "", {}, "sha512-5vR2QIlmaLG77Ygd4pMP6+SGQ5yox9VhtnbDWTy9DzMzdmeLxZ1QqxrywEZ9sa1AVubfIJyaCG3ytyWU81ufcQ=="], + + "@vueuse/core": ["@vueuse/core@14.2.1", "", { "dependencies": { "@types/web-bluetooth": "^0.0.21", "@vueuse/metadata": "14.2.1", "@vueuse/shared": "14.2.1" }, "peerDependencies": { "vue": "^3.5.0" } }, "sha512-3vwDzV+GDUNpdegRY6kzpLm4Igptq+GA0QkJ3W61Iv27YWwW/ufSlOfgQIpN6FZRMG0mkaz4gglJRtq5SeJyIQ=="], + + "@vueuse/integrations": ["@vueuse/integrations@14.2.1", "", { "dependencies": { "@vueuse/core": "14.2.1", "@vueuse/shared": "14.2.1" }, "peerDependencies": { "async-validator": "^4", "axios": "^1", "change-case": "^5", "drauu": "^0.4", "focus-trap": "^7 || ^8", "fuse.js": "^7", "idb-keyval": "^6", "jwt-decode": "^4", "nprogress": "^0.2", "qrcode": "^1.5", "sortablejs": "^1", "universal-cookie": "^7 || ^8", "vue": "^3.5.0" }, "optionalPeers": ["async-validator", "axios", "change-case", "drauu", "focus-trap", "fuse.js", "idb-keyval", "jwt-decode", "nprogress", "qrcode", "sortablejs", "universal-cookie"] }, "sha512-2LIUpBi/67PoXJGqSDQUF0pgQWpNHh7beiA+KG2AbybcNm+pTGWT6oPGlBgUoDWmYwfeQqM/uzOHqcILpKL7nA=="], + + "@vueuse/math": ["@vueuse/math@14.2.1", "", { "dependencies": { "@vueuse/shared": "14.2.1" }, "peerDependencies": { "vue": "^3.5.0" } }, "sha512-WV4WTm4GBeILnIAOePQNI1UbYv/HjDx1P+0MSXxFyBy3r8I9xVYn6xqBMLkCbXfAVmkr1sA/G5ILM2K8VDtIbA=="], + + "@vueuse/metadata": ["@vueuse/metadata@14.2.1", "", {}, "sha512-1ButlVtj5Sb/HDtIy1HFr1VqCP4G6Ypqt5MAo0lCgjokrk2mvQKsK2uuy0vqu/Ks+sHfuHo0B9Y9jn9xKdjZsw=="], + + "@vueuse/motion": ["@vueuse/motion@3.0.3", "", { "dependencies": { "@vueuse/core": "^13.0.0", "@vueuse/shared": "^13.0.0", "defu": "^6.1.4", "framesync": "^6.1.2", "popmotion": "^11.0.5", "style-value-types": "^5.1.2" }, "optionalDependencies": { "@nuxt/kit": "^3.13.0" }, "peerDependencies": { "vue": ">=3.0.0" } }, "sha512-4B+ITsxCI9cojikvrpaJcLXyq0spj3sdlzXjzesWdMRd99hhtFI6OJ/1JsqwtF73YooLe0hUn/xDR6qCtmn5GQ=="], + + "@vueuse/shared": ["@vueuse/shared@14.2.1", "", { "peerDependencies": { "vue": "^3.5.0" } }, "sha512-shTJncjV9JTI4oVNyF1FQonetYAiTBd+Qj7cY89SWbXSkx7gyhrgtEdF2ZAVWS1S3SHlaROO6F2IesJxQEkZBw=="], + + "acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], + + "alien-signals": ["alien-signals@3.1.2", "", {}, "sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw=="], + + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "ansis": ["ansis@4.2.0", "", {}, "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig=="], + + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "ast-kit": ["ast-kit@2.2.0", "", { "dependencies": { "@babel/parser": "^7.28.5", "pathe": "^2.0.3" } }, "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw=="], + + "ast-walker-scope": ["ast-walker-scope@0.8.3", "", { "dependencies": { "@babel/parser": "^7.28.4", "ast-kit": "^2.1.3" } }, "sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg=="], + + "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], + + "balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.24", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-I2NkZOOrj2XuguvWCK6OVh9GavsNjZjK908Rq3mIBK25+GD8vPX5w2WdxVqnQ7xx3SrZJiCiZFu+/Oz50oSYSA=="], + + "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + + "birpc": ["birpc@2.9.0", "", {}, "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw=="], + + "brace-expansion": ["brace-expansion@5.0.5", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ=="], + + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + + "browserslist": ["browserslist@4.28.2", "", { "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", "electron-to-chromium": "^1.5.328", "node-releases": "^2.0.36", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg=="], + + "bundle-name": ["bundle-name@4.1.0", "", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q=="], + + "c12": ["c12@3.3.4", "", { "dependencies": { "chokidar": "^5.0.0", "confbox": "^0.2.4", "defu": "^6.1.6", "dotenv": "^17.3.1", "exsolve": "^1.0.8", "giget": "^3.2.0", "jiti": "^2.6.1", "ohash": "^2.0.11", "pathe": "^2.0.3", "perfect-debounce": "^2.1.0", "pkg-types": "^2.3.0", "rc9": "^3.0.1" }, "peerDependencies": { "magicast": "*" }, "optionalPeers": ["magicast"] }, "sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA=="], + + "cac": ["cac@7.0.0", "", {}, "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001791", "", {}, "sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ=="], + + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + + "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], + + "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], + + "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + + "chevrotain": ["chevrotain@12.0.0", "", { "dependencies": { "@chevrotain/cst-dts-gen": "12.0.0", "@chevrotain/gast": "12.0.0", "@chevrotain/regexp-to-ast": "12.0.0", "@chevrotain/types": "12.0.0", "@chevrotain/utils": "12.0.0" } }, "sha512-csJvb+6kEiQaqo1woTdSAuOWdN0WTLIydkKrBnS+V5gZz0oqBrp4kQ35519QgK6TpBThiG3V1vNSHlIkv4AglQ=="], + + "chevrotain-allstar": ["chevrotain-allstar@0.4.2", "", { "dependencies": { "lodash-es": "^4.18.1" }, "peerDependencies": { "chevrotain": "^12.0.0" } }, "sha512-J3WoNdejJDlmUR0XXgmJK2GnCYKp2eWHnaG1fGkvnBVQw9Y6piP4Q30ETz47bfvPTeaN/DV0V5jqLDgX4PCygg=="], + + "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], + + "citty": ["citty@0.1.6", "", { "dependencies": { "consola": "^3.2.3" } }, "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ=="], + + "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], + + "codemirror-theme-vars": ["codemirror-theme-vars@0.1.2", "", {}, "sha512-WTau8X2q58b0SOAY9DO+iQVw8JKVEgyQIqArp2D732tcc+pobbMta3bnVMdQdmgwuvNrOFFr6HoxPRoQOgooFA=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "colorette": ["colorette@2.0.20", "", {}, "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="], + + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], + + "commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], + + "confbox": ["confbox@0.2.4", "", {}, "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ=="], + + "consola": ["consola@3.4.2", "", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="], + + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + + "core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="], + + "cose-base": ["cose-base@1.0.3", "", { "dependencies": { "layout-base": "^1.0.0" } }, "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg=="], + + "css-tree": ["css-tree@3.2.1", "", { "dependencies": { "mdn-data": "2.27.1", "source-map-js": "^1.2.1" } }, "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA=="], + + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "cytoscape": ["cytoscape@3.33.3", "", {}, "sha512-Gej7U+OKR+LZ8kvX7rb2HhCYJ0IhvEFsnkud4SB1PR+BUY/TsSO0dmOW59WEVLu51b1Rm+gQRKoz4bLYxGSZ2g=="], + + "cytoscape-cose-bilkent": ["cytoscape-cose-bilkent@4.1.0", "", { "dependencies": { "cose-base": "^1.0.0" }, "peerDependencies": { "cytoscape": "^3.2.0" } }, "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ=="], + + "cytoscape-fcose": ["cytoscape-fcose@2.2.0", "", { "dependencies": { "cose-base": "^2.2.0" }, "peerDependencies": { "cytoscape": "^3.2.0" } }, "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ=="], + + "d3": ["d3@7.9.0", "", { "dependencies": { "d3-array": "3", "d3-axis": "3", "d3-brush": "3", "d3-chord": "3", "d3-color": "3", "d3-contour": "4", "d3-delaunay": "6", "d3-dispatch": "3", "d3-drag": "3", "d3-dsv": "3", "d3-ease": "3", "d3-fetch": "3", "d3-force": "3", "d3-format": "3", "d3-geo": "3", "d3-hierarchy": "3", "d3-interpolate": "3", "d3-path": "3", "d3-polygon": "3", "d3-quadtree": "3", "d3-random": "3", "d3-scale": "4", "d3-scale-chromatic": "3", "d3-selection": "3", "d3-shape": "3", "d3-time": "3", "d3-time-format": "4", "d3-timer": "3", "d3-transition": "3", "d3-zoom": "3" } }, "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA=="], + + "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="], + + "d3-axis": ["d3-axis@3.0.0", "", {}, "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw=="], + + "d3-brush": ["d3-brush@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "3", "d3-transition": "3" } }, "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ=="], + + "d3-chord": ["d3-chord@3.0.1", "", { "dependencies": { "d3-path": "1 - 3" } }, "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g=="], + + "d3-color": ["d3-color@3.1.0", "", {}, "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="], + + "d3-contour": ["d3-contour@4.0.2", "", { "dependencies": { "d3-array": "^3.2.0" } }, "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA=="], + + "d3-delaunay": ["d3-delaunay@6.0.4", "", { "dependencies": { "delaunator": "5" } }, "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A=="], + + "d3-dispatch": ["d3-dispatch@3.0.1", "", {}, "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg=="], + + "d3-drag": ["d3-drag@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" } }, "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg=="], + + "d3-dsv": ["d3-dsv@3.0.1", "", { "dependencies": { "commander": "7", "iconv-lite": "0.6", "rw": "1" }, "bin": { "csv2json": "bin/dsv2json.js", "csv2tsv": "bin/dsv2dsv.js", "dsv2dsv": "bin/dsv2dsv.js", "dsv2json": "bin/dsv2json.js", "json2csv": "bin/json2dsv.js", "json2dsv": "bin/json2dsv.js", "json2tsv": "bin/json2dsv.js", "tsv2csv": "bin/dsv2dsv.js", "tsv2json": "bin/dsv2json.js" } }, "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q=="], + + "d3-ease": ["d3-ease@3.0.1", "", {}, "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w=="], + + "d3-fetch": ["d3-fetch@3.0.1", "", { "dependencies": { "d3-dsv": "1 - 3" } }, "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw=="], + + "d3-force": ["d3-force@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", "d3-timer": "1 - 3" } }, "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg=="], + + "d3-format": ["d3-format@3.1.2", "", {}, "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg=="], + + "d3-geo": ["d3-geo@3.1.1", "", { "dependencies": { "d3-array": "2.5.0 - 3" } }, "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q=="], + + "d3-hierarchy": ["d3-hierarchy@3.1.2", "", {}, "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA=="], + + "d3-interpolate": ["d3-interpolate@3.0.1", "", { "dependencies": { "d3-color": "1 - 3" } }, "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g=="], + + "d3-path": ["d3-path@3.1.0", "", {}, "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ=="], + + "d3-polygon": ["d3-polygon@3.0.1", "", {}, "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg=="], + + "d3-quadtree": ["d3-quadtree@3.0.1", "", {}, "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw=="], + + "d3-random": ["d3-random@3.0.1", "", {}, "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ=="], + + "d3-sankey": ["d3-sankey@0.12.3", "", { "dependencies": { "d3-array": "1 - 2", "d3-shape": "^1.2.0" } }, "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ=="], + + "d3-scale": ["d3-scale@4.0.2", "", { "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", "d3-interpolate": "1.2.0 - 3", "d3-time": "2.1.1 - 3", "d3-time-format": "2 - 4" } }, "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ=="], + + "d3-scale-chromatic": ["d3-scale-chromatic@3.1.0", "", { "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" } }, "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ=="], + + "d3-selection": ["d3-selection@3.0.0", "", {}, "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ=="], + + "d3-shape": ["d3-shape@3.2.0", "", { "dependencies": { "d3-path": "^3.1.0" } }, "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA=="], + + "d3-time": ["d3-time@3.1.0", "", { "dependencies": { "d3-array": "2 - 3" } }, "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q=="], + + "d3-time-format": ["d3-time-format@4.1.0", "", { "dependencies": { "d3-time": "1 - 3" } }, "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg=="], + + "d3-timer": ["d3-timer@3.0.1", "", {}, "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="], + + "d3-transition": ["d3-transition@3.0.1", "", { "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", "d3-ease": "1 - 3", "d3-interpolate": "1 - 3", "d3-timer": "1 - 3" }, "peerDependencies": { "d3-selection": "2 - 3" } }, "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w=="], + + "d3-zoom": ["d3-zoom@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "2 - 3", "d3-transition": "2 - 3" } }, "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw=="], + + "dagre-d3-es": ["dagre-d3-es@7.0.14", "", { "dependencies": { "d3": "^7.9.0", "lodash-es": "^4.17.21" } }, "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg=="], + + "dayjs": ["dayjs@1.11.20", "", {}, "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="], + + "default-browser": ["default-browser@5.5.0", "", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw=="], + + "default-browser-id": ["default-browser-id@5.0.1", "", {}, "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q=="], + + "define-lazy-prop": ["define-lazy-prop@3.0.0", "", {}, "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="], + + "defu": ["defu@6.1.7", "", {}, "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ=="], + + "delaunator": ["delaunator@5.1.0", "", { "dependencies": { "robust-predicates": "^3.0.2" } }, "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ=="], + + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + + "destr": ["destr@2.0.5", "", {}, "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA=="], + + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], + + "diff-match-patch-es": ["diff-match-patch-es@1.0.1", "", {}, "sha512-KhSofrZDERg/NE6Nd+TK53knp2qz0o2Ix8rhkXd3Chfm7Wlo58Eq/juNmkyS6bS+3xS26L3Pstz3BdY/q+e9UQ=="], + + "dompurify": ["dompurify@3.4.1", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-JahakDAIg1gyOm7dlgWSDjV4n7Ip2PKR55NIT6jrMfIgLFgWo81vdr1/QGqWtFNRqXP9UV71oVePtjqS2ebnPw=="], + + "dotenv": ["dotenv@17.4.2", "", {}, "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw=="], + + "drauu": ["drauu@1.0.0", "", { "dependencies": { "@drauu/core": "1.0.0" } }, "sha512-K3a1cbP2l4i0H/bmNM4nyGsY5/hiH5a10sEHlksqKue0+TPQCHrV9DwPad+St06CJwpkdzVJ/FyOYTIAm82rgg=="], + + "duplexer": ["duplexer@0.1.2", "", {}, "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.345", "", {}, "sha512-F9JXQGiMrz6yVNPI2qOVPvB9HzjH5cGzhs8oJ6A28V5L/YnzN/0KsuiibqF+F1Fd9qxFzD1BUnYSd8JfULxTwg=="], + + "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + + "error-stack-parser-es": ["error-stack-parser-es@1.0.5", "", {}, "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA=="], + + "errx": ["errx@0.1.0", "", {}, "sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q=="], + + "esbuild": ["esbuild@0.27.7", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.7", "@esbuild/android-arm": "0.27.7", "@esbuild/android-arm64": "0.27.7", "@esbuild/android-x64": "0.27.7", "@esbuild/darwin-arm64": "0.27.7", "@esbuild/darwin-x64": "0.27.7", "@esbuild/freebsd-arm64": "0.27.7", "@esbuild/freebsd-x64": "0.27.7", "@esbuild/linux-arm": "0.27.7", "@esbuild/linux-arm64": "0.27.7", "@esbuild/linux-ia32": "0.27.7", "@esbuild/linux-loong64": "0.27.7", "@esbuild/linux-mips64el": "0.27.7", "@esbuild/linux-ppc64": "0.27.7", "@esbuild/linux-riscv64": "0.27.7", "@esbuild/linux-s390x": "0.27.7", "@esbuild/linux-x64": "0.27.7", "@esbuild/netbsd-arm64": "0.27.7", "@esbuild/netbsd-x64": "0.27.7", "@esbuild/openbsd-arm64": "0.27.7", "@esbuild/openbsd-x64": "0.27.7", "@esbuild/openharmony-arm64": "0.27.7", "@esbuild/sunos-x64": "0.27.7", "@esbuild/win32-arm64": "0.27.7", "@esbuild/win32-ia32": "0.27.7", "@esbuild/win32-x64": "0.27.7" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], + + "esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], + + "estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + + "exsolve": ["exsolve@1.0.8", "", {}, "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA=="], + + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + + "extend-shallow": ["extend-shallow@2.0.1", "", { "dependencies": { "is-extendable": "^0.1.0" } }, "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="], + + "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], + + "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], + + "fault": ["fault@2.0.1", "", { "dependencies": { "format": "^0.2.0" } }, "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "file-saver": ["file-saver@2.0.5", "", {}, "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="], + + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + + "fix-webm-duration": ["fix-webm-duration@1.0.6", "", {}, "sha512-zVAqi4gE+8ywxJuAyV/rlJVX6CMtvyapEbQx6jyoeX9TMjdqAlt/FdG5d7rXSSkDVzTvS0H7CtwzHcH/vh4FPA=="], + + "floating-vue": ["floating-vue@5.2.2", "", { "dependencies": { "@floating-ui/dom": "~1.1.1", "vue-resize": "^2.0.0-alpha.1" }, "peerDependencies": { "@nuxt/kit": "^3.2.0", "vue": "^3.2.0" }, "optionalPeers": ["@nuxt/kit"] }, "sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg=="], + + "focus-trap": ["focus-trap@8.1.0", "", { "dependencies": { "tabbable": "^6.4.0" } }, "sha512-T65crff26CKV2CZ3csg5y05r+560srp0b8EbAif35euW58hzklVf/Gb4Q+/HCtB8e9III3QFEyk5BWV5XJuOyw=="], + + "format": ["format@0.2.2", "", {}, "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww=="], + + "framesync": ["framesync@6.1.2", "", { "dependencies": { "tslib": "2.4.0" } }, "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "fuse.js": ["fuse.js@7.3.0", "", {}, "sha512-plz8RVjfcDedTGfVngWH1jmJvBvAwi1v2jecfDerbEnMcmOYUEEwKFTHbNoCiYyzaK2Ws8lABkTCcRSqCY1q4w=="], + + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + + "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + + "giget": ["giget@3.2.0", "", { "bin": { "giget": "dist/cli.mjs" } }, "sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A=="], + + "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "gray-matter": ["gray-matter@4.0.3", "", { "dependencies": { "js-yaml": "^3.13.1", "kind-of": "^6.0.2", "section-matter": "^1.0.0", "strip-bom-string": "^1.0.0" } }, "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q=="], + + "gzip-size": ["gzip-size@6.0.0", "", { "dependencies": { "duplexer": "^0.1.2" } }, "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q=="], + + "hachure-fill": ["hachure-fill@0.5.2", "", {}, "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg=="], + + "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="], + + "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], + + "hey-listen": ["hey-listen@1.0.8", "", {}, "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="], + + "hookable": ["hookable@6.1.1", "", {}, "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ=="], + + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], + + "https": ["https@1.0.0", "", {}, "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg=="], + + "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + + "ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + + "image-size": ["image-size@1.2.1", "", { "dependencies": { "queue": "6.0.2" }, "bin": { "image-size": "bin/image-size.js" } }, "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw=="], + + "immediate": ["immediate@3.0.6", "", {}, "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + + "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], + + "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], + + "is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], + + "is-extendable": ["is-extendable@0.1.1", "", {}, "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="], + + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + + "is-wsl": ["is-wsl@3.1.1", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw=="], + + "isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], + + "jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "jszip": ["jszip@3.10.1", "", { "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "setimmediate": "^1.0.5" } }, "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g=="], + + "katex": ["katex@0.16.45", "", { "dependencies": { "commander": "^8.3.0" }, "bin": { "katex": "cli.js" } }, "sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA=="], + + "khroma": ["khroma@2.1.0", "", {}, "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="], + + "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], + + "klona": ["klona@2.0.6", "", {}, "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="], + + "knitwork": ["knitwork@1.3.0", "", {}, "sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw=="], + + "langium": ["langium@4.2.2", "", { "dependencies": { "@chevrotain/regexp-to-ast": "~12.0.0", "chevrotain": "~12.0.0", "chevrotain-allstar": "~0.4.1", "vscode-languageserver": "~9.0.1", "vscode-languageserver-textdocument": "~1.0.11", "vscode-uri": "~3.1.0" } }, "sha512-JUshTRAfHI4/MF9dH2WupvjSXyn8JBuUEWazB8ZVJUtXutT0doDlAv1XKbZ1Pb5sMexa8FF4CFBc0iiul7gbUQ=="], + + "layout-base": ["layout-base@1.0.2", "", {}, "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg=="], + + "lie": ["lie@3.3.0", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ=="], + + "linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="], + + "local-pkg": ["local-pkg@1.1.2", "", { "dependencies": { "mlly": "^1.7.4", "pkg-types": "^2.3.0", "quansync": "^0.2.11" } }, "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A=="], + + "lodash-es": ["lodash-es@4.18.1", "", {}, "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A=="], + + "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], + + "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + + "lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="], + + "magic-regexp": ["magic-regexp@0.10.0", "", { "dependencies": { "estree-walker": "^3.0.3", "magic-string": "^0.30.12", "mlly": "^1.7.2", "regexp-tree": "^0.1.27", "type-level-regexp": "~0.1.17", "ufo": "^1.5.4", "unplugin": "^2.0.0" } }, "sha512-Uly1Bu4lO1hwHUW0CQeSWuRtzCMNO00CmXtS8N6fyvB3B979GOEEeAkiTUDsmbYLAbvpUS/Kt5c4ibosAzVyVg=="], + + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "magic-string-ast": ["magic-string-ast@1.0.3", "", { "dependencies": { "magic-string": "^0.30.19" } }, "sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA=="], + + "mark.js": ["mark.js@8.11.1", "", {}, "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ=="], + + "markdown-exit": ["markdown-exit@1.0.0-beta.9", "", { "dependencies": { "@types/linkify-it": "^5.0.0", "@types/mdurl": "^2.0.0", "entities": "^7.0.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" } }, "sha512-5tzrMKMF367amyBly131vm6eGuWRL2DjBqWaFmPzPbLyuxP0XOmyyyroOAIXuBAMF/3kZbbfqOxvW/SotqKqbQ=="], + + "markdown-it": ["markdown-it@14.1.1", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA=="], + + "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], + + "markdown-title": ["markdown-title@1.0.2", "", {}, "sha512-MqIQVVkz+uGEHi3TsHx/czcxxCbRIL7sv5K5DnYw/tI+apY54IbPefV/cmgxp6LoJSEx/TqcHdLs/298afG5QQ=="], + + "marked": ["marked@16.4.2", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA=="], + + "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="], + + "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.3", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "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" } }, "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q=="], + + "mdast-util-frontmatter": ["mdast-util-frontmatter@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "escape-string-regexp": "^5.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-extension-frontmatter": "^2.0.0" } }, "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA=="], + + "mdast-util-gfm": ["mdast-util-gfm@3.1.0", "", { "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.0.0" } }, "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ=="], + + "mdast-util-gfm-autolink-literal": ["mdast-util-gfm-autolink-literal@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-find-and-replace": "^3.0.0", "micromark-util-character": "^2.0.0" } }, "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ=="], + + "mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" } }, "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ=="], + + "mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg=="], + + "mdast-util-gfm-table": ["mdast-util-gfm-table@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "markdown-table": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg=="], + + "mdast-util-gfm-task-list-item": ["mdast-util-gfm-task-list-item@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ=="], + + "mdast-util-phrasing": ["mdast-util-phrasing@4.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" } }, "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w=="], + + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="], + + "mdast-util-to-markdown": ["mdast-util-to-markdown@2.1.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA=="], + + "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], + + "mdn-data": ["mdn-data@2.27.1", "", {}, "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ=="], + + "mdurl": ["mdurl@2.0.0", "", {}, "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="], + + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], + + "mermaid": ["mermaid@11.14.0", "", { "dependencies": { "@braintree/sanitize-url": "^7.1.1", "@iconify/utils": "^3.0.2", "@mermaid-js/parser": "^1.1.0", "@types/d3": "^7.4.3", "@upsetjs/venn.js": "^2.0.0", "cytoscape": "^3.33.1", "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.2.0", "d3": "^7.9.0", "d3-sankey": "^0.12.3", "dagre-d3-es": "7.0.14", "dayjs": "^1.11.19", "dompurify": "^3.3.1", "katex": "^0.16.25", "khroma": "^2.1.0", "lodash-es": "^4.17.23", "marked": "^16.3.0", "roughjs": "^4.6.6", "stylis": "^4.3.6", "ts-dedent": "^2.2.0", "uuid": "^11.1.0" } }, "sha512-GSGloRsBs+JINmmhl0JDwjpuezCsHB4WGI4NASHxL3fHo3o/BRXTxhDLKnln8/Q0lRFRyDdEjmk1/d5Sn1Xz8g=="], + + "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "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" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], + + "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.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.0.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" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], + + "micromark-extension-frontmatter": ["micromark-extension-frontmatter@2.0.0", "", { "dependencies": { "fault": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg=="], + + "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="], + + "micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="], + + "micromark-factory-space": ["micromark-factory-space@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="], + + "micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="], + + "micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="], + + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], + + "micromark-util-chunked": ["micromark-util-chunked@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="], + + "micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="], + + "micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="], + + "micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="], + + "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="], + + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], + + "micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="], + + "micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="], + + "micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="], + + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], + + "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="], + + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], + + "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], + + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + + "millify": ["millify@6.1.0", "", { "dependencies": { "yargs": "^17.0.1" }, "bin": { "millify": "bin/millify" } }, "sha512-H/E3J6t+DQs/F2YgfDhxUVZz/dF8JXPPKTLHL/yHCcLZLtCXJDUaqvhJXQwqOVBvbyNn4T0WjLpIHd7PAw7fBA=="], + + "minimatch": ["minimatch@10.2.5", "", { "dependencies": { "brace-expansion": "^5.0.5" } }, "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg=="], + + "minisearch": ["minisearch@7.2.0", "", {}, "sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg=="], + + "mlly": ["mlly@1.8.2", "", { "dependencies": { "acorn": "^8.16.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", "ufo": "^1.6.3" } }, "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA=="], + + "monaco-editor": ["monaco-editor@0.55.1", "", { "dependencies": { "dompurify": "3.2.7", "marked": "14.0.0" } }, "sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A=="], + + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "muggle-string": ["muggle-string@0.4.1", "", {}, "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ=="], + + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + + "nanotar": ["nanotar@0.3.0", "", {}, "sha512-Kv2JYYiCzt16Kt5QwAc9BFG89xfPNBx+oQL4GQXD9nLqPkZBiNaqaCWtwnbk/q7UVsTYevvM1b0UF8zmEI4pCg=="], + + "node-fetch-native": ["node-fetch-native@1.6.7", "", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="], + + "node-releases": ["node-releases@2.0.38", "", {}, "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw=="], + + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + + "obug": ["obug@2.1.1", "", {}, "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ=="], + + "ofetch": ["ofetch@1.5.1", "", { "dependencies": { "destr": "^2.0.5", "node-fetch-native": "^1.6.7", "ufo": "^1.6.1" } }, "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA=="], + + "ohash": ["ohash@2.0.11", "", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="], + + "oniguruma-parser": ["oniguruma-parser@0.12.2", "", {}, "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw=="], + + "oniguruma-to-es": ["oniguruma-to-es@4.3.6", "", { "dependencies": { "oniguruma-parser": "^0.12.2", "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA=="], + + "open": ["open@10.2.0", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "wsl-utils": "^0.1.0" } }, "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA=="], + + "oxc-parser": ["oxc-parser@0.124.0", "", { "dependencies": { "@oxc-project/types": "^0.124.0" }, "optionalDependencies": { "@oxc-parser/binding-android-arm-eabi": "0.124.0", "@oxc-parser/binding-android-arm64": "0.124.0", "@oxc-parser/binding-darwin-arm64": "0.124.0", "@oxc-parser/binding-darwin-x64": "0.124.0", "@oxc-parser/binding-freebsd-x64": "0.124.0", "@oxc-parser/binding-linux-arm-gnueabihf": "0.124.0", "@oxc-parser/binding-linux-arm-musleabihf": "0.124.0", "@oxc-parser/binding-linux-arm64-gnu": "0.124.0", "@oxc-parser/binding-linux-arm64-musl": "0.124.0", "@oxc-parser/binding-linux-ppc64-gnu": "0.124.0", "@oxc-parser/binding-linux-riscv64-gnu": "0.124.0", "@oxc-parser/binding-linux-riscv64-musl": "0.124.0", "@oxc-parser/binding-linux-s390x-gnu": "0.124.0", "@oxc-parser/binding-linux-x64-gnu": "0.124.0", "@oxc-parser/binding-linux-x64-musl": "0.124.0", "@oxc-parser/binding-openharmony-arm64": "0.124.0", "@oxc-parser/binding-wasm32-wasi": "0.124.0", "@oxc-parser/binding-win32-arm64-msvc": "0.124.0", "@oxc-parser/binding-win32-ia32-msvc": "0.124.0", "@oxc-parser/binding-win32-x64-msvc": "0.124.0" } }, "sha512-h07SFj/tp2U3cf3+LFX6MmOguQiM9ahwpGs0ZK5CGhgL8p4kk24etrJKsEzhXAvo7mfvoKTZooZ5MLKAPRmJ1g=="], + + "oxc-walker": ["oxc-walker@0.7.0", "", { "dependencies": { "magic-regexp": "^0.10.0" }, "peerDependencies": { "oxc-parser": ">=0.98.0" } }, "sha512-54B4KUhrzbzc4sKvKwVYm7E2PgeROpGba0/2nlNZMqfDyca+yOor5IMb4WLGBatGDT0nkzYdYuzylg7n3YfB7A=="], + + "p-map": ["p-map@7.0.4", "", {}, "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ=="], + + "package-manager-detector": ["package-manager-detector@1.6.0", "", {}, "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA=="], + + "pako": ["pako@1.0.11", "", {}, "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="], + + "path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="], + + "path-data-parser": ["path-data-parser@0.1.0", "", {}, "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w=="], + + "path-to-regexp": ["path-to-regexp@6.3.0", "", {}, "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="], + + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "perfect-debounce": ["perfect-debounce@2.1.0", "", {}, "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], + + "pkg-types": ["pkg-types@2.3.1", "", { "dependencies": { "confbox": "^0.2.4", "exsolve": "^1.0.8", "pathe": "^2.0.3" } }, "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg=="], + + "points-on-curve": ["points-on-curve@0.2.0", "", {}, "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A=="], + + "points-on-path": ["points-on-path@0.2.1", "", { "dependencies": { "path-data-parser": "0.1.0", "points-on-curve": "0.2.0" } }, "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g=="], + + "popmotion": ["popmotion@11.0.5", "", { "dependencies": { "framesync": "6.1.2", "hey-listen": "^1.0.8", "style-value-types": "5.1.2", "tslib": "2.4.0" } }, "sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA=="], + + "postcss": ["postcss@8.5.12", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA=="], + + "pptxgenjs": ["pptxgenjs@4.0.1", "", { "dependencies": { "@types/node": "^22.8.1", "https": "^1.0.0", "image-size": "^1.2.1", "jszip": "^3.10.1" } }, "sha512-TeJISr8wouAuXw4C1F/mC33xbZs/FuEG6nH9FG1Zj+nuPcGMP5YRHl6X+j3HSUnS1f3at6k75ZZXPMZlA5Lj9A=="], + + "pretty-bytes": ["pretty-bytes@7.1.0", "", {}, "sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw=="], + + "prism-theme-vars": ["prism-theme-vars@0.2.5", "", {}, "sha512-/D8gBTScYzi9afwE6v3TC1U/1YFZ6k+ly17mtVRdLpGy7E79YjJJWkXFgUDHJ2gDksV/ZnXF7ydJ4TvoDm2z/Q=="], + + "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="], + + "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="], + + "punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="], + + "quansync": ["quansync@0.2.11", "", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], + + "queue": ["queue@6.0.2", "", { "dependencies": { "inherits": "~2.0.3" } }, "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA=="], + + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + + "rc9": ["rc9@3.0.1", "", { "dependencies": { "defu": "^6.1.6", "destr": "^2.0.5" } }, "sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ=="], + + "readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + + "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], + + "recordrtc": ["recordrtc@5.6.2", "", {}, "sha512-1QNKKNtl7+KcwD1lyOgP3ZlbiJ1d0HtXnypUy7yq49xEERxk31PHvE9RCciDrulPCY7WJ+oz0R9hpNxgsIurGQ=="], + + "regex": ["regex@6.1.0", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg=="], + + "regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], + + "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], + + "regexp-tree": ["regexp-tree@0.1.27", "", { "bin": { "regexp-tree": "bin/regexp-tree" } }, "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA=="], + + "remark": ["remark@15.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A=="], + + "remark-frontmatter": ["remark-frontmatter@5.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-frontmatter": "^2.0.0", "micromark-extension-frontmatter": "^2.0.0", "unified": "^11.0.0" } }, "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ=="], + + "remark-parse": ["remark-parse@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="], + + "remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="], + + "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + + "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], + + "robust-predicates": ["robust-predicates@3.0.3", "", {}, "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA=="], + + "rollup": ["rollup@4.60.2", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.60.2", "@rollup/rollup-android-arm64": "4.60.2", "@rollup/rollup-darwin-arm64": "4.60.2", "@rollup/rollup-darwin-x64": "4.60.2", "@rollup/rollup-freebsd-arm64": "4.60.2", "@rollup/rollup-freebsd-x64": "4.60.2", "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", "@rollup/rollup-linux-arm-musleabihf": "4.60.2", "@rollup/rollup-linux-arm64-gnu": "4.60.2", "@rollup/rollup-linux-arm64-musl": "4.60.2", "@rollup/rollup-linux-loong64-gnu": "4.60.2", "@rollup/rollup-linux-loong64-musl": "4.60.2", "@rollup/rollup-linux-ppc64-gnu": "4.60.2", "@rollup/rollup-linux-ppc64-musl": "4.60.2", "@rollup/rollup-linux-riscv64-gnu": "4.60.2", "@rollup/rollup-linux-riscv64-musl": "4.60.2", "@rollup/rollup-linux-s390x-gnu": "4.60.2", "@rollup/rollup-linux-x64-gnu": "4.60.2", "@rollup/rollup-linux-x64-musl": "4.60.2", "@rollup/rollup-openbsd-x64": "4.60.2", "@rollup/rollup-openharmony-arm64": "4.60.2", "@rollup/rollup-win32-arm64-msvc": "4.60.2", "@rollup/rollup-win32-ia32-msvc": "4.60.2", "@rollup/rollup-win32-x64-gnu": "4.60.2", "@rollup/rollup-win32-x64-msvc": "4.60.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ=="], + + "roughjs": ["roughjs@4.6.6", "", { "dependencies": { "hachure-fill": "^0.5.2", "path-data-parser": "^0.1.0", "points-on-curve": "^0.2.0", "points-on-path": "^0.2.1" } }, "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ=="], + + "run-applescript": ["run-applescript@7.1.0", "", {}, "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q=="], + + "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + + "rw": ["rw@1.3.3", "", {}, "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="], + + "safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], + + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + + "scule": ["scule@1.3.0", "", {}, "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g=="], + + "section-matter": ["section-matter@1.0.0", "", { "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" } }, "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA=="], + + "semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], + + "setimmediate": ["setimmediate@1.0.5", "", {}, "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="], + + "shiki": ["shiki@3.23.0", "", { "dependencies": { "@shikijs/core": "3.23.0", "@shikijs/engine-javascript": "3.23.0", "@shikijs/engine-oniguruma": "3.23.0", "@shikijs/langs": "3.23.0", "@shikijs/themes": "3.23.0", "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA=="], + + "shiki-magic-move": ["shiki-magic-move@1.3.0", "", { "dependencies": { "diff-match-patch-es": "^1.0.1", "ohash": "^2.0.11" }, "peerDependencies": { "react": "^18.2.0 || ^19.0.0", "shiki": "^1.0.0 || ^2.0.0 || ^3.0.0", "solid-js": "^1.9.1", "svelte": "^5.0.0-0", "vue": "^3.4.0" }, "optionalPeers": ["react", "shiki", "solid-js", "svelte", "vue"] }, "sha512-QF3OmGtROCGI3HGaB5hAlB6GPnzrxblZg761wg1NhsWKqb79HCeeVVhJE6fZeU1x/6ZOh7S8o9dBWf6eJZYc6A=="], + + "sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + + "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], + + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], + + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-bom-string": ["strip-bom-string@1.0.0", "", {}, "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g=="], + + "style-value-types": ["style-value-types@5.1.2", "", { "dependencies": { "hey-listen": "^1.0.8", "tslib": "2.4.0" } }, "sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q=="], + + "stylis": ["stylis@4.4.0", "", {}, "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA=="], + + "tabbable": ["tabbable@6.4.0", "", {}, "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg=="], + + "tinyexec": ["tinyexec@1.1.2", "", {}, "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA=="], + + "tinyglobby": ["tinyglobby@0.2.16", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg=="], + + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + + "tokenx": ["tokenx@1.3.0", "", {}, "sha512-NLdXTEZkKiO0gZuLtMoZKjCXTREXeZZt8nnnNeyoXtNZAfG/GKGSbQtLU5STspc0rMSwcA+UJfWZkbNU01iKmQ=="], + + "totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], + + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], + + "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], + + "ts-dedent": ["ts-dedent@2.2.0", "", {}, "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ=="], + + "tslib": ["tslib@2.4.0", "", {}, "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="], + + "twoslash": ["twoslash@0.3.8", "", { "dependencies": { "@typescript/vfs": "^1.6.4", "twoslash-protocol": "0.3.8" }, "peerDependencies": { "typescript": "^5.5.0 || ^6.0.0" } }, "sha512-OeDz0kDl8sqPUN3nr7gqcvOs70f5lZsdhKYTX3/SgB9OvdadzzoYJI/4SBXhXV1HG8E9fLc+e17itoRYTxmoig=="], + + "twoslash-protocol": ["twoslash-protocol@0.3.8", "", {}, "sha512-HmvAHoiEviK8LqvAQyc9/irkdvwTUiR1fHmNwH/0gq8EHxyBt4PWVPixjEXg6wJu1u6yBrILEWXGK9Kw58/8yQ=="], + + "twoslash-vue": ["twoslash-vue@0.3.8", "", { "dependencies": { "@vue/language-core": "^3.2.6", "twoslash": "0.3.8", "twoslash-protocol": "0.3.8" }, "peerDependencies": { "typescript": "^5.5.0 || ^6.0.0" } }, "sha512-5HZAnkQ1R6NXqW9mqsHx4aHVWPb5gb4gfEKiaNczi3q6U7vDZeVv9eONRuPs4qdCd5OJSAIpHeXxIDZmjr0Jww=="], + + "type-level-regexp": ["type-level-regexp@0.1.17", "", {}, "sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg=="], + + "typeit": ["typeit@8.1.0", "", {}, "sha512-cbDoGmPJQLqiDfAjan1DouphW1KBYRWrgNKkyctg9CRHK0sMN7wL9Sg9ctCrSnimJoVmM/QDxlsnonjxaEGUUg=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "uc.micro": ["uc.micro@2.1.0", "", {}, "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="], + + "ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="], + + "unconfig": ["unconfig@7.5.0", "", { "dependencies": { "@quansync/fs": "^1.0.0", "defu": "^6.1.4", "jiti": "^2.6.1", "quansync": "^1.0.0", "unconfig-core": "7.5.0" } }, "sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA=="], + + "unconfig-core": ["unconfig-core@7.5.0", "", { "dependencies": { "@quansync/fs": "^1.0.0", "quansync": "^1.0.0" } }, "sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w=="], + + "unctx": ["unctx@2.5.0", "", { "dependencies": { "acorn": "^8.15.0", "estree-walker": "^3.0.3", "magic-string": "^0.30.21", "unplugin": "^2.3.11" } }, "sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg=="], + + "undici-types": ["undici-types@7.19.2", "", {}, "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg=="], + + "unhead": ["unhead@2.1.13", "", { "dependencies": { "hookable": "^6.0.1" } }, "sha512-jO9M1sI6b2h/1KpIu4Jeu+ptumLmUKboRRLxys5pYHFeT+lqTzfNHbYUX9bxVDhC1FBszAGuWcUVlmvIPsah8Q=="], + + "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], + + "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], + + "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], + + "unist-util-remove": ["unist-util-remove@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg=="], + + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], + + "unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="], + + "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], + + "unocss": ["unocss@66.6.8", "", { "dependencies": { "@unocss/cli": "66.6.8", "@unocss/core": "66.6.8", "@unocss/preset-attributify": "66.6.8", "@unocss/preset-icons": "66.6.8", "@unocss/preset-mini": "66.6.8", "@unocss/preset-tagify": "66.6.8", "@unocss/preset-typography": "66.6.8", "@unocss/preset-uno": "66.6.8", "@unocss/preset-web-fonts": "66.6.8", "@unocss/preset-wind": "66.6.8", "@unocss/preset-wind3": "66.6.8", "@unocss/preset-wind4": "66.6.8", "@unocss/transformer-attributify-jsx": "66.6.8", "@unocss/transformer-compile-class": "66.6.8", "@unocss/transformer-directives": "66.6.8", "@unocss/transformer-variant-group": "66.6.8", "@unocss/vite": "66.6.8" }, "peerDependencies": { "@unocss/astro": "66.6.8", "@unocss/postcss": "66.6.8", "@unocss/webpack": "66.6.8" }, "optionalPeers": ["@unocss/astro", "@unocss/postcss", "@unocss/webpack"] }, "sha512-stq9FbxedTDkoWrxnNQNnPQXOaM6L2Lobq8HzjXdR2tMc55gtfqDArqL7TESfnN7qeZsIocNYCHLNA4DXq50YQ=="], + + "unplugin": ["unplugin@2.3.11", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "acorn": "^8.15.0", "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" } }, "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww=="], + + "unplugin-icons": ["unplugin-icons@22.5.0", "", { "dependencies": { "@antfu/install-pkg": "^1.1.0", "@iconify/utils": "^3.0.2", "debug": "^4.4.3", "local-pkg": "^1.1.2", "unplugin": "^2.3.10" }, "peerDependencies": { "@svgr/core": ">=7.0.0", "@svgx/core": "^1.0.1", "@vue/compiler-sfc": "^3.0.2 || ^2.7.0", "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0", "vue-template-compiler": "^2.6.12", "vue-template-es2015-compiler": "^1.9.0" }, "optionalPeers": ["@svgr/core", "@svgx/core", "@vue/compiler-sfc", "svelte", "vue-template-compiler", "vue-template-es2015-compiler"] }, "sha512-MBlMtT5RuMYZy4TZgqUL2OTtOdTUVsS1Mhj6G1pEzMlFJlEnq6mhUfoIt45gBWxHcsOdXJDWLg3pRZ+YmvAVWQ=="], + + "unplugin-utils": ["unplugin-utils@0.3.1", "", { "dependencies": { "pathe": "^2.0.3", "picomatch": "^4.0.3" } }, "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog=="], + + "unplugin-vue-components": ["unplugin-vue-components@30.0.0", "", { "dependencies": { "chokidar": "^4.0.3", "debug": "^4.4.3", "local-pkg": "^1.1.2", "magic-string": "^0.30.19", "mlly": "^1.8.0", "tinyglobby": "^0.2.15", "unplugin": "^2.3.10", "unplugin-utils": "^0.3.1" }, "peerDependencies": { "@babel/parser": "^7.15.8", "@nuxt/kit": "^3.2.2 || ^4.0.0", "vue": "2 || 3" }, "optionalPeers": ["@babel/parser", "@nuxt/kit"] }, "sha512-4qVE/lwCgmdPTp6h0qsRN2u642tt4boBQtcpn4wQcWZAsr8TQwq+SPT3NDu/6kBFxzo/sSEK4ioXhOOBrXc3iw=="], + + "unplugin-vue-markdown": ["unplugin-vue-markdown@30.0.0", "", { "dependencies": { "@mdit-vue/plugin-component": "^3.0.2", "@mdit-vue/plugin-frontmatter": "^3.0.2", "@mdit-vue/types": "^3.0.2", "markdown-exit": "^1.0.0-beta.8", "unplugin": "^2.3.10", "unplugin-utils": "^0.3.0" }, "peerDependencies": { "vite": "^2.0.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0 || ^7.0.0" } }, "sha512-FVdKAb7jmZslfdkOCfm6jxHaUafltBpOXdoLvKY+0I0EeMmhxXTSzeDldwXFJeV0IH8LyIXIiU29E6gv02WJFQ=="], + + "untyped": ["untyped@2.0.0", "", { "dependencies": { "citty": "^0.1.6", "defu": "^6.1.4", "jiti": "^2.4.2", "knitwork": "^1.2.0", "scule": "^1.3.0" }, "bin": { "untyped": "dist/cli.mjs" } }, "sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g=="], + + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "uuid": ["uuid@11.1.1", "", { "bin": { "uuid": "dist/esm/bin/uuid" } }, "sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ=="], + + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], + + "vite": ["vite@7.3.2", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg=="], + + "vite-dev-rpc": ["vite-dev-rpc@1.1.0", "", { "dependencies": { "birpc": "^2.4.0", "vite-hot-client": "^2.1.0" }, "peerDependencies": { "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0" } }, "sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A=="], + + "vite-hot-client": ["vite-hot-client@2.1.0", "", { "peerDependencies": { "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" } }, "sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ=="], + + "vite-plugin-inspect": ["vite-plugin-inspect@11.3.3", "", { "dependencies": { "ansis": "^4.1.0", "debug": "^4.4.1", "error-stack-parser-es": "^1.0.5", "ohash": "^2.0.11", "open": "^10.2.0", "perfect-debounce": "^2.0.0", "sirv": "^3.0.1", "unplugin-utils": "^0.3.0", "vite-dev-rpc": "^1.1.0" }, "peerDependencies": { "vite": "^6.0.0 || ^7.0.0-0" } }, "sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA=="], + + "vite-plugin-remote-assets": ["vite-plugin-remote-assets@2.1.0", "", { "dependencies": { "debug": "^4.4.1", "magic-string": "^0.30.17", "node-fetch-native": "^1.6.7", "ohash": "^2.0.11" }, "peerDependencies": { "vite": ">=5.0.0" } }, "sha512-8ajL5WG5BmYcC8zxeLOa3byCUG2AopKDAdNK7zStPHaRYYz1mxXBaeNFLu6vTEXj8UmXAsb5WlEmBBYwtlPEwA=="], + + "vite-plugin-static-copy": ["vite-plugin-static-copy@4.1.0", "", { "dependencies": { "chokidar": "^3.6.0", "p-map": "^7.0.4", "picocolors": "^1.1.1", "tinyglobby": "^0.2.15" }, "peerDependencies": { "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-9XOarNV7LgP0KBB7AApxdgFikLXx3daZdqjC3AevYsL6MrUH62zphonLUs2a6LZc1HN1GY+vQdheZ8VVJb6dQQ=="], + + "vite-plugin-vue-server-ref": ["vite-plugin-vue-server-ref@1.0.0", "", { "dependencies": { "debug": "^4.4.0", "klona": "^2.0.6", "mlly": "^1.7.4", "ufo": "^1.5.4" }, "peerDependencies": { "vite": ">=2.0.0", "vue": "^3.0.0" } }, "sha512-6d/JZVrnETM0xa0AVyEcI1bXFpEzQ1EPU5N/gDa7NtXo/7nfJWJhezcWq82Jih6Vf8xtGJjhi1w19AcXAtwmAg=="], + + "vitepress": ["vitepress@2.0.0-alpha.17", "", { "dependencies": { "@docsearch/css": "^4.5.3", "@docsearch/js": "^4.5.3", "@docsearch/sidepanel-js": "^4.5.3", "@iconify-json/simple-icons": "^1.2.69", "@shikijs/core": "^3.22.0", "@shikijs/transformers": "^3.22.0", "@shikijs/types": "^3.22.0", "@types/markdown-it": "^14.1.2", "@vitejs/plugin-vue": "^6.0.4", "@vue/devtools-api": "^8.0.5", "@vue/shared": "^3.5.27", "@vueuse/core": "^14.2.0", "@vueuse/integrations": "^14.2.0", "focus-trap": "^8.0.0", "mark.js": "8.11.1", "minisearch": "^7.2.0", "shiki": "^3.22.0", "vite": "^7.3.1", "vue": "^3.5.27" }, "peerDependencies": { "markdown-it-mathjax3": "^4", "oxc-minify": "*", "postcss": "^8" }, "optionalPeers": ["markdown-it-mathjax3", "oxc-minify", "postcss"], "bin": { "vitepress": "bin/vitepress.js" } }, "sha512-Z3VPUpwk/bHYqt1uMVOOK1/4xFiWQov1GNc2FvMdz6kvje4JRXEOngVI9C+bi5jeedMSHiA4dwKkff1NCvbZ9Q=="], + + "vitepress-plugin-group-icons": ["vitepress-plugin-group-icons@1.7.5", "", { "dependencies": { "@iconify-json/logos": "^1.2.10", "@iconify-json/vscode-icons": "^1.2.45", "@iconify/utils": "^3.1.0" }, "peerDependencies": { "vite": ">=3" }, "optionalPeers": ["vite"] }, "sha512-QzcroUuIiVKyXpmEiiHVbfRTQIy9Zbwxpk5JC/zavO8mavitwumz2RZWlwTchMCCHducYyPptkYvXvdnNUWkog=="], + + "vitepress-plugin-llms": ["vitepress-plugin-llms@1.12.1", "", { "dependencies": { "gray-matter": "^4.0.3", "markdown-it": "^14.1.0", "markdown-title": "^1.0.2", "mdast-util-from-markdown": "^2.0.3", "millify": "^6.1.0", "minimatch": "^10.2.5", "path-to-regexp": "^6.3.0", "picocolors": "^1.1.1", "pretty-bytes": "^7.1.0", "remark": "^15.0.1", "remark-frontmatter": "^5.0.0", "tokenx": "^1.3.0", "unist-util-remove": "^4.0.0", "unist-util-visit": "^5.1.0" } }, "sha512-mUbjxXbNCWIxTZPuxh1smbjRpU1j5Bw5sXKoWeU/kfWCyALE92HyiAXhOgNVAB8QOLCuXticf3Qwsj/YlWROlw=="], + + "vscode-jsonrpc": ["vscode-jsonrpc@8.2.0", "", {}, "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA=="], + + "vscode-languageserver": ["vscode-languageserver@9.0.1", "", { "dependencies": { "vscode-languageserver-protocol": "3.17.5" }, "bin": { "installServerIntoExtension": "bin/installServerIntoExtension" } }, "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g=="], + + "vscode-languageserver-protocol": ["vscode-languageserver-protocol@3.17.5", "", { "dependencies": { "vscode-jsonrpc": "8.2.0", "vscode-languageserver-types": "3.17.5" } }, "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg=="], + + "vscode-languageserver-textdocument": ["vscode-languageserver-textdocument@1.0.12", "", {}, "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA=="], + + "vscode-languageserver-types": ["vscode-languageserver-types@3.17.5", "", {}, "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="], + + "vscode-uri": ["vscode-uri@3.1.0", "", {}, "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ=="], + + "vue": ["vue@3.5.33", "", { "dependencies": { "@vue/compiler-dom": "3.5.33", "@vue/compiler-sfc": "3.5.33", "@vue/runtime-dom": "3.5.33", "@vue/server-renderer": "3.5.33", "@vue/shared": "3.5.33" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-1AgChhx5w3ALgT4oK3acm2Es/7jyZhWSVUfs3rOBlGQC0rjEDkS7G4lWlJJGGNQD+BV3reCwbQrOe1mPNwKHBQ=="], + + "vue-resize": ["vue-resize@2.0.0-alpha.1", "", { "peerDependencies": { "vue": "^3.0.0" } }, "sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg=="], + + "vue-router": ["vue-router@5.0.6", "", { "dependencies": { "@babel/generator": "^7.28.6", "@vue-macros/common": "^3.1.1", "@vue/devtools-api": "^8.0.6", "ast-walker-scope": "^0.8.3", "chokidar": "^5.0.0", "json5": "^2.2.3", "local-pkg": "^1.1.2", "magic-string": "^0.30.21", "mlly": "^1.8.0", "muggle-string": "^0.4.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "scule": "^1.3.0", "tinyglobby": "^0.2.15", "unplugin": "^3.0.0", "unplugin-utils": "^0.3.1", "yaml": "^2.8.2" }, "peerDependencies": { "@pinia/colada": ">=0.21.2", "@vue/compiler-sfc": "^3.5.17", "pinia": "^3.0.4", "vue": "^3.5.0" }, "optionalPeers": ["@pinia/colada", "@vue/compiler-sfc", "pinia"] }, "sha512-9+kmUTGbKMyW9Asoy98IXXYIzrTMT7JDAdpDDeEkorHvybpUvBI2wsrSM5jFOXrFydpzRFJ9vAh+80DN2PGu9w=="], + + "webpack-virtual-modules": ["webpack-virtual-modules@0.6.2", "", {}, "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="], + + "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + + "wsl-utils": ["wsl-utils@0.1.0", "", { "dependencies": { "is-wsl": "^3.1.0" } }, "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw=="], + + "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], + + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + + "yaml": ["yaml@2.8.3", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg=="], + + "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="], + + "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], + + "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + + "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "@emnapi/core/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@emnapi/runtime/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@emnapi/wasi-threads/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@quansync/fs/quansync": ["quansync@1.0.0", "", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="], + + "@shikijs/engine-javascript/@shikijs/types": ["@shikijs/types@4.0.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg=="], + + "@shikijs/markdown-it/shiki": ["shiki@4.0.2", "", { "dependencies": { "@shikijs/core": "4.0.2", "@shikijs/engine-javascript": "4.0.2", "@shikijs/engine-oniguruma": "4.0.2", "@shikijs/langs": "4.0.2", "@shikijs/themes": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ=="], + + "@shikijs/monaco/@shikijs/core": ["@shikijs/core@4.0.2", "", { "dependencies": { "@shikijs/primitive": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw=="], + + "@shikijs/monaco/@shikijs/types": ["@shikijs/types@4.0.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg=="], + + "@shikijs/primitive/@shikijs/types": ["@shikijs/types@4.0.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg=="], + + "@slidev/client/@shikijs/vitepress-twoslash": ["@shikijs/vitepress-twoslash@4.0.2", "", { "dependencies": { "@shikijs/twoslash": "4.0.2", "floating-vue": "^5.2.2", "lz-string": "^1.5.0", "magic-string": "^0.30.21", "markdown-it": "^14.1.1", "mdast-util-from-markdown": "^2.0.3", "mdast-util-gfm": "^3.1.0", "mdast-util-to-hast": "^13.2.1", "ohash": "^2.0.11", "shiki": "4.0.2", "twoslash": "^0.3.6", "twoslash-vue": "^0.3.6", "vue": "^3.5.29" } }, "sha512-Bk01fAYDDiTffRPLHNJdNlYwzExXIVcrHUVNciD931SMlKZArvteKib6mM3mWAUhcy78RW1llT3fczjKIgQHBA=="], + + "@slidev/client/shiki": ["shiki@4.0.2", "", { "dependencies": { "@shikijs/core": "4.0.2", "@shikijs/engine-javascript": "4.0.2", "@shikijs/engine-oniguruma": "4.0.2", "@shikijs/langs": "4.0.2", "@shikijs/themes": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ=="], + + "@slidev/theme-default/@slidev/types": ["@slidev/types@0.47.5", "", {}, "sha512-X67V4cCgM0Sz50bP8GbVzmiL8DHC2IXvdKcsN7DlxHyf+/T4d9GveeGukwha5Fx3MuYeGZWKag7TFL2ZY4w54A=="], + + "@slidev/types/shiki": ["shiki@4.0.2", "", { "dependencies": { "@shikijs/core": "4.0.2", "@shikijs/engine-javascript": "4.0.2", "@shikijs/engine-oniguruma": "4.0.2", "@shikijs/langs": "4.0.2", "@shikijs/themes": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ=="], + + "@slidev/types/unplugin-icons": ["unplugin-icons@23.0.1", "", { "dependencies": { "@antfu/install-pkg": "^1.1.0", "@iconify/utils": "^3.1.0", "local-pkg": "^1.1.2", "obug": "^2.1.1", "unplugin": "^2.3.11" }, "peerDependencies": { "@svgr/core": ">=7.0.0", "@svgx/core": "^1.0.1", "@vue/compiler-sfc": "^3.0.2", "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["@svgr/core", "@svgx/core", "@vue/compiler-sfc", "svelte"] }, "sha512-rv0XEJepajKzDLvRUWASM8K+8+/CCfZn2jtogXqg6RIp7kpatRc/aFrVJn8ANQA09e++lPEEv9yX8cC9enc+QQ=="], + + "@tybys/wasm-util/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@unocss/cli/chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], + + "@unocss/vite/chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], + + "@vue/compiler-core/entities": ["entities@7.0.1", "", {}, "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA=="], + + "@vue/devtools-kit/hookable": ["hookable@5.5.3", "", {}, "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ=="], + + "@vueuse/motion/@vueuse/core": ["@vueuse/core@13.9.0", "", { "dependencies": { "@types/web-bluetooth": "^0.0.21", "@vueuse/metadata": "13.9.0", "@vueuse/shared": "13.9.0" }, "peerDependencies": { "vue": "^3.5.0" } }, "sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA=="], + + "@vueuse/motion/@vueuse/shared": ["@vueuse/shared@13.9.0", "", { "peerDependencies": { "vue": "^3.5.0" } }, "sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g=="], + + "anymatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + + "c12/chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], + + "cytoscape-fcose/cose-base": ["cose-base@2.2.0", "", { "dependencies": { "layout-base": "^2.0.0" } }, "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g=="], + + "d3-dsv/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + + "d3-sankey/d3-array": ["d3-array@2.12.1", "", { "dependencies": { "internmap": "^1.0.0" } }, "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ=="], + + "d3-sankey/d3-shape": ["d3-shape@1.3.7", "", { "dependencies": { "d3-path": "1" } }, "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw=="], + + "js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + + "magic-regexp/estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + + "markdown-exit/entities": ["entities@7.0.1", "", {}, "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA=="], + + "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + + "mlly/pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], + + "monaco-editor/dompurify": ["dompurify@3.2.7", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw=="], + + "monaco-editor/marked": ["marked@14.0.0", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ=="], + + "pptxgenjs/@types/node": ["@types/node@22.19.17", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q=="], + + "shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA=="], + + "unconfig/quansync": ["quansync@1.0.0", "", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="], + + "unconfig-core/quansync": ["quansync@1.0.0", "", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="], + + "unctx/estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + + "vite-plugin-static-copy/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + + "vue-router/chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], + + "vue-router/unplugin": ["unplugin@3.0.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" } }, "sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg=="], + + "@shikijs/markdown-it/shiki/@shikijs/core": ["@shikijs/core@4.0.2", "", { "dependencies": { "@shikijs/primitive": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw=="], + + "@shikijs/markdown-it/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg=="], + + "@shikijs/markdown-it/shiki/@shikijs/langs": ["@shikijs/langs@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2" } }, "sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg=="], + + "@shikijs/markdown-it/shiki/@shikijs/themes": ["@shikijs/themes@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2" } }, "sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA=="], + + "@shikijs/markdown-it/shiki/@shikijs/types": ["@shikijs/types@4.0.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg=="], + + "@slidev/client/@shikijs/vitepress-twoslash/@shikijs/twoslash": ["@shikijs/twoslash@4.0.2", "", { "dependencies": { "@shikijs/core": "4.0.2", "@shikijs/types": "4.0.2", "twoslash": "^0.3.6" }, "peerDependencies": { "typescript": ">=5.5.0" } }, "sha512-yHRudhirlMxOwDO6Q4OFU9hJMvUqNkY8hwtUfbaSEoG7A2cYicdO4c8fdDaDtyJ50HK7I8vTokrkIHTK3DCkLQ=="], + + "@slidev/client/shiki/@shikijs/core": ["@shikijs/core@4.0.2", "", { "dependencies": { "@shikijs/primitive": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw=="], + + "@slidev/client/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg=="], + + "@slidev/client/shiki/@shikijs/langs": ["@shikijs/langs@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2" } }, "sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg=="], + + "@slidev/client/shiki/@shikijs/themes": ["@shikijs/themes@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2" } }, "sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA=="], + + "@slidev/client/shiki/@shikijs/types": ["@shikijs/types@4.0.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg=="], + + "@slidev/types/shiki/@shikijs/core": ["@shikijs/core@4.0.2", "", { "dependencies": { "@shikijs/primitive": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw=="], + + "@slidev/types/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg=="], + + "@slidev/types/shiki/@shikijs/langs": ["@shikijs/langs@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2" } }, "sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg=="], + + "@slidev/types/shiki/@shikijs/themes": ["@shikijs/themes@4.0.2", "", { "dependencies": { "@shikijs/types": "4.0.2" } }, "sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA=="], + + "@slidev/types/shiki/@shikijs/types": ["@shikijs/types@4.0.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg=="], + + "@unocss/cli/chokidar/readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="], + + "@unocss/vite/chokidar/readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="], + + "@vueuse/motion/@vueuse/core/@vueuse/metadata": ["@vueuse/metadata@13.9.0", "", {}, "sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg=="], + + "c12/chokidar/readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="], + + "cytoscape-fcose/cose-base/layout-base": ["layout-base@2.0.1", "", {}, "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg=="], + + "d3-sankey/d3-array/internmap": ["internmap@1.0.1", "", {}, "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="], + + "d3-sankey/d3-shape/d3-path": ["d3-path@1.0.9", "", {}, "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg=="], + + "mlly/pkg-types/confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], + + "pptxgenjs/@types/node/undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + + "vite-plugin-static-copy/chokidar/readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + + "vue-router/chokidar/readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="], + + "@slidev/client/@shikijs/vitepress-twoslash/@shikijs/twoslash/@shikijs/core": ["@shikijs/core@4.0.2", "", { "dependencies": { "@shikijs/primitive": "4.0.2", "@shikijs/types": "4.0.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw=="], + + "@slidev/client/@shikijs/vitepress-twoslash/@shikijs/twoslash/@shikijs/types": ["@shikijs/types@4.0.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg=="], + + "vite-plugin-static-copy/chokidar/readdirp/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + } +} From 2722705fbb2f9330c66e11758301160a237f508a Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 30 Apr 2026 13:00:32 +0200 Subject: [PATCH 07/10] Update config-transformers.md --- custom/config-transformers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom/config-transformers.md b/custom/config-transformers.md index b1906cc..6bca791 100644 --- a/custom/config-transformers.md +++ b/custom/config-transformers.md @@ -12,7 +12,7 @@ const mySyntax = defineMarkdownTransformer((ctx) => { console.log('index in presentation', ctx.slide.index) ctx.s.replace( /^\[\[\[(.*)\]\]\]/gm, - (full, content) => { + (full: string, content: string) => { return `...` }, ) From 469b3823844e29780d662186b92f5c57c092efda Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 30 Apr 2026 13:06:18 +0200 Subject: [PATCH 08/10] fix build --- package.json | 1 + pnpm-lock.yaml | 6521 ++++++++++++++++++++++++++++ public/assets/code-groups-demo.png | Bin 0 -> 221097 bytes 3 files changed, 6522 insertions(+) create mode 100644 pnpm-lock.yaml create mode 100644 public/assets/code-groups-demo.png diff --git a/package.json b/package.json index 37392c0..a4bb3a4 100755 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "unocss": "^66.5.12", "unplugin-icons": "^22.5.0", "unplugin-vue-components": "^30.0.0", + "vite": "^6.0.0", "vite-plugin-inspect": "^11.3.3", "vitepress": "^2.0.0-alpha.15", "vitepress-plugin-group-icons": "^1.6.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..6dc8032 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,6521 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@antfu/utils': + specifier: ^9.3.0 + version: 9.3.0 + '@iconify-json/carbon': + specifier: ^1.2.18 + version: 1.2.20 + '@iconify-json/codicon': + specifier: ^1.2.39 + version: 1.2.52 + '@iconify-json/mdi': + specifier: ^1.2.3 + version: 1.2.3 + '@iconify-json/twemoji': + specifier: ^1.2.5 + version: 1.2.5 + '@iconify-json/uil': + specifier: ^1.2.3 + version: 1.2.3 + '@iconify-json/uim': + specifier: ^1.2.3 + version: 1.2.3 + '@iconify-json/vscode-icons': + specifier: ^1.2.39 + version: 1.2.47 + '@shikijs/vitepress-twoslash': + specifier: ^3.21.0 + version: 3.23.0(@nuxt/kit@3.21.4)(typescript@5.9.3) + '@slidev/client': + specifier: latest + version: 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + '@slidev/parser': + specifier: latest + version: 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + '@slidev/theme-default': + specifier: latest + version: 0.25.0 + '@slidev/types': + specifier: latest + version: 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + '@types/node': + specifier: ^25.0.7 + version: 25.6.0 + '@unocss/reset': + specifier: ^66.5.12 + version: 66.6.8 + '@vueuse/core': + specifier: ^14.1.0 + version: 14.2.1(vue@3.5.33(typescript@5.9.3)) + fast-glob: + specifier: ^3.3.3 + version: 3.3.3 + gray-matter: + specifier: ^4.0.3 + version: 4.0.3 + markdown-it: + specifier: ^14.1.0 + version: 14.1.1 + shiki: + specifier: ^3.21.0 + version: 3.23.0 + typeit: + specifier: 8.1.0 + version: 8.1.0 + typescript: + specifier: ^5.9.3 + version: 5.9.3 + unocss: + specifier: ^66.5.12 + version: 66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + unplugin-icons: + specifier: ^22.5.0 + version: 22.5.0(@vue/compiler-sfc@3.5.33) + unplugin-vue-components: + specifier: ^30.0.0 + version: 30.0.0(@babel/parser@7.29.2)(@nuxt/kit@3.21.4)(vue@3.5.33(typescript@5.9.3)) + vite: + specifier: ^6.0.0 + version: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite-plugin-inspect: + specifier: ^11.3.3 + version: 11.3.3(@nuxt/kit@3.21.4)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vitepress: + specifier: ^2.0.0-alpha.15 + version: 2.0.0-alpha.17(@types/node@25.6.0)(fuse.js@7.3.0)(jiti@2.6.1)(postcss@8.5.12)(typescript@5.9.3)(yaml@2.8.3) + vitepress-plugin-group-icons: + specifier: ^1.6.5 + version: 1.7.5(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vitepress-plugin-llms: + specifier: ^1.10.0 + version: 1.12.1 + vue: + specifier: ^3.5.26 + version: 3.5.33(typescript@5.9.3) + +packages: + + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + + '@antfu/utils@9.3.0': + resolution: {integrity: sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==} + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.28.6': + resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.29.2': + resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.2': + resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-jsx@7.28.6': + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.28.6': + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.28.6': + resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@braintree/sanitize-url@7.1.2': + resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} + + '@chevrotain/cst-dts-gen@12.0.0': + resolution: {integrity: sha512-fSL4KXjTl7cDgf0B5Rip9Q05BOrYvkJV/RrBTE/bKDN096E4hN/ySpcBK5B24T76dlQ2i32Zc3PAE27jFnFrKg==} + + '@chevrotain/gast@12.0.0': + resolution: {integrity: sha512-1ne/m3XsIT8aEdrvT33so0GUC+wkctpUPK6zU9IlOyJLUbR0rg4G7ZiApiJbggpgPir9ERy3FRjT6T7lpgetnQ==} + + '@chevrotain/regexp-to-ast@12.0.0': + resolution: {integrity: sha512-p+EW9MaJwgaHguhoqwOtx/FwuGr+DnNn857sXWOi/mClXIkPGl3rn7hGNWvo31HA3vyeQxjqe+H36yZJwYU8cA==} + + '@chevrotain/types@12.0.0': + resolution: {integrity: sha512-S+04vjFQKeuYw0/eW3U52LkAHQsB1ASxsPGsLPUyQgrZ2iNNibQrsidruDzjEX2JYfespXMG0eZmXlhA6z7nWA==} + + '@chevrotain/utils@12.0.0': + resolution: {integrity: sha512-lB59uJoaGIfOOL9knQqQRfhl9g7x8/wqFkp13zTdkRu1huG9kg6IJs1O8hqj9rs6h7orGxHJUKb+mX3rPbWGhA==} + + '@docsearch/css@4.6.3': + resolution: {integrity: sha512-nlOwcXcsNAptQl4vlL4MA78qNJKO0Qlds5GuBjCoePgkebTXLSf8Qt1oyZ3YBshYupKXG9VRGEsk1zr23d+bzQ==} + + '@docsearch/js@4.6.3': + resolution: {integrity: sha512-qUIX2b4Apew3tv4F0qhmgShsl/Lfw4m6mqv/5/5dWNxwTcDdLMp2s3YwZ+NMGh3IKCg0pBaXm7Q5VdyU5Rj+cQ==} + + '@docsearch/sidepanel-js@4.6.3': + resolution: {integrity: sha512-grGSmvXzG0if+mrzdIKykvpIAuEQ9u0sEJ2eLRRCaQfJvsWqh2C2/aY04bIzWvDh7myi5rvl8D+tUNsVrjYQ3A==} + + '@drauu/core@1.0.0': + resolution: {integrity: sha512-r1fPyuKaGuNHc8vxRFUT8LxqWjJ3nx+U+zsHcEOurmJoB7uN+zpFw5kTLInfdfvQZ+qF/ebQjw1AwbGcc1XKsQ==} + + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + + '@esbuild/aix-ppc64@0.25.12': + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.12': + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.12': + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.12': + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.12': + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.12': + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.12': + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.12': + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.12': + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.12': + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.12': + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.12': + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.12': + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.12': + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.12': + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.12': + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.12': + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.12': + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.12': + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.12': + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.12': + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.12': + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.12': + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.12': + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.12': + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.12': + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} + + '@floating-ui/dom@1.1.1': + resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==} + + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} + + '@iconify-json/carbon@1.2.20': + resolution: {integrity: sha512-wqyxKEbIRdzGdfCAwQqn8iSfO6jx0m1toZAAQdx1NFjxd6iFl1YY4eKI1woWt7XOxs7s7phMW530kDD867JZGw==} + + '@iconify-json/codicon@1.2.52': + resolution: {integrity: sha512-yOf2BhHJBflzaBq5hkxqToecCi1gTPfDFLooKgzBZygSVU8Wx895gqd7/9X+/xC06tGgwvSWEkQehAy39ByiIQ==} + + '@iconify-json/logos@1.2.11': + resolution: {integrity: sha512-fOo4pGEatuyuCFNL+cwquYMa2Im0oJHRHV7lt/Qqs5Ode/lPImHCQcfTtPzZj7qYMPb/h8YHN3TG54uEowrjNQ==} + + '@iconify-json/mdi@1.2.3': + resolution: {integrity: sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg==} + + '@iconify-json/ph@1.2.2': + resolution: {integrity: sha512-PgkEZNtqa8hBGjHXQa4pMwZa93hmfu8FUSjs/nv4oUU6yLsgv+gh9nu28Kqi8Fz9CCVu4hj1MZs9/60J57IzFw==} + + '@iconify-json/simple-icons@1.2.80': + resolution: {integrity: sha512-iglncJJ6X/dVuzFDU32MrHwwo4RBwivGf108dgyYg+HKS78ifx0h7sTenpDZMVT+UhdS6CSgZcvY/SvRXlIEUg==} + + '@iconify-json/svg-spinners@1.2.4': + resolution: {integrity: sha512-ayn0pogFPwJA1WFZpDnoq9/hjDxN+keeCMyThaX4d3gSJ3y0mdKUxIA/b1YXWGtY9wVtZmxwcvOIeEieG4+JNg==} + + '@iconify-json/twemoji@1.2.5': + resolution: {integrity: sha512-uKpuIEV0v6K5BW3Mjdyl+XKFVAbbcPxAgifKvEMtZoUZB5+YiY5zaMm2uNNCxyXzAWU9yNLlj41WU6/mvgALsw==} + + '@iconify-json/uil@1.2.3': + resolution: {integrity: sha512-if91+UBhDQc6glPsIaXecGIcXnbQZfEO4Gdv89TV2xQ+V5e9GWbY5rNl2fsKZd8COsRQ5lRQAKimVQVL0CZZVg==} + + '@iconify-json/uim@1.2.3': + resolution: {integrity: sha512-rCOU5nrRbcg5s5ZhL9Esoj/acyPeb6hPetVQYMJ18/wJwYsQtcwrFJXy6XOwyFs9TTLnjFGynLJO/TYihOQtDg==} + + '@iconify-json/vscode-icons@1.2.47': + resolution: {integrity: sha512-+fHFC8V6mV+XimgtgB5LRcV4CXPqWMNOzS6C8icypUwyZhHvhOCee5PGHxVGm+dsdXNmnbcVQ/cIXqj9dLkAmw==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@3.1.1': + resolution: {integrity: sha512-MwzoDtw9rO1x+qfgLTV/IVXsHDBqeYZoMIQC8SfxfYSlaSUG+oWiAcoiB1yajAda6mqblm4/1/w2E8tRu7a7Tw==} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@mdit-vue/plugin-component@3.0.2': + resolution: {integrity: sha512-Fu53MajrZMOAjOIPGMTdTXgHLgGU9KwTqKtYc6WNYtFZNKw04euSfJ/zFg8eBY/2MlciVngkF7Gyc2IL7e8Bsw==} + engines: {node: '>=20.0.0'} + + '@mdit-vue/plugin-frontmatter@3.0.2': + resolution: {integrity: sha512-QKKgIva31YtqHgSAz7S7hRcL7cHXiqdog4wxTfxeQCHo+9IP4Oi5/r1Y5E93nTPccpadDWzAwr3A0F+kAEnsVQ==} + engines: {node: '>=20.0.0'} + + '@mdit-vue/types@3.0.2': + resolution: {integrity: sha512-00aAZ0F0NLik6I6Yba2emGbHLxv+QYrPH00qQ5dFKXlAo1Ll2RHDXwY7nN2WAfrx2pP+WrvSRFTGFCNGdzBDHw==} + engines: {node: '>=20.0.0'} + + '@mermaid-js/parser@1.1.0': + resolution: {integrity: sha512-gxK9ZX2+Fex5zu8LhRQoMeMPEHbc73UKZ0FQ54YrQtUxE1VVhMwzeNtKRPAu5aXks4FasbMe4xB4bWrmq6Jlxw==} + + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nuxt/kit@3.21.4': + resolution: {integrity: sha512-XDWhQJsA5hpdFpVSmImQIVXcsANJI07TjT1LZC/AUKJxl/dcM52Rq4uU+b3uqyVl4LZR1fODSDEzLxcdXq4Rmg==} + engines: {node: '>=18.12.0'} + + '@oxc-parser/binding-android-arm-eabi@0.124.0': + resolution: {integrity: sha512-+R9zCafSL8ovjokdPtorUp3sXrh8zQ2AC2L0ivXNvlLR0WS+5WdPkNVrnENq5UvzagM4Xgl0NPsJKz3Hv9+y8g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxc-parser/binding-android-arm64@0.124.0': + resolution: {integrity: sha512-ULHC/gVZ+nP4pd3kNNQTYaQ/e066BW/KuY5qUsvwkVWwOUQGDg+WpfyVOmQ4xfxoue6cMlkKkJ+ntdzfDXpNlg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxc-parser/binding-darwin-arm64@0.124.0': + resolution: {integrity: sha512-fGJ2hw7bnbUYn6UvTjp0m4WJ9zXz3cohgcwcgeo7gUZehpPNpvcVEVeIVHNmHnAuAw/ysf4YJR8DA1E+xCA4Lw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxc-parser/binding-darwin-x64@0.124.0': + resolution: {integrity: sha512-j0+re9pgps5BH2Tk3fm59Hi3QuLP3C4KhqXi6A+wRHHHJWDFR8mc/KI9mBrfk2JRT+15doGo+zv1eN75/9DuOw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxc-parser/binding-freebsd-x64@0.124.0': + resolution: {integrity: sha512-0k5mS0npnrhKy72UfF51lpOZ2ESoPWn6gdFw+RdeRWcokraDW1O2kSx3laQ+yk7cCEavQdJSpWCYS/GvBbUCXQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxc-parser/binding-linux-arm-gnueabihf@0.124.0': + resolution: {integrity: sha512-P/i4eguRWvAUfGdfhQYg1jpwYkyUV6D3gefIH7HhmRl1Ph6P4IqTIEVcyJr1i/3vr1V5OHU4wonH6/ue/Qzvrw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm-musleabihf@0.124.0': + resolution: {integrity: sha512-/ameqFQH5fFP+66Atr8Ynv/2rYe4utcU7L4MoWS5JtrFLVO78g4qDLavyIlJxa6caSwYOvG/eO3c/DXqY5/6Rw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm64-gnu@0.124.0': + resolution: {integrity: sha512-gNeyEcXTtfrRCbj2EfxWU85Fs0wIX3p44Y3twnvuMfkWlLrb9M1Z25AYNSKjJM+fdAjeeQCjw0on47zFuBYwQw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-arm64-musl@0.124.0': + resolution: {integrity: sha512-uvG7v4Tz9S8/PVqY0SP0DLHxo4hZGe+Pv2tGVnwcsjKCCUPjplbrFVvDzXq+kOaEoUkiCY0Kt1hlZ6FDJ1LKNQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-linux-ppc64-gnu@0.124.0': + resolution: {integrity: sha512-t7KZaaUhfp2au0MRpoENEFqwLKYDdptEry6V7pTAVdPEcFG4P6ii8yeGU9m6p5vb+b8WEKmdpGMNXBEYy7iJdw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-riscv64-gnu@0.124.0': + resolution: {integrity: sha512-eurGGaxHZiIQ+fBSageS8TAkRqZgdOiBeqNrWAqAPup9hXBTmQ0WcBjwsLElf+3jvDL9NhnX0dOgOqPfsjSjdg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-riscv64-musl@0.124.0': + resolution: {integrity: sha512-d1V7/ll1i/LhqE/gZy6Wbz6evlk0egh2XKkwMI3epiojtbtUwQSLIER0Y3yDBBocPuWOjJdvmjtEmPTTLXje/w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-linux-s390x-gnu@0.124.0': + resolution: {integrity: sha512-w1+cBvriUteOpox6ATqCFVkpGL47PFdcfCPGmgUZbd78Fw44U0gQkc+kVGvAOTvGrptMYgwomD1c6OTVvkrpGg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-x64-gnu@0.124.0': + resolution: {integrity: sha512-RRB1evQiXRtMCsQQiAh9U0H3HzguLpE0ytfStuhRgmOj7tqUCOVxkHsvM9geZjAax6NqVRj7VXx32qjjkZPsBw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-x64-musl@0.124.0': + resolution: {integrity: sha512-asVYN0qmSHlCU8H9Q47SmeJ/Z5EG4IWCC+QGxkfFboI5qh15aLlJnHmnrV61MwQRPXGnVC/sC3qKhrUyqGxUqw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-openharmony-arm64@0.124.0': + resolution: {integrity: sha512-nhwuxm6B8pn9lzAzMUfa571L5hCXYwQo8C8cx5aGOuHWCzruR8gPJnRRXGBci+uGaIIQEZDyU/U6HDgrSp/JlQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-parser/binding-wasm32-wasi@0.124.0': + resolution: {integrity: sha512-LWuq4Dl9tff7n+HjJcqoBjDlVCtruc0shgtdtGM+rTUIE9aFxHA/P+wCYR+aWMjN8m9vNaRME/sKXErmhmeKrA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-parser/binding-win32-arm64-msvc@0.124.0': + resolution: {integrity: sha512-aOh3Lf3AeH0dgzT4yBXcArFZ8VhqNXwZ/xlN0GqBtgVaGoHOOqL2YHlcVIgT+ghsXPVR2PTtYgBiQ1CNK7jp5A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxc-parser/binding-win32-ia32-msvc@0.124.0': + resolution: {integrity: sha512-sib5xC0nz/+SCpaETBuHBz4SXS02KuG5HtyOcHsO/SK5ZvLRGhOZx0elDKawjb6adFkD7dQCqpXUS25wY6ELKQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxc-parser/binding-win32-x64-msvc@0.124.0': + resolution: {integrity: sha512-UgojtjGUgZgAZQYt7SC6VO65OVdxEkRe2q+2vbHJO//18qw3Hrk6UvHGQKldsQKgbVcIBT/YBrt85YberiYIPQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxc-project/types@0.124.0': + resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + + '@quansync/fs@1.0.0': + resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + + '@rolldown/pluginutils@1.0.0-rc.13': + resolution: {integrity: sha512-3ngTAv6F/Py35BsYbeeLeecvhMKdsKm4AoOETVhAA+Qc8nrA2I0kF7oa93mE9qnIurngOSpMnQ0x2nQY2FPviA==} + + '@rolldown/pluginutils@1.0.0-rc.18': + resolution: {integrity: sha512-CUY5Mnhe64xQBGZEEXQ5WyZwsc1JU3vAZLIxtrsBt3LO6UOb+C8GunVKqe9sT8NeWb4lqSaoJtp2xo6GxT1MNw==} + + '@rollup/rollup-android-arm-eabi@4.60.2': + resolution: {integrity: sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.60.2': + resolution: {integrity: sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.60.2': + resolution: {integrity: sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.60.2': + resolution: {integrity: sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.60.2': + resolution: {integrity: sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.60.2': + resolution: {integrity: sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': + resolution: {integrity: sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.60.2': + resolution: {integrity: sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.60.2': + resolution: {integrity: sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.60.2': + resolution: {integrity: sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.60.2': + resolution: {integrity: sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.60.2': + resolution: {integrity: sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.60.2': + resolution: {integrity: sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.60.2': + resolution: {integrity: sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.60.2': + resolution: {integrity: sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.60.2': + resolution: {integrity: sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.60.2': + resolution: {integrity: sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.60.2': + resolution: {integrity: sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.60.2': + resolution: {integrity: sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.60.2': + resolution: {integrity: sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.60.2': + resolution: {integrity: sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.60.2': + resolution: {integrity: sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.60.2': + resolution: {integrity: sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.60.2': + resolution: {integrity: sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.60.2': + resolution: {integrity: sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==} + cpu: [x64] + os: [win32] + + '@shikijs/core@3.23.0': + resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} + + '@shikijs/core@4.0.2': + resolution: {integrity: sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw==} + engines: {node: '>=20'} + + '@shikijs/engine-javascript@3.23.0': + resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} + + '@shikijs/engine-javascript@4.0.2': + resolution: {integrity: sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag==} + engines: {node: '>=20'} + + '@shikijs/engine-oniguruma@3.23.0': + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} + + '@shikijs/engine-oniguruma@4.0.2': + resolution: {integrity: sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg==} + engines: {node: '>=20'} + + '@shikijs/langs@3.23.0': + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} + + '@shikijs/langs@4.0.2': + resolution: {integrity: sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg==} + engines: {node: '>=20'} + + '@shikijs/markdown-it@4.0.2': + resolution: {integrity: sha512-7DDEhknj/mXTN7ME8CjKWBv5O/4YgOiJBZLgs/NbUFMC7Ik1x/VEhaK+aBjX60bJdok0E2mxEYan/GzJ2xRx+A==} + engines: {node: '>=20'} + peerDependencies: + markdown-it-async: ^2.2.0 + peerDependenciesMeta: + markdown-it-async: + optional: true + + '@shikijs/monaco@4.0.2': + resolution: {integrity: sha512-yA49DPAjDyj9D8yxyr1S7qjcT1TVv6BqhZ+sXccwqcdp83RuncYOCUkJ1rjqAu3NA8YDc2wdesD+/js5pHJdqg==} + engines: {node: '>=20'} + + '@shikijs/primitive@4.0.2': + resolution: {integrity: sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==} + engines: {node: '>=20'} + + '@shikijs/themes@3.23.0': + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} + + '@shikijs/themes@4.0.2': + resolution: {integrity: sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA==} + engines: {node: '>=20'} + + '@shikijs/transformers@3.23.0': + resolution: {integrity: sha512-F9msZVxdF+krQNSdQ4V+Ja5QemeAoTQ2jxt7nJCwhDsdF1JWS3KxIQXA3lQbyKwS3J61oHRUSv4jYWv3CkaKTQ==} + + '@shikijs/twoslash@3.23.0': + resolution: {integrity: sha512-pNaLJWMA3LU7PhT8tm9OQBZ1epy0jmdgeJzntBtr1EVXLbHxGzTj3mnf9vOdcl84l96qnlJXkJ/NGXZYBpXl5g==} + peerDependencies: + typescript: '>=5.5.0' + + '@shikijs/twoslash@4.0.2': + resolution: {integrity: sha512-yHRudhirlMxOwDO6Q4OFU9hJMvUqNkY8hwtUfbaSEoG7A2cYicdO4c8fdDaDtyJ50HK7I8vTokrkIHTK3DCkLQ==} + engines: {node: '>=20'} + peerDependencies: + typescript: '>=5.5.0' + + '@shikijs/types@3.23.0': + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} + + '@shikijs/types@4.0.2': + resolution: {integrity: sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg==} + engines: {node: '>=20'} + + '@shikijs/vitepress-twoslash@3.23.0': + resolution: {integrity: sha512-CnNsKIxxkRxRkL5+m6TNPit563TYfEEqlod8C6N1rfeZvX4xUlRrpoKyoWKmpGSNyjWWeYpMZTUH18YTTOxKfw==} + + '@shikijs/vitepress-twoslash@4.0.2': + resolution: {integrity: sha512-Bk01fAYDDiTffRPLHNJdNlYwzExXIVcrHUVNciD931SMlKZArvteKib6mM3mWAUhcy78RW1llT3fczjKIgQHBA==} + engines: {node: '>=20'} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@slidev/client@52.15.0': + resolution: {integrity: sha512-xAQjerJuDCpqPdBP+xCTIQgfCbyDZQaArIk4JgjUajypbtDLXDSUXE6LS4dyvuiL+vzPnoI1cgYegzcsF3DnKg==} + engines: {node: '>=20.12.0'} + + '@slidev/parser@52.15.0': + resolution: {integrity: sha512-Ic/QbooZwx+AoGS2Im9IpWO7JT0KumqXD7knYmPiQo1gPXRE6LP9iqhBQe4A2uLQXwhXItFJwkUjvbKOHQ8ofA==} + engines: {node: '>=20.12.0'} + + '@slidev/rough-notation@0.1.0': + resolution: {integrity: sha512-a/CbVmjuoO3E4JbUr2HOTsXndbcrdLWOM+ajbSQIY3gmLFzhjeXHGksGcp1NZ08pJjLZyTCxfz1C7v/ltJqycA==} + + '@slidev/theme-default@0.25.0': + resolution: {integrity: sha512-iWvthH1Ny+i6gTwRnEeeU+EiqsHC56UdEO45bqLSNmymRAOWkKUJ/M0o7iahLzHSXsiPu71B7C715WxqjXk2hw==} + engines: {node: '>=14.0.0', slidev: '>=v0.47.0'} + + '@slidev/types@0.47.5': + resolution: {integrity: sha512-X67V4cCgM0Sz50bP8GbVzmiL8DHC2IXvdKcsN7DlxHyf+/T4d9GveeGukwha5Fx3MuYeGZWKag7TFL2ZY4w54A==} + engines: {node: '>=18.0.0'} + + '@slidev/types@52.15.0': + resolution: {integrity: sha512-9ynICo+RogQeo7cke2Sod0yvIME4q+Qr9ln/6yzDDmPBJlO121SS+wGMV7QQLAFr2alnkNuwdclnbEjHuhSm8g==} + engines: {node: '>=20.12.0'} + + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + + '@types/d3-array@3.2.2': + resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + + '@types/d3-axis@3.0.6': + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + + '@types/d3-brush@3.0.6': + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + + '@types/d3-chord@3.0.6': + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-contour@3.0.6': + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + + '@types/d3-delaunay@6.0.4': + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + + '@types/d3-dispatch@3.0.7': + resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} + + '@types/d3-drag@3.0.7': + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + + '@types/d3-dsv@3.0.7': + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-fetch@3.0.7': + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + + '@types/d3-force@3.0.10': + resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} + + '@types/d3-format@3.0.4': + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + + '@types/d3-geo@3.1.0': + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + + '@types/d3-hierarchy@3.1.7': + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + + '@types/d3-polygon@3.0.2': + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + + '@types/d3-quadtree@3.0.6': + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + + '@types/d3-random@3.0.3': + resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + + '@types/d3-scale-chromatic@3.1.0': + resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} + + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + + '@types/d3-selection@3.0.11': + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + + '@types/d3-shape@3.1.8': + resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==} + + '@types/d3-time-format@4.0.3': + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + + '@types/d3-transition@3.0.9': + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + + '@types/d3-zoom@3.0.8': + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + + '@types/d3@7.4.3': + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/node@22.19.17': + resolution: {integrity: sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==} + + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/web-bluetooth@0.0.21': + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} + + '@typescript/ata@0.9.8': + resolution: {integrity: sha512-+M815CeDRJS5H5ciWfhFCKp25nNfF+LFWawWAaBhNlquFb2wS5IIMDI+2bKWN3GuU6mpj+FzySsOD29M4nG8Xg==} + peerDependencies: + typescript: '>=4.4.4' + + '@typescript/vfs@1.6.4': + resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} + peerDependencies: + typescript: '*' + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@unhead/vue@2.1.13': + resolution: {integrity: sha512-HYy0shaHRnLNW9r85gppO8IiGz0ONWVV3zGdlT8CQ0tbTwixznJCIiyqV4BSV1aIF1jJIye0pd1p/k6Eab8Z/A==} + peerDependencies: + vue: '>=3.5.18' + + '@unocss/cli@66.6.8': + resolution: {integrity: sha512-dJ4AmrhCtQwEDJtpFG7AgJ4Qi4GWnNgWWlLWq4DhKBOCcvldr9k98mscdhs3MOwph25DIxU5MdLRAg/OS1JryQ==} + engines: {node: '>=14'} + hasBin: true + + '@unocss/config@66.6.8': + resolution: {integrity: sha512-f+a8OyhD7ZoK8Pa1b3Cbx1RQc3n5x+Qht/cHg3wh/g4DNQIjBI2EqwSLfBigWhdO96zIqFAdyTlO3onmrJwUOw==} + engines: {node: '>=14'} + + '@unocss/core@66.6.8': + resolution: {integrity: sha512-P9IlQfgms+8/nka7fBhiiWU4SPwrTNKbTdK0z1SLnttXMHHjsB2zpG+Vi1JQDpICfY9Y1/2pWtguPE+zeOVu9Q==} + + '@unocss/extractor-arbitrary-variants@66.6.8': + resolution: {integrity: sha512-cOXstpPTOLt/HYcL0OsqFkNau0e8ktZ5Q8fgnXBZjmLGmi+VzdESNlwxZyCXLuamZGnbrZ8lDsKdsGG7P1pMKQ==} + + '@unocss/extractor-mdc@66.6.8': + resolution: {integrity: sha512-l4TZ/5PRRqYup3GB0CwcUGG7CRt4+d1FLqNppjRn3mGR8ILtqZSmZvX1mU7Y90rGjORfE3bLJ0XA0JS2w7Gm5g==} + + '@unocss/inspector@66.6.8': + resolution: {integrity: sha512-g8uRzXDdmoNRjXX/mZP7m0rWXLtOimyOW7+VFK6FNxRWBmvIGYgTLHkutF6Wyh9lLPDYx3pkkEmfgL35BDT3Sg==} + + '@unocss/preset-attributify@66.6.8': + resolution: {integrity: sha512-YxyRSF5rq0WbY8kCG0gpj3DSXPL89QGxZeqABmceCzPJbXJBBHEJz/pgBPmzSa2Ziulgs0AEkHzWFPfpb2uGTA==} + + '@unocss/preset-icons@66.6.8': + resolution: {integrity: sha512-+zD5TNGZIXvVOMcvDIYaTXinffpDMERGj6Ch8WTtJluA6qHHBvRuFexoU2bY8nF1r0HZkYzNT9C+RujFSP+6TA==} + + '@unocss/preset-mini@66.6.8': + resolution: {integrity: sha512-vAechrReO7LtWzFAeF54P7CintG2m65SlVlBsi1x2Ru7IdgUNJEHII0MfXUvf9r1x8vsIlhATyaqqtBVT6ps/w==} + + '@unocss/preset-tagify@66.6.8': + resolution: {integrity: sha512-cG6zBYswtWTpeQe/Lb1Bh+IzU4Ck+VI8rpYvrnvSGl22rJjAsXd+buB1P0PjyDpoe924rq0bLTayZ8r6Ayyyvw==} + + '@unocss/preset-typography@66.6.8': + resolution: {integrity: sha512-wOApJpE0QfeOTWN5RuQts8zS6PXhTZIfjpt6cBj8dmv7+GlIQlwopxL7wcDb2wVwdCByuMvUbWl7nC3kz/iFTA==} + + '@unocss/preset-uno@66.6.8': + resolution: {integrity: sha512-z01Rw/rBuahRulwQRnobUFnGqyU+UenOLz72KGn4p0Yh8gBC44fPlNHsOWA0TNediHRJg33HptX4kx16HCVWDg==} + + '@unocss/preset-web-fonts@66.6.8': + resolution: {integrity: sha512-AgEHO8h0AkeOT57AOE9PS7dJOa5Rfr0gIyz/FxA7vJ/FwgQL70uX+bRW8kmoH81zcjo5xBP2IX3Z6A8VAOo3Vw==} + + '@unocss/preset-wind3@66.6.8': + resolution: {integrity: sha512-WNTeDAYCatmEFjBJ4itUmz0TElBvNFqjh5i2/ianDJO/vkd+IYUb03jEPLUppVlvMhy8bN8AunP0AtW3Xf2psA==} + + '@unocss/preset-wind4@66.6.8': + resolution: {integrity: sha512-CheOm7KXOsTI5t4RXgeYz95CO5p589F6jsyYp+inOCk4N0/d+DWiDHrQ+V0x0HWs3JXWlD+/Va/yXjlc3o2sIw==} + + '@unocss/preset-wind@66.6.8': + resolution: {integrity: sha512-F0mdmwK/HelYOgBRMHl+Yx/VyARCQJtPlcgPBejI3E9ZWOZlKS7hvPqPrgvS63WTGMHgM3/22cGuYYFjpi/ugA==} + + '@unocss/reset@66.6.8': + resolution: {integrity: sha512-H+YP3ltizUiPO9FzFgFhv8WGsefO7fTgT1If1/9ritPDqZlvzTqMmjelhcq8D8MGoQ1RQBUvtkZ5HJoKVY0Tgw==} + + '@unocss/rule-utils@66.6.8': + resolution: {integrity: sha512-WR35L07mLP6PElD4hlUHo5KbQ48uz2HT/XCuJyAsHP+15Gv6539hPWA5SresPuva9r8rl+PeGIgMSIKf4A5Ihw==} + engines: {node: '>=14'} + + '@unocss/transformer-attributify-jsx@66.6.8': + resolution: {integrity: sha512-g+7lvm+8V1MnJ21ialTxFBonCTtenn/KcZQbm0JfvQjgG+KuuSnt3BGEcXAHQZu3eBDGuJuasTHiXWwzCYIRBQ==} + + '@unocss/transformer-compile-class@66.6.8': + resolution: {integrity: sha512-37dFuzgYo8ki033KmuvyZXugQRVH1c3+/z5kcWLPhcMR8UJscAtjgRx80S1UvWup2q6TPxPpmy/rMbqWvs3jfg==} + + '@unocss/transformer-directives@66.6.8': + resolution: {integrity: sha512-9hC3mQ8eycliW/igI9le0LovTIMBKoL6crucTkr4MmWuNqICMvNxTmGj5Xh64olBPnascevFwam6xsy+J1lX4Q==} + + '@unocss/transformer-variant-group@66.6.8': + resolution: {integrity: sha512-+t7gJDW3W3z3/f8zBf0DfV2UZyGyFOwG5CIsIj5ofu3VJ91mKD/5ZAH8fD3cryXCBSqslj4yv+8R+BLV07T5AA==} + + '@unocss/vite@66.6.8': + resolution: {integrity: sha512-bXfEnEHdW7zTGLIYU16MsfKSFy3Q47Pevhrt5f9fOGzC4UI1JGkkoQSfoFpXZGliDrhoSFK4Msz9Jt43Ta4j+w==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0-0 + + '@upsetjs/venn.js@2.0.0': + resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} + + '@vitejs/plugin-vue-jsx@5.1.5': + resolution: {integrity: sha512-jIAsvHOEtWpslLOI2MeElGFxH7M8pM83BU/Tor4RLyiwH0FM4nUW3xdvbw20EeU9wc5IspQwMq225K3CMnJEpA==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@6.0.6': + resolution: {integrity: sha512-u9HHgfrq3AjXlysn0eINFnWQOJQLO9WN6VprZ8FXl7A2bYisv3Hui9Ij+7QZ41F/WYWarHjwBbXtD7dKg3uxbg==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + vue: ^3.2.25 + + '@volar/language-core@2.4.28': + resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==} + + '@volar/source-map@2.4.28': + resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==} + + '@vue-macros/common@3.1.2': + resolution: {integrity: sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==} + engines: {node: '>=20.19.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true + + '@vue/babel-helper-vue-transform-on@2.0.1': + resolution: {integrity: sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA==} + + '@vue/babel-plugin-jsx@2.0.1': + resolution: {integrity: sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@2.0.1': + resolution: {integrity: sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@vue/compiler-core@3.5.33': + resolution: {integrity: sha512-3PZLQwFw4Za3TC8t0FvTy3wI16Kt+pmwcgNZca4Pj9iWL2E72a/gZlpBtAJvEdDMdCxdG/qq0C7PN0bsJuv0Rw==} + + '@vue/compiler-dom@3.5.33': + resolution: {integrity: sha512-PXq0yrfCLzzL07rbXO4awtXY1Z06LG2eu6Adg3RJFa/j3Cii217XxxLXG22N330gw7GmALCY0Z8RgXEviwgpjA==} + + '@vue/compiler-sfc@3.5.33': + resolution: {integrity: sha512-UTUvRO9cY+rROrx/pvN9P5Z7FgA6QGfokUCfhQE4EnmUj3rVnK+CHI0LsEO1pg+I7//iRYMUfcNcCPe7tg0CoA==} + + '@vue/compiler-ssr@3.5.33': + resolution: {integrity: sha512-IErjYdnj1qIupG5xxiVIYiiRvDhGWV4zuh/RCrwfYpuL+HWQzeU6lCk/nF9r7olWMnjKxCAkOctT2qFWFkzb1A==} + + '@vue/devtools-api@8.1.1': + resolution: {integrity: sha512-bsDMJ07b3GN1puVwJb/fyFnj/U2imyswK5UQVLZwVl7O05jDrt6BHxeG5XffmOOdasOj/bOmIjxJvGPxU7pcqw==} + + '@vue/devtools-kit@8.1.1': + resolution: {integrity: sha512-gVBaBv++i+adg4JpH71k9ppl4soyR7Y2McEqO5YNgv0BI1kMZ7BDX5gnwkZ5COYgiCyhejZG+yGNrBAjj6Coqg==} + + '@vue/devtools-shared@8.1.1': + resolution: {integrity: sha512-+h4ttmJYl/txpxHKaoZcaKpC+pvckgLzIDiSQlaQ7kKthKh8KuwoLW2D8hPJEnqKzXOvu15UHEoGyngAXCz0EQ==} + + '@vue/language-core@3.2.7': + resolution: {integrity: sha512-Gn4q/tRxbpVGLEuARQ43p3YELlNAFgRUVCgW9U5Cr+5q4vfD2bWDWpl3ABbJMXUt5xlE1dF8dkigg2aUq7JYYw==} + + '@vue/reactivity@3.5.33': + resolution: {integrity: sha512-p8UfIqyIhb0rYGlSgSBV+lPhF2iUSBcRy7enhTmPqKWadHy9kcOFYF1AejYBP9P+avnd3OBbD49DU4pLWX/94A==} + + '@vue/runtime-core@3.5.33': + resolution: {integrity: sha512-UpFF45RI9//a7rvq7RdOQblb4tup7hHG9QsmIrxkFQLzQ7R8/iNQ5LE15NhLZ1/WcHMU2b47u6P33CPUelHyIQ==} + + '@vue/runtime-dom@3.5.33': + resolution: {integrity: sha512-IOxMsAOwquhfITgmOgaPYl7/j8gKUxUFoflRc+u4LxyD3+783xne8vNta1PONVCvCV9A0w7hkyEepINDqfO0tw==} + + '@vue/server-renderer@3.5.33': + resolution: {integrity: sha512-0xylq/8/h44lVG0pZFknv1XIdEgymq2E9n59uTWJBG+dIgiT0TMCSsxrN7nO16Z0MU0MPjFcguBbZV8Itk52Hw==} + peerDependencies: + vue: 3.5.33 + + '@vue/shared@3.5.33': + resolution: {integrity: sha512-5vR2QIlmaLG77Ygd4pMP6+SGQ5yox9VhtnbDWTy9DzMzdmeLxZ1QqxrywEZ9sa1AVubfIJyaCG3ytyWU81ufcQ==} + + '@vueuse/core@13.9.0': + resolution: {integrity: sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==} + peerDependencies: + vue: ^3.5.0 + + '@vueuse/core@14.2.1': + resolution: {integrity: sha512-3vwDzV+GDUNpdegRY6kzpLm4Igptq+GA0QkJ3W61Iv27YWwW/ufSlOfgQIpN6FZRMG0mkaz4gglJRtq5SeJyIQ==} + peerDependencies: + vue: ^3.5.0 + + '@vueuse/integrations@14.2.1': + resolution: {integrity: sha512-2LIUpBi/67PoXJGqSDQUF0pgQWpNHh7beiA+KG2AbybcNm+pTGWT6oPGlBgUoDWmYwfeQqM/uzOHqcILpKL7nA==} + peerDependencies: + async-validator: ^4 + axios: ^1 + change-case: ^5 + drauu: ^0.4 + focus-trap: ^7 || ^8 + fuse.js: ^7 + idb-keyval: ^6 + jwt-decode: ^4 + nprogress: ^0.2 + qrcode: ^1.5 + sortablejs: ^1 + universal-cookie: ^7 || ^8 + vue: ^3.5.0 + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + + '@vueuse/math@14.2.1': + resolution: {integrity: sha512-WV4WTm4GBeILnIAOePQNI1UbYv/HjDx1P+0MSXxFyBy3r8I9xVYn6xqBMLkCbXfAVmkr1sA/G5ILM2K8VDtIbA==} + peerDependencies: + vue: ^3.5.0 + + '@vueuse/metadata@13.9.0': + resolution: {integrity: sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==} + + '@vueuse/metadata@14.2.1': + resolution: {integrity: sha512-1ButlVtj5Sb/HDtIy1HFr1VqCP4G6Ypqt5MAo0lCgjokrk2mvQKsK2uuy0vqu/Ks+sHfuHo0B9Y9jn9xKdjZsw==} + + '@vueuse/motion@3.0.3': + resolution: {integrity: sha512-4B+ITsxCI9cojikvrpaJcLXyq0spj3sdlzXjzesWdMRd99hhtFI6OJ/1JsqwtF73YooLe0hUn/xDR6qCtmn5GQ==} + peerDependencies: + vue: '>=3.0.0' + + '@vueuse/shared@13.9.0': + resolution: {integrity: sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==} + peerDependencies: + vue: ^3.5.0 + + '@vueuse/shared@14.2.1': + resolution: {integrity: sha512-shTJncjV9JTI4oVNyF1FQonetYAiTBd+Qj7cY89SWbXSkx7gyhrgtEdF2ZAVWS1S3SHlaROO6F2IesJxQEkZBw==} + peerDependencies: + vue: ^3.5.0 + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + alien-signals@3.1.2: + resolution: {integrity: sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansis@4.2.0: + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} + engines: {node: '>=14'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + ast-kit@2.2.0: + resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==} + engines: {node: '>=20.19.0'} + + ast-walker-scope@0.8.3: + resolution: {integrity: sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==} + engines: {node: '>=20.19.0'} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + baseline-browser-mapping@2.10.24: + resolution: {integrity: sha512-I2NkZOOrj2XuguvWCK6OVh9GavsNjZjK908Rq3mIBK25+GD8vPX5w2WdxVqnQ7xx3SrZJiCiZFu+/Oz50oSYSA==} + engines: {node: '>=6.0.0'} + hasBin: true + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + birpc@2.9.0: + resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + engines: {node: 18 || 20 || >=22} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + c12@3.3.4: + resolution: {integrity: sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==} + peerDependencies: + magicast: '*' + peerDependenciesMeta: + magicast: + optional: true + + cac@7.0.0: + resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} + engines: {node: '>=20.19.0'} + + caniuse-lite@1.0.30001791: + resolution: {integrity: sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + chevrotain-allstar@0.4.2: + resolution: {integrity: sha512-J3WoNdejJDlmUR0XXgmJK2GnCYKp2eWHnaG1fGkvnBVQw9Y6piP4Q30ETz47bfvPTeaN/DV0V5jqLDgX4PCygg==} + peerDependencies: + chevrotain: ^12.0.0 + + chevrotain@12.0.0: + resolution: {integrity: sha512-csJvb+6kEiQaqo1woTdSAuOWdN0WTLIydkKrBnS+V5gZz0oqBrp4kQ35519QgK6TpBThiG3V1vNSHlIkv4AglQ==} + engines: {node: '>=22.0.0'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + codemirror-theme-vars@0.1.2: + resolution: {integrity: sha512-WTau8X2q58b0SOAY9DO+iQVw8JKVEgyQIqArp2D732tcc+pobbMta3bnVMdQdmgwuvNrOFFr6HoxPRoQOgooFA==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.4: + resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cose-base@1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + + cose-base@2.2.0: + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + cytoscape-cose-bilkent@4.1.0: + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape-fcose@2.2.0: + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape@3.33.3: + resolution: {integrity: sha512-Gej7U+OKR+LZ8kvX7rb2HhCYJ0IhvEFsnkud4SB1PR+BUY/TsSO0dmOW59WEVLu51b1Rm+gQRKoz4bLYxGSZ2g==} + engines: {node: '>=0.10'} + + d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} + + d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} + + d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} + + d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + + d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + + d3-format@3.1.2: + resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} + engines: {node: '>=12'} + + d3-geo@3.1.1: + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} + + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + + d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + + d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + + d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + + d3-scale-chromatic@3.1.0: + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + + d3@7.9.0: + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + engines: {node: '>=12'} + + dagre-d3-es@7.0.14: + resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==} + + dayjs@1.11.20: + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} + + default-browser@5.5.0: + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + engines: {node: '>=18'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + + delaunator@5.1.0: + resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + diff-match-patch-es@1.0.1: + resolution: {integrity: sha512-KhSofrZDERg/NE6Nd+TK53knp2qz0o2Ix8rhkXd3Chfm7Wlo58Eq/juNmkyS6bS+3xS26L3Pstz3BdY/q+e9UQ==} + + dompurify@3.2.7: + resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} + + dompurify@3.4.1: + resolution: {integrity: sha512-JahakDAIg1gyOm7dlgWSDjV4n7Ip2PKR55NIT6jrMfIgLFgWo81vdr1/QGqWtFNRqXP9UV71oVePtjqS2ebnPw==} + + dotenv@17.4.2: + resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} + engines: {node: '>=12'} + + drauu@1.0.0: + resolution: {integrity: sha512-K3a1cbP2l4i0H/bmNM4nyGsY5/hiH5a10sEHlksqKue0+TPQCHrV9DwPad+St06CJwpkdzVJ/FyOYTIAm82rgg==} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + electron-to-chromium@1.5.345: + resolution: {integrity: sha512-F9JXQGiMrz6yVNPI2qOVPvB9HzjH5cGzhs8oJ6A28V5L/YnzN/0KsuiibqF+F1Fd9qxFzD1BUnYSd8JfULxTwg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + + errx@0.1.0: + resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} + + esbuild@0.25.12: + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-saver@2.0.5: + resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + fix-webm-duration@1.0.6: + resolution: {integrity: sha512-zVAqi4gE+8ywxJuAyV/rlJVX6CMtvyapEbQx6jyoeX9TMjdqAlt/FdG5d7rXSSkDVzTvS0H7CtwzHcH/vh4FPA==} + + floating-vue@5.2.2: + resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==} + peerDependencies: + '@nuxt/kit': ^3.2.0 + vue: ^3.2.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + + focus-trap@8.1.0: + resolution: {integrity: sha512-T65crff26CKV2CZ3csg5y05r+560srp0b8EbAif35euW58hzklVf/Gb4Q+/HCtB8e9III3QFEyk5BWV5XJuOyw==} + + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + + framesync@6.1.2: + resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fuse.js@7.3.0: + resolution: {integrity: sha512-plz8RVjfcDedTGfVngWH1jmJvBvAwi1v2jecfDerbEnMcmOYUEEwKFTHbNoCiYyzaK2Ws8lABkTCcRSqCY1q4w==} + engines: {node: '>=10'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + giget@3.2.0: + resolution: {integrity: sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==} + hasBin: true + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + hachure-fill@0.5.2: + resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hey-listen@1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + hookable@6.1.1: + resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + https@1.0.0: + resolution: {integrity: sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + image-size@1.2.1: + resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} + engines: {node: '>=16.x'} + hasBin: true + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + + katex@0.16.45: + resolution: {integrity: sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==} + hasBin: true + + khroma@2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + knitwork@1.3.0: + resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} + + langium@4.2.2: + resolution: {integrity: sha512-JUshTRAfHI4/MF9dH2WupvjSXyn8JBuUEWazB8ZVJUtXutT0doDlAv1XKbZ1Pb5sMexa8FF4CFBc0iiul7gbUQ==} + engines: {node: '>=20.10.0', npm: '>=10.2.3'} + + layout-base@1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + + layout-base@2.0.1: + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + local-pkg@1.1.2: + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} + + lodash-es@4.18.1: + resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + magic-regexp@0.10.0: + resolution: {integrity: sha512-Uly1Bu4lO1hwHUW0CQeSWuRtzCMNO00CmXtS8N6fyvB3B979GOEEeAkiTUDsmbYLAbvpUS/Kt5c4ibosAzVyVg==} + + magic-string-ast@1.0.3: + resolution: {integrity: sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==} + engines: {node: '>=20.19.0'} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + mark.js@8.11.1: + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + + markdown-exit@1.0.0-beta.9: + resolution: {integrity: sha512-5tzrMKMF367amyBly131vm6eGuWRL2DjBqWaFmPzPbLyuxP0XOmyyyroOAIXuBAMF/3kZbbfqOxvW/SotqKqbQ==} + + markdown-it@14.1.1: + resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} + hasBin: true + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + markdown-title@1.0.2: + resolution: {integrity: sha512-MqIQVVkz+uGEHi3TsHx/czcxxCbRIL7sv5K5DnYw/tI+apY54IbPefV/cmgxp6LoJSEx/TqcHdLs/298afG5QQ==} + engines: {node: '>=6'} + + marked@14.0.0: + resolution: {integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==} + engines: {node: '>= 18'} + hasBin: true + + marked@16.4.2: + resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} + engines: {node: '>= 20'} + hasBin: true + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + mermaid@11.14.0: + resolution: {integrity: sha512-GSGloRsBs+JINmmhl0JDwjpuezCsHB4WGI4NASHxL3fHo3o/BRXTxhDLKnln8/Q0lRFRyDdEjmk1/d5Sn1Xz8g==} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + millify@6.1.0: + resolution: {integrity: sha512-H/E3J6t+DQs/F2YgfDhxUVZz/dF8JXPPKTLHL/yHCcLZLtCXJDUaqvhJXQwqOVBvbyNn4T0WjLpIHd7PAw7fBA==} + hasBin: true + + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + minisearch@7.2.0: + resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==} + + mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} + + monaco-editor@0.55.1: + resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanotar@0.3.0: + resolution: {integrity: sha512-Kv2JYYiCzt16Kt5QwAc9BFG89xfPNBx+oQL4GQXD9nLqPkZBiNaqaCWtwnbk/q7UVsTYevvM1b0UF8zmEI4pCg==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-releases@2.0.38: + resolution: {integrity: sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + + oniguruma-parser@0.12.2: + resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} + + oniguruma-to-es@4.3.6: + resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} + + oxc-parser@0.124.0: + resolution: {integrity: sha512-h07SFj/tp2U3cf3+LFX6MmOguQiM9ahwpGs0ZK5CGhgL8p4kk24etrJKsEzhXAvo7mfvoKTZooZ5MLKAPRmJ1g==} + engines: {node: ^20.19.0 || >=22.12.0} + + oxc-walker@0.7.0: + resolution: {integrity: sha512-54B4KUhrzbzc4sKvKwVYm7E2PgeROpGba0/2nlNZMqfDyca+yOor5IMb4WLGBatGDT0nkzYdYuzylg7n3YfB7A==} + peerDependencies: + oxc-parser: '>=0.98.0' + + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + engines: {node: '>=18'} + + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-data-parser@0.1.0: + resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + perfect-debounce@2.1.0: + resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.3.1: + resolution: {integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==} + + points-on-curve@0.2.0: + resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} + + points-on-path@0.2.1: + resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} + + popmotion@11.0.5: + resolution: {integrity: sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==} + + postcss@8.5.12: + resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==} + engines: {node: ^10 || ^12 || >=14} + + pptxgenjs@4.0.1: + resolution: {integrity: sha512-TeJISr8wouAuXw4C1F/mC33xbZs/FuEG6nH9FG1Zj+nuPcGMP5YRHl6X+j3HSUnS1f3at6k75ZZXPMZlA5Lj9A==} + + pretty-bytes@7.1.0: + resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} + engines: {node: '>=20'} + + prism-theme-vars@0.2.5: + resolution: {integrity: sha512-/D8gBTScYzi9afwE6v3TC1U/1YFZ6k+ly17mtVRdLpGy7E79YjJJWkXFgUDHJ2gDksV/ZnXF7ydJ4TvoDm2z/Q==} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + + quansync@1.0.0: + resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + + rc9@3.0.1: + resolution: {integrity: sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + + recordrtc@5.6.2: + resolution: {integrity: sha512-1QNKKNtl7+KcwD1lyOgP3ZlbiJ1d0HtXnypUy7yq49xEERxk31PHvE9RCciDrulPCY7WJ+oz0R9hpNxgsIurGQ==} + + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remark@15.0.1: + resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + robust-predicates@3.0.3: + resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} + + rollup@4.60.2: + resolution: {integrity: sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + roughjs@4.6.6: + resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + shiki-magic-move@1.3.0: + resolution: {integrity: sha512-QF3OmGtROCGI3HGaB5hAlB6GPnzrxblZg761wg1NhsWKqb79HCeeVVhJE6fZeU1x/6ZOh7S8o9dBWf6eJZYc6A==} + peerDependencies: + react: ^18.2.0 || ^19.0.0 + shiki: ^1.0.0 || ^2.0.0 || ^3.0.0 + solid-js: ^1.9.1 + svelte: ^5.0.0-0 + vue: ^3.4.0 + peerDependenciesMeta: + react: + optional: true + shiki: + optional: true + solid-js: + optional: true + svelte: + optional: true + vue: + optional: true + + shiki@3.23.0: + resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} + + shiki@4.0.2: + resolution: {integrity: sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ==} + engines: {node: '>=20'} + + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + style-value-types@5.1.2: + resolution: {integrity: sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==} + + stylis@4.4.0: + resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} + + tabbable@6.4.0: + resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + + tinyexec@1.1.2: + resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} + engines: {node: '>=18'} + + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tokenx@1.3.0: + resolution: {integrity: sha512-NLdXTEZkKiO0gZuLtMoZKjCXTREXeZZt8nnnNeyoXtNZAfG/GKGSbQtLU5STspc0rMSwcA+UJfWZkbNU01iKmQ==} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + + tslib@2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + twoslash-protocol@0.3.8: + resolution: {integrity: sha512-HmvAHoiEviK8LqvAQyc9/irkdvwTUiR1fHmNwH/0gq8EHxyBt4PWVPixjEXg6wJu1u6yBrILEWXGK9Kw58/8yQ==} + + twoslash-vue@0.3.8: + resolution: {integrity: sha512-5HZAnkQ1R6NXqW9mqsHx4aHVWPb5gb4gfEKiaNczi3q6U7vDZeVv9eONRuPs4qdCd5OJSAIpHeXxIDZmjr0Jww==} + peerDependencies: + typescript: ^5.5.0 || ^6.0.0 + + twoslash@0.3.8: + resolution: {integrity: sha512-OeDz0kDl8sqPUN3nr7gqcvOs70f5lZsdhKYTX3/SgB9OvdadzzoYJI/4SBXhXV1HG8E9fLc+e17itoRYTxmoig==} + peerDependencies: + typescript: ^5.5.0 || ^6.0.0 + + type-level-regexp@0.1.17: + resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==} + + typeit@8.1.0: + resolution: {integrity: sha512-cbDoGmPJQLqiDfAjan1DouphW1KBYRWrgNKkyctg9CRHK0sMN7wL9Sg9ctCrSnimJoVmM/QDxlsnonjxaEGUUg==} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + + unconfig-core@7.5.0: + resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} + + unconfig@7.5.0: + resolution: {integrity: sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA==} + + unctx@2.5.0: + resolution: {integrity: sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} + + unhead@2.1.13: + resolution: {integrity: sha512-jO9M1sI6b2h/1KpIu4Jeu+ptumLmUKboRRLxys5pYHFeT+lqTzfNHbYUX9bxVDhC1FBszAGuWcUVlmvIPsah8Q==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove@4.0.0: + resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + + unocss@66.6.8: + resolution: {integrity: sha512-stq9FbxedTDkoWrxnNQNnPQXOaM6L2Lobq8HzjXdR2tMc55gtfqDArqL7TESfnN7qeZsIocNYCHLNA4DXq50YQ==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/astro': 66.6.8 + '@unocss/postcss': 66.6.8 + '@unocss/webpack': 66.6.8 + peerDependenciesMeta: + '@unocss/astro': + optional: true + '@unocss/postcss': + optional: true + '@unocss/webpack': + optional: true + + unplugin-icons@22.5.0: + resolution: {integrity: sha512-MBlMtT5RuMYZy4TZgqUL2OTtOdTUVsS1Mhj6G1pEzMlFJlEnq6mhUfoIt45gBWxHcsOdXJDWLg3pRZ+YmvAVWQ==} + peerDependencies: + '@svgr/core': '>=7.0.0' + '@svgx/core': ^1.0.1 + '@vue/compiler-sfc': ^3.0.2 || ^2.7.0 + svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 + vue-template-compiler: ^2.6.12 + vue-template-es2015-compiler: ^1.9.0 + peerDependenciesMeta: + '@svgr/core': + optional: true + '@svgx/core': + optional: true + '@vue/compiler-sfc': + optional: true + svelte: + optional: true + vue-template-compiler: + optional: true + vue-template-es2015-compiler: + optional: true + + unplugin-icons@23.0.1: + resolution: {integrity: sha512-rv0XEJepajKzDLvRUWASM8K+8+/CCfZn2jtogXqg6RIp7kpatRc/aFrVJn8ANQA09e++lPEEv9yX8cC9enc+QQ==} + peerDependencies: + '@svgr/core': '>=7.0.0' + '@svgx/core': ^1.0.1 + '@vue/compiler-sfc': ^3.0.2 + svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + '@svgr/core': + optional: true + '@svgx/core': + optional: true + '@vue/compiler-sfc': + optional: true + svelte: + optional: true + + unplugin-utils@0.3.1: + resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} + engines: {node: '>=20.19.0'} + + unplugin-vue-components@30.0.0: + resolution: {integrity: sha512-4qVE/lwCgmdPTp6h0qsRN2u642tt4boBQtcpn4wQcWZAsr8TQwq+SPT3NDu/6kBFxzo/sSEK4ioXhOOBrXc3iw==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 || ^4.0.0 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + + unplugin-vue-markdown@30.0.0: + resolution: {integrity: sha512-FVdKAb7jmZslfdkOCfm6jxHaUafltBpOXdoLvKY+0I0EeMmhxXTSzeDldwXFJeV0IH8LyIXIiU29E6gv02WJFQ==} + engines: {node: '>=20'} + peerDependencies: + vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0 || ^7.0.0 + + unplugin@2.3.11: + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} + engines: {node: '>=18.12.0'} + + unplugin@3.0.0: + resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} + engines: {node: ^20.19.0 || >=22.12.0} + + untyped@2.0.0: + resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} + hasBin: true + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@11.1.1: + resolution: {integrity: sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==} + hasBin: true + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite-dev-rpc@1.1.0: + resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 + + vite-hot-client@2.1.0: + resolution: {integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + + vite-plugin-inspect@11.3.3: + resolution: {integrity: sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + + vite-plugin-remote-assets@2.1.0: + resolution: {integrity: sha512-8ajL5WG5BmYcC8zxeLOa3byCUG2AopKDAdNK7zStPHaRYYz1mxXBaeNFLu6vTEXj8UmXAsb5WlEmBBYwtlPEwA==} + peerDependencies: + vite: '>=5.0.0' + + vite-plugin-static-copy@4.1.0: + resolution: {integrity: sha512-9XOarNV7LgP0KBB7AApxdgFikLXx3daZdqjC3AevYsL6MrUH62zphonLUs2a6LZc1HN1GY+vQdheZ8VVJb6dQQ==} + engines: {node: ^22.0.0 || >=24.0.0} + peerDependencies: + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + + vite-plugin-vue-server-ref@1.0.0: + resolution: {integrity: sha512-6d/JZVrnETM0xa0AVyEcI1bXFpEzQ1EPU5N/gDa7NtXo/7nfJWJhezcWq82Jih6Vf8xtGJjhi1w19AcXAtwmAg==} + peerDependencies: + vite: '>=2.0.0' + vue: ^3.0.0 + + vite@6.4.2: + resolution: {integrity: sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vite@7.3.2: + resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitepress-plugin-group-icons@1.7.5: + resolution: {integrity: sha512-QzcroUuIiVKyXpmEiiHVbfRTQIy9Zbwxpk5JC/zavO8mavitwumz2RZWlwTchMCCHducYyPptkYvXvdnNUWkog==} + peerDependencies: + vite: '>=3' + peerDependenciesMeta: + vite: + optional: true + + vitepress-plugin-llms@1.12.1: + resolution: {integrity: sha512-mUbjxXbNCWIxTZPuxh1smbjRpU1j5Bw5sXKoWeU/kfWCyALE92HyiAXhOgNVAB8QOLCuXticf3Qwsj/YlWROlw==} + engines: {node: '>=18.0.0'} + + vitepress@2.0.0-alpha.17: + resolution: {integrity: sha512-Z3VPUpwk/bHYqt1uMVOOK1/4xFiWQov1GNc2FvMdz6kvje4JRXEOngVI9C+bi5jeedMSHiA4dwKkff1NCvbZ9Q==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4 + oxc-minify: '*' + postcss: ^8 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + oxc-minify: + optional: true + postcss: + optional: true + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + vue-resize@2.0.0-alpha.1: + resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} + peerDependencies: + vue: ^3.0.0 + + vue-router@5.0.6: + resolution: {integrity: sha512-9+kmUTGbKMyW9Asoy98IXXYIzrTMT7JDAdpDDeEkorHvybpUvBI2wsrSM5jFOXrFydpzRFJ9vAh+80DN2PGu9w==} + peerDependencies: + '@pinia/colada': '>=0.21.2' + '@vue/compiler-sfc': ^3.5.17 + pinia: ^3.0.4 + vue: ^3.5.0 + peerDependenciesMeta: + '@pinia/colada': + optional: true + '@vue/compiler-sfc': + optional: true + pinia: + optional: true + + vue@3.5.33: + resolution: {integrity: sha512-1AgChhx5w3ALgT4oK3acm2Es/7jyZhWSVUfs3rOBlGQC0rjEDkS7G4lWlJJGGNQD+BV3reCwbQrOe1mPNwKHBQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml@2.8.3: + resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.6.0 + tinyexec: 1.1.2 + + '@antfu/utils@9.3.0': {} + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.0': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.29.2 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.28.5': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-plugin-utils@7.28.6': {} + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.29.2': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + + '@babel/parser@7.29.2': + dependencies: + '@babel/types': 7.29.0 + + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@braintree/sanitize-url@7.1.2': {} + + '@chevrotain/cst-dts-gen@12.0.0': + dependencies: + '@chevrotain/gast': 12.0.0 + '@chevrotain/types': 12.0.0 + + '@chevrotain/gast@12.0.0': + dependencies: + '@chevrotain/types': 12.0.0 + + '@chevrotain/regexp-to-ast@12.0.0': {} + + '@chevrotain/types@12.0.0': {} + + '@chevrotain/utils@12.0.0': {} + + '@docsearch/css@4.6.3': {} + + '@docsearch/js@4.6.3': {} + + '@docsearch/sidepanel-js@4.6.3': {} + + '@drauu/core@1.0.0': {} + + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.25.12': + optional: true + + '@esbuild/aix-ppc64@0.27.7': + optional: true + + '@esbuild/android-arm64@0.25.12': + optional: true + + '@esbuild/android-arm64@0.27.7': + optional: true + + '@esbuild/android-arm@0.25.12': + optional: true + + '@esbuild/android-arm@0.27.7': + optional: true + + '@esbuild/android-x64@0.25.12': + optional: true + + '@esbuild/android-x64@0.27.7': + optional: true + + '@esbuild/darwin-arm64@0.25.12': + optional: true + + '@esbuild/darwin-arm64@0.27.7': + optional: true + + '@esbuild/darwin-x64@0.25.12': + optional: true + + '@esbuild/darwin-x64@0.27.7': + optional: true + + '@esbuild/freebsd-arm64@0.25.12': + optional: true + + '@esbuild/freebsd-arm64@0.27.7': + optional: true + + '@esbuild/freebsd-x64@0.25.12': + optional: true + + '@esbuild/freebsd-x64@0.27.7': + optional: true + + '@esbuild/linux-arm64@0.25.12': + optional: true + + '@esbuild/linux-arm64@0.27.7': + optional: true + + '@esbuild/linux-arm@0.25.12': + optional: true + + '@esbuild/linux-arm@0.27.7': + optional: true + + '@esbuild/linux-ia32@0.25.12': + optional: true + + '@esbuild/linux-ia32@0.27.7': + optional: true + + '@esbuild/linux-loong64@0.25.12': + optional: true + + '@esbuild/linux-loong64@0.27.7': + optional: true + + '@esbuild/linux-mips64el@0.25.12': + optional: true + + '@esbuild/linux-mips64el@0.27.7': + optional: true + + '@esbuild/linux-ppc64@0.25.12': + optional: true + + '@esbuild/linux-ppc64@0.27.7': + optional: true + + '@esbuild/linux-riscv64@0.25.12': + optional: true + + '@esbuild/linux-riscv64@0.27.7': + optional: true + + '@esbuild/linux-s390x@0.25.12': + optional: true + + '@esbuild/linux-s390x@0.27.7': + optional: true + + '@esbuild/linux-x64@0.25.12': + optional: true + + '@esbuild/linux-x64@0.27.7': + optional: true + + '@esbuild/netbsd-arm64@0.25.12': + optional: true + + '@esbuild/netbsd-arm64@0.27.7': + optional: true + + '@esbuild/netbsd-x64@0.25.12': + optional: true + + '@esbuild/netbsd-x64@0.27.7': + optional: true + + '@esbuild/openbsd-arm64@0.25.12': + optional: true + + '@esbuild/openbsd-arm64@0.27.7': + optional: true + + '@esbuild/openbsd-x64@0.25.12': + optional: true + + '@esbuild/openbsd-x64@0.27.7': + optional: true + + '@esbuild/openharmony-arm64@0.25.12': + optional: true + + '@esbuild/openharmony-arm64@0.27.7': + optional: true + + '@esbuild/sunos-x64@0.25.12': + optional: true + + '@esbuild/sunos-x64@0.27.7': + optional: true + + '@esbuild/win32-arm64@0.25.12': + optional: true + + '@esbuild/win32-arm64@0.27.7': + optional: true + + '@esbuild/win32-ia32@0.25.12': + optional: true + + '@esbuild/win32-ia32@0.27.7': + optional: true + + '@esbuild/win32-x64@0.25.12': + optional: true + + '@esbuild/win32-x64@0.27.7': + optional: true + + '@floating-ui/core@1.7.5': + dependencies: + '@floating-ui/utils': 0.2.11 + + '@floating-ui/dom@1.1.1': + dependencies: + '@floating-ui/core': 1.7.5 + + '@floating-ui/utils@0.2.11': {} + + '@iconify-json/carbon@1.2.20': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/codicon@1.2.52': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/logos@1.2.11': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/mdi@1.2.3': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/ph@1.2.2': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/simple-icons@1.2.80': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/svg-spinners@1.2.4': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/twemoji@1.2.5': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/uil@1.2.3': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/uim@1.2.3': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/vscode-icons@1.2.47': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify/types@2.0.0': {} + + '@iconify/utils@3.1.1': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@iconify/types': 2.0.0 + mlly: 1.8.2 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@mdit-vue/plugin-component@3.0.2': + dependencies: + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.1 + + '@mdit-vue/plugin-frontmatter@3.0.2': + dependencies: + '@mdit-vue/types': 3.0.2 + '@types/markdown-it': 14.1.2 + gray-matter: 4.0.3 + markdown-it: 14.1.1 + + '@mdit-vue/types@3.0.2': {} + + '@mermaid-js/parser@1.1.0': + dependencies: + langium: 4.2.2 + + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@nuxt/kit@3.21.4': + dependencies: + c12: 3.3.4 + consola: 3.4.2 + defu: 6.1.7 + destr: 2.0.5 + errx: 0.1.0 + exsolve: 1.0.8 + ignore: 7.0.5 + jiti: 2.6.1 + klona: 2.0.6 + knitwork: 1.3.0 + mlly: 1.8.2 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.1 + rc9: 3.0.1 + scule: 1.3.0 + semver: 7.7.4 + tinyglobby: 0.2.16 + ufo: 1.6.4 + unctx: 2.5.0 + untyped: 2.0.0 + transitivePeerDependencies: + - magicast + optional: true + + '@oxc-parser/binding-android-arm-eabi@0.124.0': + optional: true + + '@oxc-parser/binding-android-arm64@0.124.0': + optional: true + + '@oxc-parser/binding-darwin-arm64@0.124.0': + optional: true + + '@oxc-parser/binding-darwin-x64@0.124.0': + optional: true + + '@oxc-parser/binding-freebsd-x64@0.124.0': + optional: true + + '@oxc-parser/binding-linux-arm-gnueabihf@0.124.0': + optional: true + + '@oxc-parser/binding-linux-arm-musleabihf@0.124.0': + optional: true + + '@oxc-parser/binding-linux-arm64-gnu@0.124.0': + optional: true + + '@oxc-parser/binding-linux-arm64-musl@0.124.0': + optional: true + + '@oxc-parser/binding-linux-ppc64-gnu@0.124.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-gnu@0.124.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-musl@0.124.0': + optional: true + + '@oxc-parser/binding-linux-s390x-gnu@0.124.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.124.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.124.0': + optional: true + + '@oxc-parser/binding-openharmony-arm64@0.124.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.124.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.124.0': + optional: true + + '@oxc-parser/binding-win32-ia32-msvc@0.124.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.124.0': + optional: true + + '@oxc-project/types@0.124.0': {} + + '@polka/url@1.0.0-next.29': {} + + '@quansync/fs@1.0.0': + dependencies: + quansync: 1.0.0 + + '@rolldown/pluginutils@1.0.0-rc.13': {} + + '@rolldown/pluginutils@1.0.0-rc.18': {} + + '@rollup/rollup-android-arm-eabi@4.60.2': + optional: true + + '@rollup/rollup-android-arm64@4.60.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.60.2': + optional: true + + '@rollup/rollup-darwin-x64@4.60.2': + optional: true + + '@rollup/rollup-freebsd-arm64@4.60.2': + optional: true + + '@rollup/rollup-freebsd-x64@4.60.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.60.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.60.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.60.2': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.60.2': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.60.2': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.60.2': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.60.2': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.60.2': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.60.2': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.60.2': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.60.2': + optional: true + + '@rollup/rollup-linux-x64-musl@4.60.2': + optional: true + + '@rollup/rollup-openbsd-x64@4.60.2': + optional: true + + '@rollup/rollup-openharmony-arm64@4.60.2': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.60.2': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.60.2': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.60.2': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.60.2': + optional: true + + '@shikijs/core@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/core@4.0.2': + dependencies: + '@shikijs/primitive': 4.0.2 + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.6 + + '@shikijs/engine-javascript@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.6 + + '@shikijs/engine-oniguruma@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/engine-oniguruma@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/langs@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + + '@shikijs/markdown-it@4.0.2': + dependencies: + markdown-it: 14.1.1 + shiki: 4.0.2 + + '@shikijs/monaco@4.0.2': + dependencies: + '@shikijs/core': 4.0.2 + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/primitive@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/themes@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/themes@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + + '@shikijs/transformers@3.23.0': + dependencies: + '@shikijs/core': 3.23.0 + '@shikijs/types': 3.23.0 + + '@shikijs/twoslash@3.23.0(typescript@5.9.3)': + dependencies: + '@shikijs/core': 3.23.0 + '@shikijs/types': 3.23.0 + twoslash: 0.3.8(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@shikijs/twoslash@4.0.2(typescript@5.9.3)': + dependencies: + '@shikijs/core': 4.0.2 + '@shikijs/types': 4.0.2 + twoslash: 0.3.8(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@shikijs/types@3.23.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/types@4.0.2': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vitepress-twoslash@3.23.0(@nuxt/kit@3.21.4)(typescript@5.9.3)': + dependencies: + '@shikijs/twoslash': 3.23.0(typescript@5.9.3) + floating-vue: 5.2.2(@nuxt/kit@3.21.4)(vue@3.5.33(typescript@5.9.3)) + lz-string: 1.5.0 + magic-string: 0.30.21 + markdown-it: 14.1.1 + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm: 3.1.0 + mdast-util-to-hast: 13.2.1 + ohash: 2.0.11 + shiki: 3.23.0 + twoslash: 0.3.8(typescript@5.9.3) + twoslash-vue: 0.3.8(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) + transitivePeerDependencies: + - '@nuxt/kit' + - supports-color + - typescript + + '@shikijs/vitepress-twoslash@4.0.2(@nuxt/kit@3.21.4)(typescript@5.9.3)': + dependencies: + '@shikijs/twoslash': 4.0.2(typescript@5.9.3) + floating-vue: 5.2.2(@nuxt/kit@3.21.4)(vue@3.5.33(typescript@5.9.3)) + lz-string: 1.5.0 + magic-string: 0.30.21 + markdown-it: 14.1.1 + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm: 3.1.0 + mdast-util-to-hast: 13.2.1 + ohash: 2.0.11 + shiki: 4.0.2 + twoslash: 0.3.8(typescript@5.9.3) + twoslash-vue: 0.3.8(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) + transitivePeerDependencies: + - '@nuxt/kit' + - supports-color + - typescript + + '@shikijs/vscode-textmate@10.0.2': {} + + '@slidev/client@52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': + dependencies: + '@antfu/utils': 9.3.0 + '@iconify-json/carbon': 1.2.20 + '@iconify-json/ph': 1.2.2 + '@iconify-json/svg-spinners': 1.2.4 + '@shikijs/engine-javascript': 4.0.2 + '@shikijs/monaco': 4.0.2 + '@shikijs/vitepress-twoslash': 4.0.2(@nuxt/kit@3.21.4)(typescript@5.9.3) + '@slidev/parser': 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + '@slidev/rough-notation': 0.1.0 + '@slidev/types': 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + '@typescript/ata': 0.9.8(typescript@5.9.3) + '@unhead/vue': 2.1.13(vue@3.5.33(typescript@5.9.3)) + '@unocss/extractor-mdc': 66.6.8 + '@unocss/preset-mini': 66.6.8 + '@unocss/reset': 66.6.8 + '@vueuse/core': 14.2.1(vue@3.5.33(typescript@5.9.3)) + '@vueuse/math': 14.2.1(vue@3.5.33(typescript@5.9.3)) + '@vueuse/motion': 3.0.3(vue@3.5.33(typescript@5.9.3)) + ansis: 4.2.0 + drauu: 1.0.0 + file-saver: 2.0.5 + fix-webm-duration: 1.0.6 + floating-vue: 5.2.2(@nuxt/kit@3.21.4)(vue@3.5.33(typescript@5.9.3)) + fuse.js: 7.3.0 + katex: 0.16.45 + lz-string: 1.5.0 + mermaid: 11.14.0 + monaco-editor: 0.55.1 + nanotar: 0.3.0 + pptxgenjs: 4.0.1 + recordrtc: 5.6.2 + shiki: 4.0.2 + shiki-magic-move: 1.3.0(shiki@4.0.2)(vue@3.5.33(typescript@5.9.3)) + typescript: 5.9.3 + unocss: 66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vue: 3.5.33(typescript@5.9.3) + vue-router: 5.0.6(@vue/compiler-sfc@3.5.33)(vue@3.5.33(typescript@5.9.3)) + yaml: 2.8.3 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@nuxt/kit' + - '@pinia/colada' + - '@svgr/core' + - '@svgx/core' + - '@unocss/astro' + - '@unocss/postcss' + - '@unocss/webpack' + - '@vue/compiler-sfc' + - magicast + - markdown-it-async + - pinia + - react + - solid-js + - supports-color + - svelte + - vite + + '@slidev/parser@52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': + dependencies: + '@antfu/utils': 9.3.0 + '@slidev/types': 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + yaml: 2.8.3 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@nuxt/kit' + - '@pinia/colada' + - '@svgr/core' + - '@svgx/core' + - '@unocss/astro' + - '@unocss/postcss' + - '@unocss/webpack' + - '@vue/compiler-sfc' + - markdown-it-async + - pinia + - supports-color + - svelte + - typescript + - vite + + '@slidev/rough-notation@0.1.0': + dependencies: + roughjs: 4.6.6 + + '@slidev/theme-default@0.25.0': + dependencies: + '@slidev/types': 0.47.5 + codemirror-theme-vars: 0.1.2 + prism-theme-vars: 0.2.5 + + '@slidev/types@0.47.5': {} + + '@slidev/types@52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': + dependencies: + '@antfu/utils': 9.3.0 + '@shikijs/markdown-it': 4.0.2 + '@vitejs/plugin-vue': 6.0.6(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 5.1.5(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + katex: 0.16.45 + mermaid: 11.14.0 + monaco-editor: 0.55.1 + shiki: 4.0.2 + unocss: 66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + unplugin-icons: 23.0.1(@vue/compiler-sfc@3.5.33) + unplugin-vue-markdown: 30.0.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vite-plugin-inspect: 11.3.3(@nuxt/kit@3.21.4)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vite-plugin-remote-assets: 2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vite-plugin-static-copy: 4.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vite-plugin-vue-server-ref: 1.0.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) + vue-router: 5.0.6(@vue/compiler-sfc@3.5.33)(vue@3.5.33(typescript@5.9.3)) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@nuxt/kit' + - '@pinia/colada' + - '@svgr/core' + - '@svgx/core' + - '@unocss/astro' + - '@unocss/postcss' + - '@unocss/webpack' + - '@vue/compiler-sfc' + - markdown-it-async + - pinia + - supports-color + - svelte + - typescript + - vite + + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/d3-array@3.2.2': {} + + '@types/d3-axis@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-brush@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-chord@3.0.6': {} + + '@types/d3-color@3.1.3': {} + + '@types/d3-contour@3.0.6': + dependencies: + '@types/d3-array': 3.2.2 + '@types/geojson': 7946.0.16 + + '@types/d3-delaunay@6.0.4': {} + + '@types/d3-dispatch@3.0.7': {} + + '@types/d3-drag@3.0.7': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-dsv@3.0.7': {} + + '@types/d3-ease@3.0.2': {} + + '@types/d3-fetch@3.0.7': + dependencies: + '@types/d3-dsv': 3.0.7 + + '@types/d3-force@3.0.10': {} + + '@types/d3-format@3.0.4': {} + + '@types/d3-geo@3.1.0': + dependencies: + '@types/geojson': 7946.0.16 + + '@types/d3-hierarchy@3.1.7': {} + + '@types/d3-interpolate@3.0.4': + dependencies: + '@types/d3-color': 3.1.3 + + '@types/d3-path@3.1.1': {} + + '@types/d3-polygon@3.0.2': {} + + '@types/d3-quadtree@3.0.6': {} + + '@types/d3-random@3.0.3': {} + + '@types/d3-scale-chromatic@3.1.0': {} + + '@types/d3-scale@4.0.9': + dependencies: + '@types/d3-time': 3.0.4 + + '@types/d3-selection@3.0.11': {} + + '@types/d3-shape@3.1.8': + dependencies: + '@types/d3-path': 3.1.1 + + '@types/d3-time-format@4.0.3': {} + + '@types/d3-time@3.0.4': {} + + '@types/d3-timer@3.0.2': {} + + '@types/d3-transition@3.0.9': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-zoom@3.0.8': + dependencies: + '@types/d3-interpolate': 3.0.4 + '@types/d3-selection': 3.0.11 + + '@types/d3@7.4.3': + dependencies: + '@types/d3-array': 3.2.2 + '@types/d3-axis': 3.0.6 + '@types/d3-brush': 3.0.6 + '@types/d3-chord': 3.0.6 + '@types/d3-color': 3.1.3 + '@types/d3-contour': 3.0.6 + '@types/d3-delaunay': 6.0.4 + '@types/d3-dispatch': 3.0.7 + '@types/d3-drag': 3.0.7 + '@types/d3-dsv': 3.0.7 + '@types/d3-ease': 3.0.2 + '@types/d3-fetch': 3.0.7 + '@types/d3-force': 3.0.10 + '@types/d3-format': 3.0.4 + '@types/d3-geo': 3.1.0 + '@types/d3-hierarchy': 3.1.7 + '@types/d3-interpolate': 3.0.4 + '@types/d3-path': 3.1.1 + '@types/d3-polygon': 3.0.2 + '@types/d3-quadtree': 3.0.6 + '@types/d3-random': 3.0.3 + '@types/d3-scale': 4.0.9 + '@types/d3-scale-chromatic': 3.1.0 + '@types/d3-selection': 3.0.11 + '@types/d3-shape': 3.1.8 + '@types/d3-time': 3.0.4 + '@types/d3-time-format': 4.0.3 + '@types/d3-timer': 3.0.2 + '@types/d3-transition': 3.0.9 + '@types/d3-zoom': 3.0.8 + + '@types/debug@4.1.13': + dependencies: + '@types/ms': 2.1.0 + + '@types/estree@1.0.8': {} + + '@types/geojson@7946.0.16': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdurl@2.0.0': {} + + '@types/ms@2.1.0': {} + + '@types/node@22.19.17': + dependencies: + undici-types: 6.21.0 + + '@types/node@25.6.0': + dependencies: + undici-types: 7.19.2 + + '@types/trusted-types@2.0.7': + optional: true + + '@types/unist@3.0.3': {} + + '@types/web-bluetooth@0.0.21': {} + + '@typescript/ata@0.9.8(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript/vfs@1.6.4(typescript@5.9.3)': + dependencies: + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@ungap/structured-clone@1.3.0': {} + + '@unhead/vue@2.1.13(vue@3.5.33(typescript@5.9.3))': + dependencies: + hookable: 6.1.1 + unhead: 2.1.13 + vue: 3.5.33(typescript@5.9.3) + + '@unocss/cli@66.6.8': + dependencies: + '@jridgewell/remapping': 2.3.5 + '@unocss/config': 66.6.8 + '@unocss/core': 66.6.8 + '@unocss/preset-wind3': 66.6.8 + '@unocss/preset-wind4': 66.6.8 + '@unocss/transformer-directives': 66.6.8 + cac: 7.0.0 + chokidar: 5.0.0 + colorette: 2.0.20 + consola: 3.4.2 + magic-string: 0.30.21 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + tinyglobby: 0.2.16 + unplugin-utils: 0.3.1 + + '@unocss/config@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + colorette: 2.0.20 + consola: 3.4.2 + unconfig: 7.5.0 + + '@unocss/core@66.6.8': {} + + '@unocss/extractor-arbitrary-variants@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + + '@unocss/extractor-mdc@66.6.8': {} + + '@unocss/inspector@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + '@unocss/rule-utils': 66.6.8 + colorette: 2.0.20 + gzip-size: 6.0.0 + sirv: 3.0.2 + + '@unocss/preset-attributify@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + + '@unocss/preset-icons@66.6.8': + dependencies: + '@iconify/utils': 3.1.1 + '@unocss/core': 66.6.8 + ofetch: 1.5.1 + + '@unocss/preset-mini@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + '@unocss/extractor-arbitrary-variants': 66.6.8 + '@unocss/rule-utils': 66.6.8 + + '@unocss/preset-tagify@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + + '@unocss/preset-typography@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + '@unocss/rule-utils': 66.6.8 + + '@unocss/preset-uno@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + '@unocss/preset-wind3': 66.6.8 + + '@unocss/preset-web-fonts@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + ofetch: 1.5.1 + + '@unocss/preset-wind3@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + '@unocss/preset-mini': 66.6.8 + '@unocss/rule-utils': 66.6.8 + + '@unocss/preset-wind4@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + '@unocss/extractor-arbitrary-variants': 66.6.8 + '@unocss/rule-utils': 66.6.8 + + '@unocss/preset-wind@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + '@unocss/preset-wind3': 66.6.8 + + '@unocss/reset@66.6.8': {} + + '@unocss/rule-utils@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + magic-string: 0.30.21 + + '@unocss/transformer-attributify-jsx@66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@unocss/core': 66.6.8 + oxc-parser: 0.124.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + oxc-walker: 0.7.0(oxc-parser@0.124.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + + '@unocss/transformer-compile-class@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + + '@unocss/transformer-directives@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + '@unocss/rule-utils': 66.6.8 + css-tree: 3.2.1 + + '@unocss/transformer-variant-group@66.6.8': + dependencies: + '@unocss/core': 66.6.8 + + '@unocss/vite@66.6.8(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': + dependencies: + '@jridgewell/remapping': 2.3.5 + '@unocss/config': 66.6.8 + '@unocss/core': 66.6.8 + '@unocss/inspector': 66.6.8 + chokidar: 5.0.0 + magic-string: 0.30.21 + pathe: 2.0.3 + tinyglobby: 0.2.16 + unplugin-utils: 0.3.1 + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + + '@upsetjs/venn.js@2.0.0': + optionalDependencies: + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + '@vitejs/plugin-vue-jsx@5.1.5(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + '@rolldown/pluginutils': 1.0.0-rc.18 + '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vue: 3.5.33(typescript@5.9.3) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@6.0.6(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': + dependencies: + '@rolldown/pluginutils': 1.0.0-rc.13 + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vue: 3.5.33(typescript@5.9.3) + + '@vitejs/plugin-vue@6.0.6(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': + dependencies: + '@rolldown/pluginutils': 1.0.0-rc.13 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vue: 3.5.33(typescript@5.9.3) + + '@volar/language-core@2.4.28': + dependencies: + '@volar/source-map': 2.4.28 + + '@volar/source-map@2.4.28': {} + + '@vue-macros/common@3.1.2(vue@3.5.33(typescript@5.9.3))': + dependencies: + '@vue/compiler-sfc': 3.5.33 + ast-kit: 2.2.0 + local-pkg: 1.1.2 + magic-string-ast: 1.0.3 + unplugin-utils: 0.3.1 + optionalDependencies: + vue: 3.5.33(typescript@5.9.3) + + '@vue/babel-helper-vue-transform-on@2.0.1': {} + + '@vue/babel-plugin-jsx@2.0.1(@babel/core@7.29.0)': + dependencies: + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@vue/babel-helper-vue-transform-on': 2.0.1 + '@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.29.0) + '@vue/shared': 3.5.33 + optionalDependencies: + '@babel/core': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@2.0.1(@babel/core@7.29.0)': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/parser': 7.29.2 + '@vue/compiler-sfc': 3.5.33 + transitivePeerDependencies: + - supports-color + + '@vue/compiler-core@3.5.33': + dependencies: + '@babel/parser': 7.29.2 + '@vue/shared': 3.5.33 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.33': + dependencies: + '@vue/compiler-core': 3.5.33 + '@vue/shared': 3.5.33 + + '@vue/compiler-sfc@3.5.33': + dependencies: + '@babel/parser': 7.29.2 + '@vue/compiler-core': 3.5.33 + '@vue/compiler-dom': 3.5.33 + '@vue/compiler-ssr': 3.5.33 + '@vue/shared': 3.5.33 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.12 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.33': + dependencies: + '@vue/compiler-dom': 3.5.33 + '@vue/shared': 3.5.33 + + '@vue/devtools-api@8.1.1': + dependencies: + '@vue/devtools-kit': 8.1.1 + + '@vue/devtools-kit@8.1.1': + dependencies: + '@vue/devtools-shared': 8.1.1 + birpc: 2.9.0 + hookable: 5.5.3 + perfect-debounce: 2.1.0 + + '@vue/devtools-shared@8.1.1': {} + + '@vue/language-core@3.2.7': + dependencies: + '@volar/language-core': 2.4.28 + '@vue/compiler-dom': 3.5.33 + '@vue/shared': 3.5.33 + alien-signals: 3.1.2 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + picomatch: 4.0.4 + + '@vue/reactivity@3.5.33': + dependencies: + '@vue/shared': 3.5.33 + + '@vue/runtime-core@3.5.33': + dependencies: + '@vue/reactivity': 3.5.33 + '@vue/shared': 3.5.33 + + '@vue/runtime-dom@3.5.33': + dependencies: + '@vue/reactivity': 3.5.33 + '@vue/runtime-core': 3.5.33 + '@vue/shared': 3.5.33 + csstype: 3.2.3 + + '@vue/server-renderer@3.5.33(vue@3.5.33(typescript@5.9.3))': + dependencies: + '@vue/compiler-ssr': 3.5.33 + '@vue/shared': 3.5.33 + vue: 3.5.33(typescript@5.9.3) + + '@vue/shared@3.5.33': {} + + '@vueuse/core@13.9.0(vue@3.5.33(typescript@5.9.3))': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 13.9.0 + '@vueuse/shared': 13.9.0(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) + + '@vueuse/core@14.2.1(vue@3.5.33(typescript@5.9.3))': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 14.2.1 + '@vueuse/shared': 14.2.1(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) + + '@vueuse/integrations@14.2.1(focus-trap@8.1.0)(fuse.js@7.3.0)(vue@3.5.33(typescript@5.9.3))': + dependencies: + '@vueuse/core': 14.2.1(vue@3.5.33(typescript@5.9.3)) + '@vueuse/shared': 14.2.1(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) + optionalDependencies: + focus-trap: 8.1.0 + fuse.js: 7.3.0 + + '@vueuse/math@14.2.1(vue@3.5.33(typescript@5.9.3))': + dependencies: + '@vueuse/shared': 14.2.1(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) + + '@vueuse/metadata@13.9.0': {} + + '@vueuse/metadata@14.2.1': {} + + '@vueuse/motion@3.0.3(vue@3.5.33(typescript@5.9.3))': + dependencies: + '@vueuse/core': 13.9.0(vue@3.5.33(typescript@5.9.3)) + '@vueuse/shared': 13.9.0(vue@3.5.33(typescript@5.9.3)) + defu: 6.1.7 + framesync: 6.1.2 + popmotion: 11.0.5 + style-value-types: 5.1.2 + vue: 3.5.33(typescript@5.9.3) + optionalDependencies: + '@nuxt/kit': 3.21.4 + transitivePeerDependencies: + - magicast + + '@vueuse/shared@13.9.0(vue@3.5.33(typescript@5.9.3))': + dependencies: + vue: 3.5.33(typescript@5.9.3) + + '@vueuse/shared@14.2.1(vue@3.5.33(typescript@5.9.3))': + dependencies: + vue: 3.5.33(typescript@5.9.3) + + acorn@8.16.0: {} + + alien-signals@3.1.2: {} + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansis@4.2.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.2 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + ast-kit@2.2.0: + dependencies: + '@babel/parser': 7.29.2 + pathe: 2.0.3 + + ast-walker-scope@0.8.3: + dependencies: + '@babel/parser': 7.29.2 + ast-kit: 2.2.0 + + bail@2.0.2: {} + + balanced-match@4.0.4: {} + + baseline-browser-mapping@2.10.24: {} + + binary-extensions@2.3.0: {} + + birpc@2.9.0: {} + + brace-expansion@5.0.5: + dependencies: + balanced-match: 4.0.4 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.28.2: + dependencies: + baseline-browser-mapping: 2.10.24 + caniuse-lite: 1.0.30001791 + electron-to-chromium: 1.5.345 + node-releases: 2.0.38 + update-browserslist-db: 1.2.3(browserslist@4.28.2) + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.1.0 + + c12@3.3.4: + dependencies: + chokidar: 5.0.0 + confbox: 0.2.4 + defu: 6.1.7 + dotenv: 17.4.2 + exsolve: 1.0.8 + giget: 3.2.0 + jiti: 2.6.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.1 + rc9: 3.0.1 + optional: true + + cac@7.0.0: {} + + caniuse-lite@1.0.30001791: {} + + ccount@2.0.1: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + chevrotain-allstar@0.4.2(chevrotain@12.0.0): + dependencies: + chevrotain: 12.0.0 + lodash-es: 4.18.1 + + chevrotain@12.0.0: + dependencies: + '@chevrotain/cst-dts-gen': 12.0.0 + '@chevrotain/gast': 12.0.0 + '@chevrotain/regexp-to-ast': 12.0.0 + '@chevrotain/types': 12.0.0 + '@chevrotain/utils': 12.0.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + + citty@0.1.6: + dependencies: + consola: 3.4.2 + optional: true + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + codemirror-theme-vars@0.1.2: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + comma-separated-tokens@2.0.3: {} + + commander@7.2.0: {} + + commander@8.3.0: {} + + confbox@0.1.8: {} + + confbox@0.2.4: {} + + consola@3.4.2: {} + + convert-source-map@2.0.0: {} + + core-util-is@1.0.3: {} + + cose-base@1.0.3: + dependencies: + layout-base: 1.0.2 + + cose-base@2.2.0: + dependencies: + layout-base: 2.0.1 + + css-tree@3.2.1: + dependencies: + mdn-data: 2.27.1 + source-map-js: 1.2.1 + + csstype@3.2.3: {} + + cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.3): + dependencies: + cose-base: 1.0.3 + cytoscape: 3.33.3 + + cytoscape-fcose@2.2.0(cytoscape@3.33.3): + dependencies: + cose-base: 2.2.0 + cytoscape: 3.33.3 + + cytoscape@3.33.3: {} + + d3-array@2.12.1: + dependencies: + internmap: 1.0.1 + + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-axis@3.0.0: {} + + d3-brush@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3-chord@3.0.1: + dependencies: + d3-path: 3.1.0 + + d3-color@3.1.0: {} + + d3-contour@4.0.2: + dependencies: + d3-array: 3.2.4 + + d3-delaunay@6.0.4: + dependencies: + delaunator: 5.1.0 + + d3-dispatch@3.0.1: {} + + d3-drag@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + + d3-dsv@3.0.1: + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + + d3-ease@3.0.1: {} + + d3-fetch@3.0.1: + dependencies: + d3-dsv: 3.0.1 + + d3-force@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + + d3-format@3.1.2: {} + + d3-geo@3.1.1: + dependencies: + d3-array: 3.2.4 + + d3-hierarchy@3.1.2: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-path@1.0.9: {} + + d3-path@3.1.0: {} + + d3-polygon@3.0.1: {} + + d3-quadtree@3.0.1: {} + + d3-random@3.0.1: {} + + d3-sankey@0.12.3: + dependencies: + d3-array: 2.12.1 + d3-shape: 1.3.7 + + d3-scale-chromatic@3.1.0: + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.2 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-selection@3.0.0: {} + + d3-shape@1.3.7: + dependencies: + d3-path: 1.0.9 + + d3-shape@3.2.0: + dependencies: + d3-path: 3.1.0 + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + d3-timer@3.0.1: {} + + d3-transition@3.0.1(d3-selection@3.0.0): + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + + d3-zoom@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3@7.9.0: + dependencies: + d3-array: 3.2.4 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.4 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.2 + d3-geo: 3.1.1 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.1.0 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.1.0 + d3-selection: 3.0.0 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1(d3-selection@3.0.0) + d3-zoom: 3.0.0 + + dagre-d3-es@7.0.14: + dependencies: + d3: 7.9.0 + lodash-es: 4.18.1 + + dayjs@1.11.20: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.3.0: + dependencies: + character-entities: 2.0.2 + + default-browser-id@5.0.1: {} + + default-browser@5.5.0: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.1 + + define-lazy-prop@3.0.0: {} + + defu@6.1.7: {} + + delaunator@5.1.0: + dependencies: + robust-predicates: 3.0.3 + + dequal@2.0.3: {} + + destr@2.0.5: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + diff-match-patch-es@1.0.1: {} + + dompurify@3.2.7: + optionalDependencies: + '@types/trusted-types': 2.0.7 + + dompurify@3.4.1: + optionalDependencies: + '@types/trusted-types': 2.0.7 + + dotenv@17.4.2: + optional: true + + drauu@1.0.0: + dependencies: + '@drauu/core': 1.0.0 + + duplexer@0.1.2: {} + + electron-to-chromium@1.5.345: {} + + emoji-regex@8.0.0: {} + + entities@4.5.0: {} + + entities@7.0.1: {} + + error-stack-parser-es@1.0.5: {} + + errx@0.1.0: + optional: true + + esbuild@0.25.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 + + esbuild@0.27.7: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + + escalade@3.2.0: {} + + escape-string-regexp@5.0.0: {} + + esprima@4.0.1: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + exsolve@1.0.8: {} + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend@3.0.2: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fault@2.0.1: + dependencies: + format: 0.2.2 + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + file-saver@2.0.5: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + fix-webm-duration@1.0.6: {} + + floating-vue@5.2.2(@nuxt/kit@3.21.4)(vue@3.5.33(typescript@5.9.3)): + dependencies: + '@floating-ui/dom': 1.1.1 + vue: 3.5.33(typescript@5.9.3) + vue-resize: 2.0.0-alpha.1(vue@3.5.33(typescript@5.9.3)) + optionalDependencies: + '@nuxt/kit': 3.21.4 + + focus-trap@8.1.0: + dependencies: + tabbable: 6.4.0 + + format@0.2.2: {} + + framesync@6.1.2: + dependencies: + tslib: 2.4.0 + + fsevents@2.3.3: + optional: true + + fuse.js@7.3.0: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + giget@3.2.0: + optional: true + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.2 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + + gzip-size@6.0.0: + dependencies: + duplexer: 0.1.2 + + hachure-fill@0.5.2: {} + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hey-listen@1.0.8: {} + + hookable@5.5.3: {} + + hookable@6.1.1: {} + + html-void-elements@3.0.0: {} + + https@1.0.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore@7.0.5: + optional: true + + image-size@1.2.1: + dependencies: + queue: 6.0.2 + + immediate@3.0.6: {} + + inherits@2.0.4: {} + + internmap@1.0.1: {} + + internmap@2.0.3: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-docker@3.0.0: {} + + is-extendable@0.1.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-number@7.0.0: {} + + is-plain-obj@4.1.0: {} + + is-wsl@3.1.1: + dependencies: + is-inside-container: 1.0.0 + + isarray@1.0.0: {} + + jiti@2.6.1: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + jsesc@3.1.0: {} + + json5@2.2.3: {} + + jszip@3.10.1: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + katex@0.16.45: + dependencies: + commander: 8.3.0 + + khroma@2.1.0: {} + + kind-of@6.0.3: {} + + klona@2.0.6: {} + + knitwork@1.3.0: + optional: true + + langium@4.2.2: + dependencies: + '@chevrotain/regexp-to-ast': 12.0.0 + chevrotain: 12.0.0 + chevrotain-allstar: 0.4.2(chevrotain@12.0.0) + vscode-languageserver: 9.0.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + + layout-base@1.0.2: {} + + layout-base@2.0.1: {} + + lie@3.3.0: + dependencies: + immediate: 3.0.6 + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + local-pkg@1.1.2: + dependencies: + mlly: 1.8.2 + pkg-types: 2.3.1 + quansync: 0.2.11 + + lodash-es@4.18.1: {} + + longest-streak@3.1.0: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lz-string@1.5.0: {} + + magic-regexp@0.10.0: + dependencies: + estree-walker: 3.0.3 + magic-string: 0.30.21 + mlly: 1.8.2 + regexp-tree: 0.1.27 + type-level-regexp: 0.1.17 + ufo: 1.6.4 + unplugin: 2.3.11 + + magic-string-ast@1.0.3: + dependencies: + magic-string: 0.30.21 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + mark.js@8.11.1: {} + + markdown-exit@1.0.0-beta.9: + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + entities: 7.0.1 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + markdown-it@14.1.1: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + markdown-table@3.0.4: {} + + markdown-title@1.0.2: {} + + marked@14.0.0: {} + + marked@16.4.2: {} + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.3: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.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.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.1.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdn-data@2.27.1: {} + + mdurl@2.0.0: {} + + merge2@1.4.1: {} + + mermaid@11.14.0: + dependencies: + '@braintree/sanitize-url': 7.1.2 + '@iconify/utils': 3.1.1 + '@mermaid-js/parser': 1.1.0 + '@types/d3': 7.4.3 + '@upsetjs/venn.js': 2.0.0 + cytoscape: 3.33.3 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.3) + cytoscape-fcose: 2.2.0(cytoscape@3.33.3) + d3: 7.9.0 + d3-sankey: 0.12.3 + dagre-d3-es: 7.0.14 + dayjs: 1.11.20 + dompurify: 3.4.1 + katex: 0.16.45 + khroma: 2.1.0 + lodash-es: 4.18.1 + marked: 16.4.2 + roughjs: 4.6.6 + stylis: 4.4.0 + ts-dedent: 2.2.0 + uuid: 11.1.1 + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.13 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + + millify@6.1.0: + dependencies: + yargs: 17.7.2 + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.5 + + minisearch@7.2.0: {} + + mlly@1.8.2: + dependencies: + acorn: 8.16.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.4 + + monaco-editor@0.55.1: + dependencies: + dompurify: 3.2.7 + marked: 14.0.0 + + mrmime@2.0.1: {} + + ms@2.1.3: {} + + muggle-string@0.4.1: {} + + nanoid@3.3.11: {} + + nanotar@0.3.0: {} + + node-fetch-native@1.6.7: {} + + node-releases@2.0.38: {} + + normalize-path@3.0.0: {} + + obug@2.1.1: {} + + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.4 + + ohash@2.0.11: {} + + oniguruma-parser@0.12.2: {} + + oniguruma-to-es@4.3.6: + dependencies: + oniguruma-parser: 0.12.2 + regex: 6.1.0 + regex-recursion: 6.0.2 + + open@10.2.0: + dependencies: + default-browser: 5.5.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 + + oxc-parser@0.124.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): + dependencies: + '@oxc-project/types': 0.124.0 + optionalDependencies: + '@oxc-parser/binding-android-arm-eabi': 0.124.0 + '@oxc-parser/binding-android-arm64': 0.124.0 + '@oxc-parser/binding-darwin-arm64': 0.124.0 + '@oxc-parser/binding-darwin-x64': 0.124.0 + '@oxc-parser/binding-freebsd-x64': 0.124.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.124.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.124.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.124.0 + '@oxc-parser/binding-linux-arm64-musl': 0.124.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.124.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.124.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.124.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.124.0 + '@oxc-parser/binding-linux-x64-gnu': 0.124.0 + '@oxc-parser/binding-linux-x64-musl': 0.124.0 + '@oxc-parser/binding-openharmony-arm64': 0.124.0 + '@oxc-parser/binding-wasm32-wasi': 0.124.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@oxc-parser/binding-win32-arm64-msvc': 0.124.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.124.0 + '@oxc-parser/binding-win32-x64-msvc': 0.124.0 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + + oxc-walker@0.7.0(oxc-parser@0.124.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)): + dependencies: + magic-regexp: 0.10.0 + oxc-parser: 0.124.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + + p-map@7.0.4: {} + + package-manager-detector@1.6.0: {} + + pako@1.0.11: {} + + path-browserify@1.0.1: {} + + path-data-parser@0.1.0: {} + + path-to-regexp@6.3.0: {} + + pathe@2.0.3: {} + + perfect-debounce@2.1.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.2: {} + + picomatch@4.0.4: {} + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.2 + pathe: 2.0.3 + + pkg-types@2.3.1: + dependencies: + confbox: 0.2.4 + exsolve: 1.0.8 + pathe: 2.0.3 + + points-on-curve@0.2.0: {} + + points-on-path@0.2.1: + dependencies: + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + + popmotion@11.0.5: + dependencies: + framesync: 6.1.2 + hey-listen: 1.0.8 + style-value-types: 5.1.2 + tslib: 2.4.0 + + postcss@8.5.12: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + pptxgenjs@4.0.1: + dependencies: + '@types/node': 22.19.17 + https: 1.0.0 + image-size: 1.2.1 + jszip: 3.10.1 + + pretty-bytes@7.1.0: {} + + prism-theme-vars@0.2.5: {} + + process-nextick-args@2.0.1: {} + + property-information@7.1.0: {} + + punycode.js@2.3.1: {} + + quansync@0.2.11: {} + + quansync@1.0.0: {} + + queue-microtask@1.2.3: {} + + queue@6.0.2: + dependencies: + inherits: 2.0.4 + + rc9@3.0.1: + dependencies: + defu: 6.1.7 + destr: 2.0.5 + optional: true + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.2 + + readdirp@4.1.2: {} + + readdirp@5.0.0: {} + + recordrtc@5.6.2: {} + + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + + regexp-tree@0.1.27: {} + + remark-frontmatter@5.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-frontmatter: 2.0.1 + micromark-extension-frontmatter: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + remark@15.0.1: + dependencies: + '@types/mdast': 4.0.4 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + require-directory@2.1.1: {} + + reusify@1.1.0: {} + + robust-predicates@3.0.3: {} + + rollup@4.60.2: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.60.2 + '@rollup/rollup-android-arm64': 4.60.2 + '@rollup/rollup-darwin-arm64': 4.60.2 + '@rollup/rollup-darwin-x64': 4.60.2 + '@rollup/rollup-freebsd-arm64': 4.60.2 + '@rollup/rollup-freebsd-x64': 4.60.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.2 + '@rollup/rollup-linux-arm-musleabihf': 4.60.2 + '@rollup/rollup-linux-arm64-gnu': 4.60.2 + '@rollup/rollup-linux-arm64-musl': 4.60.2 + '@rollup/rollup-linux-loong64-gnu': 4.60.2 + '@rollup/rollup-linux-loong64-musl': 4.60.2 + '@rollup/rollup-linux-ppc64-gnu': 4.60.2 + '@rollup/rollup-linux-ppc64-musl': 4.60.2 + '@rollup/rollup-linux-riscv64-gnu': 4.60.2 + '@rollup/rollup-linux-riscv64-musl': 4.60.2 + '@rollup/rollup-linux-s390x-gnu': 4.60.2 + '@rollup/rollup-linux-x64-gnu': 4.60.2 + '@rollup/rollup-linux-x64-musl': 4.60.2 + '@rollup/rollup-openbsd-x64': 4.60.2 + '@rollup/rollup-openharmony-arm64': 4.60.2 + '@rollup/rollup-win32-arm64-msvc': 4.60.2 + '@rollup/rollup-win32-ia32-msvc': 4.60.2 + '@rollup/rollup-win32-x64-gnu': 4.60.2 + '@rollup/rollup-win32-x64-msvc': 4.60.2 + fsevents: 2.3.3 + + roughjs@4.6.6: + dependencies: + hachure-fill: 0.5.2 + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + points-on-path: 0.2.1 + + run-applescript@7.1.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rw@1.3.3: {} + + safe-buffer@5.1.2: {} + + safer-buffer@2.1.2: {} + + scule@1.3.0: {} + + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + + semver@6.3.1: {} + + semver@7.7.4: + optional: true + + setimmediate@1.0.5: {} + + shiki-magic-move@1.3.0(shiki@4.0.2)(vue@3.5.33(typescript@5.9.3)): + dependencies: + diff-match-patch-es: 1.0.1 + ohash: 2.0.11 + optionalDependencies: + shiki: 4.0.2 + vue: 3.5.33(typescript@5.9.3) + + shiki@3.23.0: + dependencies: + '@shikijs/core': 3.23.0 + '@shikijs/engine-javascript': 3.23.0 + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + shiki@4.0.2: + dependencies: + '@shikijs/core': 4.0.2 + '@shikijs/engine-javascript': 4.0.2 + '@shikijs/engine-oniguruma': 4.0.2 + '@shikijs/langs': 4.0.2 + '@shikijs/themes': 4.0.2 + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + + source-map-js@1.2.1: {} + + space-separated-tokens@2.0.2: {} + + sprintf-js@1.0.3: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom-string@1.0.0: {} + + style-value-types@5.1.2: + dependencies: + hey-listen: 1.0.8 + tslib: 2.4.0 + + stylis@4.4.0: {} + + tabbable@6.4.0: {} + + tinyexec@1.1.2: {} + + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tokenx@1.3.0: {} + + totalist@3.0.1: {} + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + ts-dedent@2.2.0: {} + + tslib@2.4.0: {} + + tslib@2.8.1: + optional: true + + twoslash-protocol@0.3.8: {} + + twoslash-vue@0.3.8(typescript@5.9.3): + dependencies: + '@vue/language-core': 3.2.7 + twoslash: 0.3.8(typescript@5.9.3) + twoslash-protocol: 0.3.8 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + twoslash@0.3.8(typescript@5.9.3): + dependencies: + '@typescript/vfs': 1.6.4(typescript@5.9.3) + twoslash-protocol: 0.3.8 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + type-level-regexp@0.1.17: {} + + typeit@8.1.0: {} + + typescript@5.9.3: {} + + uc.micro@2.1.0: {} + + ufo@1.6.4: {} + + unconfig-core@7.5.0: + dependencies: + '@quansync/fs': 1.0.0 + quansync: 1.0.0 + + unconfig@7.5.0: + dependencies: + '@quansync/fs': 1.0.0 + defu: 6.1.7 + jiti: 2.6.1 + quansync: 1.0.0 + unconfig-core: 7.5.0 + + unctx@2.5.0: + dependencies: + acorn: 8.16.0 + estree-walker: 3.0.3 + magic-string: 0.30.21 + unplugin: 2.3.11 + optional: true + + undici-types@6.21.0: {} + + undici-types@7.19.2: {} + + unhead@2.1.13: + dependencies: + hookable: 6.1.1 + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove@4.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.1.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + unocss@66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + dependencies: + '@unocss/cli': 66.6.8 + '@unocss/core': 66.6.8 + '@unocss/preset-attributify': 66.6.8 + '@unocss/preset-icons': 66.6.8 + '@unocss/preset-mini': 66.6.8 + '@unocss/preset-tagify': 66.6.8 + '@unocss/preset-typography': 66.6.8 + '@unocss/preset-uno': 66.6.8 + '@unocss/preset-web-fonts': 66.6.8 + '@unocss/preset-wind': 66.6.8 + '@unocss/preset-wind3': 66.6.8 + '@unocss/preset-wind4': 66.6.8 + '@unocss/transformer-attributify-jsx': 66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@unocss/transformer-compile-class': 66.6.8 + '@unocss/transformer-directives': 66.6.8 + '@unocss/transformer-variant-group': 66.6.8 + '@unocss/vite': 66.6.8(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - vite + + unplugin-icons@22.5.0(@vue/compiler-sfc@3.5.33): + dependencies: + '@antfu/install-pkg': 1.1.0 + '@iconify/utils': 3.1.1 + debug: 4.4.3 + local-pkg: 1.1.2 + unplugin: 2.3.11 + optionalDependencies: + '@vue/compiler-sfc': 3.5.33 + transitivePeerDependencies: + - supports-color + + unplugin-icons@23.0.1(@vue/compiler-sfc@3.5.33): + dependencies: + '@antfu/install-pkg': 1.1.0 + '@iconify/utils': 3.1.1 + local-pkg: 1.1.2 + obug: 2.1.1 + unplugin: 2.3.11 + optionalDependencies: + '@vue/compiler-sfc': 3.5.33 + + unplugin-utils@0.3.1: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.4 + + unplugin-vue-components@30.0.0(@babel/parser@7.29.2)(@nuxt/kit@3.21.4)(vue@3.5.33(typescript@5.9.3)): + dependencies: + chokidar: 4.0.3 + debug: 4.4.3 + local-pkg: 1.1.2 + magic-string: 0.30.21 + mlly: 1.8.2 + tinyglobby: 0.2.16 + unplugin: 2.3.11 + unplugin-utils: 0.3.1 + vue: 3.5.33(typescript@5.9.3) + optionalDependencies: + '@babel/parser': 7.29.2 + '@nuxt/kit': 3.21.4 + transitivePeerDependencies: + - supports-color + + unplugin-vue-markdown@30.0.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + dependencies: + '@mdit-vue/plugin-component': 3.0.2 + '@mdit-vue/plugin-frontmatter': 3.0.2 + '@mdit-vue/types': 3.0.2 + markdown-exit: 1.0.0-beta.9 + unplugin: 2.3.11 + unplugin-utils: 0.3.1 + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + + unplugin@2.3.11: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.16.0 + picomatch: 4.0.4 + webpack-virtual-modules: 0.6.2 + + unplugin@3.0.0: + dependencies: + '@jridgewell/remapping': 2.3.5 + picomatch: 4.0.4 + webpack-virtual-modules: 0.6.2 + + untyped@2.0.0: + dependencies: + citty: 0.1.6 + defu: 6.1.7 + jiti: 2.6.1 + knitwork: 1.3.0 + scule: 1.3.0 + optional: true + + update-browserslist-db@1.2.3(browserslist@4.28.2): + dependencies: + browserslist: 4.28.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + util-deprecate@1.0.2: {} + + uuid@11.1.1: {} + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + + vite-dev-rpc@1.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + dependencies: + birpc: 2.9.0 + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite-hot-client: 2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + + vite-hot-client@2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + dependencies: + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + + vite-plugin-inspect@11.3.3(@nuxt/kit@3.21.4)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + dependencies: + ansis: 4.2.0 + debug: 4.4.3 + error-stack-parser-es: 1.0.5 + ohash: 2.0.11 + open: 10.2.0 + perfect-debounce: 2.1.0 + sirv: 3.0.2 + unplugin-utils: 0.3.1 + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite-dev-rpc: 1.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + optionalDependencies: + '@nuxt/kit': 3.21.4 + transitivePeerDependencies: + - supports-color + + vite-plugin-remote-assets@2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + dependencies: + debug: 4.4.3 + magic-string: 0.30.21 + node-fetch-native: 1.6.7 + ohash: 2.0.11 + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + transitivePeerDependencies: + - supports-color + + vite-plugin-static-copy@4.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + dependencies: + chokidar: 3.6.0 + p-map: 7.0.4 + picocolors: 1.1.1 + tinyglobby: 0.2.16 + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + + vite-plugin-vue-server-ref@1.0.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)): + dependencies: + debug: 4.4.3 + klona: 2.0.6 + mlly: 1.8.2 + ufo: 1.6.4 + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vue: 3.5.33(typescript@5.9.3) + transitivePeerDependencies: + - supports-color + + vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3): + dependencies: + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.12 + rollup: 4.60.2 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 25.6.0 + fsevents: 2.3.3 + jiti: 2.6.1 + yaml: 2.8.3 + + vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3): + dependencies: + esbuild: 0.27.7 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.12 + rollup: 4.60.2 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 25.6.0 + fsevents: 2.3.3 + jiti: 2.6.1 + yaml: 2.8.3 + + vitepress-plugin-group-icons@1.7.5(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + dependencies: + '@iconify-json/logos': 1.2.11 + '@iconify-json/vscode-icons': 1.2.47 + '@iconify/utils': 3.1.1 + optionalDependencies: + vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + + vitepress-plugin-llms@1.12.1: + dependencies: + gray-matter: 4.0.3 + markdown-it: 14.1.1 + markdown-title: 1.0.2 + mdast-util-from-markdown: 2.0.3 + millify: 6.1.0 + minimatch: 10.2.5 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + pretty-bytes: 7.1.0 + remark: 15.0.1 + remark-frontmatter: 5.0.0 + tokenx: 1.3.0 + unist-util-remove: 4.0.0 + unist-util-visit: 5.1.0 + transitivePeerDependencies: + - supports-color + + vitepress@2.0.0-alpha.17(@types/node@25.6.0)(fuse.js@7.3.0)(jiti@2.6.1)(postcss@8.5.12)(typescript@5.9.3)(yaml@2.8.3): + dependencies: + '@docsearch/css': 4.6.3 + '@docsearch/js': 4.6.3 + '@docsearch/sidepanel-js': 4.6.3 + '@iconify-json/simple-icons': 1.2.80 + '@shikijs/core': 3.23.0 + '@shikijs/transformers': 3.23.0 + '@shikijs/types': 3.23.0 + '@types/markdown-it': 14.1.2 + '@vitejs/plugin-vue': 6.0.6(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + '@vue/devtools-api': 8.1.1 + '@vue/shared': 3.5.33 + '@vueuse/core': 14.2.1(vue@3.5.33(typescript@5.9.3)) + '@vueuse/integrations': 14.2.1(focus-trap@8.1.0)(fuse.js@7.3.0)(vue@3.5.33(typescript@5.9.3)) + focus-trap: 8.1.0 + mark.js: 8.11.1 + minisearch: 7.2.0 + shiki: 3.23.0 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vue: 3.5.33(typescript@5.9.3) + optionalDependencies: + postcss: 8.5.12 + transitivePeerDependencies: + - '@types/node' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jiti + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - sass + - sass-embedded + - sortablejs + - stylus + - sugarss + - terser + - tsx + - typescript + - universal-cookie + - yaml + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-uri@3.1.0: {} + + vue-resize@2.0.0-alpha.1(vue@3.5.33(typescript@5.9.3)): + dependencies: + vue: 3.5.33(typescript@5.9.3) + + vue-router@5.0.6(@vue/compiler-sfc@3.5.33)(vue@3.5.33(typescript@5.9.3)): + dependencies: + '@babel/generator': 7.29.1 + '@vue-macros/common': 3.1.2(vue@3.5.33(typescript@5.9.3)) + '@vue/devtools-api': 8.1.1 + ast-walker-scope: 0.8.3 + chokidar: 5.0.0 + json5: 2.2.3 + local-pkg: 1.1.2 + magic-string: 0.30.21 + mlly: 1.8.2 + muggle-string: 0.4.1 + pathe: 2.0.3 + picomatch: 4.0.4 + scule: 1.3.0 + tinyglobby: 0.2.16 + unplugin: 3.0.0 + unplugin-utils: 0.3.1 + vue: 3.5.33(typescript@5.9.3) + yaml: 2.8.3 + optionalDependencies: + '@vue/compiler-sfc': 3.5.33 + + vue@3.5.33(typescript@5.9.3): + dependencies: + '@vue/compiler-dom': 3.5.33 + '@vue/compiler-sfc': 3.5.33 + '@vue/runtime-dom': 3.5.33 + '@vue/server-renderer': 3.5.33(vue@3.5.33(typescript@5.9.3)) + '@vue/shared': 3.5.33 + optionalDependencies: + typescript: 5.9.3 + + webpack-virtual-modules@0.6.2: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.1 + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yaml@2.8.3: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + zwitch@2.0.4: {} diff --git a/public/assets/code-groups-demo.png b/public/assets/code-groups-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..b9cf556332533482fa4481b09235e8e92572d067 GIT binary patch literal 221097 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 literal 0 HcmV?d00001 From 621c8a3a6727edba41c81f25f98070669616d770 Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 30 Apr 2026 13:09:58 +0200 Subject: [PATCH 09/10] Updating packages dep --- package.json | 1 - pnpm-lock.yaml | 421 +++++--------------------------------------- pnpm-workspace.yaml | 3 + 3 files changed, 48 insertions(+), 377 deletions(-) create mode 100644 pnpm-workspace.yaml diff --git a/package.json b/package.json index a4bb3a4..37392c0 100755 --- a/package.json +++ b/package.json @@ -46,7 +46,6 @@ "unocss": "^66.5.12", "unplugin-icons": "^22.5.0", "unplugin-vue-components": "^30.0.0", - "vite": "^6.0.0", "vite-plugin-inspect": "^11.3.3", "vitepress": "^2.0.0-alpha.15", "vitepress-plugin-group-icons": "^1.6.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6dc8032..de4d37b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,16 +37,16 @@ importers: version: 3.23.0(@nuxt/kit@3.21.4)(typescript@5.9.3) '@slidev/client': specifier: latest - version: 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + version: 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) '@slidev/parser': specifier: latest - version: 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + version: 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) '@slidev/theme-default': specifier: latest version: 0.25.0 '@slidev/types': specifier: latest - version: 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + version: 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) '@types/node': specifier: ^25.0.7 version: 25.6.0 @@ -76,25 +76,22 @@ importers: version: 5.9.3 unocss: specifier: ^66.5.12 - version: 66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + version: 66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) unplugin-icons: specifier: ^22.5.0 version: 22.5.0(@vue/compiler-sfc@3.5.33) unplugin-vue-components: specifier: ^30.0.0 version: 30.0.0(@babel/parser@7.29.2)(@nuxt/kit@3.21.4)(vue@3.5.33(typescript@5.9.3)) - vite: - specifier: ^6.0.0 - version: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) vite-plugin-inspect: specifier: ^11.3.3 - version: 11.3.3(@nuxt/kit@3.21.4)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + version: 11.3.3(@nuxt/kit@3.21.4)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) vitepress: specifier: ^2.0.0-alpha.15 version: 2.0.0-alpha.17(@types/node@25.6.0)(fuse.js@7.3.0)(jiti@2.6.1)(postcss@8.5.12)(typescript@5.9.3)(yaml@2.8.3) vitepress-plugin-group-icons: specifier: ^1.6.5 - version: 1.7.5(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + version: 1.7.5(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) vitepress-plugin-llms: specifier: ^1.10.0 version: 1.12.1 @@ -266,312 +263,156 @@ packages: '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.27.7': resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.27.7': resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.27.7': resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.27.7': resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.27.7': resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.27.7': resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.27.7': resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.27.7': resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.27.7': resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.27.7': resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.27.7': resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.12': - resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.27.7': resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.12': - resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.27.7': resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.12': - resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.27.7': resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.12': - resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.27.7': resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.12': - resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.27.7': resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.12': - resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.27.7': resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.12': - resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.27.7': resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': - resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.27.7': resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.12': - resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.27.7': resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': - resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.27.7': resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.12': - resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.27.7': resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.12': - resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.27.7': resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.12': - resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.27.7': resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.12': - resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.27.7': resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.12': - resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.27.7': resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} engines: {node: '>=18'} @@ -1883,11 +1724,6 @@ packages: errx@0.1.0: resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} - esbuild@0.25.12: - resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.27.7: resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} @@ -2910,46 +2746,6 @@ packages: vite: '>=2.0.0' vue: ^3.0.0 - vite@6.4.2: - resolution: {integrity: sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vite@7.3.2: resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3316,159 +3112,81 @@ snapshots: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.25.12': - optional: true - '@esbuild/aix-ppc64@0.27.7': optional: true - '@esbuild/android-arm64@0.25.12': - optional: true - '@esbuild/android-arm64@0.27.7': optional: true - '@esbuild/android-arm@0.25.12': - optional: true - '@esbuild/android-arm@0.27.7': optional: true - '@esbuild/android-x64@0.25.12': - optional: true - '@esbuild/android-x64@0.27.7': optional: true - '@esbuild/darwin-arm64@0.25.12': - optional: true - '@esbuild/darwin-arm64@0.27.7': optional: true - '@esbuild/darwin-x64@0.25.12': - optional: true - '@esbuild/darwin-x64@0.27.7': optional: true - '@esbuild/freebsd-arm64@0.25.12': - optional: true - '@esbuild/freebsd-arm64@0.27.7': optional: true - '@esbuild/freebsd-x64@0.25.12': - optional: true - '@esbuild/freebsd-x64@0.27.7': optional: true - '@esbuild/linux-arm64@0.25.12': - optional: true - '@esbuild/linux-arm64@0.27.7': optional: true - '@esbuild/linux-arm@0.25.12': - optional: true - '@esbuild/linux-arm@0.27.7': optional: true - '@esbuild/linux-ia32@0.25.12': - optional: true - '@esbuild/linux-ia32@0.27.7': optional: true - '@esbuild/linux-loong64@0.25.12': - optional: true - '@esbuild/linux-loong64@0.27.7': optional: true - '@esbuild/linux-mips64el@0.25.12': - optional: true - '@esbuild/linux-mips64el@0.27.7': optional: true - '@esbuild/linux-ppc64@0.25.12': - optional: true - '@esbuild/linux-ppc64@0.27.7': optional: true - '@esbuild/linux-riscv64@0.25.12': - optional: true - '@esbuild/linux-riscv64@0.27.7': optional: true - '@esbuild/linux-s390x@0.25.12': - optional: true - '@esbuild/linux-s390x@0.27.7': optional: true - '@esbuild/linux-x64@0.25.12': - optional: true - '@esbuild/linux-x64@0.27.7': optional: true - '@esbuild/netbsd-arm64@0.25.12': - optional: true - '@esbuild/netbsd-arm64@0.27.7': optional: true - '@esbuild/netbsd-x64@0.25.12': - optional: true - '@esbuild/netbsd-x64@0.27.7': optional: true - '@esbuild/openbsd-arm64@0.25.12': - optional: true - '@esbuild/openbsd-arm64@0.27.7': optional: true - '@esbuild/openbsd-x64@0.25.12': - optional: true - '@esbuild/openbsd-x64@0.27.7': optional: true - '@esbuild/openharmony-arm64@0.25.12': - optional: true - '@esbuild/openharmony-arm64@0.27.7': optional: true - '@esbuild/sunos-x64@0.25.12': - optional: true - '@esbuild/sunos-x64@0.27.7': optional: true - '@esbuild/win32-arm64@0.25.12': - optional: true - '@esbuild/win32-arm64@0.27.7': optional: true - '@esbuild/win32-ia32@0.25.12': - optional: true - '@esbuild/win32-ia32@0.27.7': optional: true - '@esbuild/win32-x64@0.25.12': - optional: true - '@esbuild/win32-x64@0.27.7': optional: true @@ -3914,7 +3632,7 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@slidev/client@52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': + '@slidev/client@52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': dependencies: '@antfu/utils': 9.3.0 '@iconify-json/carbon': 1.2.20 @@ -3923,9 +3641,9 @@ snapshots: '@shikijs/engine-javascript': 4.0.2 '@shikijs/monaco': 4.0.2 '@shikijs/vitepress-twoslash': 4.0.2(@nuxt/kit@3.21.4)(typescript@5.9.3) - '@slidev/parser': 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + '@slidev/parser': 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) '@slidev/rough-notation': 0.1.0 - '@slidev/types': 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + '@slidev/types': 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) '@typescript/ata': 0.9.8(typescript@5.9.3) '@unhead/vue': 2.1.13(vue@3.5.33(typescript@5.9.3)) '@unocss/extractor-mdc': 66.6.8 @@ -3950,7 +3668,7 @@ snapshots: shiki: 4.0.2 shiki-magic-move: 1.3.0(shiki@4.0.2)(vue@3.5.33(typescript@5.9.3)) typescript: 5.9.3 - unocss: 66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + unocss: 66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) vue: 3.5.33(typescript@5.9.3) vue-router: 5.0.6(@vue/compiler-sfc@3.5.33)(vue@3.5.33(typescript@5.9.3)) yaml: 2.8.3 @@ -3974,10 +3692,10 @@ snapshots: - svelte - vite - '@slidev/parser@52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': + '@slidev/parser@52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': dependencies: '@antfu/utils': 9.3.0 - '@slidev/types': 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + '@slidev/types': 52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) yaml: 2.8.3 transitivePeerDependencies: - '@emnapi/core' @@ -4009,23 +3727,23 @@ snapshots: '@slidev/types@0.47.5': {} - '@slidev/types@52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': + '@slidev/types@52.15.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@nuxt/kit@3.21.4)(@vue/compiler-sfc@3.5.33)(typescript@5.9.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': dependencies: '@antfu/utils': 9.3.0 '@shikijs/markdown-it': 4.0.2 - '@vitejs/plugin-vue': 6.0.6(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) - '@vitejs/plugin-vue-jsx': 5.1.5(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + '@vitejs/plugin-vue': 6.0.6(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) katex: 0.16.45 mermaid: 11.14.0 monaco-editor: 0.55.1 shiki: 4.0.2 - unocss: 66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + unocss: 66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) unplugin-icons: 23.0.1(@vue/compiler-sfc@3.5.33) - unplugin-vue-markdown: 30.0.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) - vite-plugin-inspect: 11.3.3(@nuxt/kit@3.21.4)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) - vite-plugin-remote-assets: 2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) - vite-plugin-static-copy: 4.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) - vite-plugin-vue-server-ref: 1.0.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + unplugin-vue-markdown: 30.0.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vite-plugin-inspect: 11.3.3(@nuxt/kit@3.21.4)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vite-plugin-remote-assets: 2.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vite-plugin-static-copy: 4.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vite-plugin-vue-server-ref: 1.0.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) vue: 3.5.33(typescript@5.9.3) vue-router: 5.0.6(@vue/compiler-sfc@3.5.33)(vue@3.5.33(typescript@5.9.3)) transitivePeerDependencies: @@ -4352,7 +4070,7 @@ snapshots: dependencies: '@unocss/core': 66.6.8 - '@unocss/vite@66.6.8(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': + '@unocss/vite@66.6.8(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))': dependencies: '@jridgewell/remapping': 2.3.5 '@unocss/config': 66.6.8 @@ -4363,31 +4081,25 @@ snapshots: pathe: 2.0.3 tinyglobby: 0.2.16 unplugin-utils: 0.3.1 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) '@upsetjs/venn.js@2.0.0': optionalDependencies: d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - '@vitejs/plugin-vue-jsx@5.1.5(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.5(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.0-rc.18 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.6(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': - dependencies: - '@rolldown/pluginutils': 1.0.0-rc.13 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) - vue: 3.5.33(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.6(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.13 @@ -4995,35 +4707,6 @@ snapshots: errx@0.1.0: optional: true - esbuild@0.25.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.12 - '@esbuild/android-arm': 0.25.12 - '@esbuild/android-arm64': 0.25.12 - '@esbuild/android-x64': 0.25.12 - '@esbuild/darwin-arm64': 0.25.12 - '@esbuild/darwin-x64': 0.25.12 - '@esbuild/freebsd-arm64': 0.25.12 - '@esbuild/freebsd-x64': 0.25.12 - '@esbuild/linux-arm': 0.25.12 - '@esbuild/linux-arm64': 0.25.12 - '@esbuild/linux-ia32': 0.25.12 - '@esbuild/linux-loong64': 0.25.12 - '@esbuild/linux-mips64el': 0.25.12 - '@esbuild/linux-ppc64': 0.25.12 - '@esbuild/linux-riscv64': 0.25.12 - '@esbuild/linux-s390x': 0.25.12 - '@esbuild/linux-x64': 0.25.12 - '@esbuild/netbsd-arm64': 0.25.12 - '@esbuild/netbsd-x64': 0.25.12 - '@esbuild/openbsd-arm64': 0.25.12 - '@esbuild/openbsd-x64': 0.25.12 - '@esbuild/openharmony-arm64': 0.25.12 - '@esbuild/sunos-x64': 0.25.12 - '@esbuild/win32-arm64': 0.25.12 - '@esbuild/win32-ia32': 0.25.12 - '@esbuild/win32-x64': 0.25.12 - esbuild@0.27.7: optionalDependencies: '@esbuild/aix-ppc64': 0.27.7 @@ -6155,7 +5838,7 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - unocss@66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + unocss@66.6.8(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): dependencies: '@unocss/cli': 66.6.8 '@unocss/core': 66.6.8 @@ -6173,7 +5856,7 @@ snapshots: '@unocss/transformer-compile-class': 66.6.8 '@unocss/transformer-directives': 66.6.8 '@unocss/transformer-variant-group': 66.6.8 - '@unocss/vite': 66.6.8(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + '@unocss/vite': 66.6.8(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -6223,7 +5906,7 @@ snapshots: transitivePeerDependencies: - supports-color - unplugin-vue-markdown@30.0.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + unplugin-vue-markdown@30.0.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): dependencies: '@mdit-vue/plugin-component': 3.0.2 '@mdit-vue/plugin-frontmatter': 3.0.2 @@ -6231,7 +5914,7 @@ snapshots: markdown-exit: 1.0.0-beta.9 unplugin: 2.3.11 unplugin-utils: 0.3.1 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) unplugin@2.3.11: dependencies: @@ -6275,17 +5958,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-dev-rpc@1.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + vite-dev-rpc@1.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): dependencies: birpc: 2.9.0 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) - vite-hot-client: 2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite-hot-client: 2.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) - vite-hot-client@2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + vite-hot-client@2.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): dependencies: - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) - vite-plugin-inspect@11.3.3(@nuxt/kit@3.21.4)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + vite-plugin-inspect@11.3.3(@nuxt/kit@3.21.4)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): dependencies: ansis: 4.2.0 debug: 4.4.3 @@ -6295,56 +5978,42 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) - vite-dev-rpc: 1.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite-dev-rpc: 1.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)) optionalDependencies: '@nuxt/kit': 3.21.4 transitivePeerDependencies: - supports-color - vite-plugin-remote-assets@2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + vite-plugin-remote-assets@2.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): dependencies: debug: 4.4.3 magic-string: 0.30.21 node-fetch-native: 1.6.7 ohash: 2.0.11 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) transitivePeerDependencies: - supports-color - vite-plugin-static-copy@4.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + vite-plugin-static-copy@4.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): dependencies: chokidar: 3.6.0 p-map: 7.0.4 picocolors: 1.1.1 tinyglobby: 0.2.16 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) - vite-plugin-vue-server-ref@1.0.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)): + vite-plugin-vue-server-ref@1.0.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)): dependencies: debug: 4.4.3 klona: 2.0.6 mlly: 1.8.2 ufo: 1.6.4 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - supports-color - vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3): - dependencies: - esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - postcss: 8.5.12 - rollup: 4.60.2 - tinyglobby: 0.2.16 - optionalDependencies: - '@types/node': 25.6.0 - fsevents: 2.3.3 - jiti: 2.6.1 - yaml: 2.8.3 - vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3): dependencies: esbuild: 0.27.7 @@ -6359,13 +6028,13 @@ snapshots: jiti: 2.6.1 yaml: 2.8.3 - vitepress-plugin-group-icons@1.7.5(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): + vitepress-plugin-group-icons@1.7.5(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3)): dependencies: '@iconify-json/logos': 1.2.11 '@iconify-json/vscode-icons': 1.2.47 '@iconify/utils': 3.1.1 optionalDependencies: - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(yaml@2.8.3) vitepress-plugin-llms@1.12.1: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..aa49d26 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +onlyBuiltDependencies: + - esbuild + - typeit \ No newline at end of file From 6384f6925d922ea0439ff9a10f1277ce715451ac Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 30 Apr 2026 13:17:58 +0200 Subject: [PATCH 10/10] Update files --- components.d.ts | 83 ----------------------------------- custom/config-transformers.md | 2 +- 2 files changed, 1 insertion(+), 84 deletions(-) diff --git a/components.d.ts b/components.d.ts index 5845e5a..4580c78 100644 --- a/components.d.ts +++ b/components.d.ts @@ -5,7 +5,6 @@ // ------ // Generated by unplugin-vue-components // Read more: https://github.com/vuejs/core/pull/3399 -import { GlobalComponents } from 'vue' export {} @@ -92,85 +91,3 @@ declare module 'vue' { Youtube: typeof import('./node_modules/@slidev/client/builtin/Youtube.vue')['default'] } } - -// For TSX support -declare global { - const AddonGallery: typeof import('./.vitepress/theme/components/AddonGallery.vue')['default'] - const AddonInfo: typeof import('./.vitepress/theme/components/AddonInfo.vue')['default'] - const Arrow: typeof import('./node_modules/@slidev/client/builtin/Arrow.vue')['default'] - const AutoFitText: typeof import('./node_modules/@slidev/client/builtin/AutoFitText.vue')['default'] - const BlueSky: typeof import('./node_modules/@slidev/client/builtin/BlueSky.vue')['default'] - const CarbonApps: typeof import('~icons/carbon/apps')['default'] - const CarbonArrowLeft: typeof import('~icons/carbon/arrow-left')['default'] - const CarbonArrowRight: typeof import('~icons/carbon/arrow-right')['default'] - const CarbonBadge: typeof import('~icons/carbon/badge')['default'] - const CarbonDocumentPdf: typeof import('~icons/carbon/document-pdf')['default'] - const CarbonDownload: typeof import('~icons/carbon/download')['default'] - const CarbonEdit: typeof import('~icons/carbon/edit')['default'] - const CarbonInformation: typeof import('~icons/carbon/information')['default'] - const CarbonListBoxes: typeof import('~icons/carbon/list-boxes')['default'] - const CarbonMaximize: typeof import('~icons/carbon/maximize')['default'] - const CarbonMinimize: typeof import('~icons/carbon/minimize')['default'] - const CarbonMoon: typeof import('~icons/carbon/moon')['default'] - const CarbonPen: typeof import('~icons/carbon/pen')['default'] - const CarbonSettingsAdjust: typeof import('~icons/carbon/settings-adjust')['default'] - const CarbonSun: typeof import('~icons/carbon/sun')['default'] - const CarbonTextAnnotationToggle: typeof import('~icons/carbon/text-annotation-toggle')['default'] - const CarbonUserAvatar: typeof import('~icons/carbon/user-avatar')['default'] - const CarbonUserSpeaker: typeof import('~icons/carbon/user-speaker')['default'] - const CarbonVideo: typeof import('~icons/carbon/video')['default'] - const CodeBlockWrapper: typeof import('./node_modules/@slidev/client/builtin/CodeBlockWrapper.vue')['default'] - const CodeGroup: typeof import('./node_modules/@slidev/client/builtin/CodeGroup.vue')['default'] - const CodiconAdd: typeof import('~icons/codicon/add')['default'] - const CodiconEye: typeof import('~icons/codicon/eye')['default'] - const CodiconGlobe: typeof import('~icons/codicon/globe')['default'] - const CodiconLock: typeof import('~icons/codicon/lock')['default'] - const CodiconRunAll: typeof import('~icons/codicon/run-all')['default'] - const Demo: typeof import('./.vitepress/theme/components/Demo.vue')['default'] - const DemoEditor: typeof import('./.vitepress/theme/components/DemoEditor.vue')['default'] - const DemoSlide: typeof import('./.vitepress/theme/components/DemoSlide.vue')['default'] - const Environment: typeof import('./.vitepress/theme/components/Environment.vue')['default'] - const FeaturesAnimation: typeof import('./.vitepress/theme/components/FeaturesAnimation.vue')['default'] - const FeaturesAnimationInner: typeof import('./.vitepress/theme/components/FeaturesAnimationInner.vue')['default'] - const FeaturesOverview: typeof import('./.vitepress/theme/components/FeaturesOverview.vue')['default'] - const FeatureTag: typeof import('./.vitepress/theme/components/FeatureTag.vue')['default'] - const KaTexBlockWrapper: typeof import('./node_modules/@slidev/client/builtin/KaTexBlockWrapper.vue')['default'] - const LandingPage: typeof import('./.vitepress/theme/components/LandingPage.vue')['default'] - const Layout: typeof import('./.vitepress/theme/components/Layout.vue')['default'] - const LightOrDark: typeof import('./node_modules/@slidev/client/builtin/LightOrDark.vue')['default'] - const Link: typeof import('./node_modules/@slidev/client/builtin/Link.vue')['default'] - const LinkCard: typeof import('./.vitepress/theme/components/LinkCard.vue')['default'] - const LinkInline: typeof import('./.vitepress/theme/components/LinkInline.vue')['default'] - const LogosVue: typeof import('~icons/logos/vue')['default'] - const MdiAccountCircle: typeof import('~icons/mdi/account-circle')['default'] - const Mermaid: typeof import('./node_modules/@slidev/client/builtin/Mermaid.vue')['default'] - const Monaco: typeof import('./node_modules/@slidev/client/builtin/Monaco.vue')['default'] - const PlantUml: typeof import('./node_modules/@slidev/client/builtin/PlantUml.vue')['default'] - const PoweredBySlidev: typeof import('./node_modules/@slidev/client/builtin/PoweredBySlidev.vue')['default'] - const RenderWhen: typeof import('./node_modules/@slidev/client/builtin/RenderWhen.vue')['default'] - const RouterLink: typeof import('vue-router')['RouterLink'] - const RouterView: typeof import('vue-router')['RouterView'] - const SeeAlso: typeof import('./.vitepress/theme/components/SeeAlso.vue')['default'] - const ShikiMagicMove: typeof import('./node_modules/@slidev/client/builtin/ShikiMagicMove.vue')['default'] - const ShowCaseInfo: typeof import('./.vitepress/theme/components/ShowCaseInfo.vue')['default'] - const ShowCases: typeof import('./.vitepress/theme/components/ShowCases.vue')['default'] - const SimpleIconsGithub: typeof import('~icons/simple-icons/github')['default'] - const SimpleIconsNpm: typeof import('~icons/simple-icons/npm')['default'] - const SlideContainer: typeof import('./.vitepress/theme/components/SlideContainer.vue')['default'] - const SlideCurrentNo: typeof import('./node_modules/@slidev/client/builtin/SlideCurrentNo.vue')['default'] - const SlidesTotal: typeof import('./node_modules/@slidev/client/builtin/SlidesTotal.vue')['default'] - const SlidevVideo: typeof import('./node_modules/@slidev/client/builtin/SlidevVideo.vue')['default'] - const ThemeGallery: typeof import('./.vitepress/theme/components/ThemeGallery.vue')['default'] - const ThemeInfo: typeof import('./.vitepress/theme/components/ThemeInfo.vue')['default'] - const TheTweet: typeof import('./.vitepress/theme/components/TheTweet.vue')['default'] - const Toc: typeof import('./node_modules/@slidev/client/builtin/Toc.vue')['default'] - const TocList: typeof import('./node_modules/@slidev/client/builtin/TocList.vue')['default'] - const Transform: typeof import('./node_modules/@slidev/client/builtin/Transform.vue')['default'] - const Tweet: typeof import('./node_modules/@slidev/client/builtin/Tweet.vue')['default'] - const TwemojiCatWithTearsOfJoy: typeof import('~icons/twemoji/cat-with-tears-of-joy')['default'] - const UimRocket: typeof import('~icons/uim/rocket')['default'] - const VClickGap: typeof import('./node_modules/@slidev/client/builtin/VClickGap.vue')['default'] - const VDrag: typeof import('./node_modules/@slidev/client/builtin/VDrag.vue')['default'] - const VDragArrow: typeof import('./node_modules/@slidev/client/builtin/VDragArrow.vue')['default'] - const Youtube: typeof import('./node_modules/@slidev/client/builtin/Youtube.vue')['default'] -} \ No newline at end of file diff --git a/custom/config-transformers.md b/custom/config-transformers.md index 6bca791..b1906cc 100644 --- a/custom/config-transformers.md +++ b/custom/config-transformers.md @@ -12,7 +12,7 @@ const mySyntax = defineMarkdownTransformer((ctx) => { console.log('index in presentation', ctx.slide.index) ctx.s.replace( /^\[\[\[(.*)\]\]\]/gm, - (full: string, content: string) => { + (full, content) => { return `...` }, )