+
You just lost the game.
-
@@ -137,6 +143,8 @@ const props = withDefaults(
mergeHeader?: boolean
scrollable?: boolean
maxContentHeight?: string
+ /** Removes padding from the content area. Useful for edge-to-edge layouts. */
+ noPadding?: boolean
/** Max width for the modal (e.g., '460px', '600px'). Defaults to '60rem'. */
maxWidth?: string
/** Width for the modal body (e.g., '460px', '600px'). */
@@ -160,6 +168,7 @@ const props = withDefaults(
// TODO: migrate all modals to use scrollable and remove this prop
scrollable: false,
maxContentHeight: '70vh',
+ noPadding: false,
maxWidth: undefined,
width: undefined,
disableClose: false,
diff --git a/packages/ui/src/components/modal/index.ts b/packages/ui/src/components/modal/index.ts
index 89c4cf0266..eb28a6569b 100644
--- a/packages/ui/src/components/modal/index.ts
+++ b/packages/ui/src/components/modal/index.ts
@@ -1,4 +1,5 @@
export { default as ConfirmModal } from './ConfirmModal.vue'
+export { default as InstallToPlayModal } from './InstallToPlayModal.vue'
export { default as Modal } from './Modal.vue'
export { default as NewModal } from './NewModal.vue'
export { default as ShareModal } from './ShareModal.vue'
diff --git a/packages/ui/src/components/project/ProjectCombobox.vue b/packages/ui/src/components/project/ProjectCombobox.vue
new file mode 100644
index 0000000000..b2ace5384d
--- /dev/null
+++ b/packages/ui/src/components/project/ProjectCombobox.vue
@@ -0,0 +1,183 @@
+
+ handleSearch(query)"
+ />
+
+
+
diff --git a/packages/ui/src/components/servers/files/explorer/TeleportOverflowMenu.vue b/packages/ui/src/components/servers/files/explorer/TeleportOverflowMenu.vue
index 5c1140f996..92021126fe 100644
--- a/packages/ui/src/components/servers/files/explorer/TeleportOverflowMenu.vue
+++ b/packages/ui/src/components/servers/files/explorer/TeleportOverflowMenu.vue
@@ -95,7 +95,7 @@ interface Option {
}
type Divider = {
- divider: true
+ divider?: boolean
shown?: boolean
}
diff --git a/packages/ui/src/locales/en-US/index.json b/packages/ui/src/locales/en-US/index.json
index 7326418ff2..766e3a6717 100644
--- a/packages/ui/src/locales/en-US/index.json
+++ b/packages/ui/src/locales/en-US/index.json
@@ -140,6 +140,9 @@
"button.unfollow": {
"defaultMessage": "Unfollow"
},
+ "button.update": {
+ "defaultMessage": "Update"
+ },
"button.upload-image": {
"defaultMessage": "Upload image"
},
@@ -293,15 +296,66 @@
"instance.worlds.game_mode.unknown": {
"defaultMessage": "Unknown game mode"
},
+ "instances.modpack-card.unlink": {
+ "defaultMessage": "Unlink modpack"
+ },
+ "instances.updater-modal.badge.current": {
+ "defaultMessage": "Current"
+ },
+ "instances.updater-modal.badge.incompatible": {
+ "defaultMessage": "Incompatible"
+ },
+ "instances.updater-modal.downgrade-to": {
+ "defaultMessage": "Downgrade to v{version}"
+ },
+ "instances.updater-modal.header": {
+ "defaultMessage": "Update version"
+ },
+ "instances.updater-modal.hide-incompatible": {
+ "defaultMessage": "Hide incompatible"
+ },
+ "instances.updater-modal.no-changelog": {
+ "defaultMessage": "No changelog provided for this version."
+ },
+ "instances.updater-modal.no-versions": {
+ "defaultMessage": "No versions found"
+ },
+ "instances.updater-modal.search-placeholder": {
+ "defaultMessage": "Search version..."
+ },
+ "instances.updater-modal.select-version": {
+ "defaultMessage": "Select a version to view its changelog"
+ },
+ "instances.updater-modal.show-incompatible": {
+ "defaultMessage": "Show incompatible"
+ },
+ "instances.updater-modal.update-to": {
+ "defaultMessage": "Update to v{version}"
+ },
+ "instances.updater-modal.warning.app": {
+ "defaultMessage": "We can't guarantee updates are safe for your instance. Review the changelog for all intermediate versions and consider a backup."
+ },
+ "instances.updater-modal.warning.web": {
+ "defaultMessage": "We can't guarantee updates are safe for your worlds. Review the changelog for all intermediate versions and consider a backup."
+ },
+ "label.actions": {
+ "defaultMessage": "Actions"
+ },
"label.available": {
"defaultMessage": "{amount} available."
},
+ "label.changelog": {
+ "defaultMessage": "Changelog"
+ },
"label.changes-saved": {
"defaultMessage": "Changes saved"
},
"label.collections": {
"defaultMessage": "Collections"
},
+ "label.content": {
+ "defaultMessage": "Content"
+ },
"label.created-ago": {
"defaultMessage": "Created {ago}"
},
@@ -326,6 +380,9 @@
"label.moderation": {
"defaultMessage": "Moderation"
},
+ "label.no-items": {
+ "defaultMessage": "No items"
+ },
"label.notifications": {
"defaultMessage": "Notifications"
},
@@ -338,6 +395,9 @@
"label.played": {
"defaultMessage": "Played {time}"
},
+ "label.project": {
+ "defaultMessage": "Project"
+ },
"label.public": {
"defaultMessage": "Public"
},
@@ -371,6 +431,12 @@
"label.unlisted": {
"defaultMessage": "Unlisted"
},
+ "label.update-available": {
+ "defaultMessage": "Update available"
+ },
+ "label.version": {
+ "defaultMessage": "Version"
+ },
"label.visibility": {
"defaultMessage": "Visibility"
},
diff --git a/packages/ui/src/stories/base/Combobox.stories.ts b/packages/ui/src/stories/base/Combobox.stories.ts
index 14d072b4d0..5ed52f9a3b 100644
--- a/packages/ui/src/stories/base/Combobox.stories.ts
+++ b/packages/ui/src/stories/base/Combobox.stories.ts
@@ -1,3 +1,11 @@
+import {
+ DownloadIcon,
+ HeartIcon,
+ SettingsIcon,
+ ShareIcon,
+ TrashIcon,
+ UserIcon,
+} from '@modrinth/assets'
import type { Meta, StoryObj } from '@storybook/vue3-vite'
import Combobox from '../../components/base/Combobox.vue'
@@ -44,3 +52,61 @@ export const Disabled: Story = {
disabled: true,
},
}
+
+export const IconSlot: Story = {
+ args: {
+ options: [
+ { value: 'download', label: 'Download', icon: DownloadIcon },
+ { value: 'share', label: 'Share', icon: ShareIcon },
+ { value: 'favorite', label: 'Add to favorites', icon: HeartIcon },
+ { type: 'divider' },
+ { value: 'settings', label: 'Settings', icon: SettingsIcon },
+ { value: 'profile', label: 'Profile', icon: UserIcon },
+ { type: 'divider' },
+ { value: 'delete', label: 'Delete', icon: TrashIcon, disabled: true },
+ ],
+ placeholder: 'Select an action',
+ listbox: false,
+ },
+}
+
+export const IconSlotSearchable: Story = {
+ args: {
+ options: [
+ { value: 'download', label: 'Download', icon: DownloadIcon },
+ { value: 'share', label: 'Share', icon: ShareIcon },
+ { value: 'favorite', label: 'Add to favorites', icon: HeartIcon },
+ { value: 'settings', label: 'Settings', icon: SettingsIcon },
+ { value: 'profile', label: 'Profile', icon: UserIcon },
+ { value: 'delete', label: 'Delete', icon: TrashIcon },
+ ],
+ placeholder: 'Select an action',
+ searchable: true,
+ searchPlaceholder: 'Search actions...',
+ },
+}
+
+export const WithSelectedOption: Story = {
+ args: {
+ options: [
+ { value: '1', label: 'Option 1' },
+ { value: '2', label: 'Option 2' },
+ { value: '3', label: 'Option 3' },
+ ],
+ modelValue: '2',
+ },
+}
+
+export const WithSelectedOptionAndIcon: Story = {
+ args: {
+ options: [
+ { value: 'download', label: 'Download', icon: DownloadIcon },
+ { value: 'share', label: 'Share', icon: ShareIcon },
+ { value: 'favorite', label: 'Add to favorites', icon: HeartIcon },
+ { value: 'settings', label: 'Settings', icon: SettingsIcon },
+ { value: 'profile', label: 'Profile', icon: UserIcon },
+ ],
+ modelValue: 'favorite',
+ showIconInSelected: true,
+ },
+}
diff --git a/packages/ui/src/stories/base/Toggle.stories.ts b/packages/ui/src/stories/base/Toggle.stories.ts
index 8ed45b3695..14a02d2c7a 100644
--- a/packages/ui/src/stories/base/Toggle.stories.ts
+++ b/packages/ui/src/stories/base/Toggle.stories.ts
@@ -13,6 +13,7 @@ type Story = StoryObj
export const Default: Story = {
args: {
modelValue: false,
+ small: false,
},
}
@@ -29,11 +30,26 @@ export const Disabled: Story = {
},
}
+export const Small: Story = {
+ args: {
+ modelValue: false,
+ small: true,
+ },
+}
+
+export const SmallChecked: Story = {
+ args: {
+ modelValue: true,
+ small: true,
+ },
+}
+
export const AllStates: Story = {
render: () => ({
components: { Toggle },
template: /*html*/ `
+
Default Size
Off
@@ -43,6 +59,16 @@ export const AllStates: Story = {
Disabled
+
Small Size
+
+ Off
+
+
+ On
+
+
+ Disabled
+
`,
}),
diff --git a/packages/ui/src/stories/instances/ContentCardTable.stories.ts b/packages/ui/src/stories/instances/ContentCardTable.stories.ts
new file mode 100644
index 0000000000..ac18dea81b
--- /dev/null
+++ b/packages/ui/src/stories/instances/ContentCardTable.stories.ts
@@ -0,0 +1,849 @@
+import { DownloadIcon, EyeIcon, FolderOpenIcon } from '@modrinth/assets'
+import type { Meta, StoryObj } from '@storybook/vue3-vite'
+import { fn } from 'storybook/test'
+import { onMounted, onUnmounted, ref } from 'vue'
+
+import ButtonStyled from '../../components/base/ButtonStyled.vue'
+import ContentCardTable from '../../components/instances/ContentCardTable.vue'
+import type { ContentCardTableItem } from '../../components/instances/types'
+
+// Sample data
+const sodiumItem: ContentCardTableItem = {
+ id: 'AANobbMI',
+ project: {
+ id: 'AANobbMI',
+ slug: 'sodium',
+ title: 'Sodium',
+ icon_url:
+ 'https://cdn.modrinth.com/data/AANobbMI/295862f4724dc3f78df3447ad6072b2dcd3ef0c9_96.webp',
+ },
+ version: {
+ id: '59wygFUQ',
+ version_number: 'mc1.21.11-0.8.2-fabric',
+ file_name: 'sodium-fabric-0.8.2+mc1.21.11.jar',
+ },
+ owner: {
+ id: 'DzLrfrbK',
+ name: 'IMS',
+ avatar_url: 'https://avatars3.githubusercontent.com/u/31803019?v=4',
+ type: 'user',
+ },
+ enabled: true,
+}
+
+const modMenuItem: ContentCardTableItem = {
+ id: 'mOgUt4GM',
+ project: {
+ id: 'mOgUt4GM',
+ slug: 'modmenu',
+ title: 'Mod Menu',
+ icon_url: 'https://cdn.modrinth.com/data/mOgUt4GM/5a20ed1450a0e1e79a1fe04e61bb4e5878bf1d20.png',
+ },
+ version: {
+ id: 'QuU0ciaR',
+ version_number: '16.0.0',
+ file_name: 'modmenu-16.0.0.jar',
+ },
+ owner: {
+ id: 'u2',
+ name: 'Prospector',
+ type: 'user',
+ },
+ enabled: true,
+}
+
+const fabricApiItem: ContentCardTableItem = {
+ id: 'P7dR8mSH',
+ project: {
+ id: 'P7dR8mSH',
+ slug: 'fabric-api',
+ title: 'Fabric API',
+ icon_url: 'https://cdn.modrinth.com/data/P7dR8mSH/icon.png',
+ },
+ version: {
+ id: 'Lwa1Q6e4',
+ version_number: '0.141.3+26.1',
+ file_name: 'fabric-api-0.141.3+26.1.jar',
+ },
+ owner: {
+ id: 'BZoBsPo6',
+ name: 'FabricMC',
+ avatar_url: 'https://cdn.modrinth.com/data/P7dR8mSH/icon.png',
+ type: 'organization',
+ },
+ enabled: false,
+}
+
+const emfItem: ContentCardTableItem = {
+ id: 'emf123',
+ project: {
+ id: 'emf123',
+ slug: 'entity-model-features',
+ title: '[EMF] Entity Model Features',
+ icon_url:
+ 'https://cdn.modrinth.com/data/AANobbMI/295862f4724dc3f78df3447ad6072b2dcd3ef0c9_96.webp',
+ },
+ version: {
+ id: 'v1',
+ version_number: '2.4.1',
+ file_name: 'Entity_model_features_fabric_1.21.1-2.4.1.jar',
+ },
+ owner: {
+ id: 'u1',
+ name: 'Traben',
+ type: 'user',
+ },
+ enabled: true,
+}
+
+const etfItem: ContentCardTableItem = {
+ id: 'etf456',
+ project: {
+ id: 'etf456',
+ slug: 'entity-texture-features',
+ title: '[ETF] Entity Texture Features',
+ icon_url: 'https://cdn.modrinth.com/data/mOgUt4GM/5a20ed1450a0e1e79a1fe04e61bb4e5878bf1d20.png',
+ },
+ version: {
+ id: 'v2',
+ version_number: '6.2.9',
+ file_name: 'Entity_texture_features_fabric_1.21.1-6.2.9.jar',
+ },
+ owner: {
+ id: 'u1',
+ name: 'Traben',
+ type: 'user',
+ },
+ enabled: true,
+}
+
+const importedModItem: ContentCardTableItem = {
+ id: 'imported123',
+ project: {
+ id: 'imported123',
+ slug: 'import-mod',
+ title: 'Import mod',
+ icon_url: undefined,
+ },
+ version: {
+ id: 'v3',
+ version_number: 'Unknown',
+ file_name: 'Entity_texture_features_fabric_1.21.1-6.2.9.jar',
+ },
+ enabled: false,
+}
+
+// Edge case items
+const longNameItem: ContentCardTableItem = {
+ id: 'long-name',
+ project: {
+ id: 'long-name',
+ slug: 'very-long-project-name',
+ title: '[EMF] Entity Model Features - The Ultimate Entity Rendering Mod for Minecraft',
+ icon_url: sodiumItem.project.icon_url,
+ },
+ version: {
+ id: 'v1',
+ version_number: '2.4.1-beta.15+mc1.21.1-fabric-loader0.16.0',
+ file_name: 'Entity_model_features_fabric_1.21.1-2.4.1-beta.15+mc1.21.1-fabric-loader0.16.0.jar',
+ },
+ owner: {
+ id: 'u1',
+ name: 'Traben',
+ type: 'user',
+ },
+ enabled: true,
+}
+
+const noOwnerAvatarItem: ContentCardTableItem = {
+ id: 'no-avatar',
+ project: {
+ id: 'no-avatar',
+ slug: 'no-avatar-mod',
+ title: 'Mod Without Owner Avatar',
+ icon_url: modMenuItem.project.icon_url,
+ },
+ version: {
+ id: 'v1',
+ version_number: '1.0.0',
+ file_name: 'no-avatar-mod-1.0.0.jar',
+ },
+ owner: {
+ id: 'u1',
+ name: 'Anonymous User',
+ avatar_url: undefined,
+ type: 'user',
+ },
+ enabled: true,
+}
+
+const updateAvailableItem: ContentCardTableItem = {
+ id: 'update-available',
+ project: {
+ id: 'update-available',
+ slug: 'outdated-mod',
+ title: 'Outdated Mod',
+ icon_url: fabricApiItem.project.icon_url,
+ },
+ version: {
+ id: 'v1',
+ version_number: '1.0.0',
+ file_name: 'outdated-mod-1.0.0.jar',
+ },
+ owner: fabricApiItem.owner,
+ enabled: true,
+ hasUpdate: true,
+}
+
+const sampleItems: ContentCardTableItem[] = [sodiumItem, modMenuItem, fabricApiItem]
+
+const figmaDesignItems: ContentCardTableItem[] = [emfItem, etfItem, importedModItem]
+
+// Comprehensive items showing all possible states
+const allStatesItems: ContentCardTableItem[] = [
+ { ...sodiumItem, enabled: true, hasUpdate: false },
+ { ...modMenuItem, enabled: true, hasUpdate: true },
+ { ...fabricApiItem, enabled: false },
+ longNameItem,
+ importedModItem,
+ noOwnerAvatarItem,
+ updateAvailableItem,
+ { ...emfItem, disabled: true, enabled: false },
+]
+
+const meta = {
+ title: 'Instances/ContentCardTable',
+ component: ContentCardTable,
+ parameters: {
+ layout: 'padded',
+ },
+ argTypes: {
+ items: {
+ control: 'object',
+ description: 'Array of items to display in the table',
+ },
+ showSelection: {
+ control: 'boolean',
+ description: 'Show checkboxes for selection',
+ },
+ sortable: {
+ control: 'boolean',
+ description: 'Enable column sorting',
+ },
+ sortBy: {
+ control: 'select',
+ options: ['project', 'version', undefined],
+ description: 'Current sort column',
+ },
+ sortDirection: {
+ control: 'select',
+ options: ['asc', 'desc'],
+ description: 'Sort direction',
+ },
+ },
+} satisfies Meta
+
+export default meta
+type Story = StoryObj
+
+// ============================================
+// Basic Stories
+// ============================================
+
+export const Default: Story = {
+ args: {
+ items: sampleItems,
+ },
+}
+
+/**
+ * Comprehensive story showing all possible item states in one view:
+ * - Normal enabled item
+ * - Item with update available
+ * - Disabled toggle (enabled: false)
+ * - Long project name and version (truncation)
+ * - No project icon
+ * - No owner avatar
+ * - Item with hasUpdate flag
+ * - Fully disabled item (disabled: true)
+ */
+export const AllStates: Story = {
+ render: () => ({
+ components: { ContentCardTable },
+ setup() {
+ const items = ref(allStatesItems)
+ return { items }
+ },
+ template: /*html*/ `
+
+
+
This story demonstrates all possible item states:
+
+ - Sodium - Normal enabled item
+ - Mod Menu - Has update available (green button)
+ - Fabric API - Toggle off (enabled: false)
+ - EMF - Long name/version (truncation)
+ - Import mod - No project icon
+ - No avatar - Owner without avatar
+ - Outdated Mod - hasUpdate flag
+ - ETF - Fully disabled (disabled: true, grayed out)
+
+
+
console.log('Toggle', id, val)"
+ @delete="(id) => console.log('Delete', id)"
+ @update="(id) => console.log('Update', id)"
+ />
+
+ `,
+ }),
+}
+
+/**
+ * Shows items with update available - displays green download button
+ */
+export const WithUpdatesAvailable: Story = {
+ render: () => ({
+ components: { ContentCardTable },
+ setup() {
+ const items: ContentCardTableItem[] = [
+ { ...sodiumItem, hasUpdate: true },
+ { ...modMenuItem, hasUpdate: true },
+ { ...fabricApiItem, hasUpdate: false },
+ ]
+ return { items }
+ },
+ template: /*html*/ `
+ console.log('Toggle', id, val)"
+ @delete="(id) => console.log('Delete', id)"
+ @update="(id) => console.log('Update clicked', id)"
+ />
+ `,
+ }),
+}
+
+/**
+ * Shows difference between user and organization owners
+ */
+export const UserVsOrganizationOwners: Story = {
+ args: {
+ items: [
+ { ...sodiumItem }, // User owner (circular avatar)
+ { ...fabricApiItem }, // Organization owner (rounded + icon)
+ ],
+ },
+}
+
+/**
+ * Edge cases: long names, missing icons, missing avatars
+ */
+export const EdgeCases: Story = {
+ args: {
+ items: [longNameItem, importedModItem, noOwnerAvatarItem],
+ },
+}
+
+export const FigmaDesign: Story = {
+ args: {
+ items: figmaDesignItems,
+ showSelection: true,
+ },
+ render: (args) => ({
+ components: { ContentCardTable },
+ setup() {
+ const selectedIds = ref([emfItem.id, etfItem.id])
+ return { args, selectedIds }
+ },
+ template: /*html*/ `
+ console.log('Toggle', id, val)"
+ @delete="(id) => console.log('Delete', id)"
+ />
+ `,
+ }),
+}
+
+export const WithSelection: Story = {
+ args: {
+ items: sampleItems,
+ showSelection: true,
+ },
+ render: (args) => ({
+ components: { ContentCardTable },
+ setup() {
+ const selectedIds = ref([])
+ return { args, selectedIds }
+ },
+ template: /*html*/ `
+
+
console.log('Toggle', id, val)"
+ @delete="(id) => console.log('Delete', id)"
+ />
+
+ Selected: {{ selectedIds.length }} items
+ ({{ selectedIds.join(', ') }})
+
+
+ `,
+ }),
+}
+
+export const WithSorting: Story = {
+ args: {
+ items: sampleItems,
+ sortable: true,
+ sortBy: 'project',
+ sortDirection: 'asc',
+ },
+ render: (args) => ({
+ components: { ContentCardTable },
+ setup() {
+ const sortBy = ref<'project' | 'version' | undefined>(args.sortBy)
+ const sortDirection = ref<'asc' | 'desc'>(args.sortDirection || 'asc')
+
+ const handleSort = (column: 'project' | 'version', direction: 'asc' | 'desc') => {
+ sortBy.value = column
+ sortDirection.value = direction
+ console.log('Sort:', column, direction)
+ }
+
+ return { args, sortBy, sortDirection, handleSort }
+ },
+ template: /*html*/ `
+
+
+
+ Sorted by: {{ sortBy || 'none' }} ({{ sortDirection }})
+
+
+ `,
+ }),
+}
+
+export const WithSelectionAndSorting: Story = {
+ args: {
+ items: sampleItems,
+ showSelection: true,
+ sortable: true,
+ sortBy: 'project',
+ sortDirection: 'asc',
+ },
+ render: (args) => ({
+ components: { ContentCardTable },
+ setup() {
+ const selectedIds = ref([])
+ const sortBy = ref<'project' | 'version' | undefined>(args.sortBy)
+ const sortDirection = ref<'asc' | 'desc'>(args.sortDirection || 'asc')
+
+ const handleSort = (column: 'project' | 'version', direction: 'asc' | 'desc') => {
+ sortBy.value = column
+ sortDirection.value = direction
+ }
+
+ return { args, selectedIds, sortBy, sortDirection, handleSort }
+ },
+ template: /*html*/ `
+ console.log('Toggle', id, val)"
+ @delete="(id) => console.log('Delete', id)"
+ />
+ `,
+ }),
+}
+
+// ============================================
+// Action Stories
+// ============================================
+
+export const WithActions: Story = {
+ args: {
+ items: sampleItems,
+ showSelection: true,
+ 'onUpdate:enabled': fn(),
+ onDelete: fn(),
+ onUpdate: fn(),
+ },
+}
+
+export const InteractiveActions: Story = {
+ render: () => ({
+ components: { ContentCardTable },
+ setup() {
+ const items = ref([
+ { ...sodiumItem, enabled: true },
+ { ...modMenuItem, enabled: true },
+ { ...fabricApiItem, enabled: false },
+ ])
+ const selectedIds = ref([])
+
+ const handleToggle = (id: string, value: boolean) => {
+ const item = items.value.find((i) => i.id === id)
+ if (item) item.enabled = value
+ }
+
+ const handleDelete = (id: string) => {
+ items.value = items.value.filter((i) => i.id !== id)
+ selectedIds.value = selectedIds.value.filter((i) => i !== id)
+ }
+
+ const handleUpdate = (id: string) => {
+ console.log('Update available clicked for:', id)
+ }
+
+ return { items, selectedIds, handleToggle, handleDelete, handleUpdate }
+ },
+ template: /*html*/ `
+
+
+
+ Items: {{ items.length }}
+ Selected: {{ selectedIds.length }}
+
+
+ `,
+ }),
+}
+
+// ============================================
+// Slot Stories
+// ============================================
+
+export const WithCustomItemButtons: Story = {
+ render: () => ({
+ components: { ContentCardTable, ButtonStyled, EyeIcon, FolderOpenIcon, DownloadIcon },
+ setup() {
+ return { items: sampleItems }
+ },
+ template: /*html*/ `
+ console.log('Toggle', id, val)"
+ @delete="(id) => console.log('Delete', id)"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `,
+ }),
+}
+
+export const WithEmptyState: Story = {
+ args: {
+ items: [],
+ },
+}
+
+export const WithCustomEmptyState: Story = {
+ render: () => ({
+ components: { ContentCardTable, ButtonStyled },
+ template: /*html*/ `
+
+
+
+ No mods installed
+
+
+
+
+
+
+ `,
+ }),
+}
+
+// ============================================
+// State Stories
+// ============================================
+
+export const PerItemDisabled: Story = {
+ render: () => ({
+ components: { ContentCardTable },
+ setup() {
+ // Simulates items being modified (e.g., toggled, deleted)
+ const items: ContentCardTableItem[] = [
+ { ...sodiumItem, enabled: true },
+ { ...modMenuItem, enabled: true, disabled: true }, // Being modified
+ { ...fabricApiItem, enabled: false, disabled: true }, // Being modified
+ ]
+ return { items }
+ },
+ template: /*html*/ `
+
+
+ Items with disabled: true have all interactions disabled (simulating items being modified).
+
+
console.log('Toggle', id, val)"
+ @delete="(id) => console.log('Delete', id)"
+ />
+
+ `,
+ }),
+}
+
+export const SingleItem: Story = {
+ args: {
+ items: [sodiumItem],
+ showSelection: true,
+ },
+}
+
+export const ManyItems: Story = {
+ render: () => ({
+ components: { ContentCardTable },
+ setup() {
+ const items = ref(
+ Array.from({ length: 2000 }, (_, i) => ({
+ ...sodiumItem,
+ id: `item-${i}`,
+ project: {
+ ...sodiumItem.project,
+ title: `Mod ${i + 1}`,
+ },
+ version: {
+ ...sodiumItem.version!,
+ version_number: `1.0.${i}`,
+ },
+ enabled: i % 3 !== 0,
+ })),
+ )
+ const selectedIds = ref([])
+ const virtualized = ref(true)
+ const tableRef = ref | null>(null)
+
+ // Perf monitoring
+ const domNodes = ref(0)
+ let animationId: number
+
+ const updatePerf = () => {
+ // Count ContentCardItem elements (they have h-20 class)
+ if (tableRef.value?.$el) {
+ const container = tableRef.value.$el as HTMLElement
+ domNodes.value = container.querySelectorAll('.h-20').length
+ }
+ animationId = requestAnimationFrame(updatePerf)
+ }
+
+ onMounted(() => {
+ animationId = requestAnimationFrame(updatePerf)
+ })
+
+ onUnmounted(() => {
+ cancelAnimationFrame(animationId)
+ })
+
+ return {
+ items,
+ selectedIds,
+ virtualized,
+ tableRef,
+ domNodes,
+ }
+ },
+ template: /*html*/ `
+
+
+
+
+
+
+
+
+
Performance
+
+ Total Items:
+ {{ items.length }}
+ DOM Nodes:
+ {{ domNodes }}
+ Mode:
+ {{ virtualized ? 'Virtual' : 'Full DOM' }}
+
+
+
+
console.log('Toggle', id, val)"
+ @delete="(id) => console.log('Delete', id)"
+ />
+
+ `,
+ }),
+}
+
+// ============================================
+// With Overflow Menu
+// ============================================
+
+export const WithOverflowMenu: Story = {
+ render: () => ({
+ components: { ContentCardTable },
+ setup() {
+ const items: ContentCardTableItem[] = [
+ {
+ ...sodiumItem,
+ overflowOptions: [
+ { id: 'view', action: () => console.log('View sodium') },
+ { id: 'folder', action: () => console.log('Open folder') },
+ { divider: true },
+ { id: 'remove', action: () => console.log('Remove'), color: 'red' as const },
+ ],
+ },
+ {
+ ...modMenuItem,
+ overflowOptions: [
+ { id: 'view', action: () => console.log('View modmenu') },
+ { divider: true },
+ { id: 'remove', action: () => console.log('Remove'), color: 'red' as const },
+ ],
+ },
+ ]
+
+ return { items }
+ },
+ template: /*html*/ `
+ console.log('Toggle', id, val)"
+ @delete="(id) => console.log('Delete', id)"
+ >
+ View on Modrinth
+ Open folder
+ Remove
+
+ `,
+ }),
+}
+
+// ============================================
+// Bulk Actions Demo
+// ============================================
+
+export const BulkActionsDemo: Story = {
+ render: () => ({
+ components: { ContentCardTable, ButtonStyled },
+ setup() {
+ const items = ref([
+ { ...sodiumItem, enabled: true },
+ { ...modMenuItem, enabled: true },
+ { ...fabricApiItem, enabled: false },
+ { ...emfItem, enabled: true },
+ { ...etfItem, enabled: true },
+ ])
+ const selectedIds = ref([])
+
+ const enableSelected = () => {
+ items.value.forEach((item) => {
+ if (selectedIds.value.includes(item.id)) {
+ item.enabled = true
+ }
+ })
+ }
+
+ const disableSelected = () => {
+ items.value.forEach((item) => {
+ if (selectedIds.value.includes(item.id)) {
+ item.enabled = false
+ }
+ })
+ }
+
+ const deleteSelected = () => {
+ items.value = items.value.filter((item) => !selectedIds.value.includes(item.id))
+ selectedIds.value = []
+ }
+
+ const handleToggle = (id: string, value: boolean) => {
+ const item = items.value.find((i) => i.id === id)
+ if (item) item.enabled = value
+ }
+
+ return { items, selectedIds, enableSelected, disableSelected, deleteSelected, handleToggle }
+ },
+ template: /*html*/ `
+
+
+ {{ selectedIds.length }} selected
+
+
+
+
+
+
+
+
+
+
+
+
+
console.log('Delete', id)"
+ />
+
+ `,
+ }),
+}
diff --git a/packages/ui/src/stories/instances/ContentModpackCard.stories.ts b/packages/ui/src/stories/instances/ContentModpackCard.stories.ts
new file mode 100644
index 0000000000..6760e03892
--- /dev/null
+++ b/packages/ui/src/stories/instances/ContentModpackCard.stories.ts
@@ -0,0 +1,633 @@
+import type { Meta, StoryObj } from '@storybook/vue3-vite'
+import { fn } from 'storybook/test'
+import { ref } from 'vue'
+
+import ContentCardItem from '../../components/instances/ContentCardItem.vue'
+import ContentModpackCard from '../../components/instances/ContentModpackCard.vue'
+import type {
+ ContentModpackCardCategory,
+ ContentModpackCardProject,
+ ContentModpackCardVersion,
+ ContentOwner,
+} from '../../components/instances/types'
+import NewModal from '../../components/modal/NewModal.vue'
+
+// Real project data from Modrinth API
+const fabulouslyOptimizedProject: ContentModpackCardProject = {
+ id: '1KVo5zza',
+ slug: 'fabulously-optimized',
+ title: 'Fabulously Optimized',
+ icon_url:
+ 'https://cdn.modrinth.com/data/1KVo5zza/9f1ded4949c2a9db5ca382d3bcc912c7245486b4_96.webp',
+ description:
+ 'Beautiful graphics, speedy performance and familiar features in a simple package. 1.21.11 beta!',
+ downloads: 8708191,
+ followers: 3762,
+}
+
+const cobblemonProject: ContentModpackCardProject = {
+ id: '5FFgwNNP',
+ slug: 'cobblemon-fabric',
+ title: 'Cobblemon Official Modpack [Fabric]',
+ icon_url: 'https://cdn.modrinth.com/data/5FFgwNNP/e7f9ee2e9d361623847853fe2ddce42f519ee64f.png',
+ description: 'The official modpack of the Cobblemon mod, for Fabric!',
+ downloads: 4940845,
+ followers: 2051,
+}
+
+const simplyOptimizedProject: ContentModpackCardProject = {
+ id: 'BYfVnHa7',
+ slug: 'sop',
+ title: 'Simply Optimized',
+ icon_url: 'https://cdn.modrinth.com/data/BYfVnHa7/845e93223da7e8d1ed1a33364b5bdb4c316ac518.png',
+ description:
+ 'The leading, well-researched optimization modpack with a focus on pure performance.',
+ downloads: 2903242,
+ followers: 1387,
+}
+
+// Version data from Modrinth API
+const fabulouslyOptimizedVersion: ContentModpackCardVersion = {
+ id: 'YEEXo8mO',
+ version_number: '1.12.1',
+ date_published: '2022-02-10T06:53:28.379507Z',
+}
+
+const cobblemonVersion: ContentModpackCardVersion = {
+ id: 'bpaivauC',
+ version_number: '1.5.2',
+ date_published: '2024-05-27T07:12:36.043005Z',
+}
+
+// Owner data from Modrinth API
+const userOwner: ContentOwner = {
+ id: '2avTeeAE',
+ name: 'robotkoer',
+ avatar_url: 'https://cdn.modrinth.com/user/2avTeeAE/icon.png',
+ type: 'user',
+}
+
+const cobblemonOwner: ContentOwner = {
+ id: 'AEFONbAM',
+ name: 'Reisen',
+ avatar_url:
+ 'https://cdn.modrinth.com/user/AEFONbAM/9e97453507a8245981d5cd825280f23be44f15ac.jpeg',
+ type: 'user',
+}
+
+// Categories (using Labrinth.Tags.v2.Category structure with optional action)
+const optimizationCategories: ContentModpackCardCategory[] = [
+ { name: 'Fabric', icon: 'fabric', project_type: 'modpack', header: 'loaders' },
+ { name: 'Lightweight', icon: 'lightweight', project_type: 'modpack', header: 'categories' },
+ { name: 'Multiplayer', icon: 'multiplayer', project_type: 'modpack', header: 'categories' },
+ { name: 'Optimization', icon: 'optimization', project_type: 'modpack', header: 'categories' },
+]
+
+const cobblemonCategories: ContentModpackCardCategory[] = [
+ { name: 'Adventure', icon: 'adventure', project_type: 'modpack', header: 'categories' },
+ { name: 'Fabric', icon: 'fabric', project_type: 'modpack', header: 'loaders' },
+ { name: 'Lightweight', icon: 'lightweight', project_type: 'modpack', header: 'categories' },
+ { name: 'Multiplayer', icon: 'multiplayer', project_type: 'modpack', header: 'categories' },
+]
+
+const meta = {
+ title: 'Instances/ContentModpackCard',
+ component: ContentModpackCard,
+ parameters: {
+ layout: 'padded',
+ },
+ argTypes: {
+ project: {
+ control: 'object',
+ description:
+ 'Project information (id, slug, title, icon_url, description, downloads, followers)',
+ },
+ version: {
+ control: 'object',
+ description: 'Version information (id, version_number, date_published)',
+ },
+ owner: {
+ control: 'object',
+ description: 'Owner/author information (user or organization)',
+ },
+ categories: {
+ control: 'object',
+ description: 'Category tags with optional click actions',
+ },
+ disabled: {
+ control: 'boolean',
+ description: 'Grays out the card when true',
+ },
+ overflowOptions: {
+ control: 'object',
+ description: 'Options for the overflow menu',
+ },
+ },
+} satisfies Meta
+
+export default meta
+type Story = StoryObj
+
+// ============================================
+// All Types Overview
+// ============================================
+
+export const AllTypes: Story = {
+ args: {
+ project: fabulouslyOptimizedProject,
+ },
+ render: () => ({
+ components: { ContentModpackCard },
+ setup() {
+ const cards = [
+ {
+ label: 'Full featured (all actions)',
+ project: fabulouslyOptimizedProject,
+ version: fabulouslyOptimizedVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ hasUpdate: true,
+ hasContent: true,
+ hasUnlink: true,
+ },
+ {
+ label: 'With update available only',
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: cobblemonOwner,
+ categories: cobblemonCategories,
+ hasUpdate: true,
+ },
+ {
+ label: 'With content button only',
+ project: simplyOptimizedProject,
+ version: fabulouslyOptimizedVersion,
+ owner: userOwner,
+ hasContent: true,
+ },
+ {
+ label: 'Minimal (project only)',
+ project: fabulouslyOptimizedProject,
+ },
+ {
+ label: 'With version info only',
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ },
+ {
+ label: 'With owner only',
+ project: simplyOptimizedProject,
+ owner: userOwner,
+ },
+ {
+ label: 'Disabled state',
+ project: fabulouslyOptimizedProject,
+ version: fabulouslyOptimizedVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ disabled: true,
+ },
+ ]
+
+ return { cards }
+ },
+ template: /*html*/ `
+
+
+ {{ card.label }}
+ {} : undefined"
+ @content="card.hasContent ? () => {} : undefined"
+ @unlink="card.hasUnlink ? () => {} : undefined"
+ />
+
+
+ `,
+ }),
+}
+
+// ============================================
+// Basic Stories
+// ============================================
+
+export const Default: Story = {
+ args: {
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ onUpdate: fn(),
+ onContent: fn(),
+ onUnlink: fn(),
+ },
+}
+
+export const MinimalProjectOnly: Story = {
+ args: {
+ project: cobblemonProject,
+ },
+}
+
+export const WithVersion: Story = {
+ args: {
+ project: simplyOptimizedProject,
+ version: fabulouslyOptimizedVersion,
+ },
+}
+
+export const WithUserOwner: Story = {
+ args: {
+ project: simplyOptimizedProject,
+ version: fabulouslyOptimizedVersion,
+ owner: userOwner,
+ categories: [
+ { name: 'Adventure', icon: 'adventure', project_type: 'modpack', header: 'categories' },
+ ],
+ },
+}
+
+export const WithOrganizationOwner: Story = {
+ args: {
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ },
+}
+
+// ============================================
+// Action Button Stories
+// ============================================
+
+export const WithUpdateButton: Story = {
+ args: {
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ onUpdate: fn(),
+ },
+}
+
+export const WithContentButton: Story = {
+ args: {
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ onContent: fn(),
+ },
+}
+
+export const WithUnlinkButton: Story = {
+ args: {
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: userOwner,
+ onUnlink: fn(),
+ },
+}
+
+export const WithAllActions: Story = {
+ args: {
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ onUpdate: fn(),
+ onContent: fn(),
+ onUnlink: fn(),
+ overflowOptions: [
+ { id: 'view', action: () => console.log('View') },
+ { id: 'settings', action: () => console.log('Settings') },
+ { divider: true },
+ { id: 'remove', action: () => console.log('Remove'), color: 'red' },
+ ],
+ },
+}
+
+// ============================================
+// State Stories
+// ============================================
+
+export const Disabled: Story = {
+ args: {
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ disabled: true,
+ },
+}
+
+export const LongTitle: Story = {
+ args: {
+ project: {
+ ...cobblemonProject,
+ title: 'Super Long Modpack Title That Should Display Properly On All Screen Sizes',
+ description:
+ 'This is an extremely long description that should wrap properly and not break the layout. It contains lots of information about what this modpack includes and what makes it special compared to other modpacks available on the platform.',
+ },
+ version: cobblemonVersion,
+ owner: {
+ ...userOwner,
+ name: 'Really Long Organization Name Studios',
+ },
+ categories: [
+ { name: 'Adventure', icon: 'adventure', project_type: 'modpack', header: 'categories' },
+ { name: 'Technology', icon: 'technology', project_type: 'modpack', header: 'categories' },
+ { name: 'Magic', icon: 'magic', project_type: 'modpack', header: 'categories' },
+ { name: 'Exploration', icon: 'exploration', project_type: 'modpack', header: 'categories' },
+ { name: 'Multiplayer', icon: 'multiplayer', project_type: 'modpack', header: 'categories' },
+ ],
+ onUpdate: fn(),
+ onContent: fn(),
+ },
+}
+
+export const NoDescription: Story = {
+ args: {
+ project: {
+ ...cobblemonProject,
+ description: undefined,
+ },
+ version: cobblemonVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ },
+}
+
+export const NoStats: Story = {
+ args: {
+ project: {
+ ...cobblemonProject,
+ downloads: undefined,
+ followers: undefined,
+ },
+ version: cobblemonVersion,
+ owner: userOwner,
+ },
+}
+
+// ============================================
+// Categories Stories
+// ============================================
+
+export const WithClickableCategories: Story = {
+ render: (args) => ({
+ components: { ContentModpackCard },
+ setup() {
+ const clickedCategory = ref(null)
+ const categories: ContentModpackCardCategory[] = [
+ {
+ name: 'Adventure',
+ icon: 'adventure',
+ project_type: 'modpack',
+ header: 'categories',
+ action: () => (clickedCategory.value = 'Adventure'),
+ },
+ {
+ name: 'Lightweight',
+ icon: 'lightweight',
+ project_type: 'modpack',
+ header: 'categories',
+ action: () => (clickedCategory.value = 'Lightweight'),
+ },
+ {
+ name: 'Multiplayer',
+ icon: 'multiplayer',
+ project_type: 'modpack',
+ header: 'categories',
+ action: () => (clickedCategory.value = 'Multiplayer'),
+ },
+ ]
+ return { args, categories, clickedCategory }
+ },
+ template: /*html*/ `
+
+
+
+ Clicked category: {{ clickedCategory || 'None' }}
+
+
+ `,
+ }),
+ args: {
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: userOwner,
+ },
+}
+
+// ============================================
+// Overflow Menu Stories
+// ============================================
+
+export const WithOverflowMenu: Story = {
+ render: (args) => ({
+ components: { ContentModpackCard },
+ setup() {
+ return { args }
+ },
+ template: /*html*/ `
+
+ View on Modrinth
+ Settings
+ Remove modpack
+
+ `,
+ }),
+ args: {
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ overflowOptions: [
+ { id: 'view', action: () => console.log('View') },
+ { id: 'settings', action: () => console.log('Settings') },
+ { divider: true },
+ { id: 'remove', action: () => console.log('Remove'), color: 'red' },
+ ],
+ },
+}
+
+// ============================================
+// Interactive Stories
+// ============================================
+
+export const WithContentModal: Story = {
+ args: {
+ project: cobblemonProject,
+ },
+ render: () => ({
+ components: { ContentModpackCard, NewModal, ContentCardItem },
+ setup() {
+ const modalRef = ref | null>(null)
+ const modpackContent = [
+ {
+ project: {
+ id: '1',
+ slug: 'sodium',
+ title: 'Sodium',
+ icon_url:
+ 'https://cdn.modrinth.com/data/AANobbMI/295862f4724dc3f78df3447ad6072b2dcd3ef0c9_96.webp',
+ },
+ version: { id: 'v1', version_number: '0.8.2', file_name: 'sodium-fabric-0.8.2.jar' },
+ },
+ {
+ project: {
+ id: '2',
+ slug: 'modmenu',
+ title: 'Mod Menu',
+ icon_url:
+ 'https://cdn.modrinth.com/data/mOgUt4GM/5a20ed1450a0e1e79a1fe04e61bb4e5878bf1d20.png',
+ },
+ version: { id: 'v2', version_number: '16.0.0', file_name: 'modmenu-16.0.0.jar' },
+ },
+ {
+ project: {
+ id: '3',
+ slug: 'fabric-api',
+ title: 'Fabric API',
+ icon_url: 'https://cdn.modrinth.com/data/P7dR8mSH/icon.png',
+ },
+ version: { id: 'v3', version_number: '0.141.3', file_name: 'fabric-api-0.141.3.jar' },
+ },
+ ]
+
+ return {
+ cobblemonProject,
+ cobblemonVersion,
+ userOwner,
+ optimizationCategories,
+ modalRef,
+ modpackContent,
+ }
+ },
+ template: /*html*/ `
+
+
alert('Update clicked')"
+ />
+
+
+
+
+
+
+ `,
+ }),
+}
+
+// ============================================
+// Responsive Stories
+// ============================================
+
+export const ResponsiveView: Story = {
+ args: {
+ project: cobblemonProject,
+ },
+ render: () => ({
+ components: { ContentModpackCard },
+ setup() {
+ return {
+ cobblemonProject,
+ cobblemonVersion,
+ userOwner,
+ optimizationCategories,
+ }
+ },
+ template: /*html*/ `
+
+
+
Desktop (full width)
+
+ {}"
+ @content="() => {}"
+ @unlink="() => {}"
+ />
+
+
+
+
Mobile (<640px)
+
+ {}"
+ @content="() => {}"
+ />
+
+
+
+ `,
+ }),
+}
+
+// ============================================
+// Edge Cases
+// ============================================
+
+export const NoIcon: Story = {
+ args: {
+ project: {
+ ...cobblemonProject,
+ icon_url: undefined,
+ },
+ version: cobblemonVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ },
+}
+
+export const NoOwnerAvatar: Story = {
+ args: {
+ project: cobblemonProject,
+ version: cobblemonVersion,
+ owner: {
+ ...userOwner,
+ avatar_url: undefined,
+ },
+ categories: optimizationCategories,
+ },
+}
+
+export const HighDownloadCounts: Story = {
+ args: {
+ project: {
+ ...cobblemonProject,
+ downloads: 1234567890,
+ followers: 9876543,
+ },
+ version: cobblemonVersion,
+ owner: userOwner,
+ categories: optimizationCategories,
+ },
+}
diff --git a/packages/ui/src/stories/instances/ContentUpdaterModal.stories.ts b/packages/ui/src/stories/instances/ContentUpdaterModal.stories.ts
new file mode 100644
index 0000000000..5949d974a0
--- /dev/null
+++ b/packages/ui/src/stories/instances/ContentUpdaterModal.stories.ts
@@ -0,0 +1,411 @@
+import type { Labrinth } from '@modrinth/api-client'
+import type { Meta, StoryObj } from '@storybook/vue3-vite'
+import { fn } from 'storybook/test'
+import { ref } from 'vue'
+
+import ButtonStyled from '../../components/base/ButtonStyled.vue'
+import ContentUpdaterModal from '../../components/instances/modals/ContentUpdaterModal.vue'
+
+// Real version data from Modrinth API - Sodium (mod)
+const sodiumVersions: Labrinth.Versions.v2.Version[] = [
+ {
+ id: '59wygFUQ',
+ project_id: 'AANobbMI',
+ author_id: 'TEZXhE2U',
+ featured: true,
+ name: 'Sodium 0.8.2 for Fabric 1.21.11',
+ version_number: 'mc1.21.11-0.8.2-fabric',
+ version_type: 'release',
+ changelog:
+ 'This release fixes a critical bug with FRAPI, as well as allowing mods to set non-monochrome icons.\n\n## Changes\n- Fixed FRAPI compatibility issues\n- Added support for non-monochrome mod icons\n- Various performance improvements',
+ date_published: '2025-12-22T20:35:06.214284Z',
+ downloads: 150000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.11'],
+ loaders: ['fabric', 'quilt'],
+ },
+ {
+ id: '8jueyeK2',
+ project_id: 'AANobbMI',
+ author_id: 'TEZXhE2U',
+ featured: false,
+ name: 'Sodium 0.8.2 for NeoForge 1.21.11',
+ version_number: 'mc1.21.11-0.8.2-neoforge',
+ version_type: 'release',
+ changelog:
+ 'This release fixes a critical bug with FRAPI, as well as allowing mods to set non-monochrome icons.',
+ date_published: '2025-12-22T20:34:32.101126Z',
+ downloads: 80000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.11'],
+ loaders: ['neoforge'],
+ },
+ {
+ id: '2IxKzI1o',
+ project_id: 'AANobbMI',
+ author_id: 'TEZXhE2U',
+ featured: false,
+ name: 'Sodium 0.8.1 for Fabric 1.21.11',
+ version_number: 'mc1.21.11-0.8.1-fabric',
+ version_type: 'release',
+ changelog:
+ 'This release adds support for the Fabric Rendering API on 1.21.11, works around AMD driver bugs, and fixes configuration screen issues.\n\n## Bug Fixes\n- Fixed AMD driver compatibility\n- Fixed configuration screen crashes\n- Improved FRAPI support',
+ date_published: '2025-12-18T03:16:30.884738Z',
+ downloads: 250000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.11'],
+ loaders: ['fabric', 'quilt'],
+ },
+ {
+ id: 'MLXdfyIk',
+ project_id: 'AANobbMI',
+ author_id: 'TEZXhE2U',
+ featured: false,
+ name: 'Sodium 0.8.0 for Fabric 1.21.11',
+ version_number: 'mc1.21.11-0.8.0-fabric',
+ version_type: 'beta',
+ changelog:
+ 'This release brings many bug fixes, a brand new configuration screen, and support for Minecraft 1.21.11.\n\n## New Features\n- Completely redesigned configuration screen\n- Support for Minecraft 1.21.11\n\n## Bug Fixes\n- Fixed various rendering issues\n- Improved memory usage',
+ date_published: '2025-12-09T17:11:11.360476Z',
+ downloads: 180000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.11'],
+ loaders: ['fabric', 'quilt'],
+ },
+ {
+ id: 'sFfidWgd',
+ project_id: 'AANobbMI',
+ author_id: 'TEZXhE2U',
+ featured: false,
+ name: 'Sodium 0.7.3 for Fabric 1.21.10',
+ version_number: 'mc1.21.10-0.7.3-fabric',
+ version_type: 'release',
+ changelog: 'This release fixes a stuttering issue affecting Intel cards.',
+ date_published: '2025-11-10T18:51:15.477709Z',
+ downloads: 320000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.9', '1.21.10'],
+ loaders: ['fabric', 'quilt'],
+ },
+ {
+ id: '24jH02Sf',
+ project_id: 'AANobbMI',
+ author_id: 'TEZXhE2U',
+ featured: false,
+ name: 'Sodium 0.7.0 for Fabric 1.21.8',
+ version_number: 'mc1.21.8-0.7.0-fabric',
+ version_type: 'alpha',
+ changelog:
+ 'Major performance optimizations with quad splitting translucency sorting, improved chunk meshing, terrain rendering enhancements, and entity/particle performance improvements.\n\n## Performance\n- 30% faster chunk rendering\n- Reduced memory allocations\n- Better CPU utilization',
+ date_published: '2025-09-30T15:07:01.867787Z',
+ downloads: 450000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.6', '1.21.7', '1.21.8'],
+ loaders: ['fabric', 'quilt'],
+ },
+]
+
+// Real version data from Modrinth API - Cobblemon modpack
+const cobblemonVersions: Labrinth.Versions.v2.Version[] = [
+ {
+ id: 'DbQNxSJ0',
+ project_id: '5FFgwNNP',
+ author_id: 'AEFONbAM',
+ featured: true,
+ name: 'Cobblemon Official Modpack [Fabric] 1.7.1',
+ version_number: '1.7.1',
+ version_type: 'release',
+ changelog:
+ 'Updated to Cobblemon 1.7.1.\n\n## Modified Mods\n- EMF\n- ETF\n- Balm\n- FancyMenu\n- JEED\n- JEI',
+ date_published: '2025-11-29T02:27:41.839520Z',
+ downloads: 85000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.1'],
+ loaders: ['fabric'],
+ },
+ {
+ id: 'jMz7A3RO',
+ project_id: '5FFgwNNP',
+ author_id: 'AEFONbAM',
+ featured: false,
+ name: 'Cobblemon Official Modpack [Fabric] 1.7',
+ version_number: '1.7',
+ version_type: 'release',
+ changelog:
+ 'Updated to Cobblemon 1.7.\n\n## Changes\n- Removed Medal\n- Updated Fabric API\n- Updated JEI\n- Updated rendering mods',
+ date_published: '2025-11-22T00:48:57.491974Z',
+ downloads: 120000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.1'],
+ loaders: ['fabric'],
+ },
+ {
+ id: '98odLiu9',
+ project_id: '5FFgwNNP',
+ author_id: 'AEFONbAM',
+ featured: false,
+ name: 'Cobblemon Official Modpack [Fabric] 1.6.1.4',
+ version_number: '1.6.1.4',
+ version_type: 'release',
+ changelog: 'Updated Medal to 1.0.3 to resolve a crash issue.',
+ date_published: '2025-07-01T04:32:02.692075Z',
+ downloads: 95000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.1'],
+ loaders: ['fabric'],
+ },
+ {
+ id: 'ZGcN3At3',
+ project_id: '5FFgwNNP',
+ author_id: 'AEFONbAM',
+ featured: false,
+ name: 'Cobblemon Official Modpack [Fabric] 1.6.1.1',
+ version_number: '1.6.1.1',
+ version_type: 'beta',
+ changelog:
+ '## Added Mods\n- Advanced Loot Info\n- CIT Resewn\n- EMI variants\n- Medal\n- Tips\n\n## Removed Mods\n- Architectury\n- REI',
+ date_published: '2025-06-11T01:10:12.921145Z',
+ downloads: 78000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.1'],
+ loaders: ['fabric'],
+ },
+ {
+ id: 'cqaC80tF',
+ project_id: '5FFgwNNP',
+ author_id: 'AEFONbAM',
+ featured: false,
+ name: 'Cobblemon Official Modpack [Fabric] 1.6.1',
+ version_number: '1.6.1',
+ version_type: 'release',
+ changelog: 'Updated to Cobblemon 1.6.1 release.',
+ date_published: '2025-01-26T06:37:28.977532Z',
+ downloads: 210000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.21.1'],
+ loaders: ['fabric'],
+ },
+ {
+ id: 'bpaivauC',
+ project_id: '5FFgwNNP',
+ author_id: 'AEFONbAM',
+ featured: false,
+ name: 'Cobblemon Official Modpack [Fabric] 1.5.2',
+ version_number: '1.5.2',
+ version_type: 'release',
+ changelog: 'Updated to Cobblemon 1.5.2. Adjusted InvMove defaults to prevent REI conflicts.',
+ date_published: '2024-05-27T07:12:36.043005Z',
+ downloads: 350000,
+ status: 'listed',
+ files: [],
+ dependencies: [],
+ game_versions: ['1.20.1'],
+ loaders: ['fabric'],
+ },
+]
+
+const meta = {
+ title: 'Instances/ContentUpdaterModal',
+ component: ContentUpdaterModal,
+ parameters: {
+ layout: 'centered',
+ },
+ argTypes: {
+ versions: {
+ control: 'object',
+ description: 'Array of versions to display',
+ },
+ currentGameVersion: {
+ control: 'text',
+ description: 'Current game version for compatibility checking',
+ },
+ currentLoader: {
+ control: 'text',
+ description: 'Current loader for compatibility checking',
+ },
+ currentVersionId: {
+ control: 'text',
+ description: 'ID of the currently installed version',
+ },
+ header: {
+ control: 'text',
+ description: 'Modal header text',
+ },
+ },
+} satisfies Meta
+
+export default meta
+type Story = StoryObj
+
+// ============================================
+// Mod Example (Sodium)
+// ============================================
+
+export const ModExample: Story = {
+ render: (args) => ({
+ components: { ContentUpdaterModal, ButtonStyled },
+ setup() {
+ const modalRef = ref | null>(null)
+ const openModal = () => modalRef.value?.show()
+ const handleUpdate = (version: Labrinth.Versions.v2.Version) => {
+ console.log('Update to version:', version)
+ alert(`Updating to ${version.name}`)
+ }
+ return { args, modalRef, openModal, handleUpdate }
+ },
+ template: /*html*/ `
+
+
+
+
+ console.log('Cancelled')"
+ />
+
+ `,
+ }),
+ args: {
+ versions: sodiumVersions,
+ currentGameVersion: '1.21.11',
+ currentLoader: 'fabric',
+ currentVersionId: '2IxKzI1o', // 0.8.1 is current
+ header: 'Update mod',
+ onUpdate: fn(),
+ onCancel: fn(),
+ },
+}
+
+// ============================================
+// Modpack Example (Cobblemon)
+// ============================================
+
+export const ModpackExample: Story = {
+ render: (args) => ({
+ components: { ContentUpdaterModal, ButtonStyled },
+ setup() {
+ const modalRef = ref | null>(null)
+ const openModal = () => modalRef.value?.show()
+ const handleUpdate = (version: Labrinth.Versions.v2.Version) => {
+ console.log('Update to version:', version)
+ alert(`Updating to ${version.name}`)
+ }
+ return { args, modalRef, openModal, handleUpdate }
+ },
+ template: /*html*/ `
+
+
+
+
+ console.log('Cancelled')"
+ />
+
+ `,
+ }),
+ args: {
+ versions: cobblemonVersions,
+ currentGameVersion: '1.21.1',
+ currentLoader: 'fabric',
+ currentVersionId: 'jMz7A3RO', // 1.7 is current
+ header: 'Update modpack',
+ onUpdate: fn(),
+ onCancel: fn(),
+ },
+}
+
+// ============================================
+// With Incompatible Versions
+// ============================================
+
+export const WithIncompatibleVersions: Story = {
+ render: (args) => ({
+ components: { ContentUpdaterModal, ButtonStyled },
+ setup() {
+ const modalRef = ref | null>(null)
+ const openModal = () => modalRef.value?.show()
+ return { args, modalRef, openModal }
+ },
+ template: /*html*/ `
+
+
+
+
+ console.log('Update:', v)"
+ />
+
+ `,
+ }),
+ args: {
+ versions: sodiumVersions,
+ currentGameVersion: '1.21.10', // Older version - some versions won't be compatible
+ currentLoader: 'fabric',
+ currentVersionId: 'sFfidWgd',
+ header: 'Update mod',
+ },
+}
+
+// ============================================
+// All Version Types (Release, Beta, Alpha)
+// ============================================
+
+export const AllVersionTypes: Story = {
+ render: (args) => ({
+ components: { ContentUpdaterModal, ButtonStyled },
+ setup() {
+ const modalRef = ref | null>(null)
+ const openModal = () => modalRef.value?.show()
+ return { args, modalRef, openModal }
+ },
+ template: /*html*/ `
+
+
+
+
+ console.log('Update:', v)"
+ />
+
+ `,
+ }),
+ args: {
+ // Sodium has release, beta, and alpha versions
+ versions: sodiumVersions,
+ currentGameVersion: '1.21.11',
+ currentLoader: 'fabric',
+ currentVersionId: '24jH02Sf', // Alpha version is current
+ header: 'Update mod',
+ },
+}
diff --git a/packages/ui/src/stories/project/ProjectCombobox.stories.ts b/packages/ui/src/stories/project/ProjectCombobox.stories.ts
new file mode 100644
index 0000000000..1346507d32
--- /dev/null
+++ b/packages/ui/src/stories/project/ProjectCombobox.stories.ts
@@ -0,0 +1,22 @@
+import type { Meta, StoryObj } from '@storybook/vue3-vite'
+
+import ProjectCombobox from '../../components/project/ProjectCombobox.vue'
+
+const meta = {
+ title: 'Project/ProjectCombobox',
+ component: ProjectCombobox,
+} satisfies Meta
+
+export default meta
+type Story = StoryObj
+
+export const Default: Story = {
+ args: {
+ placeholder: 'Select project',
+ searchPlaceholder: 'Search by name or paste ID...',
+ loadingMessage: 'Loading...',
+ noResultsMessage: 'No results found',
+ disabled: false,
+ limit: 20,
+ },
+}
diff --git a/packages/ui/src/utils/common-messages.ts b/packages/ui/src/utils/common-messages.ts
index 4f9c0d2b54..ec78986dcf 100644
--- a/packages/ui/src/utils/common-messages.ts
+++ b/packages/ui/src/utils/common-messages.ts
@@ -285,6 +285,38 @@ export const commonMessages = defineMessages({
id: 'button.max',
defaultMessage: 'Max',
},
+ updateAvailableLabel: {
+ id: 'label.update-available',
+ defaultMessage: 'Update available',
+ },
+ changelogLabel: {
+ id: 'label.changelog',
+ defaultMessage: 'Changelog',
+ },
+ updateButton: {
+ id: 'button.update',
+ defaultMessage: 'Update',
+ },
+ contentLabel: {
+ id: 'label.content',
+ defaultMessage: 'Content',
+ },
+ versionLabel: {
+ id: 'label.version',
+ defaultMessage: 'Version',
+ },
+ projectLabel: {
+ id: 'label.project',
+ defaultMessage: 'Project',
+ },
+ actionsLabel: {
+ id: 'label.actions',
+ defaultMessage: 'Actions',
+ },
+ noItemsLabel: {
+ id: 'label.no-items',
+ defaultMessage: 'No items',
+ },
})
export const formFieldLabels = defineMessages({
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e3f7a90b61..b2a9a8cbd6 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -149,7 +149,7 @@ importers:
devDependencies:
'@eslint/compat':
specifier: ^1.1.1
- version: 1.4.1(eslint@9.39.2(jiti@2.6.1))
+ version: 1.4.1(eslint@9.39.2(jiti@1.21.7))
'@formatjs/cli':
specifier: ^6.2.12
version: 6.8.8(@vue/compiler-core@3.5.26)(vue@3.5.26(typescript@5.9.3))
@@ -158,22 +158,22 @@ importers:
version: link:../../packages/tooling-config
'@nuxt/eslint-config':
specifier: ^0.5.6
- version: 0.5.7(@typescript-eslint/utils@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ version: 0.5.7(@typescript-eslint/utils@8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
'@taijased/vue-render-tracker':
specifier: ^1.0.7
version: 1.0.7(vue@3.5.26(typescript@5.9.3))
'@vitejs/plugin-vue':
specifier: ^6.0.3
- version: 6.0.3(vite@6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))
+ version: 6.0.3(vite@6.4.1(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))
autoprefixer:
specifier: ^10.4.19
version: 10.4.23(postcss@8.5.6)
eslint:
specifier: ^9.9.1
- version: 9.39.2(jiti@2.6.1)
+ version: 9.39.2(jiti@1.21.7)
eslint-plugin-turbo:
specifier: ^2.5.4
- version: 2.7.2(eslint@9.39.2(jiti@2.6.1))(turbo@2.7.2)
+ version: 2.7.2(eslint@9.39.2(jiti@1.21.7))(turbo@2.7.2)
postcss:
specifier: ^8.4.39
version: 8.5.6
@@ -191,7 +191,7 @@ importers:
version: 5.9.3
vite:
specifier: ^6.0.0
- version: 6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ version: 6.4.1(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vue-component-type-helpers:
specifier: ^3.1.8
version: 3.2.1
@@ -265,7 +265,7 @@ importers:
version: 0.11.3(magicast@0.5.1)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)))
'@sentry/nuxt':
specifier: ^10.33.0
- version: 10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(pinia@3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)))(rollup@4.54.0)(vue@3.5.26(typescript@5.9.3))
+ version: 10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(pinia@3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)))(rollup@4.54.0)(vue@3.5.26(typescript@5.9.3))
'@tanstack/vue-query':
specifier: ^5.90.7
version: 5.92.5(vue@3.5.26(typescript@5.9.3))
@@ -392,7 +392,7 @@ importers:
version: 10.5.0
nuxt:
specifier: ^3.20.2
- version: 3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2)
+ version: 3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2)
postcss:
specifier: ^8.4.39
version: 8.5.6
@@ -689,18 +689,9 @@ importers:
'@storybook/addon-a11y':
specifier: ^10.1.10
version: 10.1.11(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))
- '@storybook/addon-docs':
- specifier: ^10.1.10
- version: 10.1.11(@types/react@19.2.7)(esbuild@0.27.2)(rollup@4.54.0)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))
- '@storybook/addon-onboarding':
- specifier: ^10.1.10
- version: 10.1.11(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))
'@storybook/addon-themes':
specifier: ^10.1.10
version: 10.1.11(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))
- '@storybook/addon-vitest':
- specifier: ^10.1.10
- version: 10.1.11(@vitest/browser-playwright@4.0.16)(@vitest/browser@4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16))(@vitest/runner@4.0.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vitest@4.0.16)
'@storybook/builder-vite':
specifier: ^10.1.10
version: 10.1.11(esbuild@0.27.2)(rollup@4.54.0)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))
@@ -716,18 +707,9 @@ importers:
'@vitejs/plugin-vue':
specifier: ^5.2.1
version: 5.2.4(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vue@3.5.26(typescript@5.9.3))
- '@vitest/browser-playwright':
- specifier: ^4.0.16
- version: 4.0.16(playwright@1.57.0)(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16)
- '@vitest/coverage-v8':
- specifier: ^4.0.16
- version: 4.0.16(@vitest/browser@4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16))(vitest@4.0.16)
eslint-plugin-storybook:
specifier: ^10.1.10
version: 10.1.11(eslint@9.39.2(jiti@2.6.1))(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)
- playwright:
- specifier: ^1.57.0
- version: 1.57.0
storybook:
specifier: ^10.1.10
version: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
@@ -746,9 +728,6 @@ importers:
vite-svg-loader:
specifier: ^5.1.0
version: 5.1.0(vue@3.5.26(typescript@5.9.3))
- vitest:
- specifier: ^4.0.16
- version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vue:
specifier: ^3.5.13
version: 3.5.26(typescript@5.9.3)
@@ -1002,10 +981,6 @@ packages:
resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
engines: {node: '>=6.9.0'}
- '@bcoe/v8-coverage@1.0.2':
- resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==}
- engines: {node: '>=18'}
-
'@bomb.sh/tab@0.0.10':
resolution: {integrity: sha512-6ALS2rh/4LKn0Yxwm35V6LcgQuSiECHbqQo7+9g4rkgGyXZ0siOc8K+IuWIq/4u0Zkv2mevP9QSqgKhGIvLJMw==}
hasBin: true
@@ -2266,12 +2241,6 @@ packages:
'@mdx-js/mdx@3.1.1':
resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==}
- '@mdx-js/react@3.1.1':
- resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==}
- peerDependencies:
- '@types/react': '>=16'
- react: '>=16'
-
'@napi-rs/wasm-runtime@0.2.12':
resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
@@ -3432,47 +3401,16 @@ packages:
'@speed-highlight/core@1.2.14':
resolution: {integrity: sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA==}
- '@standard-schema/spec@1.1.0':
- resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
-
'@storybook/addon-a11y@10.1.11':
resolution: {integrity: sha512-3sr6HmcDgW1+TQAV9QtWBE3HlGyfFXVZY3RECTNLNH6fRC+rYQCItisvQIVxQpyftLSQ8EAMN9JQzs495MjWNg==}
peerDependencies:
storybook: ^10.1.11
- '@storybook/addon-docs@10.1.11':
- resolution: {integrity: sha512-Jwm291Fhim2eVcZIVlkG1B2skb0ZI9oru6nqMbJxceQZlvZmcIa4oxvS1oaMTKw2DJnCv97gLm57P/YvRZ8eUg==}
- peerDependencies:
- storybook: ^10.1.11
-
- '@storybook/addon-onboarding@10.1.11':
- resolution: {integrity: sha512-DNJv0IDl5XBrY+PPgwnMXLyp3omPkMOS6xe8ejG3csT71B6+3VueL6m7Qivh6739SnAV0QBU5SQlpMA0gQUcSA==}
- peerDependencies:
- storybook: ^10.1.11
-
'@storybook/addon-themes@10.1.11':
resolution: {integrity: sha512-tUX5C1ms+W4GFK8UBWd3Fq4irkLc3h092BqW90tZghcoOmGY/sfKR+PlcLhoaTs/kkHQSSHPrz8HSFR1AXVbHA==}
peerDependencies:
storybook: ^10.1.11
- '@storybook/addon-vitest@10.1.11':
- resolution: {integrity: sha512-YbZzeKO3v+Xr97/malT4DZIATkVZT5EHNYx3xzEfPVuk19dDETAVYXO+tzcqCQHsgdKQHkmd56vv8nN3J3/kvw==}
- peerDependencies:
- '@vitest/browser': ^3.0.0 || ^4.0.0
- '@vitest/browser-playwright': ^4.0.0
- '@vitest/runner': ^3.0.0 || ^4.0.0
- storybook: ^10.1.11
- vitest: ^3.0.0 || ^4.0.0
- peerDependenciesMeta:
- '@vitest/browser':
- optional: true
- '@vitest/browser-playwright':
- optional: true
- '@vitest/runner':
- optional: true
- vitest:
- optional: true
-
'@storybook/builder-vite@10.1.11':
resolution: {integrity: sha512-MMD09Ap7FyzDfWG961pkIMv/w684XXe1bBEi+wCEpHxvrgAd3j3A9w/Rqp9Am2uRDPCEdi1QgSzS3SGW3aGThQ==}
peerDependencies:
@@ -3506,13 +3444,6 @@ packages:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- '@storybook/react-dom-shim@10.1.11':
- resolution: {integrity: sha512-o8WPhRlZbORUWG9lAgDgJP0pi905VHJUFJr1Kp8980gHqtlemtnzjPxKy5vFwj6glNhAlK8SS8OOYzWP7hloTQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- storybook: ^10.1.11
-
'@storybook/vue3-vite@10.1.11':
resolution: {integrity: sha512-Kq5co2xdBhShYRzDfLlt1xoYiHo8RHOjX7wtsFQTtSwTKIPsm34j45pmGov4xEUMhfSf1PIor//spTzd1HDR9Q==}
peerDependencies:
@@ -3912,9 +3843,6 @@ packages:
'@types/pg@8.15.6':
resolution: {integrity: sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==}
- '@types/react@19.2.7':
- resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==}
-
'@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
@@ -4153,32 +4081,9 @@ packages:
vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
vue: ^3.2.25
- '@vitest/browser-playwright@4.0.16':
- resolution: {integrity: sha512-I2Fy/ANdphi1yI46d15o0M1M4M0UJrUiVKkH5oKeRZZCdPg0fw/cfTKZzv9Ge9eobtJYp4BGblMzXdXH0vcl5g==}
- peerDependencies:
- playwright: '*'
- vitest: 4.0.16
-
- '@vitest/browser@4.0.16':
- resolution: {integrity: sha512-t4toy8X/YTnjYEPoY0pbDBg3EvDPg1elCDrfc+VupPHwoN/5/FNQ8Z+xBYIaEnOE2vVEyKwqYBzZ9h9rJtZVcg==}
- peerDependencies:
- vitest: 4.0.16
-
- '@vitest/coverage-v8@4.0.16':
- resolution: {integrity: sha512-2rNdjEIsPRzsdu6/9Eq0AYAzYdpP6Bx9cje9tL3FE5XzXRQF1fNU9pe/1yE8fCrS0HD+fBtt6gLPh6LI57tX7A==}
- peerDependencies:
- '@vitest/browser': 4.0.16
- vitest: 4.0.16
- peerDependenciesMeta:
- '@vitest/browser':
- optional: true
-
'@vitest/expect@3.2.4':
resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
- '@vitest/expect@4.0.16':
- resolution: {integrity: sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==}
-
'@vitest/mocker@3.2.4':
resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==}
peerDependencies:
@@ -4190,41 +4095,15 @@ packages:
vite:
optional: true
- '@vitest/mocker@4.0.16':
- resolution: {integrity: sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==}
- peerDependencies:
- msw: ^2.4.9
- vite: ^6.0.0 || ^7.0.0-0
- peerDependenciesMeta:
- msw:
- optional: true
- vite:
- optional: true
-
'@vitest/pretty-format@3.2.4':
resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==}
- '@vitest/pretty-format@4.0.16':
- resolution: {integrity: sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==}
-
- '@vitest/runner@4.0.16':
- resolution: {integrity: sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==}
-
- '@vitest/snapshot@4.0.16':
- resolution: {integrity: sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==}
-
'@vitest/spy@3.2.4':
resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==}
- '@vitest/spy@4.0.16':
- resolution: {integrity: sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==}
-
'@vitest/utils@3.2.4':
resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==}
- '@vitest/utils@4.0.16':
- resolution: {integrity: sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==}
-
'@volar/kit@2.4.27':
resolution: {integrity: sha512-ilZoQDMLzqmSsImJRWx4YiZ4FcvvPrPnFVmL6hSsIWB6Bn3qc7k88J9yP32dagrs5Y8EXIlvvD/mAFaiuEOACQ==}
peerDependencies:
@@ -4671,9 +4550,6 @@ packages:
resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
engines: {node: '>=4'}
- ast-v8-to-istanbul@0.3.10:
- resolution: {integrity: sha512-p4K7vMz2ZSk3wN8l5o3y2bJAoZXT3VuJI5OLTATY/01CYWumWvwkUw0SqDBnNq6IiTO3qDa1eSQDibAV8g7XOQ==}
-
ast-walker-scope@0.8.3:
resolution: {integrity: sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==}
engines: {node: '>=20.19.0'}
@@ -4867,10 +4743,6 @@ packages:
resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==}
engines: {node: '>=18'}
- chai@6.2.2:
- resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
- engines: {node: '>=18'}
-
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
@@ -5695,10 +5567,6 @@ packages:
resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==}
engines: {node: '>=6'}
- expect-type@1.3.0:
- resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
- engines: {node: '>=12.0.0'}
-
expressive-code@0.40.2:
resolution: {integrity: sha512-1zIda2rB0qiDZACawzw2rbdBQiWHBT56uBctS+ezFe5XMAaFaHLnnSYND/Kd+dVzO9HfCXRDpzH3d+3fvOWRcw==}
@@ -5824,11 +5692,6 @@ packages:
resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
engines: {node: '>= 0.8'}
- fsevents@2.3.2:
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -6055,9 +5918,6 @@ packages:
hosted-git-info@2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
- html-escaper@2.0.2:
- resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
-
html-escaper@3.0.3:
resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
@@ -6328,22 +6188,6 @@ packages:
iso-3166-2@1.0.0:
resolution: {integrity: sha512-xLAazfKZzwlsg/Zz/GQGQk3jJez5/2ORrjD3TjSuqz/arMht/xTK49c0GOE3afO/gEd9tHtBVVlfBla01unUng==}
- istanbul-lib-coverage@3.2.2:
- resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
- engines: {node: '>=8'}
-
- istanbul-lib-report@3.0.1:
- resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
- engines: {node: '>=10'}
-
- istanbul-lib-source-maps@5.0.6:
- resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==}
- engines: {node: '>=10'}
-
- istanbul-reports@3.2.0:
- resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
- engines: {node: '>=8'}
-
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
@@ -6645,10 +6489,6 @@ packages:
magicast@0.5.1:
resolution: {integrity: sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==}
- make-dir@4.0.0:
- resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
- engines: {node: '>=10'}
-
markdown-extensions@2.0.0:
resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
engines: {node: '>=16'}
@@ -7361,34 +7201,16 @@ packages:
resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
engines: {node: '>= 6'}
- pixelmatch@7.1.0:
- resolution: {integrity: sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==}
- hasBin: true
-
pkg-types@1.3.1:
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
pkg-types@2.3.0:
resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
- playwright-core@1.57.0:
- resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==}
- engines: {node: '>=18'}
- hasBin: true
-
- playwright@1.57.0:
- resolution: {integrity: sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==}
- engines: {node: '>=18'}
- hasBin: true
-
pluralize@8.0.0:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
engines: {node: '>=4'}
- pngjs@7.0.0:
- resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==}
- engines: {node: '>=14.19.0'}
-
postcss-calc@10.1.1:
resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==}
engines: {node: ^18.12 || ^20.9 || >=22.0}
@@ -8202,9 +8024,6 @@ packages:
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
engines: {node: '>= 0.4'}
- siginfo@2.0.0:
- resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
-
signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
@@ -8293,9 +8112,6 @@ packages:
resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==}
engines: {node: '>=12.0.0'}
- stackback@0.0.2:
- resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
-
standard-as-callback@2.1.0:
resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==}
@@ -8530,9 +8346,6 @@ packages:
tiny-invariant@1.3.3:
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
- tinybench@2.9.0:
- resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
-
tinyexec@1.0.2:
resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
engines: {node: '>=18'}
@@ -8545,10 +8358,6 @@ packages:
resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
engines: {node: '>=14.0.0'}
- tinyrainbow@3.0.3:
- resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==}
- engines: {node: '>=14.0.0'}
-
tinyspy@4.0.4:
resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
engines: {node: '>=14.0.0'}
@@ -9098,40 +8907,6 @@ packages:
vite:
optional: true
- vitest@4.0.16:
- resolution: {integrity: sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==}
- engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
- hasBin: true
- peerDependencies:
- '@edge-runtime/vm': '*'
- '@opentelemetry/api': ^1.9.0
- '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
- '@vitest/browser-playwright': 4.0.16
- '@vitest/browser-preview': 4.0.16
- '@vitest/browser-webdriverio': 4.0.16
- '@vitest/ui': 4.0.16
- happy-dom: '*'
- jsdom: '*'
- peerDependenciesMeta:
- '@edge-runtime/vm':
- optional: true
- '@opentelemetry/api':
- optional: true
- '@types/node':
- optional: true
- '@vitest/browser-playwright':
- optional: true
- '@vitest/browser-preview':
- optional: true
- '@vitest/browser-webdriverio':
- optional: true
- '@vitest/ui':
- optional: true
- happy-dom:
- optional: true
- jsdom:
- optional: true
-
void-elements@3.1.0:
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
engines: {node: '>=0.10.0'}
@@ -9245,8 +9020,8 @@ packages:
vue-component-type-helpers@3.2.1:
resolution: {integrity: sha512-gKV7XOkQl4urSuLHNY1tnVQf7wVgtb/mKbRyxSLWGZUY9RK7aDPhBenTjm+i8ZFe0zC2PZeHMPtOZXZfyaFOzQ==}
- vue-component-type-helpers@3.2.2:
- resolution: {integrity: sha512-x8C2nx5XlUNM0WirgfTkHjJGO/ABBxlANZDtHw2HclHtQnn+RFPTnbjMJn8jHZW4TlUam0asHcA14lf1C6Jb+A==}
+ vue-component-type-helpers@3.2.3:
+ resolution: {integrity: sha512-lpJTa8a+12Cgy/n5OdlQTzQhSWOCu+6zQoNFbl3KYxwAoB95mYIgMLKEYMvQykPJ2ucBDjJJISdIBHc1d9Hd3w==}
vue-confetti-explosion@1.0.2:
resolution: {integrity: sha512-80OboM3/6BItIoZ6DpNcZFqGpF607kjIVc5af56oKgtFmt5yWehvJeoYhkzYlqxrqdBe0Ko4Ie3bWrmLau+dJw==}
@@ -9404,11 +9179,6 @@ packages:
engines: {node: ^18.17.0 || >=20.5.0}
hasBin: true
- why-is-node-running@2.3.0:
- resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
- engines: {node: '>=8'}
- hasBin: true
-
widest-line@5.0.0:
resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==}
engines: {node: '>=18'}
@@ -9916,8 +9686,6 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
- '@bcoe/v8-coverage@1.0.2': {}
-
'@bomb.sh/tab@0.0.10(cac@6.7.14)(citty@0.1.6)':
optionalDependencies:
cac: 6.7.14
@@ -10415,7 +10183,6 @@ snapshots:
dependencies:
eslint: 9.39.2(jiti@1.21.7)
eslint-visitor-keys: 3.4.3
- optional: true
'@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))':
dependencies:
@@ -10424,11 +10191,11 @@ snapshots:
'@eslint-community/regexpp@4.12.2': {}
- '@eslint/compat@1.4.1(eslint@9.39.2(jiti@2.6.1))':
+ '@eslint/compat@1.4.1(eslint@9.39.2(jiti@1.21.7))':
dependencies:
'@eslint/core': 0.17.0
optionalDependencies:
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 9.39.2(jiti@1.21.7)
'@eslint/config-array@0.21.1':
dependencies:
@@ -10927,12 +10694,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3)':
- dependencies:
- '@types/mdx': 2.0.13
- '@types/react': 19.2.7
- react: 19.2.3
-
'@napi-rs/wasm-runtime@0.2.12':
dependencies:
'@emnapi/core': 1.7.1
@@ -11000,7 +10761,7 @@ snapshots:
dependencies:
'@nuxt/kit': 4.2.2(magicast@0.5.1)
execa: 8.0.1
- vite: 7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- magicast
@@ -11045,7 +10806,7 @@ snapshots:
sirv: 3.0.2
structured-clone-es: 1.0.0
tinyglobby: 0.2.15
- vite: 7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vite-plugin-inspect: 11.3.3(@nuxt/kit@4.2.2(magicast@0.5.1))(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))
vite-plugin-vue-tracer: 1.2.0(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))
which: 5.0.0
@@ -11056,36 +10817,36 @@ snapshots:
- utf-8-validate
- vue
- '@nuxt/eslint-config@0.5.7(@typescript-eslint/utils@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
+ '@nuxt/eslint-config@0.5.7(@typescript-eslint/utils@8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)':
dependencies:
'@eslint/js': 9.39.2
- '@nuxt/eslint-plugin': 0.5.7(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/eslint-plugin': 8.51.0(@typescript-eslint/parser@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/parser': 8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.2(jiti@2.6.1)
- eslint-config-flat-gitignore: 0.3.0(eslint@9.39.2(jiti@2.6.1))
+ '@nuxt/eslint-plugin': 0.5.7(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
+ '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
+ '@typescript-eslint/eslint-plugin': 8.51.0(@typescript-eslint/parser@8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
+ eslint: 9.39.2(jiti@1.21.7)
+ eslint-config-flat-gitignore: 0.3.0(eslint@9.39.2(jiti@1.21.7))
eslint-flat-config-utils: 0.4.0
- eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-jsdoc: 50.8.0(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-unicorn: 55.0.0(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-vue: 9.33.0(eslint@9.39.2(jiti@2.6.1))
+ eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))
+ eslint-plugin-jsdoc: 50.8.0(eslint@9.39.2(jiti@1.21.7))
+ eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@1.21.7))
+ eslint-plugin-unicorn: 55.0.0(eslint@9.39.2(jiti@1.21.7))
+ eslint-plugin-vue: 9.33.0(eslint@9.39.2(jiti@1.21.7))
globals: 15.15.0
local-pkg: 0.5.1
pathe: 1.1.2
- vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@2.6.1))
+ vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@1.21.7))
transitivePeerDependencies:
- '@typescript-eslint/utils'
- eslint-import-resolver-node
- supports-color
- typescript
- '@nuxt/eslint-plugin@0.5.7(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
+ '@nuxt/eslint-plugin@0.5.7(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/types': 8.51.0
- '@typescript-eslint/utils': 8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.2(jiti@2.6.1)
+ '@typescript-eslint/utils': 8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
+ eslint: 9.39.2(jiti@1.21.7)
transitivePeerDependencies:
- supports-color
- typescript
@@ -11141,7 +10902,7 @@ snapshots:
transitivePeerDependencies:
- magicast
- '@nuxt/nitro-server@3.20.2(db0@0.3.4)(ioredis@5.8.2)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(typescript@5.9.3)(xml2js@0.6.2)':
+ '@nuxt/nitro-server@3.20.2(db0@0.3.4)(ioredis@5.8.2)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(typescript@5.9.3)(xml2js@0.6.2)':
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/kit': 3.20.2(magicast@0.5.1)
@@ -11159,7 +10920,7 @@ snapshots:
klona: 2.0.6
mocked-exports: 0.1.1
nitropack: 2.12.9(xml2js@0.6.2)
- nuxt: 3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2)
+ nuxt: 3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2)
pathe: 2.0.3
pkg-types: 2.3.0
radix3: 1.1.2
@@ -11230,7 +10991,7 @@ snapshots:
transitivePeerDependencies:
- magicast
- '@nuxt/vite-builder@3.20.2(@types/node@20.19.27)(eslint@9.39.2(jiti@1.21.7))(lightningcss@1.30.2)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2)':
+ '@nuxt/vite-builder@3.20.2(@types/node@20.19.27)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2)':
dependencies:
'@nuxt/kit': 3.20.2(magicast@0.5.1)
'@rollup/plugin-replace': 6.0.3(rollup@4.54.0)
@@ -11251,7 +11012,7 @@ snapshots:
magic-string: 0.30.21
mlly: 1.8.0
mocked-exports: 0.1.1
- nuxt: 3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2)
+ nuxt: 3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2)
ohash: 2.0.11
pathe: 2.0.3
perfect-debounce: 2.0.0
@@ -11262,9 +11023,9 @@ snapshots:
std-env: 3.10.0
ufo: 1.6.1
unenv: 2.0.0-rc.24
- vite: 7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vite-node: 5.2.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
- vite-plugin-checker: 0.12.0(eslint@9.39.2(jiti@1.21.7))(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))
+ vite-plugin-checker: 0.12.0(eslint@9.39.2(jiti@2.6.1))(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))
vue: 3.5.26(typescript@5.9.3)
vue-bundle-renderer: 2.2.0
transitivePeerDependencies:
@@ -12148,7 +11909,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@sentry/nuxt@10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(pinia@3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)))(rollup@4.54.0)(vue@3.5.26(typescript@5.9.3))':
+ '@sentry/nuxt@10.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.3.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(pinia@3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)))(rollup@4.54.0)(vue@3.5.26(typescript@5.9.3))':
dependencies:
'@nuxt/kit': 3.20.2(magicast@0.5.1)
'@sentry/browser': 10.33.0
@@ -12159,7 +11920,7 @@ snapshots:
'@sentry/rollup-plugin': 4.6.1(rollup@4.54.0)
'@sentry/vite-plugin': 4.6.1
'@sentry/vue': 10.33.0(pinia@3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)))(vue@3.5.26(typescript@5.9.3))
- nuxt: 3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2)
+ nuxt: 3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2)
transitivePeerDependencies:
- '@cloudflare/workers-types'
- '@opentelemetry/api'
@@ -12293,54 +12054,17 @@ snapshots:
'@speed-highlight/core@1.2.14': {}
- '@standard-schema/spec@1.1.0': {}
-
'@storybook/addon-a11y@10.1.11(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))':
dependencies:
'@storybook/global': 5.0.0
axe-core: 4.11.0
storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- '@storybook/addon-docs@10.1.11(@types/react@19.2.7)(esbuild@0.27.2)(rollup@4.54.0)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))':
- dependencies:
- '@mdx-js/react': 3.1.1(@types/react@19.2.7)(react@19.2.3)
- '@storybook/csf-plugin': 10.1.11(esbuild@0.27.2)(rollup@4.54.0)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))
- '@storybook/icons': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- '@storybook/react-dom-shim': 10.1.11(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))
- react: 19.2.3
- react-dom: 19.2.3(react@19.2.3)
- storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- ts-dedent: 2.2.0
- transitivePeerDependencies:
- - '@types/react'
- - esbuild
- - rollup
- - vite
- - webpack
-
- '@storybook/addon-onboarding@10.1.11(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))':
- dependencies:
- storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-
'@storybook/addon-themes@10.1.11(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))':
dependencies:
storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
ts-dedent: 2.2.0
- '@storybook/addon-vitest@10.1.11(@vitest/browser-playwright@4.0.16)(@vitest/browser@4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16))(@vitest/runner@4.0.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vitest@4.0.16)':
- dependencies:
- '@storybook/global': 5.0.0
- '@storybook/icons': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- optionalDependencies:
- '@vitest/browser': 4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16)
- '@vitest/browser-playwright': 4.0.16(playwright@1.57.0)(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16)
- '@vitest/runner': 4.0.16
- vitest: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
- transitivePeerDependencies:
- - react
- - react-dom
-
'@storybook/builder-vite@10.1.11(esbuild@0.27.2)(rollup@4.54.0)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))':
dependencies:
'@storybook/csf-plugin': 10.1.11(esbuild@0.27.2)(rollup@4.54.0)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))
@@ -12370,12 +12094,6 @@ snapshots:
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
- '@storybook/react-dom-shim@10.1.11(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))':
- dependencies:
- react: 19.2.3
- react-dom: 19.2.3(react@19.2.3)
- storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-
'@storybook/vue3-vite@10.1.11(esbuild@0.27.2)(rollup@4.54.0)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vue@3.5.26(typescript@5.9.3))':
dependencies:
'@storybook/builder-vite': 10.1.11(esbuild@0.27.2)(rollup@4.54.0)(storybook@10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))
@@ -12399,10 +12117,22 @@ snapshots:
storybook: 10.1.11(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
type-fest: 2.19.0
vue: 3.5.26(typescript@5.9.3)
- vue-component-type-helpers: 3.2.2
+ vue-component-type-helpers: 3.2.3
'@stripe/stripe-js@7.9.0': {}
+ '@stylistic/eslint-plugin@2.13.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/utils': 8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
+ eslint: 9.39.2(jiti@1.21.7)
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ estraverse: 5.3.0
+ picomatch: 4.0.3
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
'@stylistic/eslint-plugin@2.13.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/utils': 8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
@@ -12414,6 +12144,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- typescript
+ optional: true
'@svgdotjs/svg.draggable.js@3.0.6(@svgdotjs/svg.js@3.2.5)':
dependencies:
@@ -12771,10 +12502,6 @@ snapshots:
pg-protocol: 1.10.3
pg-types: 2.2.0
- '@types/react@19.2.7':
- dependencies:
- csstype: 3.2.3
-
'@types/resolve@1.20.2': {}
'@types/rss@0.0.32': {}
@@ -12819,6 +12546,22 @@ snapshots:
dependencies:
'@types/node': 20.19.27
+ '@typescript-eslint/eslint-plugin@8.51.0(@typescript-eslint/parser@8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.2
+ '@typescript-eslint/parser': 8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.51.0
+ '@typescript-eslint/type-utils': 8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.51.0
+ eslint: 9.39.2(jiti@1.21.7)
+ ignore: 7.0.5
+ natural-compare: 1.4.0
+ ts-api-utils: 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/eslint-plugin@8.51.0(@typescript-eslint/parser@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
@@ -12835,6 +12578,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/parser@8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.51.0
+ '@typescript-eslint/types': 8.51.0
+ '@typescript-eslint/typescript-estree': 8.51.0(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.51.0
+ debug: 4.4.3
+ eslint: 9.39.2(jiti@1.21.7)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/parser@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.51.0
@@ -12865,6 +12620,18 @@ snapshots:
dependencies:
typescript: 5.9.3
+ '@typescript-eslint/type-utils@8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.51.0
+ '@typescript-eslint/typescript-estree': 8.51.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
+ debug: 4.4.3
+ eslint: 9.39.2(jiti@1.21.7)
+ ts-api-utils: 2.3.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/type-utils@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/types': 8.51.0
@@ -12894,6 +12661,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/utils@8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7))
+ '@typescript-eslint/scope-manager': 8.51.0
+ '@typescript-eslint/types': 8.51.0
+ '@typescript-eslint/typescript-estree': 8.51.0(typescript@5.9.3)
+ eslint: 9.39.2(jiti@1.21.7)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/utils@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
@@ -13008,7 +12786,7 @@ snapshots:
'@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5)
'@rolldown/pluginutils': 1.0.0-beta.58
'@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.28.5)
- vite: 7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vue: 3.5.26(typescript@5.9.3)
transitivePeerDependencies:
- supports-color
@@ -13018,67 +12796,18 @@ snapshots:
vite: 5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)
vue: 3.5.26(typescript@5.9.3)
- '@vitejs/plugin-vue@6.0.3(vite@6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))':
+ '@vitejs/plugin-vue@6.0.3(vite@6.4.1(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-beta.53
- vite: 6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vue: 3.5.26(typescript@5.9.3)
'@vitejs/plugin-vue@6.0.3(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-beta.53
- vite: 7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vue: 3.5.26(typescript@5.9.3)
- '@vitest/browser-playwright@4.0.16(playwright@1.57.0)(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16)':
- dependencies:
- '@vitest/browser': 4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16)
- '@vitest/mocker': 4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))
- playwright: 1.57.0
- tinyrainbow: 3.0.3
- vitest: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
- transitivePeerDependencies:
- - bufferutil
- - msw
- - utf-8-validate
- - vite
-
- '@vitest/browser@4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16)':
- dependencies:
- '@vitest/mocker': 4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))
- '@vitest/utils': 4.0.16
- magic-string: 0.30.21
- pixelmatch: 7.1.0
- pngjs: 7.0.0
- sirv: 3.0.2
- tinyrainbow: 3.0.3
- vitest: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
- ws: 8.18.3
- transitivePeerDependencies:
- - bufferutil
- - msw
- - utf-8-validate
- - vite
-
- '@vitest/coverage-v8@4.0.16(@vitest/browser@4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16))(vitest@4.0.16)':
- dependencies:
- '@bcoe/v8-coverage': 1.0.2
- '@vitest/utils': 4.0.16
- ast-v8-to-istanbul: 0.3.10
- istanbul-lib-coverage: 3.2.2
- istanbul-lib-report: 3.0.1
- istanbul-lib-source-maps: 5.0.6
- istanbul-reports: 3.2.0
- magicast: 0.5.1
- obug: 2.1.1
- std-env: 3.10.0
- tinyrainbow: 3.0.3
- vitest: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
- optionalDependencies:
- '@vitest/browser': 4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16)
- transitivePeerDependencies:
- - supports-color
-
'@vitest/expect@3.2.4':
dependencies:
'@types/chai': 5.2.3
@@ -13087,15 +12816,6 @@ snapshots:
chai: 5.3.3
tinyrainbow: 2.0.0
- '@vitest/expect@4.0.16':
- dependencies:
- '@standard-schema/spec': 1.1.0
- '@types/chai': 5.2.3
- '@vitest/spy': 4.0.16
- '@vitest/utils': 4.0.16
- chai: 6.2.2
- tinyrainbow: 3.0.3
-
'@vitest/mocker@3.2.4(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))':
dependencies:
'@vitest/spy': 3.2.4
@@ -13104,58 +12824,20 @@ snapshots:
optionalDependencies:
vite: 5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)
- '@vitest/mocker@4.0.16(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))':
- dependencies:
- '@vitest/spy': 4.0.16
- estree-walker: 3.0.3
- magic-string: 0.30.21
- optionalDependencies:
- vite: 5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)
-
- '@vitest/mocker@4.0.16(vite@6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))':
- dependencies:
- '@vitest/spy': 4.0.16
- estree-walker: 3.0.3
- magic-string: 0.30.21
- optionalDependencies:
- vite: 6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
-
'@vitest/pretty-format@3.2.4':
dependencies:
tinyrainbow: 2.0.0
- '@vitest/pretty-format@4.0.16':
- dependencies:
- tinyrainbow: 3.0.3
-
- '@vitest/runner@4.0.16':
- dependencies:
- '@vitest/utils': 4.0.16
- pathe: 2.0.3
-
- '@vitest/snapshot@4.0.16':
- dependencies:
- '@vitest/pretty-format': 4.0.16
- magic-string: 0.30.21
- pathe: 2.0.3
-
'@vitest/spy@3.2.4':
dependencies:
tinyspy: 4.0.4
- '@vitest/spy@4.0.16': {}
-
'@vitest/utils@3.2.4':
dependencies:
'@vitest/pretty-format': 3.2.4
loupe: 3.2.1
tinyrainbow: 2.0.0
- '@vitest/utils@4.0.16':
- dependencies:
- '@vitest/pretty-format': 4.0.16
- tinyrainbow: 3.0.3
-
'@volar/kit@2.4.27(typescript@5.9.3)':
dependencies:
'@volar/language-service': 2.4.27
@@ -13720,12 +13402,6 @@ snapshots:
dependencies:
tslib: 2.8.1
- ast-v8-to-istanbul@0.3.10:
- dependencies:
- '@jridgewell/trace-mapping': 0.3.31
- estree-walker: 3.0.3
- js-tokens: 9.0.1
-
ast-walker-scope@0.8.3:
dependencies:
'@babel/parser': 7.28.5
@@ -14011,8 +13687,6 @@ snapshots:
loupe: 3.2.1
pathval: 2.0.1
- chai@6.2.2: {}
-
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
@@ -14632,10 +14306,10 @@ snapshots:
escape-string-regexp@5.0.0: {}
- eslint-config-flat-gitignore@0.3.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-config-flat-gitignore@0.3.0(eslint@9.39.2(jiti@1.21.7)):
dependencies:
- '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@2.6.1))
- eslint: 9.39.2(jiti@2.6.1)
+ '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@1.21.7))
+ eslint: 9.39.2(jiti@1.21.7)
find-up-simple: 1.0.1
eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)):
@@ -14653,12 +14327,12 @@ snapshots:
optionalDependencies:
unrs-resolver: 1.11.1
- eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)):
dependencies:
'@typescript-eslint/types': 8.51.0
comment-parser: 1.4.1
debug: 4.4.3
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 9.39.2(jiti@1.21.7)
eslint-import-context: 0.1.9(unrs-resolver@1.11.1)
is-glob: 4.0.3
minimatch: 10.1.1
@@ -14666,18 +14340,18 @@ snapshots:
stable-hash-x: 0.2.0
unrs-resolver: 1.11.1
optionalDependencies:
- '@typescript-eslint/utils': 8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.51.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)
transitivePeerDependencies:
- supports-color
- eslint-plugin-jsdoc@50.8.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-jsdoc@50.8.0(eslint@9.39.2(jiti@1.21.7)):
dependencies:
'@es-joy/jsdoccomment': 0.50.2
are-docs-informative: 0.0.2
comment-parser: 1.4.1
debug: 4.4.3
escape-string-regexp: 4.0.0
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 9.39.2(jiti@1.21.7)
espree: 10.4.0
esquery: 1.7.0
parse-imports-exports: 0.2.4
@@ -14695,12 +14369,12 @@ snapshots:
optionalDependencies:
eslint-config-prettier: 10.1.8(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@1.21.7)):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7))
'@eslint-community/regexpp': 4.12.2
comment-parser: 1.4.1
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 9.39.2(jiti@1.21.7)
jsdoc-type-pratt-parser: 4.8.0
refa: 0.12.1
regexp-ast-analysis: 0.7.1
@@ -14719,20 +14393,20 @@ snapshots:
- supports-color
- typescript
- eslint-plugin-turbo@2.7.2(eslint@9.39.2(jiti@2.6.1))(turbo@2.7.2):
+ eslint-plugin-turbo@2.7.2(eslint@9.39.2(jiti@1.21.7))(turbo@2.7.2):
dependencies:
dotenv: 16.0.3
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 9.39.2(jiti@1.21.7)
turbo: 2.7.2
- eslint-plugin-unicorn@55.0.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-unicorn@55.0.0(eslint@9.39.2(jiti@1.21.7)):
dependencies:
'@babel/helper-validator-identifier': 7.28.5
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7))
ci-info: 4.3.1
clean-regexp: 1.0.0
core-js-compat: 3.47.0
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 9.39.2(jiti@1.21.7)
esquery: 1.7.0
globals: 15.15.0
indent-string: 4.0.0
@@ -14759,16 +14433,16 @@ snapshots:
'@stylistic/eslint-plugin': 2.13.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/parser': 8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- eslint-plugin-vue@9.33.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-vue@9.33.0(eslint@9.39.2(jiti@1.21.7)):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
- eslint: 9.39.2(jiti@2.6.1)
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7))
+ eslint: 9.39.2(jiti@1.21.7)
globals: 13.24.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.1.2
semver: 7.7.3
- vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@2.6.1))
+ vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@1.21.7))
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
@@ -14827,7 +14501,6 @@ snapshots:
jiti: 1.21.7
transitivePeerDependencies:
- supports-color
- optional: true
eslint@9.39.2(jiti@2.6.1):
dependencies:
@@ -14971,8 +14644,6 @@ snapshots:
exit-hook@2.2.1: {}
- expect-type@1.3.0: {}
-
expressive-code@0.40.2:
dependencies:
'@expressive-code/core': 0.40.2
@@ -15098,9 +14769,6 @@ snapshots:
fresh@2.0.0: {}
- fsevents@2.3.2:
- optional: true
-
fsevents@2.3.3:
optional: true
@@ -15456,8 +15124,6 @@ snapshots:
hosted-git-info@2.8.9: {}
- html-escaper@2.0.2: {}
-
html-escaper@3.0.3: {}
html-minifier-terser@7.2.0:
@@ -15722,27 +15388,6 @@ snapshots:
iso-3166-2@1.0.0: {}
- istanbul-lib-coverage@3.2.2: {}
-
- istanbul-lib-report@3.0.1:
- dependencies:
- istanbul-lib-coverage: 3.2.2
- make-dir: 4.0.0
- supports-color: 7.2.0
-
- istanbul-lib-source-maps@5.0.6:
- dependencies:
- '@jridgewell/trace-mapping': 0.3.31
- debug: 4.4.3
- istanbul-lib-coverage: 3.2.2
- transitivePeerDependencies:
- - supports-color
-
- istanbul-reports@3.2.0:
- dependencies:
- html-escaper: 2.0.2
- istanbul-lib-report: 3.0.1
-
jackspeak@3.4.3:
dependencies:
'@isaacs/cliui': 8.0.2
@@ -16015,10 +15660,6 @@ snapshots:
'@babel/types': 7.28.5
source-map-js: 1.2.1
- make-dir@4.0.0:
- dependencies:
- semver: 7.7.3
-
markdown-extensions@2.0.0: {}
markdown-it@13.0.2:
@@ -16790,16 +16431,16 @@ snapshots:
dependencies:
boolbase: 1.0.0
- nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2):
+ nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2):
dependencies:
'@dxup/nuxt': 0.2.2(magicast@0.5.1)
'@nuxt/cli': 3.31.3(cac@6.7.14)(magicast@0.5.1)
'@nuxt/devtools': 3.1.1(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))
'@nuxt/kit': 3.20.2(magicast@0.5.1)
- '@nuxt/nitro-server': 3.20.2(db0@0.3.4)(ioredis@5.8.2)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(typescript@5.9.3)(xml2js@0.6.2)
+ '@nuxt/nitro-server': 3.20.2(db0@0.3.4)(ioredis@5.8.2)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(typescript@5.9.3)(xml2js@0.6.2)
'@nuxt/schema': 3.20.2
'@nuxt/telemetry': 2.6.6(magicast@0.5.1)
- '@nuxt/vite-builder': 3.20.2(@types/node@20.19.27)(eslint@9.39.2(jiti@1.21.7))(lightningcss@1.30.2)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@1.21.7))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2)
+ '@nuxt/vite-builder': 3.20.2(@types/node@20.19.27)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.1)(@types/node@20.19.27)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2)
'@unhead/vue': 2.1.1(vue@3.5.26(typescript@5.9.3))
'@vue/shared': 3.5.26
c12: 3.3.3(magicast@0.5.1)
@@ -17236,10 +16877,6 @@ snapshots:
pirates@4.0.7: {}
- pixelmatch@7.1.0:
- dependencies:
- pngjs: 7.0.0
-
pkg-types@1.3.1:
dependencies:
confbox: 0.1.8
@@ -17252,18 +16889,8 @@ snapshots:
exsolve: 1.0.8
pathe: 2.0.3
- playwright-core@1.57.0: {}
-
- playwright@1.57.0:
- dependencies:
- playwright-core: 1.57.0
- optionalDependencies:
- fsevents: 2.3.2
-
pluralize@8.0.0: {}
- pngjs@7.0.0: {}
-
postcss-calc@10.1.1(postcss@8.5.6):
dependencies:
postcss: 8.5.6
@@ -18198,8 +17825,6 @@ snapshots:
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
- siginfo@2.0.0: {}
-
signal-exit@3.0.7: {}
signal-exit@4.1.0: {}
@@ -18279,8 +17904,6 @@ snapshots:
stable-hash-x@0.2.0: {}
- stackback@0.0.2: {}
-
standard-as-callback@2.1.0: {}
starlight-openapi@0.14.4(@astrojs/markdown-remark@6.3.10)(@astrojs/starlight@0.32.6(astro@5.16.6(@types/node@20.19.27)(db0@0.3.4)(ioredis@5.8.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.2)))(astro@5.16.6(@types/node@20.19.27)(db0@0.3.4)(ioredis@5.8.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.54.0)(sass@1.97.1)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.2))(openapi-types@12.1.3):
@@ -18573,8 +18196,6 @@ snapshots:
tiny-invariant@1.3.3: {}
- tinybench@2.9.0: {}
-
tinyexec@1.0.2: {}
tinyglobby@0.2.15:
@@ -18584,8 +18205,6 @@ snapshots:
tinyrainbow@2.0.0: {}
- tinyrainbow@3.0.3: {}
-
tinyspy@4.0.4: {}
to-regex-range@5.0.1:
@@ -18959,12 +18578,12 @@ snapshots:
vite-dev-rpc@1.1.0(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)):
dependencies:
birpc: 2.9.0
- vite: 7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vite-hot-client: 2.1.0(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))
vite-hot-client@2.1.0(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)):
dependencies:
- vite: 7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vite-node@5.2.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2):
dependencies:
@@ -18986,7 +18605,7 @@ snapshots:
- tsx
- yaml
- vite-plugin-checker@0.12.0(eslint@9.39.2(jiti@1.21.7))(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3)):
+ vite-plugin-checker@0.12.0(eslint@9.39.2(jiti@2.6.1))(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3)):
dependencies:
'@babel/code-frame': 7.27.1
chokidar: 4.0.3
@@ -18995,10 +18614,10 @@ snapshots:
picomatch: 4.0.3
tiny-invariant: 1.3.3
tinyglobby: 0.2.15
- vite: 7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vscode-uri: 3.1.0
optionalDependencies:
- eslint: 9.39.2(jiti@1.21.7)
+ eslint: 9.39.2(jiti@2.6.1)
optionator: 0.9.4
typescript: 5.9.3
vue-tsc: 2.2.12(typescript@5.9.3)
@@ -19013,7 +18632,7 @@ snapshots:
perfect-debounce: 2.0.0
sirv: 3.0.2
unplugin-utils: 0.3.1
- vite: 7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vite-dev-rpc: 1.1.0(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))
optionalDependencies:
'@nuxt/kit': 4.2.2(magicast@0.5.1)
@@ -19027,7 +18646,7 @@ snapshots:
magic-string: 0.30.21
pathe: 2.0.3
source-map-js: 1.2.1
- vite: 7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
vue: 3.5.26(typescript@5.9.3)
vite-svg-loader@5.1.0(vue@3.5.26(typescript@5.9.3)):
@@ -19047,7 +18666,7 @@ snapshots:
sass: 1.97.1
terser: 5.44.1
- vite@6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2):
+ vite@6.4.1(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2):
dependencies:
esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.3)
@@ -19058,15 +18677,15 @@ snapshots:
optionalDependencies:
'@types/node': 20.19.27
fsevents: 2.3.3
- jiti: 2.6.1
+ jiti: 1.21.7
lightningcss: 1.30.2
sass: 1.97.1
terser: 5.44.1
yaml: 2.8.2
- vite@7.3.0(@types/node@20.19.27)(jiti@1.21.7)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2):
+ vite@6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2):
dependencies:
- esbuild: 0.27.2
+ esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
postcss: 8.5.6
@@ -19075,7 +18694,7 @@ snapshots:
optionalDependencies:
'@types/node': 20.19.27
fsevents: 2.3.3
- jiti: 1.21.7
+ jiti: 2.6.1
lightningcss: 1.30.2
sass: 1.97.1
terser: 5.44.1
@@ -19102,45 +18721,6 @@ snapshots:
optionalDependencies:
vite: 6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
- vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2):
- dependencies:
- '@vitest/expect': 4.0.16
- '@vitest/mocker': 4.0.16(vite@6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))
- '@vitest/pretty-format': 4.0.16
- '@vitest/runner': 4.0.16
- '@vitest/snapshot': 4.0.16
- '@vitest/spy': 4.0.16
- '@vitest/utils': 4.0.16
- es-module-lexer: 1.7.0
- expect-type: 1.3.0
- magic-string: 0.30.21
- obug: 2.1.1
- pathe: 2.0.3
- picomatch: 4.0.3
- std-env: 3.10.0
- tinybench: 2.9.0
- tinyexec: 1.0.2
- tinyglobby: 0.2.15
- tinyrainbow: 3.0.3
- vite: 6.4.1(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)
- why-is-node-running: 2.3.0
- optionalDependencies:
- '@opentelemetry/api': 1.9.0
- '@types/node': 20.19.27
- '@vitest/browser-playwright': 4.0.16(playwright@1.57.0)(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))(vitest@4.0.16)
- transitivePeerDependencies:
- - jiti
- - less
- - lightningcss
- - msw
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - terser
- - tsx
- - yaml
-
void-elements@3.1.0: {}
volar-service-css@0.0.67(@volar/language-service@2.4.27):
@@ -19257,7 +18837,7 @@ snapshots:
vue-component-type-helpers@3.2.1: {}
- vue-component-type-helpers@3.2.2: {}
+ vue-component-type-helpers@3.2.3: {}
vue-confetti-explosion@1.0.2(vue@3.5.26(typescript@5.9.3)):
dependencies:
@@ -19297,10 +18877,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-eslint-parser@9.4.3(eslint@9.39.2(jiti@2.6.1)):
+ vue-eslint-parser@9.4.3(eslint@9.39.2(jiti@1.21.7)):
dependencies:
debug: 4.4.3
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 9.39.2(jiti@1.21.7)
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
@@ -19417,11 +18997,6 @@ snapshots:
dependencies:
isexe: 3.1.1
- why-is-node-running@2.3.0:
- dependencies:
- siginfo: 2.0.0
- stackback: 0.0.2
-
widest-line@5.0.0:
dependencies:
string-width: 7.2.0