feat: resizeable component (#385)

This commit is contained in:
Sadegh Barati 2024-03-06 18:21:31 +03:30 committed by GitHub
parent 0e84af73de
commit 126e1877fd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
20 changed files with 697 additions and 82 deletions

View File

@ -281,6 +281,12 @@ export const docsConfig: DocsConfig = {
href: '/docs/components/radio-group', href: '/docs/components/radio-group',
items: [], items: [],
}, },
{
title: 'Resizable',
href: '/docs/components/resizable',
label: 'New',
items: [],
},
{ {
title: 'Scroll Area', title: 'Scroll Area',
href: '/docs/components/scroll-area', href: '/docs/components/scroll-area',

View File

@ -591,6 +591,27 @@ export const Index = {
component: () => import("../src/lib/registry/default/example/RangePickerWithSlot.vue").then((m) => m.default), component: () => import("../src/lib/registry/default/example/RangePickerWithSlot.vue").then((m) => m.default),
files: ["../src/lib/registry/default/example/RangePickerWithSlot.vue"], files: ["../src/lib/registry/default/example/RangePickerWithSlot.vue"],
}, },
"ResizableDemo": {
name: "ResizableDemo",
type: "components:example",
registryDependencies: ["resizable"],
component: () => import("../src/lib/registry/default/example/ResizableDemo.vue").then((m) => m.default),
files: ["../src/lib/registry/default/example/ResizableDemo.vue"],
},
"ResizableHandleDemo": {
name: "ResizableHandleDemo",
type: "components:example",
registryDependencies: ["resizable"],
component: () => import("../src/lib/registry/default/example/ResizableHandleDemo.vue").then((m) => m.default),
files: ["../src/lib/registry/default/example/ResizableHandleDemo.vue"],
},
"ResizableVerticalDemo": {
name: "ResizableVerticalDemo",
type: "components:example",
registryDependencies: ["resizable"],
component: () => import("../src/lib/registry/default/example/ResizableVerticalDemo.vue").then((m) => m.default),
files: ["../src/lib/registry/default/example/ResizableVerticalDemo.vue"],
},
"ScrollAreaDemo": { "ScrollAreaDemo": {
name: "ScrollAreaDemo", name: "ScrollAreaDemo",
type: "components:example", type: "components:example",
@ -1600,6 +1621,27 @@ export const Index = {
component: () => import("../src/lib/registry/new-york/example/RangePickerWithSlot.vue").then((m) => m.default), component: () => import("../src/lib/registry/new-york/example/RangePickerWithSlot.vue").then((m) => m.default),
files: ["../src/lib/registry/new-york/example/RangePickerWithSlot.vue"], files: ["../src/lib/registry/new-york/example/RangePickerWithSlot.vue"],
}, },
"ResizableDemo": {
name: "ResizableDemo",
type: "components:example",
registryDependencies: ["resizable"],
component: () => import("../src/lib/registry/new-york/example/ResizableDemo.vue").then((m) => m.default),
files: ["../src/lib/registry/new-york/example/ResizableDemo.vue"],
},
"ResizableHandleDemo": {
name: "ResizableHandleDemo",
type: "components:example",
registryDependencies: ["resizable"],
component: () => import("../src/lib/registry/new-york/example/ResizableHandleDemo.vue").then((m) => m.default),
files: ["../src/lib/registry/new-york/example/ResizableHandleDemo.vue"],
},
"ResizableVerticalDemo": {
name: "ResizableVerticalDemo",
type: "components:example",
registryDependencies: ["resizable"],
component: () => import("../src/lib/registry/new-york/example/ResizableVerticalDemo.vue").then((m) => m.default),
files: ["../src/lib/registry/new-york/example/ResizableVerticalDemo.vue"],
},
"ScrollAreaDemo": { "ScrollAreaDemo": {
name: "ScrollAreaDemo", name: "ScrollAreaDemo",
type: "components:example", type: "components:example",

View File

@ -31,7 +31,7 @@
"embla-carousel-autoplay": "^8.0.0", "embla-carousel-autoplay": "^8.0.0",
"embla-carousel-vue": "^8.0.0", "embla-carousel-vue": "^8.0.0",
"lucide-vue-next": "^0.276.0", "lucide-vue-next": "^0.276.0",
"radix-vue": "^1.4.9", "radix-vue": "^1.5.0",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"v-calendar": "^3.1.2", "v-calendar": "^3.1.2",
"vaul-vue": "^0.1.0", "vaul-vue": "^0.1.0",
@ -42,9 +42,9 @@
"zod": "^3.22.4" "zod": "^3.22.4"
}, },
"devDependencies": { "devDependencies": {
"@iconify-json/radix-icons": "^1.1.11", "@iconify-json/radix-icons": "^1.1.14",
"@iconify-json/tabler": "^1.1.89", "@iconify-json/tabler": "^1.1.106",
"@iconify/json": "^2.2.108", "@iconify/json": "^2.2.189",
"@iconify/vue": "^4.1.1", "@iconify/vue": "^4.1.1",
"@shikijs/transformers": "^1.1.7", "@shikijs/transformers": "^1.1.7",
"@types/lodash.template": "^4.5.3", "@types/lodash.template": "^4.5.3",
@ -56,7 +56,7 @@
"@vue/tsconfig": "^0.5.1", "@vue/tsconfig": "^0.5.1",
"autoprefixer": "^10.4.18", "autoprefixer": "^10.4.18",
"lodash.template": "^4.5.0", "lodash.template": "^4.5.0",
"oxc-parser": "^0.7.0", "oxc-parser": "^0.8.0",
"pathe": "^1.1.2", "pathe": "^1.1.2",
"rimraf": "^5.0.5", "rimraf": "^5.0.5",
"shiki": "^1.1.7", "shiki": "^1.1.7",
@ -65,8 +65,8 @@
"tsx": "^4.7.1", "tsx": "^4.7.1",
"typescript": "^5.3.3", "typescript": "^5.3.3",
"unplugin-icons": "^0.18.5", "unplugin-icons": "^0.18.5",
"vite": "^5.1.4", "vite": "^5.1.5",
"vitepress": "^1.0.0-rc.44", "vitepress": "^1.0.0-rc.44",
"vue-tsc": "^2.0.3" "vue-tsc": "^2.0.5"
} }
} }

View File

@ -0,0 +1,117 @@
---
title: Resizable
description: Accessible resizable panel groups and layouts with keyboard support.
source: apps/www/src/lib/registry/default/ui/resizable
primitive: https://www.radix-vue.com/components/splitter.html
---
<ComponentPreview name="ResizableDemo" />
## Installation
<TabPreview name="CLI">
<template #CLI>
```bash
npx shadcn-vue@latest add resizable
```
</template>
<template #Manual>
<Steps>
### Install the following dependency:
```bash
npm install radix-vue
```
### Copy and paste the following code into your project:
`index.ts`
<<< @/lib/registry/default/ui/resizable/index.ts
`ResizablePanelGroup.vue`
<<< @/lib/registry/default/ui/resizable/ResizablePanelGroup.vue
`ResizableHandle.vue`
<<< @/lib/registry/default/ui/resizable/ResizableHandle.vue
</Steps>
</template>
</TabPreview>
## Usage
```vue
<script setup lang="ts">
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from '@/components/ui/resizable'
</script>
<template>
<ResizablePanelGroup direction="horizontal">
<ResizablePanel>One</ResizablePanel>
<ResizableHandle />
<ResizablePanel>Two</ResizablePanel>
</ResizablePanelGroup>
</template>
```
## Examples
### Vertical
Use the direction prop to set the direction of the resizable panels.
<ComponentPreview name="ResizableVerticalDemo" />
```vue:line-numbers {10}
<script setup lang="ts">
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from '@/components/ui/resizable'
</script>
<template>
<ResizablePanelGroup direction="horizontal">
<ResizablePanel>One</ResizablePanel>
<ResizableHandle />
<ResizablePanel>Two</ResizablePanel>
</ResizablePanelGroup>
</template>
```
### Handle
You can set or hide the handle by using the withHandle prop on the ResizableHandle component.
<ComponentPreview name="ResizableHandleDemo" />
```vue:line-numbers {12}
<script setup lang="ts">
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from '@/components/ui/resizable'
</script>
<template>
<ResizablePanelGroup direction="horizontal">
<ResizablePanel>One</ResizablePanel>
<ResizableHandle with-handle />
<ResizablePanel>Two</ResizablePanel>
</ResizablePanelGroup>
</template>
```

View File

@ -0,0 +1,36 @@
<script setup lang="ts">
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from '@/lib/registry/default/ui/resizable'
</script>
<template>
<ResizablePanelGroup
direction="horizontal"
class="max-w-md rounded-lg border"
>
<ResizablePanel :default-size="50">
<div class="flex h-[200px] items-center justify-center p-6">
<span class="font-semibold">One</span>
</div>
</ResizablePanel>
<ResizableHandle />
<ResizablePanel :default-size="50">
<ResizablePanelGroup direction="vertical">
<ResizablePanel :default-size="25">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Two</span>
</div>
</ResizablePanel>
<ResizableHandle />
<ResizablePanel :default-size="75">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Three</span>
</div>
</ResizablePanel>
</ResizablePanelGroup>
</ResizablePanel>
</ResizablePanelGroup>
</template>

View File

@ -0,0 +1,26 @@
<script setup lang="ts">
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from '@/lib/registry/default/ui/resizable'
</script>
<template>
<ResizablePanelGroup
direction="horizontal"
class="min-h-[200px] max-w-md rounded-lg border"
>
<ResizablePanel :default-size="25">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Sidebar</span>
</div>
</ResizablePanel>
<ResizableHandle with-handle />
<ResizablePanel :default-size="75">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Content</span>
</div>
</ResizablePanel>
</ResizablePanelGroup>
</template>

View File

@ -0,0 +1,26 @@
<script setup lang="ts">
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from '@/lib/registry/default/ui/resizable'
</script>
<template>
<ResizablePanelGroup
direction="vertical"
class="min-h-[200px] max-w-md rounded-lg border"
>
<ResizablePanel :default-size="25">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Header</span>
</div>
</ResizablePanel>
<ResizableHandle />
<ResizablePanel :default-size="75">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Content</span>
</div>
</ResizablePanel>
</ResizablePanelGroup>
</template>

View File

@ -0,0 +1,26 @@
<script setup lang="ts">
import { type HTMLAttributes, computed } from 'vue'
import { SplitterResizeHandle, type SplitterResizeHandleEmits, type SplitterResizeHandleProps, useForwardPropsEmits } from 'radix-vue'
import { GripVertical } from 'lucide-vue-next'
import { cn } from '@/lib/utils'
const props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes['class'], withHandle?: boolean }>()
const emits = defineEmits<SplitterResizeHandleEmits>()
const delegatedProps = computed(() => {
const { class: _, ...delegated } = props
return delegated
})
const forwarded = useForwardPropsEmits(delegatedProps, emits)
</script>
<template>
<SplitterResizeHandle v-bind="forwarded" :class="cn('relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)">
<template v-if="props.withHandle">
<div class="z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border">
<GripVertical class="h-2.5 w-2.5" />
</div>
</template>
</SplitterResizeHandle>
</template>

View File

@ -0,0 +1,21 @@
<script setup lang="ts">
import { type HTMLAttributes, computed } from 'vue'
import { SplitterGroup, type SplitterGroupEmits, type SplitterGroupProps, useForwardPropsEmits } from 'radix-vue'
import { cn } from '@/lib/utils'
const props = defineProps<SplitterGroupProps & { class?: HTMLAttributes['class'] }>()
const emits = defineEmits<SplitterGroupEmits>()
const delegatedProps = computed(() => {
const { class: _, ...delegated } = props
return delegated
})
const forwarded = useForwardPropsEmits(delegatedProps, emits)
</script>
<template>
<SplitterGroup v-bind="forwarded" :class="cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', props.class)">
<slot />
</SplitterGroup>
</template>

View File

@ -0,0 +1,3 @@
export { default as ResizablePanelGroup } from './ResizablePanelGroup.vue'
export { default as ResizableHandle } from './ResizableHandle.vue'
export { SplitterPanel as ResizablePanel } from 'radix-vue'

View File

@ -0,0 +1,36 @@
<script setup lang="ts">
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from '@/lib/registry/new-york/ui/resizable'
</script>
<template>
<ResizablePanelGroup
direction="horizontal"
class="max-w-md rounded-lg border"
>
<ResizablePanel :default-size="50">
<div class="flex h-[200px] items-center justify-center p-6">
<span class="font-semibold">One</span>
</div>
</ResizablePanel>
<ResizableHandle />
<ResizablePanel :default-size="50">
<ResizablePanelGroup direction="vertical">
<ResizablePanel :default-size="25">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Two</span>
</div>
</ResizablePanel>
<ResizableHandle />
<ResizablePanel :default-size="75">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Three</span>
</div>
</ResizablePanel>
</ResizablePanelGroup>
</ResizablePanel>
</ResizablePanelGroup>
</template>

View File

@ -0,0 +1,26 @@
<script setup lang="ts">
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from '@/lib/registry/new-york/ui/resizable'
</script>
<template>
<ResizablePanelGroup
direction="horizontal"
class="min-h-[200px] max-w-md rounded-lg border"
>
<ResizablePanel :default-size="25">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Sidebar</span>
</div>
</ResizablePanel>
<ResizableHandle with-handle />
<ResizablePanel :default-size="75">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Content</span>
</div>
</ResizablePanel>
</ResizablePanelGroup>
</template>

View File

@ -0,0 +1,26 @@
<script setup lang="ts">
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from '@/lib/registry/new-york/ui/resizable'
</script>
<template>
<ResizablePanelGroup
direction="vertical"
class="min-h-[200px] max-w-md rounded-lg border"
>
<ResizablePanel :default-size="25">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Header</span>
</div>
</ResizablePanel>
<ResizableHandle />
<ResizablePanel :default-size="75">
<div class="flex h-full items-center justify-center p-6">
<span class="font-semibold">Content</span>
</div>
</ResizablePanel>
</ResizablePanelGroup>
</template>

View File

@ -0,0 +1,26 @@
<script setup lang="ts">
import { type HTMLAttributes, computed } from 'vue'
import { SplitterResizeHandle, type SplitterResizeHandleEmits, type SplitterResizeHandleProps, useForwardPropsEmits } from 'radix-vue'
import { DragHandleDots2Icon } from '@radix-icons/vue'
import { cn } from '@/lib/utils'
const props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes['class'], withHandle?: boolean }>()
const emits = defineEmits<SplitterResizeHandleEmits>()
const delegatedProps = computed(() => {
const { class: _, ...delegated } = props
return delegated
})
const forwarded = useForwardPropsEmits(delegatedProps, emits)
</script>
<template>
<SplitterResizeHandle v-bind="forwarded" :class="cn('relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)">
<template v-if="props.withHandle">
<div class="z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border">
<DragHandleDots2Icon class="h-2.5 w-2.5" />
</div>
</template>
</SplitterResizeHandle>
</template>

View File

@ -0,0 +1,21 @@
<script setup lang="ts">
import { type HTMLAttributes, computed } from 'vue'
import { SplitterGroup, type SplitterGroupEmits, type SplitterGroupProps, useForwardPropsEmits } from 'radix-vue'
import { cn } from '@/lib/utils'
const props = defineProps<SplitterGroupProps & { class?: HTMLAttributes['class'] }>()
const emits = defineEmits<SplitterGroupEmits>()
const delegatedProps = computed(() => {
const { class: _, ...delegated } = props
return delegated
})
const forwarded = useForwardPropsEmits(delegatedProps, emits)
</script>
<template>
<SplitterGroup v-bind="forwarded" :class="cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', props.class)">
<slot />
</SplitterGroup>
</template>

View File

@ -0,0 +1,3 @@
export { default as ResizablePanelGroup } from './ResizablePanelGroup.vue'
export { default as ResizableHandle } from './ResizableHandle.vue'
export { SplitterPanel as ResizablePanel } from 'radix-vue'

View File

@ -463,6 +463,19 @@
], ],
"type": "components:ui" "type": "components:ui"
}, },
{
"name": "resizable",
"dependencies": [],
"registryDependencies": [
"utils"
],
"files": [
"ui/resizable/ResizableHandle.vue",
"ui/resizable/ResizablePanelGroup.vue",
"ui/resizable/index.ts"
],
"type": "components:ui"
},
{ {
"name": "scroll-area", "name": "scroll-area",
"dependencies": [], "dependencies": [],

View File

@ -0,0 +1,22 @@
{
"name": "resizable",
"dependencies": [],
"registryDependencies": [
"utils"
],
"files": [
{
"name": "ResizableHandle.vue",
"content": "<script setup lang=\"ts\">\nimport { type HTMLAttributes, computed } from 'vue'\nimport { SplitterResizeHandle, type SplitterResizeHandleEmits, type SplitterResizeHandleProps, useForwardPropsEmits } from 'radix-vue'\nimport { GripVertical } from 'lucide-vue-next'\nimport { cn } from '@/lib/utils'\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes['class'], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = computed(() => {\n const { class: _, ...delegated } = props\n return delegated\n})\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)\">\n <template v-if=\"props.withHandle\">\n <div class=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical class=\"h-2.5 w-2.5\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n"
},
{
"name": "ResizablePanelGroup.vue",
"content": "<script setup lang=\"ts\">\nimport { type HTMLAttributes, computed } from 'vue'\nimport { SplitterGroup, type SplitterGroupEmits, type SplitterGroupProps, useForwardPropsEmits } from 'radix-vue'\nimport { cn } from '@/lib/utils'\n\nconst props = defineProps<SplitterGroupProps & { class?: HTMLAttributes['class'] }>()\nconst emits = defineEmits<SplitterGroupEmits>()\n\nconst delegatedProps = computed(() => {\n const { class: _, ...delegated } = props\n return delegated\n})\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterGroup v-bind=\"forwarded\" :class=\"cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', props.class)\">\n <slot />\n </SplitterGroup>\n</template>\n"
},
{
"name": "index.ts",
"content": "export { default as ResizablePanelGroup } from './ResizablePanelGroup.vue'\nexport { default as ResizableHandle } from './ResizableHandle.vue'\nexport { SplitterPanel as ResizablePanel } from 'radix-vue'\n"
}
],
"type": "components:ui"
}

View File

@ -0,0 +1,22 @@
{
"name": "resizable",
"dependencies": [],
"registryDependencies": [
"utils"
],
"files": [
{
"name": "ResizableHandle.vue",
"content": "<script setup lang=\"ts\">\nimport { type HTMLAttributes, computed } from 'vue'\nimport { SplitterResizeHandle, type SplitterResizeHandleEmits, type SplitterResizeHandleProps, useForwardPropsEmits } from 'radix-vue'\nimport { DragHandleDots2Icon } from '@radix-icons/vue'\nimport { cn } from '@/lib/utils'\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes['class'], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = computed(() => {\n const { class: _, ...delegated } = props\n return delegated\n})\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)\">\n <template v-if=\"props.withHandle\">\n <div class=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <DragHandleDots2Icon class=\"h-2.5 w-2.5\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n"
},
{
"name": "ResizablePanelGroup.vue",
"content": "<script setup lang=\"ts\">\nimport { type HTMLAttributes, computed } from 'vue'\nimport { SplitterGroup, type SplitterGroupEmits, type SplitterGroupProps, useForwardPropsEmits } from 'radix-vue'\nimport { cn } from '@/lib/utils'\n\nconst props = defineProps<SplitterGroupProps & { class?: HTMLAttributes['class'] }>()\nconst emits = defineEmits<SplitterGroupEmits>()\n\nconst delegatedProps = computed(() => {\n const { class: _, ...delegated } = props\n return delegated\n})\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterGroup v-bind=\"forwarded\" :class=\"cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', props.class)\">\n <slot />\n </SplitterGroup>\n</template>\n"
},
{
"name": "index.ts",
"content": "export { default as ResizablePanelGroup } from './ResizablePanelGroup.vue'\nexport { default as ResizableHandle } from './ResizableHandle.vue'\nexport { SplitterPanel as ResizablePanel } from 'radix-vue'\n"
}
],
"type": "components:ui"
}

View File

@ -90,8 +90,8 @@ importers:
specifier: ^0.276.0 specifier: ^0.276.0
version: 0.276.0(vue@3.4.21) version: 0.276.0(vue@3.4.21)
radix-vue: radix-vue:
specifier: ^1.4.9 specifier: ^1.5.0
version: 1.4.9(vue@3.4.21) version: 1.5.0(vue@3.4.21)
tailwindcss-animate: tailwindcss-animate:
specifier: ^1.0.7 specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.4.1) version: 1.0.7(tailwindcss@3.4.1)
@ -118,14 +118,14 @@ importers:
version: 3.22.4 version: 3.22.4
devDependencies: devDependencies:
'@iconify-json/radix-icons': '@iconify-json/radix-icons':
specifier: ^1.1.11 specifier: ^1.1.14
version: 1.1.14 version: 1.1.14
'@iconify-json/tabler': '@iconify-json/tabler':
specifier: ^1.1.89 specifier: ^1.1.106
version: 1.1.105 version: 1.1.106
'@iconify/json': '@iconify/json':
specifier: ^2.2.108 specifier: ^2.2.189
version: 2.2.179 version: 2.2.189
'@iconify/vue': '@iconify/vue':
specifier: ^4.1.1 specifier: ^4.1.1
version: 4.1.1(vue@3.4.21) version: 4.1.1(vue@3.4.21)
@ -140,10 +140,10 @@ importers:
version: 20.11.24 version: 20.11.24
'@vitejs/plugin-vue': '@vitejs/plugin-vue':
specifier: ^5.0.4 specifier: ^5.0.4
version: 5.0.4(vite@5.1.4)(vue@3.4.21) version: 5.0.4(vite@5.1.5)(vue@3.4.21)
'@vitejs/plugin-vue-jsx': '@vitejs/plugin-vue-jsx':
specifier: ^3.1.0 specifier: ^3.1.0
version: 3.1.0(vite@5.1.4)(vue@3.4.21) version: 3.1.0(vite@5.1.5)(vue@3.4.21)
'@vue/compiler-core': '@vue/compiler-core':
specifier: ^3.4.21 specifier: ^3.4.21
version: 3.4.21 version: 3.4.21
@ -160,8 +160,8 @@ importers:
specifier: ^4.5.0 specifier: ^4.5.0
version: 4.5.0 version: 4.5.0
oxc-parser: oxc-parser:
specifier: ^0.7.0 specifier: ^0.8.0
version: 0.7.0 version: 0.8.0
pathe: pathe:
specifier: ^1.1.2 specifier: ^1.1.2
version: 1.1.2 version: 1.1.2
@ -187,14 +187,14 @@ importers:
specifier: ^0.18.5 specifier: ^0.18.5
version: 0.18.5(@vue/compiler-sfc@3.4.21) version: 0.18.5(@vue/compiler-sfc@3.4.21)
vite: vite:
specifier: ^5.1.4 specifier: ^5.1.5
version: 5.1.4(@types/node@20.11.24) version: 5.1.5(@types/node@20.11.24)
vitepress: vitepress:
specifier: ^1.0.0-rc.44 specifier: ^1.0.0-rc.44
version: 1.0.0-rc.44(@algolia/client-search@4.22.1)(@types/node@20.11.24)(postcss@8.4.35)(search-insights@2.13.0)(typescript@5.3.3) version: 1.0.0-rc.44(@algolia/client-search@4.22.1)(@types/node@20.11.24)(postcss@8.4.35)(search-insights@2.13.0)(typescript@5.3.3)
vue-tsc: vue-tsc:
specifier: ^2.0.3 specifier: ^2.0.5
version: 2.0.3(typescript@5.3.3) version: 2.0.5(typescript@5.3.3)
packages/cli: packages/cli:
dependencies: dependencies:
@ -307,7 +307,7 @@ importers:
devDependencies: devDependencies:
'@nuxt/devtools': '@nuxt/devtools':
specifier: latest specifier: latest
version: 1.0.8(nuxt@3.10.3)(rollup@3.29.4)(vite@5.1.4) version: 1.0.8(nuxt@3.10.3)(rollup@3.29.4)(vite@5.1.5)
'@nuxt/eslint-config': '@nuxt/eslint-config':
specifier: ^0.2.0 specifier: ^0.2.0
version: 0.2.0(eslint@8.57.0) version: 0.2.0(eslint@8.57.0)
@ -319,13 +319,13 @@ importers:
version: 3.10.3(rollup@3.29.4) version: 3.10.3(rollup@3.29.4)
'@nuxt/test-utils': '@nuxt/test-utils':
specifier: ^3.11.0 specifier: ^3.11.0
version: 3.11.0(h3@1.11.1)(rollup@3.29.4)(vite@5.1.4)(vitest@0.33.0)(vue-router@4.3.0)(vue@3.4.21) version: 3.11.0(h3@1.11.1)(rollup@3.29.4)(vite@5.1.5)(vitest@0.33.0)(vue-router@4.3.0)(vue@3.4.21)
'@types/node': '@types/node':
specifier: ^20.11.24 specifier: ^20.11.24
version: 20.11.24 version: 20.11.24
nuxt: nuxt:
specifier: ^3.10.3 specifier: ^3.10.3
version: 3.10.3(@types/node@20.11.24)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.1.4) version: 3.10.3(@types/node@20.11.24)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.1.5)
vitest: vitest:
specifier: ^0.33.0 specifier: ^0.33.0
version: 0.33.0 version: 0.33.0
@ -2093,14 +2093,14 @@ packages:
'@iconify/types': 2.0.0 '@iconify/types': 2.0.0
dev: true dev: true
/@iconify-json/tabler@1.1.105: /@iconify-json/tabler@1.1.106:
resolution: {integrity: sha512-USJbNfa0fAHBLilxTKn70wkvFnopmfcomfpqD0ul/69uyZnonztHhyrbM8MI9Ua4eYXaPymoB7tuZ+Ionx6xfg==} resolution: {integrity: sha512-TcGGQ2nDhb2OmKsMPk3SuNxf259Rjirbvkz3gX1C8fexJmSWqR8AsH98/VMbK7VVYb2L2FIfX3QJxKpJvXEryw==}
dependencies: dependencies:
'@iconify/types': 2.0.0 '@iconify/types': 2.0.0
dev: true dev: true
/@iconify/json@2.2.179: /@iconify/json@2.2.189:
resolution: {integrity: sha512-PcbNPyNmd8NdyY8ad71v3xIv3G4WemRkK+nu64YUJlXBiU/6VMvI73ggP84VexV07pPnwoazBSZ6DdKH3F45aA==} resolution: {integrity: sha512-q0DxpGQuQhtoNXELlHKbkxTSOjuzf/3Qaqq5uuJ/dM62XH1GUUxlXsgH/Moh/CEcs3evzWFp2mjIQifZmihQTA==}
dependencies: dependencies:
'@iconify/types': 2.0.0 '@iconify/types': 2.0.0
pathe: 1.1.2 pathe: 1.1.2
@ -2133,6 +2133,12 @@ packages:
vue: 3.4.21(typescript@5.3.3) vue: 3.4.21(typescript@5.3.3)
dev: true dev: true
/@internationalized/date@3.5.2:
resolution: {integrity: sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==}
dependencies:
'@swc/helpers': 0.5.6
dev: false
/@ioredis/commands@1.2.0: /@ioredis/commands@1.2.0:
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
dev: true dev: true
@ -2429,7 +2435,7 @@ packages:
resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==}
dev: true dev: true
/@nuxt/devtools-kit@1.0.8(nuxt@3.10.3)(rollup@3.29.4)(vite@5.1.4): /@nuxt/devtools-kit@1.0.8(nuxt@3.10.3)(rollup@3.29.4)(vite@5.1.5):
resolution: {integrity: sha512-j7bNZmoAXQ1a8qv6j6zk4c/aekrxYqYVQM21o/Hy4XHCUq4fajSgpoc8mjyWJSTfpkOmuLyEzMexpDWiIVSr6A==} resolution: {integrity: sha512-j7bNZmoAXQ1a8qv6j6zk4c/aekrxYqYVQM21o/Hy4XHCUq4fajSgpoc8mjyWJSTfpkOmuLyEzMexpDWiIVSr6A==}
peerDependencies: peerDependencies:
nuxt: ^3.9.0 nuxt: ^3.9.0
@ -2438,8 +2444,8 @@ packages:
'@nuxt/kit': 3.10.3(rollup@3.29.4) '@nuxt/kit': 3.10.3(rollup@3.29.4)
'@nuxt/schema': 3.10.3(rollup@3.29.4) '@nuxt/schema': 3.10.3(rollup@3.29.4)
execa: 7.2.0 execa: 7.2.0
nuxt: 3.10.3(@types/node@20.11.24)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.1.4) nuxt: 3.10.3(@types/node@20.11.24)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.1.5)
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- supports-color - supports-color
@ -2461,7 +2467,7 @@ packages:
semver: 7.6.0 semver: 7.6.0
dev: true dev: true
/@nuxt/devtools@1.0.8(nuxt@3.10.3)(rollup@3.29.4)(vite@5.1.4): /@nuxt/devtools@1.0.8(nuxt@3.10.3)(rollup@3.29.4)(vite@5.1.5):
resolution: {integrity: sha512-o6aBFEBxc8OgVHV4OPe2g0q9tFIe9HiTxRiJnlTJ+jHvOQsBLS651ArdVtwLChf9UdMouFlpLLJ1HteZqTbtsQ==} resolution: {integrity: sha512-o6aBFEBxc8OgVHV4OPe2g0q9tFIe9HiTxRiJnlTJ+jHvOQsBLS651ArdVtwLChf9UdMouFlpLLJ1HteZqTbtsQ==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -2469,7 +2475,7 @@ packages:
vite: '*' vite: '*'
dependencies: dependencies:
'@antfu/utils': 0.7.7 '@antfu/utils': 0.7.7
'@nuxt/devtools-kit': 1.0.8(nuxt@3.10.3)(rollup@3.29.4)(vite@5.1.4) '@nuxt/devtools-kit': 1.0.8(nuxt@3.10.3)(rollup@3.29.4)(vite@5.1.5)
'@nuxt/devtools-wizard': 1.0.8 '@nuxt/devtools-wizard': 1.0.8
'@nuxt/kit': 3.10.3(rollup@3.29.4) '@nuxt/kit': 3.10.3(rollup@3.29.4)
birpc: 0.2.15 birpc: 0.2.15
@ -2486,7 +2492,7 @@ packages:
launch-editor: 2.6.1 launch-editor: 2.6.1
local-pkg: 0.5.0 local-pkg: 0.5.0
magicast: 0.3.3 magicast: 0.3.3
nuxt: 3.10.3(@types/node@20.11.24)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.1.4) nuxt: 3.10.3(@types/node@20.11.24)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.1.5)
nypm: 0.3.8 nypm: 0.3.8
ohash: 1.1.3 ohash: 1.1.3
pacote: 17.0.6 pacote: 17.0.6
@ -2499,9 +2505,9 @@ packages:
simple-git: 3.22.0 simple-git: 3.22.0
sirv: 2.0.4 sirv: 2.0.4
unimport: 3.7.1(rollup@3.29.4) unimport: 3.7.1(rollup@3.29.4)
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
vite-plugin-inspect: 0.8.3(@nuxt/kit@3.10.3)(rollup@3.29.4)(vite@5.1.4) vite-plugin-inspect: 0.8.3(@nuxt/kit@3.10.3)(rollup@3.29.4)(vite@5.1.5)
vite-plugin-vue-inspector: 4.0.2(vite@5.1.4) vite-plugin-vue-inspector: 4.0.2(vite@5.1.5)
which: 3.0.1 which: 3.0.1
ws: 8.16.0 ws: 8.16.0
transitivePeerDependencies: transitivePeerDependencies:
@ -2618,7 +2624,7 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@nuxt/test-utils@3.11.0(h3@1.11.1)(rollup@3.29.4)(vite@5.1.4)(vitest@0.33.0)(vue-router@4.3.0)(vue@3.4.21): /@nuxt/test-utils@3.11.0(h3@1.11.1)(rollup@3.29.4)(vite@5.1.5)(vitest@0.33.0)(vue-router@4.3.0)(vue@3.4.21):
resolution: {integrity: sha512-9ovgpQZkZpVg/MhYVVn2169WjH/IL0XUqwGryTa/lkx0/BCi1LMVEp3HTPkmt4qbRcxitO+kL4vFqqrFGVaSVg==} resolution: {integrity: sha512-9ovgpQZkZpVg/MhYVVn2169WjH/IL0XUqwGryTa/lkx0/BCi1LMVEp3HTPkmt4qbRcxitO+kL4vFqqrFGVaSVg==}
engines: {node: ^14.18.0 || >=16.10.0} engines: {node: ^14.18.0 || >=16.10.0}
peerDependencies: peerDependencies:
@ -2678,9 +2684,9 @@ packages:
ufo: 1.3.2 ufo: 1.3.2
unenv: 1.9.0 unenv: 1.9.0
unplugin: 1.6.0 unplugin: 1.6.0
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
vitest: 0.33.0 vitest: 0.33.0
vitest-environment-nuxt: 1.0.0(h3@1.11.1)(rollup@3.29.4)(vite@5.1.4)(vitest@0.33.0)(vue-router@4.3.0)(vue@3.4.21) vitest-environment-nuxt: 1.0.0(h3@1.11.1)(rollup@3.29.4)(vite@5.1.5)(vitest@0.33.0)(vue-router@4.3.0)(vue@3.4.21)
vue: 3.4.21(typescript@5.3.3) vue: 3.4.21(typescript@5.3.3)
vue-router: 4.3.0(vue@3.4.21) vue-router: 4.3.0(vue@3.4.21)
transitivePeerDependencies: transitivePeerDependencies:
@ -2699,8 +2705,8 @@ packages:
dependencies: dependencies:
'@nuxt/kit': 3.10.3(rollup@3.29.4) '@nuxt/kit': 3.10.3(rollup@3.29.4)
'@rollup/plugin-replace': 5.0.5(rollup@3.29.4) '@rollup/plugin-replace': 5.0.5(rollup@3.29.4)
'@vitejs/plugin-vue': 5.0.4(vite@5.1.4)(vue@3.4.21) '@vitejs/plugin-vue': 5.0.4(vite@5.1.5)(vue@3.4.21)
'@vitejs/plugin-vue-jsx': 3.1.0(vite@5.1.4)(vue@3.4.21) '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.1.5)(vue@3.4.21)
autoprefixer: 10.4.18(postcss@8.4.35) autoprefixer: 10.4.18(postcss@8.4.35)
clear: 0.1.0 clear: 0.1.0
consola: 3.2.3 consola: 3.2.3
@ -2727,9 +2733,9 @@ packages:
ufo: 1.4.0 ufo: 1.4.0
unenv: 1.9.0 unenv: 1.9.0
unplugin: 1.8.0 unplugin: 1.8.0
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
vite-node: 1.3.1(@types/node@20.11.24) vite-node: 1.3.1(@types/node@20.11.24)
vite-plugin-checker: 0.6.4(eslint@8.57.0)(typescript@5.3.3)(vite@5.1.4) vite-plugin-checker: 0.6.4(eslint@8.57.0)(typescript@5.3.3)(vite@5.1.5)
vue: 3.4.21(typescript@5.3.3) vue: 3.4.21(typescript@5.3.3)
vue-bundle-renderer: 2.0.0 vue-bundle-renderer: 2.0.0
transitivePeerDependencies: transitivePeerDependencies:
@ -2758,6 +2764,15 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@oxc-parser/binding-darwin-arm64@0.8.0:
resolution: {integrity: sha512-3Dws5Wzj9efojjqvhS4ZF+Abh0EoiI5ciOE2kdLifMzSg4fnmYAIOktoUnPEo87TNIb4SiFJ5JgPBgEyq42Eow==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true optional: true
/@oxc-parser/binding-darwin-x64@0.7.0: /@oxc-parser/binding-darwin-x64@0.7.0:
@ -2765,6 +2780,15 @@ packages:
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@oxc-parser/binding-darwin-x64@0.8.0:
resolution: {integrity: sha512-DAUJ/mfq0Jn2VDYn69bhHTsIWj+aZ/viamexFwaLL7ntkIFmGpzAJZUlWofpY1IRJynKWW+P5AOLYXMllw4qUw==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true optional: true
/@oxc-parser/binding-linux-arm64-gnu@0.7.0: /@oxc-parser/binding-linux-arm64-gnu@0.7.0:
@ -2772,6 +2796,15 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@oxc-parser/binding-linux-arm64-gnu@0.8.0:
resolution: {integrity: sha512-ZHQVey/O4K3zTIKtpfsbtJIE8MPTRHRxgY3dejaoeFQGf9C3HasgF132Yp4zN/jOUx+x8czKPVa/Af40ViyhGQ==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true optional: true
/@oxc-parser/binding-linux-arm64-musl@0.7.0: /@oxc-parser/binding-linux-arm64-musl@0.7.0:
@ -2779,6 +2812,15 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@oxc-parser/binding-linux-arm64-musl@0.8.0:
resolution: {integrity: sha512-Diw+Tnf5v+zAYXzDoSKCZsMaroU6GoqZMS7smfDtFnZYTHWZrsTmPBLUQe7AFiG7O7tkhsCdcWjOYgbVkrSVOA==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true optional: true
/@oxc-parser/binding-linux-x64-gnu@0.7.0: /@oxc-parser/binding-linux-x64-gnu@0.7.0:
@ -2786,6 +2828,15 @@ packages:
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@oxc-parser/binding-linux-x64-gnu@0.8.0:
resolution: {integrity: sha512-WloqcRrtQUVEP/Sy8ZeEgF0HgBKQjOv3zLFZqbC5ipkerKriGcVbsq3fOIMOi/55AM6/UhIAjeZGnoeco72JjQ==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true optional: true
/@oxc-parser/binding-linux-x64-musl@0.7.0: /@oxc-parser/binding-linux-x64-musl@0.7.0:
@ -2793,6 +2844,15 @@ packages:
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@oxc-parser/binding-linux-x64-musl@0.8.0:
resolution: {integrity: sha512-2j7BD9szwSXTvSj0Q8VE98UHGYvrgZzdLy4EyB0FilhQnopEfz+YV674rWGY2Il1VYxHJwGctrTJHvARolu37g==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true optional: true
/@oxc-parser/binding-win32-arm64-msvc@0.7.0: /@oxc-parser/binding-win32-arm64-msvc@0.7.0:
@ -2800,6 +2860,15 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@oxc-parser/binding-win32-arm64-msvc@0.8.0:
resolution: {integrity: sha512-mcomr1og17yCmnwn8Q7CRzrH9Va0HccWe4Ld3/u/elBsw0SEzYGVvECRzCyRglYAbKTtusz7as9Jee0RiMOMmg==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true optional: true
/@oxc-parser/binding-win32-x64-msvc@0.7.0: /@oxc-parser/binding-win32-x64-msvc@0.7.0:
@ -2807,6 +2876,15 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@oxc-parser/binding-win32-x64-msvc@0.8.0:
resolution: {integrity: sha512-nIBkc1KZOVYUaHT3+U+gM354P3byMAIXMvlmLMbs0kWVRcI4vrzL8qwWpC6QdBQxWKZGqPEqGolv8H4dDYA9nQ==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true optional: true
/@parcel/watcher-android-arm64@2.4.0: /@parcel/watcher-android-arm64@2.4.0:
@ -3455,6 +3533,12 @@ packages:
- typescript - typescript
dev: true dev: true
/@swc/helpers@0.5.6:
resolution: {integrity: sha512-aYX01Ke9hunpoCexYAgQucEpARGQ5w/cqHFrIR+e9gdKb1QWTsVJuTJ2ozQzIAxLyRQe/m+2RqzkyOOGiMKRQA==}
dependencies:
tslib: 2.6.2
dev: false
/@tanstack/table-core@8.13.2: /@tanstack/table-core@8.13.2:
resolution: {integrity: sha512-/2saD1lWBUV6/uNAwrsg2tw58uvMJ07bO2F1IWMxjFRkJiXKQRuc3Oq2aufeobD3873+4oIM/DRySIw7+QsPPw==} resolution: {integrity: sha512-/2saD1lWBUV6/uNAwrsg2tw58uvMJ07bO2F1IWMxjFRkJiXKQRuc3Oq2aufeobD3873+4oIM/DRySIw7+QsPPw==}
engines: {node: '>=12'} engines: {node: '>=12'}
@ -4400,7 +4484,7 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.4)(vue@3.4.21): /@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.5)(vue@3.4.21):
resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies: peerDependencies:
@ -4410,20 +4494,20 @@ packages:
'@babel/core': 7.23.9 '@babel/core': 7.23.9
'@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9) '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9)
'@vue/babel-plugin-jsx': 1.2.1(@babel/core@7.23.9) '@vue/babel-plugin-jsx': 1.2.1(@babel/core@7.23.9)
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
vue: 3.4.21(typescript@5.3.3) vue: 3.4.21(typescript@5.3.3)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.21): /@vitejs/plugin-vue@5.0.4(vite@5.1.5)(vue@3.4.21):
resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies: peerDependencies:
vite: ^5.0.0 vite: ^5.0.0
vue: ^3.2.25 vue: ^3.2.25
dependencies: dependencies:
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
vue: 3.4.21(typescript@5.3.3) vue: 3.4.21(typescript@5.3.3)
dev: true dev: true
@ -4526,22 +4610,22 @@ packages:
pretty-format: 29.7.0 pretty-format: 29.7.0
dev: true dev: true
/@volar/language-core@2.1.0: /@volar/language-core@2.1.1:
resolution: {integrity: sha512-BrYEgYHx92ocpt1OUxJs2x3TAXEjpPLxsQoARb96g2GdF62xnfRQUqCNBwiU7Z3MQ/0tOAdqdHNYNmrFtx6q4A==} resolution: {integrity: sha512-oVbZcj97+5zlowkHMSJMt3aaAFuFyhXeXoOEHcqGECxFvw1TPCNnMM9vxhqNpoiNeWKHvggoq9WCk/HzJHtP8A==}
dependencies: dependencies:
'@volar/source-map': 2.1.0 '@volar/source-map': 2.1.1
dev: true dev: true
/@volar/source-map@2.1.0: /@volar/source-map@2.1.1:
resolution: {integrity: sha512-VPyi+DTv67cvUOkUewzsOQJY3VUhjOjQxigT487z/H7tEI8ZFd5RksC5afk3JelOK+a/3Y8LRDbKmYKu1dz87g==} resolution: {integrity: sha512-OOtxrEWB2eZ+tnCy5JwDkcCPGlN3+ioNNzkywXE9k4XA7p4cN36frR7QPAOksvd7RXKUGHzSjq6XrYnTPa4z4Q==}
dependencies: dependencies:
muggle-string: 0.4.1 muggle-string: 0.4.1
dev: true dev: true
/@volar/typescript@2.1.0: /@volar/typescript@2.1.1:
resolution: {integrity: sha512-2cicVoW4q6eU/omqfOBv+6r9JdrF5bBelujbJhayPNKiOj/xwotSJ/DM8IeMvTZvtkOZkm6suyOCLEokLY0w2w==} resolution: {integrity: sha512-5K41AWvFZCMMKZCx8bbFvbkyiKHr0s9k8P0M1FVXLX/9HYHzK5C9B8cX4uhATSehAytFIRnR4fTXVQtWp/Yzag==}
dependencies: dependencies:
'@volar/language-core': 2.1.0 '@volar/language-core': 2.1.1
path-browserify: 1.0.1 path-browserify: 1.0.1
dev: true dev: true
@ -4741,15 +4825,15 @@ packages:
rfdc: 1.3.1 rfdc: 1.3.1
dev: true dev: true
/@vue/language-core@2.0.3(typescript@5.3.3): /@vue/language-core@2.0.5(typescript@5.3.3):
resolution: {integrity: sha512-hnVF/Q3cD2v+EFD4pD1YdITGBcdM38P18SYqilVQDezKw5RobWny4BwIckWGS1fJmUstsO9mTX30ZOyzyR2Q+Q==} resolution: {integrity: sha512-knGXuQqhDSO7QJr8LFklsiWa23N2ikehkdVxtc9UKgnyqsnusughS2Tkg7VN8Hqed35X0B52Z+OGI5OrT/8uxQ==}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@volar/language-core': 2.1.0 '@volar/language-core': 2.1.1
'@vue/compiler-dom': 3.4.21 '@vue/compiler-dom': 3.4.21
'@vue/shared': 3.4.21 '@vue/shared': 3.4.21
computeds: 0.0.1 computeds: 0.0.1
@ -9592,6 +9676,12 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/nanoid@5.0.6:
resolution: {integrity: sha512-rRq0eMHoGZxlvaFOUdK1Ev83Bd1IgzzR+WJ3IbDJ7QOSdAxYjlurSPqFs9s4lJg29RT6nPwizFtJhQS6V5xgiA==}
engines: {node: ^18 || >=20}
hasBin: true
dev: false
/napi-wasm@1.1.0: /napi-wasm@1.1.0:
resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==}
dev: true dev: true
@ -9926,7 +10016,7 @@ packages:
fsevents: 2.3.3 fsevents: 2.3.3
dev: true dev: true
/nuxt@3.10.3(@types/node@20.11.24)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.1.4): /nuxt@3.10.3(@types/node@20.11.24)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.1.5):
resolution: {integrity: sha512-NchGNiiz9g/ErJAb462W/lpX2NqcXYb9hugySKWvLXNdrjeAPiJ2/7mhgwUSiZA9MpjuQg3saiEajr1zlRIOCg==} resolution: {integrity: sha512-NchGNiiz9g/ErJAb462W/lpX2NqcXYb9hugySKWvLXNdrjeAPiJ2/7mhgwUSiZA9MpjuQg3saiEajr1zlRIOCg==}
engines: {node: ^14.18.0 || >=16.10.0} engines: {node: ^14.18.0 || >=16.10.0}
hasBin: true hasBin: true
@ -9940,7 +10030,7 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@nuxt/devalue': 2.0.2 '@nuxt/devalue': 2.0.2
'@nuxt/devtools': 1.0.8(nuxt@3.10.3)(rollup@3.29.4)(vite@5.1.4) '@nuxt/devtools': 1.0.8(nuxt@3.10.3)(rollup@3.29.4)(vite@5.1.5)
'@nuxt/kit': 3.10.3(rollup@3.29.4) '@nuxt/kit': 3.10.3(rollup@3.29.4)
'@nuxt/schema': 3.10.3(rollup@3.29.4) '@nuxt/schema': 3.10.3(rollup@3.29.4)
'@nuxt/telemetry': 2.5.3(rollup@3.29.4) '@nuxt/telemetry': 2.5.3(rollup@3.29.4)
@ -10196,6 +10286,20 @@ packages:
'@oxc-parser/binding-linux-x64-musl': 0.7.0 '@oxc-parser/binding-linux-x64-musl': 0.7.0
'@oxc-parser/binding-win32-arm64-msvc': 0.7.0 '@oxc-parser/binding-win32-arm64-msvc': 0.7.0
'@oxc-parser/binding-win32-x64-msvc': 0.7.0 '@oxc-parser/binding-win32-x64-msvc': 0.7.0
dev: false
/oxc-parser@0.8.0:
resolution: {integrity: sha512-ObPeMkbDX7igb7NyyAC8CbVC3fY+YmlMsxsRQ2oyFBkpQtI5tjoyqSDKbS9A9EcJvt2q89C4UoC+HjVBdLYYJg==}
optionalDependencies:
'@oxc-parser/binding-darwin-arm64': 0.8.0
'@oxc-parser/binding-darwin-x64': 0.8.0
'@oxc-parser/binding-linux-arm64-gnu': 0.8.0
'@oxc-parser/binding-linux-arm64-musl': 0.8.0
'@oxc-parser/binding-linux-x64-gnu': 0.8.0
'@oxc-parser/binding-linux-x64-musl': 0.8.0
'@oxc-parser/binding-win32-arm64-msvc': 0.8.0
'@oxc-parser/binding-win32-x64-msvc': 0.8.0
dev: true
/p-finally@1.0.0: /p-finally@1.0.0:
resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
@ -11040,6 +11144,19 @@ packages:
- vue - vue
dev: false dev: false
/radix-vue@1.5.0(vue@3.4.21):
resolution: {integrity: sha512-kjWp5D+UyJCylwnVhPgJMhf4/7Sc4PxJ0Mdn2Mlr3BkO2VYDNQ6WwiI241IgmVMdRTY7uB9fpdt0HaMUMX6N6w==}
dependencies:
'@floating-ui/dom': 1.6.1
'@floating-ui/vue': 1.0.6(vue@3.4.21)
'@internationalized/date': 3.5.2
fast-deep-equal: 3.1.3
nanoid: 5.0.6
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: false
/radix3@1.1.0: /radix3@1.1.0:
resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==}
dev: true dev: true
@ -12908,7 +13025,7 @@ packages:
resolution: {integrity: sha512-3PYWMbN3cSdsciv3fzewskxZFnX61PYq1uNsbvizXDo/8sN4SMrWkYDqWaPdTD3GTEm6wpx7j5flRLg7A5ZXbQ==} resolution: {integrity: sha512-3PYWMbN3cSdsciv3fzewskxZFnX61PYq1uNsbvizXDo/8sN4SMrWkYDqWaPdTD3GTEm6wpx7j5flRLg7A5ZXbQ==}
dependencies: dependencies:
'@vueuse/core': 10.9.0(vue@3.4.21) '@vueuse/core': 10.9.0(vue@3.4.21)
radix-vue: 1.4.9(vue@3.4.21) radix-vue: 1.5.0(vue@3.4.21)
vue: 3.4.21(typescript@5.3.3) vue: 3.4.21(typescript@5.3.3)
transitivePeerDependencies: transitivePeerDependencies:
- '@vue/composition-api' - '@vue/composition-api'
@ -12957,7 +13074,7 @@ packages:
mlly: 1.6.1 mlly: 1.6.1
pathe: 1.1.2 pathe: 1.1.2
picocolors: 1.0.0 picocolors: 1.0.0
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- less - less
@ -12978,7 +13095,7 @@ packages:
debug: 4.3.4 debug: 4.3.4
pathe: 1.1.2 pathe: 1.1.2
picocolors: 1.0.0 picocolors: 1.0.0
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- less - less
@ -12990,7 +13107,7 @@ packages:
- terser - terser
dev: true dev: true
/vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.3.3)(vite@5.1.4): /vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.3.3)(vite@5.1.5):
resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==}
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
peerDependencies: peerDependencies:
@ -13034,14 +13151,14 @@ packages:
strip-ansi: 6.0.1 strip-ansi: 6.0.1
tiny-invariant: 1.3.1 tiny-invariant: 1.3.1
typescript: 5.3.3 typescript: 5.3.3
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
vscode-languageclient: 7.0.0 vscode-languageclient: 7.0.0
vscode-languageserver: 7.0.0 vscode-languageserver: 7.0.0
vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-textdocument: 1.0.11
vscode-uri: 3.0.8 vscode-uri: 3.0.8
dev: true dev: true
/vite-plugin-inspect@0.8.3(@nuxt/kit@3.10.3)(rollup@3.29.4)(vite@5.1.4): /vite-plugin-inspect@0.8.3(@nuxt/kit@3.10.3)(rollup@3.29.4)(vite@5.1.5):
resolution: {integrity: sha512-SBVzOIdP/kwe6hjkt7LSW4D0+REqqe58AumcnCfRNw4Kt3mbS9pEBkch+nupu2PBxv2tQi69EQHQ1ZA1vgB/Og==} resolution: {integrity: sha512-SBVzOIdP/kwe6hjkt7LSW4D0+REqqe58AumcnCfRNw4Kt3mbS9pEBkch+nupu2PBxv2tQi69EQHQ1ZA1vgB/Og==}
engines: {node: '>=14'} engines: {node: '>=14'}
peerDependencies: peerDependencies:
@ -13061,13 +13178,13 @@ packages:
perfect-debounce: 1.0.0 perfect-debounce: 1.0.0
picocolors: 1.0.0 picocolors: 1.0.0
sirv: 2.0.4 sirv: 2.0.4
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- supports-color - supports-color
dev: true dev: true
/vite-plugin-vue-inspector@4.0.2(vite@5.1.4): /vite-plugin-vue-inspector@4.0.2(vite@5.1.5):
resolution: {integrity: sha512-KPvLEuafPG13T7JJuQbSm5PwSxKFnVS965+MP1we2xGw9BPkkc/+LPix5MMWenpKWqtjr0ws8THrR+KuoDC8hg==} resolution: {integrity: sha512-KPvLEuafPG13T7JJuQbSm5PwSxKFnVS965+MP1we2xGw9BPkkc/+LPix5MMWenpKWqtjr0ws8THrR+KuoDC8hg==}
peerDependencies: peerDependencies:
vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0
@ -13081,7 +13198,7 @@ packages:
'@vue/compiler-dom': 3.4.21 '@vue/compiler-dom': 3.4.21
kolorist: 1.8.0 kolorist: 1.8.0
magic-string: 0.30.8 magic-string: 0.30.8
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -13138,8 +13255,8 @@ packages:
fsevents: 2.3.3 fsevents: 2.3.3
dev: true dev: true
/vite@5.1.4(@types/node@20.11.24): /vite@5.1.5(@types/node@20.11.24):
resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -13191,7 +13308,7 @@ packages:
'@shikijs/core': 1.1.7 '@shikijs/core': 1.1.7
'@shikijs/transformers': 1.1.7 '@shikijs/transformers': 1.1.7
'@types/markdown-it': 13.0.7 '@types/markdown-it': 13.0.7
'@vitejs/plugin-vue': 5.0.4(vite@5.1.4)(vue@3.4.21) '@vitejs/plugin-vue': 5.0.4(vite@5.1.5)(vue@3.4.21)
'@vue/devtools-api': 7.0.14 '@vue/devtools-api': 7.0.14
'@vueuse/core': 10.9.0(vue@3.4.21) '@vueuse/core': 10.9.0(vue@3.4.21)
'@vueuse/integrations': 10.7.2(focus-trap@7.5.4)(vue@3.4.21) '@vueuse/integrations': 10.7.2(focus-trap@7.5.4)(vue@3.4.21)
@ -13200,7 +13317,7 @@ packages:
minisearch: 6.3.0 minisearch: 6.3.0
postcss: 8.4.35 postcss: 8.4.35
shiki: 1.1.7 shiki: 1.1.7
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
vue: 3.4.21(typescript@5.3.3) vue: 3.4.21(typescript@5.3.3)
transitivePeerDependencies: transitivePeerDependencies:
- '@algolia/client-search' - '@algolia/client-search'
@ -13230,10 +13347,10 @@ packages:
- universal-cookie - universal-cookie
dev: true dev: true
/vitest-environment-nuxt@1.0.0(h3@1.11.1)(rollup@3.29.4)(vite@5.1.4)(vitest@0.33.0)(vue-router@4.3.0)(vue@3.4.21): /vitest-environment-nuxt@1.0.0(h3@1.11.1)(rollup@3.29.4)(vite@5.1.5)(vitest@0.33.0)(vue-router@4.3.0)(vue@3.4.21):
resolution: {integrity: sha512-AWMO9h4HdbaFdPWZw34gALFI8gbBiOpvfbyeZwHIPfh4kWg/TwElYHvYMQ61WPUlCGaS5LebfHkaI0WPyb//Iw==} resolution: {integrity: sha512-AWMO9h4HdbaFdPWZw34gALFI8gbBiOpvfbyeZwHIPfh4kWg/TwElYHvYMQ61WPUlCGaS5LebfHkaI0WPyb//Iw==}
dependencies: dependencies:
'@nuxt/test-utils': 3.11.0(h3@1.11.1)(rollup@3.29.4)(vite@5.1.4)(vitest@0.33.0)(vue-router@4.3.0)(vue@3.4.21) '@nuxt/test-utils': 3.11.0(h3@1.11.1)(rollup@3.29.4)(vite@5.1.5)(vitest@0.33.0)(vue-router@4.3.0)(vue@3.4.21)
transitivePeerDependencies: transitivePeerDependencies:
- '@cucumber/cucumber' - '@cucumber/cucumber'
- '@jest/globals' - '@jest/globals'
@ -13370,7 +13487,7 @@ packages:
strip-literal: 1.3.0 strip-literal: 1.3.0
tinybench: 2.6.0 tinybench: 2.6.0
tinypool: 0.7.0 tinypool: 0.7.0
vite: 5.1.4(@types/node@20.11.24) vite: 5.1.5(@types/node@20.11.24)
vite-node: 0.34.6(@types/node@20.11.24) vite-node: 0.34.6(@types/node@20.11.24)
why-is-node-running: 2.2.2 why-is-node-running: 2.2.2
transitivePeerDependencies: transitivePeerDependencies:
@ -13501,14 +13618,14 @@ packages:
he: 1.2.0 he: 1.2.0
dev: true dev: true
/vue-tsc@2.0.3(typescript@5.3.3): /vue-tsc@2.0.5(typescript@5.3.3):
resolution: {integrity: sha512-aMJqbgLiKDAwAglWqMoGf1Ez6Wwqhlk2MDxEjFGziiLW0A+tHOWE1+YQJZQ1Vm6zaENPA2KJAubFhaR988UvGg==} resolution: {integrity: sha512-e8WCgOVTrbmC04XPnI+IpaMTFYKaTm5s/MXFcvxO1l9kxzn+9FpGNVrBSlQE8VpTJaJg4kaBK1nj3NC20VJzjw==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
dependencies: dependencies:
'@volar/typescript': 2.1.0 '@volar/typescript': 2.1.1
'@vue/language-core': 2.0.3(typescript@5.3.3) '@vue/language-core': 2.0.5(typescript@5.3.3)
semver: 7.6.0 semver: 7.6.0
typescript: 5.3.3 typescript: 5.3.3
dev: true dev: true