next-anvil 0.1.0 → 0.2.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 (66) hide show
  1. package/dist/bin/templates/resource.js +4 -4
  2. package/dist/src/actions.d.ts +44 -0
  3. package/dist/src/actions.d.ts.map +1 -0
  4. package/dist/src/actions.js +328 -0
  5. package/dist/src/actions.js.map +1 -0
  6. package/dist/src/fields/date.d.ts +16 -0
  7. package/dist/src/fields/date.d.ts.map +1 -0
  8. package/dist/src/fields/date.js +17 -0
  9. package/dist/src/fields/date.js.map +1 -0
  10. package/dist/src/fields/email.d.ts +16 -0
  11. package/dist/src/fields/email.d.ts.map +1 -0
  12. package/dist/src/fields/email.js +15 -0
  13. package/dist/src/fields/email.js.map +1 -0
  14. package/dist/src/fields/hidden.d.ts +9 -0
  15. package/dist/src/fields/hidden.d.ts.map +1 -0
  16. package/dist/src/fields/hidden.js +10 -0
  17. package/dist/src/fields/hidden.js.map +1 -0
  18. package/dist/src/fields/index.d.ts +8 -0
  19. package/dist/src/fields/index.d.ts.map +1 -0
  20. package/dist/src/fields/index.js +24 -0
  21. package/dist/src/fields/index.js.map +1 -0
  22. package/dist/src/fields/number.d.ts +17 -0
  23. package/dist/src/fields/number.d.ts.map +1 -0
  24. package/dist/src/fields/number.js +16 -0
  25. package/dist/src/fields/number.js.map +1 -0
  26. package/dist/src/fields/select.d.ts +20 -0
  27. package/dist/src/fields/select.d.ts.map +1 -0
  28. package/dist/src/fields/select.js +15 -0
  29. package/dist/src/fields/select.js.map +1 -0
  30. package/dist/src/fields/text.d.ts +19 -0
  31. package/dist/src/fields/text.d.ts.map +1 -0
  32. package/dist/src/fields/text.js +17 -0
  33. package/dist/src/fields/text.js.map +1 -0
  34. package/dist/src/fields/textarea.d.ts +19 -0
  35. package/dist/src/fields/textarea.d.ts.map +1 -0
  36. package/dist/src/fields/textarea.js +17 -0
  37. package/dist/src/fields/textarea.js.map +1 -0
  38. package/dist/src/fields/types.d.ts +41 -0
  39. package/dist/src/fields/types.d.ts.map +1 -0
  40. package/dist/src/fields/types.js +3 -0
  41. package/dist/src/fields/types.js.map +1 -0
  42. package/dist/src/fields.d.ts +56 -0
  43. package/dist/src/fields.d.ts.map +1 -0
  44. package/dist/src/fields.js +86 -0
  45. package/dist/src/fields.js.map +1 -0
  46. package/dist/src/form.d.ts +7 -0
  47. package/dist/src/form.d.ts.map +1 -0
  48. package/dist/src/form.js +7 -0
  49. package/dist/src/form.js.map +1 -0
  50. package/dist/src/index.d.ts +8 -0
  51. package/dist/src/index.d.ts.map +1 -0
  52. package/dist/src/index.js +24 -0
  53. package/dist/src/index.js.map +1 -0
  54. package/dist/src/resource.d.ts +21 -0
  55. package/dist/src/resource.d.ts.map +1 -0
  56. package/dist/src/resource.js +28 -0
  57. package/dist/src/resource.js.map +1 -0
  58. package/dist/src/table.d.ts +11 -0
  59. package/dist/src/table.d.ts.map +1 -0
  60. package/dist/src/table.js +7 -0
  61. package/dist/src/table.js.map +1 -0
  62. package/dist/src/types.d.ts +55 -0
  63. package/dist/src/types.d.ts.map +1 -0
  64. package/dist/src/types.js +6 -0
  65. package/dist/src/types.js.map +1 -0
  66. package/package.json +7 -1
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.select = select;
4
+ function select(options) {
5
+ return {
6
+ type: "select",
7
+ options: options.options,
8
+ label: options.label,
9
+ required: options.required ?? false,
10
+ readOnly: options.readOnly ?? false,
11
+ placeholder: options.placeholder ?? "",
12
+ size: options.size ?? "medium",
13
+ };
14
+ }
15
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/fields/select.ts"],"names":[],"mappings":";;AAiBA,wBAUG;AAVH,SAAgB,MAAM,CAAC,OAA2B;IAC9C,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { BaseFieldOptions } from "./types";
2
+ export interface TextFieldOptions extends BaseFieldOptions {
3
+ unique?: boolean;
4
+ minLength?: number;
5
+ maxLength?: number;
6
+ }
7
+ export interface TextFieldSchema {
8
+ type: "text";
9
+ label: string;
10
+ required: boolean;
11
+ readOnly: boolean;
12
+ unique: boolean;
13
+ placeholder: string;
14
+ minLength?: number;
15
+ maxLength?: number;
16
+ size: TextFieldOptions["size"];
17
+ }
18
+ export declare function text(options: TextFieldOptions): TextFieldSchema;
19
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/fields/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAa,MAAM,SAAS,CAAC;AAEtD,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAEH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,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,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CAChC;AACH,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.text = text;
4
+ function text(options) {
5
+ return {
6
+ type: "text",
7
+ label: options.label,
8
+ required: options.required ?? false,
9
+ readOnly: options.readOnly ?? false,
10
+ unique: options.unique ?? false,
11
+ placeholder: options.placeholder ?? "",
12
+ minLength: options.minLength ?? 0,
13
+ maxLength: options.maxLength ?? 255,
14
+ size: options.size ?? "medium",
15
+ };
16
+ }
17
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/fields/text.ts"],"names":[],"mappings":";;AAmBA,oBAYG;AAZH,SAAgB,IAAI,CAAC,OAAyB;IAC1C,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG;QACnC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { BaseFieldOptions } from "./types";
2
+ export interface TextareaFieldOptions extends BaseFieldOptions {
3
+ rows?: number;
4
+ maxLength?: number;
5
+ minLength?: number;
6
+ }
7
+ export interface TextareaFieldSchema {
8
+ type: "textarea";
9
+ label: string;
10
+ required: boolean;
11
+ readOnly: boolean;
12
+ rows: number;
13
+ maxLength?: number;
14
+ minLength?: number;
15
+ placeholder: string;
16
+ size: TextareaFieldOptions["size"];
17
+ }
18
+ export declare function textarea(options: TextareaFieldOptions): TextareaFieldSchema;
19
+ //# sourceMappingURL=textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../../src/fields/textarea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAEH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;CACpC;AAEH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,mBAAmB,CAYzE"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.textarea = textarea;
4
+ function textarea(options) {
5
+ return {
6
+ type: "textarea",
7
+ label: options.label,
8
+ required: options.required ?? false,
9
+ readOnly: options.readOnly ?? false,
10
+ rows: options.rows ?? 4,
11
+ maxLength: options.maxLength ?? 524288,
12
+ minLength: options.minLength ?? 0,
13
+ placeholder: options.placeholder ?? "",
14
+ size: options.size ?? "medium",
15
+ };
16
+ }
17
+ //# sourceMappingURL=textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/fields/textarea.ts"],"names":[],"mappings":";;AAoBA,4BAYG;AAZH,SAAgB,QAAQ,CAAC,OAA6B;IAClD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;QACtC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;QACjC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Core types for the admin framework
3
+ */
4
+ import type { TextFieldOptions } from "./text";
5
+ import type { EmailFieldOptions } from "./email";
6
+ import type { SelectFieldOptions } from "./select";
7
+ import type { DateFieldOptions } from "./date";
8
+ import type { NumberFieldOptions } from "./number";
9
+ import type { TextareaFieldOptions } from "./textarea";
10
+ import type { HiddenFieldOptions } from "./hidden";
11
+ export type FieldType = "text" | "email" | "select" | "date" | "number" | "textarea" | "hidden";
12
+ export type FieldSize = "large" | "medium" | "small" | "tiny";
13
+ export interface BaseFieldOptions {
14
+ /**
15
+ * Field label text
16
+ */
17
+ label: string;
18
+ /**
19
+ * Whether the field is required
20
+ */
21
+ required?: boolean;
22
+ /**
23
+ * Whether the field is read only
24
+ */
25
+ readOnly?: boolean;
26
+ /**
27
+ * Field placeholder text
28
+ */
29
+ placeholder?: string;
30
+ /**
31
+ * Field width size (large, medium, small, tiny):
32
+ * - large = 100% width (full width)
33
+ * - medium = 50% width
34
+ * - small = 33.33% width
35
+ * - tiny = 25% width
36
+ * If not specified, defaults to large (100% width)
37
+ */
38
+ size?: FieldSize;
39
+ }
40
+ export type FieldOptions = TextFieldOptions | EmailFieldOptions | SelectFieldOptions | DateFieldOptions | NumberFieldOptions | TextareaFieldOptions | HiddenFieldOptions;
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,OAAO,GACP,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/fields/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Field definition helpers (Filament-style API)
3
+ */
4
+ import type { TextFieldConfig, EmailFieldConfig, SelectFieldConfig, DateFieldConfig, NumberFieldConfig, TextareaFieldConfig, HiddenFieldConfig, FieldSize } from "./types";
5
+ export declare function hidden(config?: {
6
+ value?: string;
7
+ }): HiddenFieldConfig;
8
+ export declare function text(config?: {
9
+ label?: string;
10
+ required?: boolean;
11
+ readOnly?: boolean;
12
+ unique?: boolean;
13
+ placeholder?: string;
14
+ minLength?: number;
15
+ maxLength?: number;
16
+ size?: FieldSize;
17
+ }): TextFieldConfig;
18
+ export declare function email(config?: {
19
+ label?: string;
20
+ required?: boolean;
21
+ readOnly?: boolean;
22
+ unique?: boolean;
23
+ placeholder?: string;
24
+ size?: FieldSize;
25
+ }): EmailFieldConfig;
26
+ export declare function select(options: string[], config?: {
27
+ label?: string;
28
+ required?: boolean;
29
+ readOnly?: boolean;
30
+ placeholder?: string;
31
+ size?: FieldSize;
32
+ }): SelectFieldConfig;
33
+ export declare function date(config?: {
34
+ label?: string;
35
+ required?: boolean;
36
+ readOnly?: boolean;
37
+ size?: FieldSize;
38
+ }): DateFieldConfig;
39
+ export declare function number(config?: {
40
+ label?: string;
41
+ required?: boolean;
42
+ readOnly?: boolean;
43
+ min?: number;
44
+ max?: number;
45
+ placeholder?: string;
46
+ size?: FieldSize;
47
+ }): NumberFieldConfig;
48
+ export declare function textarea(config?: {
49
+ label?: string;
50
+ required?: boolean;
51
+ readOnly?: boolean;
52
+ rows?: number;
53
+ placeholder?: string;
54
+ size?: FieldSize;
55
+ }): TextareaFieldConfig;
56
+ //# sourceMappingURL=fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/fields.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACV,MAAM,SAAS,CAAC;AAEjB,wBAAgB,MAAM,CAAC,MAAM,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAKrE;AAED,wBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GAAG,eAAe,CAYlB;AAED,wBAAgB,KAAK,CAAC,MAAM,CAAC,EAAE;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GAAG,gBAAgB,CAUnB;AAED,wBAAgB,MAAM,CACpB,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,CAAC,EAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACA,iBAAiB,CAUnB;AAED,wBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GAAG,eAAe,CAQlB;AAED,wBAAgB,MAAM,CAAC,MAAM,CAAC,EAAE;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GAAG,iBAAiB,CAWpB;AAED,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GAAG,mBAAmB,CAUtB"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * Field definition helpers (Filament-style API)
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.hidden = hidden;
7
+ exports.text = text;
8
+ exports.email = email;
9
+ exports.select = select;
10
+ exports.date = date;
11
+ exports.number = number;
12
+ exports.textarea = textarea;
13
+ function hidden(config) {
14
+ return {
15
+ type: "hidden",
16
+ value: config?.value,
17
+ };
18
+ }
19
+ function text(config) {
20
+ return {
21
+ type: "text",
22
+ label: config?.label,
23
+ required: config?.required ?? false,
24
+ readOnly: config?.readOnly ?? false,
25
+ unique: config?.unique ?? false,
26
+ placeholder: config?.placeholder,
27
+ minLength: config?.minLength,
28
+ maxLength: config?.maxLength,
29
+ size: config?.size,
30
+ };
31
+ }
32
+ function email(config) {
33
+ return {
34
+ type: "email",
35
+ label: config?.label,
36
+ required: config?.required ?? false,
37
+ readOnly: config?.readOnly ?? false,
38
+ unique: config?.unique ?? false,
39
+ placeholder: config?.placeholder,
40
+ size: config?.size,
41
+ };
42
+ }
43
+ function select(options, config) {
44
+ return {
45
+ type: "select",
46
+ options,
47
+ label: config?.label,
48
+ required: config?.required ?? false,
49
+ readOnly: config?.readOnly ?? false,
50
+ placeholder: config?.placeholder,
51
+ size: config?.size,
52
+ };
53
+ }
54
+ function date(config) {
55
+ return {
56
+ type: "date",
57
+ label: config?.label,
58
+ required: config?.required ?? false,
59
+ readOnly: config?.readOnly ?? false,
60
+ size: config?.size,
61
+ };
62
+ }
63
+ function number(config) {
64
+ return {
65
+ type: "number",
66
+ label: config?.label,
67
+ required: config?.required ?? false,
68
+ readOnly: config?.readOnly ?? false,
69
+ min: config?.min,
70
+ max: config?.max,
71
+ placeholder: config?.placeholder,
72
+ size: config?.size,
73
+ };
74
+ }
75
+ function textarea(config) {
76
+ return {
77
+ type: "textarea",
78
+ label: config?.label,
79
+ required: config?.required ?? false,
80
+ readOnly: config?.readOnly ?? false,
81
+ rows: config?.rows ?? 4,
82
+ placeholder: config?.placeholder,
83
+ size: config?.size,
84
+ };
85
+ }
86
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/fields.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAaH,wBAKC;AAED,oBAqBC;AAED,sBAiBC;AAED,wBAmBC;AAED,oBAaC;AAED,wBAmBC;AAED,4BAiBC;AA3HD,SAAgB,MAAM,CAAC,MAA2B;IAChD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,MAAM,EAAE,KAAK;KACrB,CAAC;AACJ,CAAC;AAED,SAAgB,IAAI,CAAC,MASpB;IACC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK;QAC/B,WAAW,EAAE,MAAM,EAAE,WAAW;QAChC,SAAS,EAAE,MAAM,EAAE,SAAS;QAC5B,SAAS,EAAE,MAAM,EAAE,SAAS;QAC5B,IAAI,EAAE,MAAM,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,KAAK,CAAC,MAOrB;IACC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK;QAC/B,WAAW,EAAE,MAAM,EAAE,WAAW;QAChC,IAAI,EAAE,MAAM,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,MAAM,CACpB,OAAiB,EACjB,MAMC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO;QACP,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,WAAW,EAAE,MAAM,EAAE,WAAW;QAChC,IAAI,EAAE,MAAM,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,IAAI,CAAC,MAKpB;IACC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,IAAI,EAAE,MAAM,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,MAAM,CAAC,MAQtB;IACC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,GAAG,EAAE,MAAM,EAAE,GAAG;QAChB,GAAG,EAAE,MAAM,EAAE,GAAG;QAChB,WAAW,EAAE,MAAM,EAAE,WAAW;QAChC,IAAI,EAAE,MAAM,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CAAC,MAOxB;IACC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC;QACvB,WAAW,EAAE,MAAM,EAAE,WAAW;QAChC,IAAI,EAAE,MAAM,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { FieldOptions } from "./fields/types";
2
+ export type FormFields = Record<string, FieldOptions>;
3
+ export interface FormSchema {
4
+ fields: FormFields;
5
+ }
6
+ export declare function defineFormSchema(schema: FormSchema): FormSchema;
7
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,cAElD"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineFormSchema = defineFormSchema;
4
+ function defineFormSchema(schema) {
5
+ return schema;
6
+ }
7
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../../src/form.ts"],"names":[],"mappings":";;AAQA,4CAEC;AAFD,SAAgB,gBAAgB,CAAC,MAAkB;IACjD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Admin framework barrel exports
3
+ */
4
+ export * from "./types";
5
+ export * from "./fields";
6
+ export * from "./resource";
7
+ export * from "./actions";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Admin framework barrel exports
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
+ __exportStar(require("./types"), exports);
21
+ __exportStar(require("./fields"), exports);
22
+ __exportStar(require("./resource"), exports);
23
+ __exportStar(require("./actions"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,4CAA0B"}
@@ -0,0 +1,21 @@
1
+ import type { FormSchema } from "./form";
2
+ import type { TableSchema } from "./table";
3
+ type ModelName = string;
4
+ export interface ResourceConfig {
5
+ model: ModelName;
6
+ label?: string;
7
+ form: FormSchema;
8
+ editForm?: FormSchema;
9
+ table: TableSchema;
10
+ }
11
+ export interface AnvilResource {
12
+ model: ModelName;
13
+ slug: string;
14
+ label: string;
15
+ form: FormSchema;
16
+ editForm: FormSchema;
17
+ table: TableSchema;
18
+ }
19
+ export declare function defineResource(config: ResourceConfig): AnvilResource;
20
+ export {};
21
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/resource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,KAAK,SAAS,GAAG,MAAM,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;CACpB;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAepE"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.defineResource = defineResource;
7
+ const pluralize_esm_1 = __importDefault(require("pluralize-esm"));
8
+ function defineResource(config) {
9
+ if (!config.model)
10
+ throw new Error("Model is required");
11
+ if (!config.label)
12
+ config.label = (0, pluralize_esm_1.default)(config.model);
13
+ if (!config.table)
14
+ throw new Error("Table schema is required");
15
+ if (!config.form)
16
+ throw new Error("Form schema is required");
17
+ if (!config.editForm)
18
+ config.editForm = config.form;
19
+ return {
20
+ model: config.model,
21
+ label: config.label,
22
+ slug: (0, pluralize_esm_1.default)(config.model.toLowerCase()),
23
+ form: config.form,
24
+ editForm: config.editForm,
25
+ table: config.table,
26
+ };
27
+ }
28
+ //# sourceMappingURL=resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/resource.ts"],"names":[],"mappings":";;;;;AAwBA,wCAeC;AAvCD,kEAAsC;AAwBtC,SAAgB,cAAc,CAAC,MAAsB;IACnD,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,MAAM,CAAC,KAAK,GAAG,IAAA,uBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IAEpD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,IAAA,uBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface TableColumn {
2
+ name: string;
3
+ label?: string;
4
+ orderable?: "asc" | "desc";
5
+ visible?: "always" | "never" | "toggle";
6
+ }
7
+ export interface TableSchema {
8
+ columns: TableColumn[];
9
+ }
10
+ export declare function defineTableSchema(schema: TableSchema): TableSchema;
11
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/table.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,eAEpD"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineTableSchema = defineTableSchema;
4
+ function defineTableSchema(schema) {
5
+ return schema;
6
+ }
7
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/table.ts"],"names":[],"mappings":";;AAWA,8CAEC;AAFD,SAAgB,iBAAiB,CAAC,MAAmB;IACnD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Core types for the admin framework
3
+ */
4
+ export type FieldType = "text" | "email" | "select" | "date" | "number" | "textarea" | "hidden";
5
+ export type FieldSize = "large" | "medium" | "small" | "tiny";
6
+ export interface BaseFieldConfig {
7
+ label?: string;
8
+ required?: boolean;
9
+ readOnly?: boolean;
10
+ placeholder?: string;
11
+ /**
12
+ * Field width size (large, medium, small, tiny):
13
+ * - large = 100% width (full width)
14
+ * - medium = 50% width
15
+ * - small = 33.33% width
16
+ * - tiny = 25% width
17
+ * If not specified, defaults to large (100% width)
18
+ */
19
+ size?: FieldSize;
20
+ }
21
+ export interface HiddenFieldConfig {
22
+ type: "hidden";
23
+ value?: string;
24
+ }
25
+ export interface TextFieldConfig extends BaseFieldConfig {
26
+ type: "text";
27
+ unique?: boolean;
28
+ minLength?: number;
29
+ maxLength?: number;
30
+ }
31
+ export interface EmailFieldConfig extends BaseFieldConfig {
32
+ type: "email";
33
+ unique?: boolean;
34
+ }
35
+ export interface SelectFieldConfig extends BaseFieldConfig {
36
+ type: "select";
37
+ options: {
38
+ label: string;
39
+ value: string;
40
+ }[] | string[];
41
+ }
42
+ export interface DateFieldConfig extends BaseFieldConfig {
43
+ type: "date";
44
+ }
45
+ export interface NumberFieldConfig extends BaseFieldConfig {
46
+ type: "number";
47
+ min?: number;
48
+ max?: number;
49
+ }
50
+ export interface TextareaFieldConfig extends BaseFieldConfig {
51
+ type: "textarea";
52
+ rows?: number;
53
+ }
54
+ export type FieldConfig = TextFieldConfig | EmailFieldConfig | SelectFieldConfig | DateFieldConfig | NumberFieldConfig | TextareaFieldConfig | HiddenFieldConfig;
55
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,OAAO,GACP,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,MAAM,EAAE,CAAC;CACxD;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Core types for the admin framework
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
package/package.json CHANGED
@@ -1,11 +1,17 @@
1
1
  {
2
2
  "name": "next-anvil",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "CLI tool for the Anvil framework - a Next.js framework for creating admin dashboards",
5
5
  "license": "ISC",
6
6
  "author": "Juan Sanchez <juan.sanchez@stallionstudios.net>",
7
7
  "type": "commonjs",
8
8
  "main": "dist/bin/anvil.js",
9
+ "exports": {
10
+ "./fields": "./dist/src/fields/index.js",
11
+ "./form": "./dist/src/form.js",
12
+ "./table": "./dist/src/table.js",
13
+ "./resource": "./dist/src/resource.js"
14
+ },
9
15
  "bin": {
10
16
  "anvil": "dist/bin/anvil.js"
11
17
  },