@cedarjs/forms 0.0.4

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 (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -0
  3. package/dist/CheckboxField.d.ts +7 -0
  4. package/dist/CheckboxField.d.ts.map +1 -0
  5. package/dist/CheckboxField.js +85 -0
  6. package/dist/FieldError.d.ts +43 -0
  7. package/dist/FieldError.d.ts.map +1 -0
  8. package/dist/FieldError.js +56 -0
  9. package/dist/FieldProps.d.ts +26 -0
  10. package/dist/FieldProps.d.ts.map +1 -0
  11. package/dist/FieldProps.js +16 -0
  12. package/dist/Form.d.ts +41 -0
  13. package/dist/Form.d.ts.map +1 -0
  14. package/dist/Form.js +69 -0
  15. package/dist/FormError.d.ts +36 -0
  16. package/dist/FormError.d.ts.map +1 -0
  17. package/dist/FormError.js +90 -0
  18. package/dist/InputComponents.d.ts +30 -0
  19. package/dist/InputComponents.d.ts.map +1 -0
  20. package/dist/InputComponents.js +180 -0
  21. package/dist/Label.d.ts +10 -0
  22. package/dist/Label.d.ts.map +1 -0
  23. package/dist/Label.js +58 -0
  24. package/dist/SelectField.d.ts +7 -0
  25. package/dist/SelectField.d.ts.map +1 -0
  26. package/dist/SelectField.js +76 -0
  27. package/dist/ServerErrorsContext.d.ts +8 -0
  28. package/dist/ServerErrorsContext.d.ts.map +1 -0
  29. package/dist/ServerErrorsContext.js +41 -0
  30. package/dist/Submit.d.ts +16 -0
  31. package/dist/Submit.d.ts.map +1 -0
  32. package/dist/Submit.js +39 -0
  33. package/dist/TextAreaField.d.ts +9 -0
  34. package/dist/TextAreaField.d.ts.map +1 -0
  35. package/dist/TextAreaField.js +76 -0
  36. package/dist/coercion.d.ts +59 -0
  37. package/dist/coercion.d.ts.map +1 -0
  38. package/dist/coercion.js +178 -0
  39. package/dist/index.d.ts +64 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +118 -0
  42. package/dist/useErrorStyles.d.ts +18 -0
  43. package/dist/useErrorStyles.d.ts.map +1 -0
  44. package/dist/useErrorStyles.js +68 -0
  45. package/dist/useRegister.d.ts +32 -0
  46. package/dist/useRegister.d.ts.map +1 -0
  47. package/dist/useRegister.js +69 -0
  48. package/package.json +65 -0
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var InputComponents_exports = {};
30
+ __export(InputComponents_exports, {
31
+ ButtonField: () => ButtonField,
32
+ ColorField: () => ColorField,
33
+ DateField: () => DateField,
34
+ DatetimeLocalField: () => DatetimeLocalField,
35
+ EmailField: () => EmailField,
36
+ FileField: () => FileField,
37
+ HiddenField: () => HiddenField,
38
+ ImageField: () => ImageField,
39
+ InputField: () => InputField,
40
+ MonthField: () => MonthField,
41
+ NumberField: () => NumberField,
42
+ PasswordField: () => PasswordField,
43
+ RadioField: () => RadioField,
44
+ RangeField: () => RangeField,
45
+ ResetField: () => ResetField,
46
+ SearchField: () => SearchField,
47
+ SubmitField: () => SubmitField,
48
+ TelField: () => TelField,
49
+ TextField: () => TextField,
50
+ TimeField: () => TimeField,
51
+ UrlField: () => UrlField,
52
+ WeekField: () => WeekField
53
+ });
54
+ module.exports = __toCommonJS(InputComponents_exports);
55
+ var import_react = __toESM(require("react"));
56
+ var import_pascalcase = __toESM(require("pascalcase"));
57
+ var import_useErrorStyles = require("./useErrorStyles");
58
+ var import_useRegister = require("./useRegister");
59
+ const INPUT_TYPES = [
60
+ "button",
61
+ "color",
62
+ "date",
63
+ "datetime-local",
64
+ "email",
65
+ "file",
66
+ "hidden",
67
+ "image",
68
+ "month",
69
+ "number",
70
+ "password",
71
+ "radio",
72
+ "range",
73
+ "reset",
74
+ "search",
75
+ "submit",
76
+ "tel",
77
+ "text",
78
+ "time",
79
+ "url",
80
+ "week"
81
+ ];
82
+ const InputField = (0, import_react.forwardRef)(
83
+ ({
84
+ name,
85
+ id,
86
+ emptyAs,
87
+ // for useErrorStyles
88
+ errorClassName,
89
+ errorStyle,
90
+ className,
91
+ style,
92
+ // for useRegister
93
+ validation,
94
+ onBlur,
95
+ onChange,
96
+ type,
97
+ ...rest
98
+ }, ref) => {
99
+ const styles = (0, import_useErrorStyles.useErrorStyles)({
100
+ name,
101
+ errorClassName,
102
+ errorStyle,
103
+ className,
104
+ style
105
+ });
106
+ const useRegisterReturn = (0, import_useRegister.useRegister)(
107
+ {
108
+ name,
109
+ validation,
110
+ onBlur,
111
+ onChange,
112
+ type
113
+ },
114
+ ref,
115
+ emptyAs
116
+ );
117
+ return /* @__PURE__ */ import_react.default.createElement(
118
+ "input",
119
+ {
120
+ id: id || name,
121
+ ...rest,
122
+ type,
123
+ ...styles,
124
+ ...useRegisterReturn
125
+ }
126
+ );
127
+ }
128
+ );
129
+ const InputComponents = {};
130
+ INPUT_TYPES.forEach((type) => {
131
+ InputComponents[`${(0, import_pascalcase.default)(type)}Field`] = (0, import_react.forwardRef)((props, ref) => /* @__PURE__ */ import_react.default.createElement(InputField, { ref, type, ...props }));
132
+ });
133
+ const {
134
+ ButtonField,
135
+ ColorField,
136
+ DateField,
137
+ DatetimeLocalField,
138
+ EmailField,
139
+ FileField,
140
+ HiddenField,
141
+ ImageField,
142
+ MonthField,
143
+ NumberField,
144
+ PasswordField,
145
+ RadioField,
146
+ RangeField,
147
+ ResetField,
148
+ SearchField,
149
+ SubmitField,
150
+ TelField,
151
+ TextField,
152
+ TimeField,
153
+ UrlField,
154
+ WeekField
155
+ } = InputComponents;
156
+ // Annotate the CommonJS export names for ESM import in node:
157
+ 0 && (module.exports = {
158
+ ButtonField,
159
+ ColorField,
160
+ DateField,
161
+ DatetimeLocalField,
162
+ EmailField,
163
+ FileField,
164
+ HiddenField,
165
+ ImageField,
166
+ InputField,
167
+ MonthField,
168
+ NumberField,
169
+ PasswordField,
170
+ RadioField,
171
+ RangeField,
172
+ ResetField,
173
+ SearchField,
174
+ SubmitField,
175
+ TelField,
176
+ TextField,
177
+ TimeField,
178
+ UrlField,
179
+ WeekField
180
+ });
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { FieldProps } from './FieldProps';
3
+ export interface LabelProps extends Pick<FieldProps, 'errorClassName' | 'errorStyle'>, React.ComponentPropsWithoutRef<'label'> {
4
+ name: string;
5
+ }
6
+ /**
7
+ * Renders a `<label>` that can be styled differently if errors are present on the related fields.
8
+ */
9
+ export declare const Label: ({ name, children, errorClassName, errorStyle, className, style, ...rest }: LabelProps) => React.JSX.Element;
10
+ //# sourceMappingURL=Label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../src/Label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAG9C,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,UAAU,EAAE,gBAAgB,GAAG,YAAY,CAAC,EACvD,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACzC,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,8EASf,UAAU,sBAcZ,CAAA"}
package/dist/Label.js ADDED
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var Label_exports = {};
30
+ __export(Label_exports, {
31
+ Label: () => Label
32
+ });
33
+ module.exports = __toCommonJS(Label_exports);
34
+ var import_react = __toESM(require("react"));
35
+ var import_useErrorStyles = require("./useErrorStyles");
36
+ const Label = ({
37
+ name,
38
+ children,
39
+ // for useErrorStyles
40
+ errorClassName,
41
+ errorStyle,
42
+ className,
43
+ style,
44
+ ...rest
45
+ }) => {
46
+ const styles = (0, import_useErrorStyles.useErrorStyles)({
47
+ name,
48
+ errorClassName,
49
+ errorStyle,
50
+ className,
51
+ style
52
+ });
53
+ return /* @__PURE__ */ import_react.default.createElement("label", { htmlFor: name, ...rest, ...styles }, children || name);
54
+ };
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ Label
58
+ });
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { FieldProps } from './FieldProps';
3
+ export interface SelectFieldProps extends Omit<FieldProps<HTMLSelectElement>, 'type'>, Omit<React.ComponentPropsWithRef<'select'>, 'name'> {
4
+ }
5
+ /** Renders a `<select>` field */
6
+ export declare const SelectField: React.ForwardRefExoticComponent<Omit<SelectFieldProps, "ref"> & React.RefAttributes<HTMLSelectElement>>;
7
+ //# sourceMappingURL=SelectField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectField.d.ts","sourceRoot":"","sources":["../src/SelectField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAI9C,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,EACjD,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAAG;AAE1D,iCAAiC;AACjC,eAAO,MAAM,WAAW,yGA2CvB,CAAA"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var SelectField_exports = {};
30
+ __export(SelectField_exports, {
31
+ SelectField: () => SelectField
32
+ });
33
+ module.exports = __toCommonJS(SelectField_exports);
34
+ var import_react = __toESM(require("react"));
35
+ var import_useErrorStyles = require("./useErrorStyles");
36
+ var import_useRegister = require("./useRegister");
37
+ const SelectField = (0, import_react.forwardRef)(
38
+ ({
39
+ name,
40
+ id,
41
+ emptyAs,
42
+ // for useErrorStyles
43
+ errorClassName,
44
+ errorStyle,
45
+ className,
46
+ style,
47
+ // for useRegister
48
+ validation,
49
+ onBlur,
50
+ onChange,
51
+ ...rest
52
+ }, ref) => {
53
+ const styles = (0, import_useErrorStyles.useErrorStyles)({
54
+ name,
55
+ errorClassName,
56
+ errorStyle,
57
+ className,
58
+ style
59
+ });
60
+ const useRegisterReturn = (0, import_useRegister.useRegister)(
61
+ {
62
+ name,
63
+ validation,
64
+ onBlur,
65
+ onChange
66
+ },
67
+ ref,
68
+ emptyAs
69
+ );
70
+ return /* @__PURE__ */ import_react.default.createElement("select", { id: id || name, ...rest, ...styles, ...useRegisterReturn });
71
+ }
72
+ );
73
+ // Annotate the CommonJS export names for ESM import in node:
74
+ 0 && (module.exports = {
75
+ SelectField
76
+ });
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ /** Context for keeping track of errors from the server */
3
+ interface ServerErrorsContextProps {
4
+ [key: string]: string;
5
+ }
6
+ export declare const ServerErrorsContext: React.Context<ServerErrorsContextProps>;
7
+ export {};
8
+ //# sourceMappingURL=ServerErrorsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerErrorsContext.d.ts","sourceRoot":"","sources":["../src/ServerErrorsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,0DAA0D;AAC1D,UAAU,wBAAwB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,mBAAmB,yCAE/B,CAAA"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var ServerErrorsContext_exports = {};
30
+ __export(ServerErrorsContext_exports, {
31
+ ServerErrorsContext: () => ServerErrorsContext
32
+ });
33
+ module.exports = __toCommonJS(ServerErrorsContext_exports);
34
+ var import_react = __toESM(require("react"));
35
+ const ServerErrorsContext = import_react.default.createContext(
36
+ {}
37
+ );
38
+ // Annotate the CommonJS export names for ESM import in node:
39
+ 0 && (module.exports = {
40
+ ServerErrorsContext
41
+ });
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ /**
3
+ * Renders a `<button type="submit">` field.
4
+ *
5
+ * @example
6
+ * ```jsx{3}
7
+ * <Form onSubmit={onSubmit}>
8
+ * // ...
9
+ * <Submit>Save</Submit>
10
+ * </Form>
11
+ * ```
12
+ */
13
+ export declare const Submit: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
14
+ ref?: ((instance: HTMLButtonElement | null) => void) | React.RefObject<HTMLButtonElement> | null | undefined;
15
+ }, "type">, "ref"> & React.RefAttributes<HTMLButtonElement>>;
16
+ //# sourceMappingURL=Submit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Submit.d.ts","sourceRoot":"","sources":["../src/Submit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM;;4DAG6C,CAAA"}
package/dist/Submit.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var Submit_exports = {};
30
+ __export(Submit_exports, {
31
+ Submit: () => Submit
32
+ });
33
+ module.exports = __toCommonJS(Submit_exports);
34
+ var import_react = __toESM(require("react"));
35
+ const Submit = (0, import_react.forwardRef)((props, ref) => /* @__PURE__ */ import_react.default.createElement("button", { ref, type: "submit", ...props }));
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ Submit
39
+ });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { FieldProps } from './FieldProps';
3
+ export interface TextAreaFieldProps extends Omit<FieldProps<HTMLTextAreaElement>, 'type'>, Omit<React.ComponentPropsWithRef<'textarea'>, 'name'> {
4
+ }
5
+ /**
6
+ * Renders a `<textarea>` field.
7
+ */
8
+ export declare const TextAreaField: React.ForwardRefExoticComponent<Omit<TextAreaFieldProps, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
9
+ //# sourceMappingURL=TextAreaField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextAreaField.d.ts","sourceRoot":"","sources":["../src/TextAreaField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAI9C,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,EACnD,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAAG;AAE5D;;GAEG;AACH,eAAO,MAAM,aAAa,6GA4CzB,CAAA"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var TextAreaField_exports = {};
30
+ __export(TextAreaField_exports, {
31
+ TextAreaField: () => TextAreaField
32
+ });
33
+ module.exports = __toCommonJS(TextAreaField_exports);
34
+ var import_react = __toESM(require("react"));
35
+ var import_useErrorStyles = require("./useErrorStyles");
36
+ var import_useRegister = require("./useRegister");
37
+ const TextAreaField = (0, import_react.forwardRef)(
38
+ ({
39
+ name,
40
+ id,
41
+ emptyAs,
42
+ // for useErrorStyles
43
+ errorClassName,
44
+ errorStyle,
45
+ className,
46
+ style,
47
+ // for useRegister
48
+ validation,
49
+ onBlur,
50
+ onChange,
51
+ ...rest
52
+ }, ref) => {
53
+ const styles = (0, import_useErrorStyles.useErrorStyles)({
54
+ name,
55
+ errorClassName,
56
+ errorStyle,
57
+ className,
58
+ style
59
+ });
60
+ const useRegisterReturn = (0, import_useRegister.useRegister)(
61
+ {
62
+ name,
63
+ validation,
64
+ onBlur,
65
+ onChange
66
+ },
67
+ ref,
68
+ emptyAs
69
+ );
70
+ return /* @__PURE__ */ import_react.default.createElement("textarea", { id: id || name, ...rest, ...styles, ...useRegisterReturn });
71
+ }
72
+ );
73
+ // Annotate the CommonJS export names for ESM import in node:
74
+ 0 && (module.exports = {
75
+ TextAreaField
76
+ });
@@ -0,0 +1,59 @@
1
+ import type { RegisterOptions } from 'react-hook-form';
2
+ /**
3
+ * We slightly extend `react-hook-form`'s `RegisterOptions` to make working with GraphQL easier.
4
+ * `react-hook-form` provides the prop `setValueAs` for all-purpose coercion
5
+ * (i.e. anything that isn't `valueAsDate` or `valueAsNumber`, which are standard HTML).
6
+ *
7
+ * @see {@link https://react-hook-form.com/api/useform/register}
8
+ */
9
+ export type RedwoodRegisterOptions = RegisterOptions & {
10
+ valueAsBoolean?: boolean;
11
+ valueAsJSON?: boolean;
12
+ };
13
+ /**
14
+ * EmptyAsValue defines the values that can be used for the field emptyAs prop
15
+ * It sets the value to be returned from the field if the field is empty.
16
+ * If the valueOf prop is truly undefined (not 'undefined'), it will return
17
+ * a default value corresponding to the type of field. (See
18
+ * the comments above the setCoercion function for more details)
19
+ */
20
+ export type EmptyAsValue = null | 'undefined' | 0 | '';
21
+ /**
22
+ * ** setCoercion **
23
+ * Handles the flow of coercion, providing a default if none is specified.
24
+ * Also implements Redwood's extensions to `react-hook-form`'s `valueAs` props.
25
+ *
26
+ * To provide Redwood specific functionality, we need to override part of
27
+ * react-hook-form`'s functionality in some cases. This is accomplished
28
+ * through the use of the setValueAs function supported by r-h-f.
29
+ * If a setValueAs function is provided by the user, it takes precedence over
30
+ * the emptyAs prop.
31
+ *
32
+ * Redwood provides specific logic to address field empty scenarios through
33
+ * the use of the emptyAs prop. The decision chain for behavior on field empty
34
+ * scenarios is as follows:
35
+ * 1. if setValueAs is specified by the user, that will determine the behavior
36
+ * 2 if emptyAs is specified, then the emptyAs prop will determine the
37
+ * field value on an empty condition.
38
+ * 3. if { validation.required } is set, an empty field will return null; however,
39
+ * r-h-f's validation should engage and prevent submission of the form.
40
+ * 4. if the field is an Id field, that is its name ends in "Id", then an empty
41
+ * field will return null.
42
+ * 5. In the event of none of the above cases, the field value will be set as
43
+ * follows for empty field scenarios:
44
+ * DateFields => null
45
+ * NumberFields => NaN
46
+ * TextFields with valueAsNumber set => NaN
47
+ * SelectFields with valueAsNumber set => NaN
48
+ * SelectFields without valueAsNumber set => '' (empty string)
49
+ * TextFields with valueAsJSON set => null
50
+ * TextFields and comparable => '' (empty string)
51
+ */
52
+ interface SetCoercionProps {
53
+ type?: string;
54
+ name: string;
55
+ emptyAs?: EmptyAsValue;
56
+ }
57
+ export declare const setCoercion: (validation: RedwoodRegisterOptions, { type, name, emptyAs }: SetCoercionProps) => void;
58
+ export {};
59
+ //# sourceMappingURL=coercion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coercion.d.ts","sourceRoot":"","sources":["../src/coercion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG;IACrD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAKD;;;;;;GAMG;AAEH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,WAAW,GAAG,CAAC,GAAG,EAAE,CAAA;AA8JtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAED,eAAO,MAAM,WAAW,eACV,sBAAsB,2BACT,gBAAgB,SAyC1C,CAAA"}