\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```",[3095,3096,3097],{"name":3019,"color":3020},{"name":3022,"color":3023},{"name":3025,"color":3026},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.6469507,{"description":3104,"labels":3105,"number":3108,"owner":3028,"repository":3029,"state":3057,"title":3109,"updated_at":3110,"url":3111,"score":3112},"### Environment\n\n- Operating System: Windows_NT\n- Node Version: v22.14.0\n- Nuxt Version: 3.16.2\n- CLI Version: 3.24.0\n- Nitro Version: 2.11.8\n- Package Manager: pnpm@10.9.0\n- Builder: -\n- User Config: modules, css, build, supabase, content, pinia, devtools, debug, routeRules, future, compatibilityDate, eslint\n- Runtime Modules: @nuxt/eslint@1.3.0, @nuxt/ui-pro@3.1.0, @vueuse/nuxt@13.1.0, @nuxt/content@3.5.1, @nuxt/icon@1.12.0, @nuxt/image@1.10.0, @nuxt/scripts@0.11.6, @nuxt/test-utils@3.17.2, @nuxtjs/supabase@1.5.0, @pinia/nuxt@0.11.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.1.0\n\n### Reproduction\n\n```\n\u003Ctemplate>\n \u003Cdiv class=\"flex\">\n \u003CUForm :state=\"state\" class=\"w-1/2 p-4\">\n \u003CUFormField v-for=\"(item, index) in items\" :key=\"index\" :label=\"index\" :name=\"index\">\n \u003CUColorPicker v-if=\"index == 'color'\" v-model=\"state[index]\" :default-value=\"item\" />\n \u003CUSlider v-if=\"index == 'range' && typeof item == 'number'\" v-model=\"state[index]\" :default-value=\"item\" />\n \u003CUInput v-if=\"typeof state[index] == 'boolean'\" :type=\"index\" :value=\"index\" :checked=\"item\" />\n \u003CUInput v-else :type=\"index\" v-model=\"state[index]\" :default-value=\"item\" />\n \u003C/UFormField>\n \u003C/UForm>\n \u003Cpre class=\"w-1/2 bg-gray-200 p-4 leading-14\"> {{ state }} \u003C/pre>\n \u003C/div>\n\u003C/template>\n\n\u003Cscript lang=\"ts\" setup>\nconst state = ref({}) // ISSUE: Default values are not loaded in the v-model\nconst items = {\n number: 50,\n reset: true, // ISSUE: UInput is not supporting boolean values for v-model\n submit: true, // ISSUE: UInput is not supporting boolean values for v-model\n search: \"search\",\n date: \"2025-04-25\",\n text: \"text\",\n color: \"#ccffcc\",\n button: true, // ISSUE: UInput is not supporting boolean values for v-model\n checkbox: false, // ISSUE: UInput is not supporting boolean values for v-model\n \"datetime-local\": \"2025-04-25T10:49:31\",\n email: \"nobody@gmail.com\",\n file: \"\",\n hidden: \"hidden\",\n image: \"image.svg\",\n month: \"2025-04\",\n password: \"topsecret\",\n radio: true, // ISSUE: UInput is not supporting boolean values for v-model\n range: 50, // Default value is displayed but not loaded in the v-model\n tel: \"0612345678\",\n time: \"10:49:31\",\n url: \"www.chatgpt.com\",\n week: \"2025-W16\"\n}\n// const state = reactive(items) // Workaround for default-value\n\u003C/script>\n```\n\n### Description\n\nI made a small comparison between `UInput` and other components like `UColorPicker` and `USlider` and I stumbled on a couple of issues.\n* `default-value` is not displayed except for `range` and `USlider`\n* `default-value` is never initialized in the `v-model`\n* Booleans are not supported in the `v-model` and I was therefore not able to make them reactive.\n\nWorkaround is to load the default value via the `state`, but that requires an additional step and is therefore not ideal for dynamic forms\n`const state = reactive(items)`\n\nWorkaround for working with booleans, but I am not sure how to apply the `v-model` yet🤔\n`\u003CUInput v-if=\"typeof state[index] == 'boolean'\" :type=\"index\" :value=\"index\" :checked=\"item\" />`\n\n\n### Additional context\n\nDefault values via `default-value`\n\nDefault value via `state`\n\n\n### Logs\n\n```shell-script\n\n```",[3106,3107],{"name":3019,"color":3020},{"name":3022,"color":3023},3983,"Default values are not loaded in the v-model","2025-06-30T13:04:54Z","https://github.com/nuxt/ui/issues/3983",0.6536768,{"description":3114,"labels":3115,"number":3126,"owner":3028,"repository":3028,"state":3057,"title":3127,"updated_at":3128,"url":3129,"score":3130},"### Environment\n\n- Operating System: Windows_NT\n- Node Version: v18.16.0\n- Nuxt Version: 3.4.3\n- Nitro Version: 2.4.0\n- Package Manager: pnpm@8.5.0\n- Builder: vite\n- User Config: experimental, modules, colorMode\n- Runtime Modules: @unocss/nuxt@0.51.12, @vueuse/nuxt@10.1.2, nuxt-icon@0.4.0, nuxt-swiper@1.1.0, @nuxt/devtools@0.4.6, @nuxt/image-edge@1.0.0-28020728.5df24eb, @nuxtjs/color-mode@3.2.0\n- Build Modules: -\n\n### Reproduction\n\n\n\nThis error doesn't seem to be reproducible on Stackblitz so I have included a [github repo](https://github.com/tobychidi/nuxt-utils-import-error)\n\n### Describe the bug\n\nWhen functions are auto-imported from utils/ composables and used in Vue SFC Template, VsCode throws and error. Yes, I use the latest volar. This error appeared after `pnpm up` That bumped my Vue version to 3.3.1.\n\nI have not tried reverting Vue versions though. \n\n### Additional context\n\nExample: \n```\nProperty 'useShowSnack' does not exist on type '{ $: ComponentInternalInstance; $data: {}; $props: { key?: string | number | symbol | undefined; ref?: VNodeRef | undefined; ref_for?: boolean | undefined; ... 8 more ...; style?: unknown; }; ... 10 more ...; $watch\u003CT extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (arg...'.ts(2339)\n```\n\n_No response_\n\n### Logs\n\n_No response_",[3116,3117,3120,3123],{"name":3081,"color":3082},{"name":3118,"color":3119},"workaround available","11376d",{"name":3121,"color":3122},"upstream","E8A36D",{"name":3124,"color":3125},"upstream-bug","B60205",20827,"TS Error with auto-imports from composables and utils in Vue Template after 3.3","2024-11-07T20:13:37Z","https://github.com/nuxt/nuxt/issues/20827",0.6539027,{"description":3132,"labels":3133,"number":3136,"owner":3028,"repository":3029,"state":3057,"title":3137,"updated_at":3138,"url":3139,"score":3140},"### Environment\n\n- Operating System: Linux\n- Node Version: v22.14.0\n- Nuxt Version: 3.17.3\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.12\n- Package Manager: npm@11.3.0\n- Builder: -\n- User Config: app, build, colorMode, compatibilityDate, debug, devtools, fonts, future, hooks, i18n, icon, imports, modules, nitro, routeRules, runtimeConfig, security, ssr, sourcemap, css, telemetry, vite\n- Runtime Modules: @nuxt/eslint@1.3.1, @pinia/nuxt@0.11.0, @vueuse/nuxt@13.2.0, @nuxtjs/i18n@9.5.4, nuxt-security@2.2.0, @nuxt/ui@3.1.2\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.1.2\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/sharp-christian-kzdxt9?file=%2Fapp%2Fpages%2Findex.vue\n\n### Description\n\nStarting from v3.1.2, using the [built-in v-model-modifiers](https://vuejs.org/guide/essentials/forms.html#modifiers) produces type errors. They are still working tho, so its only a type issue.\n\nReproduction:\n1. Open provided link\n2. Run `pnpx nuxi typecheck`\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n➜ workspace git:(master) ✗ pnpx nuxi typecheck\nPackages: +1\n+\nProgress: resolved 1, reused 1, downloaded 0, added 1, done\nℹ Nuxt Icon server bundle mode is set to local 11:09:23 AM\n✔ Nuxt Icon discovered local-installed 2 collections: lucide, simple-icons 11:09:25 AM\nℹ Running with compatibility version 4 nuxt 11:09:25 AM\napp/pages/index.vue:8:22 - error TS2353: Object literal may only specify known properties, and 'modelModifiers' does not exist in type '{ readonly onBlur?: ((event: FocusEvent) => any) | undefined; readonly onChange?: ((event: Event) => any) | undefined; readonly \"onUpdate:modelValue\"?: ((payload: number) => any) | undefined; ... 24 more ...; modelValue?: number | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps'.\n\n8 \u003CUInput v-model.number=\"myNumber\" type=\"number\" />\n ~~~~~~~\n\napp/pages/index.vue:9:22 - error TS2353: Object literal may only specify known properties, and 'modelModifiers' does not exist in type '{ readonly onBlur?: ((event: FocusEvent) => any) | undefined; readonly onChange?: ((event: Event) => any) | undefined; readonly \"onUpdate:modelValue\"?: ((payload: string) => any) | undefined; ... 24 more ...; modelValue?: string | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps'.\n\n9 \u003CUInput v-model.lazy=\"myText\" />\n ~~~~~\n\n\nFound 2 errors in the same file, starting at: app/pages/index.vue:8\n\n\n ERROR Process exited with non-zero status (2) 11:09:41 AM\n\n at R._waitForOutput (/root/.cache/pnpm/v3/tmp/dlx-4483/node_modules/.pnpm/nuxi@3.25.1/node_modules/nuxi/dist/chunks/main.mjs:508:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Object.run (/root/.cache/pnpm/v3/tmp/dlx-4483/node_modules/.pnpm/nuxi@3.25.1/node_modules/nuxi/dist/chunks/typecheck.mjs:91:9)\n at async runCommand$1 (/root/.cache/pnpm/v3/tmp/dlx-4483/node_modules/.pnpm/nuxi@3.25.1/node_modules/nuxi/dist/shared/nuxi.BlFGnQYG.mjs:1767:16)\n at async runCommand$1 (/root/.cache/pnpm/v3/tmp/dlx-4483/node_modules/.pnpm/nuxi@3.25.1/node_modules/nuxi/dist/shared/nuxi.BlFGnQYG.mjs:1758:11)\n at async runMain$1 (/root/.cache/pnpm/v3/tmp/dlx-4483/node_modules/.pnpm/nuxi@3.25.1/node_modules/nuxi/dist/shared/nuxi.BlFGnQYG.mjs:1896:7) \n\n\n\n ERROR Process exited with non-zero status (2)\n```",[3134,3135],{"name":3019,"color":3020},{"name":3022,"color":3023},4166,"Built-in v-model modifiers produce type errors with v3.1.2","2025-05-22T12:51:25Z","https://github.com/nuxt/ui/issues/4166",0.6551474,{"description":3142,"labels":3143,"number":3148,"owner":3028,"repository":3029,"state":3057,"title":3149,"updated_at":3150,"url":3151,"score":3152},"### Environment\n\n- Operating System: Darwin\n- Node Version: v22.11.0\n- Nuxt Version: 3.14.1592\n- CLI Version: 3.15.0\n- Nitro Version: 2.10.4\n- Package Manager: pnpm@9.4.0\n- Builder: -\n- User Config: default\n- Runtime Modules: @nuxtjs/i18n@9.0.0-rc.2, @sidebase/nuxt-auth@0.9.4, @vueuse/nuxt@11.3.0, nuxt-typed-router@3.7.1\n- Build Modules: -\n\n### Version\n\n2.19.2\n\n### Reproduction\n\n\n\n\n### Description\n\nPR #2275 was to accept null values in the `v-model` of the various components, but it turns out (thanks to [KazariEX](https://github.com/vuejs/language-tools/issues/5036#issuecomment-2527791622)) that the problem comes from the tsconfig configuration of `@nuxt/ui` where `strictNullCheck` is `false`, which causes the `null` that should have existed to be deleted from the type when the component is compiled.\n\n@benjamincanac is it safe to set `strictNullCheck` to true? Would you accept a PR?\n\n_________\n\n### EDIT\n\nWell, I've just tested it, and simply changing the `strictNullCheck` property to `true` completely breaks the typecheck.",[3144,3145,3146,3147],{"name":3019,"color":3020},{"name":3025,"color":3026},{"name":3052,"color":3053},{"name":3055,"color":3053},2868,"`null` modelValue deleted from the final type when compiling the components","2025-06-18T09:05:17Z","https://github.com/nuxt/ui/issues/2868",0.6562022,["Reactive",3154],{},["Set"],["ShallowReactive",3157],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$f8ESXHD7rhw8OuKr9dJYrh-BOiiGnodgOGFI811XFrWY":-1},"/nuxt/ui/1710"]