\n \u003C/UFormField>\n \u003CUFormField label=\"USelect\">\n \u003CUSelect v-model=\"value\" :items placeholder=\"USelect\" />\n \u003C/UFormField>\n \u003CUFormField label=\"USelectMenu\">\n \u003CUSelectMenu v-model=\"value\" :items placeholder=\"USelectMenu\" />\n \u003C/UFormField>\n \u003C/UForm>\n\u003C/template>\n```\n\n### Description\n\nAfter updating to version 3.3.1, the InputMenu, Select and SelectMenu component's placeholder value is not shown, if the value is not found in the items array. In version 3.3.0 the placeholder correctly shows up.\n\nNuxt UI 3.3.0\n\u003Cimg width=\"350\" height=\"300\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/2b0937d4-7640-4277-8169-ff192bc01d97\" />\n\nNuxt UI 3.3.1\n\u003Cimg width=\"410\" height=\"285\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/3d744e11-748b-4b3c-a236-fcee8fdcd765\" />\n\n\u003Cimg width=\"395\" height=\"298\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/ac7be307-ca5c-4957-a2fb-5721eebdea07\" />\n\nIf the v-model is `undefined` it works just like in 3.3.0, however in my projects I feel like that's not always achievable because of type definitions.\nI know I could set the default value to one of the items' values, but what if I don't want to populate the component by default and just show the placeholder? \nFor this to work in version 3.3.1 I'd have to loosen up the type definitions, so that required fields are not required anymore, which is wrong and I don't feel like I should have to do to keep the behavior of a UI component. \n\nShouldn't we have an exception for falsy values that are sometimes used as default values (empty string, 0...), so the placeholder can be shown without having to explicitly have `undefined` as the default value?\n\n### Additional context\n\nI haven't dug that deep, but I think #4689 introduced this behavior to these components. \n\n### Logs\n\n```shell-script\n\n```",[3170,3171],{"name":3140,"color":3141},{"name":3143,"color":3144},4812,"closed","[InputMenu,Select,SelectMenu] Placeholder not showing in v3.3.1, if item is not found and default value is not undefined or null","2025-08-27T14:42:51Z","https://github.com/nuxt/ui/issues/4812",0.5379884,{"description":3179,"labels":3180,"number":3184,"owner":3149,"repository":3149,"state":3173,"title":3185,"updated_at":3186,"url":3187,"score":3188},"### 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_",[3181],{"name":3182,"color":3183},"pending triage","E99695",28733,"SelectMenu initial object values","2024-08-28T03:27:34Z","https://github.com/nuxt/nuxt/issues/28733",0.6130974,{"description":3190,"labels":3191,"number":3194,"owner":3149,"repository":3150,"state":3173,"title":3195,"updated_at":3196,"url":3197,"score":3198},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v22.14.0`\n- Nuxt Version: `3.18.0`\n- CLI Version: `3.27.0`\n- Nitro Version: `2.12.4`\n- Package Manager: `pnpm@10.12.3`\n- Builder: `-`\n- User Config: `modules`, `ssr`, `components`, `devtools`, `app`, `css`, `colorMode`, `runtimeConfig`, `future`, `experimental`, `compatibilityDate`, `eslint`, `fonts`, `icon`, `supabase`\n- Runtime Modules: `@nuxt/eslint@1.4.1`, `reka-ui/nuxt@2.4.0`, `@nuxt/ui@3.3.0`, `@nuxtjs/supabase@1.5.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.0\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/suspicious-lumiere-6jxxjc\n\n### Description\n\nWhen displaying the `UInputMenu`, with no items in the array (fetched later) but with a default value, the placeholder is shown instead of showing the string.\n\n### Additional context\n\nFaulty commit: 488707e\n\n#4528 \n\n### Logs\n\n```shell-script\n\n```",[3192,3193],{"name":3140,"color":3141},{"name":3143,"color":3144},4635,"`UInputMenu` does not display default model value (placeholder shown instead)","2025-08-14T09:04:53Z","https://github.com/nuxt/ui/issues/4635",0.62007844,{"description":3200,"labels":3201,"number":3204,"owner":3149,"repository":3150,"state":3173,"title":3205,"updated_at":3206,"url":3207,"score":3208},"### 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```",[3202,3203],{"name":3140,"color":3141},{"name":3143,"color":3144},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.640917,{"description":3210,"labels":3211,"number":3218,"owner":3149,"repository":3150,"state":3173,"title":3219,"updated_at":3220,"url":3221,"score":3222},"### 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",[3212,3213,3216],{"name":3140,"color":3141},{"name":3214,"color":3215},"closed-by-bot","ededed",{"name":3217,"color":3215},"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.6417228,{"description":3224,"labels":3225,"number":3233,"owner":3149,"repository":3150,"state":3173,"title":3234,"updated_at":3235,"url":3236,"score":3237},"### Description\n\nIt seems that the `\u003CUSelect>` component ignores the `placeholder` attribute value whenever `displayedModelValue` is an empty string [here](https://github.com/nuxt/ui/blob/a32cc37f7392499ab02558e4d58b46195f7ffad4/src/runtime/components/Select.vue#L290). Isn't this supposed to check for an empty string as well?",[3226,3229,3232],{"name":3227,"color":3228},"duplicate","cfd3d7",{"name":3230,"color":3231},"question","d876e3",{"name":3143,"color":3144},4768,"USelect ignores placeholder attribute value","2025-08-27T08:57:40Z","https://github.com/nuxt/ui/issues/4768",0.6524842,{"description":3239,"labels":3240,"number":3245,"owner":3149,"repository":3150,"state":3173,"title":3246,"updated_at":3247,"url":3248,"score":3249},"### Environment\n\n- Operating System: Windows_NT\n- Node Version: v22.8.0\n- Nuxt Version: 3.13.2\n- CLI Version: 3.13.2\n- Nitro Version: 2.9.7\n- Package Manager: yarn@1.22.22\n- Builder: -\n- User Config: modules, plugins, css, colorMode, tiptap, runtimeConfig, nitro, routeRules, compatibilityDate\n- Runtime Modules: @nuxt/ui@2.20.0, @pinia/nuxt@0.5.4, @vueuse/nuxt@11.1.0, nuxt-tiptap-editor@2.0.0\n- Build Modules: -\n\n### Version\n\nv2.20.0\n\n### Reproduction\n\n```\n\u003Cscript setup lang=\"ts\">\nenum DiscountType {\n Fixed = 0,\n Percentage = 1\n}\n\nconst types = [\n {\n label: \"€\",\n value: DiscountType.Fixed\n },\n {\n label: \"%\",\n value: DiscountType.Percentage\n }\n]\nconst type = ref\u003CDiscountType>(DiscountType.Fixed)\n\u003C/script>\n\n\u003Ctemplate>\n \u003CUSelectMenu v-model=\"type\" :options=\"types\" value-attribute=\"value\" />\n\u003C/template>\n```\n\nSelectMenu does not display the label associated to the falsy value \"0\":\n\n\nThe list is populated with both values:\n\n\nThe label associated to the truthy value \"1\" is displayed as expected:\n\n\n### Description\n\nAll falsy values are not displayed anymore since v2.20.0 due to the rework of the computed `label` in the SelectMenu component.\n\nHere is the definition of this computed in `/src/runtime/components/form/SelectMenu.vue`:\n```\nconst label = computed(() => {\n if (!props.modelValue) return null\n\n if (Array.isArray(props.modelValue) && props.modelValue.length) {\n return `${props.modelValue.length} selected`\n } else if (['string', 'number'].includes(typeof props.modelValue)) {\n return props.valueAttribute ? accessor(selected.value, props.optionAttribute) : props.modelValue\n }\n\n return accessor(props.modelValue as Record\u003Cstring, any>, props.optionAttribute)\n})\n```\n\n**The component should treat `0`, `\"\"` and `false` as \"acceptable\" labelled values.**\n\nI believe the first condition should be either :\n`if(props.modelValue == null) return null` \nOr:\n`if(props.modelValue === null || props.modelValue === undefined) return null` \n\n### Additional context\n\nI will try to find some time to create a pull request if this is accepted as an issue. Not sure I can manage to do it short-term though.\n\n### Logs\n\n```shell-script\n\n```",[3241,3242,3243,3244],{"name":3140,"color":3141},{"name":3146,"color":3147},{"name":3214,"color":3215},{"name":3217,"color":3215},3132,"SelectMenu label not displayed for falsy values","2025-06-18T09:02:30Z","https://github.com/nuxt/ui/issues/3132",0.6660301,{"description":3251,"labels":3252,"number":3257,"owner":3149,"repository":3150,"state":3173,"title":3258,"updated_at":3259,"url":3260,"score":3261},"### Environment\n\n- Operating System: Linux\n- Node Version: v18.20.3\n- Nuxt Version: 3.15.4\n- CLI Version: 3.22.2\n- Nitro Version: 2.10.4\n- Package Manager: pnpm@8.15.6\n- Builder: -\n- User Config: modules, compatibilityDate\n- Runtime Modules: @nuxt/ui@2.21.0\n- Build Modules: -\n\n### Version\n\nv2.21.0\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-ui-sl6rquvy?file=app.vue\n\n### Description\n\nWhile the issue with passing a `false` value has been resolved in PR #1550, setting a numeric value of `0` still results in a binding problem. Specifically, when `0` is used as the value, the USelectMenu renders as blank and fails to display the intended option.\n\n**Steps to Reproduce:** \n1. Use the following reproduction code:\n\n```ts\n\u003Cscript setup lang=\"ts\">\nconst people = [{\n id: 0,\n name: 'Wade Cooper'\n}, {\n id: 1,\n name: 'Arlene Mccoy'\n}, {\n id: 2,\n name: 'Devon Webb'\n}, {\n id: 3,\n name: 'Tom Cook'\n}]\n\nconst selected = ref(people[0].id)\n\u003C/script>\n\n\u003Ctemplate>\n \u003CUSelectMenu\n v-model=\"selected\"\n :options=\"people\"\n placeholder=\"Select people\"\n value-attribute=\"id\"\n option-attribute=\"name\"\n />\n\u003C/template>\n```\n\n2. Notice that the USelectMenu remains blank despite the initial value being set to `0`.\n\n**Expected Behavior:** \nThe USelectMenu should correctly bind and display the option corresponding to the numeric value `0`.\n\nCould you please consider looking into this issue so that numeric `0` is handled correctly, similar to how `false` is now working?\n\n### Additional context\n\n\n\n### Logs\n\n```shell-script\n\n```",[3253,3254,3255,3256],{"name":3140,"color":3141},{"name":3146,"color":3147},{"name":3214,"color":3215},{"name":3217,"color":3215},3392,"USelectMenu: Numeric value 0 causes binding issue","2025-06-18T09:01:56Z","https://github.com/nuxt/ui/issues/3392",0.66632473,["Reactive",3263],{},["Set"],["ShallowReactive",3266],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$f3Y5PbIvHBw2meT_P6aNgcDbIp4u-QR07u9VKoGH7QV4":-1},"/nuxt/ui/4528"]