feat(plugin-shikiji): 使用 floating-vue 实现 twoslash 模态框
This commit is contained in:
parent
4d950b7618
commit
c37b1308e9
@ -35,5 +35,6 @@ export const theme: Theme = themePlume({
|
||||
// appId: '111',
|
||||
// indexName: '1234',
|
||||
// },
|
||||
shiki: { twoslash: true },
|
||||
},
|
||||
})
|
||||
|
||||
@ -197,6 +197,18 @@ Number.parseInt('123', 10)
|
||||
//
|
||||
```
|
||||
|
||||
```vue twoslash
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue'
|
||||
|
||||
const count = ref(0)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<p>{{ count }}</p>
|
||||
</template>
|
||||
```
|
||||
|
||||
**代码分组**
|
||||
|
||||
::: code-tabs
|
||||
|
||||
@ -32,7 +32,6 @@
|
||||
],
|
||||
"scripts": {
|
||||
"build": "pnpm run clean && pnpm run copy && pnpm run ts",
|
||||
"dev": "pnpm copy --watch",
|
||||
"clean": "rimraf --glob ./lib ./*.tsbuildinfo",
|
||||
"copy": "cpx \"src/**/*.{d.ts,vue,css,scss,jpg,png}\" lib",
|
||||
"ts": "tsc -b tsconfig.build.json"
|
||||
|
||||
@ -36,10 +36,17 @@
|
||||
"vuepress": "2.0.0-rc.8"
|
||||
},
|
||||
"dependencies": {
|
||||
"@shikijs/transformers": "^1.1.6",
|
||||
"@shikijs/twoslash": "^1.1.6",
|
||||
"@shikijs/transformers": "^1.1.7",
|
||||
"@shikijs/twoslash": "^1.1.7",
|
||||
"@types/hast": "^3.0.4",
|
||||
"floating-vue": "^5.2.2",
|
||||
"mdast-util-from-markdown": "^2.0.0",
|
||||
"mdast-util-gfm": "^3.0.0",
|
||||
"mdast-util-to-hast": "^13.1.0",
|
||||
"nanoid": "^5.0.6",
|
||||
"shiki": "^1.1.6"
|
||||
"shiki": "^1.1.7",
|
||||
"twoslash": "^0.2.4",
|
||||
"twoslash-vue": "^0.2.4"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
||||
52
plugins/plugin-shikiji/src/client/config.ts
Normal file
52
plugins/plugin-shikiji/src/client/config.ts
Normal file
@ -0,0 +1,52 @@
|
||||
import { type ClientConfig, defineClientConfig } from 'vuepress/client'
|
||||
import FloatingVue, { recomputeAllPoppers } from 'floating-vue'
|
||||
import 'floating-vue/dist/style.css'
|
||||
|
||||
const isMobile = typeof navigator !== 'undefined' && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
|
||||
|
||||
export type FloatingVueConfig = Parameters<(typeof FloatingVue)['install']>[1]
|
||||
|
||||
export default defineClientConfig({
|
||||
enhance({ app }) {
|
||||
if (typeof window !== 'undefined') {
|
||||
// Recompute poppers when clicking on a tab
|
||||
window.addEventListener('click', (e) => {
|
||||
const path = e.composedPath()
|
||||
if (path.some((el: any) => el?.classList?.contains?.('vp-code-group') || el?.classList?.contains?.('tabs')))
|
||||
recomputeAllPoppers()
|
||||
}, { passive: true })
|
||||
}
|
||||
app.use(FloatingVue, {
|
||||
themes: {
|
||||
'twoslash': {
|
||||
$extend: 'dropdown',
|
||||
triggers: isMobile ? ['touch'] : ['hover', 'touch'],
|
||||
popperTriggers: isMobile ? ['touch'] : ['hover', 'touch'],
|
||||
placement: 'bottom-start',
|
||||
overflowPadding: 10,
|
||||
delay: 0,
|
||||
handleResize: false,
|
||||
autoHide: true,
|
||||
instantMove: true,
|
||||
flip: false,
|
||||
arrowPadding: 8,
|
||||
autoBoundaryMaxSize: true,
|
||||
},
|
||||
'twoslash-query': {
|
||||
$extend: 'twoslash',
|
||||
triggers: ['click'],
|
||||
popperTriggers: ['click'],
|
||||
autoHide: false,
|
||||
},
|
||||
'twoslash-completion': {
|
||||
$extend: 'twoslash-query',
|
||||
triggers: ['click'],
|
||||
popperTriggers: ['click'],
|
||||
autoHide: false,
|
||||
distance: 0,
|
||||
arrowOverflow: true,
|
||||
},
|
||||
},
|
||||
})
|
||||
},
|
||||
}) as ClientConfig
|
||||
@ -16,11 +16,13 @@ import {
|
||||
transformerNotationWordHighlight,
|
||||
transformerRenderWhitespace,
|
||||
} from '@shikijs/transformers'
|
||||
import { rendererRich, transformerTwoslash } from '@shikijs/twoslash'
|
||||
import type { HighlighterOptions, ThemeOptions } from './types.js'
|
||||
import { resolveAttrs } from './resolveAttrs.js'
|
||||
import { LRUCache } from './lru.js'
|
||||
import { defaultHoverInfoProcessor, transformerTwoslash } from './rendererTransformer.js'
|
||||
|
||||
const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz', 10)
|
||||
const cache = new LRUCache<string, string>(64)
|
||||
|
||||
const RE_ESCAPE = /\[\\\!code/g
|
||||
const mustacheRE = /\{\{.*?\}\}/g
|
||||
@ -28,6 +30,7 @@ const mustacheRE = /\{\{.*?\}\}/g
|
||||
export async function highlight(
|
||||
theme: ThemeOptions,
|
||||
options: HighlighterOptions,
|
||||
isDev: boolean,
|
||||
): Promise<(str: string, lang: string, attrs: string) => string> {
|
||||
const {
|
||||
defaultHighlightLang: defaultLang = '',
|
||||
@ -68,6 +71,18 @@ export async function highlight(
|
||||
delete node.properties.style
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'shiki:inline-decorations',
|
||||
preprocess(code, options) {
|
||||
const reg = /^\/\/ @decorations:(.*?)\n/
|
||||
code = code.replace(reg, (match, decorations) => {
|
||||
options.decorations ||= []
|
||||
options.decorations.push(...JSON.parse(decorations))
|
||||
return ''
|
||||
})
|
||||
return code
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'vuepress-shikiji:remove-escape',
|
||||
postprocess: code => code.replace(RE_ESCAPE, '[!code'),
|
||||
@ -77,6 +92,14 @@ export async function highlight(
|
||||
return (str: string, lang: string, attrs: string) => {
|
||||
lang = lang || defaultLang
|
||||
|
||||
const key = str + lang + attrs
|
||||
|
||||
if (isDev) {
|
||||
const rendered = cache.get(key)
|
||||
if (rendered)
|
||||
return rendered
|
||||
}
|
||||
|
||||
if (lang) {
|
||||
const langLoaded = highlighter.getLoadedLanguages().includes(lang as any)
|
||||
if (!langLoaded && !isPlainLang(lang) && !isSpecialLang(lang)) {
|
||||
@ -108,6 +131,9 @@ export async function highlight(
|
||||
s = s.replaceAll(marker, match)
|
||||
})
|
||||
|
||||
if (attributes.twoslash && options.twoslash)
|
||||
s = s.replace(/{/g, '{')
|
||||
|
||||
return `${s}\n`
|
||||
}
|
||||
|
||||
@ -115,11 +141,13 @@ export async function highlight(
|
||||
|
||||
const inlineTransformers: ShikiTransformer[] = []
|
||||
|
||||
if (attributes.twoslash) {
|
||||
if (attributes.twoslash && options.twoslash) {
|
||||
inlineTransformers.push(transformerTwoslash({
|
||||
renderer: rendererRich({
|
||||
classExtra: 'vp-copy-ignore',
|
||||
}),
|
||||
processHoverInfo(info) {
|
||||
return defaultHoverInfoProcessor(info)
|
||||
// Remove shiki_core namespace
|
||||
.replace(/_shikijs_core[\w_]*\./g, '')
|
||||
},
|
||||
}))
|
||||
}
|
||||
|
||||
@ -137,15 +165,18 @@ export async function highlight(
|
||||
...inlineTransformers,
|
||||
...userTransformers,
|
||||
],
|
||||
meta: {
|
||||
__raw: rawAttrs,
|
||||
},
|
||||
meta: { __raw: rawAttrs },
|
||||
...(typeof theme === 'object' && 'light' in theme && 'dark' in theme
|
||||
? { themes: theme, defaultColor: false }
|
||||
: { theme }),
|
||||
})
|
||||
|
||||
return restoreMustache(highlighted)
|
||||
const rendered = restoreMustache(highlighted)
|
||||
|
||||
if (isDev)
|
||||
cache.set(key, rendered)
|
||||
|
||||
return rendered
|
||||
}
|
||||
catch (e) {
|
||||
logger.error(e)
|
||||
|
||||
190
plugins/plugin-shikiji/src/node/renderer-floating-vue.ts
Normal file
190
plugins/plugin-shikiji/src/node/renderer-floating-vue.ts
Normal file
@ -0,0 +1,190 @@
|
||||
import { defaultHoverInfoProcessor, rendererRich } from '@shikijs/twoslash'
|
||||
import type { RendererRichOptions, TwoslashRenderer } from '@shikijs/twoslash'
|
||||
import type { Element, ElementContent, Text } from 'hast'
|
||||
import type { ShikiTransformerContextCommon } from 'shiki'
|
||||
import { gfmFromMarkdown } from 'mdast-util-gfm'
|
||||
import { fromMarkdown } from 'mdast-util-from-markdown'
|
||||
import { defaultHandlers, toHast } from 'mdast-util-to-hast'
|
||||
|
||||
export { defaultHoverInfoProcessor }
|
||||
|
||||
export interface TwoslashFloatingVueOptions {
|
||||
classCopyIgnore?: string
|
||||
classFloatingPanel?: string
|
||||
classCode?: string
|
||||
classMarkdown?: string
|
||||
|
||||
floatingVueTheme?: string
|
||||
floatingVueThemeQuery?: string
|
||||
floatingVueThemeCompletion?: string
|
||||
}
|
||||
|
||||
export interface TwoslashFloatingVueRendererOptions extends RendererRichOptions {
|
||||
/**
|
||||
* Class and themes for floating-vue specific nodes
|
||||
*/
|
||||
floatingVue?: TwoslashFloatingVueOptions
|
||||
}
|
||||
|
||||
export function rendererFloatingVue(options: TwoslashFloatingVueRendererOptions = {}): TwoslashRenderer {
|
||||
const {
|
||||
classCopyIgnore = 'vp-copy-ignore',
|
||||
classFloatingPanel = 'twoslash-floating',
|
||||
classCode = 'vp-code',
|
||||
classMarkdown = 'plume-content',
|
||||
floatingVueTheme = 'twoslash',
|
||||
floatingVueThemeQuery = 'twoslash-query',
|
||||
floatingVueThemeCompletion = 'twoslash-completion',
|
||||
} = options.floatingVue || {}
|
||||
|
||||
const {
|
||||
errorRendering = 'line',
|
||||
} = options
|
||||
|
||||
const hoverBasicProps = {
|
||||
'class': 'twoslash-hover',
|
||||
'popper-class': ['shiki', classFloatingPanel, classCopyIgnore, classCode].join(' '),
|
||||
'theme': floatingVueTheme,
|
||||
}
|
||||
|
||||
function compose(parts: { token: Element | Text, popup: Element }): Element[] {
|
||||
return [
|
||||
{
|
||||
type: 'element',
|
||||
tagName: 'span',
|
||||
properties: {},
|
||||
children: [parts.token],
|
||||
},
|
||||
{
|
||||
type: 'element',
|
||||
tagName: 'template',
|
||||
properties: {
|
||||
'v-slot:popper': '{}',
|
||||
},
|
||||
content: {
|
||||
type: 'root',
|
||||
children: [vPre(parts.popup)],
|
||||
},
|
||||
children: [],
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
const rich = rendererRich({
|
||||
classExtra: classCopyIgnore,
|
||||
...options,
|
||||
renderMarkdown,
|
||||
renderMarkdownInline,
|
||||
hast: {
|
||||
hoverToken: {
|
||||
tagName: 'v-menu',
|
||||
properties: hoverBasicProps,
|
||||
},
|
||||
hoverCompose: compose,
|
||||
queryToken: {
|
||||
tagName: 'v-menu',
|
||||
properties: {
|
||||
...hoverBasicProps,
|
||||
':shown': 'true',
|
||||
'theme': floatingVueThemeQuery,
|
||||
},
|
||||
},
|
||||
queryCompose: compose,
|
||||
popupDocs: {
|
||||
class: `twoslash-popup-docs ${classMarkdown}`,
|
||||
},
|
||||
popupDocsTags: {
|
||||
class: `twoslash-popup-docs twoslash-popup-docs-tags ${classMarkdown}`,
|
||||
},
|
||||
popupError: {
|
||||
class: `twoslash-popup-error ${classMarkdown}`,
|
||||
},
|
||||
errorToken: errorRendering === 'line'
|
||||
? undefined
|
||||
: {
|
||||
tagName: 'v-menu',
|
||||
properties: {
|
||||
...hoverBasicProps,
|
||||
class: 'twoslash-error twoslash-error-hover',
|
||||
},
|
||||
},
|
||||
errorCompose: compose,
|
||||
completionCompose({ popup, cursor }) {
|
||||
return [
|
||||
<Element>{
|
||||
type: 'element',
|
||||
tagName: 'v-menu',
|
||||
properties: {
|
||||
'popper-class': ['shiki twoslash-completion', classCopyIgnore, classFloatingPanel],
|
||||
'theme': floatingVueThemeCompletion,
|
||||
':shown': 'true',
|
||||
},
|
||||
children: [
|
||||
cursor,
|
||||
{
|
||||
type: 'element',
|
||||
tagName: 'template',
|
||||
properties: {
|
||||
'v-slot:popper': '{}',
|
||||
},
|
||||
content: {
|
||||
type: 'root',
|
||||
children: [vPre(popup)],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
return rich
|
||||
}
|
||||
|
||||
function vPre<T extends ElementContent>(el: T): T {
|
||||
if (el.type === 'element') {
|
||||
el.properties = el.properties || {}
|
||||
el.properties['v-pre'] = ''
|
||||
}
|
||||
return el
|
||||
}
|
||||
|
||||
function renderMarkdown(this: ShikiTransformerContextCommon, md: string): ElementContent[] {
|
||||
const mdast = fromMarkdown(
|
||||
md.replace(/{@link ([^}]*)}/g, '$1'), // replace jsdoc links
|
||||
{ mdastExtensions: [gfmFromMarkdown()] },
|
||||
)
|
||||
|
||||
return (toHast(
|
||||
mdast,
|
||||
{
|
||||
handlers: {
|
||||
code: (state, node) => {
|
||||
const lang = node.lang || ''
|
||||
if (lang) {
|
||||
return this.codeToHast(
|
||||
node.value,
|
||||
{
|
||||
...this.options,
|
||||
transformers: [],
|
||||
lang,
|
||||
},
|
||||
).children[0] as Element
|
||||
}
|
||||
return defaultHandlers.code(state, node)
|
||||
},
|
||||
},
|
||||
},
|
||||
) as Element).children
|
||||
}
|
||||
|
||||
function renderMarkdownInline(this: ShikiTransformerContextCommon, md: string, context?: string): ElementContent[] {
|
||||
if (context === 'tag:param')
|
||||
md = md.replace(/^([\w$-]+)/, '`$1` ')
|
||||
|
||||
const children = renderMarkdown.call(this, md)
|
||||
if (children.length === 1 && children[0].type === 'element' && children[0].tagName === 'p')
|
||||
return children[0].children
|
||||
return children
|
||||
}
|
||||
70
plugins/plugin-shikiji/src/node/rendererTransformer.ts
Normal file
70
plugins/plugin-shikiji/src/node/rendererTransformer.ts
Normal file
@ -0,0 +1,70 @@
|
||||
/* eslint-disable node/prefer-global/process */
|
||||
import type { TransformerTwoslashOptions } from '@shikijs/twoslash/core'
|
||||
import { createTransformerFactory } from '@shikijs/twoslash/core'
|
||||
import { createTwoslasher } from 'twoslash-vue'
|
||||
import type { ShikiTransformer } from 'shiki'
|
||||
import { removeTwoslashNotations } from 'twoslash'
|
||||
import type { TwoslashFloatingVueRendererOptions } from './renderer-floating-vue.js'
|
||||
import { rendererFloatingVue } from './renderer-floating-vue.js'
|
||||
|
||||
export * from './renderer-floating-vue.js'
|
||||
|
||||
export interface VitePressPluginTwoslashOptions extends TransformerTwoslashOptions, TwoslashFloatingVueRendererOptions {
|
||||
/**
|
||||
* Requires adding `twoslash` to the code block explicitly to run twoslash
|
||||
* @default true
|
||||
*/
|
||||
explicitTrigger?: TransformerTwoslashOptions['explicitTrigger']
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Shiki transformer for VitePress to enable twoslash integration
|
||||
*
|
||||
* Add this to `markdown.codeTransformers` in `.vitepress/config.ts`
|
||||
*/
|
||||
export function transformerTwoslash(options: VitePressPluginTwoslashOptions = {}): ShikiTransformer {
|
||||
const {
|
||||
explicitTrigger = true,
|
||||
} = options
|
||||
|
||||
const onError = (error: any, code: string) => {
|
||||
const isCI = typeof process !== 'undefined' && process?.env?.CI
|
||||
const isDev = typeof process !== 'undefined' && process?.env?.NODE_ENV === 'development'
|
||||
const shouldThrow = (options.throws || isCI || !isDev) && options.throws !== false
|
||||
console.error(`\n\n--------\nTwoslash error in code:\n--------\n${code.split(/\n/g).slice(0, 15).join('\n').trim()}\n--------\n`)
|
||||
if (shouldThrow)
|
||||
throw error
|
||||
else
|
||||
console.error(error)
|
||||
return removeTwoslashNotations(code)
|
||||
}
|
||||
|
||||
const twoslash = createTransformerFactory(
|
||||
createTwoslasher(),
|
||||
)({
|
||||
langs: ['ts', 'tsx', 'js', 'jsx', 'json', 'vue'],
|
||||
renderer: rendererFloatingVue(options),
|
||||
onTwoslashError: onError,
|
||||
onShikiError: onError,
|
||||
...options,
|
||||
explicitTrigger,
|
||||
})
|
||||
|
||||
return {
|
||||
...twoslash,
|
||||
name: '@shikijs/vuepress-twoslash',
|
||||
preprocess(code, options) {
|
||||
const cleanup = options.transformers?.find(i => i.name === 'vuepress:clean-up')
|
||||
if (cleanup)
|
||||
options.transformers?.splice(options.transformers.indexOf(cleanup), 1)
|
||||
|
||||
return twoslash.preprocess!.call(this, code, options)
|
||||
},
|
||||
postprocess(html) {
|
||||
if (this.meta.twoslash)
|
||||
return html.replace(/{/g, '{')
|
||||
|
||||
return html
|
||||
},
|
||||
}
|
||||
}
|
||||
@ -1,18 +1,45 @@
|
||||
import type { Plugin } from 'vuepress/core'
|
||||
import type { Plugin, PluginObject } from 'vuepress/core'
|
||||
import { getDirname, path } from 'vuepress/utils'
|
||||
import { highlight } from './highlight.js'
|
||||
import type { HighlighterOptions } from './types'
|
||||
|
||||
export type ShikiPluginOptions = HighlighterOptions
|
||||
|
||||
const __dirname = getDirname(import.meta.url)
|
||||
|
||||
export function shikiPlugin(options: ShikiPluginOptions = {}): Plugin {
|
||||
return {
|
||||
const plugin: PluginObject = {
|
||||
name: '@vuepress-plume/plugin-shikiji',
|
||||
|
||||
extendsMarkdown: async (md) => {
|
||||
extendsMarkdown: async (md, app) => {
|
||||
const theme = options.theme ?? { light: 'github-light', dark: 'github-dark' }
|
||||
const highlighter = await highlight(theme, options)
|
||||
const highlighter = await highlight(theme, options, app.env.isDev)
|
||||
|
||||
md.options.highlight = highlighter
|
||||
},
|
||||
}
|
||||
|
||||
if (!options.twoslash)
|
||||
return plugin
|
||||
|
||||
return {
|
||||
|
||||
...plugin,
|
||||
|
||||
clientConfigFile: path.resolve(__dirname, '../client/config.js'),
|
||||
|
||||
extendsMarkdownOptions: (options) => {
|
||||
if (options.code === false)
|
||||
return
|
||||
|
||||
// 注入 floating-vue 后,需要关闭 代码块 的 v-pre 配置
|
||||
if (options.code?.vPre) {
|
||||
options.code.vPre.block = false
|
||||
}
|
||||
else {
|
||||
options.code ??= {}
|
||||
options.code.vPre = { block: false }
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@ -59,6 +59,12 @@ export interface HighlighterOptions {
|
||||
*/
|
||||
codeTransformers?: ShikiTransformer[]
|
||||
|
||||
/**
|
||||
* Enable transformerTwoslash
|
||||
* @default false
|
||||
*/
|
||||
twoslash?: boolean
|
||||
|
||||
/**
|
||||
* Enable transformerRenderWhitespace
|
||||
* @default false
|
||||
|
||||
579
pnpm-lock.yaml
generated
579
pnpm-lock.yaml
generated
@ -289,17 +289,38 @@ importers:
|
||||
plugins/plugin-shikiji:
|
||||
dependencies:
|
||||
'@shikijs/transformers':
|
||||
specifier: ^1.1.6
|
||||
version: 1.1.6
|
||||
specifier: ^1.1.7
|
||||
version: 1.1.7
|
||||
'@shikijs/twoslash':
|
||||
specifier: ^1.1.6
|
||||
version: 1.1.6(typescript@5.3.3)
|
||||
specifier: ^1.1.7
|
||||
version: 1.1.7(typescript@5.3.3)
|
||||
'@types/hast':
|
||||
specifier: ^3.0.4
|
||||
version: 3.0.4
|
||||
floating-vue:
|
||||
specifier: ^5.2.2
|
||||
version: 5.2.2(vue@3.4.19)
|
||||
mdast-util-from-markdown:
|
||||
specifier: ^2.0.0
|
||||
version: 2.0.0
|
||||
mdast-util-gfm:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0
|
||||
mdast-util-to-hast:
|
||||
specifier: ^13.1.0
|
||||
version: 13.1.0
|
||||
nanoid:
|
||||
specifier: ^5.0.6
|
||||
version: 5.0.6
|
||||
shiki:
|
||||
specifier: ^1.1.6
|
||||
version: 1.1.6
|
||||
specifier: ^1.1.7
|
||||
version: 1.1.7
|
||||
twoslash:
|
||||
specifier: ^0.2.4
|
||||
version: 0.2.4(typescript@5.3.3)
|
||||
twoslash-vue:
|
||||
specifier: ^0.2.4
|
||||
version: 0.2.4(typescript@5.3.3)
|
||||
vuepress:
|
||||
specifier: 2.0.0-rc.8
|
||||
version: 2.0.0-rc.8(@vuepress/bundler-vite@2.0.0-rc.8)(@vuepress/bundler-webpack@2.0.0-rc.8)(typescript@5.3.3)(vue@3.4.19)
|
||||
@ -1617,6 +1638,22 @@ packages:
|
||||
readable-stream: 4.3.0
|
||||
dev: false
|
||||
|
||||
/@floating-ui/core@1.6.0:
|
||||
resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==}
|
||||
dependencies:
|
||||
'@floating-ui/utils': 0.2.1
|
||||
dev: false
|
||||
|
||||
/@floating-ui/dom@1.1.1:
|
||||
resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==}
|
||||
dependencies:
|
||||
'@floating-ui/core': 1.6.0
|
||||
dev: false
|
||||
|
||||
/@floating-ui/utils@0.2.1:
|
||||
resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==}
|
||||
dev: false
|
||||
|
||||
/@humanwhocodes/config-array@0.11.13:
|
||||
resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
|
||||
engines: {node: '>=10.10.0'}
|
||||
@ -3195,20 +3232,20 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@shikijs/core@1.1.6:
|
||||
resolution: {integrity: sha512-kt9hhvrWTm0EPtRDIsoAZnSsFlIDBVBBI5CQewpA/NZCPin+MOKRXg+JiWc4y+8fZ/v0HzfDhu/UC+OTZGMt7A==}
|
||||
/@shikijs/core@1.1.7:
|
||||
resolution: {integrity: sha512-gTYLUIuD1UbZp/11qozD3fWpUTuMqPSf3svDMMrL0UmlGU7D9dPw/V1FonwAorCUJBltaaESxq90jrSjQyGixg==}
|
||||
dev: false
|
||||
|
||||
/@shikijs/transformers@1.1.6:
|
||||
resolution: {integrity: sha512-R+eI1I9sQv0MCJyfR4kAG1G1SKSctw5ILszP0tHVrAgzSHWTpaHbXreZrDueahqtUCNHjt+MKmKJ8EMFtiitOQ==}
|
||||
/@shikijs/transformers@1.1.7:
|
||||
resolution: {integrity: sha512-lXz011ao4+rvweps/9h3CchBfzb1U5OtP5D51Tqc9lQYdLblWMIxQxH6Ybe1GeGINcEVM4goMyPrI0JvlIp4UQ==}
|
||||
dependencies:
|
||||
shiki: 1.1.6
|
||||
shiki: 1.1.7
|
||||
dev: false
|
||||
|
||||
/@shikijs/twoslash@1.1.6(typescript@5.3.3):
|
||||
resolution: {integrity: sha512-0HJK7Il7HevTpRvpPlnJ0ow8UyoQxhvxQ0/lhfw1C0xW/7eLtSAtZfSKdel5Nch6HgbbtfucEzuUFmRIRXUFUg==}
|
||||
/@shikijs/twoslash@1.1.7(typescript@5.3.3):
|
||||
resolution: {integrity: sha512-WH/Ee67eixqDWjsAUXIJQUgRzPDApsz7Bci65Yobc7SWHNc8T2sY1UBa+MCV2mAj0D6VCYBwWlNxMDTfhN7K0Q==}
|
||||
dependencies:
|
||||
'@shikijs/core': 1.1.6
|
||||
'@shikijs/core': 1.1.7
|
||||
twoslash: 0.2.4(typescript@5.3.3)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@ -3485,6 +3522,12 @@ packages:
|
||||
resolution: {integrity: sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==}
|
||||
dev: false
|
||||
|
||||
/@types/hast@3.0.4:
|
||||
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
dev: false
|
||||
|
||||
/@types/html-minifier-terser@6.1.0:
|
||||
resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
|
||||
dev: false
|
||||
@ -3563,6 +3606,12 @@ packages:
|
||||
'@types/unist': 2.0.10
|
||||
dev: true
|
||||
|
||||
/@types/mdast@4.0.3:
|
||||
resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
dev: false
|
||||
|
||||
/@types/mdurl@1.0.2:
|
||||
resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==}
|
||||
|
||||
@ -3665,6 +3714,10 @@ packages:
|
||||
resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
|
||||
dev: true
|
||||
|
||||
/@types/unist@3.0.2:
|
||||
resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
|
||||
dev: false
|
||||
|
||||
/@types/web-bluetooth@0.0.20:
|
||||
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
|
||||
dev: false
|
||||
@ -3934,7 +3987,6 @@ packages:
|
||||
|
||||
/@ungap/structured-clone@1.2.0:
|
||||
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
|
||||
dev: true
|
||||
|
||||
/@vercel/nft@0.23.0(supports-color@9.2.2):
|
||||
resolution: {integrity: sha512-1iuPjyltiPqyZrvc/bW1CyICRdng8bVhpJT8MsIXV7Wj+mRFyJs9krsHbVy2pZwu7BMAgforQsT5TCY1JoBDxw==}
|
||||
@ -3990,6 +4042,18 @@ packages:
|
||||
vue: 3.4.19(typescript@5.3.3)
|
||||
dev: false
|
||||
|
||||
/@volar/language-core@1.11.1:
|
||||
resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==}
|
||||
dependencies:
|
||||
'@volar/source-map': 1.11.1
|
||||
dev: false
|
||||
|
||||
/@volar/source-map@1.11.1:
|
||||
resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==}
|
||||
dependencies:
|
||||
muggle-string: 0.3.1
|
||||
dev: false
|
||||
|
||||
/@vue/compiler-core@3.4.19:
|
||||
resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==}
|
||||
dependencies:
|
||||
@ -4032,6 +4096,26 @@ packages:
|
||||
resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==}
|
||||
dev: false
|
||||
|
||||
/@vue/language-core@1.8.27(typescript@5.3.3):
|
||||
resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@volar/language-core': 1.11.1
|
||||
'@volar/source-map': 1.11.1
|
||||
'@vue/compiler-dom': 3.4.19
|
||||
'@vue/shared': 3.4.19
|
||||
computeds: 0.0.1
|
||||
minimatch: 9.0.3
|
||||
muggle-string: 0.3.1
|
||||
path-browserify: 1.0.1
|
||||
typescript: 5.3.3
|
||||
vue-template-compiler: 2.7.16
|
||||
dev: false
|
||||
|
||||
/@vue/reactivity@3.4.19:
|
||||
resolution: {integrity: sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==}
|
||||
dependencies:
|
||||
@ -5529,6 +5613,10 @@ packages:
|
||||
resolution: {integrity: sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==}
|
||||
dev: false
|
||||
|
||||
/ccount@2.0.1:
|
||||
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
|
||||
dev: false
|
||||
|
||||
/chalk@2.4.2:
|
||||
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
||||
engines: {node: '>=4'}
|
||||
@ -5561,6 +5649,10 @@ packages:
|
||||
resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
|
||||
dev: true
|
||||
|
||||
/character-entities@2.0.2:
|
||||
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
|
||||
dev: false
|
||||
|
||||
/character-reference-invalid@1.1.4:
|
||||
resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
|
||||
dev: true
|
||||
@ -5997,6 +6089,10 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/computeds@0.0.1:
|
||||
resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==}
|
||||
dev: false
|
||||
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
|
||||
@ -6737,6 +6833,10 @@ packages:
|
||||
resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==}
|
||||
dev: false
|
||||
|
||||
/de-indent@1.0.2:
|
||||
resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
|
||||
dev: false
|
||||
|
||||
/debounce@2.0.0:
|
||||
resolution: {integrity: sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA==}
|
||||
engines: {node: '>=18'}
|
||||
@ -6791,6 +6891,12 @@ packages:
|
||||
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
/decode-named-character-reference@1.0.2:
|
||||
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
|
||||
dependencies:
|
||||
character-entities: 2.0.2
|
||||
dev: false
|
||||
|
||||
/decode-uri-component@0.2.0:
|
||||
resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==}
|
||||
engines: {node: '>=0.10'}
|
||||
@ -6913,6 +7019,11 @@ packages:
|
||||
resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
|
||||
dev: false
|
||||
|
||||
/dequal@2.0.3:
|
||||
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/destr@2.0.2:
|
||||
resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==}
|
||||
|
||||
@ -7014,6 +7125,12 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/devlop@1.1.0:
|
||||
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
|
||||
dependencies:
|
||||
dequal: 2.0.3
|
||||
dev: false
|
||||
|
||||
/diff@4.0.2:
|
||||
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
|
||||
engines: {node: '>=0.3.1'}
|
||||
@ -8426,6 +8543,20 @@ packages:
|
||||
resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
|
||||
dev: true
|
||||
|
||||
/floating-vue@5.2.2(vue@3.4.19):
|
||||
resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==}
|
||||
peerDependencies:
|
||||
'@nuxt/kit': ^3.2.0
|
||||
vue: ^3.2.0
|
||||
peerDependenciesMeta:
|
||||
'@nuxt/kit':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@floating-ui/dom': 1.1.1
|
||||
vue: 3.4.19(typescript@5.3.3)
|
||||
vue-resize: 2.0.0-alpha.1(vue@3.4.19)
|
||||
dev: false
|
||||
|
||||
/flush-write-stream@2.0.0:
|
||||
resolution: {integrity: sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==}
|
||||
dependencies:
|
||||
@ -10576,6 +10707,10 @@ packages:
|
||||
triple-beam: 1.3.0
|
||||
dev: false
|
||||
|
||||
/longest-streak@3.1.0:
|
||||
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
|
||||
dev: false
|
||||
|
||||
/longest@2.0.1:
|
||||
resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@ -10701,6 +10836,10 @@ packages:
|
||||
uc.micro: 2.0.0
|
||||
dev: false
|
||||
|
||||
/markdown-table@3.0.3:
|
||||
resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
|
||||
dev: false
|
||||
|
||||
/mathml-tag-names@2.1.3:
|
||||
resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
|
||||
dev: true
|
||||
@ -10725,6 +10864,15 @@ packages:
|
||||
blueimp-md5: 2.19.0
|
||||
dev: false
|
||||
|
||||
/mdast-util-find-and-replace@3.0.1:
|
||||
resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
escape-string-regexp: 5.0.0
|
||||
unist-util-is: 6.0.0
|
||||
unist-util-visit-parents: 6.0.1
|
||||
dev: false
|
||||
|
||||
/mdast-util-from-markdown@0.8.5:
|
||||
resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==}
|
||||
dependencies:
|
||||
@ -10737,10 +10885,138 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/mdast-util-from-markdown@2.0.0:
|
||||
resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
'@types/unist': 3.0.2
|
||||
decode-named-character-reference: 1.0.2
|
||||
devlop: 1.1.0
|
||||
mdast-util-to-string: 4.0.0
|
||||
micromark: 4.0.0
|
||||
micromark-util-decode-numeric-character-reference: 2.0.1
|
||||
micromark-util-decode-string: 2.0.0
|
||||
micromark-util-normalize-identifier: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
unist-util-stringify-position: 4.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/mdast-util-gfm-autolink-literal@2.0.0:
|
||||
resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==}
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
ccount: 2.0.1
|
||||
devlop: 1.1.0
|
||||
mdast-util-find-and-replace: 3.0.1
|
||||
micromark-util-character: 2.1.0
|
||||
dev: false
|
||||
|
||||
/mdast-util-gfm-footnote@2.0.0:
|
||||
resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
devlop: 1.1.0
|
||||
mdast-util-from-markdown: 2.0.0
|
||||
mdast-util-to-markdown: 2.1.0
|
||||
micromark-util-normalize-identifier: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/mdast-util-gfm-strikethrough@2.0.0:
|
||||
resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
mdast-util-from-markdown: 2.0.0
|
||||
mdast-util-to-markdown: 2.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/mdast-util-gfm-table@2.0.0:
|
||||
resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
devlop: 1.1.0
|
||||
markdown-table: 3.0.3
|
||||
mdast-util-from-markdown: 2.0.0
|
||||
mdast-util-to-markdown: 2.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/mdast-util-gfm-task-list-item@2.0.0:
|
||||
resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
devlop: 1.1.0
|
||||
mdast-util-from-markdown: 2.0.0
|
||||
mdast-util-to-markdown: 2.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/mdast-util-gfm@3.0.0:
|
||||
resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==}
|
||||
dependencies:
|
||||
mdast-util-from-markdown: 2.0.0
|
||||
mdast-util-gfm-autolink-literal: 2.0.0
|
||||
mdast-util-gfm-footnote: 2.0.0
|
||||
mdast-util-gfm-strikethrough: 2.0.0
|
||||
mdast-util-gfm-table: 2.0.0
|
||||
mdast-util-gfm-task-list-item: 2.0.0
|
||||
mdast-util-to-markdown: 2.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/mdast-util-phrasing@4.1.0:
|
||||
resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
unist-util-is: 6.0.0
|
||||
dev: false
|
||||
|
||||
/mdast-util-to-hast@13.1.0:
|
||||
resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
'@types/mdast': 4.0.3
|
||||
'@ungap/structured-clone': 1.2.0
|
||||
devlop: 1.1.0
|
||||
micromark-util-sanitize-uri: 2.0.0
|
||||
trim-lines: 3.0.1
|
||||
unist-util-position: 5.0.0
|
||||
unist-util-visit: 5.0.0
|
||||
vfile: 6.0.1
|
||||
dev: false
|
||||
|
||||
/mdast-util-to-markdown@2.1.0:
|
||||
resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
'@types/unist': 3.0.2
|
||||
longest-streak: 3.1.0
|
||||
mdast-util-phrasing: 4.1.0
|
||||
mdast-util-to-string: 4.0.0
|
||||
micromark-util-decode-string: 2.0.0
|
||||
unist-util-visit: 5.0.0
|
||||
zwitch: 2.0.4
|
||||
dev: false
|
||||
|
||||
/mdast-util-to-string@2.0.0:
|
||||
resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==}
|
||||
dev: true
|
||||
|
||||
/mdast-util-to-string@4.0.0:
|
||||
resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
dev: false
|
||||
|
||||
/mdn-data@2.0.28:
|
||||
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
|
||||
dev: false
|
||||
@ -10833,6 +11109,157 @@ packages:
|
||||
resolution: {integrity: sha512-2tzWP1w2Hh+r7kCYa4f//jpBEA6dAueiuLco38NxfjF9Py3KCCI7wVOTdCvOhmTC043t+ulclVBdl3v+s+UJIQ==}
|
||||
dev: false
|
||||
|
||||
/micromark-core-commonmark@2.0.0:
|
||||
resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
|
||||
dependencies:
|
||||
decode-named-character-reference: 1.0.2
|
||||
devlop: 1.1.0
|
||||
micromark-factory-destination: 2.0.0
|
||||
micromark-factory-label: 2.0.0
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-factory-title: 2.0.0
|
||||
micromark-factory-whitespace: 2.0.0
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-chunked: 2.0.0
|
||||
micromark-util-classify-character: 2.0.0
|
||||
micromark-util-html-tag-name: 2.0.0
|
||||
micromark-util-normalize-identifier: 2.0.0
|
||||
micromark-util-resolve-all: 2.0.0
|
||||
micromark-util-subtokenize: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-factory-destination@2.0.0:
|
||||
resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
|
||||
dependencies:
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-factory-label@2.0.0:
|
||||
resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
|
||||
dependencies:
|
||||
devlop: 1.1.0
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-factory-space@2.0.0:
|
||||
resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
|
||||
dependencies:
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-factory-title@2.0.0:
|
||||
resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
|
||||
dependencies:
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-factory-whitespace@2.0.0:
|
||||
resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
|
||||
dependencies:
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-character@2.1.0:
|
||||
resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
|
||||
dependencies:
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-chunked@2.0.0:
|
||||
resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
|
||||
dependencies:
|
||||
micromark-util-symbol: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-classify-character@2.0.0:
|
||||
resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
|
||||
dependencies:
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-combine-extensions@2.0.0:
|
||||
resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
|
||||
dependencies:
|
||||
micromark-util-chunked: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-decode-numeric-character-reference@2.0.1:
|
||||
resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
|
||||
dependencies:
|
||||
micromark-util-symbol: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-decode-string@2.0.0:
|
||||
resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
|
||||
dependencies:
|
||||
decode-named-character-reference: 1.0.2
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-decode-numeric-character-reference: 2.0.1
|
||||
micromark-util-symbol: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-encode@2.0.0:
|
||||
resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
|
||||
dev: false
|
||||
|
||||
/micromark-util-html-tag-name@2.0.0:
|
||||
resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
|
||||
dev: false
|
||||
|
||||
/micromark-util-normalize-identifier@2.0.0:
|
||||
resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
|
||||
dependencies:
|
||||
micromark-util-symbol: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-resolve-all@2.0.0:
|
||||
resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
|
||||
dependencies:
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-sanitize-uri@2.0.0:
|
||||
resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
|
||||
dependencies:
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-encode: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-subtokenize@2.0.0:
|
||||
resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
|
||||
dependencies:
|
||||
devlop: 1.1.0
|
||||
micromark-util-chunked: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
dev: false
|
||||
|
||||
/micromark-util-symbol@2.0.0:
|
||||
resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
|
||||
dev: false
|
||||
|
||||
/micromark-util-types@2.0.0:
|
||||
resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
|
||||
dev: false
|
||||
|
||||
/micromark@2.11.4:
|
||||
resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==}
|
||||
dependencies:
|
||||
@ -10842,6 +11269,30 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/micromark@4.0.0:
|
||||
resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
|
||||
dependencies:
|
||||
'@types/debug': 4.1.12
|
||||
debug: 4.3.4(supports-color@9.2.2)
|
||||
decode-named-character-reference: 1.0.2
|
||||
devlop: 1.1.0
|
||||
micromark-core-commonmark: 2.0.0
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-chunked: 2.0.0
|
||||
micromark-util-combine-extensions: 2.0.0
|
||||
micromark-util-decode-numeric-character-reference: 2.0.1
|
||||
micromark-util-encode: 2.0.0
|
||||
micromark-util-normalize-identifier: 2.0.0
|
||||
micromark-util-resolve-all: 2.0.0
|
||||
micromark-util-sanitize-uri: 2.0.0
|
||||
micromark-util-subtokenize: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/micromatch@3.1.10:
|
||||
resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@ -11069,6 +11520,10 @@ packages:
|
||||
/ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
|
||||
/muggle-string@0.3.1:
|
||||
resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
|
||||
dev: false
|
||||
|
||||
/multicast-dns@7.2.5:
|
||||
resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
|
||||
hasBin: true
|
||||
@ -12029,6 +12484,10 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/path-browserify@1.0.1:
|
||||
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
|
||||
dev: false
|
||||
|
||||
/path-exists@3.0.0:
|
||||
resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
|
||||
engines: {node: '>=4'}
|
||||
@ -13337,10 +13796,10 @@ packages:
|
||||
/shell-quote@1.8.1:
|
||||
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
|
||||
|
||||
/shiki@1.1.6:
|
||||
resolution: {integrity: sha512-j4pcpvaQWHb42cHeV+W6P+X/VcK7Y2ctvEham6zB8wsuRQroT6cEMIkiUmBU2Nqg2qnHZDH6ZyRdVldcy0l6xw==}
|
||||
/shiki@1.1.7:
|
||||
resolution: {integrity: sha512-9kUTMjZtcPH3i7vHunA6EraTPpPOITYTdA5uMrvsJRexktqP0s7P3s9HVK80b4pP42FRVe03D7fT3NmJv2yYhw==}
|
||||
dependencies:
|
||||
'@shikijs/core': 1.1.6
|
||||
'@shikijs/core': 1.1.7
|
||||
dev: false
|
||||
|
||||
/side-channel@1.0.4:
|
||||
@ -14364,6 +14823,10 @@ packages:
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/trim-lines@3.0.1:
|
||||
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
|
||||
dev: false
|
||||
|
||||
/trim-newlines@3.0.1:
|
||||
resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
|
||||
engines: {node: '>=8'}
|
||||
@ -14458,6 +14921,19 @@ packages:
|
||||
resolution: {integrity: sha512-AEGTJj4mFGfvQc/M6qi0+s82Zq+mxLcjWZU+EUHGG8LQElyHDs+uDR+/3+m1l+WP7WL+QmWrVzFXgFX+hBg+bg==}
|
||||
dev: false
|
||||
|
||||
/twoslash-vue@0.2.4(typescript@5.3.3):
|
||||
resolution: {integrity: sha512-AIcsYRSxn5WuZC+dD7/n99s1UEY6e5IljoGL3YijQvI/pylgsKk5sWXptp5NrRTH0srBLXoeVpE1re1Eo6eiJw==}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
dependencies:
|
||||
'@vue/language-core': 1.8.27(typescript@5.3.3)
|
||||
twoslash: 0.2.4(typescript@5.3.3)
|
||||
twoslash-protocol: 0.2.4
|
||||
typescript: 5.3.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/twoslash@0.2.4(typescript@5.3.3):
|
||||
resolution: {integrity: sha512-hc3y11BjLHP4kV37TR6lUKksxpZp0LQi9kCy95ka6qobye/gV49PqXZIuWlRaRVGNvp4AJBMg8aiwkp0M8x/nQ==}
|
||||
peerDependencies:
|
||||
@ -14621,12 +15097,45 @@ packages:
|
||||
crypto-random-string: 4.0.0
|
||||
dev: false
|
||||
|
||||
/unist-util-is@6.0.0:
|
||||
resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
dev: false
|
||||
|
||||
/unist-util-position@5.0.0:
|
||||
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
dev: false
|
||||
|
||||
/unist-util-stringify-position@2.0.3:
|
||||
resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
|
||||
dependencies:
|
||||
'@types/unist': 2.0.10
|
||||
dev: true
|
||||
|
||||
/unist-util-stringify-position@4.0.0:
|
||||
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
dev: false
|
||||
|
||||
/unist-util-visit-parents@6.0.1:
|
||||
resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
unist-util-is: 6.0.0
|
||||
dev: false
|
||||
|
||||
/unist-util-visit@5.0.0:
|
||||
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
unist-util-is: 6.0.0
|
||||
unist-util-visit-parents: 6.0.1
|
||||
dev: false
|
||||
|
||||
/universal-user-agent@6.0.0:
|
||||
resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==}
|
||||
dev: false
|
||||
@ -14844,6 +15353,21 @@ packages:
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/vfile-message@4.0.2:
|
||||
resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
unist-util-stringify-position: 4.0.0
|
||||
dev: false
|
||||
|
||||
/vfile@6.0.1:
|
||||
resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
unist-util-stringify-position: 4.0.0
|
||||
vfile-message: 4.0.2
|
||||
dev: false
|
||||
|
||||
/vite@5.1.3(@types/node@20.9.1)(sass@1.71.1):
|
||||
resolution: {integrity: sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
@ -14970,6 +15494,14 @@ packages:
|
||||
webpack: 5.90.2
|
||||
dev: false
|
||||
|
||||
/vue-resize@2.0.0-alpha.1(vue@3.4.19):
|
||||
resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==}
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
dependencies:
|
||||
vue: 3.4.19(typescript@5.3.3)
|
||||
dev: false
|
||||
|
||||
/vue-router@4.2.5(vue@3.4.19):
|
||||
resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==}
|
||||
peerDependencies:
|
||||
@ -14979,6 +15511,13 @@ packages:
|
||||
vue: 3.4.19(typescript@5.3.3)
|
||||
dev: false
|
||||
|
||||
/vue-template-compiler@2.7.16:
|
||||
resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==}
|
||||
dependencies:
|
||||
de-indent: 1.0.2
|
||||
he: 1.2.0
|
||||
dev: false
|
||||
|
||||
/vue@3.4.19(typescript@5.3.3):
|
||||
resolution: {integrity: sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==}
|
||||
peerDependencies:
|
||||
@ -15645,3 +16184,7 @@ packages:
|
||||
/zod@3.22.4:
|
||||
resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
|
||||
dev: false
|
||||
|
||||
/zwitch@2.0.4:
|
||||
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
|
||||
dev: false
|
||||
|
||||
@ -260,3 +260,139 @@ div[class*="language-"].line-numbers-mode:has(> .twoslash) {
|
||||
background-color: var(--twoslash-tag-annotate-bg);
|
||||
border-left: 3px solid var(--twoslash-tag-annotate-color);
|
||||
}
|
||||
|
||||
/* ========== floating vue ================== */
|
||||
|
||||
:root {
|
||||
--twoslash-popup-bg: var(--vp-c-bg, inherit);
|
||||
--twoslash-popup-color: var(--vp-c-text-1);
|
||||
--twoslash-docs-color: var(--vp-c-text-1);
|
||||
--twoslash-docs-font: var(--vp-font-family-base);
|
||||
--twoslash-code-font: var(--vp-font-family-mono);
|
||||
--twoslash-code-size: var(--vp-code-font-size);
|
||||
--twoslash-underline-color: #8888;
|
||||
--twoslash-border-color: var(--vp-c-border);
|
||||
--twoslash-cursor-color: var(--vp-c-brand-1);
|
||||
--twoslash-matched-color: var(--vp-c-brand-1);
|
||||
--twoslash-unmatched-color: var(--vp-c-text-2);
|
||||
}
|
||||
|
||||
.v-popper--theme-twoslash {
|
||||
z-index: calc(var(--vp-z-index-local-nav) - 1);
|
||||
}
|
||||
|
||||
.v-popper--theme-twoslash .v-popper__inner {
|
||||
color: var(--twoslash-popup-color);
|
||||
background: var(--twoslash-popup-bg);
|
||||
border-color: var(--twoslash-border-color);
|
||||
}
|
||||
|
||||
.v-popper--theme-twoslash .v-popper__arrow-outer {
|
||||
border-color: var(--twoslash-border-color);
|
||||
}
|
||||
|
||||
.v-popper--theme-twoslash .v-popper__arrow-inner {
|
||||
border-color: var(--twoslash-popup-bg);
|
||||
}
|
||||
|
||||
.twoslash-popup-container {
|
||||
transform: translateY(1.5em);
|
||||
}
|
||||
|
||||
.twoslash-query-presisted .twoslash-popup-container {
|
||||
transform: translateY(1.8em);
|
||||
}
|
||||
|
||||
.twoslash .v-popper {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.twoslash-completion-list .twoslash-completions-icon {
|
||||
color: var(--twoslash-unmatched-color) !important;
|
||||
}
|
||||
|
||||
.twoslash-floating .twoslash-popup-code {
|
||||
display: block;
|
||||
width: fit-content;
|
||||
min-width: 100%;
|
||||
max-width: 600px;
|
||||
padding: 6px 12px;
|
||||
font-size: var(--twoslash-code-size);
|
||||
line-height: var(--vp-code-line-height);
|
||||
white-space: pre-wrap;
|
||||
transition: color 0.5s;
|
||||
}
|
||||
|
||||
.twoslash-floating .twoslash-popup-docs,
|
||||
.twoslash-floating .twoslash-popup-error {
|
||||
max-width: 700px;
|
||||
max-height: 500px;
|
||||
padding: 0 12px !important;
|
||||
overflow: hidden auto;
|
||||
font-family: var(--twoslash-docs-font);
|
||||
font-size: 0.9em;
|
||||
text-wrap: balance;
|
||||
}
|
||||
|
||||
.twoslash-floating .twoslash-popup-docs {
|
||||
color: var(--twoslash-docs-color);
|
||||
border-top: 1px solid var(--twoslash-border-color);
|
||||
}
|
||||
|
||||
.twoslash-floating .twoslash-popup-error {
|
||||
color: var(--twoslash-error-color);
|
||||
}
|
||||
|
||||
.twoslash-floating .twoslash-popup-error.twoslash-error-level-warning {
|
||||
color: var(--twoslash-warn-color);
|
||||
}
|
||||
|
||||
.twoslash-floating .twoslash-popup-docs p,
|
||||
.twoslash-floating .twoslash-popup-error p {
|
||||
padding: 6px 0;
|
||||
margin: 0;
|
||||
text-wrap: balance;
|
||||
}
|
||||
|
||||
.twoslash-floating .twoslash-popup-docs pre .twoslash-floating .twoslash-popup-error pre {
|
||||
padding: 12px;
|
||||
margin: 6px -2px;
|
||||
overflow-x: auto;
|
||||
background-color: var(--vp-code-block-bg);
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.twoslash-floating .twoslash-popup-docs-tags {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 8px 12px !important;
|
||||
}
|
||||
|
||||
.twoslash-floating .twoslash-popup-docs-tags .twoslash-popup-docs-tag-name {
|
||||
margin-right: 0.5em;
|
||||
font-family: var(--twoslash-code-font);
|
||||
color: var(--twoslash-unmatched-color);
|
||||
}
|
||||
|
||||
.twoslash-completion-cursor {
|
||||
display: inline-block;
|
||||
width: 2px;
|
||||
height: 1.2em;
|
||||
margin-bottom: -0.2em;
|
||||
user-select: none;
|
||||
background: var(--twoslash-cursor-color);
|
||||
}
|
||||
|
||||
.twoslash-floating.twoslash-completion .v-popper__arrow-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.twoslash-floating.twoslash-completion .twoslash-completion-list {
|
||||
padding: 6px;
|
||||
font-family: var(--twoslash-code-font);
|
||||
font-size: var(--twoslash-code-size) !important;
|
||||
}
|
||||
|
||||
.twoslash-floating.twoslash-completion .twoslash-completion-list li {
|
||||
padding: 3px 0;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user