\nThe input rendered in the DOM :\n\u003Cimg width=\"428\" height=\"128\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/3be31e65-187f-48cb-8ea5-b5a1cb7286dc\" />",[3164,3167],{"name":3165,"color":3166},"enhancement","a2eeef",{"name":3153,"color":3154},4529,"Setting required=\"true\" on a \u003CUFormField> should also set it's child required to true","2025-07-31T14:36:21Z","https://github.com/nuxt/ui/issues/4529",0.6980997,{"description":3174,"labels":3175,"number":3178,"owner":3141,"repository":3142,"state":3143,"title":3179,"updated_at":3180,"url":3181,"score":3182},"### Description\n\nthis should not be required. I was able to work around a similar issue in https://github.com/nuxt-content/docus/pull/1161.\n",[3176,3177],{"name":3135,"color":3136},{"name":3138,"color":3139},4926,"remove requirement for `shamefully-hoist=true`","2025-09-08T16:57:09Z","https://github.com/nuxt/ui/issues/4926",0.6990099,{"description":3184,"labels":3185,"number":3188,"owner":3141,"repository":3142,"state":3143,"title":3189,"updated_at":3190,"url":3191,"score":3192},"### Environment\n\n- Operating System: `Linux`\n- Node Version: `v20.11.1`\n- Nuxt Version: `-`\n- CLI Version: `3.28.0`\n- Nitro Version: `-`\n- Package Manager: `npm@10.2.4`\n- Builder: `-`\n- User Config: `-`\n- Runtime Modules: `-`\n- Build Modules: `-`\n\n### Is this bug related to Nuxt or Vue?\n\nBoth\n\n### Package\n\nv3.x\n\n### Version\n\nv3.3.2, but applies for v4 as well\n\n### Reproduction\n\n[Vue SFC Playground reproduction](https://play.vuejs.org/#eNp9kTFPwzAQhf+K5amVqkQIppJWBVQkGKCisHkJ6TW4JLZln0OkKP+ds6OEDqibfd+7u/fsjt8ZkzQe+JJnrrDSIHOA3rAqV+VKcHSCr4WStdEWWccs5AXKBljPjlbXTHBqFvx2knw8aluPbKN8i6mXaaGJKlDo0sDDxtgkVKGVo52YI7DVNH7W9XPCA9Rq7z9ricRnc7Zasx1Nlw4SC05XJL4K2iwd/JNbuiDUpqKZdGMsG0wthy0bF6dRuHGw4CwlYZaedfEFZaf9R1kmJ6cVPVAXZgkessgK7KtBSf4EX7JIAsurSv88xxpaD4uxXnxB8f1P/eTaUBN8R1nANvQqE8PclkDeAt7uX6Cl8wRrffAVqS/At/A6PngcZPdeHcj2mS66fYr/JlX57rYtgnJjqGA0KPuojx/9cCH6n93r5Cb2CdXz/hdp+c1W) (runtime is not required, issue is with types -- wait a bit until they load completely).\n\nCode:\n```vue\n\u003Cscript setup lang=\"ts\">\nimport { reactive } from \"vue\";\nimport UForm from \"@nuxt/ui/components/Form.vue\";\n\nconst state = reactive({});\nconst onSubmit = () => Promise.resolve(1);\n\u003C/script>\n\n\u003Ctemplate>\n \u003CUForm :state @submit=\"onSubmit\" />\n\u003C/template>\n```\n\nError:\n```\nType '() => Promise\u003Cnumber>' is not assignable to type '((event: FormSubmitEvent\u003Cany>) => any) & ((() => void | Promise\u003Cvoid>) | ((event: FormSubmitEvent\u003Cany>) => void | Promise\u003Cvoid>))'.\n Type '() => Promise\u003Cnumber>' is not assignable to type '((event: FormSubmitEvent\u003Cany>) => any) & (() => void | Promise\u003Cvoid>)'.ts(2322)\nForm.vue.d.ts(59, 18): The expected type comes from property 'onSubmit' which is declared here on type '__VLS_NormalizeComponentEvent\u003CNonNullable\u003C{ onSubmit?: ((event: FormSubmitEvent\u003Cany>) => any) & ((() => void | Promise\u003Cvoid>) | ((event: FormSubmitEvent\u003Cany>) => void | Promise\u003C...>)); ... 11 more ...; class?: any; } & VNodeProps & AllowedComponentProps & ComponentCustomProps>, { ...; }, \"onSubmit\", \"submit\", \"submi...'\n---\n(property) onSubmit?: ((event: FormSubmitEvent\u003Cany>) => any) & ((() => void | Promise\u003Cvoid>) | ((event: FormSubmitEvent\u003Cany>) => void | Promise\u003Cvoid>))\n```\n\n### Description\n\n`\u003CUForm>`s `@submit` event handler type require that it does not return any value. This is needlessly constraining.\n\n### Additional context\n\nThis is not required by the implementation, but instead wholly caused by the types of `onSubmit` property:\nhttps://github.com/nuxt/ui/blob/901bf7cac3ea53264b27adf879ee4072fa9ac242/src/runtime/components/Form.vue#L53\n\nResult of the `onSubmit` prop is not used at all:\nhttps://github.com/nuxt/ui/blob/901bf7cac3ea53264b27adf879ee4072fa9ac242/src/runtime/components/Form.vue#L243\n\nReplacing the type of `onSubmit` with this should be enough:\n```typescript\nexport interface FormProps\u003CS extends FormSchema, T extends boolean = true> {\n // ...\n onSubmit?: (event: FormSubmitEvent\u003CFormData\u003CS, T>>) => unknown\n}\n```\nThis should still allow passing event handlers without arguments.\n\n### Logs\n\n```shell-script\n\n```",[3186,3187],{"name":3135,"color":3136},{"name":3138,"color":3139},4873,"`UForm` `onSubmit` type is needlessly constrained","2025-09-02T05:54:14Z","https://github.com/nuxt/ui/issues/4873",0.7182675,{"description":3194,"labels":3195,"number":3204,"owner":3141,"repository":3142,"state":3205,"title":3206,"updated_at":3207,"url":3208,"score":3209},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v22.1.0`\n- Nuxt Version: `3.16.2`\n- CLI Version: `3.24.0`\n- Nitro Version: `2.11.8`\n- Package Manager: `yarn@4.7.0`\n- Builder: `-`\n- User Config: `modules`, `ssr`, `components`, `app`, `css`, `runtimeConfig`, `compatibilityDate`, `nitro`, `vite`, `eslint`\n- Runtime Modules: `@pinia/nuxt@0.10.1`, `pinia-plugin-persistedstate/nuxt@4.2.0`, `@nuxt/ui@3.0.2`, `dayjs-nuxt@2.1.11`, `@nuxt/eslint@1.3.0`\n- Build Modules: `-`\n\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\n3.0.2\n\n### Reproduction\n\nhttps://codesandbox.io/p/sandbox/festive-feather-mzq49q\n\nIn the second select (which is wrapped in a form tag), don't select anything, and click save to submit the form.\n\nIt should show the browser \"this input is required\" tooltip.\n\n### Description\n\nI can't really understand why/how this happens. Sometimes, the `required` prop on a Select component will not prevent the form to be submitted. But sometimes it's working fine.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3196,3197,3198,3199,3202],{"name":3135,"color":3136},{"name":3153,"color":3154},{"name":3138,"color":3139},{"name":3200,"color":3201},"closed-by-bot","ededed",{"name":3203,"color":3201},"stale",3882,"closed","Select required sometimes not working","2025-08-12T02:12:49Z","https://github.com/nuxt/ui/issues/3882",0.6718008,{"description":3211,"labels":3212,"number":3215,"owner":3141,"repository":3142,"state":3205,"title":3216,"updated_at":3217,"url":3218,"score":3219},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v22.14.0\n- Nuxt Version: 3.17.6\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.13\n- Package Manager: pnpm@10.11.0\n- Builder: -\n- User Config: compatibilityDate, future, css, components, modules, runtimeConfig, imports, vite, ssr, ignore\n- Runtime Modules: @nuxt/eslint@1.5.2, @nuxt/image@1.10.0, @vueuse/nuxt@13.5.0, @pinia/nuxt@0.11.1\n- Build Modules: -\n------------------------------\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/nuxt-ui3-n3sxks\n\n### Description\n\nWhen using the UFormField component, passing the `error` prop using the Boolean attribute shorthand syntax does not work as expected.\n\nThis works correctly:\n\n```vue\n\u003CUFormField :label=\"`总额(${rowData?.marginAsset})`\" size=\"lg\" :error=\"true\" />\n```\n\nHowever, this does not work:\n```vue\n\u003CUFormField :label=\"`总额(${rowData?.marginAsset})`\" size=\"lg\" error />\n```\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3213,3214],{"name":3135,"color":3136},{"name":3153,"color":3154},4496,"Boolean attribute not worked on `UFormField`","2025-07-10T10:04:09Z","https://github.com/nuxt/ui/issues/4496",0.7012813,{"description":3221,"labels":3222,"number":3225,"owner":3141,"repository":3142,"state":3205,"title":3226,"updated_at":3227,"url":3228,"score":3229},"### 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```",[3223,3224],{"name":3135,"color":3136},{"name":3153,"color":3154},4935,"UFileUpload with variant button inside form will cause UForm submit","2025-09-09T14:55:29Z","https://github.com/nuxt/ui/issues/4935",0.7035519,{"description":3231,"labels":3232,"number":3235,"owner":3141,"repository":3142,"state":3205,"title":3236,"updated_at":3237,"url":3238,"score":3239},"### Environment\n\n- Operating System: Linux\n- Node Version: v22.14.0\n- Nuxt Version: 3.17.1\n- CLI Version: 3.25.0\n- Nitro Version: 2.11.11\n- Package Manager: npm@10.9.2\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.0, @pinia/nuxt@0.11.0, @vueuse/nuxt@13.1.0, @nuxtjs/i18n@9.5.3, nuxt-security@2.2.0, @nuxt/ui@3.1.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\nhttps://codesandbox.io/p/devbox/epic-smoke-95wysw?file=%2Fapp%2Fpages%2Findex.vue\n\n### Description\n\nUsing the `@update:model-value` event handler produces type errors with the Select component, starting from nuxt-ui v3.1.0 (v3.0.2 works fine).\n\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\nType 'boolean | AcceptableValue | undefined' is not assignable to type '\"yes\" | \"no\"'.\n Type 'undefined' is not assignable to type '\"yes\" | \"no\"'.ts-plugin(2322)\n```",[3233,3234],{"name":3135,"color":3136},{"name":3153,"color":3154},4019,"Type Issue with Select Component","2025-04-29T15:39:56Z","https://github.com/nuxt/ui/issues/4019",0.7042499,{"description":3241,"labels":3242,"number":3246,"owner":3141,"repository":3142,"state":3205,"title":3247,"updated_at":3248,"url":3249,"score":3250},"### Environment\n\n```\n- Operating System: `Linux`\n- Node Version: `v23.11.0`\n- Nuxt Version: `3.17.2`\n- CLI Version: `3.25.0`\n- Nitro Version: `2.11.11`\n- Package Manager: `pnpm@10.10.0`\n- Builder: `-`\n- User Config: `devtools`, `modules`, `css`, `future`, `compatibilityDate`\n- Runtime Modules: `@nuxt/ui@3.1.1`, `@nuxt/eslint@1.3.1`\n- Build Modules: `-`\n```\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\n3.17.2\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/nuxt-ui3-n3sxks\n\nSample code for fiddling:\n```vue\n\u003Ctemplate>\n \u003CUCard>\n \u003CUFormField>\n \u003CUCheckbox v-model=\"isRtl\" label=\"Right to Left\" />\n \u003C/UFormField>\n \n \u003Cdiv class=\"mt-4 space-y-4 space-x-4\">\n \u003CUFormField label=\"Dynamic Direction Select\">\n \u003CUSelect\n v-model=\"selected\"\n :items=\"items\"\n :dir=\"dir\"\n label=\"Dynamic Direction Select\"\n placeholder=\"Select an option\"\n class=\"w-full max-w-2xl\"\n />\n \u003C/UFormField>\n \n \u003CUFormField label=\"Left to Right\">\n \u003CUSelect\n v-model=\"selected2\"\n :items=\"items\"\n dir=\"ltr\"\n label=\"LTR Select\"\n placeholder=\"Select an option\"\n class=\"w-full max-w-2xl\"\n />\n \u003C/UFormField>\n\n \u003CUFormField label=\"Right to Left\">\n \u003CUSelect\n v-model=\"selected3\"\n :items=\"items\"\n dir=\"rtl\"\n label=\"RTL Select\"\n placeholder=\"Select an option\"\n class=\"w-full max-w-2xl\"\n />\n \u003C/UFormField>\n \u003C/div>\n \u003C/UCard>\n\u003C/template>\n\n\u003Cscript setup>\nconst isRtl = ref(false)\nconst selected = ref('')\nconst selected2 = ref('')\nconst selected3 = ref('')\n\nconst items = [\n 'Item 1',\n 'Item 2',\n 'Item 3',\n 'Item 4',\n 'Item 5',\n 'Item 6',\n 'Item 7',\n]\n\nconst dir = computed(() => isRtl.value ? 'rtl' : 'ltr')\n\u003C/script>\n```\n\n### Description\n\nIt seems `USelect` component ignores the `dir` attribute. This make it inconsistence with the rest of UI components. This issue makes the UI look wierd when localized to RTL languages.\nBoth `\u003CUSelect dir=\"rtl\" ...>` and `\u003CUSelect dir=\"ltr\" ...>` component have `dir=\"ltr\"`.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3243,3244,3245],{"name":3135,"color":3136},{"name":3153,"color":3154},{"name":3138,"color":3139},4131,"USelect ignores dir attribute","2025-05-13T14:10:12Z","https://github.com/nuxt/ui/issues/4131",0.70589614,["Reactive",3252],{},["Set"],["ShallowReactive",3255],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fq5Sm3Q7iDHlnzQf5V2SriYV74TjPEimuBRxKaK37Vgo":-1},"/nuxt/ui/4765"]