\n\u003C/UDropdownMenu>\n```\n\n### Logs\n\n```shell-script\n\n```",[3221,3222,3225],{"name":3152,"color":3153},{"name":3223,"color":3224},"needs reproduction","CB47CF",{"name":3178,"color":3179},3546,"`UAvatar` doesn't trigger `UDropdownMenu`","2025-03-28T17:43:01Z","https://github.com/nuxt/ui/issues/3546",0.69448406,{"description":3232,"labels":3233,"number":3243,"owner":3155,"repository":3155,"state":3196,"title":3244,"updated_at":3245,"url":3246,"score":3247},"### 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_",[3234,3237,3240],{"name":3235,"color":3236},"types","2875C3",{"name":3238,"color":3239},"3.x","29bc7f",{"name":3241,"color":3242},"upstream","E8A36D",20010,"Empty global components props typings","2023-10-22T09:01:34Z","https://github.com/nuxt/nuxt/issues/20010",0.69494706,{"labels":3249,"number":3253,"owner":3155,"repository":3155,"state":3196,"title":3254,"updated_at":3255,"url":3256,"score":3257},[3250],{"name":3251,"color":3252},"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":3259,"labels":3260,"number":3263,"owner":3155,"repository":3186,"state":3196,"title":3264,"updated_at":3265,"url":3266,"score":3267},"### 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```",[3261,3262],{"name":3152,"color":3153},{"name":3178,"color":3179},3915,"Typesafety on useOverlay props","2025-05-01T20:57:51Z","https://github.com/nuxt/ui/issues/3915",0.72563523,["Reactive",3269],{},["Set"],["ShallowReactive",3272],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fMA3yxd_02DK4pYJ6kVB8qkqGYwx1XY0W1WqXwvyKKIA":-1},"/nuxt/icon/270"]