\n \u003C/div>\n\u003C/template>\n\n\u003Cscript setup>\nconst tabIndex = ref(0)\nconst tabItems = [\n {\n accessorKey: 'firstTab',\n label: 'First Tab',\n value: 0\n },\n {\n accessorKey: 'secondTab',\n label: 'Second Tab',\n value: 1\n },\n {\n accessorKey: 'thirdTab',\n label: 'Third Tab',\n value: 2\n }\n]\n\u003C/script>\n```\n\n### Description\n\nIn Nuxt UI's UTabs component, when an item's value is set to 0 (a number), the internal TabsTrigger evaluates `:value=\"item.value || String(index)\"`. Since 0 is falsy in JavaScript, it falls back to String(index) (e.g., '0'), causing the v-model to update as a string instead of a number, leading to unexpected type coercion after tab selection.\n\nPotential solution:\n\n`:value=\"item.value ?? String(index)\" `\n\nThis uses the nullish coalescing operator (??), which only falls back if item.value is null or undefined (not falsy values like 0), preserving the numeric type for 0 while maintaining the intended fallback behavior for missing values.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3137,3140,3143],{"name":3138,"color":3139},"bug","d73a4a",{"name":3141,"color":3142},"v3","49DCB8",{"name":3144,"color":3145},"triage","ffffff",4804,"nuxt","ui","open","UTabs: Numeric value 0 coerced to string due to falsy check in TabsTrigger","2025-08-21T22:30:48Z","https://github.com/nuxt/ui/issues/4804",0.6896103,{"description":3155,"labels":3156,"number":3160,"owner":3147,"repository":3148,"state":3149,"title":3161,"updated_at":3162,"url":3163,"score":3164},"### Environment\n\n```\n- Node Version: v20.12.0\n- Nuxt Version: 3.17.3\n- Runtime Modules: @nuxt/ui@3.3.3\n- Browser: Chromium 136 (windows)\n```\n\n#### Version\n\nv3.3.3\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/mutable-frog-xc2v8p\n\n### Description\n\nHello Nuxt Ui team!\n\nI noticed two issues with `USelect` & `USelectMenu`:\n\n1. **Input autofocus issue:** \n When typing in the input, opening the select causes the input to lose focus. Setting `:autofocus=\"false\"` has no effect, the select is still focused when opened.\n\n2. **Body lock issue:** \n Setting `:content=\"{ bodyLock: false }\"` does not prevent the body from being locked. The CSS property `pointer-events: default;` is still applied on the body.\n\nIn the case of an autocomplete, this prevents continuing to type in the input while still displaying suggested results.\n\nThanks for your help!\n",[3157,3158,3159],{"name":3138,"color":3139},{"name":3141,"color":3142},{"name":3144,"color":3145},4956,"`USelect` & `USelectMenu` setting :autofocus to false or :content `bodyLock` to false have no effect","2025-09-12T12:07:19Z","https://github.com/nuxt/ui/issues/4956",0.70173854,{"description":3166,"labels":3167,"number":3170,"owner":3147,"repository":3148,"state":3149,"title":3171,"updated_at":3172,"url":3173,"score":3174},"### Environment\n\n- OS: Windows\n- Nuxt: v4.0.3\n- Node: v22.14.0\n\n### Version\n\nv4.0.3\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-ui-gtu8vgxz?file=app.vue\n\n### Description\n\nThe USelectMenu component does not block form validation even when setting the required prop.\nI though this was a bug since the USelect component instead correctly blocks validation when setting the required prop.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3168,3169],{"name":3138,"color":3139},{"name":3144,"color":3145},4757,"USelectMenu required prop is not blocking form validation","2025-08-15T10:52:46Z","https://github.com/nuxt/ui/issues/4757",0.7093899,{"description":3176,"labels":3177,"number":3181,"owner":3147,"repository":3148,"state":3149,"title":3182,"updated_at":3183,"url":3184,"score":3185},"### Environment\n\n------------------------------\n- Operating System: Linux\n- Node Version: v20.12.0\n- Nuxt Version: 3.17.3\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.12\n- Package Manager: pnpm@8.15.6\n- Builder: -\n- User Config: modules, devtools, compatibilityDate, future, css\n- Runtime Modules: @nuxt/ui@3.1.1\n- Build Modules: -\n------------------------------\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.17.3\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/zen-albattani-93gcyn\n\nType `COMPLETE` into the input menu and press enter. `DROPOFF_COMPLETE` becomes selected\n\n### Description\n\nIf I type an exact match for one of the items into the InputMenu and press Enter, I would expect that item to be selected.\n\nHowever, in certain cases when other items are a superset of the search text, those become selected.\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3178,3179,3180],{"name":3138,"color":3139},{"name":3141,"color":3142},{"name":3144,"color":3145},4672,"InputMenu sometimes chooses alternate option even when exact match to one option is typed","2025-08-06T20:48:15Z","https://github.com/nuxt/ui/issues/4672",0.7113318,{"description":3187,"labels":3188,"number":3192,"owner":3147,"repository":3148,"state":3149,"title":3193,"updated_at":3194,"url":3195,"score":3196},"### Environment\n\n- Operating System: `Windows_NT`\n- Node Version: `v22.14.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: `compatibilityDate`, `devtools`, `modules`, `css`, `colorMode`, `build`, `runtimeConfig`, `app`, `lodash`, `pages`, `components`, `vite`, `router`, `nitro`\n- Runtime Modules: `@pinia/nuxt@0.11.1`, `pinia-plugin-persistedstate/nuxt@4.3.0`, `@vueuse/nuxt@13.3.0`, `nuxt-countdown@1.2.0`, `nuxt-lodash@2.5.3`, `@nuxt/eslint@1.4.1`, `@nuxt/fonts@0.11.4`, `@nuxt/icon@1.13.0`, `@nuxt/ui@3.1.3`\n- Build Modules: `-`\n\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.17.5\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/hopeful-wilbur-xmxvdn\n\n### Description\n\nUSelect does not recognize undefined as a valid option, and does not highlight that option as selected.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3189,3190,3191],{"name":3138,"color":3139},{"name":3141,"color":3142},{"name":3144,"color":3145},4373,"USelect doesn't accept undefined as selected option","2025-06-18T12:37:16Z","https://github.com/nuxt/ui/issues/4373",0.7153461,{"description":3198,"labels":3199,"number":3203,"owner":3147,"repository":3148,"state":3149,"title":3204,"updated_at":3205,"url":3206,"score":3207},"### Environment\n\n- Node Version: v22.17.1\n- Nuxt Version: 4.0.3\n- CLI Version: 3.27.0\n- Nitro Version: 2.12.4\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.3.0\n\n### Reproduction\n\nhttps://ui.nuxt.com/components/navigation-menu#control-active-item\n\n### Description\n\nas per title, seems that manual active control is not working at all even in docs https://ui.nuxt.com/components/navigation-menu#control-active-item\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3200,3201,3202],{"name":3138,"color":3139},{"name":3141,"color":3142},{"name":3144,"color":3145},4682,"[NavigationMenu] v-model, value, default-value: does nothing","2025-08-08T08:39:46Z","https://github.com/nuxt/ui/issues/4682",0.72163343,{"description":3209,"labels":3210,"number":3214,"owner":3147,"repository":3147,"state":3215,"title":3216,"updated_at":3217,"url":3218,"score":3219},"### Environment\n\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v20.14.0\r\n- Nuxt Version: 3.12.4\r\n- CLI Version: 3.12.0\r\n- Nitro Version: 2.9.7\r\n- Package Manager: pnpm@9.7.1\r\n- Builder: -\r\n- User Config: runtimeConfig, extends, modules, ui, colorMode, routeRules, devtools, typescript, future, eslint, nitro, i18n, compatibilityDate\r\n- Runtime Modules: @nuxt/eslint@0.5.0, @nuxt/fonts@0.7.1, @nuxt/ui@2.18.4, @vueuse/nuxt@10.11.0, @nuxtjs/i18n@8.5.0\r\n- Build Modules: -\r\n------------------------------\r\n\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-ui-u6tm1b?file=app.vue\n\n### Describe the bug\n\nWhen using a `v-model` prop with some initial object values (such as fetched already selected data from backend), the `\u003CUSelectMenu>` component doesn't show these as selected and seems to ignore them completely.\r\n\r\nEven when selecting the same objects again, it just seems to add them to the array and disregard anything, that was there previously.\n\n### Additional context\n\nThe behaviour changes when setting the `by` prop. In my case, I set it to `id`, after which I can see the object as selected, **but only** in the dropdown.\r\nThe button itself still shows `0 selected`.\n\n### Logs\n\n_No response_",[3211],{"name":3212,"color":3213},"pending triage","E99695",28733,"closed","SelectMenu initial object values","2024-08-28T03:27:34Z","https://github.com/nuxt/nuxt/issues/28733",0.6618083,{"description":3221,"labels":3222,"number":3226,"owner":3147,"repository":3148,"state":3215,"title":3227,"updated_at":3228,"url":3229,"score":3230},"### Environment\n\n- Operating System: Windows_NT\n- Node Version: v24.2.0\n- Nuxt Version: 3.17.7\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.13\n- Package Manager: bun@1.2.17\n- Builder: -\n- User Config: future, experimental, css, modules, nitro, i18n, imports, runtimeConfig, icon, compatibilityDate\n- Runtime Modules: @nuxtjs/i18n@9.5.6, @nuxt/ui-pro@3.2.0, @nuxt/eslint@1.5.2, @nuxtjs/html-validator@2.1.0, @nuxt/image@1.10.0, @vueuse/nuxt@13.5.0, @artmizu/nuxt-prometheus@2.5.0, @nuxtjs/seo@3.1.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.2.0\n\n### Reproduction\n\nThe issue is really straight-forward, example code: \n\n```vue\n\u003Cscript lang=\"ts\" setup>\nconst value = ref(\"\");\nconst items = [\"Item 1\", \"Item 2\", \"Item 3\"];\n\u003C/script>\n\n\u003Ctemplate>\n \u003Cdiv class=\"space-y-4\">\n \u003CUFormField label=\"USelectMenu\">\n \u003CUSelectMenu v-model=\"value\" placeholder=\"Placeholder\" :items />\n \u003C/UFormField>\n \u003CUFormField label=\"USelect\">\n \u003CUSelect v-model=\"value\" placeholder=\"Placeholder\" :items />\n \u003C/UFormField>\n \u003C/div>\n\u003C/template>\n\n```\n\n### Description\n\nIf the model-value is an empty string, the USelectMenu placeholder doesn't show. This behavior is different than the USelect component, where the placeholder is shown without having to use `undefined` as the v-model's value. \n\n### Additional context\n\nI know I could use `undefined` for the value here, however in my real code the v-model is bound to a non-optional value, so if I were to initialize it as `undefined`, TypeScript would freak out. Also, because these components are really similar, these behaviors shouldn't differ in my opinion. \n\n\u003Cimg width=\"200\" height=\"143\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/49a5d11d-2212-41d7-81b3-202692a20a8a\" />\n\n### Logs\n\n```shell-script\n\n```",[3223,3224,3225],{"name":3138,"color":3139},{"name":3141,"color":3142},{"name":3144,"color":3145},4528,"[SelectMenu]: Placeholder value not shown if v-model is an empty string","2025-07-16T10:43:41Z","https://github.com/nuxt/ui/issues/4528",0.6636102,{"description":3232,"labels":3233,"number":3240,"owner":3147,"repository":3148,"state":3215,"title":3241,"updated_at":3242,"url":3243,"score":3244},"### 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",[3234,3235,3238],{"name":3138,"color":3139},{"name":3236,"color":3237},"closed-by-bot","ededed",{"name":3239,"color":3237},"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.6688254,{"description":3246,"labels":3247,"number":3250,"owner":3147,"repository":3148,"state":3215,"title":3251,"updated_at":3252,"url":3253,"score":3254},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v20.19.2\n- Nuxt Version: -\n- CLI Version: 3.28.0\n- Nitro Version: -\n- Package Manager: npm@10.8.2\n- Builder: -\n- User Config: -\n- Runtime Modules: -\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://stackblitz.com/edit/github-mj4wqh54?file=app%2Fpages%2Findex.vue\n\n### Description\n\nWhen using `InputMenu`, `Select` or `SelectMenu`, if the `modelValue` is `null` (or another falsy value) and an option with this value exists, its `label` is not displayed.\n\n**Expected behavior**:\nIf an option with a `null` (or falsy) value is present in the `options`, its `label` should be displayed when selected.\n\n**Example**:\n\n```vue\n\u003CUSelect\n v-model=\"value\"\n :items=\"[\n { name: '- Tout -', slug: null },\n { name: 'Sport', slug: 'sport' },\n { name: 'Culture', slug: 'culture' },\n ]\"\n value-key=\"slug\"\n label-key=\"name\"\n />\n```\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3248,3249],{"name":3138,"color":3139},{"name":3141,"color":3142},4869,"InputMenu/Select/SelectMenu: show falsy label when model value is falsy","2025-09-08T12:42:34Z","https://github.com/nuxt/ui/issues/4869",0.6795263,["Reactive",3256],{},["Set"],["ShallowReactive",3259],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fwwxWzOYUPQ4vw6sP753cQGkAKTcFl7lO1Kuqo-jNOnE":-1},"/nuxt/ui/3392"]