@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.
- package/LICENSE +21 -0
- package/README.md +33 -0
- package/dist/CheckboxField.d.ts +7 -0
- package/dist/CheckboxField.d.ts.map +1 -0
- package/dist/CheckboxField.js +85 -0
- package/dist/FieldError.d.ts +43 -0
- package/dist/FieldError.d.ts.map +1 -0
- package/dist/FieldError.js +56 -0
- package/dist/FieldProps.d.ts +26 -0
- package/dist/FieldProps.d.ts.map +1 -0
- package/dist/FieldProps.js +16 -0
- package/dist/Form.d.ts +41 -0
- package/dist/Form.d.ts.map +1 -0
- package/dist/Form.js +69 -0
- package/dist/FormError.d.ts +36 -0
- package/dist/FormError.d.ts.map +1 -0
- package/dist/FormError.js +90 -0
- package/dist/InputComponents.d.ts +30 -0
- package/dist/InputComponents.d.ts.map +1 -0
- package/dist/InputComponents.js +180 -0
- package/dist/Label.d.ts +10 -0
- package/dist/Label.d.ts.map +1 -0
- package/dist/Label.js +58 -0
- package/dist/SelectField.d.ts +7 -0
- package/dist/SelectField.d.ts.map +1 -0
- package/dist/SelectField.js +76 -0
- package/dist/ServerErrorsContext.d.ts +8 -0
- package/dist/ServerErrorsContext.d.ts.map +1 -0
- package/dist/ServerErrorsContext.js +41 -0
- package/dist/Submit.d.ts +16 -0
- package/dist/Submit.d.ts.map +1 -0
- package/dist/Submit.js +39 -0
- package/dist/TextAreaField.d.ts +9 -0
- package/dist/TextAreaField.d.ts.map +1 -0
- package/dist/TextAreaField.js +76 -0
- package/dist/coercion.d.ts +59 -0
- package/dist/coercion.d.ts.map +1 -0
- package/dist/coercion.js +178 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +118 -0
- package/dist/useErrorStyles.d.ts +18 -0
- package/dist/useErrorStyles.d.ts.map +1 -0
- package/dist/useErrorStyles.js +68 -0
- package/dist/useRegister.d.ts +32 -0
- package/dist/useRegister.d.ts.map +1 -0
- package/dist/useRegister.js +69 -0
- 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
|
+
});
|
package/dist/Label.d.ts
ADDED
|
@@ -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
|
+
});
|
package/dist/Submit.d.ts
ADDED
|
@@ -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"}
|