\n \u003C/UCarousel>\n\u003C/template>\n```\n\n### Description\n\nSimulate the behavior of https://m3.material.io/components/carousel/overview, Carousel will repeatedly calculate is-snapped in an infinite loop\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3170,3171,3172,3173,3176],{"name":3140,"color":3141},{"name":3143,"color":3144},{"name":3146,"color":3147},{"name":3174,"color":3175},"closed-by-bot","ededed",{"name":3177,"color":3175},"stale",3883,"[Carousel] Unable to differentiate item sizes","2025-08-12T02:12:47Z","https://github.com/nuxt/ui/issues/3883",0.667559,{"description":3184,"labels":3185,"number":3198,"owner":3149,"repository":3149,"state":3162,"title":3199,"updated_at":3200,"url":3201,"score":3202},"### Environment\r\n\r\n- Operating System: Darwin\r\n- Node Version: v18.14.0\r\n- Nuxt Version: 3.6.1\r\n- Nitro Version: 2.5.2\r\n- Package Manager: yarn@1.22.19\r\n- Builder: vite\r\n- User Config: -\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n\r\n**VsCode 1.79.2**\r\n- vscode.typescript-language-features: disabled\r\n- Vue.volar: 1.8.3, enabled\r\n- Vue.vscode-typescript-vue-plugin: 1.8.3, enabled\r\n\r\n### Reproduction\r\n\r\nhttps://github.com/niklas-may/nuxt-module-issue-reproduction\r\n\r\n### Describe the bug\r\n\r\n**Preface**\r\n_Thank you for your amazing work on Nuxt! I am not sure where this issue is best raised, Nuxt, VsCode or Vue. But due to the special typescript tooling with auto imports, I thought it's best to start here, and would be happy to hear if anybody observed a similar behaviour or has a solution._ \r\n\r\n**Description**\r\nWhen I open `~/.nuxt/components.d.ts` in VsCode and hover over an imported component, VsCode IntelliSense popover displays the correct types for this component.\r\nBut when I use the component in any other components template block, for example `~/app.vue`, the typing is missing the prop types.\r\n\r\n### Component and Type Definitions\r\n\r\n`~/../src/runtime/MyButton.vue`\r\n\r\n```vue\r\n\u003Ctemplate>\r\n \u003Cdiv style=\"border: 1px solid pink\">\r\n \u003Cslot />\r\n \u003C/div>\r\n\u003C/template>\r\n\u003Cscript setup lang=\"ts\">\r\nwithDefaults(\r\n defineProps\u003C{\r\n variant: \"fill\" | \"ghost\";\r\n }>(),\r\n { variant: \"fill\" }\r\n);\r\n\u003C/script>\r\n```\r\n\r\n`~/.nuxt/components.d.ts`\r\n\r\n```TypeScript\r\ndeclare module 'vue' {\r\n export interface GlobalComponents {\r\n //...\r\n 'MyButton': typeof import(\"../../src/runtime/components/MyButton.vue\")['default']\r\n //...\r\n }\r\n}\r\n\r\nexport const MyButton: typeof import(\"../../src/runtime/components/MyButton.vue\")['default']\r\n\r\nexport const componentNames: string[]\r\n```\r\n\r\n\r\n### Correct Intellisense\r\n\r\nVsCode popopver hovering `'MyButton'` in `~/.nuxt/components.d.ts`\r\n\r\n```TypeScript\r\n(property) GlobalComponents['MyButton']: __VLS_WithTemplateSlots\u003CDefineComponent\u003C{\r\n variant: {\r\n type: PropType\u003C\"fill\" | \"ghost\">;\r\n required: true;\r\n default: string;\r\n };\r\n}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 5 more ..., {}>, {\r\n ...;\r\n}>\r\n````\r\n\r\n### Wrong Intellisense\r\n\r\nVsCode popopver hovering `\u003CMyButton />` in the template block of `~/app.vue` (or any other template)\r\n\r\n```TypeScript\r\n(property) 'MyButton': DefineComponent\u003C{}, {}, any>\r\n```\r\n\r\n### Additional context\r\n\r\nThe above example is the current state of the reproduction repo. But a different, but similar behavior happened in other reports (for example a yarn workspace repo). Strange enough, sometimes, it works fine...\r\n\r\n### Logs\r\n\r\n_No response_",[3186,3189,3192,3195],{"name":3187,"color":3188},"types","2875C3",{"name":3190,"color":3191},"3.x","29bc7f",{"name":3193,"color":3194},"pending triage","E99695",{"name":3196,"color":3197},"upstream","E8A36D",21933,"Component appears to be untyped in template block","2023-12-12T14:36:22Z","https://github.com/nuxt/nuxt/issues/21933",0.6723591,{"labels":3204,"number":3208,"owner":3149,"repository":3149,"state":3162,"title":3209,"updated_at":3210,"url":3211,"score":3212},[3205],{"name":3206,"color":3207},"2.x","d4c5f9",4134,"TS2314: Generic type 'ComponentOptions\u003CV>' requires 1 type argument(s).","2023-01-18T20:03:58Z","https://github.com/nuxt/nuxt/issues/4134",0.67453843,{"description":3214,"labels":3215,"number":3218,"owner":3149,"repository":3150,"state":3162,"title":3219,"updated_at":3220,"url":3221,"score":3222},"\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.",[3216,3217],{"name":3140,"color":3141},{"name":3143,"color":3144},4260,"Scoped slots are not typed","2025-06-02T09:08:41Z","https://github.com/nuxt/ui/issues/4260",0.6751212,{"labels":3224,"number":3228,"owner":3149,"repository":3149,"state":3162,"title":3229,"updated_at":3230,"url":3231,"score":3232},[3225,3226,3227],{"name":3187,"color":3188},{"name":3193,"color":3194},{"name":3206,"color":3207},10468,"Nuxt 2 Broken Typescript Typings when Specifying head","2023-03-17T12:50:05Z","https://github.com/nuxt/nuxt/issues/10468",0.6841408,{"description":3234,"labels":3235,"number":3239,"owner":3149,"repository":3149,"state":3162,"title":3240,"updated_at":3241,"url":3242,"score":3243},"### 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_",[3236,3237,3238],{"name":3187,"color":3188},{"name":3190,"color":3191},{"name":3196,"color":3197},20010,"Empty global components props typings","2023-10-22T09:01:34Z","https://github.com/nuxt/nuxt/issues/20010",0.6870058,{"description":3245,"labels":3246,"number":3253,"owner":3149,"repository":3149,"state":3162,"title":3254,"updated_at":3255,"url":3256,"score":3257},"### Environment\n\n```\r\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v16.14.2\r\n- Nuxt Version: ^3.5.2\r\n- Nitro Version: 2.4.1\r\n- Package Manager: npm@7.17.0\r\n- Builder: webpack\r\n- User Config: builder, webpack\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n------------------------------\r\n```\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-starter-6ue8jc?file=nuxt.config.ts\n\n### Describe the bug\n\nNuxt has [a schema](https://github.com/nuxt/nuxt/blob/main/packages/schema/src/config/webpack.ts#L154-L163) of `vue-loader` options that [partially matches](https://github.com/vuejs/vue-loader/blob/main/src/index.ts#L32-L62) `vue-loader`. \r\n\r\nFor example, you can enable experimental features like Vue 3.3 `defineModel` in `webpack.loaders.vue`, but TypeScript won't recognize it as a valid property. However, if you ignore the error squiggles, it does work.\r\n\n\n### Additional context\n\nMentioned in https://github.com/nuxt/nuxt/pull/21303#issuecomment-1574295022\n\n### Logs\n\n```shell-script\n'{ defineModel: true; }' is not assignable to type '{ productionMode?: boolean | undefined; transformAssetUrls?: { video?: string | undefined; source?: string | undefined; object?: string | undefined; embed?: string | undefined; } | undefined; compilerOptions?: { ...; } | undefined; }'.\r\n Object literal may only specify known properties, and 'defineModel' does not exist in type '{ productionMode?: boolean | undefined; transformAssetUrls?: { video?: string | undefined; source?: string | undefined; object?: string | undefined; embed?: string | undefined; } | undefined; compilerOptions?: { ...; } | undefined; }'.(2322)\n```\n",[3247,3250,3251,3252],{"name":3248,"color":3249},"good first issue","fbca04",{"name":3187,"color":3188},{"name":3190,"color":3191},{"name":3140,"color":3141},21332,"Extend vue-loader option types ","2023-06-04T22:07:55Z","https://github.com/nuxt/nuxt/issues/21332",0.68890196,{"labels":3259,"number":3265,"owner":3149,"repository":3149,"state":3162,"title":3266,"updated_at":3267,"url":3268,"score":3269},[3260,3261,3262],{"name":3190,"color":3191},{"name":3193,"color":3194},{"name":3263,"color":3264},"needs reproduction","FBCA04",23460,"TS Typing issue.","2023-10-20T22:22:28Z","https://github.com/nuxt/nuxt/issues/23460",0.6897527,["Reactive",3271],{},["Set"],["ShallowReactive",3274],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fiMk5OWXlIL4wysc1qho-GHqwB3WHS6h3lMw-odxf0bU":-1},"/nuxt/ui/2102"]