\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3170,3171,3172],{"name":3140,"color":3141},{"name":3143,"color":3144},{"name":3146,"color":3147},4407,"closed","SelectInput search-input props has typescript errors with native input attributes","2025-07-12T12:31:08Z","https://github.com/nuxt/ui/issues/4407",0.67172694,{"description":3180,"labels":3181,"number":3185,"owner":3149,"repository":3150,"state":3174,"title":3186,"updated_at":3187,"url":3188,"score":3189},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v22.14.0`\n- Nuxt Version: `4.0.3`\n- CLI Version: `3.28.0`\n- Nitro Version: `2.12.4`\n- Package Manager: `pnpm@10.9.0`\n- Builder: `-`\n- User Config: `compatibilityDate`, `devtools`, `extends`, `components`, `alias`, `dir`, `ssr`, `modules`, `ui`, `css`, `imports`, `app`, `runtimeConfig`\n- Runtime Modules: `@nuxt/ui@3.3.2`, `@pinia/nuxt@0.11.2`, `@vueuse/nuxt@13.6.0`\n- Build Modules: `-`\n\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.3.2\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/fancy-leaf-5z2y85\n\n### Description\n\nThe InputMenu component crashes when provided with numeric values in its items prop, the same usage works correctly with SelectMenu.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3182,3183,3184],{"name":3140,"color":3141},{"name":3143,"color":3144},{"name":3146,"color":3147},4767,"InputMenu crashes when using numeric items","2025-08-16T02:41:48Z","https://github.com/nuxt/ui/issues/4767",0.67913485,{"description":3191,"labels":3192,"number":3199,"owner":3149,"repository":3150,"state":3174,"title":3200,"updated_at":3201,"url":3202,"score":3203},"### Environment\r\n\r\n- Operating System: Windows_NT\r\n- Node Version: v20.12.2\r\n- Nuxt Version: 3.10.3\r\n- CLI Version: 3.10.1\r\n- Nitro Version: 2.9.1\r\n- Package Manager: pnpm@8.3.1\r\n- Builder: -\r\n- User Config: app, colorMode, ui, css, modules, runtimeConfig, authJs, pinia, nitro, alias, devtools, imports, typescript\r\n- Runtime Modules: @pinia/nuxt@0.4.11, @pinia-plugin-persistedstate/nuxt@1.2.0, @vueuse/nuxt@9.13.0, @hebilicious/authjs-nuxt@0.3.0-beta.2, @nuxtjs/eslint-module@4.1.0, nuxt-monaco-editor@1.2.7, nuxt-lodash@2.5.3, @nuxt/ui@2.14.2\r\n- Build Modules: -\r\n\r\n### Version\r\n\r\nv2.14.2\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/nuxt-ui-eqhn2j?file=app.vue\r\n\r\n### Description\r\n\r\nI'm getting multiple new type errors that I wasn't getting before with types that used to be valid. I think this is being caused by an update to `vue-tsc`, however I'm not sure.\r\n\r\nIn the reproduction link you can see the two examples that don't compile. Simply run `npm run typecheck` in the console to get the errors\r\nHere are the minimal examples\r\n```html\r\n\u003Cscript setup lang=\"ts\">\r\nconst value = ref\u003Cstring | null | undefined>(undefined);\r\n\u003C/script>\r\n\r\n\u003Ctemplate>\r\n \u003Cdiv>\r\n \u003CUInput v-model.trim=\"value\" />\r\n \u003C/div>\r\n\u003C/template>\r\n```\r\n```shell-script\r\nTS2322: Type 'string | null | undefined' is not assignable to type 'string | number | undefined'.\r\n```\r\n```html\r\n\u003Cscript setup lang=\"ts\">\r\nconst value = ref\u003Cboolean|undefined>();\r\nconst options = [\r\n {\r\n label: 'Yes',\r\n value: true\r\n },\r\n {\r\n label: 'No',\r\n value: false\r\n },\r\n {\r\n label: 'None selected',\r\n value: undefined\r\n }\r\n];\r\n\u003C/script>\r\n\u003Ctemplate>\r\n \u003Cdiv>\r\n \u003CUSelectMenu\r\n :options=\"options\"\r\n v-model=\"value\"\r\n value-attribute=\"value\" option-attribute=\"label\"\r\n />\r\n \u003C/div>\r\n\u003C/template>\r\n```\r\n```shell-script\r\nTS2322: Type 'boolean | undefined' is not assignable to type 'string | number | Record\u003Cstring, any> | unknown[] | undefined'.\r\n```\r\n\r\n### Additional context\r\n\r\n\r\n### Logs\r\n\r\n```shell-script\r\napp.vue:14:15 - error TS2322: Type 'string | null | undefined' is not assignable to type 'string | number | undefined'.\r\n\r\n14 \u003CUInput v-model.trim=\"inputValue\" />\r\n ~~~~~~~~~~\r\n\r\n node_modules/@nuxt/ui/dist/runtime/components/forms/Input.vue.d.ts:244:5\r\n 244 modelValue: string | number;\r\n ~~~~~~~~~~\r\n The expected type comes from property 'modelValue' which is declared here on type 'Partial\u003C{ size: InputSize; ui: any; id: string; icon: string; color: any; type: string; class: any; name: string; modelValue: string | number; leading: boolean; variant: InputVariant; ... 12 more ...; modelModifiers: { ...; }; }> & Omit\u003C...> & Record\u003C...>'\r\n\r\n\r\nFound 1 error in app.vue:14\r\n```\r\n",[3193,3194,3197],{"name":3140,"color":3141},{"name":3195,"color":3196},"closed-by-bot","ededed",{"name":3198,"color":3196},"stale",1710,"Unable to use boolean values with USelectMenu or null with UInput","2025-06-19T02:12:37Z","https://github.com/nuxt/ui/issues/1710",0.6841435,{"description":3205,"labels":3206,"number":3220,"owner":3149,"repository":3149,"state":3174,"title":3221,"updated_at":3222,"url":3223,"score":3224},"### Environment\r\n\r\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.18.0\r\n- Nuxt Version: 3.7.4\r\n- CLI Version: 3.9.0\r\n- Nitro Version: 2.6.3\r\n- Package Manager: npm@9.4.2\r\n- Builder: -\r\n- User Config: devtools, modules, typescript\r\n- Runtime Modules: @nuxtseo/module@2.0.0-beta.15\r\n- Build Modules: -\r\n------------------------------\r\n\r\n### Reproduction\r\n\r\n- minimal changes to nuxt config adding `typeCheck: true` and `compilerOptions.noUncheckedIndexedAccess: true`\r\n\r\nhttps://stackblitz.com/edit/github-vdxk2t?file=nuxt.config.ts\r\n\r\n### Describe the bug\r\n\r\nThis highlights an issue when trying to use tsconfig features e.g. `noUncheckedIndexedAccess` or `noUnusedLocals` etc. in a nuxt project to provide stricter code conformance. Any nuxt module you have installed will also be checked for these same rules.\r\n\r\nThis effectively means you cannot use any of the tsconfig rules for the risk of a module developer not adhering to those same standards.\r\n\r\nNuxt should not be type checking any installed modules as part of build with the same tsconfig rules defined at the project level. Providing access to all tsconfig properties is misleading as they effectively don't work with the nuxt ecosystem unless you have a raw project.\r\n\r\nThe repro and logs below show how this fails for the `@nuxtseo/module` module but this error is present in a number of modules I have tried to use e.g. `content`\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n```shell-script\r\nERROR 21:54:09\r\n ERROR(vue-tsc) Type '{ icon: string; label: false; ariaLabel: string | undefined; current?: boolean | undefined; disabled?: boolean | undefined; to?: string | undefined; separator?: string | undefined; hideSeparator?: boolean | undefined; ui?: { ...; } | undefined; }' is not assignable to type 'BreadcrumbItemProps'.\r\n Types of property 'to' are incompatible.\r\n Type 'string | undefined' is not assignable to type 'string'.\r\n Type 'undefined' is not assignable to type 'string'.\r\n FILE /home/projects/github-vdxk2t/node_modules/nuxt-seo-ui/dist/runtime/components/Breadcrumb.vue:46:5\r\n\r\n 44 | }\r\n 45 | if (props.homeIcon) {\r\n > 46 | items[0] = {\r\n | ^^^^^^^^\r\n 47 | ...items[0],\r\n 48 | icon: 'material-symbols:home-outline-rounded',\r\n 49 | label: false,\r\n\r\n[vue-tsc] Found 1 error. Watching for file changes. (x3)\r\n```\r\n```\r\n",[3207,3210,3213,3216,3217],{"name":3208,"color":3209},"discussion","538de2",{"name":3211,"color":3212},"types","2875C3",{"name":3214,"color":3215},"3.x","29bc7f",{"name":3140,"color":3141},{"name":3218,"color":3219},"🔨 p3-minor","FBCA04",23609,"`typeCheck` reports errors from modules when using `tsconfig` rules","2023-11-30T07:26:56Z","https://github.com/nuxt/nuxt/issues/23609",0.68834114,{"description":3226,"labels":3227,"number":3230,"owner":3149,"repository":3149,"state":3174,"title":3231,"updated_at":3232,"url":3233,"score":3234},"### Environment\r\n\r\n- Operating System: `Darwin`\r\n- Node Version: `v20.13.1`\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.5.2`\r\n- Builder: `-`\r\n- User Config: `components`\r\n- Runtime Modules: `-`\r\n- Build Modules: `-`\r\n\r\n\r\n### Reproduction\r\n\r\n- Run [this repo](https://github.com/Jesus82/test-asyncdata) with `npm run dev`\r\n- Go to index and try to follow any of the links.\r\n\r\nVideo:\r\nhttps://github.com/nuxt/nuxt/assets/8875832/c8d2cb13-08da-4e85-865f-302e97879801\r\n\r\n\r\n\r\n### Describe the bug\r\n\r\n- The object passed down as a prop doesn't seem to be passed.\r\n`[Vue warn]: Invalid prop: type check failed for prop \"beerStyle\". Expected Object, got Null`\r\n\r\n### Additional context\r\n\r\nThis happens in any nested route and nested components when calling the `$fetch` method from a either from a composable or directly from the page. I also checked [this answer](https://github.com/nuxt/nuxt/issues/21772), but here there is no context error in this case.\r\n\r\n### Logs\r\n\r\n```shell-script\r\n[Vue warn]: Invalid prop: type check failed for prop \"beerStyle\". Expected Object, got Null \r\n at \u003CBeerCard beer-style=null > \r\n at \u003C[slug] onVnodeUnmounted=fn\u003ConVnodeUnmounted> ref=Ref\u003C Proxy(Object) {__v_skip: true} > > \r\n at \u003CAnonymous key=\"/test/ale()\" vnode= {__v_isVNode: true, __v_skip: true, type: {…}, props: {…}, key: null, …} route= {fullPath: '/test/ale', path: '/test/ale', query: {…}, hash: '', name: 'test-slug', …} ... > \r\n at \u003CRouterView name=undefined route=undefined > \r\n at \u003CNuxtPage> \r\n at \u003CApp key=3 > \r\n at \u003CNuxtRoot>\r\n\r\n[Vue warn]: Invalid prop: type check failed for prop \"beerStyle\". Expected Object, got Null \r\n at \u003CBeerDetails beer-style=null > \r\n at \u003CBeerCard beer-style=null > \r\n at \u003C[slug] onVnodeUnmounted=fn\u003ConVnodeUnmounted> ref=Ref\u003C Proxy(Object) {__v_skip: true} > > \r\n at \u003CAnonymous key=\"/test/ale()\" vnode= {__v_isVNode: true, __v_skip: true, type: {…}, props: {…}, key: null, …} route= {fullPath: '/test/ale', path: '/test/ale', query: {…}, hash: '', name: 'test-slug', …} ... > \r\n at \u003CRouterView name=undefined route=undefined > \r\n at \u003CNuxtPage> \r\n at \u003CApp key=3 > \r\n at \u003CNuxtRoot>\r\n\r\n[Vue warn]: Unhandled error during execution of scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core . \r\n at \u003CBeerDetails beer-style=null > \r\n at \u003CBeerCard beer-style=null > \r\n at \u003C[slug] onVnodeUnmounted=fn\u003ConVnodeUnmounted> ref=Ref\u003C Proxy(Object) {__v_skip: true} > > \r\n at \u003CAnonymous key=\"/test/ale()\" vnode= {__v_isVNode: true, __v_skip: true, type: {…}, props: {…}, key: null, …} route= {fullPath: '/test/ale', path: '/test/ale', query: {…}, hash: '', name: 'test-slug', …} ... > \r\n at \u003CRouterView name=undefined route=undefined > \r\n at \u003CNuxtPage> \r\n at \u003CApp key=3 > \r\n at \u003CNuxtRoot>\r\n\r\n[Vue warn]: Unhandled error during execution of scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core . \r\n at \u003CBeerDetails beer-style=null > \r\n at \u003CBeerCard beer-style=null > \r\n at \u003C[slug] onVnodeUnmounted=fn\u003ConVnodeUnmounted> ref=Ref\u003C Proxy(Object) {__v_skip: true} > > \r\n at \u003CAnonymous key=\"/test/ale()\" vnode= {__v_isVNode: true, __v_skip: true, type: {…}, props: {…}, key: null, …} route= {fullPath: '/test/ale', path: '/test/ale', query: {…}, hash: '', name: 'test-slug', …} ... > \r\n at \u003CRouterView name=undefined route=undefined > \r\n at \u003CNuxtPage> \r\n at \u003CApp key=3 > \r\n at \u003CNuxtRoot>\r\nwarn$1 @ chunk-6LRXACK2.js?v=b7822ff8:1512\r\nlogError @ chunk-6LRXACK2.js?v=b7822ff8:1724\r\nhandleError @ chunk-6LRXACK2.js?v=b7822ff8:1716\r\ncallWithErrorHandling @ chunk-6LRXACK2.js?v=b7822ff8:1661\r\nflushJobs @ chunk-6LRXACK2.js?v=b7822ff8:1873\r\nPromise.then (async)\r\nqueueFlush @ chunk-6LRXACK2.js?v=b7822ff8:1782\r\nqueuePostFlushCb @ chunk-6LRXACK2.js?v=b7822ff8:1802\r\nqueueEffectWithSuspense @ chunk-6LRXACK2.js?v=b7822ff8:3222\r\nscheduler @ chunk-6LRXACK2.js?v=b7822ff8:3431\r\nresetScheduling @ chunk-6LRXACK2.js?v=b7822ff8:517\r\ntriggerEffects @ chunk-6LRXACK2.js?v=b7822ff8:561\r\ntriggerRefValue @ chunk-6LRXACK2.js?v=b7822ff8:1316\r\nset value @ chunk-6LRXACK2.js?v=b7822ff8:1361\r\nfinalizeNavigation @ vue-router.js?v=b7822ff8:2604\r\n(anonymous) @ vue-router.js?v=b7822ff8:2514\r\nPromise.then (async)\r\npushWithRedirect @ vue-router.js?v=b7822ff8:2482\r\npush @ vue-router.js?v=b7822ff8:2408\r\nnavigate @ vue-router.js?v=b7822ff8:1644\r\ncallWithErrorHandling @ chunk-6LRXACK2.js?v=b7822ff8:1659\r\ncallWithAsyncErrorHandling @ chunk-6LRXACK2.js?v=b7822ff8:1666\r\ninvoker @ chunk-6LRXACK2.js?v=b7822ff8:10297\r\nShow 21 more frames\r\nShow less\r\nBeerDetails.vue:3 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'name')\r\n at Proxy._sfc_render (BeerDetails.vue:3:80)\r\n at renderComponentRoot (chunk-6LRXACK2.js?v=b7822ff8:2350:17)\r\n at ReactiveEffect.componentUpdateFn [as fn] (chunk-6LRXACK2.js?v=b7822ff8:7466:46)\r\n at ReactiveEffect.run (chunk-6LRXACK2.js?v=b7822ff8:435:19)\r\n at instance.update (chunk-6LRXACK2.js?v=b7822ff8:7597:17)\r\n at setupRenderEffect (chunk-6LRXACK2.js?v=b7822ff8:7607:5)\r\n at mountComponent (chunk-6LRXACK2.js?v=b7822ff8:7375:7)\r\n at processComponent (chunk-6LRXACK2.js?v=b7822ff8:7329:9)\r\n at patch (chunk-6LRXACK2.js?v=b7822ff8:6795:11)\r\n at ReactiveEffect.componentUpdateFn [as fn] (chunk-6LRXACK2.js?v=b7822ff8:7473:11)\r\n\r\nBeerDetails.vue:3 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'name')\r\n at Proxy._sfc_render (BeerDetails.vue:3:80)\r\n at renderComponentRoot (chunk-6LRXACK2.js?v=b7822ff8:2350:17)\r\n at ReactiveEffect.componentUpdateFn [as fn] (chunk-6LRXACK2.js?v=b7822ff8:7466:46)\r\n at ReactiveEffect.run (chunk-6LRXACK2.js?v=b7822ff8:435:19)\r\n at instance.update (chunk-6LRXACK2.js?v=b7822ff8:7597:17)\r\n at setupRenderEffect (chunk-6LRXACK2.js?v=b7822ff8:7607:5)\r\n at mountComponent (chunk-6LRXACK2.js?v=b7822ff8:7375:7)\r\n at processComponent (chunk-6LRXACK2.js?v=b7822ff8:7329:9)\r\n at patch (chunk-6LRXACK2.js?v=b7822ff8:6795:11)\r\n at ReactiveEffect.componentUpdateFn [as fn] (chunk-6LRXACK2.js?v=b7822ff8:7473:11)\r\n_sfc_render\t@\tBeerDetails.vue:3\r\nrenderComponentRoot\t@\tchunk-6LRXACK2.js?v=b7822ff8:2350\r\ncomponentUpdateFn\t@\tchunk-6LRXACK2.js?v=b7822ff8:7466\r\nrun\t@\tchunk-6LRXACK2.js?v=b7822ff8:435\r\ninstance.update\t@\tchunk-6LRXACK2.js?v=b7822ff8:7597\r\nsetupRenderEffect\t@\tchunk-6LRXACK2.js?v=b7822ff8:7607\r\nmountComponent\t@\tchunk-6LRXACK2.js?v=b7822ff8:7375\r\nprocessComponent\t@\tchunk-6LRXACK2.js?v=b7822ff8:7329\r\npatch\t@\tchunk-6LRXACK2.js?v=b7822ff8:6795\r\ncomponentUpdateFn\t@\tchunk-6LRXACK2.js?v=b7822ff8:7473\r\nrun\t@\tchunk-6LRXACK2.js?v=b7822ff8:435\r\ninstance.update\t@\tchunk-6LRXACK2.js?v=b7822ff8:7597\r\nsetupRenderEffect\t@\tchunk-6LRXACK2.js?v=b7822ff8:7607\r\nmountComponent\t@\tchunk-6LRXACK2.js?v=b7822ff8:7375\r\nprocessComponent\t@\tchunk-6LRXACK2.js?v=b7822ff8:7329\r\npatch\t@\tchunk-6LRXACK2.js?v=b7822ff8:6795\r\nmountChildren\t@\tchunk-6LRXACK2.js?v=b7822ff8:7043\r\nmountElement\t@\tchunk-6LRXACK2.js?v=b7822ff8:6950\r\nprocessElement\t@\tchunk-6LRXACK2.js?v=b7822ff8:6915\r\npatch\t@\tchunk-6LRXACK2.js?v=b7822ff8:6783\r\ncomponentUpdateFn\t@\tchunk-6LRXACK2.js?v=b7822ff8:7473\r\nrun\t@\tchunk-6LRXACK2.js?v=b7822ff8:435\r\ninstance.update\t@\tchunk-6LRXACK2.js?v=b7822ff8:7597\r\nsetupRenderEffect\t@\tchunk-6LRXACK2.js?v=b7822ff8:7607\r\nmountComponent\t@\tchunk-6LRXACK2.js?v=b7822ff8:7375\r\nprocessComponent\t@\tchunk-6LRXACK2.js?v=b7822ff8:7329\r\npatch\t@\tchunk-6LRXACK2.js?v=b7822ff8:6795\r\ncomponentUpdateFn\t@\tchunk-6LRXACK2.js?v=b7822ff8:7473\r\nrun\t@\tchunk-6LRXACK2.js?v=b7822ff8:435\r\ninstance.update\t@\tchunk-6LRXACK2.js?v=b7822ff8:7597\r\nsetupRenderEffect\t@\tchunk-6LRXACK2.js?v=b7822ff8:7607\r\nmountComponent\t@\tchunk-6LRXACK2.js?v=b7822ff8:7375\r\nprocessComponent\t@\tchunk-6LRXACK2.js?v=b7822ff8:7329\r\npatch\t@\tchunk-6LRXACK2.js?v=b7822ff8:6795\r\npatchSuspense\t@\tchunk-6LRXACK2.js?v=b7822ff8:2882\r\nprocess\t@\tchunk-6LRXACK2.js?v=b7822ff8:2679\r\npatch\t@\tchunk-6LRXACK2.js?v=b7822ff8:6820\r\ncomponentUpdateFn\t@\tchunk-6LRXACK2.js?v=b7822ff8:7553\r\nrun\t@\tchunk-6LRXACK2.js?v=b7822ff8:435\r\ninstance.update\t@\tchunk-6LRXACK2.js?v=b7822ff8:7597\r\ncallWithErrorHandling\t@\tchunk-6LRXACK2.js?v=b7822ff8:1659\r\nflushJobs\t@\tchunk-6LRXACK2.js?v=b7822ff8:1873\r\n```\r\n",[3228,3229],{"name":3214,"color":3215},{"name":3160,"color":3161},27188,"Prop not passed down on nested components in dynamic routes","2024-05-14T07:38:13Z","https://github.com/nuxt/nuxt/issues/27188",0.6883573,{"labels":3236,"number":3242,"owner":3149,"repository":3149,"state":3174,"title":3243,"updated_at":3244,"url":3245,"score":3246},[3237,3238,3239],{"name":3214,"color":3215},{"name":3140,"color":3141},{"name":3240,"color":3241},"🍰 p2-nice-to-have","0E8A16",14095,"NuxtPage typing doesn't allow passing custom props.","2023-01-19T17:24:11Z","https://github.com/nuxt/nuxt/issues/14095",0.68982106,{"description":3248,"labels":3249,"number":3256,"owner":3149,"repository":3149,"state":3174,"title":3257,"updated_at":3258,"url":3259,"score":3260},"### Environment\n\n- Operating System: Linux\r\n- Node Version: v18.18.0\r\n- Nuxt Version: 3.8.0\r\n- CLI Version: 3.9.1\r\n- Nitro Version: 2.7.0\r\n- Package Manager: npm@9.4.2\r\n- Builder: -\r\n- User Config: extends\r\n- Runtime Modules: -\r\n- Build Modules: -\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-bnn6ap?file=nuxt.config.ts\n\n### Describe the bug\n\nUpgrading to Nuxt 3.8 leads to a type issue for me: the `extends` key in `nuxt.config.ts` seems to not accept an array of strings anymore.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3250,3251,3252,3255],{"name":3211,"color":3212},{"name":3214,"color":3215},{"name":3253,"color":3254},"workaround available","11376d",{"name":3140,"color":3141},23791,"fix: type error on `extends` in v3.8","2023-10-20T15:23:37Z","https://github.com/nuxt/nuxt/issues/23791",0.6901875,{"description":3262,"labels":3263,"number":3272,"owner":3149,"repository":3149,"state":3174,"title":3273,"updated_at":3274,"url":3275,"score":3276},"### Environment\r\n\r\nNuxt project info: \r\n\r\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v20.11.1\r\n- Nuxt Version: 3.10.3\r\n- CLI Version: 3.10.1\r\n- Nitro Version: 2.9.3\r\n- Package Manager: pnpm@8.15.4\r\n- Builder: -\r\n- User Config: runtimeConfig, modules, $test, devtools, experimental, vue, tailwindcss, app, nitro, typescript, pinia\r\n- Runtime Modules: @nuxtjs/tailwindcss@6.11.5-1709108338.2ae28e5, @vueuse/nuxt@10.9.0, nuxt-headlessui@1.1.5, @pinia/nuxt@0.5.1, @nuxtjs/fontaine@0.4.1, @formkit/auto-animate/nuxt@0.8.1\r\n- Build Modules: -\r\n------------------------------\r\n\r\n👉 Report an issue: https://github.com/nuxt/nuxt/issues/new\r\n\r\n👉 Suggest an improvement: https://github.com/nuxt/nuxt/discussions/new\r\n\r\n👉 Read documentation: https://nuxt.com\r\n\r\n\r\n\r\n### Reproduction\r\n\r\nOn a project using NuxtIslands (via server components), and storybook, running the `build-storybook` command fails with the following error:\r\n\r\n```\r\n=> Failed to build the preview 10:43:12 AM\r\nTypeError: Cannot create property 'ActionMessage' on string './node_modules/.pnpm/@storybook+builder-vite@7.6.17_typescript@5.4.2_vite@5.1.6/node_modules/@storybook/builder-vite/input/iframe.html' 10:43:12 AM\r\n at config (file://./node_modules/.pnpm/nuxt@3.10.3_@types+node@18.19.23_eslint@8.57.0_typescript@5.4.2_vite@5.1.6_vue-tsc@1.8.27/node_modules/nuxt/dist/index.mjs:1866:62)\r\n```\r\n\r\n### Describe the bug\r\n\r\nIn `packages/nuxt/src/components/islandsTransform.ts`, the `componentsChunkPlugin` function makes the following type assertion ` (config.build.rollupOptions.input as Record\u003Cstring, string>)`.\r\n\r\n\r\n```typescript\r\nexport const componentsChunkPlugin = createUnplugin((options: ComponentChunkOptions) => {\r\n const { buildDir } = options\r\n return {\r\n name: 'componentsChunkPlugin',\r\n vite: {\r\n async config (config) {\r\n const components = options.getComponents()\r\n config.build = config.build || {}\r\n config.build.rollupOptions = config.build.rollupOptions || {}\r\n config.build.rollupOptions.output = config.build.rollupOptions.output || {}\r\n config.build.rollupOptions.input = config.build.rollupOptions.input || {}\r\n // don't use 'strict', this would create another \"facade\" chunk for the entry file, causing the ssr styles to not detect everything\r\n config.build.rollupOptions.preserveEntrySignatures = 'allow-extension'\r\n for (const component of components) {\r\n if (component.mode === 'client' || component.mode === 'all') {\r\n (config.build.rollupOptions.input as Record\u003Cstring, string>)[component.pascalName] = await resolvePath(component.filePath)\r\n }\r\n }\r\n },\r\n```\r\n\r\n`config.build.rollupOptions.input` is declared as `type InputOption = string | string[] | { [entryAlias: string]: string }`. When using storybook and `@storybook/builder-vite`, `config.build.rollupOptions.input` is a `string`, with a value similar to `/node_modules/.../@storybook/builder-vite/input/iframe.html`.\r\n\r\nWould a PR that checks first for the type of `config.build.rollupOptions.input` make sense? Something along the lines of:\r\n\r\n```typescript\r\n if (component.mode === 'client' || component.mode === 'all') {\r\n if ('object' === typeof config.build.rollupOptions.input && !Array.isArray(config.build.rollupOptions.input)) \r\n (config.build.rollupOptions.input as Record\u003Cstring, string>)[component.pascalName] = await resolvePath(component.filePath)\r\n```\r\n\r\n### Additional context\r\n\r\nDisabling server components is a workaround that fixes the issue when running or building storybook. I have them enabled when building the app, but disabled when building statically with storybook.\r\n\r\n### Logs\r\n\r\n_No response_",[3264,3267,3268,3269],{"name":3265,"color":3266},"good first issue","fbca04",{"name":3214,"color":3215},{"name":3218,"color":3219},{"name":3270,"color":3271},"server components","839413",26220,"TypeError in `islandsTransform.ts` affecting storybook","2024-04-03T10:36:16Z","https://github.com/nuxt/nuxt/issues/26220",0.69042283,["Reactive",3278],{},["Set"],["ShallowReactive",3281],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fjSYgL64pMx89ppavm4R8Me4y_eEAFc1V06Di5tw8csM":-1},"/nuxt/ui/3505"]