next-anvil 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/bin/templates/resource.js +4 -4
  2. package/dist/components/AnvilForm.d.ts +14 -0
  3. package/dist/components/AnvilForm.d.ts.map +1 -0
  4. package/dist/components/AnvilForm.js +68 -0
  5. package/dist/components/AnvilForm.js.map +1 -0
  6. package/dist/components/fields/DateField.d.ts +15 -0
  7. package/dist/components/fields/DateField.d.ts.map +1 -0
  8. package/dist/components/fields/DateField.js +37 -0
  9. package/dist/components/fields/DateField.js.map +1 -0
  10. package/dist/components/fields/EmailField.d.ts +15 -0
  11. package/dist/components/fields/EmailField.d.ts.map +1 -0
  12. package/dist/components/fields/EmailField.js +14 -0
  13. package/dist/components/fields/EmailField.js.map +1 -0
  14. package/dist/components/fields/FieldWrapper.d.ts +17 -0
  15. package/dist/components/fields/FieldWrapper.d.ts.map +1 -0
  16. package/dist/components/fields/FieldWrapper.js +26 -0
  17. package/dist/components/fields/FieldWrapper.js.map +1 -0
  18. package/dist/components/fields/NumberField.d.ts +15 -0
  19. package/dist/components/fields/NumberField.d.ts.map +1 -0
  20. package/dist/components/fields/NumberField.js +14 -0
  21. package/dist/components/fields/NumberField.js.map +1 -0
  22. package/dist/components/fields/SelectField.d.ts +15 -0
  23. package/dist/components/fields/SelectField.d.ts.map +1 -0
  24. package/dist/components/fields/SelectField.js +19 -0
  25. package/dist/components/fields/SelectField.js.map +1 -0
  26. package/dist/components/fields/TextField.d.ts +15 -0
  27. package/dist/components/fields/TextField.d.ts.map +1 -0
  28. package/dist/components/fields/TextField.js +14 -0
  29. package/dist/components/fields/TextField.js.map +1 -0
  30. package/dist/components/fields/TextareaField.d.ts +15 -0
  31. package/dist/components/fields/TextareaField.d.ts.map +1 -0
  32. package/dist/components/fields/TextareaField.js +14 -0
  33. package/dist/components/fields/TextareaField.js.map +1 -0
  34. package/dist/components/fields/index.d.ts +11 -0
  35. package/dist/components/fields/index.d.ts.map +1 -0
  36. package/dist/components/fields/index.js +21 -0
  37. package/dist/components/fields/index.js.map +1 -0
  38. package/dist/components/index.d.ts +6 -0
  39. package/dist/components/index.d.ts.map +1 -0
  40. package/dist/components/index.js +24 -0
  41. package/dist/components/index.js.map +1 -0
  42. package/dist/lib/fields/date.d.ts +16 -0
  43. package/dist/lib/fields/date.d.ts.map +1 -0
  44. package/dist/lib/fields/date.js +17 -0
  45. package/dist/lib/fields/date.js.map +1 -0
  46. package/dist/lib/fields/email.d.ts +16 -0
  47. package/dist/lib/fields/email.d.ts.map +1 -0
  48. package/dist/lib/fields/email.js +15 -0
  49. package/dist/lib/fields/email.js.map +1 -0
  50. package/dist/lib/fields/hidden.d.ts +9 -0
  51. package/dist/lib/fields/hidden.d.ts.map +1 -0
  52. package/dist/lib/fields/hidden.js +10 -0
  53. package/dist/lib/fields/hidden.js.map +1 -0
  54. package/dist/lib/fields/index.d.ts +8 -0
  55. package/dist/lib/fields/index.d.ts.map +1 -0
  56. package/dist/lib/fields/index.js +24 -0
  57. package/dist/lib/fields/index.js.map +1 -0
  58. package/dist/lib/fields/number.d.ts +17 -0
  59. package/dist/lib/fields/number.d.ts.map +1 -0
  60. package/dist/lib/fields/number.js +16 -0
  61. package/dist/lib/fields/number.js.map +1 -0
  62. package/dist/lib/fields/select.d.ts +20 -0
  63. package/dist/lib/fields/select.d.ts.map +1 -0
  64. package/dist/lib/fields/select.js +15 -0
  65. package/dist/lib/fields/select.js.map +1 -0
  66. package/dist/lib/fields/text.d.ts +19 -0
  67. package/dist/lib/fields/text.d.ts.map +1 -0
  68. package/dist/lib/fields/text.js +17 -0
  69. package/dist/lib/fields/text.js.map +1 -0
  70. package/dist/lib/fields/textarea.d.ts +19 -0
  71. package/dist/lib/fields/textarea.d.ts.map +1 -0
  72. package/dist/lib/fields/textarea.js +17 -0
  73. package/dist/lib/fields/textarea.js.map +1 -0
  74. package/dist/lib/fields/types.d.ts +42 -0
  75. package/dist/lib/fields/types.d.ts.map +1 -0
  76. package/dist/lib/fields/types.js +3 -0
  77. package/dist/lib/fields/types.js.map +1 -0
  78. package/dist/lib/form.d.ts +7 -0
  79. package/dist/lib/form.d.ts.map +1 -0
  80. package/dist/lib/form.js +7 -0
  81. package/dist/lib/form.js.map +1 -0
  82. package/dist/lib/resource.d.ts +21 -0
  83. package/dist/lib/resource.d.ts.map +1 -0
  84. package/dist/lib/resource.js +28 -0
  85. package/dist/lib/resource.js.map +1 -0
  86. package/dist/lib/table.d.ts +11 -0
  87. package/dist/lib/table.d.ts.map +1 -0
  88. package/dist/lib/table.js +7 -0
  89. package/dist/lib/table.js.map +1 -0
  90. package/dist/styles.css +402 -0
  91. package/package.json +19 -3
@@ -5,7 +5,7 @@ exports.formTemplate = formTemplate;
5
5
  exports.tableTemplate = tableTemplate;
6
6
  function indexTemplate(singular) {
7
7
  return `
8
- import { defineResource } from "@/lib/anvil/resource";
8
+ import { defineResource } from "next-anvil/resource";
9
9
  import form from "./form";
10
10
  import table from "./table";
11
11
 
@@ -18,8 +18,8 @@ export default defineResource({
18
18
  }
19
19
  function formTemplate(singular) {
20
20
  return `
21
- import { defineFormSchema } from "@/lib/anvil/form";
22
- import { text } from "@/lib/anvil/fields";
21
+ import { defineFormSchema } from "next-anvil/form";
22
+ import { text } from "next-anvil/fields";
23
23
 
24
24
  export default defineFormSchema({
25
25
  fields: {
@@ -34,7 +34,7 @@ export default defineFormSchema({
34
34
  }
35
35
  function tableTemplate() {
36
36
  return `
37
- import { defineTableSchema } from "@/lib/anvil/table";
37
+ import { defineTableSchema } from "next-anvil/table";
38
38
 
39
39
  export default defineTableSchema({
40
40
  columns: [
@@ -0,0 +1,14 @@
1
+ import { FormSchema } from "@/lib/form";
2
+ interface AnvilFormProps {
3
+ schema: FormSchema;
4
+ initialData?: Record<string, any>;
5
+ onSubmit: (data: Record<string, any>) => Promise<void>;
6
+ onCancel?: () => void;
7
+ submitting?: boolean;
8
+ errors?: Record<string, string>;
9
+ submitLabel?: string;
10
+ cancelLabel?: string;
11
+ }
12
+ export declare function AnvilForm({ schema, initialData, onSubmit, onCancel, submitting: externalSubmitting, errors: externalErrors, submitLabel, cancelLabel, }: AnvilFormProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=AnvilForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnvilForm.d.ts","sourceRoot":"","sources":["../../src/components/AnvilForm.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAUxC,UAAU,cAAc;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,WAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,cAAmB,EAC3B,WAAoB,EACpB,WAAsB,GACvB,EAAE,cAAc,2CAmJhB"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AnvilForm = AnvilForm;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_1 = require("react");
7
+ const fields_1 = require("./fields");
8
+ function AnvilForm({ schema, initialData = {}, onSubmit, onCancel, submitting: externalSubmitting, errors: externalErrors = {}, submitLabel = "Save", cancelLabel = "Cancel", }) {
9
+ const [formData, setFormData] = (0, react_1.useState)(initialData);
10
+ const [internalSubmitting, setInternalSubmitting] = (0, react_1.useState)(false);
11
+ const [internalErrors, setInternalErrors] = (0, react_1.useState)({});
12
+ const submitting = externalSubmitting ?? internalSubmitting;
13
+ const errors = { ...internalErrors, ...externalErrors };
14
+ async function handleSubmit(e) {
15
+ e.preventDefault();
16
+ setInternalSubmitting(true);
17
+ setInternalErrors({});
18
+ try {
19
+ await onSubmit(formData);
20
+ }
21
+ catch (error) {
22
+ const errorMap = {};
23
+ if (error.field) {
24
+ errorMap[error.field] = error.message;
25
+ }
26
+ else {
27
+ errorMap._general = error.message || "An error occurred";
28
+ }
29
+ setInternalErrors(errorMap);
30
+ }
31
+ finally {
32
+ setInternalSubmitting(false);
33
+ }
34
+ }
35
+ function renderField(fieldName, fieldSchema, value) {
36
+ // Skip hidden fields in form rendering
37
+ if (fieldSchema.type === "hidden") {
38
+ return null;
39
+ }
40
+ const fieldError = errors[fieldName];
41
+ const isDisabled = submitting || fieldSchema.readOnly;
42
+ const commonProps = {
43
+ fieldName,
44
+ fieldSchema: fieldSchema,
45
+ value,
46
+ error: fieldError,
47
+ disabled: isDisabled,
48
+ };
49
+ switch (fieldSchema.type) {
50
+ case "text":
51
+ return ((0, jsx_runtime_1.jsx)(fields_1.TextField, { ...commonProps, onChange: (val) => setFormData({ ...formData, [fieldName]: val }) }, fieldName));
52
+ case "email":
53
+ return ((0, jsx_runtime_1.jsx)(fields_1.EmailField, { ...commonProps, onChange: (val) => setFormData({ ...formData, [fieldName]: val }) }, fieldName));
54
+ case "select":
55
+ return ((0, jsx_runtime_1.jsx)(fields_1.SelectField, { ...commonProps, onChange: (val) => setFormData({ ...formData, [fieldName]: val }) }, fieldName));
56
+ case "date":
57
+ return ((0, jsx_runtime_1.jsx)(fields_1.DateField, { ...commonProps, onChange: (val) => setFormData({ ...formData, [fieldName]: val }) }, fieldName));
58
+ case "number":
59
+ return ((0, jsx_runtime_1.jsx)(fields_1.NumberField, { ...commonProps, onChange: (val) => setFormData({ ...formData, [fieldName]: val }) }, fieldName));
60
+ case "textarea":
61
+ return ((0, jsx_runtime_1.jsx)(fields_1.TextareaField, { ...commonProps, onChange: (val) => setFormData({ ...formData, [fieldName]: val }) }, fieldName));
62
+ default:
63
+ return null;
64
+ }
65
+ }
66
+ return ((0, jsx_runtime_1.jsxs)("form", { onSubmit: handleSubmit, className: "bg-white shadow rounded-lg p-6", children: [errors._general && ((0, jsx_runtime_1.jsxs)("div", { className: "mb-6 p-4 bg-red-50 border border-red-200 rounded-md text-red-700", children: [(0, jsx_runtime_1.jsx)("p", { className: "font-medium", children: "Error" }), (0, jsx_runtime_1.jsx)("p", { className: "text-sm mt-1", children: errors._general })] })), (0, jsx_runtime_1.jsx)("div", { className: "grid grid-cols-4 gap-6", children: Object.entries(schema.fields || {}).map(([fieldName, fieldSchema]) => renderField(fieldName, fieldSchema, formData[fieldName])) }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-8 flex gap-3 border-t border-gray-200 pt-6", children: [(0, jsx_runtime_1.jsx)("button", { type: "submit", disabled: submitting, className: "px-4 py-2 bg-blue-600 text-white text-sm font-medium rounded-md hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors", children: submitting ? "Saving..." : submitLabel }), onCancel && ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: onCancel, disabled: submitting, className: "px-4 py-2 bg-gray-200 text-gray-700 text-sm font-medium rounded-md hover:bg-gray-300 disabled:opacity-50 transition-colors", children: cancelLabel }))] })] }));
67
+ }
68
+ //# sourceMappingURL=AnvilForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnvilForm.js","sourceRoot":"","sources":["../../src/components/AnvilForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * DateField - Date input field component
3
+ */
4
+ import { DateFieldSchema } from "@/lib/fields";
5
+ interface DateFieldProps {
6
+ fieldName: string;
7
+ fieldSchema: DateFieldSchema;
8
+ value: any;
9
+ error?: string;
10
+ disabled?: boolean;
11
+ onChange: (value: string) => void;
12
+ }
13
+ export declare function DateField({ fieldName, fieldSchema, value, error, disabled, onChange, }: DateFieldProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=DateField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/DateField.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,cAAc,2CA+ChB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DateField = DateField;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * DateField - Date input field component
7
+ */
8
+ const FieldWrapper_1 = require("./FieldWrapper");
9
+ function DateField({ fieldName, fieldSchema, value, error, disabled, onChange, }) {
10
+ const fieldId = `field-${fieldName}`;
11
+ const displayLabel = fieldSchema.label;
12
+ // Convert date value to YYYY-MM-DD format for input
13
+ const dateValue = (() => {
14
+ if (!value)
15
+ return "";
16
+ if (value instanceof Date) {
17
+ return value.toISOString().split("T")[0];
18
+ }
19
+ // If it's already in YYYY-MM-DD format, return as is
20
+ if (typeof value === "string" && /^\d{4}-\d{2}-\d{2}$/.test(value)) {
21
+ return value;
22
+ }
23
+ // Try to parse and convert
24
+ try {
25
+ const date = new Date(value);
26
+ if (!isNaN(date.getTime())) {
27
+ return date.toISOString().split("T")[0];
28
+ }
29
+ }
30
+ catch {
31
+ // Invalid date, return empty
32
+ }
33
+ return "";
34
+ })();
35
+ return ((0, jsx_runtime_1.jsx)(FieldWrapper_1.FieldWrapper, { fieldId: fieldId, label: displayLabel, required: fieldSchema.required, error: error, size: fieldSchema.size, children: (0, jsx_runtime_1.jsx)("input", { type: "date", id: fieldId, name: fieldName, value: dateValue, onChange: (e) => onChange(e.target.value), disabled: disabled || fieldSchema.readOnly, className: `w-full px-3 py-2 border text-black rounded-md shadow-sm focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 ${error ? "border-red-500" : "border-gray-300"} ${fieldSchema.readOnly ? "bg-gray-100" : ""}` }) }));
36
+ }
37
+ //# sourceMappingURL=DateField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateField.js","sourceRoot":"","sources":["../../../src/components/fields/DateField.tsx"],"names":[],"mappings":";;AAgBA,8BAsDC;;AAtED;;GAEG;AAEH,iDAA8C;AAY9C,SAAgB,SAAS,CAAC,EACxB,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACO;IACf,MAAM,OAAO,GAAG,SAAS,SAAS,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC;IAEvC,oDAAoD;IACpD,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE;QACtB,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,qDAAqD;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,2BAA2B;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,CACL,uBAAC,2BAAY,IACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,WAAW,CAAC,IAAI,YAEtB,kCACE,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,QAAQ,EAAE,QAAQ,IAAI,WAAW,CAAC,QAAQ,EAC1C,SAAS,EAAE,qIACT,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAC7B,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,GAC/C,GACW,CAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * EmailField - Email input field component
3
+ */
4
+ import { EmailFieldSchema } from "@/lib/fields";
5
+ interface EmailFieldProps {
6
+ fieldName: string;
7
+ fieldSchema: EmailFieldSchema;
8
+ value: any;
9
+ error?: string;
10
+ disabled?: boolean;
11
+ onChange: (value: string) => void;
12
+ }
13
+ export declare function EmailField({ fieldName, fieldSchema, value, error, disabled, onChange, }: EmailFieldProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=EmailField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/EmailField.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,eAAe,2CA0BjB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmailField = EmailField;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * EmailField - Email input field component
7
+ */
8
+ const FieldWrapper_1 = require("./FieldWrapper");
9
+ function EmailField({ fieldName, fieldSchema, value, error, disabled, onChange, }) {
10
+ const fieldId = `field-${fieldName}`;
11
+ const displayLabel = fieldSchema.label || fieldName;
12
+ return ((0, jsx_runtime_1.jsx)(FieldWrapper_1.FieldWrapper, { fieldId: fieldId, label: displayLabel, required: fieldSchema.required, error: error, size: fieldSchema.size, children: (0, jsx_runtime_1.jsx)("input", { type: "email", id: fieldId, name: fieldName, value: value || "", onChange: (e) => onChange(e.target.value), disabled: disabled || fieldSchema.readOnly, placeholder: fieldSchema.placeholder, className: `w-full px-3 py-2 border text-black rounded-md shadow-sm focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 ${error ? "border-red-500" : "border-gray-300"} ${fieldSchema.readOnly ? "bg-gray-100" : ""}` }) }));
13
+ }
14
+ //# sourceMappingURL=EmailField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailField.js","sourceRoot":"","sources":["../../../src/components/fields/EmailField.tsx"],"names":[],"mappings":";;AAgBA,gCAiCC;;AAjDD;;GAEG;AAEH,iDAA8C;AAY9C,SAAgB,UAAU,CAAC,EACzB,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACQ;IAChB,MAAM,OAAO,GAAG,SAAS,SAAS,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC;IAEpD,OAAO,CACL,uBAAC,2BAAY,IACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,WAAW,CAAC,IAAI,YAEtB,kCACE,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,QAAQ,EAAE,QAAQ,IAAI,WAAW,CAAC,QAAQ,EAC1C,WAAW,EAAE,WAAW,CAAC,WAAW,EACpC,SAAS,EAAE,qIACT,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAC7B,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,GAC/C,GACW,CAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * FieldWrapper - Base component for form fields
3
+ * Provides consistent label, error display, and styling
4
+ */
5
+ import type { ReactNode } from "react";
6
+ import { FieldSize } from "@/lib/fields/types";
7
+ interface FieldWrapperProps {
8
+ fieldId: string;
9
+ label?: string;
10
+ required?: boolean;
11
+ error?: string;
12
+ size?: FieldSize;
13
+ children: ReactNode;
14
+ }
15
+ export declare function FieldWrapper({ fieldId, label, required, error, size, children, }: FieldWrapperProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=FieldWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/fields/FieldWrapper.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAoBD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,QAAQ,GACT,EAAE,iBAAiB,2CAkBnB"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldWrapper = FieldWrapper;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * Get grid column span class based on size
7
+ * Uses a 60-column grid system for precise widths:
8
+ * - large = 100% (60/60)
9
+ * - medium = 50% (30/60)
10
+ * - small = 33.33% (20/60)
11
+ * - tiny = 25% (15/60)
12
+ */
13
+ function getSizeClass(size) {
14
+ const sizeMap = {
15
+ large: "col-span-4 md:col-span-4", // 100% (60/60)
16
+ medium: "col-span-4 md:col-span-3", // 50% (30/60)
17
+ small: "col-span-4 md:col-span-2", // 33.33% (20/60)
18
+ tiny: "col-span-4 md:col-span-1", // 25% (15/60)
19
+ };
20
+ return size ? sizeMap[size] : "col-span-4"; // Default to full width
21
+ }
22
+ function FieldWrapper({ fieldId, label, required, error, size, children, }) {
23
+ const sizeClass = getSizeClass(size);
24
+ return ((0, jsx_runtime_1.jsxs)("div", { className: sizeClass, children: [label && ((0, jsx_runtime_1.jsxs)("label", { htmlFor: fieldId, className: "block text-sm font-medium text-gray-700 mb-1", children: [label, required && (0, jsx_runtime_1.jsx)("span", { className: "text-red-500 ml-1", children: "*" })] })), children, error && (0, jsx_runtime_1.jsx)("p", { className: "mt-1 text-sm text-red-600", children: error })] }));
25
+ }
26
+ //# sourceMappingURL=FieldWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldWrapper.js","sourceRoot":"","sources":["../../../src/components/fields/FieldWrapper.tsx"],"names":[],"mappings":";;AAmCA,oCAyBC;;AA3CD;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,IAAgB;IACpC,MAAM,OAAO,GAA8B;QACzC,KAAK,EAAE,0BAA0B,EAAE,eAAe;QAClD,MAAM,EAAE,0BAA0B,EAAE,cAAc;QAClD,KAAK,EAAE,0BAA0B,EAAE,iBAAiB;QACpD,IAAI,EAAE,0BAA0B,EAAE,cAAc;KACjD,CAAC;IACF,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,wBAAwB;AACtE,CAAC;AAED,SAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,QAAQ,GACU;IAClB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAErC,OAAO,CACL,iCAAK,SAAS,EAAE,SAAS,aACtB,KAAK,IAAI,CACR,mCACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,8CAA8C,aAEvD,KAAK,EACL,QAAQ,IAAI,iCAAM,SAAS,EAAC,mBAAmB,kBAAS,IACnD,CACT,EACA,QAAQ,EACR,KAAK,IAAI,8BAAG,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAK,IAC1D,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * NumberField - Number input field component
3
+ */
4
+ import { NumberFieldSchema } from "@/lib/fields";
5
+ interface NumberFieldProps {
6
+ fieldName: string;
7
+ fieldSchema: NumberFieldSchema;
8
+ value: any;
9
+ error?: string;
10
+ disabled?: boolean;
11
+ onChange: (value: number | null) => void;
12
+ }
13
+ export declare function NumberField({ fieldName, fieldSchema, value, error, disabled, onChange, }: NumberFieldProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=NumberField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/NumberField.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC1C;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,gBAAgB,2CA8BlB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NumberField = NumberField;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * NumberField - Number input field component
7
+ */
8
+ const FieldWrapper_1 = require("./FieldWrapper");
9
+ function NumberField({ fieldName, fieldSchema, value, error, disabled, onChange, }) {
10
+ const fieldId = `field-${fieldName}`;
11
+ const displayLabel = fieldSchema.label || fieldName;
12
+ return ((0, jsx_runtime_1.jsx)(FieldWrapper_1.FieldWrapper, { fieldId: fieldId, label: displayLabel, required: fieldSchema.required, error: error, size: fieldSchema.size, children: (0, jsx_runtime_1.jsx)("input", { type: "number", id: fieldId, name: fieldName, value: value || "", onChange: (e) => onChange(e.target.value ? Number(e.target.value) : null), disabled: disabled || fieldSchema.readOnly, min: fieldSchema.min, max: fieldSchema.max, placeholder: fieldSchema.placeholder, className: `w-full px-3 py-2 text-black border rounded-md shadow-sm focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 ${error ? "border-red-500" : "border-gray-300"} ${fieldSchema.readOnly ? "bg-gray-100" : ""}` }) }));
13
+ }
14
+ //# sourceMappingURL=NumberField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberField.js","sourceRoot":"","sources":["../../../src/components/fields/NumberField.tsx"],"names":[],"mappings":";;AAgBA,kCAqCC;;AArDD;;GAEG;AAEH,iDAA8C;AAY9C,SAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACS;IACjB,MAAM,OAAO,GAAG,SAAS,SAAS,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC;IAEpD,OAAO,CACL,uBAAC,2BAAY,IACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,WAAW,CAAC,IAAI,YAEtB,kCACE,IAAI,EAAC,QAAQ,EACb,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAE1D,QAAQ,EAAE,QAAQ,IAAI,WAAW,CAAC,QAAQ,EAC1C,GAAG,EAAE,WAAW,CAAC,GAAG,EACpB,GAAG,EAAE,WAAW,CAAC,GAAG,EACpB,WAAW,EAAE,WAAW,CAAC,WAAW,EACpC,SAAS,EAAE,sIACT,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAC7B,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,GAC/C,GACW,CAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * SelectField - Select dropdown field component
3
+ */
4
+ import { SelectFieldSchema } from "@/lib/fields";
5
+ interface SelectFieldProps {
6
+ fieldName: string;
7
+ fieldSchema: SelectFieldSchema;
8
+ value: any;
9
+ error?: string;
10
+ disabled?: boolean;
11
+ onChange: (value: string) => void;
12
+ }
13
+ export declare function SelectField({ fieldName, fieldSchema, value, error, disabled, onChange, }: SelectFieldProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=SelectField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/SelectField.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,gBAAgB,2CAqClB"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelectField = SelectField;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * SelectField - Select dropdown field component
7
+ */
8
+ const FieldWrapper_1 = require("./FieldWrapper");
9
+ function SelectField({ fieldName, fieldSchema, value, error, disabled, onChange, }) {
10
+ const fieldId = `field-${fieldName}`;
11
+ const displayLabel = fieldSchema.label || fieldName;
12
+ return ((0, jsx_runtime_1.jsx)(FieldWrapper_1.FieldWrapper, { fieldId: fieldId, label: displayLabel, required: fieldSchema.required, error: error, size: fieldSchema.size, children: (0, jsx_runtime_1.jsxs)("select", { id: fieldId, name: fieldName, value: value || "", onChange: (e) => onChange(e.target.value), disabled: disabled || fieldSchema.readOnly, className: `w-full px-3 py-2 border text-black rounded-md shadow-sm focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 ${error ? "border-red-500" : "border-gray-300"} ${fieldSchema.readOnly ? "bg-gray-100" : ""}`, children: [(0, jsx_runtime_1.jsxs)("option", { value: "", children: ["Select ", displayLabel] }), fieldSchema.options.map((option) => {
13
+ const optionObject = typeof option === "string"
14
+ ? { label: option, value: option }
15
+ : option;
16
+ return ((0, jsx_runtime_1.jsx)("option", { value: optionObject.value, children: optionObject.label }, optionObject.value));
17
+ })] }) }));
18
+ }
19
+ //# sourceMappingURL=SelectField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectField.js","sourceRoot":"","sources":["../../../src/components/fields/SelectField.tsx"],"names":[],"mappings":";;AAgBA,kCA4CC;;AA5DD;;GAEG;AAEH,iDAA8C;AAY9C,SAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACS;IACjB,MAAM,OAAO,GAAG,SAAS,SAAS,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC;IAEpD,OAAO,CACL,uBAAC,2BAAY,IACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,WAAW,CAAC,IAAI,YAEtB,oCACE,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,QAAQ,EAAE,QAAQ,IAAI,WAAW,CAAC,QAAQ,EAC1C,SAAS,EAAE,qIACT,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAC7B,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,aAE/C,oCAAQ,KAAK,EAAC,EAAE,wBAAS,YAAY,IAAU,EAC9C,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oBAClC,MAAM,YAAY,GAChB,OAAO,MAAM,KAAK,QAAQ;wBACxB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAClC,CAAC,CAAC,MAAM,CAAC;oBACb,OAAO,CACL,mCAAiC,KAAK,EAAE,YAAY,CAAC,KAAK,YACvD,YAAY,CAAC,KAAK,IADR,YAAY,CAAC,KAAK,CAEtB,CACV,CAAC;gBACJ,CAAC,CAAC,IACK,GACI,CAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * TextField - Text input field component
3
+ */
4
+ import { TextFieldSchema } from "@/lib/fields";
5
+ interface TextFieldProps {
6
+ fieldName: string;
7
+ fieldSchema: TextFieldSchema;
8
+ value: any;
9
+ error?: string;
10
+ disabled?: boolean;
11
+ onChange: (value: string) => void;
12
+ }
13
+ export declare function TextField({ fieldName, fieldSchema, value, error, disabled, onChange, }: TextFieldProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=TextField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/TextField.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,cAAc,2CA4BhB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextField = TextField;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * TextField - Text input field component
7
+ */
8
+ const FieldWrapper_1 = require("./FieldWrapper");
9
+ function TextField({ fieldName, fieldSchema, value, error, disabled, onChange, }) {
10
+ const fieldId = `field-${fieldName}`;
11
+ const displayLabel = fieldSchema.label || fieldName;
12
+ return ((0, jsx_runtime_1.jsx)(FieldWrapper_1.FieldWrapper, { fieldId: fieldId, label: displayLabel, required: fieldSchema.required, error: error, size: fieldSchema.size, children: (0, jsx_runtime_1.jsx)("input", { type: "text", id: fieldId, name: fieldName, value: value || "", onChange: (e) => onChange(e.target.value), disabled: disabled || fieldSchema.readOnly, placeholder: fieldSchema.placeholder, minLength: fieldSchema.minLength, maxLength: fieldSchema.maxLength, className: `w-full px-3 py-2 border text-black rounded-md shadow-sm focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 ${error ? "border-red-500" : "border-gray-300"} ${fieldSchema.readOnly ? "bg-gray-100" : ""}` }) }));
13
+ }
14
+ //# sourceMappingURL=TextField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../../src/components/fields/TextField.tsx"],"names":[],"mappings":";;AAgBA,8BAmCC;;AAnDD;;GAEG;AAEH,iDAA8C;AAY9C,SAAgB,SAAS,CAAC,EACxB,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACO;IACf,MAAM,OAAO,GAAG,SAAS,SAAS,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC;IAEpD,OAAO,CACL,uBAAC,2BAAY,IACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,WAAW,CAAC,IAAI,YAEtB,kCACE,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,QAAQ,EAAE,QAAQ,IAAI,WAAW,CAAC,QAAQ,EAC1C,WAAW,EAAE,WAAW,CAAC,WAAW,EACpC,SAAS,EAAE,WAAW,CAAC,SAAS,EAChC,SAAS,EAAE,WAAW,CAAC,SAAS,EAChC,SAAS,EAAE,qIACT,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAC7B,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,GAC/C,GACW,CAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * TextareaField - Textarea field component
3
+ */
4
+ import { TextareaFieldSchema } from "@/lib/fields";
5
+ interface TextareaFieldProps {
6
+ fieldName: string;
7
+ fieldSchema: TextareaFieldSchema;
8
+ value: any;
9
+ error?: string;
10
+ disabled?: boolean;
11
+ onChange: (value: string) => void;
12
+ }
13
+ export declare function TextareaField({ fieldName, fieldSchema, value, error, disabled, onChange, }: TextareaFieldProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=TextareaField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextareaField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/TextareaField.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,UAAU,kBAAkB;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,mBAAmB,CAAC;IACjC,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,2CA0BpB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextareaField = TextareaField;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * TextareaField - Textarea field component
7
+ */
8
+ const FieldWrapper_1 = require("./FieldWrapper");
9
+ function TextareaField({ fieldName, fieldSchema, value, error, disabled, onChange, }) {
10
+ const fieldId = `field-${fieldName}`;
11
+ const displayLabel = fieldSchema.label || fieldName;
12
+ return ((0, jsx_runtime_1.jsx)(FieldWrapper_1.FieldWrapper, { fieldId: fieldId, label: displayLabel, required: fieldSchema.required, error: error, size: fieldSchema.size, children: (0, jsx_runtime_1.jsx)("textarea", { id: fieldId, name: fieldName, value: value || "", onChange: (e) => onChange(e.target.value), disabled: disabled || fieldSchema.readOnly, rows: fieldSchema.rows || 4, placeholder: fieldSchema.placeholder, className: `w-full px-3 py-2 border text-black rounded-md shadow-sm focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 ${error ? "border-red-500" : "border-gray-300"} ${fieldSchema.readOnly ? "bg-gray-100" : ""}` }) }));
13
+ }
14
+ //# sourceMappingURL=TextareaField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextareaField.js","sourceRoot":"","sources":["../../../src/components/fields/TextareaField.tsx"],"names":[],"mappings":";;AAgBA,sCAiCC;;AAjDD;;GAEG;AAEH,iDAA8C;AAY9C,SAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACW;IACnB,MAAM,OAAO,GAAG,SAAS,SAAS,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC;IAEpD,OAAO,CACL,uBAAC,2BAAY,IACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,WAAW,CAAC,IAAI,YAEtB,qCACE,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,QAAQ,EAAE,QAAQ,IAAI,WAAW,CAAC,QAAQ,EAC1C,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,EAC3B,WAAW,EAAE,WAAW,CAAC,WAAW,EACpC,SAAS,EAAE,qIACT,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAC7B,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,GAC/C,GACW,CAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Form field components barrel export
3
+ */
4
+ export { FieldWrapper } from "./FieldWrapper";
5
+ export { TextField } from "./TextField";
6
+ export { EmailField } from "./EmailField";
7
+ export { SelectField } from "./SelectField";
8
+ export { DateField } from "./DateField";
9
+ export { NumberField } from "./NumberField";
10
+ export { TextareaField } from "./TextareaField";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/fields/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Form field components barrel export
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TextareaField = exports.NumberField = exports.DateField = exports.SelectField = exports.EmailField = exports.TextField = exports.FieldWrapper = void 0;
7
+ var FieldWrapper_1 = require("./FieldWrapper");
8
+ Object.defineProperty(exports, "FieldWrapper", { enumerable: true, get: function () { return FieldWrapper_1.FieldWrapper; } });
9
+ var TextField_1 = require("./TextField");
10
+ Object.defineProperty(exports, "TextField", { enumerable: true, get: function () { return TextField_1.TextField; } });
11
+ var EmailField_1 = require("./EmailField");
12
+ Object.defineProperty(exports, "EmailField", { enumerable: true, get: function () { return EmailField_1.EmailField; } });
13
+ var SelectField_1 = require("./SelectField");
14
+ Object.defineProperty(exports, "SelectField", { enumerable: true, get: function () { return SelectField_1.SelectField; } });
15
+ var DateField_1 = require("./DateField");
16
+ Object.defineProperty(exports, "DateField", { enumerable: true, get: function () { return DateField_1.DateField; } });
17
+ var NumberField_1 = require("./NumberField");
18
+ Object.defineProperty(exports, "NumberField", { enumerable: true, get: function () { return NumberField_1.NumberField; } });
19
+ var TextareaField_1 = require("./TextareaField");
20
+ Object.defineProperty(exports, "TextareaField", { enumerable: true, get: function () { return TextareaField_1.TextareaField; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/fields/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Anvil Components - Main export file
3
+ */
4
+ export { AnvilForm } from "./AnvilForm";
5
+ export * from "./fields";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,cAAc,UAAU,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Anvil Components - Main export file
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.AnvilForm = void 0;
21
+ var AnvilForm_1 = require("./AnvilForm");
22
+ Object.defineProperty(exports, "AnvilForm", { enumerable: true, get: function () { return AnvilForm_1.AnvilForm; } });
23
+ __exportStar(require("./fields"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,2CAAyB"}
@@ -0,0 +1,16 @@
1
+ import { BaseFieldOptions } from "./types";
2
+ export interface DateFieldOptions extends BaseFieldOptions {
3
+ minDate?: Date;
4
+ maxDate?: Date;
5
+ }
6
+ export interface DateFieldSchema {
7
+ type: "date";
8
+ label: string;
9
+ required: boolean;
10
+ readOnly: boolean;
11
+ minDate: Date;
12
+ maxDate: Date;
13
+ size: DateFieldOptions["size"];
14
+ }
15
+ export declare function date(options: DateFieldOptions): DateFieldSchema;
16
+ //# sourceMappingURL=date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../src/lib/fields/date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACtD,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAY7D"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.date = date;
4
+ function date(options) {
5
+ const minDate = options.minDate ? options.minDate : new Date(1900, 0, 1);
6
+ const maxDate = options.maxDate ? options.maxDate : new Date(2100, 0, 1);
7
+ return {
8
+ type: "date",
9
+ label: options.label,
10
+ required: options?.required ?? false,
11
+ readOnly: options?.readOnly ?? false,
12
+ size: options?.size ?? "medium",
13
+ minDate: minDate,
14
+ maxDate: maxDate,
15
+ };
16
+ }
17
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/lib/fields/date.ts"],"names":[],"mappings":";;AAiBA,oBAYG;AAZH,SAAgB,IAAI,CAAC,OAAyB;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK;QACpC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK;QACpC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,QAAQ;QAC/B,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { BaseFieldOptions } from "./types";
2
+ export interface EmailFieldOptions extends BaseFieldOptions {
3
+ type: "email";
4
+ unique?: boolean;
5
+ }
6
+ export interface EmailFieldSchema {
7
+ type: "email";
8
+ label: string;
9
+ required: boolean;
10
+ readOnly: boolean;
11
+ unique: boolean;
12
+ placeholder: string;
13
+ size: EmailFieldOptions["size"];
14
+ }
15
+ export declare function email(options: EmailFieldOptions): EmailFieldSchema;
16
+ //# sourceMappingURL=email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/lib/fields/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;CACjC;AAEH,wBAAgB,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAUhE"}