\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":3189,"labels":3190,"number":3142,"owner":3143,"repository":3193,"state":3183,"title":3194,"updated_at":3195,"url":3196,"score":3149},"To be discussed",[3191],{"name":3163,"color":3192},"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":3198,"labels":3199,"number":932,"owner":3143,"repository":3193,"state":3183,"title":3201,"updated_at":3202,"url":3203,"score":3204},"Redirect to `/projects` public page instead\n\nBlocked by #403 ",[3200],{"name":3163,"color":3192},"Beta page integration `/beta`","2022-06-07T09:41:42Z","https://github.com/nuxt/nuxt.com/issues/402",0.68472606,{"description":3206,"labels":3207,"number":3213,"owner":3143,"repository":3174,"state":3183,"title":3214,"updated_at":3215,"url":3216,"score":3217},"### 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```",[3208,3209,3212],{"name":3140,"color":3141},{"name":3210,"color":3211},"needs reproduction","CB47CF",{"name":3166,"color":3167},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":3143,"repository":3143,"state":3183,"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":3143,"repository":3143,"state":3183,"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":3143,"repository":3174,"state":3183,"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":3140,"color":3141},{"name":3166,"color":3167},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,"$fyhEsvZiyjb7UsvuJHTi3Fl6hO0VoN1NvSjUKWPbbg4c":-1},"/nuxt/fonts/270"]