\n\u003C/template>\n```\n\nError:\n```\nType '() => Promise\u003Cnumber>' is not assignable to type '((event: FormSubmitEvent\u003Cany>) => any) & ((() => void | Promise\u003Cvoid>) | ((event: FormSubmitEvent\u003Cany>) => void | Promise\u003Cvoid>))'.\n Type '() => Promise\u003Cnumber>' is not assignable to type '((event: FormSubmitEvent\u003Cany>) => any) & (() => void | Promise\u003Cvoid>)'.ts(2322)\nForm.vue.d.ts(59, 18): The expected type comes from property 'onSubmit' which is declared here on type '__VLS_NormalizeComponentEvent\u003CNonNullable\u003C{ onSubmit?: ((event: FormSubmitEvent\u003Cany>) => any) & ((() => void | Promise\u003Cvoid>) | ((event: FormSubmitEvent\u003Cany>) => void | Promise\u003C...>)); ... 11 more ...; class?: any; } & VNodeProps & AllowedComponentProps & ComponentCustomProps>, { ...; }, \"onSubmit\", \"submit\", \"submi...'\n---\n(property) onSubmit?: ((event: FormSubmitEvent\u003Cany>) => any) & ((() => void | Promise\u003Cvoid>) | ((event: FormSubmitEvent\u003Cany>) => void | Promise\u003Cvoid>))\n```\n\n### Description\n\n`\u003CUForm>`s `@submit` event handler type require that it does not return any value. This is needlessly constraining.\n\n### Additional context\n\nThis is not required by the implementation, but instead wholly caused by the types of `onSubmit` property:\nhttps://github.com/nuxt/ui/blob/901bf7cac3ea53264b27adf879ee4072fa9ac242/src/runtime/components/Form.vue#L53\n\nResult of the `onSubmit` prop is not used at all:\nhttps://github.com/nuxt/ui/blob/901bf7cac3ea53264b27adf879ee4072fa9ac242/src/runtime/components/Form.vue#L243\n\nReplacing the type of `onSubmit` with this should be enough:\n```typescript\nexport interface FormProps\u003CS extends FormSchema, T extends boolean = true> {\n // ...\n onSubmit?: (event: FormSubmitEvent\u003CFormData\u003CS, T>>) => unknown\n}\n```\nThis should still allow passing event handlers without arguments.\n\n### Logs\n\n```shell-script\n\n```",[3145,3148],{"name":3146,"color":3147},"bug","d73a4a",{"name":3149,"color":3150},"triage","ffffff",4873,"nuxt","ui","open","`UForm` `onSubmit` type is needlessly constrained","2025-09-02T05:54:14Z","https://github.com/nuxt/ui/issues/4873",0.6686082,{"description":3160,"labels":3161,"number":3167,"owner":3152,"repository":3153,"state":3168,"title":3169,"updated_at":3170,"url":3171,"score":3172},"### Environment\n\n------------------------------\n- Operating System: Linux\n- Node Version: v22.18.0\n- Nuxt Version: 3.17.7\n- CLI Version: 3.28.0\n- Nitro Version: 2.12.4\n- Package Manager: pnpm@10.14.0\n- Builder: -\n- User Config: compatibilityDate, devtools, devServer, ssr, runtimeConfig, css, colorMode, components, modules, dayjs, ui, i18n, zodI18n, sentry, sourcemap\n- Runtime Modules: @nuxt/eslint@1.3.0, @nuxt/scripts@0.11.9, @nuxt/test-utils/module@3.19.2, @nuxt/ui-pro@3.3.2, nuxt-zod-i18n@1.11.5, @nuxtjs/i18n@10.0.2, @pinia/nuxt@0.11.2, @vueuse/nuxt@13.1.0, dayjs-nuxt@2.1.11, nuxt-qrcode@0.4.6, @sentry/nuxt/module@9.40.0\n- Build Modules: -\n------------------------------\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.3.2\n\n### Reproduction\n\nTry to use variant=\"ghost\" on `u-card`, `u-alert`, possibly other components. It will work, but a TypeScript error will be detected by the linter. If you add it manually to variants in `app.config.ts`, the error will be gone.\n\n### Description\n\nI need the ghost variants to align with the rest of my app. And they work fine, as can be seen in the screenshot:\n\n\u003Cimg width=\"213\" height=\"421\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/416c913d-8511-4d00-8673-118365772e8f\" />\n\n```\n\u003Cdiv class=\"space-y-2\">\n \u003Cu-card variant=\"solid\" :ui=\"{ body: 'text-white' }\">Solid\u003C/u-card>\n\n \u003Cu-card variant=\"outline\">Outline\u003C/u-card>\n\n \u003Cu-card variant=\"soft\">Soft\u003C/u-card>\n\n \u003Cu-card variant=\"subtle\">Subtle\u003C/u-card>\n\n \u003Cu-card variant=\"ghost\">Ghost\u003C/u-card>\n \u003C/div>\n\n \u003Cdiv class=\"space-y-2\">\n \u003Cu-alert variant=\"solid\">\u003Ctemplate #title>Solid\u003C/template>\u003C/u-alert>\n\n \u003Cu-alert variant=\"outline\">\u003Ctemplate #title>Outline\u003C/template>\u003C/u-alert>\n\n \u003Cu-alert variant=\"soft\">\u003Ctemplate #title>Soft\u003C/template>\u003C/u-alert>\n\n \u003Cu-alert variant=\"subtle\">\u003Ctemplate #title>Subtle\u003C/template>\u003C/u-alert>\n\n \u003Cu-alert variant=\"ghost\">\u003Ctemplate #title>Ghost\u003C/template>\u003C/u-alert>\n \u003C/div>\n```\n\nBut they throw TypeScript errors. I also see that they are not present in the docs. Is this intended or not? If so, I'd expect to have these mentioned in the docs, with the default options exposed in the `app.config.ts` template, so that they can be easily overridden if needed.\n\nAI agents in particular tend to detect these errors and try to fix them while being instructed to do other things, wasting time, tokens and possibly messing up the code.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3162,3163,3166],{"name":3146,"color":3147},{"name":3164,"color":3165},"v3","49DCB8",{"name":3149,"color":3150},4778,"closed","On some elements, variant=\"ghost\" throws TypeScript errors even though they work fine","2025-08-19T09:23:17Z","https://github.com/nuxt/ui/issues/4778",0.66044825,{"description":3174,"labels":3175,"number":3178,"owner":3152,"repository":3153,"state":3168,"title":3179,"updated_at":3180,"url":3181,"score":3182},"### Environment\n\n- Operating System: `Windows_NT`\n- Node Version: `v22.18.0`\n- Nuxt Version: `4.1.1`\n- CLI Version: `3.28.0`\n- Nitro Version: `2.12.4`\n- Package Manager: `npm@11.5.2`\n- Builder: `-`\n- User Config: `runtimeConfig`, `modules`, `devtools`, `supabase`, `css`, `routeRules`, `compatibilityDate`\n- Runtime Modules: `@nuxt/ui-pro@3.3.3`, `@vueuse/nuxt@13.9.0`, `@nuxtjs/supabase@1.6.2`, `nuxt-charts@0.2.3`\n- Build Modules: `-`\n\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Package\n\nv3.x\n\n### Version\n\nv3.3.3\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/zen-euclid-cf554n\n\n### Description\n\nThe problem occurs because the UFileUpload component likely contains a button element that doesn't have an explicit type attribute, causing it to default to type=\"submit\", which triggers form submission.\n\n### Additional context\n\n```\n\u003Ccomponent\n :is=\"variant === 'button' ? 'button' : 'div'\"\n ref=\"dropzoneRef\"\n :type=\"variant === 'button' ? 'button' : undefined\" // 👈 add this maybe?\n :role=\"variant === 'button' ? undefined : 'button'\"\n :data-dragging=\"isDragging\"\n :class=\"ui.base({ class: props.ui?.base })\"\n :tabindex=\"interactive && !disabled ? 0 : -1\"\n @click=\"interactive && !disabled && open()\" \n @keydown.prevent\n @keyup.enter.space=\"interactive && !disabled && open()\"\n>\n```\n\n### Logs\n\n```shell-script\n\n```",[3176,3177],{"name":3146,"color":3147},{"name":3164,"color":3165},4935,"UFileUpload with variant button inside form will cause UForm submit","2025-09-09T14:55:29Z","https://github.com/nuxt/ui/issues/4935",0.66986287,{"description":3184,"labels":3185,"number":3192,"owner":3152,"repository":3152,"state":3168,"title":3193,"updated_at":3194,"url":3195,"score":3196},"### Versions\r\n\r\n- nuxt: 2.15.3\r\n- node: v14.16.0\r\n\r\n### Reproduction\r\n\r\nI set up a fresh installation of Nuxt today for a project. I use the above mentioned version with Typescript.\r\n\r\nThen I created the component below and created a constant there in the data() method using a constant declaration and also assigned a type to it, as well as returned it via the return object. \r\n\r\nWhen running `npm run dev` I got the following error message, which I can't understand. Because I wrote the same thing in another project with an older Nuxt version and it could be executed.\r\n\r\n```bash\r\n✔ Builder initialized 21:42:22\r\n✔ Nuxt files generated 21:42:22\r\n\r\n✖ Client\r\n Compiled with some errors in 5.93s\r\n\r\n\r\n ERROR Failed to compile with 1 errors friendly-errors 21:42:29\r\n\r\n\r\n ERROR in ./components/form.vue?vue&type=script&lang=ts& friendly-errors 21:42:29\r\n\r\nModule parse failed: Unexpected token (29:17) friendly-errors 21:42:29\r\nFile was processed with these loaders:\r\n * ./node_modules/vue-loader/lib/index.js\r\nYou may need an additional loader to handle the result of these loaders.\r\n| export default Vue.extend({\r\n| data() {\r\n> const taxable: Taxable | null = null\r\n| \r\n| return {\r\n friendly-errors 21:42:29\r\n @ ./components/form.vue?vue&type=script&lang=ts& 1:0-116 1:132-135 1:137-250 1:137-250\r\n @ ./components/form.vue\r\n @ ./.nuxt/components/plugin.js\r\n @ ./.nuxt/index.js\r\n @ ./.nuxt/client.js\r\n @ multi ./node_modules/eventsource-polyfill/dist/browserify-eventsource.js (webpack)-hot-middleware/client.js?reload=true&timeout=30000&ansiColors=&overlayStyles=&path=%2F__webpack_hmr%2Fclient&name=client ./.nuxt/client.js\r\n friendly-errors 21:42:29\r\nℹ Waiting for file changes 21:42:29\r\nℹ Memory usage: 201 MB (RSS: 317 MB) 21:42:29\r\nℹ Listening on: http://localhost:3000/ 21:42:29\r\n```\r\n\r\n\r\n### Steps to reproduce\r\nI have created this SFC.\r\n\r\n```vue\r\n\u003Ctemplate>\r\n \u003Csection class=\"relative w-full h-auto py-8\">\r\n \u003C!-- some html stuff - not interested! -->\r\n \u003C/section>\r\n\u003C/template>\r\n\r\n\u003Cscript lang=\"ts\">\r\nimport Vue from 'vue'\r\nimport { Taxable } from '~/interfaces/index' // return a valid typescript interface\r\n\r\nexport default Vue.extend({\r\n data() {\r\n const taxable: Taxable | null = null\r\n\r\n return {\r\n taxable,\r\n }\r\n }\r\n})\r\n\u003C/script>\r\n\r\n\u003Cstyle lang=\"scss\">\r\n// some styling\r\n\u003C/style>\r\n```\r\n\r\n### What is Expected?\r\nI expect this to compile correctly and launch the app.\r\n\r\n### What is actually happening?\r\nBuild aborts.",[3186,3189],{"name":3187,"color":3188},"pending triage","E99695",{"name":3190,"color":3191},"2.x","d4c5f9",9047,"Nuxt build aborts on const declaration in data() - Typescript","2023-01-22T15:38:48Z","https://github.com/nuxt/nuxt/issues/9047",0.6699029,{"labels":3198,"number":3201,"owner":3152,"repository":3152,"state":3168,"title":3202,"updated_at":3203,"url":3204,"score":3205},[3199,3200],{"name":3187,"color":3188},{"name":3190,"color":3191},6894,"Typescript linting issue","2023-01-22T15:34:48Z","https://github.com/nuxt/nuxt/issues/6894",0.67134553,{"labels":3207,"number":3212,"owner":3152,"repository":3152,"state":3168,"title":3213,"updated_at":3214,"url":3215,"score":3216},[3208,3211],{"name":3209,"color":3210},"3.x","29bc7f",{"name":3187,"color":3188},13339,"Import of types in `\u003Cscript setup lang=\"ts\">` is causing SSR to fail when using `\u003Ctemplate lang=\"pug\">`","2023-01-19T16:53:05Z","https://github.com/nuxt/nuxt/issues/13339",0.6750904,{"description":3218,"labels":3219,"number":3224,"owner":3152,"repository":3152,"state":3168,"title":3225,"updated_at":3226,"url":3227,"score":3228},"### Environment\n\n*package.json*\n```js\n{\n \"name\": \"nuxt-app\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"nuxt build\",\n \"dev\": \"nuxt dev\",\n \"generate\": \"nuxt generate\",\n \"preview\": \"nuxt preview\",\n \"postinstall\": \"nuxt prepare\"\n },\n \"dependencies\": {\n \"@prisma/nuxt\": \"^0.1.2\",\n \"@vueuse/core\": \"^12.0.0\",\n \"@vueuse/nuxt\": \"^12.0.0\",\n \"nuxt\": \"^3.14.1592\",\n \"vue\": \"latest\",\n \"vue-router\": \"latest\"\n },\n \"devDependencies\": {\n \"@nuxt/devtools\": \"npm:@nuxt/devtools-edge@latest\",\n \"@nuxtjs/tailwindcss\": \"^6.12.2\",\n \"@prisma/client\": \"^6.0.1\",\n \"prisma\": \"^6.0.1\"\n }\n}\n\n```\n\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-starter-uquybs?file=nuxt.config.ts,app.vue\n\n### Describe the bug\n\nI have this code that should submit a form but I added `submit.prevent=\"handleSubmit()\"` so this should stop from refreshing.\n\nI tried to reproduce it on stackblitz however everything is working there (including the devtools) but on my local upon clicking create button the page refreshes.\n\n\n\n```html\n\u003Ctemplate>\n\u003Cform @submit.prevent=\"handleSubmit()\" class=\"w-full\">\n\t\u003Cdiv class=\"mb-4\">\n\t\t\u003Cinput\n\t\t\tv-model=\"form.email\"\n\t\t\ttype=\"email\"\n\t\t\tid=\"email\"\n\t\t\tclass=\"w-full p-3 border border-gray-300 rounded mt-1\"\n\t\t\tplaceholder=\"Email address\"\n\t\t/>\n\t\u003C/div>\n\t\u003Cdiv class=\"mb-6\">\n\t\t\u003Cinput\n\t\t\tv-model=\"form.password\"\n\t\t\ttype=\"password\"\n\t\t\tid=\"password\"\n\t\t\tclass=\"w-full p-3 border border-gray-300 rounded mt-1\"\n\t\t\tplaceholder=\"Password\"\n\t\t/>\n\t\u003C/div>\n\t\u003Cdiv class=\"mb-6\">\n\t\t\u003Cinput\n\t\t\tv-model=\"form.confirm_password\"\n\t\t\ttype=\"confirm_password\"\n\t\t\tid=\"confirm_password\"\n\t\t\tclass=\"w-full p-3 border border-gray-300 rounded mt-1\"\n\t\t\tplaceholder=\"Password Confirmation\"\n\t\t/>\n\t\u003C/div>\n\t\u003Cbutton\n\t\ttype=\"submit\"\n\t\tclass=\"w-full bg-blue-600 text-white p-3 rounded hover:bg-blue-700\"\n\t>\n\t\tCreate\n\t\u003C/button>\n\u003C/form>\n\u003C/template>\n\u003Cscript setup>\nconst handleSubmit = async () => {\n\t\n\tif (form.value.password !== form.value.confirm_password) {\n\t\tconsole.log(\"Passwords do not match\");\n\t\talert(\"Passwords do not match\");\n\t\treturn;\n\t}\n\n\tconsole.log(form.value);\n};\n...\n```\n\nhttps://github.com/user-attachments/assets/18ea3431-cadb-4613-a2a3-4703755f2f91\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3220,3221],{"name":3187,"color":3188},{"name":3222,"color":3223},"needs reproduction","FBCA04",30185,"Page refresh bug","2025-02-03T14:25:51Z","https://github.com/nuxt/nuxt/issues/30185",0.6760645,{"description":3230,"labels":3231,"number":3237,"owner":3152,"repository":3152,"state":3168,"title":3238,"updated_at":3239,"url":3240,"score":3241},"### Environment\n\n------------------------------\n- Operating System: Windows_NT\n- Node Version: v22.11.0\n- Nuxt Version: 3.15.4\n- CLI Version: 3.21.1\n- Nitro Version: 2.10.4\n- Package Manager: bun@1.2.1\n- Builder: -\n- User Config: modules, css, ssr, devtools, future, typescript, vite, hooks, nitro, compatibilityDate, runtimeConfig\n- Runtime Modules: @nuxt/ui@3.0.0-alpha.12, nuxt-mikro-orm-module@0.4.1, @nuxt/eslint@1.0.1, nuxt-auth-utils@0.5.15, @nuxt/image@1.9.0\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\nUse this `app.vue`:\n```\n// app.vue\n\u003Cscript setup lang=\"ts\">\n\n\u003C/script>\n\n\u003Ctemplate>\n \u003C!-- https://github.com/nuxt/nuxt/issues/25214#issuecomment-1894051562 -->\n \u003Cdiv>\n \u003CNuxtLoadingIndicator />\n \u003CNuxtRouteAnnouncer />\n\n \u003CNuxtLayout>\n \u003CUApp>\n \u003CNuxtPage />\n \u003C/UApp>\n \u003C/NuxtLayout>\n \u003C/div>\n\u003C/template>\n\n\u003Cstyle>\nbody {\n @apply antialiased;\n background: var(--ui-bg-muted);\n}\n\n.dark {\n body {\n @apply antialiased;\n background: var(--ui-bg);\n }\n}\n\u003C/style>\n```\n\nGo to any page with layout, wait 10-20 sec then try to navigate to another page.\n\n### Describe the bug\n\nSame problem:\nwhen i use navigateTo cant load the page.\nNavigate using user action(navigation menu mouse click) can't load the page\n\n```\n\"nuxt\": \"^3.15.4\",\n\"vue\": \"^3.5.13\",\n\"vue-router\": \"^4.5.0\",\n\"@nuxt/ui\": \"^3.0.0-alpha.10\",\n```\nI get that warning:\n\n\nThen that error:\n\n\nHere is my `app.vue`:\n```\n\u003Cscript setup lang=\"ts\">\n\n\u003C/script>\n\n\u003Ctemplate>\n \u003C!-- https://github.com/nuxt/nuxt/issues/25214#issuecomment-1894051562 -->\n \u003Cdiv>\n \u003CNuxtLoadingIndicator />\n \u003CNuxtRouteAnnouncer />\n\n \u003CNuxtLayout>\n \u003CUApp>\n \u003CNuxtPage />\n \u003C/UApp>\n \u003C/NuxtLayout>\n \u003C/div>\n\u003C/template>\n\n\u003Cstyle>\nbody {\n @apply antialiased;\n background: var(--ui-bg-muted);\n}\n\n.dark {\n body {\n @apply antialiased;\n background: var(--ui-bg);\n }\n}\n\u003C/style>\n```\n\n@TheAlexLichter \n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3232,3233,3234],{"name":3187,"color":3188},{"name":3222,"color":3223},{"name":3235,"color":3236},"closed-by-bot","ededed",31010,"Unhandled error during execution of component update, Uncaught (in promise) TypeError: node is null","2025-02-28T02:01:44Z","https://github.com/nuxt/nuxt/issues/31010",0.67621243,{"description":3243,"labels":3244,"number":3248,"owner":3152,"repository":3153,"state":3168,"title":3249,"updated_at":3250,"url":3251,"score":3252},"### Environment\n\n- Operating System: Linux\n- Node Version: v22.11.0\n- Nuxt Version: 4.0.3\n- CLI Version: 3.27.0\n- Nitro Version: 2.12.4\n- Package Manager: pnpm@10.14.0\n- Builder: -\n- User Config: modules, $production, components, devtools, app, css, site, mdc, ui, compatibilityDate, nitro, vite, eslint, fonts, icon, linkChecker, ogImage, seo, sitemap\n- Runtime Modules: @nuxtjs/seo@3.1.0, @vueuse/nuxt@13.7.0, @nuxt/ui@3.3.2, @nuxt/eslint@1.9.0, @nuxt/scripts@0.11.10, motion-v/nuxt@1.7.0, @nuxtjs/mdc@0.17.2\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Package\n\nv3.x\n\n### Version\n\nv3.3.2\n\n### Reproduction\n\n```vue\n\u003Cscript setup lang=\"ts\">\n// This causes TypeScript error\nconst handleFileChange = (file: File | File[] | null) => {\n console.log(file);\n};\n\u003C/script>\n\n\u003Ctemplate>\n \u003CUFileUpload @update:model-value=\"handleFileChange\" />\n\u003C/template>\n```\n\n### Description\n\nThe `@update:model-value` event handler for `UFileUpload` component emits `unknown` type instead of the documented type `File | File[] | null | undefined`.\n\n**Expected Behavior (per documentation)**\nAccording to the [official documentation](https://ui.nuxt.com/components/file-upload#emits), the `@update:model-value` event should emit:\n- `[value: File | File[] | null | undefined]`\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3245,3246,3247],{"name":3146,"color":3147},{"name":3164,"color":3165},{"name":3149,"color":3150},4852,"Type mismatch: UFileUpload @update:model-value emits unknown instead of documented type","2025-09-01T10:56:13Z","https://github.com/nuxt/ui/issues/4852",0.6773523,{"description":3254,"labels":3255,"number":3264,"owner":3152,"repository":3152,"state":3168,"title":3265,"updated_at":3266,"url":3267,"score":3268},"### Environment\r\n\r\n- Operating System: Darwin\r\n- Node Version: v18.14.0\r\n- Nuxt Version: 3.6.1\r\n- Nitro Version: 2.5.2\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**VsCode 1.79.2**\r\n- vscode.typescript-language-features: disabled\r\n- Vue.volar: 1.8.3, enabled\r\n- Vue.vscode-typescript-vue-plugin: 1.8.3, enabled\r\n\r\n### Reproduction\r\n\r\nhttps://github.com/niklas-may/nuxt-module-issue-reproduction\r\n\r\n### Describe the bug\r\n\r\n**Preface**\r\n_Thank you for your amazing work on Nuxt! I am not sure where this issue is best raised, Nuxt, VsCode or Vue. But due to the special typescript tooling with auto imports, I thought it's best to start here, and would be happy to hear if anybody observed a similar behaviour or has a solution._ \r\n\r\n**Description**\r\nWhen I open `~/.nuxt/components.d.ts` in VsCode and hover over an imported component, VsCode IntelliSense popover displays the correct types for this component.\r\nBut when I use the component in any other components template block, for example `~/app.vue`, the typing is missing the prop types.\r\n\r\n### Component and Type Definitions\r\n\r\n`~/../src/runtime/MyButton.vue`\r\n\r\n```vue\r\n\u003Ctemplate>\r\n \u003Cdiv style=\"border: 1px solid pink\">\r\n \u003Cslot />\r\n \u003C/div>\r\n\u003C/template>\r\n\u003Cscript setup lang=\"ts\">\r\nwithDefaults(\r\n defineProps\u003C{\r\n variant: \"fill\" | \"ghost\";\r\n }>(),\r\n { variant: \"fill\" }\r\n);\r\n\u003C/script>\r\n```\r\n\r\n`~/.nuxt/components.d.ts`\r\n\r\n```TypeScript\r\ndeclare module 'vue' {\r\n export interface GlobalComponents {\r\n //...\r\n 'MyButton': typeof import(\"../../src/runtime/components/MyButton.vue\")['default']\r\n //...\r\n }\r\n}\r\n\r\nexport const MyButton: typeof import(\"../../src/runtime/components/MyButton.vue\")['default']\r\n\r\nexport const componentNames: string[]\r\n```\r\n\r\n\r\n### Correct Intellisense\r\n\r\nVsCode popopver hovering `'MyButton'` in `~/.nuxt/components.d.ts`\r\n\r\n```TypeScript\r\n(property) GlobalComponents['MyButton']: __VLS_WithTemplateSlots\u003CDefineComponent\u003C{\r\n variant: {\r\n type: PropType\u003C\"fill\" | \"ghost\">;\r\n required: true;\r\n default: string;\r\n };\r\n}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 5 more ..., {}>, {\r\n ...;\r\n}>\r\n````\r\n\r\n### Wrong Intellisense\r\n\r\nVsCode popopver hovering `\u003CMyButton />` in the template block of `~/app.vue` (or any other template)\r\n\r\n```TypeScript\r\n(property) 'MyButton': DefineComponent\u003C{}, {}, any>\r\n```\r\n\r\n### Additional context\r\n\r\nThe above example is the current state of the reproduction repo. But a different, but similar behavior happened in other reports (for example a yarn workspace repo). Strange enough, sometimes, it works fine...\r\n\r\n### Logs\r\n\r\n_No response_",[3256,3259,3260,3261],{"name":3257,"color":3258},"types","2875C3",{"name":3209,"color":3210},{"name":3187,"color":3188},{"name":3262,"color":3263},"upstream","E8A36D",21933,"Component appears to be untyped in template block","2023-12-12T14:36:22Z","https://github.com/nuxt/nuxt/issues/21933",0.67884153,["Reactive",3270],{},["Set"],["ShallowReactive",3273],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fUuBIHuK8qMhdeNnAeWlB5JEd0oEWxOy-OYK3fnoiXHA":-1},"/nuxt/ui/4317"]