mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-14 12:14:41 +01:00
chore(deps): update nuxt framework to v4 (v3) (major) (#4532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Benjamin Canac <canacb1@gmail.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { onMounted, watch } from 'vue'
|
import { onMounted, watch } from 'vue'
|
||||||
import FaviconSvg from 'public/icon.svg?raw'
|
import FaviconSvg from '../../public/icon.svg?raw'
|
||||||
|
|
||||||
export function useFaviconFromTheme() {
|
export function useFaviconFromTheme() {
|
||||||
const colorMode = useColorMode()
|
const colorMode = useColorMode()
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
"joi": "^17.13.3",
|
"joi": "^17.13.3",
|
||||||
"maska": "^3.2.0",
|
"maska": "^3.2.0",
|
||||||
"motion-v": "^1.5.0",
|
"motion-v": "^1.5.0",
|
||||||
"nuxt": "^3.17.7",
|
"nuxt": "^4.0.0",
|
||||||
"nuxt-component-meta": "^0.12.1",
|
"nuxt-component-meta": "^0.12.1",
|
||||||
"nuxt-llms": "^0.1.3",
|
"nuxt-llms": "^0.1.3",
|
||||||
"nuxt-og-image": "^5.1.9",
|
"nuxt-og-image": "^5.1.9",
|
||||||
|
|||||||
@@ -116,8 +116,8 @@
|
|||||||
"@internationalized/number": "^3.6.3",
|
"@internationalized/number": "^3.6.3",
|
||||||
"@nuxt/fonts": "^0.11.4",
|
"@nuxt/fonts": "^0.11.4",
|
||||||
"@nuxt/icon": "^1.15.0",
|
"@nuxt/icon": "^1.15.0",
|
||||||
"@nuxt/kit": "^3.17.7",
|
"@nuxt/kit": "^4.0.0",
|
||||||
"@nuxt/schema": "^3.17.7",
|
"@nuxt/schema": "^4.0.0",
|
||||||
"@nuxtjs/color-mode": "^3.5.2",
|
"@nuxtjs/color-mode": "^3.5.2",
|
||||||
"@standard-schema/spec": "^1.0.0",
|
"@standard-schema/spec": "^1.0.0",
|
||||||
"@tailwindcss/postcss": "^4.1.11",
|
"@tailwindcss/postcss": "^4.1.11",
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
"embla-carousel": "^8.6.0",
|
"embla-carousel": "^8.6.0",
|
||||||
"eslint": "^9.31.0",
|
"eslint": "^9.31.0",
|
||||||
"happy-dom": "^18.0.1",
|
"happy-dom": "^18.0.1",
|
||||||
"nuxt": "^3.17.7",
|
"nuxt": "^4.0.0",
|
||||||
"release-it": "^19.0.3",
|
"release-it": "^19.0.3",
|
||||||
"vitest": "^3.2.4",
|
"vitest": "^3.2.4",
|
||||||
"vitest-environment-nuxt": "^1.0.1",
|
"vitest-environment-nuxt": "^1.0.1",
|
||||||
|
|||||||
@@ -16,9 +16,9 @@
|
|||||||
"zod": "^4.0.5"
|
"zod": "^4.0.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vitejs/plugin-vue": "^5.2.4",
|
"@vitejs/plugin-vue": "^6.0.0",
|
||||||
"typescript": "^5.8.3",
|
"typescript": "^5.8.3",
|
||||||
"vite": "^6.3.5",
|
"vite": "^7.0.4",
|
||||||
"vue-tsc": "^3.0.1"
|
"vue-tsc": "^3.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
"@internationalized/date": "^3.8.2",
|
"@internationalized/date": "^3.8.2",
|
||||||
"@nuxt/ui": "workspace:*",
|
"@nuxt/ui": "workspace:*",
|
||||||
"@nuxthub/core": "^0.9.0",
|
"@nuxthub/core": "^0.9.0",
|
||||||
"nuxt": "^3.17.7",
|
"nuxt": "^4.0.0",
|
||||||
"zod": "^4.0.5"
|
"zod": "^4.0.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
1336
pnpm-lock.yaml
generated
1336
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -120,7 +120,7 @@ describe('CheckboxGroup', () => {
|
|||||||
test('no label for=... on FormField', async () => {
|
test('no label for=... on FormField', async () => {
|
||||||
const { wrapper } = await createForm()
|
const { wrapper } = await createForm()
|
||||||
const formFieldLabel = wrapper.findAll('label').map(label => label.attributes()).filter(label => !label.for?.includes(':'))[0]
|
const formFieldLabel = wrapper.findAll('label').map(label => label.attributes()).filter(label => !label.for?.includes(':'))[0]
|
||||||
expect(formFieldLabel.for).toBeUndefined()
|
expect(formFieldLabel?.for).toBeUndefined()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -68,15 +68,15 @@ describe('CommandPalette', () => {
|
|||||||
// Props
|
// Props
|
||||||
['with groups', { props }],
|
['with groups', { props }],
|
||||||
['without data', {}],
|
['without data', {}],
|
||||||
['with modelValue', { props: { ...props, modelValue: groups[2].items[0] } }],
|
['with modelValue', { props: { ...props, modelValue: groups[2]?.items[0] } }],
|
||||||
['with defaultValue', { props: { ...props, defaultValue: groups[2].items[0] } }],
|
['with defaultValue', { props: { ...props, defaultValue: groups[2]?.items[0] } }],
|
||||||
['with labelKey', { props: { ...props, labelKey: 'icon' } }],
|
['with labelKey', { props: { ...props, labelKey: 'icon' } }],
|
||||||
['with placeholder', { props: { ...props, placeholder: 'Search...' } }],
|
['with placeholder', { props: { ...props, placeholder: 'Search...' } }],
|
||||||
['with disabled', { props: { ...props, disabled: true } }],
|
['with disabled', { props: { ...props, disabled: true } }],
|
||||||
['with icon', { props: { ...props, icon: 'i-lucide-terminal' } }],
|
['with icon', { props: { ...props, icon: 'i-lucide-terminal' } }],
|
||||||
['with loading', { props: { ...props, loading: true } }],
|
['with loading', { props: { ...props, loading: true } }],
|
||||||
['with loadingIcon', { props: { ...props, loading: true, loadingIcon: 'i-lucide-loader' } }],
|
['with loadingIcon', { props: { ...props, loading: true, loadingIcon: 'i-lucide-loader' } }],
|
||||||
['with selectedIcon', { props: { ...props, selectedIcon: 'i-lucide-badge-check', modelValue: groups[2].items[0] } }],
|
['with selectedIcon', { props: { ...props, selectedIcon: 'i-lucide-badge-check', modelValue: groups[2]?.items[0] } }],
|
||||||
['with close', { props: { ...props, close: true } }],
|
['with close', { props: { ...props, close: true } }],
|
||||||
['with closeIcon', { props: { ...props, close: true, closeIcon: 'i-lucide-trash' } }],
|
['with closeIcon', { props: { ...props, close: true, closeIcon: 'i-lucide-trash' } }],
|
||||||
['with as', { props: { ...props, as: 'section' } }],
|
['with as', { props: { ...props, as: 'section' } }],
|
||||||
|
|||||||
@@ -314,8 +314,8 @@ describe('Form', () => {
|
|||||||
emailInput.trigger('focus')
|
emailInput.trigger('focus')
|
||||||
await flushPromises()
|
await flushPromises()
|
||||||
expect(mockWatchCallback).toHaveBeenCalledTimes(1)
|
expect(mockWatchCallback).toHaveBeenCalledTimes(1)
|
||||||
expect(mockWatchCallback.mock.calls[0][0].has('email')).toBe(true)
|
expect(mockWatchCallback.mock?.calls[0]?.[0]?.has('email')).toBe(true)
|
||||||
expect(mockWatchCallback.mock.calls[0][0].has('password')).toBe(false)
|
expect(mockWatchCallback.mock?.calls[0]?.[0]?.has('password')).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('reactivity: touchedFields works on change', async () => {
|
test('reactivity: touchedFields works on change', async () => {
|
||||||
@@ -327,8 +327,8 @@ describe('Form', () => {
|
|||||||
emailInput.trigger('change')
|
emailInput.trigger('change')
|
||||||
await flushPromises()
|
await flushPromises()
|
||||||
expect(mockWatchCallback).toHaveBeenCalledTimes(1)
|
expect(mockWatchCallback).toHaveBeenCalledTimes(1)
|
||||||
expect(mockWatchCallback.mock.calls[0][0].has('email')).toBe(true)
|
expect(mockWatchCallback.mock?.calls[0]?.[0]?.has('email')).toBe(true)
|
||||||
expect(mockWatchCallback.mock.calls[0][0].has('password')).toBe(false)
|
expect(mockWatchCallback.mock?.calls[0]?.[0]?.has('password')).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('reactivity: blurredFields works', async () => {
|
test('reactivity: blurredFields works', async () => {
|
||||||
@@ -340,8 +340,8 @@ describe('Form', () => {
|
|||||||
emailInput.trigger('blur')
|
emailInput.trigger('blur')
|
||||||
await flushPromises()
|
await flushPromises()
|
||||||
expect(mockWatchCallback).toHaveBeenCalledTimes(1)
|
expect(mockWatchCallback).toHaveBeenCalledTimes(1)
|
||||||
expect(mockWatchCallback.mock.calls[0][0].has('email')).toBe(true)
|
expect(mockWatchCallback.mock?.calls[0]?.[0]?.has('email')).toBe(true)
|
||||||
expect(mockWatchCallback.mock.calls[0][0].has('password')).toBe(false)
|
expect(mockWatchCallback.mock?.calls[0]?.[0]?.has('password')).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('reactivity: dirtyFields works', async () => {
|
test('reactivity: dirtyFields works', async () => {
|
||||||
@@ -352,8 +352,8 @@ describe('Form', () => {
|
|||||||
emailInput.trigger('change')
|
emailInput.trigger('change')
|
||||||
await flushPromises()
|
await flushPromises()
|
||||||
expect(mockWatchCallback).toHaveBeenCalledTimes(1)
|
expect(mockWatchCallback).toHaveBeenCalledTimes(1)
|
||||||
expect(mockWatchCallback.mock.calls[0][0].has('email')).toBe(true)
|
expect(mockWatchCallback.mock?.calls[0]?.[0]?.has('email')).toBe(true)
|
||||||
expect(mockWatchCallback.mock.calls[0][0].has('password')).toBe(false)
|
expect(mockWatchCallback.mock?.calls[0]?.[0]?.has('password')).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('reactivity: dirty works', async () => {
|
test('reactivity: dirty works', async () => {
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ import {
|
|||||||
USlider,
|
USlider,
|
||||||
UPinInput,
|
UPinInput,
|
||||||
UFormField
|
UFormField
|
||||||
|
|
||||||
} from '#components'
|
} from '#components'
|
||||||
|
|
||||||
const inputComponents = [UInput, URadioGroup, UTextarea, UCheckbox, USelect, USelectMenu, UInputMenu, UInputNumber, USwitch, USlider, UPinInput]
|
const inputComponents = [UInput, URadioGroup, UTextarea, UCheckbox, USelect, USelectMenu, UInputMenu, UInputNumber, USwitch, USlider, UPinInput]
|
||||||
@@ -111,7 +110,6 @@ describe('FormField', () => {
|
|||||||
props: { label: 'Label' },
|
props: { label: 'Label' },
|
||||||
inputComponent
|
inputComponent
|
||||||
})
|
})
|
||||||
|
|
||||||
const label = wrapper.find('label[for=v-0-0]')
|
const label = wrapper.find('label[for=v-0-0]')
|
||||||
expect(label.exists()).toBe(true)
|
expect(label.exists()).toBe(true)
|
||||||
|
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ describe('RadioGroup', () => {
|
|||||||
test('no label for=... on FormField', async () => {
|
test('no label for=... on FormField', async () => {
|
||||||
const { wrapper } = await createForm()
|
const { wrapper } = await createForm()
|
||||||
const formFieldLabel = wrapper.findAll('label').map(label => label.attributes()).filter(label => !label.for?.includes('Option'))[0]
|
const formFieldLabel = wrapper.findAll('label').map(label => label.attributes()).filter(label => !label.for?.includes('Option'))[0]
|
||||||
expect(formFieldLabel.for).toBeUndefined()
|
expect(formFieldLabel?.for).toBeUndefined()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user