\n \u003C/UTooltip>\n \u003C/UAvatarGroup>\n```\n\n---\n```\n \u003CShareProjectModal\n v-if=\"project\"\n v-model:open=\"isShareProjectModalOpen\"\n :project=\"project\"\n :template-name=\"project.template.name\"\n :primary-document-references=\"project.template.primary_document_reference?.map(d => d.name) || []\"\n />\n```\n\nSharedModal\n\n```\n \u003CUModal\n v-model:open=\"isOpen\"\n :ui=\"{\n content: 'max-w-124',\n footer: 'justify-between',\n body: 'flex flex-col gap-4 px-0 sm:px-0',\n }\"\n >\n\n\u003C/UModal>\n```\n\n\n### Description\n\n\nHi, we are using v4 with an avatarGroup tooltip\n```\n \u003CUAvatarGroup\n v-if=\"sharedUsers.length\"\n :max=\"3\"\n size=\"sm\"\n @click=\"isShareProjectModalOpen = true\"\n >\n \u003CUTooltip\n v-for=\"user in sharedUsers\"\n :key=\"user.emailAddress\"\n :text=\"user.fullName ?? user.emailAddress\"\n :delay-duration=\"0\"\n >\n \u003CUAvatar\n :src=\"user.avatar ?? undefined\"\n :alt=\"user.fullName ?? user.emailAddress\"\n />\n \u003C/UTooltip>\n \u003C/UAvatarGroup>\n```\n\nWe have few modal opening on the same page however we have inconsistency with the tooltip when playing around opening UModal on the page the tooltip would stop working. has anyone encounter such issue?\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3178,3179],{"name":3159,"color":3160},{"name":3165,"color":3166},4903,"AvatarGroup & Tooltip","2025-09-08T01:56:54Z","https://github.com/nuxt/ui/issues/4903",0.6845008,{"description":3186,"labels":3187,"number":3190,"owner":3168,"repository":3169,"state":3170,"title":3191,"updated_at":3192,"url":3193,"score":3194},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v23.11.0\n- Nuxt Version: 4.0.3\n- CLI Version: 3.28.0\n- Nitro Version: 2.12.4\n- Package Manager: pnpm@9.15.2\n- Builder: -\n- User Config: modules, $development, devtools, css, router, colorMode, ui, runtimeConfig, routeRules, devServer, experimental, compatibilityDate, typescript, eslint, fonts, security\n- Runtime Modules: @nuxt/ui@3.3.3, @pinia/nuxt@0.11.2, nuxt-security@2.3.0, @nuxt/content@3.6.3, @nuxtjs/leaflet@1.3.2, @nuxt/image@1.11.0, @vueuse/nuxt@13.7.0, @yuta-inoue-ph/nuxt-vcalendar@1.1.0, @nuxt/scripts@0.11.10, @nuxt/eslint@1.9.0\n- Build Modules: -\n------------------------------\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Package\n\nv3.x\n\n### Version\n\nv3.3.3\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/quizzical-keldysh-wtw7zm\n\n### Description\n\nUsing Nuxt UI 3, I'm having issues styling a custom variant in a specific color. \n\nDefining the custom variant in the button.variants.variant works as expected, and intellisense recognizes the variant elsewhere in the project. Once I attempt to define a compoundVariant that includes the custom variant, intellisense breaks and the project no longer builds, as it appears the compoundVariants object is expecting the fixed list of variants specified in the base button. \n\nExample config:\n```\nexport default defineAppConfig({\n ui: {\n colors: {\n primary: \"green\",\n neutral: \"slate\",\n },\n button: {\n variants: {\n variant: {\n custom: {\n label: \"uppercase\",\n },\n },\n },\n compoundVariants: [{\n variant: 'custom'\n color: 'secondary',\n class: 'text-fuschia-500'\n }],\n },\n },\n});\n```\nError: \n`Type '\"custom\"' is not assignable to type '\"link\" | \"solid\" | \"outline\" | \"soft\" | \"subtle\" | \"ghost\" | (\"link\" | \"solid\" | \"outline\" | \"soft\" | \"subtle\" | \"ghost\")[] | undefined'.`\n\n### Additional context\n\nnote, this is a dupe of https://github.com/nuxt/ui/issues/4046 - feel free to close this and reopen the original if that is better.\n\n### Logs\n\n```shell-script\n\n```",[3188,3189],{"name":3159,"color":3160},{"name":3165,"color":3166},4888,"Custom Variant and `compoundVariants` typing issue","2025-09-03T17:02:45Z","https://github.com/nuxt/ui/issues/4888",0.68554944,{"description":3196,"labels":3197,"number":3204,"owner":3168,"repository":3168,"state":3170,"title":3205,"updated_at":3206,"url":3207,"score":3208},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v24.2.0\n- Nuxt Version: 4.0.1\n- CLI Version: 3.26.4\n- Nitro Version: 2.12.4\n- Package Manager: pnpm@10.13.1\n- Builder: -\n- User Config: compatibilityDate, experimental, modules, unocss, vue, app, colorMode, css, content, eslint, devtools, i18n, hub, nitro\n- Runtime Modules: @nuxthub/core@0.9.0, @nuxt/eslint@1.7.1, @nuxt/content@3.6.3, @unocss/nuxt@66.3.3, @nuxt/image@1.10.0, @pinia/nuxt@0.11.2, @nuxt/fonts@0.11.4, @nuxtjs/i18n@9.5.6, @nuxtjs/color-mode@3.5.2\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\nI tried to reproduce on Stackblitz but it don't seems to be reproductible as I have on my machine.\n\nhttps://stackblitz.com/edit/github-c4fvnsee?file=tsconfig.json\n\n### Describe the bug\n\nI'm using Nuxt with Nuxt Content.\n\nI migrate to Nuxt 4 and when I change the tsconfig.json to match the new one, typings from `useAppConfig` is losing those coming from `NuxtCustomSchema` (which are correctly generated). On hovering it shows AppConfig and that's it.\n\n\u003Cimg width=\"604\" height=\"244\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/f1429dd4-46fa-44b3-a2e9-d5c9f497cfa9\" />\n\nWhere I use config then, it shows me typing error.\nWhen I switch to the legacy tsconfig, typing issue are gone.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\nTypecheck summary: \n\n\n\napp/layouts/default.vue:35:33 - error TS2339: Property 'title' does not exist on type '{}'.\n\n35 title: appConfig.information?.title,\n ~~~~~\n\napp/layouts/default.vue:36:39 - error TS2339: Property 'description' does not exist on type '{}'.\n\n36 description: appConfig.information?.description,\n ~~~~~~~~~~~\n\napp/layouts/default.vue:39:36 - error TS2339: Property 'socials' does not exist on type '{}'.\n\n39 github: appConfig.information?.socials?.github,\n ~~~~~~~\n\napp/layouts/default.vue:40:38 - error TS2339: Property 'socials' does not exist on type '{}'.\n\n40 linkedin: appConfig.information?.socials?.linkedin,\n ~~~~~~~\n\napp/layouts/default.vue:41:40 - error TS2339: Property 'birthdate' does not exist on type '{}'.\n\n41 isBirthday: appConfig.information?.birthdate ? isBirthday(appConfig.information?.birthdate) : false,\n ~~~~~~~~~\n\napp/layouts/default.vue:41:86 - error TS2339: Property 'birthdate' does not exist on type '{}'.\n\n41 isBirthday: appConfig.information?.birthdate ? isBirthday(appConfig.information?.birthdate) : false,\n ~~~~~~~~~\n\napp/layouts/default.vue:44:27 - error TS2339: Property 'icons' does not exist on type '{}'.\n\n44 normal: appConfig.ui?.icons?.normal as string[] ?? [],\n ~~~~~\n\napp/layouts/default.vue:45:29 - error TS2339: Property 'icons' does not exist on type '{}'.\n\n45 birthday: appConfig.ui?.icons?.birthday as string[] ?? [],\n ~~~~~\n\napp/middleware/title.global.ts:5:28 - error TS2571: Object is of type 'unknown'.\n\n5 const appConfigTitle = useAppConfig().information.title;\n ~~~~~~~~~~~~~~~~~~~~~~~~~~\n\napp/pages/index.vue:14:62 - error TS2339: Property 'messages' does not exist on type '{}'.\n\n14 const messages = useState('randomIndex', () => appConfig.ui?.messages?.sort(() => Math.random() - 0.5))\n ~~~~~~~~\n\nnuxt.schema.ts:3:16 - error TS2304: Cannot find name 'defineNuxtSchema'.\n\n3 export default defineNuxtSchema({\n ~~~~~~~~~~~~~~~~\n\nnuxt.schema.ts:3:16 - error TS2304: Cannot find name 'defineNuxtSchema'.\n\n3 export default defineNuxtSchema({\n ~~~~~~~~~~~~~~~~\n\nnuxt.schema.ts:3:16 - error TS2304: Cannot find name 'defineNuxtSchema'.\n\n3 export default defineNuxtSchema({\n ~~~~~~~~~~~~~~~~\n```",[3198,3201],{"name":3199,"color":3200},"pending triage","E99695",{"name":3202,"color":3203},"possible regression","B90A42",32768,"useAppConfig lose types from nuxt schema with new tsconfig","2025-07-25T22:51:01Z","https://github.com/nuxt/nuxt/issues/32768",0.68657887,{"description":3210,"labels":3211,"number":3215,"owner":3168,"repository":3169,"state":3170,"title":3216,"updated_at":3217,"url":3218,"score":3219},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v22.16.0\n- Nuxt Version: 4.0.3\n- CLI Version: 3.27.0\n- Nitro Version: 2.12.4\n- Package Manager: npm@10.9.2\n- Builder: -\n- User Config: compatibilityDate, modules, typescript, css, experimental\n- Runtime Modules: @nuxt/ui-pro@3.3.0, @nuxt/eslint@1.8.0, @nuxt/test-utils/module@3.19.2, @pinia/colada-nuxt@0.2.1, @pinia/nuxt@0.11.2\n- Build Modules: -\n------------------------------\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\n3.3.0\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/vigorous-flower-n6xmzr\n\n### Description\n\nWhen table data contains empty strings, a hydration error is thrown in the console.\n\nSee attached reproduction.\n\nIts not clear if this needs to be resolved upstream, or if its something we can resolve here.\n\n### Additional context\n\nSame issue occurs for column definitions whether the label is set to an empty string. Ref: #2976 \n\n### Logs\n\n```shell-script\n\n```",[3212,3213,3214],{"name":3159,"color":3160},{"name":3162,"color":3163},{"name":3165,"color":3166},4725,"`Utable` should gracefully handle empty strings","2025-08-12T18:18:24Z","https://github.com/nuxt/ui/issues/4725",0.6909973,{"description":3221,"labels":3222,"number":3225,"owner":3168,"repository":3169,"state":3226,"title":3227,"updated_at":3228,"url":3229,"score":3230},"### Environment\n\n- Operating System: Linux\n- Node Version: v22.14.0\n- Nuxt Version: 3.17.1\n- CLI Version: 3.25.0\n- Nitro Version: 2.11.11\n- Package Manager: npm@10.9.2\n- Builder: -\n- User Config: app, build, colorMode, compatibilityDate, debug, devtools, fonts, future, hooks, i18n, icon, imports, modules, nitro, routeRules, runtimeConfig, security, ssr, sourcemap, css, telemetry, vite\n- Runtime Modules: @nuxt/eslint@1.3.0, @pinia/nuxt@0.11.0, @vueuse/nuxt@13.1.0, @nuxtjs/i18n@9.5.3, nuxt-security@2.2.0, @nuxt/ui@3.1.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.1.0\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/weathered-resonance-r7wcmc?file=%2Fapp%2Fpages%2Findex.vue\n\n### Description\n\nThe carousel item generic type does not seem to work anymore. Unfortunately I'm not sure, which is the last version of nuxt ui where it works :(\n\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n'item' is possibly 'null'. \nProperty 'title' does not exist on type 'string | number | Record\u003Cstring, any>'.\n Property 'title' does not exist on type 'string'.\n```",[3223,3224],{"name":3159,"color":3160},{"name":3162,"color":3163},4020,"closed","Generic Type Issue with Carousel Component","2025-04-29T15:39:36Z","https://github.com/nuxt/ui/issues/4020",0.6686425,{"description":3232,"labels":3233,"number":3236,"owner":3168,"repository":3169,"state":3226,"title":3237,"updated_at":3238,"url":3239,"score":3240},"\u003Cdetails>\n \u003Csummary>Environment\u003C/summary>\n\n------------------------------\n- Operating System: Linux\n- Node Version: v22.16.0\n- Nuxt Version: 3.17.4\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.12\n- Package Manager: npm@11.4.1\n- Builder: -\n- User Config: modules, ssr, devtools, app, css, ui, runtimeConfig, alias, build, devServer, watch, future, experimental, compatibilityDate, nitro, vite, eslint, heyApi, i18n, icon, svgIconSprite\n- Runtime Modules: @nuxt/ui@3.1.2, @nuxt/test-utils/module@3.19.0, @nuxt/eslint@1.4.1, @pinia/nuxt@0.11.0, @vueuse/nuxt@13.2.0, @hey-api/nuxt@0.1.6, @nuxtjs/i18n@9.5.4, nuxt-svg-icon-sprite@2.0.0\n- Build Modules: -\n------------------------------\n\u003C/details>\n\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.1.2\n\n### Reproduction\n\nhttps://www.npmjs.com/package/@nuxt/ui?activeTab=code - `interface ModalSlots`\n\n### Description\n\nGreetings, thank you very much for the work you have done!\n\nUsing the example of the `UModal` component, you can see that props in scoped slots, such as `#footer=“{ close }”`, is untyped \n\u003Cdetails>\n \u003Csummary>Example\u003C/summary>\n\n \n\u003C/details>\n\nin the bundle package it can be seen that there are indeed no valid types of props in `ModalSlots` - https://www.npmjs.com/package/@nuxt/ui?activeTab=code `interface ModalSlots`, although they are present in the source files - https://github.com/nuxt/ui/blob/v3/src/runtime/components/Modal.vue#L70\n\n\nAs I understand it, it is not only `UModal`, but all components with scoped slots.",[3234,3235],{"name":3159,"color":3160},{"name":3162,"color":3163},4260,"Scoped slots are not typed","2025-06-02T09:08:41Z","https://github.com/nuxt/ui/issues/4260",0.67184556,{"description":3242,"labels":3243,"number":3247,"owner":3168,"repository":3169,"state":3226,"title":3248,"updated_at":3249,"url":3250,"score":3251},"### Environment\n\n- Operating System: Darwin\n- Node Version: v23.11.0\n- Nuxt Version: 3.17.5\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.12\n- Package Manager: npm@10.9.2\n- Builder: -\n- User Config: devtools, typescript, css, compatibilityDate, devServer, vite, runtimeConfig, app, ui, scripts, piniaPluginPersistedstate, modules, sentry, sourcemap\n- Runtime Modules: @nuxt/ui@3.1.3, @pinia/nuxt@0.11.1, pinia-plugin-persistedstate/nuxt@4.3.0, @sentry/nuxt/module@9.31.0, @nuxt/scripts@0.11.8, @nuxt/eslint@1.4.1, nuxt-charts@0.1.11, @nuxtjs/mdc@0.17.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nLocal build based on commit 04f12adc5b6124c8371c256d2c40df2be832e6e2\n\n### Reproduction\n\n```vue\n\u003Cscript lang=\"ts\" setup>\nimport type { TimelineItem } from '@nuxt/ui'\nimport { useTimeAgo } from '@vueuse/core'\n\nconst items = [\n {\n username: 'J-Michalek',\n date: '2025-05-24T14:58:55Z',\n action: 'opened this',\n avatar: {\n src: 'https://github.com/J-Michalek.png'\n }\n },\n {\n username: 'J-Michalek',\n date: '2025-05-26T19:30:14+02:00',\n action: 'marked this pull request as ready for review',\n icon: 'i-lucide-check-circle'\n },\n {\n username: 'benjamincanac',\n date: '2025-05-27T11:01:20Z',\n action: 'commented on this',\n description:\n \"I've made a few changes, let me know what you think! Basically I updated the design, removed unnecessary divs, used Avatar component for the indicator since it supports icon already.\",\n avatar: {\n src: 'https://github.com/benjamincanac.png'\n }\n },\n {\n username: 'J-Michalek',\n date: '2025-05-27T11:01:20Z',\n action: 'commented on this',\n description: 'Looks great! Good job on cleaning it up.',\n avatar: {\n src: 'https://github.com/J-Michalek.png'\n }\n },\n {\n username: 'benjamincanac',\n date: '2025-05-27T11:01:20Z',\n action: 'merged this',\n icon: 'i-lucide-git-merge'\n }\n] satisfies TimelineItem[]\n\u003C/script>\n\n\u003Ctemplate> \n \u003CUTimeline\n :items=\"items\"\n size=\"lg\"\n :ui=\"{\n date: 'float-end ms-1',\n description: 'px-3 py-2 ring ring-default mt-2 rounded-md text-default'\n }\"\n >\n \u003Ctemplate #title=\"{ item }\">\n \u003Cspan>{{ item.username }}\u003C/span>\n \u003Cspan class=\"font-normal text-muted\"> {{ item.action }}\u003C/span>\n \u003C/template>\n\n \u003Ctemplate #description=\"{ item }\">\n \n \u003C/template>\n\n \u003Ctemplate #date=\"{ item }\">\n \u003CUTooltip\n v-if=\"item.date\"\n :text=\"new Date(item.date).toLocaleString()\"\n placement=\"bottom-end\"\n >\n \u003Cspan>{{ useTimeAgo(new Date(item.date)) }}\u003C/span>\n \u003C/UTooltip>\n \u003C/template>\n \u003C/UTimeline>\n\u003C/template>\n```\n\n### Description\n\nI'm testing the timeline component for future integration, and I noticed that using slots even if the value is empty and no html is passed it applies the styles.\n\n\n\nI don't know if it's a good solution but something like this can do the trick :\n```vue\n \u003Cdiv v-if=\"item.description || (!!slots.description && item.description)\" :class=\"ui.description({ class: [props.ui?.description, item.ui?.description] })\">\n \u003Cslot :name=\"((item.slot ? `${item.slot}-description` : 'description') as keyof TimelineSlots\u003CT>)\" :item=\"(item as Extract\u003CT, { slot: string; }>)\">\n {{ item.description }}\n \u003C/slot>\n \u003C/div>\n```\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3244,3245,3246],{"name":3159,"color":3160},{"name":3162,"color":3163},{"name":3165,"color":3166},4394,"Timeline slot issue","2025-06-24T15:13:27Z","https://github.com/nuxt/ui/issues/4394",0.6831344,{"description":3253,"labels":3254,"number":3257,"owner":3168,"repository":3169,"state":3226,"title":3258,"updated_at":3259,"url":3260,"score":3261},"### Environment\n\n- Operating System: Linux\n- Node Version: v22.14.0\n- Nuxt Version: 3.17.1\n- CLI Version: 3.25.0\n- Nitro Version: 2.11.11\n- Package Manager: npm@10.9.2\n- Builder: -\n- User Config: app, build, colorMode, compatibilityDate, debug, devtools, fonts, future, hooks, i18n, icon, imports, modules, nitro, routeRules, runtimeConfig, security, ssr, sourcemap, css, telemetry, vite\n- Runtime Modules: @nuxt/eslint@1.3.0, @pinia/nuxt@0.11.0, @vueuse/nuxt@13.1.0, @nuxtjs/i18n@9.5.3, nuxt-security@2.2.0, @nuxt/ui@3.1.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.1.0\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/epic-smoke-95wysw?file=%2Fapp%2Fpages%2Findex.vue\n\n### Description\n\nUsing the `@update:model-value` event handler produces type errors with the Select component, starting from nuxt-ui v3.1.0 (v3.0.2 works fine).\n\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\nType 'boolean | AcceptableValue | undefined' is not assignable to type '\"yes\" | \"no\"'.\n Type 'undefined' is not assignable to type '\"yes\" | \"no\"'.ts-plugin(2322)\n```",[3255,3256],{"name":3159,"color":3160},{"name":3162,"color":3163},4019,"Type Issue with Select Component","2025-04-29T15:39:56Z","https://github.com/nuxt/ui/issues/4019",0.6838827,{"description":3263,"labels":3264,"number":3272,"owner":3168,"repository":3169,"state":3226,"title":3273,"updated_at":3274,"url":3275,"score":3276},"### Environment\n\n------------------------------\r\n- Operating System: Darwin\r\n- Node Version: v20.14.0\r\n- Nuxt Version: 3.11.2\r\n- CLI Version: 3.11.1\r\n- Nitro Version: 2.9.6\r\n- Package Manager: npm@10.8.2\r\n- Builder: -\r\n- User Config: -\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n------------------------------\n\n### Version\n\nv2.18.4\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-ui-efufxa?file=app.vue\n\n### Description\n\nCurrently, [the `items` prop in the carousel component is typed as `any`](https://github.com/nuxt/ui/blob/dev/src/runtime/components/elements/Carousel.vue#L81):\r\n\r\nThe issue with typing `items` as `any` is that when using `v-slot=\"{ item }\"`, the `item` will always be typed as `any`. This can make for a poor developer experience, especially when working with more complex item structures, such as creating a carousel of offer cards.\r\n\r\nI believe we can improve this by utilizing [Vue's generics](https://vuejs.org/guide/typescript/overview#generic-components):\r\n\r\nWe could define the generic in the script:\r\n\r\n```html\r\n\u003Cscript lang=\"ts\" generic=\"Item\">\r\n```\r\n\r\nAnd then use the generic in the prop definition:\r\n\r\n```ts\r\nitems: {\r\n type: Array as PropType\u003CItem[]>,\r\n default: () => []\r\n},\r\n```\r\n\r\nIf this change makes sense, I’d be happy to help by submitting a PR.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3265,3266,3269,3271],{"name":3159,"color":3160},{"name":3267,"color":3268},"duplicate","cfd3d7",{"name":3270,"color":3166},"wontfix-v2",{"name":3162,"color":3163},2102,"Carousel - Improve `items` prop typing","2024-09-30T15:25:05Z","https://github.com/nuxt/ui/issues/2102",0.6839698,["Reactive",3278],{},["Set"],["ShallowReactive",3281],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fotnQ-jSIoEDMTvvN-8-GWx-LOqjO9fge6FS5GvpWdq8":-1},"/nuxt/ui/4533"]