\n \u003C/u-form>\n\u003C/template>\n```\n\nTriggers type error:\n\n```\nType '{ file: { readonly lastModified: number; readonly name: string; readonly webkitRelativePath: string; readonly size: number; readonly type: string; arrayBuffer: () => Promise\u003CArrayBuffer>; slice: (start?: number | undefined, end?: number | undefined, contentType?: string | undefined) => Blob; stream: () => ReadableSt...' is not assignable to type 'Partial\u003C{ file: File; }>'\n```\n\nExpected: it's allowed to have a form with a schema that requires a file to be selected.\n\n### Additional context\n\nIn fact, I believe this is a much broader problem. Why is the `state` typed as `Partial\u003CInferInput\u003CS>> ` in the first place? The type of the fields does not always match the schema. Basically, that's the point of schema in the first place, to perform validation — and not only value, but also the type. Consider number input value:\n\n```vue\n\u003Cscript setup lang=\"ts\">\nimport * as z from \"zod\"\n\nconst fields = reactive({\n // Type used by \u003Cinput v-model=\"...\" type=\"number\">\n // It saves empty string for non-numbers.\n foo: \"\" as number | \"\",\n})\n\nconst schema = z.object({\n // But we need the actual number for the input data.\n foo: z.number(),\n})\n\u003C/script>\n\n\u003Ctemplate>\n \u003Cu-form :state=\"fields\" :schema=\"schema\">\n \u003Cinput v-model=\"fields.foo\" type=\"number\" />\n \u003C/u-form>\n\u003C/template>\n```\n\nThis leads to similar type error:\n\n```\nType '{ foo: number | \"\"; }' is not assignable to type 'Partial\u003C{ foo: number; }>'.\n Types of property 'foo' are incompatible.\n Type 'number | \"\"' is not assignable to type 'number | undefined'.\n Type 'string' is not assignable to type 'number'.\n```\n\nAs I see it, `state` should be untyped/unknown.\n\n### Logs\n\n```shell-script\n\n```",[3171,3174],{"name":3172,"color":3173},"bug","d73a4a",{"name":3175,"color":3176},"triage","ffffff",5204,"nuxt","ui","open","UFile (and others!) type error when used with schema validation","2025-10-10T06:07:16Z","https://github.com/nuxt/ui/issues/5204",0.6681618,{"description":3186,"labels":3187,"number":3190,"owner":3178,"repository":3179,"state":3180,"title":3191,"updated_at":3192,"url":3193,"score":3194},"### Environment\n\nNuxt 4.1.3\nVue 3.5.22\nNode v20.19.1\npnpm 8.15.6\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Package\n\nv4.x\n\n### Version\n\nv4.0.1\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-starter-bdswtca6\n\n- Select a file\n- Click submit\n- You will see error: \"Please select a file\"\n\n\u003Cimg width=\"357\" height=\"204\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/d7daf65f-8220-434a-8702-1d0331f2a3d6\" />\n\nExpected: the submit handler is called.\n\n### Description\n\n`\u003Cu-file-upload required />` prevents the form submit. The field is considered not filled regardless of whether the file is actually selected or not.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3188,3189],{"name":3172,"color":3173},{"name":3175,"color":3176},5210,"UFileUpload \"required\" flag shows error when file is selected","2025-10-11T07:08:50Z","https://github.com/nuxt/ui/issues/5210",0.67822134,{"description":3196,"labels":3197,"number":3203,"owner":3178,"repository":3179,"state":3180,"title":3204,"updated_at":3205,"url":3206,"score":3207},"### 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```",[3198,3199,3202],{"name":3172,"color":3173},{"name":3200,"color":3201},"v3","49DCB8",{"name":3175,"color":3176},4373,"USelect doesn't accept undefined as selected option","2025-06-18T12:37:16Z","https://github.com/nuxt/ui/issues/4373",0.69808275,{"description":3209,"labels":3210,"number":3214,"owner":3178,"repository":3178,"state":3180,"title":3215,"updated_at":3216,"url":3217,"score":3218},"### Environment\r\n\r\n- Operating System: Linux\r\n- Node Version: v21.7.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: npm@10.5.0\r\n- Builder: -\r\n- User Config: devtools\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n\r\n### Reproduction\r\n\r\nhttps://github.com/TurtleKwitty/NuxtPluginProvideBug\r\n\r\n### Describe the bug\r\n\r\nThere is an unexpected interaction between plugin provided refs and local redefinitions with `const {$data} = useNuxtApp()`\r\n\r\nWhen using the global object in a template a ref holding undefined or null will return {} and `.value` is required to make it behave correctly\r\nWhen redefining it locally with `const {$data} = useNuxtApp()` then it is correctly returned as undefined or null\r\n\r\nI will attempt to take a look if I can hunt down the cause of this bugged interaction but do not currently have a PR.\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n_No response_",[3211],{"name":3212,"color":3213},"documentation","5319e7",26239,"Template behaves differently when redefining $data ","2024-06-30T11:05:16Z","https://github.com/nuxt/nuxt/issues/26239",0.70207286,{"description":3220,"labels":3221,"number":3225,"owner":3178,"repository":3179,"state":3226,"title":3227,"updated_at":3228,"url":3229,"score":3230},"### Environment\n\n- Operating System: Linux\n- Node Version: v22.11.0\n- Nuxt Version: 4.0.3\n- CLI Version: 3.27.0\n- Nitro Version: 2.12.4\n- Package Manager: pnpm@10.14.0\n- Builder: -\n- User Config: modules, $production, components, devtools, app, css, site, mdc, ui, compatibilityDate, nitro, vite, eslint, fonts, icon, linkChecker, ogImage, seo, sitemap\n- Runtime Modules: @nuxtjs/seo@3.1.0, @vueuse/nuxt@13.7.0, @nuxt/ui@3.3.2, @nuxt/eslint@1.9.0, @nuxt/scripts@0.11.10, motion-v/nuxt@1.7.0, @nuxtjs/mdc@0.17.2\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Package\n\nv3.x\n\n### Version\n\nv3.3.2\n\n### Reproduction\n\n```vue\n\u003Cscript setup lang=\"ts\">\n// This causes TypeScript error\nconst handleFileChange = (file: File | File[] | null) => {\n console.log(file);\n};\n\u003C/script>\n\n\u003Ctemplate>\n \u003CUFileUpload @update:model-value=\"handleFileChange\" />\n\u003C/template>\n```\n\n### Description\n\nThe `@update:model-value` event handler for `UFileUpload` component emits `unknown` type instead of the documented type `File | File[] | null | undefined`.\n\n**Expected Behavior (per documentation)**\nAccording to the [official documentation](https://ui.nuxt.com/components/file-upload#emits), the `@update:model-value` event should emit:\n- `[value: File | File[] | null | undefined]`\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3222,3223,3224],{"name":3172,"color":3173},{"name":3200,"color":3201},{"name":3175,"color":3176},4852,"closed","Type mismatch: UFileUpload @update:model-value emits unknown instead of documented type","2025-09-01T10:56:13Z","https://github.com/nuxt/ui/issues/4852",0.6139268,{"description":3232,"labels":3233,"number":3240,"owner":3178,"repository":3179,"state":3226,"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":3172,"color":3173},{"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.68062705,{"description":3246,"labels":3247,"number":3257,"owner":3178,"repository":3178,"state":3226,"title":3258,"updated_at":3259,"url":3260,"score":3261},"### Environment\r\n\r\n------------------------------\r\n- Operating System: Darwin\r\n- Node Version: v20.1.0\r\n- Nuxt Version: 3.10.2\r\n- CLI Version: 3.10.1\r\n- Nitro Version: 2.7.0-28295243.3e9302a\r\n- Package Manager: npm@9.6.4\r\n- Builder: -\r\n- User Config: devtools, build, plugins, imports, nitro, modules, eslint, css, pinia, alias, colorMode, vite\r\n- Runtime Modules: @nuxtjs/tailwindcss@6.11.4, @pinia/nuxt@0.5.1, @nuxtjs/eslint-module@4.1.0, @nuxt/image@1.3.0, @nuxtjs/i18n@8.1.1, nuxt-icon@0.6.8, @vueuse/nuxt@10.7.2, @nuxtjs/color-mode@3.3.2, @nuxtjs/supabase@1.1.6\r\n- Build Modules: -\r\n\r\n### Reproduction\r\n\r\ncreate component with \r\n`const modelValue = defineModel\u003Cstring | null | undefined>({\r\n set(value: string) {\r\n if (value) {\r\n return value.trim();\r\n }\r\n return value;\r\n },\r\n});`\r\n\r\nfollowing declaration of defineModel gives `No overload matches this call.\r\n The last overload gave the following error.ts(2769)\r\n ` error\r\n\r\nalso \r\n`const modelValue = defineModel\u003Cstring, \"trim\">();\r\n` is not working, it is throwing `Expected 1 type arguments, but got 2.`\r\n\r\n\r\n\r\n### Describe the bug\r\n\r\nfollowing declaration of defineModel gives `No overload matches this call.\r\n The last overload gave the following error.ts(2769)\r\n ` error\r\n\r\n### Additional context\r\n\r\nthose are functionalities from official Vue 3.4 documentation https://vuejs.org/api/sfc-script-setup.html#modifiers-and-transformers\r\n\r\n### Logs\r\n\r\n_No response_",[3248,3251,3254],{"name":3249,"color":3250},"3.x","29bc7f",{"name":3252,"color":3253},"pending triage","E99695",{"name":3255,"color":3256},"needs reproduction","FBCA04",25844,"defineModel doesnt know set option","2024-02-17T22:15:46Z","https://github.com/nuxt/nuxt/issues/25844",0.68171746,{"description":3263,"labels":3264,"number":3269,"owner":3178,"repository":3179,"state":3226,"title":3270,"updated_at":3271,"url":3272,"score":3273},"### Description\n\nThe light mode defaults for Select are pretty good. Not as good for dark mode. How can I at least modify the background and text color of the popup list for dark mode? What is the recommended approach?\n\n\n",[3265,3268],{"name":3266,"color":3267},"question","d876e3",{"name":3200,"color":3201},3595,"How can I improve the dark style of USelect","2025-03-18T20:19:24Z","https://github.com/nuxt/ui/issues/3595",0.6823683,{"description":3275,"labels":3276,"number":3279,"owner":3178,"repository":3179,"state":3226,"title":3280,"updated_at":3281,"url":3282,"score":3283},"### Environment\n\n- Operating System: `Windows_NT`\n- Node Version: `v22.18.0`\n- Nuxt Version: `4.1.1`\n- CLI Version: `3.28.0`\n- Nitro Version: `2.12.4`\n- Package Manager: `npm@11.5.2`\n- Builder: `-`\n- User Config: `runtimeConfig`, `modules`, `devtools`, `supabase`, `css`, `routeRules`, `compatibilityDate`\n- Runtime Modules: `@nuxt/ui-pro@3.3.3`, `@vueuse/nuxt@13.9.0`, `@nuxtjs/supabase@1.6.2`, `nuxt-charts@0.2.3`\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://codesandbox.io/p/devbox/zen-euclid-cf554n\n\n### Description\n\nThe problem occurs because the UFileUpload component likely contains a button element that doesn't have an explicit type attribute, causing it to default to type=\"submit\", which triggers form submission.\n\n### Additional context\n\n```\n\u003Ccomponent\n :is=\"variant === 'button' ? 'button' : 'div'\"\n ref=\"dropzoneRef\"\n :type=\"variant === 'button' ? 'button' : undefined\" // 👈 add this maybe?\n :role=\"variant === 'button' ? undefined : 'button'\"\n :data-dragging=\"isDragging\"\n :class=\"ui.base({ class: props.ui?.base })\"\n :tabindex=\"interactive && !disabled ? 0 : -1\"\n @click=\"interactive && !disabled && open()\" \n @keydown.prevent\n @keyup.enter.space=\"interactive && !disabled && open()\"\n>\n```\n\n### Logs\n\n```shell-script\n\n```",[3277,3278],{"name":3172,"color":3173},{"name":3200,"color":3201},4935,"UFileUpload with variant button inside form will cause UForm submit","2025-09-09T14:55:29Z","https://github.com/nuxt/ui/issues/4935",0.68378764,{"description":3285,"labels":3286,"number":3289,"owner":3178,"repository":3179,"state":3226,"title":3290,"updated_at":3291,"url":3292,"score":3293},"### Environment\n\nNuxt 3.15.4\nNuxt UI https://pkg.pr.new/@nuxt/ui@e7e7585\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\n3.15.4\n\n### Reproduction\n\n-\n\n### Description\n\nJust noticed the following components work as expected in a fieldForm\n\n```\n \u003CUFormField\n v-if=\"isVisible\"\n :name=\"fieldName\"\n :label=\"field['#title']\"\n :required=\"!!field['#required']\"\n >\n \u003Ctemplate\n v-if=\"descriptionContent && field['#type'] !== 'checkbox'\"\n #description\n >\n \u003Cspan v-html=\"cleanHTML(descriptionContent)\" />\n \u003C/template>\n\n \u003Ccomponent\n v-if=\"resolvedComponent\"\n :is=\"resolvedComponent\"\n :field=\"field\"\n :fieldName=\"fieldName\"\n :state=\"state\"\n />\n\n \u003Ctemplate v-if=\"helpContent\" #help>\n \u003Cspan v-html=\"cleanHTML(helpContent)\" />\n \u003C/template>\n \u003C/UFormField>\n```\n\n ```\n \u003CURadioGroup\n v-model=\"state[fieldName]\"\n :items=\"transformOptions(field['#options'] || {})\"\n orientation=\"horizontal\"\n class=\"w-full\"\n />\n```\n\n```\n \u003CUSelect\n v-model=\"state[fieldName]\"\n placeholder=\"Select\"\n :items=\"transformOptions(field['#options'] || {})\"\n class=\"w-full\"\n />\n\n```\nHowever when using a UCheckbox label and description have to be set here\n\n```\n \u003CUCheckbox\n v-model=\"checkboxValue\"\n :label=\"field['#title']\"\n :description=\"field['#description']\"\n class=\"w-full\"\n @update:model-value=\"props.state[fieldName] = $event\"\n />\n```\n\nSeems like this is a bug or maybe this is by design?\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3287,3288],{"name":3266,"color":3267},{"name":3200,"color":3201},3294,"UCheckbox fieldform support","2025-02-12T19:23:36Z","https://github.com/nuxt/ui/issues/3294",0.683799,["Reactive",3295],{},["Set"],["ShallowReactive",3298],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fEK8QY3o8gXzgZ7CnRLHUgrBwQPklMMCPQqE8yE6B5zQ":-1},"/nuxt/ui/5202"]