\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",[3163,3164,3167],{"name":3135,"color":3136},{"name":3165,"color":3166},"closed-by-bot","ededed",{"name":3168,"color":3166},"stale",1710,"closed","Unable to use boolean values with USelectMenu or null with UInput","2025-06-19T02:12:37Z","https://github.com/nuxt/ui/issues/1710",0.6933745,{"description":3176,"labels":3177,"number":3182,"owner":3141,"repository":3155,"state":3170,"title":3183,"updated_at":3184,"url":3185,"score":3186},"### 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```",[3178,3179,3180,3181],{"name":3135,"color":3136},{"name":3152,"color":3153},{"name":3165,"color":3166},{"name":3168,"color":3166},3392,"USelectMenu: Numeric value 0 causes binding issue","2025-06-18T09:01:56Z","https://github.com/nuxt/ui/issues/3392",0.6989728,{"description":3188,"labels":3189,"number":3193,"owner":3141,"repository":3141,"state":3170,"title":3194,"updated_at":3195,"url":3196,"score":3197},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v23.6.0`\n- Nuxt Version: `3.17.5`\n- CLI Version: `3.25.1`\n- Nitro Version: `2.11.12`\n- Package Manager: `pnpm@10.12.1`\n- Builder: `-`\n- User Config: `compatibilityDate`, `components`, `css`, `devtools`, `devServer`, `experimental`, `hooks`, `ignore`, `imports`, `modules`, `runtimeConfig`, `$development`, `$production`, `$env`, `ssr`, `vite`, `eslint`, `googleFonts`, `icon`, `primevue`\n- Runtime Modules: `@formkit/auto-animate/nuxt@0.8.2`, `@nuxt/eslint@1.4.1`, `@nuxt/icon@1.13.0`, `@nuxt/image@1.10.0`, `@nuxtjs/color-mode@3.5.2`, `@nuxtjs/google-fonts@3.2.0`, `@pinia/nuxt@0.11.1`, `@primevue/nuxt-module@4.3.5`, `@vueuse/nuxt@13.3.0`, `pinia-plugin-persistedstate/nuxt@4.3.0`\n- Build Modules: `-`\n\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/confident-water-h3prwy\n\n### Describe the bug\n\nMy `nuxt.config.ts` has the following:\n\n```ts\n{\n runtimeConfig: {\n public: {\n userId: \"default\",\n userPIN: \"default\",\n },\n },\n}\n```\n\nLooking at `.nuxt/types/schema.d.ts`, it is correctly typed:\n\n```ts\n interface PublicRuntimeConfig {\n userId: string,\n\n userPIN: string,\n }\n```\n\n1. Run the reproduction. Both `userId` and `userPIN` are indeed strings.\n2. Uncomment the lines in `.env`. `userId` has now become a number.\n\n### Additional context\n\nAttempted workarounds: \n- Surrounding the value in `.env` with single or double quotes (e.g. FOO=\"1234\") makes no difference, the value in `runtimeConfig` still ends up as a number.\n- Using `FOO=\"'1234'\"` does force the value to be a string, but includes the single quotes, so that is not desirable either.\n- Ultimately I had to write a plugin that ran first and coerced the relevant values in `runtimeConfig.public` to strings.\n\nI'm guessing that `JSON.stringify` is being used to parse the values received from `.env`, which causes anything number-like to end up as a number.\n\nThis bug seriously limits the utility of typing `runtimeConfig`.\n\n### Logs\n\n```shell-script\n\n```",[3190],{"name":3191,"color":3192},"pending triage","E99695",32375,"runtimeConfig parser converts number-like .env values to a number, even when typed as a string","2025-06-13T09:47:06Z","https://github.com/nuxt/nuxt/issues/32375",0.7050789,{"labels":3199,"number":3204,"owner":3141,"repository":3141,"state":3170,"title":3205,"updated_at":3206,"url":3207,"score":3208},[3200,3201],{"name":3191,"color":3192},{"name":3202,"color":3203},"2.x","d4c5f9",6639,"SSR of textarea value incorrectly stringifying null and undefined v-model bound values","2023-01-22T15:34:46Z","https://github.com/nuxt/nuxt/issues/6639",0.7079159,{"description":3210,"labels":3211,"number":3217,"owner":3141,"repository":3155,"state":3170,"title":3218,"updated_at":3219,"url":3220,"score":3221},"### Environment\n\nN/A\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.2.0\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/compassionate-jasper-w2k3lm\n\n### Description\n\nThe `InputMenu` component throws an error if one of the fields provided in `filterFields` resolved to a nullish or non-string value. You can reproduce this in the sandbox by typing in the input box and observing the console.\n\nSo having the following setup errors out, which is a real-world use case I'm encountering this:\n\n```vue\n\u003Cscript lang=\"ts\" setup>\nconst items = [\n {\n label: 'foo',\n alias: 'something'\n },\n {\n label: 'bar'\n }\n]\n\u003C/script>\n\n\u003Ctemplate>\n \u003CUInputMenu :items :filter-fields=\"['label', 'alias']\" />\n\u003C/template>\n```\n\nThis is caused by `useFilter.contains` being called with a non-string value.\n\nIt is somewhat related to https://github.com/nuxt/ui/issues/3606 which has been addressed previously, but only for primitive item types.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3212,3213,3216],{"name":3135,"color":3136},{"name":3214,"color":3215},"v3","49DCB8",{"name":3152,"color":3153},4509,"InputMenu: error if field field is nullish or non-string","2025-07-12T10:15:32Z","https://github.com/nuxt/ui/issues/4509",0.710412,{"description":3223,"labels":3224,"number":3232,"owner":3141,"repository":3155,"state":3170,"title":3233,"updated_at":3234,"url":3235,"score":3236},"### Environment\n\n- Operating System: Linux\n- Node Version: v22.4.0\n- Nuxt Version: 3.14.1592\n- CLI Version: 3.16.0\n- Nitro Version: 2.10.4\n- Package Manager: pnpm@9.14.4\n- Builder: -\n- User Config: default\n- Runtime Modules: @nuxt/ui@3.0.0-alpha.9, nuxt-auth-sanctum@0.5.2, @vueuse/nuxt@11.3.0, nuxt-file-storage@0.2.9\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\n3.14.1592\n\n### Reproduction\n\n```vue\n\u003Cscript setup lang=\"ts\">\nconst bill = defineModel()\nconst calcStep = (value: int): int => value \u003C 1000 ? 100 : 500\n\u003C/script>\n\n\u003Ctemplate>\n \u003Cdiv class=\"flex gap-4 items-center\">\n 芯褌 \u003CUInputNumber v-model=\"bill.from\" :min=\"0\" :max=\"bill.to || 10000\" :step=\"calcStep(bill.from)\" variant=\"soft\" class=\"max-w-32\" />\n 写芯 \u003CUInputNumber v-model=\"bill.to\" :min=\"bill.from\" :max=\"10000\" :step=\"calcStep(bill.to)\" variant=\"soft\" class=\"max-w-32\" />\n \u003C/div>\n\u003C/template>\n```\n\n### Description\n\nhttps://skr.sh/vT5m5gCX1Bk\n\nThe value changes when clicking outside the field, regardless of the `step` and `modelValue` state. The `step` parameter is also calculated incorrectly at the threshold of 1000.",[3225,3226,3229,3230,3231],{"name":3135,"color":3136},{"name":3227,"color":3228},"needs reproduction","CB47CF",{"name":3214,"color":3215},{"name":3152,"color":3153},{"name":3165,"color":3166},2859,"UInputNumber changes value on blur when not asked for","2025-06-19T02:15:22Z","https://github.com/nuxt/ui/issues/2859",0.71322316,{"description":3238,"labels":3239,"number":3244,"owner":3141,"repository":3155,"state":3170,"title":3245,"updated_at":3246,"url":3247,"score":3248},"### 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```",[3240,3241,3242,3243],{"name":3135,"color":3136},{"name":3152,"color":3153},{"name":3165,"color":3166},{"name":3168,"color":3166},3132,"SelectMenu label not displayed for falsy values","2025-06-18T09:02:30Z","https://github.com/nuxt/ui/issues/3132",0.71411556,{"description":3250,"labels":3251,"number":3255,"owner":3141,"repository":3155,"state":3170,"title":3256,"updated_at":3257,"url":3258,"score":3259},"### 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`, `srcDir`, `routeRules`, `app`, `svgSprite`, `alias`, `css`, `imports`, `modules`, `ssr`, `runtimeConfig`\n- Runtime Modules: `@nuxt/eslint@1.4.1`, `@nuxt/fonts@0.11.4`, `@nuxt/icon@1.14.0`, `@nuxt/image@1.10.0`, `@nuxt/scripts@0.11.8`, `@nuxt/test-utils@3.19.1`, `@nuxt/ui@3.1.3`, `@nuxtjs/svg-sprite@1.0.2`\n- Build Modules: `-`\n\n\n### Is this bug related to Nuxt or Vue?\n\n\nNuxt\n\n### Version\n\nv3.2.0\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/dreamy-euler-9595k7\n\n\n### Description\n\n\n\nHi when i select copy payment id i got that error when i console log the row it gives me undefined upon clicking kindly check this link: https://ui.nuxt.com/components/table#with-context-menu\n\n#4259 \n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3252,3253,3254],{"name":3135,"color":3136},{"name":3227,"color":3228},{"name":3214,"color":3215},4452,"UTable context menu error during selection of items","2025-07-13T16:34:46Z","https://github.com/nuxt/ui/issues/4452",0.71495354,["Reactive",3261],{},["Set"],["ShallowReactive",3264],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fVjPzHMKKn_HD7G7p4oifsZe7XHX4Rf1F8ai20ToSRUE":-1},"/nuxt/ui/4804"]