\n\u003C/UDropdownMenu>\n```\n\n### Logs\n\n```shell-script\n\n```",[3208,3209,3212],{"name":3138,"color":3139},{"name":3210,"color":3211},"needs reproduction","CB47CF",{"name":3164,"color":3165},3546,"`UAvatar` doesn't trigger `UDropdownMenu`","2025-03-28T17:43:01Z","https://github.com/nuxt/ui/issues/3546",0.69448406,{"description":3219,"labels":3220,"number":3230,"owner":3141,"repository":3141,"state":3182,"title":3231,"updated_at":3232,"url":3233,"score":3234},"### 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_",[3221,3224,3227],{"name":3222,"color":3223},"types","2875C3",{"name":3225,"color":3226},"3.x","29bc7f",{"name":3228,"color":3229},"upstream","E8A36D",20010,"Empty global components props typings","2023-10-22T09:01:34Z","https://github.com/nuxt/nuxt/issues/20010",0.69494706,{"labels":3236,"number":3240,"owner":3141,"repository":3141,"state":3182,"title":3241,"updated_at":3242,"url":3243,"score":3244},[3237],{"name":3238,"color":3239},"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":3246,"labels":3247,"number":3250,"owner":3141,"repository":3172,"state":3182,"title":3251,"updated_at":3252,"url":3253,"score":3254},"### 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```",[3248,3249],{"name":3138,"color":3139},{"name":3164,"color":3165},3915,"Typesafety on useOverlay props","2025-05-01T20:57:51Z","https://github.com/nuxt/ui/issues/3915",0.72563523,["Reactive",3256],{},["Set"],["ShallowReactive",3259],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fMA3yxd_02DK4pYJ6kVB8qkqGYwx1XY0W1WqXwvyKKIA":-1},"/nuxt/icon/270"]