\n \u003C/div>\n \u003C/UPageColumns>\n \u003C/ULandingSection>\n \u003Ctemplate #footer>\n \u003CUUser v-bind=\"testimonial.author\" size=\"xl\" :ui=\"{ description: 'line-clamp-1' }\" />\n \u003C/template>\n \u003C/UPageCard>\n \u003C/UPageMarquee>\n```\n\nHowever, when I use marquee like this, , there are no performance issues : \n\n```\n\u003CUPageSection>\n \u003CUPageLogos marquee :title=\"page.logos.title\">\n \u003Ctemplate v-for=\"image in page.logos.images\" :key=\"image.src\">\n \u003CNuxtImg\n :src=\"image.src\"\n :alt=\"image.alt\"\n :width=\"image.width\"\n :height=\"image.height\"\n loading=\"lazy\"\n sizes=\"xs:320px sm:640px md:768px\"\n quality=\"40\"\n class=\"mb-4 sm:mb-0 sm:mr-4 mx-auto flex-shrink-0\"\n />\n \u003C/template>\n \u003C/UPageLogos>\n \u003C/UPageSection>\n```\n\nI have the impression that in one case, the animation loading is deferred, whereas in the other, it is not.",[2001,2004,2005,2008],{"name":2002,"color":2003},"bug","d73a4a",{"name":1988,"color":1989},{"name":2006,"color":2007},"pro","5BD3CB",{"name":2009,"color":2010},"triage","ffffff",3454,"PageMarquee with testimonials have performance trouble","2025-03-09T20:39:12Z","https://github.com/nuxt/ui/issues/3454",0.80438346,{"description":2017,"labels":2018,"number":2022,"owner":1991,"repository":1992,"state":1993,"title":2023,"updated_at":2024,"url":2025,"score":2026},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v22.1.0`\n- Nuxt Version: `3.16.2`\n- CLI Version: `3.24.0`\n- Nitro Version: `2.11.8`\n- Package Manager: `yarn@4.7.0`\n- Builder: `-`\n- User Config: `modules`, `ssr`, `components`, `app`, `css`, `runtimeConfig`, `compatibilityDate`, `nitro`, `vite`, `eslint`\n- Runtime Modules: `@pinia/nuxt@0.10.1`, `pinia-plugin-persistedstate/nuxt@4.2.0`, `@nuxt/ui@3.0.2`, `dayjs-nuxt@2.1.11`, `@nuxt/eslint@1.3.0`\n- Build Modules: `-`\n\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\n3.0.2\n\n### Reproduction\n\nhttps://codesandbox.io/p/sandbox/festive-feather-mzq49q\n\nIn the second select (which is wrapped in a form tag), don't select anything, and click save to submit the form.\n\nIt should show the browser \"this input is required\" tooltip.\n\n### Description\n\nI can't really understand why/how this happens. Sometimes, the `required` prop on a Select component will not prevent the form to be submitted. But sometimes it's working fine.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[2019,2020,2021],{"name":2002,"color":2003},{"name":1988,"color":1989},{"name":2009,"color":2010},3882,"Select required sometimes not working","2025-04-14T08:11:48Z","https://github.com/nuxt/ui/issues/3882",0.8107968,{"description":2028,"labels":2029,"number":2034,"owner":1991,"repository":1992,"state":2035,"title":2036,"updated_at":2037,"url":2038,"score":2039},"### Description\n\nTake `Login.vue` for example:\n\n```vue\n\u003Cscript setup lang=\"ts\">\nimport { useValidation } from '@/composables/validation'\nimport { useForm } from '@inertiajs/vue3'\nimport type { FormSubmitEvent } from '~/@nuxt/ui/dist/module'\n\nconst props = defineProps\u003C{\n action: string\n status?: string\n}>()\n\nconst { validate } = useValidation()\n\nconst state = useForm({\n email: '',\n password: '',\n remember: false,\n})\n\nconst submit = async (event: FormSubmitEvent\u003Cunknown>) => {\n console.log(event)\n\n state\n .transform((data) => ({\n ...data,\n remember: state.remember ? 'on' : '',\n }))\n .post(props.action, {\n onFinish: () => state.reset('password'),\n })\n}\n\u003C/script>\n\n\u003Ctemplate>\n \u003Cdiv class=\"flex w-full max-w-3xl flex-col\">\n \u003CUForm\n :validate=\"validate\"\n :state=\"state\"\n class=\"space-y-4\"\n @submit=\"submit\"\n >\n \u003CUFormField label=\"Email\" name=\"email\">\n \u003CUInput v-model=\"state.email\" />\n \u003C/UFormField>\n\n \u003CUFormField label=\"Password\" name=\"password\">\n \u003CUInput v-model=\"state.password\" type=\"password\" />\n \u003C/UFormField>\n\n \u003CUButton type=\"submit\"> Submit \u003C/UButton>\n \u003C/UForm>\n \u003C/div>\n\u003C/template>\n```\n\nThis is the composable with the validation logic:\n\n```ts\nimport type { FormDataType } from '@/types'\nimport type { InertiaForm } from '@inertiajs/vue3'\nimport { readonly, ref } from 'vue'\nimport type { FormError } from '~/@nuxt/ui/dist/module'\n\nexport function useValidation() {\n const errors = ref\u003CFormError[]>()\n\n const validate = (obj: unknown) => {\n const form = obj as InertiaForm\u003CFormDataType>\n\n errors.value = []\n\n for (const [key, value] of Object.entries(form.errors)) {\n errors.value.push({\n name: key,\n message: value as string,\n })\n }\n\n return errors.value\n }\n\n return {\n validate,\n errors: readonly(errors),\n }\n}\n```\n\nThe problem is that the validation only works on a second submit.\nIt does submit the form, but the validation errors are not being passed to the validation method.\n\nAny other workarounds? Or anyone already using this with Inertia/Precognition? :)",[2030,2033],{"name":2031,"color":2032},"question","d876e3",{"name":1988,"color":1989},3621,"closed","How to use a form component with Inertiajs (Laravel)?","2025-04-06T13:32:56Z","https://github.com/nuxt/ui/issues/3621",0.76552194,{"description":2041,"labels":2042,"number":2048,"owner":1991,"repository":1992,"state":2035,"title":2049,"updated_at":2050,"url":2051,"score":2052},"",[2043,2044,2045],{"name":1985,"color":1986},{"name":1988,"color":1989},{"name":2046,"color":2047},"reka-ui","56d799",2256,"[InputMenu/Select/SelectMenu] Missing `arrow` prop implementation","2024-10-31T14:09:32Z","https://github.com/nuxt/ui/issues/2256",0.7888849,{"description":2054,"labels":2055,"number":2056,"owner":1991,"repository":2057,"state":2035,"title":2058,"updated_at":2059,"url":2060,"score":2061},"Mobile: Less spacing between companies and Developer Experience section\n\n",[],985,"nuxt.com","[Home] - Improve spacing ","2022-12-07T06:16:24Z","https://github.com/nuxt/nuxt.com/issues/985",0.7914442,{"description":2063,"labels":2064,"number":2067,"owner":1991,"repository":2057,"state":2035,"title":2068,"updated_at":2069,"url":2070,"score":2071},"\n- [x] Those logos are off-centered\n\n\n\n- [x] [Mobile] On the case studies, you can remove the image on responsive, it makes the text hard to read\n\n\n\n- [x] [Mobile] The contact us section at end of case studies must keep his card aspect by not being full width\n\n\n\n- [ ] [Mobile] You can make the images between sections twice of the actual height in mobile\n\n\n\n- [x] Icon should be 24px instead of 20px + in order to compensate the white space of icon, you should remove 'px-6' and do \"pr-6 pl-4\" for the button\n\n\n- [x] You can remove the negative letter spacing of speakers\n\n\n- [x] [Darkmode] This should be white\n\n",[2065],{"name":1985,"color":2066},"1ad6ff",603,"[Resources] Case studies improvements V2","2022-06-27T09:38:18Z","https://github.com/nuxt/nuxt.com/issues/603",0.79147613,{"description":2073,"labels":2074,"number":2067,"owner":1991,"repository":2078,"state":2035,"title":2079,"updated_at":2080,"url":2081,"score":2071},"In version 0.11.0 I get type errors is I try to run\r\n```\r\nvi.spyOn(vue, 'watch')\r\n// TypeError: Cannot redefine property: watch\r\n```\r\n\r\nThe same is for `onMounted`\r\n\r\nDo you happen to have any thoughts on what may have changed to make this happen? I think it's a result of `nuxt-vitest`\r\n\r\nIt could possibly be that by updating nuxt-vitest also updated other dependencies resulting in this? If you have any hints, always appreciated as to how to hunt this down.\r\n\r\nI'll look at any other workarounds hacks too, but just in case it this was not an intended effect and it makes something spring to mind as to what could cause it :)\r\n\r\nFailing test:\r\n```\r\nimport { describe, test, vi } from 'vitest'\r\nimport * as vue from 'vue'\r\n\r\ndescribe('Cannot mock vue functions', () => {\r\n test('Spy on watch', () => {\r\n vi.spyOn(vue, 'watch')\r\n })\r\n test('Spy on onMounted', () => {\r\n vi.spyOn(vue, 'onMounted')\r\n })\r\n})\r\n```",[2075],{"name":2076,"color":2077},"vitest-environment","b60205","test-utils","0.11.0 - can no longer spy on vue methods such as watch or onMounted","2023-12-05T16:26:09Z","https://github.com/nuxt/test-utils/issues/603",{"description":2083,"labels":2084,"number":2088,"owner":1991,"repository":1992,"state":2035,"title":2089,"updated_at":2090,"url":2091,"score":2092},"### Environment\n\nOS Linux\nnode v22.14\n\nnuxt v3.16.1\nnuxt ui v3.0.1\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.16.1\n\n### Reproduction\n\n\nhttps://codesandbox.io/p/devbox/peaceful-newton-7rrnpq?workspaceId=ws_BXPvVpCjQQH8Dp7pSA8M1q\n\n### Description\n\nA tooltip with, as content, an Avatar without src prop did not display the popup.\n\n ```\n\u003CUTooltip arrow text=\"title\">\n \u003CUAvatar text=\"Avatar\" size=\"3xl\" />\n \u003C/UTooltip>\n```\nThe popup with 'title' is never displayed\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[2085,2086,2087],{"name":2002,"color":2003},{"name":1988,"color":1989},{"name":2009,"color":2010},3699,"tooltip with avatar without src do not work","2025-03-28T09:27:27Z","https://github.com/nuxt/ui/issues/3699",0.7940096,{"description":2094,"labels":2095,"number":2097,"owner":1991,"repository":2057,"state":2035,"title":2098,"updated_at":2099,"url":2100,"score":2101},"## Case Studies List \n- [ ] You can remove this \"Contact Us\" section\n\n\n## Case Study\n\n- [ ] Line-height should be 170% in prose \n\n\n- [ ] Border radius must be 12px\n\n\n- [ ] Previous page must be align to the right also padding-Y must be 16px\n\n\n\n",[2096],{"name":1985,"color":2066},519,"[Resources] Case Studies UI improvements","2022-05-20T13:19:12Z","https://github.com/nuxt/nuxt.com/issues/519",0.7980831,["Reactive",2103],{},["Set"],["ShallowReactive",2106],{"TRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"jPRUE_efl5bLq0eO_2z7gMqFbWR-mP6QucagaJtajsY":-1},"/nuxt/ui/3858"]