diff --git a/apps/web-vue/src/components/ui/button.vue b/apps/web-vue/src/components/ui/button.vue index 6b650a9..9ea3d57 100644 --- a/apps/web-vue/src/components/ui/button.vue +++ b/apps/web-vue/src/components/ui/button.vue @@ -44,6 +44,11 @@ export function Button(props: ButtonProps, { attrs, slots }: any): VNode { return h( Primitive, { + // Primitive defaults to
, which cannot submit forms or receive disabled. + // asChild=true swaps the element for the slot child; plain type="button" keeps + // in-form buttons from implicitly submitting. + as: 'button', + type: 'button', ...attrs, 'data-slot': 'button', 'data-variant': variant ?? 'default',