\n\nHowever, in v4, only the base interface is considered:\n\n\u003Cimg width=\"305\" height=\"121\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/0d52e563-e507-4f53-9e34-a51086879f76\" />\n\n### Additional context\n\nThe v4 projects are using the new default tsconfig\n```json\n{\n // https://nuxt.com/docs/guide/concepts/typescript\n \"files\": [],\n \"references\": [\n {\n \"path\": \"./.nuxt/tsconfig.app.json\"\n },\n {\n \"path\": \"./.nuxt/tsconfig.server.json\"\n },\n {\n \"path\": \"./.nuxt/tsconfig.shared.json\"\n },\n {\n \"path\": \"./.nuxt/tsconfig.node.json\"\n }\n ]\n}\n```\n\n### Logs\n\n```shell-script\n\n```",[3040,3043],{"name":3041,"color":3042},"pending triage","E99695",{"name":3044,"color":3045},"possible regression","B90A42",32727,"Type augmentations broken in v4","2025-07-23T00:55:36Z","https://github.com/nuxt/nuxt/issues/32727",0.7359824,{"description":3052,"labels":3053,"number":3061,"owner":3030,"repository":3031,"state":3062,"title":3063,"updated_at":3064,"url":3065,"score":3066},"### Environment\n\nN/A\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.2.0\n\n### Reproduction\n\n[TypeScript Playground](https://www.typescriptlang.org/play/?#code/PTAEFEA8BcCcEMDG0DOpoAsCmoBmBLWFaUeWAcwFcBbLAOxIHtd1tREAbRlHLAN3rQAUNACeABxwBhLj3ACGAQQoAVCVgA8KgHygAvKBWgsMegBM0ACn6CAXKADknblgcAaUhRQB9AAz38OlwsWFAAJQBKfV0+RnwzUAB+cNB7OhtYIRF1UABlfGpxDixwanwSPSFQUEtrBWh7J1lXDzJyP3sAI0ZGYvg6KL1dftEI7MlwrBQAeVx8wuL9CEhJZA1wAEdKeA4NGRd5QWVyNUkNeaKSsuhtD27erH7tbSyQUB7xFAA6H-HpRgWJlK5X0VRqdTsjmcPHcnna-lA9z6A2ipDoo1AADIwbUbAxGhhRGYENAsGYHINhuixn9JjNcFIAZdIEsoKtoOstjs9s1DkpVOo9kzipBgTc7j1kc8skI3pRoPgOChaZttrsABoeACaukq1UsWm0lkphmMpjoFlA6qSoAAjKlQAAmKImUkW5X6w3G1FGV3mNBam32+zOm1wSg4ey4HY8FUrLBrX3my3hrC6wxCIA)\n\n### Description\n\n`useOverlay` can't infer the result type of lazy laod components because the current `CloseEventArgType` does not work with function overload. \n\nI will try to make a PR to fix it.\n\n\n### Additional context\n\n\n\n\n### Logs\n\n```shell-script\n\n```",[3054,3057,3058],{"name":3055,"color":3056},"bug","d73a4a",{"name":3022,"color":3023},{"name":3059,"color":3060},"triage","ffffff",4413,"closed","`useOverlay` can't infer the result type of lazy load components","2025-07-03T08:45:24Z","https://github.com/nuxt/ui/issues/4413",0.6901682,{"labels":3068,"number":3074,"owner":3030,"repository":3030,"state":3062,"title":3075,"updated_at":3076,"url":3077,"score":3078},[3069,3070,3071],{"name":3028,"color":3060},{"name":3041,"color":3042},{"name":3072,"color":3073},"2.x","d4c5f9",7120,"when instance returns form server side, it can't be checked for instanceof in props type","2023-01-22T15:35:58Z","https://github.com/nuxt/nuxt/issues/7120",0.71159357,{"description":3080,"labels":3081,"number":3085,"owner":3030,"repository":3031,"state":3062,"title":3086,"updated_at":3087,"url":3088,"score":3089},"### Environment\n\n- Operating System: Windows_NT\n- Node Version: v22.16.0\n- Nuxt Version: 3.17.6\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.13\n- Package Manager: pnpm@10.12.4\n- Builder: -\n- User Config: -\n- Runtime Modules: @nuxt/ui@3.2.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.2.0\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/serene-river-hypccq\n\n### Description\n\nupdating to 3.2.0, the cancel button does not display\n\n```ts\nconst overlay = useOverlay()\nconst dialog = overlay.create(VDialog, {\n props: {\n showCancelButton: true,\n },\n})\n\nfunction showDialog() {\n dialog.open({\n title: 'Lorem Ipsum',\n description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',\n })\n}\n```\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3082,3083,3084],{"name":3055,"color":3056},{"name":3022,"color":3023},{"name":3059,"color":3060},4468,"useOverlay: passing props to open will override the props of the create","2025-07-08T08:51:35Z","https://github.com/nuxt/ui/issues/4468",0.7204294,{"description":3091,"labels":3092,"number":3095,"owner":3030,"repository":3030,"state":3062,"title":3096,"updated_at":3097,"url":3098,"score":3099},"### Environment\n\n```\r\n- Operating System: Linux\r\n- Node Version: v18.20.3\r\n- Nuxt Version: 3.13.1\r\n- CLI Version: 3.13.1\r\n- Nitro Version: 2.9.7\r\n- Package Manager: npm@10.2.3\r\n- Builder: -\r\n- User Config: compatibilityDate, devtools\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n```\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-z6juqt?file=components%2FTest.vue\r\n\r\n`npm run typecheck` in terminal\r\n\r\n```\r\ncomponents/Test.vue:8:17 - error TS2339: Property 'optionalStr' does not exist on type 'CreateComponentPublicInstanceWithMixins\u003CToResolvedProps\u003C{}, {}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly\u003C...> & Readonly\u003C...>, ... 16 more ..., {}>'.\r\n\r\n8 \u003Cspan v-if=\"optionalStr\">{{ optionalStr }}\u003C/span>\r\n ~~~~~~~~~~~\r\n```\n\n### Describe the bug\n\nAfter upgrading from Nuxt 3.12.3 to 3.13.2, these TS errors showed up in every component that only uses optional props. The error disappears if we add a single required prop or enable TS strict mode.\n\n### Additional context\n\nThe issue doesn't seem to be present in a pure Vue/Vite project:\r\n\r\nhttps://stackblitz.com/edit/vitejs-vite-ece16d?file=src%2Fcomponents%2FHelloWorld.vue\n\n### Logs\n\n_No response_",[3093,3094],{"name":3041,"color":3042},{"name":3044,"color":3045},29041,"Components with only optional props lose props type if strict mode is disabled","2024-09-23T10:12:23Z","https://github.com/nuxt/nuxt/issues/29041",0.7246748,{"labels":3101,"number":3104,"owner":3030,"repository":3030,"state":3062,"title":3105,"updated_at":3106,"url":3107,"score":3108},[3102,3103],{"name":3041,"color":3042},{"name":3072,"color":3073},8933,"Typescript : Typed props are cast to Object instead of keeping orignal class instance (Only ssr, spa works fine)","2023-01-22T15:38:48Z","https://github.com/nuxt/nuxt/issues/8933",0.7260983,{"description":3110,"labels":3111,"number":3112,"owner":3030,"repository":3113,"state":3062,"title":3114,"updated_at":3115,"url":3116,"score":3117},"**Environment:**\r\n- **Node Version:** v18.20.3\r\n- **Nuxt Version:** ^3.13.0\r\n- **@nuxt/fonts Version:** ^0.8.0\r\n- **Package Manager:** pnpm 9.6.0\r\n\r\n**Description:**\r\nI am experiencing an issue with the font definitions generated by the `@nuxt/font` package in my Nuxt 3 application. The package generates CSS that improperly uses the `local()` function in the `src` property of the `@font-face` declarations, causing the fonts to not load correctly.\r\n\r\n**Generated CSS Snippet:**\r\n```css\r\n@font-face {\r\n font-display: swap;\r\n font-family: 'Archivo';\r\n font-weight: 300;\r\n src: local(\"url('/fonts/Archivo-Light.woff2')\");\r\n}\r\n\r\n/* Other generated font definitions... */\r\n```\r\n\r\n**Expected Behavior:**\r\nThe fonts should load correctly without any issues.\r\n\r\n**Actual Behavior:**\r\nThe generated CSS prevents the fonts from loading properly due to the incorrect syntax in the `src` property.\r\n\r\n**Nuxt Configuration:**\r\n```ts\r\nfonts: {\r\n defaults: {\r\n styles: [\"normal\"],\r\n },\r\n families: [\r\n {\r\n name: \"Archivo\",\r\n src: \"url('/fonts/Archivo-Light.woff2')\",\r\n global: true,\r\n weight: 300\r\n },\r\n {\r\n name: \"Archivo\",\r\n src: \"url('/fonts/Archivo-Regular.woff2')\",\r\n global: true,\r\n weight: 400\r\n },\r\n {\r\n name: \"Archivo\",\r\n src: \"url('/fonts/Archivo-Medium.woff2')\",\r\n global: true,\r\n weight: 500\r\n },\r\n {\r\n name: \"Archivo\",\r\n src: \"url('/fonts/Archivo-SemiBold.woff2')\",\r\n global: true,\r\n weight: 600\r\n },\r\n {\r\n name: \"Clash Display\",\r\n src: \"url('/fonts/ClashDisplay-Regular.woff2')\",\r\n global: true,\r\n weight: 400\r\n },\r\n {\r\n name: \"Clash Display\",\r\n /*\r\n Even when i following the docs with this format (no quote)\r\n src: { name: 'Other Font', src: 'url(/fonts/ClashDisplay-Medium.woff2)', weight: 'bold' }\r\n */\r\n src: \"url('/fonts/ClashDisplay-Medium.woff2')\",\r\n global: true,\r\n weight: 500\r\n },\r\n ]\r\n }\r\n```\r\n\r\n**Steps to Reproduce:**\r\n1. Install `@nuxt/font` using pnpm.\r\n2. Configure the module in `nuxt.config.js` with the provided font settings.\r\n3. Run the application.\r\n\r\n**Additional Context:**\r\n- The paths to the font files are correct, but the current usage of `local()` in the generated CSS is causing loading issues.\r\n- A potential fix could be to modify the generated CSS to remove `local()` and use `url()` directly:\r\n ```css\r\n src: url('/fonts/Archivo-Light.woff2') format('woff2');\r\n ```\r\n\r\nThank you for your assistance!\r\n@danielroe ",[],270,"fonts","Problem with @nuxt/font Usage","2024-09-23T10:29:01Z","https://github.com/nuxt/fonts/issues/270",0.7268821,{"description":3119,"labels":3120,"number":3112,"owner":3030,"repository":3121,"state":3062,"title":3122,"updated_at":3123,"url":3124,"score":3117},"With UnoCSS, I could do this if I want to change the icon on hover\n\n```\n\u003Cbutton class=\"i-carbon-close-outline hover:i-carbon-close-filled\">\n \u003Cspan class=\"sr-only\">Close\u003C/span>\n\u003C/button>\n```\n\nWhat is the recommended way to do this with native CSS and NuxtIcon?\nThese variants are all a bit much and don't really work well\n\nThis avoids group, as there can already be a group class somewhere up the hierarchy.\n\n```\n\u003Cbutton>\n \u003Cdiv class=\"relative size-4\">\n \u003CUIcon name=\"i-carbon-close-outline\" class=\"absolute top-0 left-0 size-4 peer hover:hidden block\" />\n \u003CUIcon name=\"i-carbon-close-filled\" class=\"absolute top-0 left-0 size-4 peer-hover:block hidden\" />\n \u003C/div>\n\u003C/button>\n```\n\nI would also like to avoid JS (same with `:name`)\n\n```\nconst icon = ref\u003CHTMLElement | null>(null)\nconst isHovered = useElementHover(icon)\n...\n\u003Cbutton>\n \u003Cdiv ref=\"icon\" class=\"size-4\">\n \u003CUIcon v-show=\"isHovered\" name=\"i-carbon-close-outline\" class=\"size-4\" />\n \u003CUIcon v-show=\"!isHovered\" name=\"i-carbon-close-filled\" class=\"size-4\" />\n \u003C/div>\n\u003C/button>\n```",[],"icon","[Question] Recommended way to change icon based on CSS states","2024-11-05T19:10:03Z","https://github.com/nuxt/icon/issues/270",{"description":3126,"labels":3127,"number":3132,"owner":3030,"repository":3030,"state":3062,"title":3133,"updated_at":3134,"url":3135,"score":3136},"### Environment\r\n\r\n- Operating System: `Darwin`\r\n- Node Version: `v16.17.1`\r\n- Nuxt Version: `3.0.0-rc.12`\r\n- Nitro Version: `0.6.0`\r\n- Package Manager: `yarn@1.22.19`\r\n- Builder: `vite`\r\n- User Config: `-`\r\n- Runtime Modules: `-`\r\n- Build Modules: `-`\r\n\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/github-gqcwfr?file=components%2Ftest.vue\r\n\r\n### Describe the bug\r\n\r\nhttps://vuejs.org/api/sfc-script-setup.html#typescript-only-features\r\nThis syntax of props declaration throws an error.\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n_No response_",[3128,3131],{"name":3129,"color":3130},"3.x","29bc7f",{"name":3041,"color":3042},15254,"Type-only props declaration doesn't work","2023-01-19T17:46:45Z","https://github.com/nuxt/nuxt/issues/15254",0.727236,["Reactive",3138],{},["Set"],["ShallowReactive",3141],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fvoH0-F7ND3p6MCVnooWYo0_eIDy9hD_m-mhjkY17fPY":-1},"/nuxt/ui/3915"]