\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```",[],270,"closed","[Question] Recommended way to change icon based on CSS states","2024-11-05T19:10:03Z","https://github.com/nuxt/icon/issues/270",0.4524145,{"description":3068,"labels":3069,"number":3021,"owner":3022,"repository":3072,"state":3062,"title":3073,"updated_at":3074,"url":3075,"score":3028},"To be discussed",[3070],{"name":3042,"color":3071},"1ad6ff","nuxt.com","Improve sidebar mobile navigation on second level (after click)","2022-05-20T13:10:54Z","https://github.com/nuxt/nuxt.com/issues/297",{"description":3077,"labels":3078,"number":3080,"owner":3022,"repository":3072,"state":3062,"title":3081,"updated_at":3082,"url":3083,"score":3084},"Redirect to `/projects` public page instead\n\nBlocked by #403 ",[3079],{"name":3042,"color":3071},402,"Beta page integration `/beta`","2022-06-07T09:41:42Z","https://github.com/nuxt/nuxt.com/issues/402",0.68472606,{"description":3086,"labels":3087,"number":3093,"owner":3022,"repository":3053,"state":3062,"title":3094,"updated_at":3095,"url":3096,"score":3097},"### Environment\n\n- Operating System: Darwin\n- Node Version: v22.11.0\n- Nuxt Version: 3.16.0\n- CLI Version: 3.22.5\n- Nitro Version: 2.11.6\n- Package Manager: pnpm@9.15.4\n- Builder: -\n- User Config: modules, devtools, app, css, runtimeConfig, future, compatibilityDate, telemetry, eslint\n- Runtime Modules: @nuxt/ui-pro@3.0.0, @nuxt/eslint@1.0.1, @vueuse/nuxt@12.5.0, @nuxt/image@1.9.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3\n\n### Reproduction\n\nSee below\n\n### Description\n\nHey,\n\nIn UI2 when placing a UAvatar (which often is done for a user dropdown) in the DropdownMenu - clicking the Dropdown menu would trigger opening the dropdown.\nBased on UI3 docs it seems that it should work since it says Button or any other element - however this doesnt work\n\n### Additional context\n\n```ts\n\u003CUDropdownMenu :items=\"accountItems\">\n \u003CUAvatar\n v-if=\"session && session.user\"\n :src=\"session.user.image ? session.user.image : undefined\"\n :alt=\"session.user.name\"\n size=\"md\"\n />\n\u003C/UDropdownMenu>\n```\n\n### Logs\n\n```shell-script\n\n```",[3088,3089,3092],{"name":3019,"color":3020},{"name":3090,"color":3091},"needs reproduction","CB47CF",{"name":3045,"color":3046},3546,"`UAvatar` doesn't trigger `UDropdownMenu`","2025-03-28T17:43:01Z","https://github.com/nuxt/ui/issues/3546",0.69448406,{"description":3099,"labels":3100,"number":3110,"owner":3022,"repository":3022,"state":3062,"title":3111,"updated_at":3112,"url":3113,"score":3114},"### 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_",[3101,3104,3107],{"name":3102,"color":3103},"types","2875C3",{"name":3105,"color":3106},"3.x","29bc7f",{"name":3108,"color":3109},"upstream","E8A36D",20010,"Empty global components props typings","2023-10-22T09:01:34Z","https://github.com/nuxt/nuxt/issues/20010",0.69494706,{"labels":3116,"number":3120,"owner":3022,"repository":3022,"state":3062,"title":3121,"updated_at":3122,"url":3123,"score":3124},[3117],{"name":3118,"color":3119},"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":3126,"labels":3127,"number":3130,"owner":3022,"repository":3053,"state":3062,"title":3131,"updated_at":3132,"url":3133,"score":3134},"### 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```",[3128,3129],{"name":3019,"color":3020},{"name":3045,"color":3046},3915,"Typesafety on useOverlay props","2025-05-01T20:57:51Z","https://github.com/nuxt/ui/issues/3915",0.72563523,["Reactive",3136],{},["Set"],["ShallowReactive",3139],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fyhEsvZiyjb7UsvuJHTi3Fl6hO0VoN1NvSjUKWPbbg4c":-1},"/nuxt/fonts/270"]