diff --git a/apps/web/cypress/component/autoform/shadcn-zod/enums.cy.tsx b/apps/web/cypress/component/autoform/shadcn-zod/enums.cy.tsx
new file mode 100644
index 0000000..18c0f53
--- /dev/null
+++ b/apps/web/cypress/component/autoform/shadcn-zod/enums.cy.tsx
@@ -0,0 +1,68 @@
+import React from "react";
+import { AutoForm } from "@autoform/shadcn/components/ui/autoform/AutoForm";
+import { ZodProvider } from "@autoform/zod";
+import { z } from "zod";
+import { TestWrapper } from "./utils";
+
+describe("AutoForm Enums Tests", () => {
+ const arraySchema = z.object({
+ gender: z.enum(["male", "female"]),
+ });
+ const schemaProvider = new ZodProvider(arraySchema);
+
+ const arraySchemaWithDefault = z.object({
+ gender: z.enum(["male", "female"]).default("male"),
+ });
+ const schemaProviderWithDefault = new ZodProvider(arraySchemaWithDefault);
+
+ it("renders enums fields correctly", () => {
+ cy.mount(
+
+
+ ,
+ );
+
+ // Check if select trigger exists
+ cy.get('[role="combobox"]').should("exist");
+
+ // Open the select dropdown
+ cy.get('[role="combobox"]').click();
+
+ // Verify options are rendered correctly
+ cy.get('[role="option"]').should("have.length", 2);
+ cy.get('[role="option"]').eq(0).should("have.text", "male");
+ cy.get('[role="option"]').eq(1).should("have.text", "female");
+
+ // Test form submission with selected value
+ cy.get('[role="option"]').contains("female").click();
+ cy.get("form").submit();
+ cy.get("@onSubmit").should("have.been.calledWith", {
+ gender: "female",
+ });
+ });
+
+ it("handles default values for enums correctly", () => {
+ cy.mount(
+
+
+ ,
+ );
+
+ // Verify default value is selected
+ cy.get('[role="combobox"]').should("contain.text", "male");
+
+ // Submit form without changes to verify default value
+ cy.get("form").submit();
+ cy.get("@onSubmit").should("have.been.calledWith", {
+ gender: "male",
+ });
+ });
+});
diff --git a/package-lock.json b/package-lock.json
index 6c48ff8..9f34c6f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -22,7 +22,7 @@
}
},
"apps/docs": {
- "version": "1.1.0",
+ "version": "2.0.0",
"license": "MIT",
"dependencies": {
"@autoform/core": "*",
@@ -354,7 +354,7 @@
}
},
"apps/web": {
- "version": "1.1.0",
+ "version": "2.0.0",
"dependencies": {
"@autoform/ant": "*",
"@autoform/mantine": "*",
@@ -20878,7 +20878,7 @@
},
"packages/ant": {
"name": "@autoform/ant",
- "version": "0.0.1",
+ "version": "1.0.0",
"dependencies": {
"@ant-design/icons": "^5.5.2",
"@autoform/core": "*",
@@ -21014,7 +21014,7 @@
},
"packages/mantine": {
"name": "@autoform/mantine",
- "version": "2.3.0",
+ "version": "2.3.1",
"dependencies": {
"@autoform/core": "*",
"@autoform/react": "*",
@@ -21255,7 +21255,7 @@
},
"packages/react": {
"name": "@autoform/react",
- "version": "2.2.0",
+ "version": "3.0.0",
"dependencies": {
"@autoform/core": "*",
"@autoform/yup": "*",
diff --git a/packages/shadcn/src/components/ui/autoform/components/SelectField.tsx b/packages/shadcn/src/components/ui/autoform/components/SelectField.tsx
index b89cb34..86a2778 100644
--- a/packages/shadcn/src/components/ui/autoform/components/SelectField.tsx
+++ b/packages/shadcn/src/components/ui/autoform/components/SelectField.tsx
@@ -17,7 +17,19 @@ export const SelectField: React.FC = ({
const { key, ...props } = inputProps;
return (
-