You currently are on a {plan} plan
No submissions on this form yet!
; 34 | console.log('form', form); 35 | return ( 36 |{formCount} out of {MAX_FREE_FROMS} forms generated.
30 |
31 |
14 | Generate, publish and share your form right away with AI. Dive into insightful results, charts and analytics. 15 |
16 |1. Add a prompt and describe the requirements for your form.
36 |2. Generate the form.
51 |3. Check results, analytics and more.
61 || 73 | {header.isPlaceholder 74 | ? null 75 | : flexRender( 76 | header.column.columnDef.header, 77 | header.getContext() 78 | )} 79 | | 80 | ))} 81 |
|---|
| 89 | {flexRender(cell.column.columnDef.cell, cell.getContext())} 90 | | 91 | ))} 92 |
161 | {body} 162 |
163 | ) 164 | }) 165 | FormMessage.displayName = "FormMessage" 166 | 167 | export { 168 | useFormField, 169 | Form, 170 | FormItem, 171 | FormLabel, 172 | FormControl, 173 | FormDescription, 174 | FormMessage, 175 | FormField, 176 | } 177 | -------------------------------------------------------------------------------- /src/db/schema.ts: -------------------------------------------------------------------------------- 1 | import { 2 | timestamp, 3 | pgTable, 4 | text, 5 | primaryKey, 6 | integer, 7 | serial, 8 | boolean, 9 | pgEnum, 10 | } from "drizzle-orm/pg-core"; 11 | import type { AdapterAccount } from "@auth/core/adapters"; 12 | import { relations } from "drizzle-orm"; 13 | 14 | export const formElements = pgEnum("field_type", [ 15 | "RadioGroup", 16 | "Select", 17 | "Input", 18 | "Textarea", 19 | "Switch", 20 | ]); 21 | 22 | export const users = pgTable("user", { 23 | id: text("id").notNull().primaryKey(), 24 | name: text("name"), 25 | email: text("email").notNull(), 26 | emailVerified: timestamp( 27 | "emailVerified", 28 | { mode: "date" } 29 | ), 30 | image: text("image"), 31 | stripeCustomerId: text( 32 | "stripe_customer_id" 33 | ), 34 | subscribed: boolean("subscribed"), 35 | }); 36 | 37 | export const accounts = pgTable( 38 | "account", 39 | { 40 | userId: text("userId") 41 | .notNull() 42 | .references(() => users.id, { onDelete: "cascade" }), 43 | type: text("type").$type