\n\u003C/UDropdownMenu>\n```\n\n### Logs\n\n```shell-script\n\n```",[2958,2959,2962],{"name":2907,"color":2908},{"name":2960,"color":2961},"needs reproduction","CB47CF",{"name":2963,"color":2964},"v3","49DCB8",3546,"ui","`UAvatar` doesn't trigger `UDropdownMenu`","2025-03-28T17:43:01Z","https://github.com/nuxt/ui/issues/3546",0.69448406,{"description":2972,"labels":2973,"number":2983,"owner":2910,"repository":2910,"state":2931,"title":2984,"updated_at":2985,"url":2986,"score":2987},"### Environment\n\n- Operating System: `Darwin`\r\n- Node Version: `v16.18.1`\r\n- Nuxt Version: `3.3.2`\r\n- Nitro Version: `2.3.2`\r\n- Package Manager: `npm@8.19.2`\r\n- Builder: `vite`\r\n- User Config: `-`\r\n- Runtime Modules: `-`\r\n- Build Modules: `-`\r\n\n\n### Reproduction\n\nhttps://github.com/niklv/nuxt-component-props-def-bug\n\n### Describe the bug\n\nFor my project config typing I need to refer to typing of component props.\r\nI try extract props typing in this way. But looks like there are no props typing at all.\r\n```vue\r\n\u003Cscript lang=\"ts\" setup>\r\n// ComponentA.vue\r\nconst {propA} = defineProps\u003C{\r\n propA: string\r\n}>()\r\n\u003C/script>\r\n\r\n\u003Ctemplate>\r\n \u003Cdiv v-text=\"propA\" />\r\n\u003C/template>\r\n\r\n```\r\n\r\n```ts\r\n// config.ts\r\nimport type {ComponentA} from \"#components\";\r\nimport {ComponentOptionsBase} from \"@vue/runtime-core\";\r\n\r\n\r\ntype ComponentProps\u003CT> = T extends ComponentOptionsBase\u003Cinfer P, // Props\r\n any, // RawBindings\r\n any, // D\r\n any, // C\r\n any, // M\r\n any, // Mixin\r\n any, // Extends\r\n any> ? unknown extends P ? {} : P : {};\r\n\r\n\r\ntype CompAProps = ComponentProps\u003Ctypeof ComponentA>\r\n\r\n\r\nconst someConfig:CompAProps = {\r\n // @ts-expect-error\r\n notExistedProp: true // should be error\r\n}\r\n```\n\n### Additional context\n\n\r\n\r\nThere are must be some props typing in first generic argument of `DefineComponent`\n\n### Logs\n\n_No response_",[2974,2977,2980],{"name":2975,"color":2976},"types","2875C3",{"name":2978,"color":2979},"3.x","29bc7f",{"name":2981,"color":2982},"upstream","E8A36D",20010,"Empty global components props typings","2023-10-22T09:01:34Z","https://github.com/nuxt/nuxt/issues/20010",0.69494706,{"labels":2989,"number":2993,"owner":2910,"repository":2910,"state":2931,"title":2994,"updated_at":2995,"url":2996,"score":2997},[2990],{"name":2991,"color":2992},"2.x","d4c5f9",7221,"Bug in the code (using Vue instead of Vue.prototype)","2023-01-18T15:36:21Z","https://github.com/nuxt/nuxt/issues/7221",0.7255854,{"description":2999,"labels":3000,"number":3003,"owner":2910,"repository":2966,"state":2931,"title":3004,"updated_at":3005,"url":3006,"score":3007},"### Description\n\nCurrently when I use useOverlay and pass props it says props is type any.\nby adding `satisfies InstanceType\u003Ctypeof COMPONENT>[\"$props\"]` it gets the right types.\n\nBut it should work out of the box. Could the typesafety for props be implemented?\n\ncurrent solution\n```\n useOverlay()\n .create(COMPONENT, {\n props: {\n id: id,\n onUpdated() {\n...\n },\n } satisfies InstanceType\u003Ctypeof COMPONENT>[\"$props\"],\n })\n .open();\n```\n\n### Additional context\n\nSomething like this could create type safety\n\n```\nfunction createTypedOverlay\u003CT extends new (...args: any) => any>(\n component: T,\n options: {\n props: InstanceType\u003CT>[\"$props\"];\n [key: string]: any;\n }\n) {\n return useOverlay().create(component, options);\n}\n```",[3001,3002],{"name":2907,"color":2908},{"name":2963,"color":2964},3915,"Typesafety on useOverlay props","2025-05-01T20:57:51Z","https://github.com/nuxt/ui/issues/3915",0.72563523,{"description":3009,"labels":3010,"number":3017,"owner":2910,"repository":2910,"state":2931,"title":3018,"updated_at":3019,"url":3020,"score":3021},"### 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_",[3011,3012,3013,3016],{"name":2975,"color":2976},{"name":2978,"color":2979},{"name":3014,"color":3015},"pending triage","E99695",{"name":2981,"color":2982},21933,"Component appears to be untyped in template block","2023-12-12T14:36:22Z","https://github.com/nuxt/nuxt/issues/21933",0.73371804,["Reactive",3023],{},["Set"],["ShallowReactive",3026],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fMA3yxd_02DK4pYJ6kVB8qkqGYwx1XY0W1WqXwvyKKIA":-1},"/nuxt/icon/270"]