Merge branch 'v3' into feat/3880

This commit is contained in:
HugoRCD
2025-07-02 10:14:50 +02:00
19 changed files with 805 additions and 273 deletions

View File

@@ -0,0 +1,43 @@
<script setup lang="ts">
const open = ref(false)
const anchor = ref({ x: 0, y: 0 })
const reference = computed(() => ({
getBoundingClientRect: () =>
({
width: 0,
height: 0,
left: anchor.value.x,
right: anchor.value.x,
top: anchor.value.y,
bottom: anchor.value.y,
...anchor.value
} as DOMRect)
}))
</script>
<template>
<UPopover
:open="open"
:reference="reference"
:content="{ side: 'top', sideOffset: 16, updatePositionStrategy: 'always' }"
>
<div
class="flex items-center justify-center rounded-md border border-dashed border-accented text-sm aspect-video w-72"
@pointerenter="open = true"
@pointerleave="open = false"
@pointermove="(ev) => {
anchor.x = ev.clientX
anchor.y = ev.clientY
}"
>
Hover me
</div>
<template #content>
<div class="p-4">
{{ anchor.x.toFixed(0) }} - {{ anchor.y.toFixed(0) }}
</div>
</template>
</UPopover>
</template>

View File

@@ -0,0 +1,159 @@
<script setup lang="ts">
import { h, resolveComponent } from 'vue'
import type { ContextMenuItem, TableColumn, TableRow } from '@nuxt/ui'
import { useClipboard } from '@vueuse/core'
const UBadge = resolveComponent('UBadge')
const UCheckbox = resolveComponent('UCheckbox')
const toast = useToast()
const { copy } = useClipboard()
type Payment = {
id: string
date: string
status: 'paid' | 'failed' | 'refunded'
email: string
amount: number
}
const data = ref<Payment[]>([{
id: '4600',
date: '2024-03-11T15:30:00',
status: 'paid',
email: 'james.anderson@example.com',
amount: 594
}, {
id: '4599',
date: '2024-03-11T10:10:00',
status: 'failed',
email: 'mia.white@example.com',
amount: 276
}, {
id: '4598',
date: '2024-03-11T08:50:00',
status: 'refunded',
email: 'william.brown@example.com',
amount: 315
}, {
id: '4597',
date: '2024-03-10T19:45:00',
status: 'paid',
email: 'emma.davis@example.com',
amount: 529
}, {
id: '4596',
date: '2024-03-10T15:55:00',
status: 'paid',
email: 'ethan.harris@example.com',
amount: 639
}])
const columns: TableColumn<Payment>[] = [{
id: 'select',
header: ({ table }) => h(UCheckbox, {
'modelValue': table.getIsSomePageRowsSelected() ? 'indeterminate' : table.getIsAllPageRowsSelected(),
'onUpdate:modelValue': (value: boolean | 'indeterminate') => table.toggleAllPageRowsSelected(!!value),
'aria-label': 'Select all'
}),
cell: ({ row }) => h(UCheckbox, {
'modelValue': row.getIsSelected(),
'onUpdate:modelValue': (value: boolean | 'indeterminate') => row.toggleSelected(!!value),
'aria-label': 'Select row'
})
}, {
accessorKey: 'id',
header: '#',
cell: ({ row }) => `#${row.getValue('id')}`
}, {
accessorKey: 'date',
header: 'Date',
cell: ({ row }) => {
return new Date(row.getValue('date')).toLocaleString('en-US', {
day: 'numeric',
month: 'short',
hour: '2-digit',
minute: '2-digit',
hour12: false
})
}
}, {
accessorKey: 'status',
header: 'Status',
cell: ({ row }) => {
const color = ({
paid: 'success' as const,
failed: 'error' as const,
refunded: 'neutral' as const
})[row.getValue('status') as string]
return h(UBadge, { class: 'capitalize', variant: 'subtle', color }, () => row.getValue('status'))
}
}, {
accessorKey: 'email',
header: 'Email'
}, {
accessorKey: 'amount',
header: () => h('div', { class: 'text-right' }, 'Amount'),
cell: ({ row }) => {
const amount = Number.parseFloat(row.getValue('amount'))
const formatted = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'EUR'
}).format(amount)
return h('div', { class: 'text-right font-medium' }, formatted)
}
}]
const items = ref<ContextMenuItem[]>([])
function getRowItems(row: TableRow<Payment>) {
return [{
type: 'label' as const,
label: 'Actions'
}, {
label: 'Copy payment ID',
onSelect() {
copy(row.original.id)
toast.add({
title: 'Payment ID copied to clipboard!',
color: 'success',
icon: 'i-lucide-circle-check'
})
}
}, {
label: row.getIsExpanded() ? 'Collapse' : 'Expand',
onSelect() {
row.toggleExpanded()
}
}, {
type: 'separator' as const
}, {
label: 'View customer'
}, {
label: 'View payment details'
}]
}
function onContextmenu(_e: Event, row: TableRow<Payment>) {
items.value = getRowItems(row)
}
</script>
<template>
<UContextMenu :items="items">
<UTable
:data="data"
:columns="columns"
class="flex-1"
@contextmenu="onContextmenu"
>
<template #expanded="{ row }">
<pre>{{ row.original }}</pre>
</template>
</UTable>
</UContextMenu>
</template>

View File

@@ -0,0 +1,157 @@
<script setup lang="ts">
import { h, resolveComponent } from 'vue'
import type { TableColumn, TableRow } from '@nuxt/ui'
const UBadge = resolveComponent('UBadge')
const UCheckbox = resolveComponent('UCheckbox')
type Payment = {
id: string
date: string
status: 'paid' | 'failed' | 'refunded'
email: string
amount: number
}
const data = ref<Payment[]>([{
id: '4600',
date: '2024-03-11T15:30:00',
status: 'paid',
email: 'james.anderson@example.com',
amount: 594
}, {
id: '4599',
date: '2024-03-11T10:10:00',
status: 'failed',
email: 'mia.white@example.com',
amount: 276
}, {
id: '4598',
date: '2024-03-11T08:50:00',
status: 'refunded',
email: 'william.brown@example.com',
amount: 315
}, {
id: '4597',
date: '2024-03-10T19:45:00',
status: 'paid',
email: 'emma.davis@example.com',
amount: 529
}, {
id: '4596',
date: '2024-03-10T15:55:00',
status: 'paid',
email: 'ethan.harris@example.com',
amount: 639
}])
const columns: TableColumn<Payment>[] = [{
id: 'select',
header: ({ table }) => h(UCheckbox, {
'modelValue': table.getIsSomePageRowsSelected() ? 'indeterminate' : table.getIsAllPageRowsSelected(),
'onUpdate:modelValue': (value: boolean | 'indeterminate') => table.toggleAllPageRowsSelected(!!value),
'aria-label': 'Select all'
}),
cell: ({ row }) => h(UCheckbox, {
'modelValue': row.getIsSelected(),
'onUpdate:modelValue': (value: boolean | 'indeterminate') => row.toggleSelected(!!value),
'aria-label': 'Select row'
})
}, {
accessorKey: 'id',
header: '#',
cell: ({ row }) => `#${row.getValue('id')}`
}, {
accessorKey: 'date',
header: 'Date',
cell: ({ row }) => {
return new Date(row.getValue('date')).toLocaleString('en-US', {
day: 'numeric',
month: 'short',
hour: '2-digit',
minute: '2-digit',
hour12: false
})
}
}, {
accessorKey: 'status',
header: 'Status',
cell: ({ row }) => {
const color = ({
paid: 'success' as const,
failed: 'error' as const,
refunded: 'neutral' as const
})[row.getValue('status') as string]
return h(UBadge, { class: 'capitalize', variant: 'subtle', color }, () => row.getValue('status'))
}
}, {
accessorKey: 'email',
header: 'Email'
}, {
accessorKey: 'amount',
header: () => h('div', { class: 'text-right' }, 'Amount'),
cell: ({ row }) => {
const amount = Number.parseFloat(row.getValue('amount'))
const formatted = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'EUR'
}).format(amount)
return h('div', { class: 'text-right font-medium' }, formatted)
}
}]
const anchor = ref({ x: 0, y: 0 })
const reference = computed(() => ({
getBoundingClientRect: () =>
({
width: 0,
height: 0,
left: anchor.value.x,
right: anchor.value.x,
top: anchor.value.y,
bottom: anchor.value.y,
...anchor.value
} as DOMRect)
}))
const open = ref(false)
const openDebounced = refDebounced(open, 10)
const selectedRow = ref<TableRow<Payment> | null>(null)
function onHover(_e: Event, row: TableRow<Payment> | null) {
selectedRow.value = row
open.value = !!row
}
</script>
<template>
<div class="flex w-full flex-1 gap-1">
<UTable
:data="data"
:columns="columns"
class="flex-1"
@pointermove="(ev: PointerEvent) => {
anchor.x = ev.clientX
anchor.y = ev.clientY
}"
@hover="onHover"
/>
<UPopover
:content="{ side: 'top', sideOffset: 16, updatePositionStrategy: 'always' }"
:open="openDebounced"
:reference="reference"
>
<template #content>
<div class="p-4">
{{ selectedRow?.original?.id }}
</div>
</template>
</UPopover>
</div>
</template>

View File

@@ -112,7 +112,7 @@ function onSelect(row: TableRow<Payment>, e?: Event) {
</script> </script>
<template> <template>
<div class=" flex w-full flex-1 gap-1"> <div class="flex w-full flex-1 gap-1">
<div class="flex-1"> <div class="flex-1">
<UTable <UTable
ref="table" ref="table"

View File

@@ -16,12 +16,12 @@ function handleMessage(message) {
async function handleFormatMessage(message) { async function handleFormatMessage(message) {
if (!globalThis.prettier) { if (!globalThis.prettier) {
await Promise.all([ await Promise.all([
import('https://cdn.jsdelivr.net/npm/prettier@3.5.2/standalone.js'), import('https://cdn.jsdelivr.net/npm/prettier@3.6.2/standalone.js'),
import('https://cdn.jsdelivr.net/npm/prettier@3.5.2/plugins/babel.js'), import('https://cdn.jsdelivr.net/npm/prettier@3.6.2/plugins/babel.js'),
import('https://cdn.jsdelivr.net/npm/prettier@3.5.2/plugins/estree.js'), import('https://cdn.jsdelivr.net/npm/prettier@3.6.2/plugins/estree.js'),
import('https://cdn.jsdelivr.net/npm/prettier@3.5.2/plugins/html.js'), import('https://cdn.jsdelivr.net/npm/prettier@3.6.2/plugins/html.js'),
import('https://cdn.jsdelivr.net/npm/prettier@3.5.2/plugins/markdown.js'), import('https://cdn.jsdelivr.net/npm/prettier@3.6.2/plugins/markdown.js'),
import('https://cdn.jsdelivr.net/npm/prettier@3.5.2/plugins/typescript.js') import('https://cdn.jsdelivr.net/npm/prettier@3.6.2/plugins/typescript.js')
]) ])
} }

View File

@@ -32,6 +32,12 @@ props:
You can use any name from the <https://icones.js.org> collection. You can use any name from the <https://icones.js.org> collection.
:: ::
::warning
When using collections with a dash (`-`), you need to separate the icon name from the collection name with a colon (`:`) as `@iconify/vue` does not handle this case like `@nuxt/icon`. For example, instead of `i-simple-icons-github` you need to write `i-simple-icons:github` or `simple-icons:github`.
Learn more about the [Iconify naming convention](https://iconify.design/docs/icon-components/vue/#icon).
::
### Component Props ### Component Props
Some components also have an `icon` prop to display an icon, like the [Button](/components/button) for example: Some components also have an `icon` prop to display an icon, like the [Button](/components/button) for example:

View File

@@ -51,6 +51,17 @@ props:
--- ---
:: ::
### Max Length :badge{label="Soon" class="align-text-top"}
Use the `max-length` prop to set the maximum number of characters allowed in a tag.
::component-code
---
props:
maxLength: 4
---
::
### Color ### Color
Use the `color` prop to change the ring color when the InputTags is focused. Use the `color` prop to change the ring color when the InputTags is focused.

View File

@@ -202,6 +202,16 @@ name: 'popover-command-palette-example'
--- ---
:: ::
### With following cursor :badge{label="Soon" class="align-text-top"}
You can make the Popover follow the cursor when hovering over an element using the [`reference`](https://reka-ui.com/docs/components/tooltip#trigger) prop:
::component-example
---
name: 'popover-cursor-example'
---
::
### With anchor slot ### With anchor slot
You can use the `#anchor` slot to position the Popover against a custom element. You can use the `#anchor` slot to position the Popover against a custom element.

View File

@@ -266,8 +266,8 @@ You can group rows based on a given column value and show/hide sub rows via some
#### Important parts: #### Important parts:
* Add prop `grouping` to `UTable` component with an array of column ids you want to group by. * Add `grouping` prop with an array of column ids you want to group by.
* Add prop `grouping-options` to `UTable`. It must include `getGroupedRowModel`, you can import it from `@tanstack/vue-table` or implement your own. * Add `grouping-options` prop. It must include `getGroupedRowModel`, you can import it from `@tanstack/vue-table` or implement your own.
* Expand rows via `row.toggleExpanded()` method on any cell of the row. Keep in mind, it also toggles `#expanded` slot. * Expand rows via `row.toggleExpanded()` method on any cell of the row. Keep in mind, it also toggles `#expanded` slot.
* Use `aggregateFn` on column definition to define how to aggregate the rows. * Use `aggregateFn` on column definition to define how to aggregate the rows.
* `agregatedCell` renderer on column definition only works if there is no `cell` renderer. * `agregatedCell` renderer on column definition only works if there is no `cell` renderer.
@@ -304,19 +304,19 @@ class: '!p-0'
You can use the `row-selection` prop to control the selection state of the rows (can be binded with `v-model`). You can use the `row-selection` prop to control the selection state of the rows (can be binded with `v-model`).
:: ::
### With `@select` event ### With row select event
You can add a `@select` listener to make rows clickable. The handler function receives the `TableRow` instance as the first argument and an optional `Event` as the second argument. You can add a `@select` listener to make rows clickable with or without a checkbox column.
::note ::note
You can use this to navigate to a page, open a modal or even to select the row manually. The handler function receives the `TableRow` instance as the first argument and an optional `Event` as the second argument.
:: ::
::component-example ::component-example
--- ---
prettier: true prettier: true
collapse: true collapse: true
name: 'table-row-selection-event-example' name: 'table-row-select-event-example'
highlights: highlights:
- 123 - 123
- 130 - 130
@@ -324,6 +324,54 @@ class: '!p-0'
--- ---
:: ::
::tip
You can use this to navigate to a page, open a modal or even to select the row manually.
::
### With row context menu event :badge{label="Soon" class="align-text-top"}
You can add a `@contextmenu` listener to make rows right clickable and wrap the Table in a [ContextMenu](/components/context-menu) component to display row actions for example.
::note
The handler function receives the `Event` and `TableRow` instance as the first and second arguments respectively.
::
::component-example
---
prettier: true
collapse: true
name: 'table-row-context-menu-event-example'
highlights:
- 130
- 170
class: '!p-0'
---
::
### With row hover event :badge{label="Soon" class="align-text-top"}
You can add a `@hover` listener to make rows hoverable and use a [Popover](/components/popover) or a [Tooltip](/components/tooltip) component to display row details for example.
::note
The handler function receives the `Event` and `TableRow` instance as the first and second arguments respectively.
::
::component-example
---
prettier: true
collapse: true
name: 'table-row-hover-event-example'
highlights:
- 126
- 149
class: '!p-0'
---
::
::note
This example is similar as the Popover [with following cursor example](/components/popover#with-following-cursor) and uses a [`refDebounced`](https://vueuse.org/shared/refDebounced/#refdebounced) to prevent the Popover from opening and closing too quickly when moving the cursor from one row to another.
::
### With column sorting ### With column sorting
You can update a column `header` to render a [Button](/components/button) component inside the `header` to toggle the sorting state using the TanStack Table [Sorting APIs](https://tanstack.com/table/latest/docs/api/features/sorting). You can update a column `header` to render a [Button](/components/button) component inside the `header` to toggle the sorting state using the TanStack Table [Sorting APIs](https://tanstack.com/table/latest/docs/api/features/sorting).

View File

@@ -196,10 +196,6 @@ name: 'tooltip-cursor-example'
--- ---
:: ::
::note
This example is based on Reka UI's [Tooltip Cursor](https://reka-ui.com/examples/tooltip-cursor) example.
::
## API ## API
### Props ### Props

View File

@@ -30,7 +30,7 @@
"joi": "^17.13.3", "joi": "^17.13.3",
"maska": "^3.1.1", "maska": "^3.1.1",
"motion-v": "^1.3.1", "motion-v": "^1.3.1",
"nuxt": "^3.17.5", "nuxt": "^3.17.6",
"nuxt-component-meta": "^0.12.0", "nuxt-component-meta": "^0.12.0",
"nuxt-llms": "^0.1.3", "nuxt-llms": "^0.1.3",
"nuxt-og-image": "^5.1.8", "nuxt-og-image": "^5.1.8",

View File

@@ -116,8 +116,8 @@
"@internationalized/number": "^3.6.3", "@internationalized/number": "^3.6.3",
"@nuxt/fonts": "^0.11.4", "@nuxt/fonts": "^0.11.4",
"@nuxt/icon": "^1.15.0", "@nuxt/icon": "^1.15.0",
"@nuxt/kit": "^3.17.5", "@nuxt/kit": "^3.17.6",
"@nuxt/schema": "^3.17.5", "@nuxt/schema": "^3.17.6",
"@nuxtjs/color-mode": "^3.5.2", "@nuxtjs/color-mode": "^3.5.2",
"@standard-schema/spec": "^1.0.0", "@standard-schema/spec": "^1.0.0",
"@tailwindcss/postcss": "^4.1.11", "@tailwindcss/postcss": "^4.1.11",
@@ -163,7 +163,7 @@
"embla-carousel": "^8.6.0", "embla-carousel": "^8.6.0",
"eslint": "^9.30.0", "eslint": "^9.30.0",
"happy-dom": "^18.0.1", "happy-dom": "^18.0.1",
"nuxt": "^3.17.5", "nuxt": "^3.17.6",
"release-it": "^19.0.3", "release-it": "^19.0.3",
"vitest": "^3.2.4", "vitest": "^3.2.4",
"vitest-environment-nuxt": "^1.0.1", "vitest-environment-nuxt": "^1.0.1",

View File

@@ -3,7 +3,7 @@ import { h, resolveComponent } from 'vue'
import { upperFirst } from 'scule' import { upperFirst } from 'scule'
import type { TableColumn, TableRow } from '@nuxt/ui' import type { TableColumn, TableRow } from '@nuxt/ui'
import { getPaginationRowModel } from '@tanstack/vue-table' import { getPaginationRowModel } from '@tanstack/vue-table'
import { useClipboard } from '@vueuse/core' import { useClipboard, refDebounced } from '@vueuse/core'
const UButton = resolveComponent('UButton') const UButton = resolveComponent('UButton')
const UCheckbox = resolveComponent('UCheckbox') const UCheckbox = resolveComponent('UCheckbox')
@@ -147,6 +147,35 @@ const data = ref<Payment[]>([{
const currentID = ref(4601) const currentID = ref(4601)
function getRowItems(row: TableRow<Payment>) {
return [{
type: 'label' as const,
label: 'Actions'
}, {
label: 'Copy payment ID',
onSelect() {
copy(row.original.id)
toast.add({
title: 'Payment ID copied to clipboard!',
color: 'success',
icon: 'i-lucide-circle-check'
})
}
}, {
label: row.getIsExpanded() ? 'Collapse' : 'Expand',
onSelect() {
row.toggleExpanded()
}
}, {
type: 'separator' as const
}, {
label: 'View customer'
}, {
label: 'View payment details'
}]
}
const columns: TableColumn<Payment>[] = [{ const columns: TableColumn<Payment>[] = [{
id: 'select', id: 'select',
header: ({ table }) => h(UCheckbox, { header: ({ table }) => h(UCheckbox, {
@@ -227,38 +256,11 @@ const columns: TableColumn<Payment>[] = [{
id: 'actions', id: 'actions',
enableHiding: false, enableHiding: false,
cell: ({ row }) => { cell: ({ row }) => {
const items = [{
type: 'label',
label: 'Actions'
}, {
label: 'Copy payment ID',
onSelect() {
copy(row.original.id)
toast.add({
title: 'Payment ID copied to clipboard!',
color: 'success',
icon: 'i-lucide-circle-check'
})
}
}, {
label: row.getIsExpanded() ? 'Collapse' : 'Expand',
onSelect() {
row.toggleExpanded()
}
}, {
type: 'separator'
}, {
label: 'View customer'
}, {
label: 'View payment details'
}]
return h('div', { class: 'text-right' }, h(UDropdownMenu, { return h('div', { class: 'text-right' }, h(UDropdownMenu, {
'content': { 'content': {
align: 'end' align: 'end'
}, },
items, 'items': getRowItems(row),
'aria-label': 'Actions dropdown' 'aria-label': 'Actions dropdown'
}, () => h(UButton, { }, () => h(UButton, {
'icon': 'i-lucide-ellipsis-vertical', 'icon': 'i-lucide-ellipsis-vertical',
@@ -296,8 +298,41 @@ function randomize() {
data.value = data.value.sort(() => Math.random() - 0.5) data.value = data.value.sort(() => Math.random() - 0.5)
} }
const rowSelection = ref<Record<string, boolean>>({})
function onSelect(row: TableRow<Payment>) { function onSelect(row: TableRow<Payment>) {
console.log(row) row.toggleSelected(!row.getIsSelected())
}
const contextmenuRow = ref<TableRow<Payment> | null>(null)
const contextmenuItems = computed(() => contextmenuRow.value ? getRowItems(contextmenuRow.value) : [])
function onContextmenu(e: Event, row: TableRow<Payment>) {
contextmenuRow.value = row
}
const popoverOpen = ref(false)
const popoverOpenDebounced = refDebounced(popoverOpen, 1)
const popoverAnchor = ref({ x: 0, y: 0 })
const popoverRow = ref<TableRow<Payment> | null>(null)
const reference = computed(() => ({
getBoundingClientRect: () =>
({
width: 0,
height: 0,
left: popoverAnchor.value.x,
right: popoverAnchor.value.x,
top: popoverAnchor.value.y,
bottom: popoverAnchor.value.y,
...popoverAnchor.value
} as DOMRect)
}))
function onHover(_e: Event, row: TableRow<Payment> | null) {
popoverRow.value = row
popoverOpen.value = !!row
} }
onMounted(() => { onMounted(() => {
@@ -344,27 +379,44 @@ onMounted(() => {
</UDropdownMenu> </UDropdownMenu>
</div> </div>
<UTable <UContextMenu :items="contextmenuItems">
ref="table" <UTable
:data="data" ref="table"
:columns="columns" :data="data"
:column-pinning="columnPinning" :columns="columns"
:loading="loading" :column-pinning="columnPinning"
:pagination="pagination" :row-selection="rowSelection"
:pagination-options="{ :loading="loading"
getPaginationRowModel: getPaginationRowModel() :pagination="pagination"
}" :pagination-options="{
:ui="{ getPaginationRowModel: getPaginationRowModel()
tr: 'divide-x divide-default' }"
}" :ui="{
sticky tr: 'divide-x divide-default'
class="border border-accented rounded-sm" }"
@select="onSelect" sticky
> class="border border-accented rounded-sm"
<template #expanded="{ row }"> @select="onSelect"
<pre>{{ row.original }}</pre> @contextmenu="onContextmenu"
@pointermove="(ev: PointerEvent) => {
popoverAnchor.x = ev.clientX
popoverAnchor.y = ev.clientY
}"
@hover="onHover"
>
<template #expanded="{ row }">
<pre>{{ row.original }}</pre>
</template>
</UTable>
</UContextMenu>
<UPopover :content="{ side: 'top', sideOffset: 16, updatePositionStrategy: 'always' }" :open="popoverOpenDebounced" :reference="reference">
<template #content>
<div class="p-4">
{{ popoverRow?.original?.id }}
</div>
</template> </template>
</UTable> </UPopover>
<div class="flex items-center justify-between gap-3"> <div class="flex items-center justify-between gap-3">
<div class="text-sm text-muted"> <div class="text-sm text-muted">

View File

@@ -14,7 +14,7 @@
"@internationalized/date": "^3.8.2", "@internationalized/date": "^3.8.2",
"@nuxt/ui": "workspace:*", "@nuxt/ui": "workspace:*",
"@nuxthub/core": "^0.9.0", "@nuxthub/core": "^0.9.0",
"nuxt": "^3.17.5", "nuxt": "^3.17.6",
"zod": "^3.25.67" "zod": "^3.25.67"
}, },
"devDependencies": { "devDependencies": {

402
pnpm-lock.yaml generated
View File

@@ -35,11 +35,11 @@ importers:
specifier: ^1.15.0 specifier: ^1.15.0
version: 1.15.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) version: 1.15.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
'@nuxt/kit': '@nuxt/kit':
specifier: ^3.17.5 specifier: ^3.17.6
version: 3.17.5(magicast@0.3.5) version: 3.17.6(magicast@0.3.5)
'@nuxt/schema': '@nuxt/schema':
specifier: ^3.17.5 specifier: ^3.17.6
version: 3.17.5 version: 3.17.6
'@nuxtjs/color-mode': '@nuxtjs/color-mode':
specifier: ^3.5.2 specifier: ^3.5.2
version: 3.5.2(magicast@0.3.5) version: 3.5.2(magicast@0.3.5)
@@ -144,10 +144,10 @@ importers:
version: 2.3.5 version: 2.3.5
unplugin-auto-import: unplugin-auto-import:
specifier: ^19.3.0 specifier: ^19.3.0
version: 19.3.0(@nuxt/kit@3.17.5(magicast@0.3.5))(@vueuse/core@13.4.0(vue@3.5.17(typescript@5.8.3))) version: 19.3.0(@nuxt/kit@3.17.6(magicast@0.3.5))(@vueuse/core@13.4.0(vue@3.5.17(typescript@5.8.3)))
unplugin-vue-components: unplugin-vue-components:
specifier: ^28.8.0 specifier: ^28.8.0
version: 28.8.0(@babel/parser@7.27.7)(@nuxt/kit@3.17.5(magicast@0.3.5))(vue@3.5.17(typescript@5.8.3)) version: 28.8.0(@babel/parser@7.27.7)(@nuxt/kit@3.17.6(magicast@0.3.5))(vue@3.5.17(typescript@5.8.3))
valibot: valibot:
specifier: ^1.0.0 specifier: ^1.0.0
version: 1.1.0(typescript@5.8.3) version: 1.1.0(typescript@5.8.3)
@@ -192,8 +192,8 @@ importers:
specifier: ^18.0.1 specifier: ^18.0.1
version: 18.0.1 version: 18.0.1
nuxt: nuxt:
specifier: ^3.17.5 specifier: ^3.17.6
version: 3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.7)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0) version: 3.17.6(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0)
release-it: release-it:
specifier: ^19.0.3 specifier: ^19.0.3
version: 19.0.3(@types/node@24.0.7)(magicast@0.3.5) version: 19.0.3(@types/node@24.0.7)(magicast@0.3.5)
@@ -268,7 +268,7 @@ importers:
version: 13.4.0(axios@1.10.0)(fuse.js@7.1.0)(jwt-decode@4.0.0)(sortablejs@1.15.6)(vue@3.5.17(typescript@5.8.3)) version: 13.4.0(axios@1.10.0)(fuse.js@7.1.0)(jwt-decode@4.0.0)(sortablejs@1.15.6)(vue@3.5.17(typescript@5.8.3))
'@vueuse/nuxt': '@vueuse/nuxt':
specifier: ^13.4.0 specifier: ^13.4.0
version: 13.4.0(magicast@0.3.5)(nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.7)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) version: 13.4.0(magicast@0.3.5)(nuxt@3.17.6(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
ai: ai:
specifier: ^4.3.16 specifier: ^4.3.16
version: 4.3.16(react@19.1.0)(zod@3.25.67) version: 4.3.16(react@19.1.0)(zod@3.25.67)
@@ -288,8 +288,8 @@ importers:
specifier: ^1.3.1 specifier: ^1.3.1
version: 1.3.1(react@19.1.0)(vue@3.5.17(typescript@5.8.3)) version: 1.3.1(react@19.1.0)(vue@3.5.17(typescript@5.8.3))
nuxt: nuxt:
specifier: ^3.17.5 specifier: ^3.17.6
version: 3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.7)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0) version: 3.17.6(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0)
nuxt-component-meta: nuxt-component-meta:
specifier: ^0.12.0 specifier: ^0.12.0
version: 0.12.0(magicast@0.3.5) version: 0.12.0(magicast@0.3.5)
@@ -349,8 +349,8 @@ importers:
specifier: ^0.9.0 specifier: ^0.9.0
version: 0.9.0(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1)(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)) version: 0.9.0(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1)(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
nuxt: nuxt:
specifier: ^3.17.5 specifier: ^3.17.6
version: 3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.7)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0) version: 3.17.6(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0)
zod: zod:
specifier: ^3.25.67 specifier: ^3.25.67
version: 3.25.67 version: 3.25.67
@@ -1528,8 +1528,8 @@ packages:
resolution: {integrity: sha512-/B58GeEmme7bkmQUrXzEw8P9sJb9BkMaYZqLDtq8ZdDLEddE3P4nVya8RQPB+p4b7EdqWajpPqdy1A2ZPLev/A==} resolution: {integrity: sha512-/B58GeEmme7bkmQUrXzEw8P9sJb9BkMaYZqLDtq8ZdDLEddE3P4nVya8RQPB+p4b7EdqWajpPqdy1A2ZPLev/A==}
engines: {node: '>=18.20.6'} engines: {node: '>=18.20.6'}
'@nuxt/kit@3.17.5': '@nuxt/kit@3.17.6':
resolution: {integrity: sha512-NdCepmA+S/SzgcaL3oYUeSlXGYO6BXGr9K/m1D0t0O9rApF8CSq/QQ+ja5KYaYMO1kZAEWH4s2XVcE3uPrrAVg==} resolution: {integrity: sha512-8PKRwoEF70IXVrpGEJZ4g4V2WtE9RjSMgSZLLa0HZCoyT+QczJcJe3kho/XKnJOnNnHep4WqciTD7p4qRRtBqw==}
engines: {node: '>=18.12.0'} engines: {node: '>=18.12.0'}
'@nuxt/module-builder@1.0.1': '@nuxt/module-builder@1.0.1':
@@ -1540,8 +1540,8 @@ packages:
'@nuxt/cli': ^3.24.1 '@nuxt/cli': ^3.24.1
typescript: ^5.8.3 typescript: ^5.8.3
'@nuxt/schema@3.17.5': '@nuxt/schema@3.17.6':
resolution: {integrity: sha512-A1DSQk2uXqRHXlgLWDeFCyZk/yPo9oMBMb9OsbVko9NLv9du2DO2cs9RQ68Amvdk8O2nG7/FxAMNnkMdQ8OexA==} resolution: {integrity: sha512-ahm0yz6CrSaZ4pS0iuVod9lVRXNDNIidKWLLBx2naGNM6rW+sdFV9gxjvUS3+rLW+swa4HCKE6J5bjOl//oyqQ==}
engines: {node: ^14.18.0 || >=16.10.0} engines: {node: ^14.18.0 || >=16.10.0}
'@nuxt/telemetry@2.6.6': '@nuxt/telemetry@2.6.6':
@@ -1607,8 +1607,8 @@ packages:
zod: zod:
optional: true optional: true
'@nuxt/vite-builder@3.17.5': '@nuxt/vite-builder@3.17.6':
resolution: {integrity: sha512-SKlm73FuuPj1ZdVJ1JQfUed/lO5l7iJMbM+9K+CMXnifu7vV2ITaSxu8uZ/ice1FeLYwOZKEsjnJXB0QpqDArQ==} resolution: {integrity: sha512-D7bf0BE2nDFj23ryKuSakQFDETt5rpnMTlaoDsRElrApFRvMNzF7pYHuHjvPELsi0UmaqCb8sZn6ki0GALEu2A==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0.0} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0.0}
peerDependencies: peerDependencies:
vue: ^3.3.4 vue: ^3.3.4
@@ -1736,91 +1736,97 @@ packages:
resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
engines: {node: '>=8.0.0'} engines: {node: '>=8.0.0'}
'@oxc-parser/binding-darwin-arm64@0.72.3': '@oxc-parser/binding-android-arm64@0.75.0':
resolution: {integrity: sha512-g6wgcfL7At4wHNHutl0NmPZTAju+cUSmSX5WGUMyTJmozRzhx8E9a2KL4rTqNJPwEpbCFrgC29qX9f4fpDnUpA==} resolution: {integrity: sha512-nSHUHCO59G+kbixFVc7dK1j3l1EU3nVNLkj47ysCyl7RW3Z9cwCITp7SVwm+gl3ufCuVU4bkaBpgFnesnqZeDg==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [arm64]
os: [android]
'@oxc-parser/binding-darwin-arm64@0.75.0':
resolution: {integrity: sha512-Wnx2L/gX39/9ZkohpW9R46eQTavBFnqsoAFaRgOnUsLW/+rtZIacMwwxZCfBhLY/tNlBWEUbTxlN6bvN/hPbKw==}
engines: {node: '>=20.0.0'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@oxc-parser/binding-darwin-x64@0.72.3': '@oxc-parser/binding-darwin-x64@0.75.0':
resolution: {integrity: sha512-pc+tplB2fd0AqdnXY90FguqSF2OwbxXwrMOLAMmsUiK4/ytr8Z/ftd49+d27GgvQJKeg2LfnIbskaQtY/j2tAA==} resolution: {integrity: sha512-jXOYe/K7YLE8xN2dDBcaZ78dxfXWXtPMZBOzg2j0YignThagLX4KgDCqEVlMbQY4MymzpqrY0TzSXjCI9MCfvA==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@oxc-parser/binding-freebsd-x64@0.72.3': '@oxc-parser/binding-freebsd-x64@0.75.0':
resolution: {integrity: sha512-igBR6rOvL8t5SBm1f1rjtWNsjB53HNrM3au582JpYzWxOqCjeA5Jlm9KZbjQJC+J8SPB9xyljM7G+6yGZ2UAkQ==} resolution: {integrity: sha512-Qz/iLccz8ecbeH0jterDVZcw9xmbuJn0/Jo+yc3+tqd3Iwirp+UbY/6c7SOkFFciF1dNN4G2FLpmDQSSWFZdjw==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@oxc-parser/binding-linux-arm-gnueabihf@0.72.3': '@oxc-parser/binding-linux-arm-gnueabihf@0.75.0':
resolution: {integrity: sha512-/izdr3wg7bK+2RmNhZXC2fQwxbaTH3ELeqdR+Wg4FiEJ/C7ZBIjfB0E734bZGgbDu+rbEJTBlbG77XzY0wRX/Q==} resolution: {integrity: sha512-OQomvh7PfJjzKSfG0lNcTru+QYXYzETrU4YZsWBWcJyV4pKJ6ZoRn4BOlY9QVH3F8htN890/agTQfNtEAzp23g==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@oxc-parser/binding-linux-arm-musleabihf@0.72.3': '@oxc-parser/binding-linux-arm-musleabihf@0.75.0':
resolution: {integrity: sha512-Vz7C+qJb22HIFl3zXMlwvlTOR+MaIp5ps78060zsdeZh2PUGlYuUYkYXtGEjJV3kc8aKFj79XKqAY1EPG2NWQA==} resolution: {integrity: sha512-solH8uhoWkqHaVLGdBjB6cxbKugqRjxiEdXOQYeNXJo5d5gJxLW6WFhLhRedajwVtxVaKhcNNW4vrwuhU85OXA==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@oxc-parser/binding-linux-arm64-gnu@0.72.3': '@oxc-parser/binding-linux-arm64-gnu@0.75.0':
resolution: {integrity: sha512-nomoMe2VpVxW767jhF+G3mDGmE0U6nvvi5nw9Edqd/5DIylQfq/lEGUWL7qITk+E72YXBsnwHtpRRlIAJOMyZg==} resolution: {integrity: sha512-CrYqeI5/TY8x/G/KvprDaxB9V6Wpudby1sXVpncz4Azzoyg+mIRGgWOl+ZbX/O9uwpCrFr0TPf2JY7cl3baLAA==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@oxc-parser/binding-linux-arm64-musl@0.72.3': '@oxc-parser/binding-linux-arm64-musl@0.75.0':
resolution: {integrity: sha512-4DswiIK5dI7hFqcMKWtZ7IZnWkRuskh6poI1ad4gkY2p678NOGtl6uOGCCRlDmLOOhp3R27u4VCTzQ6zra977w==} resolution: {integrity: sha512-dQK0rLN6ha5cGahgA4j7zqLH6rtDd5TdNApBo5JFannCLzpr9TQ1QUecYggx70+vLrmm/PMKCMnwR0uuvLbq8g==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@oxc-parser/binding-linux-riscv64-gnu@0.72.3': '@oxc-parser/binding-linux-riscv64-gnu@0.75.0':
resolution: {integrity: sha512-R9GEiA4WFPGU/3RxAhEd6SaMdpqongGTvGEyTvYCS/MAQyXKxX/LFvc2xwjdvESpjIemmc/12aTTq6if28vHkQ==} resolution: {integrity: sha512-thRPaGeeKuVFI1fTY+G5zeh5w34eUYszliA/2qpAsb1yWfq+imHgsdloFLi3wW1CiR1mnk6AhKFoj7u3JGVWTA==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@oxc-parser/binding-linux-s390x-gnu@0.72.3': '@oxc-parser/binding-linux-s390x-gnu@0.75.0':
resolution: {integrity: sha512-/sEYJQMVqikZO8gK9VDPT4zXo9du3gvvu8jp6erMmW5ev+14PErWRypJjktp0qoTj+uq4MzXro0tg7U+t5hP1w==} resolution: {integrity: sha512-ku2ckoJeXXLe6ZiWFXXYALpfmAtoPUzsWOlFf7HssOYbhHEm/RH9yw/GoUNRwZdz1uSi6tYzNvLZ915irffK/w==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@oxc-parser/binding-linux-x64-gnu@0.72.3': '@oxc-parser/binding-linux-x64-gnu@0.75.0':
resolution: {integrity: sha512-hlyljEZ0sMPKJQCd5pxnRh2sAf/w+Ot2iJecgV9Hl3brrYrYCK2kofC0DFaJM3NRmG/8ZB3PlxnSRSKZTocwCw==} resolution: {integrity: sha512-223VDGrX7cnmhSSRimnL+/eOCp/ABU4Iobfnelz5zbQKRpijQQjk8Ohx2kb7aZ5Q0dY09fDSUNjY/iOBBFaRIg==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@oxc-parser/binding-linux-x64-musl@0.72.3': '@oxc-parser/binding-linux-x64-musl@0.75.0':
resolution: {integrity: sha512-T17S8ORqAIq+YDFMvLfbNdAiYHYDM1+sLMNhesR5eWBtyTHX510/NbgEvcNemO9N6BNR7m4A9o+q468UG+dmbg==} resolution: {integrity: sha512-WVdpo3EA53PTZt3p2fdmPgoF9jIichRcpd2GmuZV58P3wlFWq9iKefdD4M87mskzdxwGUiMQlPiktNcsZZWMkQ==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@oxc-parser/binding-wasm32-wasi@0.72.3': '@oxc-parser/binding-wasm32-wasi@0.75.0':
resolution: {integrity: sha512-x0Ojn/jyRUk6MllvVB/puSvI2tczZBIYweKVYHNv1nBatjPRiqo+6/uXiKrZwSfGLkGARrKkTuHSa5RdZBMOdA==} resolution: {integrity: sha512-SPXt1nYkmjuGDh7ZfnfarObQq8AnnvA+m+hmcOqXVSxLJWZQhXDF6AHaS0dzKhpIDHWjScbTp5c9eqINLbPh7g==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
cpu: [wasm32] cpu: [wasm32]
'@oxc-parser/binding-win32-arm64-msvc@0.72.3': '@oxc-parser/binding-win32-arm64-msvc@0.75.0':
resolution: {integrity: sha512-kRVAl87ugRjLZTm9vGUyiXU50mqxLPHY81rgnZUP1HtNcqcmTQtM/wUKQL2UdqvhA6xm6zciqzqCgJfU+RW8uA==} resolution: {integrity: sha512-YBEBK1K5nC6GkQykdtGjKCY+/QvmKiG2blmTOKNUXnsSyDNDivJSClpjb+UrziR87skxnvcn3GbMPY08aG2AVg==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@oxc-parser/binding-win32-x64-msvc@0.72.3': '@oxc-parser/binding-win32-x64-msvc@0.75.0':
resolution: {integrity: sha512-vpVdoGAP5iGE5tIEPJgr7FkQJZA+sKjMkg5x1jarWJ1nnBamfGsfYiZum4QjCfW7jb+pl42rHVSS3lRmMPcyrQ==} resolution: {integrity: sha512-o1f+JB8zFObz+5fvmMlP0ykBUkcVN1STjEHmRahD0TOZG1EJeUvz6xaLXr7EHeRW8z5ftEEGJK5nLlitwLXxCQ==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@oxc-project/types@0.72.3': '@oxc-project/types@0.75.0':
resolution: {integrity: sha512-CfAC4wrmMkUoISpQkFAIfMVvlPfQV3xg7ZlcqPXPOIMQhdKIId44G8W0mCPgtpWdFFAyJ+SFtiM+9vbyCkoVng==} resolution: {integrity: sha512-QMW+06WOXs7+F301Y3X0VpmWhwuQVc/X/RP2zF9OIwvSMmsif3xURS2wxbakFIABYsytgBcHpUcFepVS0Qnd3A==}
'@parcel/watcher-android-arm64@2.5.1': '@parcel/watcher-android-arm64@2.5.1':
resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
@@ -2731,9 +2737,9 @@ packages:
'@volar/typescript@2.4.15': '@volar/typescript@2.4.15':
resolution: {integrity: sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==} resolution: {integrity: sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==}
'@vue-macros/common@1.16.1': '@vue-macros/common@3.0.0-beta.15':
resolution: {integrity: sha512-Pn/AWMTjoMYuquepLZP813BIcq8DTZiNCoaceuNlvaYuOTd8DqBZWc5u0uOMQZMInwME1mdSmmBAcTluiV9Jtg==} resolution: {integrity: sha512-DMgq/rIh1H20WYNWU7krIbEfJRYDDhy7ix64GlT4AVUJZZWCZ5pxiYVJR3A3GmWQPkn7Pg7i3oIiGqu4JGC65w==}
engines: {node: '>=16.14.0'} engines: {node: '>=20.18.0'}
peerDependencies: peerDependencies:
vue: ^2.7.0 || ^3.2.25 vue: ^2.7.0 || ^3.2.25
peerDependenciesMeta: peerDependenciesMeta:
@@ -3031,9 +3037,9 @@ packages:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'} engines: {node: '>=12'}
ast-kit@1.4.3: ast-kit@2.1.1:
resolution: {integrity: sha512-MdJqjpodkS5J149zN0Po+HPshkTdUyrvF7CKTafUgv69vBSPtncrj+3IiUgqdd7ElIEkbeXCsEouBUwLrw9Ilg==} resolution: {integrity: sha512-mfh6a7gKXE8pDlxTvqIc/syH/P3RkzbOF6LeHdcKztLEzYe6IMsRCL7N8vI7hqTGWNxpkCuuRTpT21xNWqhRtQ==}
engines: {node: '>=16.14.0'} engines: {node: '>=20.18.0'}
ast-module-types@6.0.1: ast-module-types@6.0.1:
resolution: {integrity: sha512-WHw67kLXYbZuHTmcdbIrVArCq5wxo6NEuj3hiYAWr8mwJeC+C2mMCIBIWCiDoCye/OF/xelc+teJ1ERoWmnEIA==} resolution: {integrity: sha512-WHw67kLXYbZuHTmcdbIrVArCq5wxo6NEuj3hiYAWr8mwJeC+C2mMCIBIWCiDoCye/OF/xelc+teJ1ERoWmnEIA==}
@@ -3043,9 +3049,9 @@ packages:
resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
engines: {node: '>=4'} engines: {node: '>=4'}
ast-walker-scope@0.6.2: ast-walker-scope@0.8.1:
resolution: {integrity: sha512-1UWOyC50xI3QZkRuDj6PqDtpm1oHWtYs+NQGwqL/2R11eN3Q81PHAHPM0SWW3BNQm53UDwS//Jv8L4CCVLM1bQ==} resolution: {integrity: sha512-72XOdbzQCMKERvFrxAykatn2pu7osPNq/sNUzwcHdWzwPvOsNpPqkawfDXVvQbA2RT+ivtsMNjYdojTUZitt1A==}
engines: {node: '>=16.14.0'} engines: {node: '>=20.18.0'}
async-retry@1.3.3: async-retry@1.3.3:
resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==}
@@ -5184,9 +5190,9 @@ packages:
magic-regexp@0.8.0: magic-regexp@0.8.0:
resolution: {integrity: sha512-lOSLWdE156csDYwCTIGiAymOLN7Epu/TU5e/oAnISZfU6qP+pgjkE+xbVjVn3yLPKN8n1G2yIAYTAM5KRk6/ow==} resolution: {integrity: sha512-lOSLWdE156csDYwCTIGiAymOLN7Epu/TU5e/oAnISZfU6qP+pgjkE+xbVjVn3yLPKN8n1G2yIAYTAM5KRk6/ow==}
magic-string-ast@0.7.1: magic-string-ast@1.0.0:
resolution: {integrity: sha512-ub9iytsEbT7Yw/Pd29mSo/cNQpaEu67zR1VVcXDiYjSFwzeBxNdTd0FMnSslLQXiRj8uGPzwsaoefrMD5XAmdw==} resolution: {integrity: sha512-8rbuNizut2gW94kv7pqgt0dvk+AHLPVIm0iJtpSgQJ9dx21eWx5SBel8z3jp1xtC0j6/iyK3AWGhAR1H61s7LA==}
engines: {node: '>=16.14.0'} engines: {node: '>=20.18.0'}
magic-string@0.30.17: magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
@@ -5676,9 +5682,9 @@ packages:
nuxt-site-config@3.2.2: nuxt-site-config@3.2.2:
resolution: {integrity: sha512-0zCo8nZKk11F4oEWvioTPpxYesJtiwWGfanh1coOfPmvGdYuCcJ/pusy8zdPb6xQkvAYqpTZUy7KKfjXjrE8rA==} resolution: {integrity: sha512-0zCo8nZKk11F4oEWvioTPpxYesJtiwWGfanh1coOfPmvGdYuCcJ/pusy8zdPb6xQkvAYqpTZUy7KKfjXjrE8rA==}
nuxt@3.17.5: nuxt@3.17.6:
resolution: {integrity: sha512-HWTWpM1/RDcCt9DlnzrPcNvUmGqc62IhlZJvr7COSfnJq2lKYiBKIIesEaOF+57Qjw7TfLPc1DQVBNtxfKBxEw==} resolution: {integrity: sha512-kOsoJk7YvlcUChJXhCrVP18zRWKquUdrZSoJX8bCcQ54OhFOr4s2VhsxnbJVP7AtCiBSLbKuQt6ZBO7lE159Aw==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0.0} engines: {node: ^20.9.0 || >=22.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
'@parcel/watcher': ^2.1.0 '@parcel/watcher': ^2.1.0
@@ -5756,9 +5762,9 @@ packages:
resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
oxc-parser@0.72.3: oxc-parser@0.75.0:
resolution: {integrity: sha512-JYQeJKDcUTTZ/uTdJ+fZBGFjAjkLD1h0p3Tf44ZYXRcoMk+57d81paNPFAAwzrzzqhZmkGvKKXDxwyhJXYZlpg==} resolution: {integrity: sha512-WbgEAOXvO327lFz12U+utDzNDt5+gM9gRCLfi/q3oUaoVd7tzVNlbxhJCS9PBM97tEDghJQXbnr6vqzqvU2TPQ==}
engines: {node: '>=14.0.0'} engines: {node: '>=20.0.0'}
p-event@6.0.1: p-event@6.0.1:
resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==} resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==}
@@ -5918,8 +5924,8 @@ packages:
pkg-types@1.3.1: pkg-types@1.3.1:
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
pkg-types@2.1.1: pkg-types@2.2.0:
resolution: {integrity: sha512-eY0QFb6eSwc9+0d/5D2lFFUq+A3n3QNGSy/X2Nvp+6MfzGw2u6EbA7S80actgjY1lkvvI0pqB+a4hioMh443Ew==} resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==}
playwright-core@1.53.1: playwright-core@1.53.1:
resolution: {integrity: sha512-Z46Oq7tLAyT0lGoFx4DOuB1IA9D1TPj0QkYxpPVUnGDqHHvDpCftu1J2hM2PiWsNMoZh8+LQaarAWcDfPBc6zg==} resolution: {integrity: sha512-Z46Oq7tLAyT0lGoFx4DOuB1IA9D1TPj0QkYxpPVUnGDqHHvDpCftu1J2hM2PiWsNMoZh8+LQaarAWcDfPBc6zg==}
@@ -7120,10 +7126,11 @@ packages:
'@nuxt/kit': '@nuxt/kit':
optional: true optional: true
unplugin-vue-router@0.12.0: unplugin-vue-router@0.14.0:
resolution: {integrity: sha512-xjgheKU0MegvXQcy62GVea0LjyOdMxN0/QH+ijN29W62ZlMhG7o7K+0AYqfpprvPwpWtuRjiyC5jnV2SxWye2w==} resolution: {integrity: sha512-ipjunvS5e2aFHBAUFuLbHl2aHKbXXXBhTxGT9wZx66fNVPdEQzVVitF8nODr1plANhTTa3UZ+DQu9uyLngMzoQ==}
peerDependencies: peerDependencies:
vue-router: ^4.4.0 '@vue/compiler-sfc': ^3.5.17
vue-router: ^4.5.1
peerDependenciesMeta: peerDependenciesMeta:
vue-router: vue-router:
optional: true optional: true
@@ -8765,7 +8772,7 @@ snapshots:
ohash: 2.0.11 ohash: 2.0.11
pathe: 2.0.3 pathe: 2.0.3
perfect-debounce: 1.0.0 perfect-debounce: 1.0.0
pkg-types: 2.1.1 pkg-types: 2.2.0
scule: 1.3.0 scule: 1.3.0
semver: 7.7.2 semver: 7.7.2
std-env: 3.9.0 std-env: 3.9.0
@@ -8777,7 +8784,7 @@ snapshots:
'@nuxt/content@3.6.1(better-sqlite3@12.2.0)(magicast@0.3.5)': '@nuxt/content@3.6.1(better-sqlite3@12.2.0)(magicast@0.3.5)':
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@nuxtjs/mdc': 0.17.0(magicast@0.3.5) '@nuxtjs/mdc': 0.17.0(magicast@0.3.5)
'@shikijs/langs': 3.7.0 '@shikijs/langs': 3.7.0
'@sqlite.org/sqlite-wasm': 3.50.1-build1 '@sqlite.org/sqlite-wasm': 3.50.1-build1
@@ -8807,7 +8814,7 @@ snapshots:
nypm: 0.6.0 nypm: 0.6.0
ohash: 2.0.11 ohash: 2.0.11
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
remark-mdc: 3.6.0 remark-mdc: 3.6.0
scule: 1.3.0 scule: 1.3.0
shiki: 3.7.0 shiki: 3.7.0
@@ -8836,8 +8843,8 @@ snapshots:
'@nuxt/devtools-kit@2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))': '@nuxt/devtools-kit@2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))':
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@nuxt/schema': 3.17.5 '@nuxt/schema': 3.17.6
execa: 8.0.1 execa: 8.0.1
vite: 6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0) vite: 6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)
transitivePeerDependencies: transitivePeerDependencies:
@@ -8850,7 +8857,7 @@ snapshots:
execa: 8.0.1 execa: 8.0.1
magicast: 0.3.5 magicast: 0.3.5
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
prompts: 2.4.2 prompts: 2.4.2
semver: 7.7.2 semver: 7.7.2
@@ -8858,7 +8865,7 @@ snapshots:
dependencies: dependencies:
'@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)) '@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
'@nuxt/devtools-wizard': 2.6.0 '@nuxt/devtools-wizard': 2.6.0
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@vue/devtools-core': 7.7.7(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@vue/devtools-core': 7.7.7(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
'@vue/devtools-kit': 7.7.7 '@vue/devtools-kit': 7.7.7
birpc: 2.4.0 birpc: 2.4.0
@@ -8878,14 +8885,14 @@ snapshots:
ohash: 2.0.11 ohash: 2.0.11
pathe: 2.0.3 pathe: 2.0.3
perfect-debounce: 1.0.0 perfect-debounce: 1.0.0
pkg-types: 2.1.1 pkg-types: 2.2.0
semver: 7.7.2 semver: 7.7.2
simple-git: 3.28.0 simple-git: 3.28.0
sirv: 3.0.1 sirv: 3.0.1
structured-clone-es: 1.0.0 structured-clone-es: 1.0.0
tinyglobby: 0.2.14 tinyglobby: 0.2.14
vite: 6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0) vite: 6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)
vite-plugin-inspect: 11.3.0(@nuxt/kit@3.17.5(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)) vite-plugin-inspect: 11.3.0(@nuxt/kit@3.17.6(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
vite-plugin-vue-tracer: 1.0.0(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) vite-plugin-vue-tracer: 1.0.0(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
which: 5.0.0 which: 5.0.0
ws: 8.18.3 ws: 8.18.3
@@ -8937,7 +8944,7 @@ snapshots:
'@nuxt/fonts@0.11.4(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1)(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))': '@nuxt/fonts@0.11.4(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1)(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))':
dependencies: dependencies:
'@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)) '@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
consola: 3.4.2 consola: 3.4.2
css-tree: 3.1.0 css-tree: 3.1.0
defu: 6.1.4 defu: 6.1.4
@@ -8986,7 +8993,7 @@ snapshots:
'@iconify/utils': 2.3.0 '@iconify/utils': 2.3.0
'@iconify/vue': 5.0.0(vue@3.5.17(typescript@5.8.3)) '@iconify/vue': 5.0.0(vue@3.5.17(typescript@5.8.3))
'@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)) '@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
consola: 3.4.2 consola: 3.4.2
local-pkg: 1.1.1 local-pkg: 1.1.1
mlly: 1.7.4 mlly: 1.7.4
@@ -9003,7 +9010,7 @@ snapshots:
'@nuxt/image@1.10.0(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1)(magicast@0.3.5)': '@nuxt/image@1.10.0(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1)(magicast@0.3.5)':
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
consola: 3.4.2 consola: 3.4.2
defu: 6.1.4 defu: 6.1.4
h3: 1.15.3 h3: 1.15.3
@@ -9037,7 +9044,7 @@ snapshots:
- magicast - magicast
- uploadthing - uploadthing
'@nuxt/kit@3.17.5(magicast@0.3.5)': '@nuxt/kit@3.17.6(magicast@0.3.5)':
dependencies: dependencies:
c12: 3.0.4(magicast@0.3.5) c12: 3.0.4(magicast@0.3.5)
consola: 3.4.2 consola: 3.4.2
@@ -9052,7 +9059,7 @@ snapshots:
mlly: 1.7.4 mlly: 1.7.4
ohash: 2.0.11 ohash: 2.0.11
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
scule: 1.3.0 scule: 1.3.0
semver: 7.7.2 semver: 7.7.2
std-env: 3.9.0 std-env: 3.9.0
@@ -9075,7 +9082,7 @@ snapshots:
mkdist: 2.3.0(typescript@5.8.3)(vue-sfc-transformer@0.1.16(@vue/compiler-core@3.5.17)(esbuild@0.25.5)(vue@3.5.17(typescript@5.8.3)))(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3)) mkdist: 2.3.0(typescript@5.8.3)(vue-sfc-transformer@0.1.16(@vue/compiler-core@3.5.17)(esbuild@0.25.5)(vue@3.5.17(typescript@5.8.3)))(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3))
mlly: 1.7.4 mlly: 1.7.4
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
tsconfck: 3.1.6(typescript@5.8.3) tsconfck: 3.1.6(typescript@5.8.3)
typescript: 5.8.3 typescript: 5.8.3
unbuild: 3.5.0(typescript@5.8.3)(vue-sfc-transformer@0.1.16(@vue/compiler-core@3.5.17)(esbuild@0.25.5)(vue@3.5.17(typescript@5.8.3)))(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3)) unbuild: 3.5.0(typescript@5.8.3)(vue-sfc-transformer@0.1.16(@vue/compiler-core@3.5.17)(esbuild@0.25.5)(vue@3.5.17(typescript@5.8.3)))(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3))
@@ -9087,7 +9094,7 @@ snapshots:
- vue - vue
- vue-tsc - vue-tsc
'@nuxt/schema@3.17.5': '@nuxt/schema@3.17.6':
dependencies: dependencies:
'@vue/shared': 3.5.17 '@vue/shared': 3.5.17
consola: 3.4.2 consola: 3.4.2
@@ -9097,7 +9104,7 @@ snapshots:
'@nuxt/telemetry@2.6.6(magicast@0.3.5)': '@nuxt/telemetry@2.6.6(magicast@0.3.5)':
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
citty: 0.1.6 citty: 0.1.6
consola: 3.4.2 consola: 3.4.2
destr: 2.0.5 destr: 2.0.5
@@ -9114,8 +9121,8 @@ snapshots:
'@nuxt/test-utils@3.19.1(@types/node@24.0.7)(@vue/test-utils@2.4.6)(happy-dom@18.0.1)(jiti@2.4.2)(lightningcss@1.30.1)(magicast@0.3.5)(playwright-core@1.53.1)(terser@5.43.1)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.7)(happy-dom@18.0.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0)': '@nuxt/test-utils@3.19.1(@types/node@24.0.7)(@vue/test-utils@2.4.6)(happy-dom@18.0.1)(jiti@2.4.2)(lightningcss@1.30.1)(magicast@0.3.5)(playwright-core@1.53.1)(terser@5.43.1)(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.7)(happy-dom@18.0.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(yaml@2.8.0)':
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@nuxt/schema': 3.17.5 '@nuxt/schema': 3.17.6
c12: 3.0.4(magicast@0.3.5) c12: 3.0.4(magicast@0.3.5)
consola: 3.4.2 consola: 3.4.2
defu: 6.1.4 defu: 6.1.4
@@ -9163,8 +9170,8 @@ snapshots:
'@nuxt/ui-pro@https://pkg.pr.new/@nuxt/ui-pro@3d48704(@babel/parser@7.27.7)(joi@17.13.3)(magicast@0.3.5)(react@19.1.0)(superstruct@2.0.2)(typescript@5.8.3)(valibot@1.1.0(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3))(yup@1.6.1)(zod@3.25.67)': '@nuxt/ui-pro@https://pkg.pr.new/@nuxt/ui-pro@3d48704(@babel/parser@7.27.7)(joi@17.13.3)(magicast@0.3.5)(react@19.1.0)(superstruct@2.0.2)(typescript@5.8.3)(valibot@1.1.0(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3))(yup@1.6.1)(zod@3.25.67)':
dependencies: dependencies:
'@ai-sdk/vue': 1.2.12(vue@3.5.17(typescript@5.8.3))(zod@3.25.67) '@ai-sdk/vue': 1.2.12(vue@3.5.17(typescript@5.8.3))(zod@3.25.67)
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@nuxt/schema': 3.17.5 '@nuxt/schema': 3.17.6
'@nuxt/ui': 'link:' '@nuxt/ui': 'link:'
'@standard-schema/spec': 1.0.0 '@standard-schema/spec': 1.0.0
'@vueuse/core': 13.4.0(vue@3.5.17(typescript@5.8.3)) '@vueuse/core': 13.4.0(vue@3.5.17(typescript@5.8.3))
@@ -9176,13 +9183,13 @@ snapshots:
ofetch: 1.4.1 ofetch: 1.4.1
ohash: 2.0.11 ohash: 2.0.11
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
scule: 1.3.0 scule: 1.3.0
tinyglobby: 0.2.14 tinyglobby: 0.2.14
typescript: 5.8.3 typescript: 5.8.3
unplugin: 2.3.5 unplugin: 2.3.5
unplugin-auto-import: 19.3.0(@nuxt/kit@3.17.5(magicast@0.3.5))(@vueuse/core@13.4.0(vue@3.5.17(typescript@5.8.3))) unplugin-auto-import: 19.3.0(@nuxt/kit@3.17.6(magicast@0.3.5))(@vueuse/core@13.4.0(vue@3.5.17(typescript@5.8.3)))
unplugin-vue-components: 28.8.0(@babel/parser@7.27.7)(@nuxt/kit@3.17.5(magicast@0.3.5))(vue@3.5.17(typescript@5.8.3)) unplugin-vue-components: 28.8.0(@babel/parser@7.27.7)(@nuxt/kit@3.17.6(magicast@0.3.5))(vue@3.5.17(typescript@5.8.3))
optionalDependencies: optionalDependencies:
joi: 17.13.3 joi: 17.13.3
superstruct: 2.0.2 superstruct: 2.0.2
@@ -9199,9 +9206,9 @@ snapshots:
- supports-color - supports-color
- vue - vue
'@nuxt/vite-builder@3.17.5(@types/node@24.0.7)(eslint@9.30.0(jiti@2.4.2))(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)': '@nuxt/vite-builder@3.17.6(@types/node@24.0.7)(eslint@9.30.0(jiti@2.4.2))(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)':
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@rollup/plugin-replace': 6.0.2(rollup@4.34.9) '@rollup/plugin-replace': 6.0.2(rollup@4.34.9)
'@vitejs/plugin-vue': 5.2.4(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@vitejs/plugin-vue': 5.2.4(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
'@vitejs/plugin-vue-jsx': 4.2.0(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
@@ -9223,13 +9230,12 @@ snapshots:
ohash: 2.0.11 ohash: 2.0.11
pathe: 2.0.3 pathe: 2.0.3
perfect-debounce: 1.0.0 perfect-debounce: 1.0.0
pkg-types: 2.1.1 pkg-types: 2.2.0
postcss: 8.5.6 postcss: 8.5.6
rollup-plugin-visualizer: 6.0.3(rollup@4.34.9) rollup-plugin-visualizer: 6.0.3(rollup@4.34.9)
std-env: 3.9.0 std-env: 3.9.0
ufo: 1.6.1 ufo: 1.6.1
unenv: 2.0.0-rc.18 unenv: 2.0.0-rc.18
unplugin: 2.3.5
vite: 6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0) vite: 6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)
vite-node: 3.2.4(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0) vite-node: 3.2.4(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)
vite-plugin-checker: 0.9.3(eslint@9.30.0(jiti@2.4.2))(meow@13.2.0)(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3)) vite-plugin-checker: 0.9.3(eslint@9.30.0(jiti@2.4.2))(meow@13.2.0)(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))
@@ -9264,7 +9270,7 @@ snapshots:
dependencies: dependencies:
'@cloudflare/workers-types': 4.20250628.0 '@cloudflare/workers-types': 4.20250628.0
'@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)) '@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@uploadthing/mime-types': 0.3.5 '@uploadthing/mime-types': 0.3.5
citty: 0.1.6 citty: 0.1.6
confbox: 0.2.2 confbox: 0.2.2
@@ -9275,7 +9281,7 @@ snapshots:
nitro-cloudflare-dev: 0.2.2 nitro-cloudflare-dev: 0.2.2
ofetch: 1.4.1 ofetch: 1.4.1
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
std-env: 3.9.0 std-env: 3.9.0
ufo: 1.6.1 ufo: 1.6.1
uncrypto: 0.1.3 uncrypto: 0.1.3
@@ -9305,7 +9311,7 @@ snapshots:
'@nuxtjs/color-mode@3.5.2(magicast@0.3.5)': '@nuxtjs/color-mode@3.5.2(magicast@0.3.5)':
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
pathe: 1.1.2 pathe: 1.1.2
pkg-types: 1.3.1 pkg-types: 1.3.1
semver: 7.7.2 semver: 7.7.2
@@ -9314,7 +9320,7 @@ snapshots:
'@nuxtjs/mdc@0.17.0(magicast@0.3.5)': '@nuxtjs/mdc@0.17.0(magicast@0.3.5)':
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@shikijs/langs': 3.7.0 '@shikijs/langs': 3.7.0
'@shikijs/themes': 3.7.0 '@shikijs/themes': 3.7.0
'@shikijs/transformers': 3.7.0 '@shikijs/transformers': 3.7.0
@@ -9363,7 +9369,7 @@ snapshots:
'@nuxtjs/plausible@1.2.0(magicast@0.3.5)': '@nuxtjs/plausible@1.2.0(magicast@0.3.5)':
dependencies: dependencies:
'@barbapapazes/plausible-tracker': 0.5.6 '@barbapapazes/plausible-tracker': 0.5.6
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
defu: 6.1.4 defu: 6.1.4
ufo: 1.6.1 ufo: 1.6.1
transitivePeerDependencies: transitivePeerDependencies:
@@ -9497,51 +9503,54 @@ snapshots:
'@opentelemetry/api@1.9.0': {} '@opentelemetry/api@1.9.0': {}
'@oxc-parser/binding-darwin-arm64@0.72.3': '@oxc-parser/binding-android-arm64@0.75.0':
optional: true optional: true
'@oxc-parser/binding-darwin-x64@0.72.3': '@oxc-parser/binding-darwin-arm64@0.75.0':
optional: true optional: true
'@oxc-parser/binding-freebsd-x64@0.72.3': '@oxc-parser/binding-darwin-x64@0.75.0':
optional: true optional: true
'@oxc-parser/binding-linux-arm-gnueabihf@0.72.3': '@oxc-parser/binding-freebsd-x64@0.75.0':
optional: true optional: true
'@oxc-parser/binding-linux-arm-musleabihf@0.72.3': '@oxc-parser/binding-linux-arm-gnueabihf@0.75.0':
optional: true optional: true
'@oxc-parser/binding-linux-arm64-gnu@0.72.3': '@oxc-parser/binding-linux-arm-musleabihf@0.75.0':
optional: true optional: true
'@oxc-parser/binding-linux-arm64-musl@0.72.3': '@oxc-parser/binding-linux-arm64-gnu@0.75.0':
optional: true optional: true
'@oxc-parser/binding-linux-riscv64-gnu@0.72.3': '@oxc-parser/binding-linux-arm64-musl@0.75.0':
optional: true optional: true
'@oxc-parser/binding-linux-s390x-gnu@0.72.3': '@oxc-parser/binding-linux-riscv64-gnu@0.75.0':
optional: true optional: true
'@oxc-parser/binding-linux-x64-gnu@0.72.3': '@oxc-parser/binding-linux-s390x-gnu@0.75.0':
optional: true optional: true
'@oxc-parser/binding-linux-x64-musl@0.72.3': '@oxc-parser/binding-linux-x64-gnu@0.75.0':
optional: true optional: true
'@oxc-parser/binding-wasm32-wasi@0.72.3': '@oxc-parser/binding-linux-x64-musl@0.75.0':
optional: true
'@oxc-parser/binding-wasm32-wasi@0.75.0':
dependencies: dependencies:
'@napi-rs/wasm-runtime': 0.2.11 '@napi-rs/wasm-runtime': 0.2.11
optional: true optional: true
'@oxc-parser/binding-win32-arm64-msvc@0.72.3': '@oxc-parser/binding-win32-arm64-msvc@0.75.0':
optional: true optional: true
'@oxc-parser/binding-win32-x64-msvc@0.72.3': '@oxc-parser/binding-win32-x64-msvc@0.75.0':
optional: true optional: true
'@oxc-project/types@0.72.3': {} '@oxc-project/types@0.75.0': {}
'@parcel/watcher-android-arm64@2.5.1': '@parcel/watcher-android-arm64@2.5.1':
optional: true optional: true
@@ -10378,14 +10387,13 @@ snapshots:
path-browserify: 1.0.1 path-browserify: 1.0.1
vscode-uri: 3.1.0 vscode-uri: 3.1.0
'@vue-macros/common@1.16.1(vue@3.5.17(typescript@5.8.3))': '@vue-macros/common@3.0.0-beta.15(vue@3.5.17(typescript@5.8.3))':
dependencies: dependencies:
'@vue/compiler-sfc': 3.5.17 '@vue/compiler-sfc': 3.5.17
ast-kit: 1.4.3 ast-kit: 2.1.1
local-pkg: 1.1.1 local-pkg: 1.1.1
magic-string-ast: 0.7.1 magic-string-ast: 1.0.0
pathe: 2.0.3 unplugin-utils: 0.2.4
picomatch: 4.0.2
optionalDependencies: optionalDependencies:
vue: 3.5.17(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
@@ -10566,13 +10574,13 @@ snapshots:
'@vueuse/metadata@13.4.0': {} '@vueuse/metadata@13.4.0': {}
'@vueuse/nuxt@13.4.0(magicast@0.3.5)(nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.7)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': '@vueuse/nuxt@13.4.0(magicast@0.3.5)(nuxt@3.17.6(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))':
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@vueuse/core': 13.4.0(vue@3.5.17(typescript@5.8.3)) '@vueuse/core': 13.4.0(vue@3.5.17(typescript@5.8.3))
'@vueuse/metadata': 13.4.0 '@vueuse/metadata': 13.4.0
local-pkg: 1.1.1 local-pkg: 1.1.1
nuxt: 3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.7)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0) nuxt: 3.17.6(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0)
vue: 3.5.17(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
transitivePeerDependencies: transitivePeerDependencies:
- magicast - magicast
@@ -10728,7 +10736,7 @@ snapshots:
assertion-error@2.0.1: {} assertion-error@2.0.1: {}
ast-kit@1.4.3: ast-kit@2.1.1:
dependencies: dependencies:
'@babel/parser': 7.27.7 '@babel/parser': 7.27.7
pathe: 2.0.3 pathe: 2.0.3
@@ -10739,10 +10747,10 @@ snapshots:
dependencies: dependencies:
tslib: 2.8.1 tslib: 2.8.1
ast-walker-scope@0.6.2: ast-walker-scope@0.8.1:
dependencies: dependencies:
'@babel/parser': 7.27.7 '@babel/parser': 7.27.7
ast-kit: 1.4.3 ast-kit: 2.1.1
async-retry@1.3.3: async-retry@1.3.3:
dependencies: dependencies:
@@ -10898,7 +10906,7 @@ snapshots:
ohash: 2.0.11 ohash: 2.0.11
pathe: 2.0.3 pathe: 2.0.3
perfect-debounce: 1.0.0 perfect-debounce: 1.0.0
pkg-types: 2.1.1 pkg-types: 2.2.0
rc9: 2.1.2 rc9: 2.1.2
optionalDependencies: optionalDependencies:
magicast: 0.3.5 magicast: 0.3.5
@@ -12957,7 +12965,7 @@ snapshots:
local-pkg@1.1.1: local-pkg@1.1.1:
dependencies: dependencies:
mlly: 1.7.4 mlly: 1.7.4
pkg-types: 2.1.1 pkg-types: 2.2.0
quansync: 0.2.10 quansync: 0.2.10
locate-path@6.0.0: locate-path@6.0.0:
@@ -13046,7 +13054,7 @@ snapshots:
ufo: 1.6.1 ufo: 1.6.1
unplugin: 2.3.5 unplugin: 2.3.5
magic-string-ast@0.7.1: magic-string-ast@1.0.0:
dependencies: dependencies:
magic-string: 0.30.17 magic-string: 0.30.17
@@ -13484,7 +13492,7 @@ snapshots:
jiti: 1.21.7 jiti: 1.21.7
mlly: 1.7.4 mlly: 1.7.4
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
postcss: 8.5.6 postcss: 8.5.6
postcss-nested: 7.0.2(postcss@8.5.6) postcss-nested: 7.0.2(postcss@8.5.6)
semver: 7.7.2 semver: 7.7.2
@@ -13571,7 +13579,7 @@ snapshots:
dependencies: dependencies:
consola: 3.4.2 consola: 3.4.2
mlly: 1.7.4 mlly: 1.7.4
pkg-types: 2.1.1 pkg-types: 2.2.0
nitropack@2.11.13(better-sqlite3@12.2.0): nitropack@2.11.13(better-sqlite3@12.2.0):
dependencies: dependencies:
@@ -13623,7 +13631,7 @@ snapshots:
ohash: 2.0.11 ohash: 2.0.11
pathe: 2.0.3 pathe: 2.0.3
perfect-debounce: 1.0.0 perfect-debounce: 1.0.0
pkg-types: 2.1.1 pkg-types: 2.2.0
pretty-bytes: 6.1.1 pretty-bytes: 6.1.1
radix3: 1.1.2 radix3: 1.1.2
rollup: 4.34.9 rollup: 4.34.9
@@ -13752,7 +13760,7 @@ snapshots:
nuxt-component-meta@0.11.0(magicast@0.3.5): nuxt-component-meta@0.11.0(magicast@0.3.5):
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
citty: 0.1.6 citty: 0.1.6
mlly: 1.7.4 mlly: 1.7.4
ohash: 2.0.11 ohash: 2.0.11
@@ -13765,7 +13773,7 @@ snapshots:
nuxt-component-meta@0.12.0(magicast@0.3.5): nuxt-component-meta@0.12.0(magicast@0.3.5):
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
citty: 0.1.6 citty: 0.1.6
mlly: 1.7.4 mlly: 1.7.4
ohash: 2.0.11 ohash: 2.0.11
@@ -13778,14 +13786,14 @@ snapshots:
nuxt-llms@0.1.3(magicast@0.3.5): nuxt-llms@0.1.3(magicast@0.3.5):
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
transitivePeerDependencies: transitivePeerDependencies:
- magicast - magicast
nuxt-og-image@5.1.8(@unhead/vue@2.0.11(vue@3.5.17(typescript@5.8.3)))(magicast@0.3.5)(unstorage@1.16.0(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1))(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)): nuxt-og-image@5.1.8(@unhead/vue@2.0.11(vue@3.5.17(typescript@5.8.3)))(magicast@0.3.5)(unstorage@1.16.0(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1))(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)):
dependencies: dependencies:
'@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)) '@nuxt/devtools-kit': 2.6.0(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@resvg/resvg-js': 2.6.2 '@resvg/resvg-js': 2.6.2
'@resvg/resvg-wasm': 2.6.2 '@resvg/resvg-wasm': 2.6.2
'@unhead/vue': 2.0.11(vue@3.5.17(typescript@5.8.3)) '@unhead/vue': 2.0.11(vue@3.5.17(typescript@5.8.3))
@@ -13803,7 +13811,7 @@ snapshots:
ofetch: 1.4.1 ofetch: 1.4.1
ohash: 2.0.11 ohash: 2.0.11
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
playwright-core: 1.53.1 playwright-core: 1.53.1
radix3: 1.1.2 radix3: 1.1.2
satori: 0.15.2 satori: 0.15.2
@@ -13824,8 +13832,8 @@ snapshots:
nuxt-site-config-kit@3.2.2(magicast@0.3.5)(vue@3.5.17(typescript@5.8.3)): nuxt-site-config-kit@3.2.2(magicast@0.3.5)(vue@3.5.17(typescript@5.8.3)):
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
pkg-types: 2.1.1 pkg-types: 2.2.0
site-config-stack: 3.2.2(vue@3.5.17(typescript@5.8.3)) site-config-stack: 3.2.2(vue@3.5.17(typescript@5.8.3))
std-env: 3.9.0 std-env: 3.9.0
ufo: 1.6.1 ufo: 1.6.1
@@ -13835,10 +13843,10 @@ snapshots:
nuxt-site-config@3.2.2(magicast@0.3.5)(vue@3.5.17(typescript@5.8.3)): nuxt-site-config@3.2.2(magicast@0.3.5)(vue@3.5.17(typescript@5.8.3)):
dependencies: dependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
nuxt-site-config-kit: 3.2.2(magicast@0.3.5)(vue@3.5.17(typescript@5.8.3)) nuxt-site-config-kit: 3.2.2(magicast@0.3.5)(vue@3.5.17(typescript@5.8.3))
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
sirv: 3.0.1 sirv: 3.0.1
site-config-stack: 3.2.2(vue@3.5.17(typescript@5.8.3)) site-config-stack: 3.2.2(vue@3.5.17(typescript@5.8.3))
ufo: 1.6.1 ufo: 1.6.1
@@ -13846,15 +13854,15 @@ snapshots:
- magicast - magicast
- vue - vue
nuxt@3.17.5(@parcel/watcher@2.5.1)(@types/node@24.0.7)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0): nuxt@3.17.6(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(eslint@9.30.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.8.0):
dependencies: dependencies:
'@nuxt/cli': 3.25.1(magicast@0.3.5) '@nuxt/cli': 3.25.1(magicast@0.3.5)
'@nuxt/devalue': 2.0.2 '@nuxt/devalue': 2.0.2
'@nuxt/devtools': 2.6.0(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@nuxt/devtools': 2.6.0(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@nuxt/schema': 3.17.5 '@nuxt/schema': 3.17.6
'@nuxt/telemetry': 2.6.6(magicast@0.3.5) '@nuxt/telemetry': 2.6.6(magicast@0.3.5)
'@nuxt/vite-builder': 3.17.5(@types/node@24.0.7)(eslint@9.30.0(jiti@2.4.2))(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0) '@nuxt/vite-builder': 3.17.6(@types/node@24.0.7)(eslint@9.30.0(jiti@2.4.2))(lightningcss@1.30.1)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.34.9)(terser@5.43.1)(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)
'@unhead/vue': 2.0.11(vue@3.5.17(typescript@5.8.3)) '@unhead/vue': 2.0.11(vue@3.5.17(typescript@5.8.3))
'@vue/shared': 3.5.17 '@vue/shared': 3.5.17
c12: 3.0.4(magicast@0.3.5) c12: 3.0.4(magicast@0.3.5)
@@ -13886,10 +13894,10 @@ snapshots:
ofetch: 1.4.1 ofetch: 1.4.1
ohash: 2.0.11 ohash: 2.0.11
on-change: 5.0.1 on-change: 5.0.1
oxc-parser: 0.72.3 oxc-parser: 0.75.0
pathe: 2.0.3 pathe: 2.0.3
perfect-debounce: 1.0.0 perfect-debounce: 1.0.0
pkg-types: 2.1.1 pkg-types: 2.2.0
radix3: 1.1.2 radix3: 1.1.2
scule: 1.3.0 scule: 1.3.0
semver: 7.7.2 semver: 7.7.2
@@ -13902,7 +13910,7 @@ snapshots:
unctx: 2.4.1 unctx: 2.4.1
unimport: 4.1.1 unimport: 4.1.1
unplugin: 2.3.5 unplugin: 2.3.5
unplugin-vue-router: 0.12.0(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3)) unplugin-vue-router: 0.14.0(@vue/compiler-sfc@3.5.17)(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3))
unstorage: 1.16.0(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1) unstorage: 1.16.0(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1)
untyped: 2.0.0 untyped: 2.0.0
vue: 3.5.17(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
@@ -13929,6 +13937,7 @@ snapshots:
- '@upstash/redis' - '@upstash/redis'
- '@vercel/blob' - '@vercel/blob'
- '@vercel/kv' - '@vercel/kv'
- '@vue/compiler-sfc'
- aws4fetch - aws4fetch
- better-sqlite3 - better-sqlite3
- bufferutil - bufferutil
@@ -13970,7 +13979,7 @@ snapshots:
citty: 0.1.6 citty: 0.1.6
consola: 3.4.2 consola: 3.4.2
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
tinyexec: 0.3.2 tinyexec: 0.3.2
object-inspect@1.13.4: {} object-inspect@1.13.4: {}
@@ -14054,24 +14063,25 @@ snapshots:
os-tmpdir@1.0.2: {} os-tmpdir@1.0.2: {}
oxc-parser@0.72.3: oxc-parser@0.75.0:
dependencies: dependencies:
'@oxc-project/types': 0.72.3 '@oxc-project/types': 0.75.0
optionalDependencies: optionalDependencies:
'@oxc-parser/binding-darwin-arm64': 0.72.3 '@oxc-parser/binding-android-arm64': 0.75.0
'@oxc-parser/binding-darwin-x64': 0.72.3 '@oxc-parser/binding-darwin-arm64': 0.75.0
'@oxc-parser/binding-freebsd-x64': 0.72.3 '@oxc-parser/binding-darwin-x64': 0.75.0
'@oxc-parser/binding-linux-arm-gnueabihf': 0.72.3 '@oxc-parser/binding-freebsd-x64': 0.75.0
'@oxc-parser/binding-linux-arm-musleabihf': 0.72.3 '@oxc-parser/binding-linux-arm-gnueabihf': 0.75.0
'@oxc-parser/binding-linux-arm64-gnu': 0.72.3 '@oxc-parser/binding-linux-arm-musleabihf': 0.75.0
'@oxc-parser/binding-linux-arm64-musl': 0.72.3 '@oxc-parser/binding-linux-arm64-gnu': 0.75.0
'@oxc-parser/binding-linux-riscv64-gnu': 0.72.3 '@oxc-parser/binding-linux-arm64-musl': 0.75.0
'@oxc-parser/binding-linux-s390x-gnu': 0.72.3 '@oxc-parser/binding-linux-riscv64-gnu': 0.75.0
'@oxc-parser/binding-linux-x64-gnu': 0.72.3 '@oxc-parser/binding-linux-s390x-gnu': 0.75.0
'@oxc-parser/binding-linux-x64-musl': 0.72.3 '@oxc-parser/binding-linux-x64-gnu': 0.75.0
'@oxc-parser/binding-wasm32-wasi': 0.72.3 '@oxc-parser/binding-linux-x64-musl': 0.75.0
'@oxc-parser/binding-win32-arm64-msvc': 0.72.3 '@oxc-parser/binding-wasm32-wasi': 0.75.0
'@oxc-parser/binding-win32-x64-msvc': 0.72.3 '@oxc-parser/binding-win32-arm64-msvc': 0.75.0
'@oxc-parser/binding-win32-x64-msvc': 0.75.0
p-event@6.0.1: p-event@6.0.1:
dependencies: dependencies:
@@ -14225,7 +14235,7 @@ snapshots:
mlly: 1.7.4 mlly: 1.7.4
pathe: 2.0.3 pathe: 2.0.3
pkg-types@2.1.1: pkg-types@2.2.0:
dependencies: dependencies:
confbox: 0.2.2 confbox: 0.2.2
exsolve: 1.0.7 exsolve: 1.0.7
@@ -15509,7 +15519,7 @@ snapshots:
mkdist: 2.3.0(typescript@5.8.3)(vue-sfc-transformer@0.1.16(@vue/compiler-core@3.5.17)(esbuild@0.25.5)(vue@3.5.17(typescript@5.8.3)))(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3)) mkdist: 2.3.0(typescript@5.8.3)(vue-sfc-transformer@0.1.16(@vue/compiler-core@3.5.17)(esbuild@0.25.5)(vue@3.5.17(typescript@5.8.3)))(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.17(typescript@5.8.3))
mlly: 1.7.4 mlly: 1.7.4
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.1.1 pkg-types: 2.2.0
pretty-bytes: 6.1.1 pretty-bytes: 6.1.1
rollup: 4.34.9 rollup: 4.34.9
rollup-plugin-dts: 6.2.1(rollup@4.34.9)(typescript@5.8.3) rollup-plugin-dts: 6.2.1(rollup@4.34.9)(typescript@5.8.3)
@@ -15654,7 +15664,7 @@ snapshots:
dependencies: dependencies:
normalize-path: 2.1.1 normalize-path: 2.1.1
unplugin-auto-import@19.3.0(@nuxt/kit@3.17.5(magicast@0.3.5))(@vueuse/core@13.4.0(vue@3.5.17(typescript@5.8.3))): unplugin-auto-import@19.3.0(@nuxt/kit@3.17.6(magicast@0.3.5))(@vueuse/core@13.4.0(vue@3.5.17(typescript@5.8.3))):
dependencies: dependencies:
local-pkg: 1.1.1 local-pkg: 1.1.1
magic-string: 0.30.17 magic-string: 0.30.17
@@ -15663,7 +15673,7 @@ snapshots:
unplugin: 2.3.5 unplugin: 2.3.5
unplugin-utils: 0.2.4 unplugin-utils: 0.2.4
optionalDependencies: optionalDependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
'@vueuse/core': 13.4.0(vue@3.5.17(typescript@5.8.3)) '@vueuse/core': 13.4.0(vue@3.5.17(typescript@5.8.3))
unplugin-utils@0.2.4: unplugin-utils@0.2.4:
@@ -15671,7 +15681,7 @@ snapshots:
pathe: 2.0.3 pathe: 2.0.3
picomatch: 4.0.2 picomatch: 4.0.2
unplugin-vue-components@28.8.0(@babel/parser@7.27.7)(@nuxt/kit@3.17.5(magicast@0.3.5))(vue@3.5.17(typescript@5.8.3)): unplugin-vue-components@28.8.0(@babel/parser@7.27.7)(@nuxt/kit@3.17.6(magicast@0.3.5))(vue@3.5.17(typescript@5.8.3)):
dependencies: dependencies:
chokidar: 3.6.0 chokidar: 3.6.0
debug: 4.3.7 debug: 4.3.7
@@ -15684,23 +15694,23 @@ snapshots:
vue: 3.5.17(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
optionalDependencies: optionalDependencies:
'@babel/parser': 7.27.7 '@babel/parser': 7.27.7
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
unplugin-vue-router@0.12.0(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3)): unplugin-vue-router@0.14.0(@vue/compiler-sfc@3.5.17)(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3)):
dependencies: dependencies:
'@babel/types': 7.27.7 '@vue-macros/common': 3.0.0-beta.15(vue@3.5.17(typescript@5.8.3))
'@vue-macros/common': 1.16.1(vue@3.5.17(typescript@5.8.3)) '@vue/compiler-sfc': 3.5.17
ast-walker-scope: 0.6.2 ast-walker-scope: 0.8.1
chokidar: 3.6.0 chokidar: 3.6.0
fast-glob: 3.3.3 fast-glob: 3.3.3
json5: 2.2.3 json5: 2.2.3
local-pkg: 1.1.1 local-pkg: 1.1.1
magic-string: 0.30.17 magic-string: 0.30.17
micromatch: 4.0.8
mlly: 1.7.4 mlly: 1.7.4
pathe: 2.0.3 pathe: 2.0.3
picomatch: 4.0.2
scule: 1.3.0 scule: 1.3.0
unplugin: 2.3.5 unplugin: 2.3.5
unplugin-utils: 0.2.4 unplugin-utils: 0.2.4
@@ -15885,7 +15895,7 @@ snapshots:
typescript: 5.8.3 typescript: 5.8.3
vue-tsc: 2.2.10(typescript@5.8.3) vue-tsc: 2.2.10(typescript@5.8.3)
vite-plugin-inspect@11.3.0(@nuxt/kit@3.17.5(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)): vite-plugin-inspect@11.3.0(@nuxt/kit@3.17.6(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)):
dependencies: dependencies:
ansis: 4.1.0 ansis: 4.1.0
debug: 4.3.7 debug: 4.3.7
@@ -15898,7 +15908,7 @@ snapshots:
vite: 6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0) vite: 6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)
vite-dev-rpc: 1.1.0(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)) vite-dev-rpc: 1.1.0(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
optionalDependencies: optionalDependencies:
'@nuxt/kit': 3.17.5(magicast@0.3.5) '@nuxt/kit': 3.17.6(magicast@0.3.5)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color

View File

@@ -18,6 +18,8 @@ export interface InputTagsProps<T extends InputTagItem = InputTagItem> extends P
as?: any as?: any
/** The placeholder text when the input is empty. */ /** The placeholder text when the input is empty. */
placeholder?: string placeholder?: string
/** The maximum number of character allowed. */
maxLength?: number
/** /**
* @defaultValue 'primary' * @defaultValue 'primary'
*/ */
@@ -182,6 +184,7 @@ defineExpose({
ref="inputRef" ref="inputRef"
v-bind="{ ...$attrs, ...ariaAttrs }" v-bind="{ ...$attrs, ...ariaAttrs }"
:placeholder="placeholder" :placeholder="placeholder"
:max-length="maxLength"
:class="ui.input({ class: props.ui?.input })" :class="ui.input({ class: props.ui?.input })"
/> />

View File

@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import type { PopoverRootProps, HoverCardRootProps, PopoverRootEmits, PopoverContentProps, PopoverContentEmits, PopoverArrowProps } from 'reka-ui' import type { PopoverRootProps, HoverCardRootProps, PopoverRootEmits, PopoverContentProps, PopoverContentEmits, PopoverArrowProps, HoverCardTriggerProps } from 'reka-ui'
import type { AppConfig } from '@nuxt/schema' import type { AppConfig } from '@nuxt/schema'
import theme from '#build/ui/popover' import theme from '#build/ui/popover'
import type { EmitsToProps, ComponentConfig } from '../types/utils' import type { EmitsToProps, ComponentConfig } from '../types/utils'
@@ -27,6 +27,12 @@ export interface PopoverProps extends PopoverRootProps, Pick<HoverCardRootProps,
* @defaultValue true * @defaultValue true
*/ */
portal?: boolean | string | HTMLElement portal?: boolean | string | HTMLElement
/**
* The reference (or anchor) element that is being referred to for positioning.
*
* If not provided will use the current component as anchor.
*/
reference?: HoverCardTriggerProps['reference']
/** /**
* When `false`, the popover will not close when clicking outside or pressing escape. * When `false`, the popover will not close when clicking outside or pressing escape.
* @defaultValue true * @defaultValue true
@@ -100,7 +106,7 @@ const Component = computed(() => props.mode === 'hover' ? HoverCard : Popover)
<template> <template>
<Component.Root v-slot="{ open }" v-bind="rootProps"> <Component.Root v-slot="{ open }" v-bind="rootProps">
<Component.Trigger v-if="!!slots.default" as-child :class="props.class"> <Component.Trigger v-if="!!slots.default || !!reference" as-child :reference="reference" :class="props.class">
<slot :open="open" /> <slot :open="open" />
</Component.Trigger> </Component.Trigger>

View File

@@ -165,6 +165,8 @@ export interface TableProps<T extends TableData = TableData> extends TableOption
*/ */
facetedOptions?: FacetedOptions<T> facetedOptions?: FacetedOptions<T>
onSelect?: (row: TableRow<T>, e?: Event) => void onSelect?: (row: TableRow<T>, e?: Event) => void
onHover?: (e: Event, row: TableRow<T> | null) => void
onContextmenu?: ((e: Event, row: TableRow<T>) => void) | Array<((e: Event, row: TableRow<T>) => void)>
class?: any class?: any
ui?: Table['slots'] ui?: Table['slots']
} }
@@ -313,7 +315,7 @@ function valueUpdater<T extends Updater<any>>(updaterOrValue: T, ref: Ref) {
ref.value = typeof updaterOrValue === 'function' ? updaterOrValue(ref.value) : updaterOrValue ref.value = typeof updaterOrValue === 'function' ? updaterOrValue(ref.value) : updaterOrValue
} }
function handleRowSelect(row: TableRow<T>, e: Event) { function onRowSelect(e: Event, row: TableRow<T>) {
if (!props.onSelect) { if (!props.onSelect) {
return return
} }
@@ -326,9 +328,30 @@ function handleRowSelect(row: TableRow<T>, e: Event) {
e.preventDefault() e.preventDefault()
e.stopPropagation() e.stopPropagation()
// FIXME: `e` should be the first argument for consistency
props.onSelect(row, e) props.onSelect(row, e)
} }
function onRowHover(e: Event, row: TableRow<T> | null) {
if (!props.onHover) {
return
}
props.onHover(e, row)
}
function onRowContextmenu(e: Event, row: TableRow<T>) {
if (!props.onContextmenu) {
return
}
if (Array.isArray(props.onContextmenu)) {
props.onContextmenu.forEach(fn => fn(e, row))
} else {
props.onContextmenu(e, row)
}
}
watch( watch(
() => props.data, () => { () => props.data, () => {
data.value = props.data ? [...props.data] : [] data.value = props.data ? [...props.data] : []
@@ -382,7 +405,7 @@ defineExpose({
<template v-for="row in tableApi.getRowModel().rows" :key="row.id"> <template v-for="row in tableApi.getRowModel().rows" :key="row.id">
<tr <tr
:data-selected="row.getIsSelected()" :data-selected="row.getIsSelected()"
:data-selectable="!!props.onSelect" :data-selectable="!!props.onSelect || !!props.onHover || !!props.onContextmenu"
:data-expanded="row.getIsExpanded()" :data-expanded="row.getIsExpanded()"
:role="props.onSelect ? 'button' : undefined" :role="props.onSelect ? 'button' : undefined"
:tabindex="props.onSelect ? 0 : undefined" :tabindex="props.onSelect ? 0 : undefined"
@@ -392,7 +415,10 @@ defineExpose({
typeof tableApi.options.meta?.class?.tr === 'function' ? tableApi.options.meta.class.tr(row) : tableApi.options.meta?.class?.tr typeof tableApi.options.meta?.class?.tr === 'function' ? tableApi.options.meta.class.tr(row) : tableApi.options.meta?.class?.tr
] ]
})" })"
@click="handleRowSelect(row, $event)" @click="onRowSelect($event, row)"
@pointerenter="onRowHover($event, row)"
@pointerleave="onRowHover($event, null)"
@contextmenu="onRowContextmenu($event, row)"
> >
<td <td
v-for="cell in row.getVisibleCells()" v-for="cell in row.getVisibleCells()"

View File

@@ -27,6 +27,11 @@ export interface TooltipProps extends TooltipRootProps {
* @defaultValue true * @defaultValue true
*/ */
portal?: boolean | string | HTMLElement portal?: boolean | string | HTMLElement
/**
* The reference (or anchor) element that is being referred to for positioning.
*
* If not provided will use the current component as anchor.
*/
reference?: TooltipTriggerProps['reference'] reference?: TooltipTriggerProps['reference']
class?: any class?: any
ui?: Tooltip['slots'] ui?: Tooltip['slots']