envoc-form 5.0.3 → 5.0.6

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 (145) hide show
  1. package/README.md +163 -20
  2. package/es/ConfirmBaseForm/ConfirmBaseForm.js +2 -2
  3. package/es/DatePicker/DatePickerGroup.js +2 -2
  4. package/es/FieldArray/FieldArray.js +4 -4
  5. package/es/File/FileGroup.js +3 -3
  6. package/es/Form/Form.js +2 -2
  7. package/es/Group.js +3 -3
  8. package/es/Input/CheckboxGroup.d.ts +6 -0
  9. package/es/Input/CheckboxGroup.js +14 -0
  10. package/es/Input/CheckboxInputGroup.d.ts +13 -0
  11. package/es/Input/CheckboxInputGroup.js +41 -0
  12. package/es/Input/IconInputGroup.js +2 -2
  13. package/es/Input/InputGroup.js +2 -2
  14. package/es/Input/MoneyInputGroup.js +2 -2
  15. package/es/Input/NumberInputGroup.js +2 -2
  16. package/es/Input/PhoneNumberInputGroup.js +2 -2
  17. package/es/Input/StringInputGroup.js +2 -2
  18. package/es/Select/SelectGroup.js +3 -3
  19. package/es/StandardFormActions.js +3 -3
  20. package/es/SubmitFormButton.js +2 -2
  21. package/es/TextArea/TextAreaGroup.js +2 -2
  22. package/es/index.d.ts +2 -0
  23. package/es/index.js +1 -0
  24. package/lib/ConfirmBaseForm/ConfirmBaseForm.js +2 -5
  25. package/lib/DatePicker/DatePickerGroup.js +2 -2
  26. package/lib/FieldArray/FieldArray.js +4 -4
  27. package/lib/File/FileGroup.js +3 -3
  28. package/lib/Form/Form.js +2 -2
  29. package/lib/Group.js +3 -3
  30. package/lib/Input/CheckboxGroup.d.ts +6 -0
  31. package/lib/Input/CheckboxGroup.js +20 -0
  32. package/lib/Input/CheckboxInputGroup.d.ts +13 -0
  33. package/lib/Input/CheckboxInputGroup.js +46 -0
  34. package/lib/Input/IconInputGroup.js +2 -2
  35. package/lib/Input/InputGroup.js +2 -2
  36. package/lib/Input/MoneyInputGroup.js +2 -2
  37. package/lib/Input/NumberInputGroup.js +2 -2
  38. package/lib/Input/PhoneNumberInputGroup.js +2 -2
  39. package/lib/Input/StringInputGroup.js +2 -2
  40. package/lib/Select/SelectGroup.js +3 -3
  41. package/lib/StandardFormActions.js +3 -3
  42. package/lib/SubmitFormButton.js +2 -2
  43. package/lib/TextArea/TextAreaGroup.js +2 -2
  44. package/lib/index.d.ts +2 -0
  45. package/lib/index.js +3 -1
  46. package/package.json +111 -111
  47. package/src/AddressInput/AddressInput.test.tsx +27 -27
  48. package/src/AddressInput/AddressInput.tsx +82 -82
  49. package/src/AddressInput/UsStates.ts +55 -55
  50. package/src/AddressInput/__snapshots__/AddressInput.test.tsx.snap +182 -182
  51. package/src/ConfirmBaseForm/ConfirmBaseForm.test.tsx +24 -24
  52. package/src/ConfirmBaseForm/ConfirmBaseForm.tsx +74 -74
  53. package/src/ConfirmBaseForm/__snapshots__/ConfirmBaseForm.test.tsx.snap +23 -23
  54. package/src/ConfirmDeleteForm/ConfirmDeleteForm.test.tsx +24 -24
  55. package/src/ConfirmDeleteForm/ConfirmDeleteForm.tsx +87 -87
  56. package/src/ConfirmDeleteForm/__snapshots__/ConfirmDeleteForm.test.tsx.snap +25 -25
  57. package/src/DatePicker/DatePicker.test.tsx +48 -48
  58. package/src/DatePicker/DatePickerGroup.tsx +109 -115
  59. package/src/DatePicker/DatePickerHelper.ts +4 -4
  60. package/src/DatePicker/StringDateOnlyPickerGroup.tsx +28 -28
  61. package/src/DatePicker/StringDatePickerGroup.tsx +20 -20
  62. package/src/DatePicker/__snapshots__/DatePicker.test.tsx.snap +152 -152
  63. package/src/Field/CustomFieldInputProps.ts +10 -10
  64. package/src/Field/CustomFieldMetaProps.ts +5 -5
  65. package/src/Field/Field.tsx +113 -113
  66. package/src/Field/FieldErrorScrollTarget.tsx +12 -12
  67. package/src/Field/FieldNameContext.ts +6 -6
  68. package/src/Field/FieldSection.tsx +18 -18
  69. package/src/Field/InjectedFieldProps.ts +8 -8
  70. package/src/Field/StandAloneInput.tsx +55 -55
  71. package/src/Field/useStandardField.ts +125 -125
  72. package/src/FieldArray/FieldArray.tsx +154 -154
  73. package/src/File/FileGroup.test.tsx +35 -35
  74. package/src/File/FileGroup.tsx +82 -85
  75. package/src/File/FileList.tsx +21 -21
  76. package/src/File/__snapshots__/FileGroup.test.tsx.snap +34 -34
  77. package/src/File/humanFileSize.ts +8 -8
  78. package/src/Form/FocusError.tsx +55 -55
  79. package/src/Form/Form.test.tsx +14 -14
  80. package/src/Form/Form.tsx +234 -237
  81. package/src/Form/FormBasedPreventNavigation.tsx +56 -56
  82. package/src/Form/LegacyFormBasedPreventNavigation.tsx +77 -77
  83. package/src/Form/NewFormBasedPreventNavigation.tsx +59 -59
  84. package/src/Form/ServerErrorContext.ts +18 -18
  85. package/src/Form/__snapshots__/Form.test.tsx.snap +10 -10
  86. package/src/FormActions.tsx +47 -47
  87. package/src/FormDefaults.ts +2 -2
  88. package/src/Group.tsx +62 -62
  89. package/src/Input/CheckboxGroup.tsx +60 -0
  90. package/src/Input/CheckboxInputGroup.tsx +78 -0
  91. package/src/Input/IconInputGroup.tsx +54 -54
  92. package/src/Input/InputGroup.tsx +66 -72
  93. package/src/Input/MoneyInputGroup.tsx +47 -50
  94. package/src/Input/NumberInputGroup.tsx +45 -48
  95. package/src/Input/PhoneNumberInputGroup.tsx +45 -45
  96. package/src/Input/StringInputGroup.tsx +50 -53
  97. package/src/Input/__Tests__/CheckboxInputGroup.test.tsx +26 -0
  98. package/src/Input/__Tests__/IconInputGroup.test.tsx +35 -35
  99. package/src/Input/__Tests__/MoneyInputGroup.test.tsx +37 -37
  100. package/src/Input/__Tests__/NumberInputGroup.test.tsx +35 -35
  101. package/src/Input/__Tests__/PhoneNumberInputGroup.test.tsx +36 -36
  102. package/src/Input/__Tests__/StringInputGroup.test.tsx +27 -27
  103. package/src/Input/__Tests__/__snapshots__/CheckboxInputGroup.test.tsx.snap +33 -0
  104. package/src/Input/__Tests__/__snapshots__/IconInputGroup.test.tsx.snap +32 -32
  105. package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +34 -34
  106. package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +32 -32
  107. package/src/Input/__Tests__/__snapshots__/PhoneNumberInputGroup.test.tsx.snap +33 -33
  108. package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +31 -31
  109. package/src/Normalization/NormalizationFunction.ts +4 -4
  110. package/src/Normalization/normalizers.ts +44 -44
  111. package/src/Select/BooleanSelectGroup.tsx +28 -28
  112. package/src/Select/NumberSelectGroup.tsx +16 -16
  113. package/src/Select/SelectGroup.tsx +124 -124
  114. package/src/Select/SelectGroupPropsHelper.ts +4 -4
  115. package/src/Select/StringSelectGroup.tsx +16 -16
  116. package/src/Select/__tests__/BooleanSelectGroup.test.tsx +35 -35
  117. package/src/Select/__tests__/NumberSelectGroup.test.tsx +87 -87
  118. package/src/Select/__tests__/StringSelectGroup.test.tsx +89 -89
  119. package/src/Select/__tests__/__snapshots__/BooleanSelectGroup.test.tsx.snap +98 -98
  120. package/src/Select/__tests__/__snapshots__/NumberSelectGroup.test.tsx.snap +195 -195
  121. package/src/Select/__tests__/__snapshots__/StringSelectGroup.test.tsx.snap +195 -195
  122. package/src/StandardFormActions.tsx +41 -41
  123. package/src/SubmitFormButton.tsx +54 -54
  124. package/src/TextArea/TextAreaGroup.tsx +64 -64
  125. package/src/Validation/ValidatedApiResult.ts +8 -8
  126. package/src/Validation/ValidationError.ts +6 -6
  127. package/src/Validation/ValidationFunction.ts +4 -4
  128. package/src/Validation/validators.test.tsx +81 -81
  129. package/src/Validation/validators.ts +97 -97
  130. package/src/__Tests__/FormTestBase.tsx +65 -64
  131. package/src/__Tests__/RealisticForm.test.tsx +82 -82
  132. package/src/__Tests__/StandardFormActions.test.tsx +17 -17
  133. package/src/__Tests__/SubmitFormButton.test.tsx +17 -17
  134. package/src/__Tests__/__snapshots__/StandardFormActions.test.tsx.snap +27 -27
  135. package/src/__Tests__/__snapshots__/SubmitFormButton.test.tsx.snap +20 -20
  136. package/src/__Tests__/index.ts +3 -3
  137. package/src/_variables.scss +11 -11
  138. package/src/index.ts +156 -153
  139. package/src/react-app-env.d.ts +1 -1
  140. package/src/setupTests.ts +1 -1
  141. package/src/utils/objectContainsNonSerializableProperty.test.tsx +49 -49
  142. package/src/utils/objectContainsNonSerializableProperty.ts +17 -17
  143. package/src/utils/objectToFormData.test.tsx +76 -76
  144. package/src/utils/objectToFormData.ts +105 -105
  145. package/src/utils/typeChecks.ts +18 -18
@@ -1,13 +1,13 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import classNames from 'classnames';
2
+ import { clsx } from 'clsx';
3
3
  import { useFormikContext } from 'formik';
4
- import SubmitFormButton from './SubmitFormButton';
5
4
  import { FormDefaults } from './FormDefaults';
5
+ import SubmitFormButton from './SubmitFormButton';
6
6
  /** Standard submit and cancel buttons. */
7
7
  export default function StandardFormActions(_a) {
8
8
  var allowPristineSubmit = _a.allowPristineSubmit, handleCancel = _a.handleCancel;
9
9
  var isSubmitting = useFormikContext().isSubmitting;
10
- return (_jsxs(_Fragment, { children: [_jsx(SubmitFormButton, { allowPristineSubmit: allowPristineSubmit }), "\u00A0", _jsx("button", { className: classNames(FormDefaults.cssClassPrefix + 'standard-form-actions-cancel-button'), type: "button", disabled: isSubmitting, onClick: handleCancel || goBack, children: "Cancel" })] }));
10
+ return (_jsxs(_Fragment, { children: [_jsx(SubmitFormButton, { allowPristineSubmit: allowPristineSubmit }), "\u00A0", _jsx("button", { className: clsx(FormDefaults.cssClassPrefix + 'standard-form-actions-cancel-button'), type: "button", disabled: isSubmitting, onClick: handleCancel || goBack, children: "Cancel" })] }));
11
11
  function goBack() {
12
12
  window.history.back();
13
13
  }
@@ -22,7 +22,7 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  };
23
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
24
  import React from 'react';
25
- import classNames from 'classnames';
25
+ import { clsx } from 'clsx';
26
26
  import { useFormikContext } from 'formik';
27
27
  import { FormDefaults } from './FormDefaults';
28
28
  function SubmitFormButton(_a, ref) {
@@ -34,7 +34,7 @@ function SubmitFormButton(_a, ref) {
34
34
  ? 'Loading, please wait...'
35
35
  : preventSubmit
36
36
  ? "You haven't made any changes"
37
- : '', className: classNames(FormDefaults.cssClassPrefix + 'submit-form-button', className), children: children || 'Submit' })));
37
+ : '', className: clsx(FormDefaults.cssClassPrefix + 'submit-form-button', className), children: children || 'Submit' })));
38
38
  }
39
39
  /** Generic submit button for forms. */
40
40
  export default React.forwardRef(SubmitFormButton);
@@ -22,13 +22,13 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  };
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
24
  import React from 'react';
25
- import classNames from 'classnames';
25
+ import { clsx } from 'clsx';
26
26
  import { FormDefaults } from '../FormDefaults';
27
27
  import Group from '../Group';
28
28
  function TextAreaGroup(_a, ref) {
29
29
  var _b;
30
30
  var input = _a.input, meta = _a.meta, label = _a.label, helpText = _a.helpText, className = _a.className, required = _a.required, disabled = _a.disabled, icon = _a.icon, rest = __rest(_a, ["input", "meta", "label", "helpText", "className", "required", "disabled", "icon"]);
31
- return (_jsxs(Group, { input: input, meta: meta, required: required, disabled: disabled, label: label, helpText: helpText, className: classNames(className, FormDefaults.cssClassPrefix + 'text-area-group'), children: [icon, _jsx("textarea", __assign({}, input, rest, { value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (val) { return input.onChange(val.target.value); }, ref: ref, className: classNames(className, FormDefaults.cssClassPrefix + 'text-area-group') }))] }));
31
+ return (_jsxs(Group, { input: input, meta: meta, required: required, disabled: disabled, label: label, helpText: helpText, className: clsx(className, FormDefaults.cssClassPrefix + 'text-area-group'), children: [icon, _jsx("textarea", __assign({}, input, rest, { value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (val) { return input.onChange(val.target.value); }, ref: ref, className: clsx(className, FormDefaults.cssClassPrefix + 'text-area-group') }))] }));
32
32
  }
33
33
  /** Generic controlled `<textarea/>` wrapped by a `<Group/>` */
34
34
  var TextAreaGroupWithRef = React.forwardRef(TextAreaGroup);
package/es/index.d.ts CHANGED
@@ -58,6 +58,8 @@ export { default as SelectGroup } from './Select/SelectGroup';
58
58
  export type { SelectGroupProps, SelectOption } from './Select/SelectGroup';
59
59
  export { BooleanSelectGroup } from './Select/BooleanSelectGroup';
60
60
  export type { BooleanSelectGroupProps } from './Select/BooleanSelectGroup';
61
+ export { default as CheckboxInputGroup } from './Input/CheckboxInputGroup';
62
+ export type { CheckboxInputGroupProps } from './Input/CheckboxInputGroup';
61
63
  export { MultiNumberSelectGroup, SingleNumberSelectGroup, } from './Select/NumberSelectGroup';
62
64
  export type { MultiNumberSelectGroupProps, SingleNumberSelectGroupProps, } from './Select/NumberSelectGroup';
63
65
  export type { SelectGroupPropsHelper } from './Select/SelectGroupPropsHelper';
package/es/index.js CHANGED
@@ -40,6 +40,7 @@ export * as normalizers from './Normalization/normalizers';
40
40
  // Select
41
41
  export { default as SelectGroup } from './Select/SelectGroup';
42
42
  export { BooleanSelectGroup } from './Select/BooleanSelectGroup';
43
+ export { default as CheckboxInputGroup } from './Input/CheckboxInputGroup';
43
44
  export { MultiNumberSelectGroup, SingleNumberSelectGroup, } from './Select/NumberSelectGroup';
44
45
  export { MultiStringSelectGroup, SingleStringSelectGroup, } from './Select/StringSelectGroup';
45
46
  // Text Area
@@ -21,12 +21,9 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  }
22
22
  return t;
23
23
  };
24
- var __importDefault = (this && this.__importDefault) || function (mod) {
25
- return (mod && mod.__esModule) ? mod : { "default": mod };
26
- };
27
24
  Object.defineProperty(exports, "__esModule", { value: true });
28
25
  var jsx_runtime_1 = require("react/jsx-runtime");
29
- var classnames_1 = __importDefault(require("classnames"));
26
+ var clsx_1 = require("clsx");
30
27
  var envoc_request_1 = require("envoc-request");
31
28
  var FormDefaults_1 = require("../FormDefaults");
32
29
  // TODO: ask about how we should use 'children'
@@ -40,7 +37,7 @@ function ConfirmBaseForm(_a) {
40
37
  var handleCancel = _a.handleCancel, request = _a.request, style = _a.style, title = _a.title, confirmButtonText = _a.confirmButtonText, confirmButtonClass = _a.confirmButtonClass, children = _a.children, props = __rest(_a, ["handleCancel", "request", "style", "title", "confirmButtonText", "confirmButtonClass", "children"]);
41
38
  var webRequest = (0, envoc_request_1.useAxiosRequest)(Object.assign({}, request, { autoExecute: false }));
42
39
  var onCancel = handleCancel !== null && handleCancel !== void 0 ? handleCancel : goBack;
43
- return ((0, jsx_runtime_1.jsxs)("div", __assign({ style: __assign({ textAlign: 'center' }, style) }, props, { children: [(0, jsx_runtime_1.jsx)("h3", { children: title }), children, (0, jsx_runtime_1.jsx)("button", { className: (0, classnames_1.default)(confirmButtonClass !== null && confirmButtonClass !== void 0 ? confirmButtonClass : FormDefaults_1.FormDefaults.cssClassPrefix + 'confirm-base-form-confirm-button'), type: "button", onClick: webRequest.submitRequest, children: confirmButtonText !== null && confirmButtonText !== void 0 ? confirmButtonText : 'Confirm' }), (0, jsx_runtime_1.jsx)("button", { className: (0, classnames_1.default)(FormDefaults_1.FormDefaults.cssClassPrefix + 'confirm-base-form-cancel-button'), type: "button", onClick: onCancel, children: "Cancel" })] })));
40
+ return ((0, jsx_runtime_1.jsxs)("div", __assign({ style: __assign({ textAlign: 'center' }, style) }, props, { children: [(0, jsx_runtime_1.jsx)("h3", { children: title }), children, (0, jsx_runtime_1.jsx)("button", { className: (0, clsx_1.clsx)(confirmButtonClass !== null && confirmButtonClass !== void 0 ? confirmButtonClass : FormDefaults_1.FormDefaults.cssClassPrefix + 'confirm-base-form-confirm-button'), type: "button", onClick: webRequest.submitRequest, children: confirmButtonText !== null && confirmButtonText !== void 0 ? confirmButtonText : 'Confirm' }), (0, jsx_runtime_1.jsx)("button", { className: (0, clsx_1.clsx)(FormDefaults_1.FormDefaults.cssClassPrefix + 'confirm-base-form-cancel-button'), type: "button", onClick: onCancel, children: "Cancel" })] })));
44
41
  function goBack() {
45
42
  window.history.back();
46
43
  }
@@ -29,7 +29,7 @@ exports.convertToTimeZoneInsensitiveISOString = void 0;
29
29
  var jsx_runtime_1 = require("react/jsx-runtime");
30
30
  var react_1 = require("react");
31
31
  var entry_nostyle_1 = __importDefault(require("react-date-picker/dist/entry.nostyle"));
32
- var classnames_1 = __importDefault(require("classnames"));
32
+ var clsx_1 = require("clsx");
33
33
  var parseISO_1 = __importDefault(require("date-fns/parseISO"));
34
34
  var FormDefaults_1 = require("../FormDefaults");
35
35
  var Group_1 = __importDefault(require("../Group"));
@@ -54,7 +54,7 @@ function DatePickerGroup(_a) {
54
54
  }
55
55
  }
56
56
  }, [setDisplayDate, input.value]);
57
- return ((0, jsx_runtime_1.jsx)(Group_1.default, { input: input, meta: meta, label: label, helpText: helpText, className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'date-picker'), required: required, disabled: disabled, children: (0, jsx_runtime_1.jsx)(entry_nostyle_1.default, __assign({}, rest, { className: (0, classnames_1.default)(FormDefaults_1.FormDefaults.cssClassPrefix + 'date-picker', className), value: displayDate, onChange: handleChange })) }));
57
+ return ((0, jsx_runtime_1.jsx)(Group_1.default, { input: input, meta: meta, label: label, helpText: helpText, className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'date-picker'), required: required, disabled: disabled, children: (0, jsx_runtime_1.jsx)(entry_nostyle_1.default, __assign({}, rest, { className: (0, clsx_1.clsx)(FormDefaults_1.FormDefaults.cssClassPrefix + 'date-picker', className), value: displayDate, onChange: handleChange })) }));
58
58
  function handleChange(e) {
59
59
  var onChange = input.onChange;
60
60
  if (onChange === null) {
@@ -24,7 +24,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  var jsx_runtime_1 = require("react/jsx-runtime");
27
- var classnames_1 = __importDefault(require("classnames"));
27
+ var clsx_1 = require("clsx");
28
28
  var Field_1 = __importDefault(require("../Field/Field"));
29
29
  var FieldNameContext_1 = require("../Field/FieldNameContext");
30
30
  var useStandardField_1 = __importDefault(require("../Field/useStandardField"));
@@ -47,15 +47,15 @@ function FieldArray(_a) {
47
47
  : Array.isArray(input.value)
48
48
  ? input.value
49
49
  : [];
50
- return ((0, jsx_runtime_1.jsxs)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'field-array', children: [(0, jsx_runtime_1.jsxs)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'field-array-header', children: [(0, jsx_runtime_1.jsx)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'field-array-title', children: label }), (0, jsx_runtime_1.jsx)("button", { className: (0, classnames_1.default)(FormDefaults_1.FormDefaults.cssClassPrefix + 'add-array-item-button', (_b = {}, _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'disabled'] = disabled, _b)), title: "Add Item", type: "button", onClick: addItem, children: "+" })] }), (0, jsx_runtime_1.jsx)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'field-array-body', children: values.map(function (value, index) {
50
+ return ((0, jsx_runtime_1.jsxs)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'field-array', children: [(0, jsx_runtime_1.jsxs)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'field-array-header', children: [(0, jsx_runtime_1.jsx)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'field-array-title', children: label }), (0, jsx_runtime_1.jsx)("button", { className: (0, clsx_1.clsx)(FormDefaults_1.FormDefaults.cssClassPrefix + 'add-array-item-button', (_b = {}, _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'disabled'] = disabled, _b)), title: "Add Item", type: "button", onClick: addItem, children: "+" })] }), (0, jsx_runtime_1.jsx)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'field-array-body', children: values.map(function (value, index) {
51
51
  var _a, _b;
52
52
  var itemName = "".concat(input.name, "[").concat(index, "]");
53
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(FormDefaults_1.FormDefaults.cssClassPrefix + 'field-array-item', (_a = {},
53
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.clsx)(FormDefaults_1.FormDefaults.cssClassPrefix + 'field-array-item', (_a = {},
54
54
  _a[FormDefaults_1.FormDefaults.cssClassPrefix + 'removed'] = value.isDeleted,
55
55
  _a)), role: "listitem", children: [(0, jsx_runtime_1.jsx)(FieldNameContext_1.FieldNameContext.Provider, { value: itemName, children: children({
56
56
  Field: Field_1.default,
57
57
  FieldArray: FieldArray,
58
- }) }), (0, jsx_runtime_1.jsx)("button", { className: (0, classnames_1.default)(FormDefaults_1.FormDefaults.cssClassPrefix + 'remove-array-item-button', (_b = {}, _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'disabled'] = disabled, _b)), type: "button", title: "Remove Item", onClick: function () { return removeItem(value); }, children: "-" })] }, (value && value['form-input-array-key']) ||
58
+ }) }), (0, jsx_runtime_1.jsx)("button", { className: (0, clsx_1.clsx)(FormDefaults_1.FormDefaults.cssClassPrefix + 'remove-array-item-button', (_b = {}, _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'disabled'] = disabled, _b)), type: "button", title: "Remove Item", onClick: function () { return removeItem(value); }, children: "-" })] }, (value && value['form-input-array-key']) ||
59
59
  (value && value['id']) ||
60
60
  itemName));
61
61
  }) })] }));
@@ -27,14 +27,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_1 = __importDefault(require("react"));
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var FileList_1 = __importDefault(require("./FileList"));
32
32
  var FormDefaults_1 = require("../FormDefaults");
33
33
  var Group_1 = __importDefault(require("../Group"));
34
34
  function FileGroup(_a, ref) {
35
35
  var _b;
36
36
  var input = _a.input, meta = _a.meta, label = _a.label, helpText = _a.helpText, className = _a.className, required = _a.required, disabled = _a.disabled, multiple = _a.multiple, rest = __rest(_a, ["input", "meta", "label", "helpText", "className", "required", "disabled", "multiple"]);
37
- return ((0, jsx_runtime_1.jsxs)(Group_1.default, { input: input, meta: meta, label: label, helpText: helpText, className: (0, classnames_1.default)(className, (_b = {}, _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'multiple'] = multiple, _b), FormDefaults_1.FormDefaults.cssClassPrefix + 'file-group'), required: required, disabled: disabled, children: [(0, jsx_runtime_1.jsx)("input", __assign({}, input, rest, { multiple: multiple, onChange: function (e) {
37
+ return ((0, jsx_runtime_1.jsxs)(Group_1.default, { input: input, meta: meta, label: label, helpText: helpText, className: (0, clsx_1.clsx)(className, (_b = {}, _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'multiple'] = multiple, _b), FormDefaults_1.FormDefaults.cssClassPrefix + 'file-group'), required: required, disabled: disabled, children: [(0, jsx_runtime_1.jsx)("input", __assign({}, input, rest, { multiple: multiple, onChange: function (e) {
38
38
  var _a, _b;
39
39
  if (!((_b = (_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b.length)) {
40
40
  input.onChange(undefined);
@@ -51,7 +51,7 @@ function FileGroup(_a, ref) {
51
51
  input.onChange(files);
52
52
  }
53
53
  }
54
- }, value: undefined, ref: ref, type: "file", className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'file-group') })), (0, jsx_runtime_1.jsx)(FileList_1.default, { files: input.value })] }));
54
+ }, value: undefined, ref: ref, type: "file", className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'file-group') })), (0, jsx_runtime_1.jsx)(FileList_1.default, { files: input.value })] }));
55
55
  }
56
56
  /** File upload input group. */
57
57
  var FileGroupWithRef = react_1.default.forwardRef(FileGroup);
package/lib/Form/Form.js CHANGED
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_1 = require("react");
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var formik_1 = require("formik");
32
32
  var FocusError_1 = __importDefault(require("./FocusError"));
33
33
  var FormBasedPreventNavigation_1 = __importDefault(require("./FormBasedPreventNavigation"));
@@ -59,7 +59,7 @@ function Form(_a) {
59
59
  _a)));
60
60
  },
61
61
  }); }, [serverErrors]);
62
- return ((0, jsx_runtime_1.jsx)(formik_1.Formik, __assign({ validateOnChange: false, validateOnBlur: true, validateOnMount: false, initialValues: initialValues || {}, onSubmit: handleSubmit }, props, { children: (0, jsx_runtime_1.jsx)(ServerErrorContext_1.ServerErrorContext.Provider, { value: serverErrorContextValue, children: (0, jsx_runtime_1.jsxs)(formik_1.Form, { className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'form'), style: style, children: [(0, jsx_runtime_1.jsx)(FocusError_1.default, { serverErrors: serverErrorContextValue }), (0, jsx_runtime_1.jsx)(FormBasedPreventNavigation_1.default, { ignoreLostChanges: ignoreLostChanges }), children({
62
+ return ((0, jsx_runtime_1.jsx)(formik_1.Formik, __assign({ validateOnChange: false, validateOnBlur: true, validateOnMount: false, initialValues: initialValues || {}, onSubmit: handleSubmit }, props, { children: (0, jsx_runtime_1.jsx)(ServerErrorContext_1.ServerErrorContext.Provider, { value: serverErrorContextValue, children: (0, jsx_runtime_1.jsxs)(formik_1.Form, { className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'form'), style: style, children: [(0, jsx_runtime_1.jsx)(FocusError_1.default, { serverErrors: serverErrorContextValue }), (0, jsx_runtime_1.jsx)(FormBasedPreventNavigation_1.default, { ignoreLostChanges: ignoreLostChanges }), children({
63
63
  // hack for ref forwarding
64
64
  Field: Field_1.default,
65
65
  FieldArray: FieldArray_1.default,
package/lib/Group.js CHANGED
@@ -4,14 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var jsx_runtime_1 = require("react/jsx-runtime");
7
- var classnames_1 = __importDefault(require("classnames"));
8
- var FormDefaults_1 = require("./FormDefaults");
7
+ var clsx_1 = require("clsx");
9
8
  var FieldErrorScrollTarget_1 = __importDefault(require("./Field/FieldErrorScrollTarget"));
9
+ var FormDefaults_1 = require("./FormDefaults");
10
10
  /** Contains standard field bits like a label, helper text, error scroll target, validation message container, etc. */
11
11
  function Group(_a) {
12
12
  var _b;
13
13
  var className = _a.className, children = _a.children, label = _a.label, helpText = _a.helpText, meta = _a.meta, input = _a.input, disabled = _a.disabled, required = _a.required;
14
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'group', (_b = {},
14
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'group', (_b = {},
15
15
  _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'invalid'] = meta.error,
16
16
  _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'disabled'] = disabled,
17
17
  _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'required'] = required,
@@ -0,0 +1,6 @@
1
+ import { GroupProps } from '../Group';
2
+ export interface CheckboxGroupProps extends GroupProps {
3
+ labelOnLeft?: boolean;
4
+ }
5
+ /** Contains standard field bits like a label, helper text, error scroll target, validation message container, etc. */
6
+ export default function CheckboxGroup({ className, children, label, helpText, meta, input, disabled, required, labelOnLeft, }: CheckboxGroupProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
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
+ var jsx_runtime_1 = require("react/jsx-runtime");
7
+ var clsx_1 = require("clsx");
8
+ var FieldErrorScrollTarget_1 = __importDefault(require("../Field/FieldErrorScrollTarget"));
9
+ var FormDefaults_1 = require("../FormDefaults");
10
+ /** Contains standard field bits like a label, helper text, error scroll target, validation message container, etc. */
11
+ function CheckboxGroup(_a) {
12
+ var _b;
13
+ var className = _a.className, children = _a.children, label = _a.label, helpText = _a.helpText, meta = _a.meta, input = _a.input, disabled = _a.disabled, required = _a.required, labelOnLeft = _a.labelOnLeft;
14
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'group', (_b = {},
15
+ _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'invalid'] = meta.error,
16
+ _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'disabled'] = disabled,
17
+ _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'required'] = required,
18
+ _b)), children: [(0, jsx_runtime_1.jsx)(FieldErrorScrollTarget_1.default, {}), meta.warning && ((0, jsx_runtime_1.jsx)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'warning', children: meta.warning })), (0, jsx_runtime_1.jsx)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'checkbox-group-input', children: labelOnLeft ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: input.id, children: label }), children] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [children, (0, jsx_runtime_1.jsx)("label", { htmlFor: input.id, children: label })] })) }), meta.error && ((0, jsx_runtime_1.jsx)("div", { id: "".concat(input.id, "-error"), className: FormDefaults_1.FormDefaults.cssClassPrefix + 'error', children: meta.error })), helpText && ((0, jsx_runtime_1.jsx)("div", { className: FormDefaults_1.FormDefaults.cssClassPrefix + 'help', children: helpText }))] }));
19
+ }
20
+ exports.default = CheckboxGroup;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { InputGroupProps } from './InputGroup';
3
+ export interface CheckboxInputGroupProps extends Omit<InputGroupProps<boolean | undefined | null>, 'onChange' | 'type' | 'value'> {
4
+ labelOnLeft?: boolean;
5
+ }
6
+ /** Standard checkbox input. Value defaults to `undefined` with no user input and no initial values.
7
+ *
8
+ * If the user should be required to decide yes / no before submission, consider using `BooleanSelectGroup`.
9
+ *
10
+ * If the user should be required to check the box before submission, use the `required` prop.
11
+ */
12
+ declare const CheckboxInputGroupWithRef: React.ComponentType<CheckboxInputGroupProps>;
13
+ export default CheckboxInputGroupWithRef;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ var jsx_runtime_1 = require("react/jsx-runtime");
29
+ var react_1 = __importDefault(require("react"));
30
+ var clsx_1 = require("clsx");
31
+ var CheckboxGroup_1 = __importDefault(require("./CheckboxGroup"));
32
+ var FormDefaults_1 = require("../FormDefaults");
33
+ function CheckboxInputGroup(_a, ref) {
34
+ var input = _a.input, meta = _a.meta, disabled = _a.disabled, label = _a.label, required = _a.required, helpText = _a.helpText, className = _a.className, labelOnLeft = _a.labelOnLeft, rest = __rest(_a, ["input", "meta", "disabled", "label", "required", "helpText", "className", "labelOnLeft"]);
35
+ return ((0, jsx_runtime_1.jsx)(CheckboxGroup_1.default, { input: input, meta: meta, disabled: disabled, required: required, label: label, helpText: helpText, labelOnLeft: labelOnLeft, className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'checkbox-group', { 'label-on-left': labelOnLeft }, { 'label-on-right': !labelOnLeft }), children: (0, jsx_runtime_1.jsx)("input", __assign({}, rest, { type: "checkbox", "aria-invalid": !!meta.error, "aria-errormessage": !!meta.error ? "".concat(input.name, "-error") : undefined, className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'checkbox-group'), checked: input.value === true, onChange: function (e) {
36
+ input.onChange(e.target.checked);
37
+ }, disabled: disabled, required: required, onBlur: input.onBlur, id: input.id, name: input.name, ref: ref })) }));
38
+ }
39
+ /** Standard checkbox input. Value defaults to `undefined` with no user input and no initial values.
40
+ *
41
+ * If the user should be required to decide yes / no before submission, consider using `BooleanSelectGroup`.
42
+ *
43
+ * If the user should be required to check the box before submission, use the `required` prop.
44
+ */
45
+ var CheckboxInputGroupWithRef = react_1.default.forwardRef(CheckboxInputGroup);
46
+ exports.default = CheckboxInputGroupWithRef;
@@ -27,14 +27,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_1 = __importDefault(require("react"));
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var InputGroup_1 = __importDefault(require("./InputGroup"));
32
32
  var FormDefaults_1 = require("../FormDefaults");
33
33
  function IconInputGroup(_a, ref) {
34
34
  var _b;
35
35
  var icon = _a.icon, className = _a.className, rest = __rest(_a, ["icon", "className"]);
36
36
  var input = rest.input;
37
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ icon: icon, ref: ref, className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'icon-input-group'), value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (e) {
37
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ icon: icon, ref: ref, className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'icon-input-group'), value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (e) {
38
38
  if (!e.target.value) {
39
39
  input.onChange(undefined);
40
40
  }
@@ -27,12 +27,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_1 = __importDefault(require("react"));
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var FormDefaults_1 = require("../FormDefaults");
32
32
  var Group_1 = __importDefault(require("../Group"));
33
33
  function InputGroup(_a, ref) {
34
34
  var input = _a.input, meta = _a.meta, label = _a.label, helpText = _a.helpText, className = _a.className, required = _a.required, disabled = _a.disabled, onChange = _a.onChange, value = _a.value, icon = _a.icon, rest = __rest(_a, ["input", "meta", "label", "helpText", "className", "required", "disabled", "onChange", "value", "icon"]);
35
- return ((0, jsx_runtime_1.jsxs)(Group_1.default, { input: input, meta: meta, required: required, disabled: disabled, label: label, helpText: helpText, className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'input-group'), children: [icon, (0, jsx_runtime_1.jsx)("input", __assign({}, input, rest, { "aria-invalid": !!meta.error, "aria-errormessage": !!meta.error ? "".concat(input.name, "-error") : undefined, value: value !== null && value !== void 0 ? value : '', onChange: onChange, ref: ref, className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'input-group') }))] }));
35
+ return ((0, jsx_runtime_1.jsxs)(Group_1.default, { input: input, meta: meta, required: required, disabled: disabled, label: label, helpText: helpText, className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'input-group'), children: [icon, (0, jsx_runtime_1.jsx)("input", __assign({}, input, rest, { "aria-invalid": !!meta.error, "aria-errormessage": !!meta.error ? "".concat(input.name, "-error") : undefined, value: value !== null && value !== void 0 ? value : '', onChange: onChange, ref: ref, className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'input-group') }))] }));
36
36
  }
37
37
  /** Generic controlled `<input/>` wrapped by a `<Group/>` */
38
38
  var InputGroupWithRef = react_1.default.forwardRef(InputGroup);
@@ -27,14 +27,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_1 = __importDefault(require("react"));
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var InputGroup_1 = __importDefault(require("./InputGroup"));
32
32
  var FormDefaults_1 = require("../FormDefaults");
33
33
  function MoneyInputGroup(_a, ref) {
34
34
  var parseFunc = _a.parseFunc, className = _a.className, rest = __rest(_a, ["parseFunc", "className"]);
35
35
  var effectiveParse = parseFunc !== null && parseFunc !== void 0 ? parseFunc : parseFloat;
36
36
  var input = rest.input;
37
- return ((0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ ref: ref, step: 0.01, min: 0 }, rest, { type: "number", className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'money-group'), value: input.value || '', onChange: function (e) {
37
+ return ((0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ ref: ref, step: 0.01, min: 0 }, rest, { type: "number", className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'money-group'), value: input.value || '', onChange: function (e) {
38
38
  if (!e.target.value) {
39
39
  input.onChange(undefined);
40
40
  }
@@ -27,14 +27,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_1 = __importDefault(require("react"));
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var InputGroup_1 = __importDefault(require("./InputGroup"));
32
32
  var FormDefaults_1 = require("../FormDefaults");
33
33
  function NumberInputGroup(_a, ref) {
34
34
  var parseFunc = _a.parseFunc, className = _a.className, rest = __rest(_a, ["parseFunc", "className"]);
35
35
  var effectiveParse = parseFunc !== null && parseFunc !== void 0 ? parseFunc : parseFloat;
36
36
  var input = rest.input;
37
- return ((0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ ref: ref }, rest, { type: "number", className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'number-group'), value: input.value || '', onChange: function (e) {
37
+ return ((0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ ref: ref }, rest, { type: "number", className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'number-group'), value: input.value || '', onChange: function (e) {
38
38
  if (!e.target.value) {
39
39
  input.onChange(undefined);
40
40
  }
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_1 = __importDefault(require("react"));
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var InputGroup_1 = __importDefault(require("./InputGroup"));
32
32
  var FormDefaults_1 = require("../FormDefaults");
33
33
  var normalizers_1 = require("../Normalization/normalizers");
@@ -35,7 +35,7 @@ function PhoneNumberInputGroup(_a, ref) {
35
35
  var _b;
36
36
  var className = _a.className, rest = __rest(_a, ["className"]);
37
37
  var input = rest.input;
38
- return ((0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ ref: ref, autoComplete: "tel-national" }, rest, { type: "text", className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'phone-number-group'), value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (e) {
38
+ return ((0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ ref: ref, autoComplete: "tel-national" }, rest, { type: "text", className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'phone-number-group'), value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (e) {
39
39
  if (!e.target.value) {
40
40
  input.onChange(undefined);
41
41
  }
@@ -27,14 +27,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_1 = __importDefault(require("react"));
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var InputGroup_1 = __importDefault(require("./InputGroup"));
32
32
  var FormDefaults_1 = require("../FormDefaults");
33
33
  function StringInputGroup(_a, ref) {
34
34
  var _b;
35
35
  var className = _a.className, rest = __rest(_a, ["className"]);
36
36
  var input = rest.input;
37
- return ((0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ ref: ref }, rest, { className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'string-group'), value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (e) {
37
+ return ((0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ ref: ref }, rest, { className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'string-group'), value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (e) {
38
38
  if (!e.target.value) {
39
39
  input.onChange(undefined);
40
40
  }
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_select_1 = __importDefault(require("react-select"));
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var FormDefaults_1 = require("../FormDefaults");
32
32
  var Group_1 = __importDefault(require("../Group"));
33
33
  // TODO: we could also name this "ReactSelectGroup" or similar but the types are strongly defined now so kept the names consistent
@@ -48,7 +48,7 @@ function SelectGroup(_a) {
48
48
  ? options.resp
49
49
  : [];
50
50
  var isLoading = (options && 'loading' in options && options.loading) || false;
51
- return ((0, jsx_runtime_1.jsx)(Group_1.default, __assign({}, rest, { input: input, meta: meta, required: required, disabled: disabled, className: (0, classnames_1.default)(className, (_b = {},
51
+ return ((0, jsx_runtime_1.jsx)(Group_1.default, __assign({}, rest, { input: input, meta: meta, required: required, disabled: disabled, className: (0, clsx_1.clsx)(className, (_b = {},
52
52
  _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'multiple'] = multiple,
53
53
  _b[FormDefaults_1.FormDefaults.cssClassPrefix + 'loading'] = isLoading,
54
54
  _b), FormDefaults_1.FormDefaults.cssClassPrefix + 'select-group'), children: (0, jsx_runtime_1.jsx)(react_select_1.default, { inputId: input.id, isMulti: multiple, isDisabled: disabled, options: effectiveOptions, onBlur: input.onBlur, value: getValue(), onChange: function (e) {
@@ -58,7 +58,7 @@ function SelectGroup(_a) {
58
58
  else {
59
59
  input.onChange(e === null || e === void 0 ? void 0 : e.value);
60
60
  }
61
- }, getOptionLabel: function (option) { var _a; return (_a = option === null || option === void 0 ? void 0 : option.label) !== null && _a !== void 0 ? _a : ''; }, className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'select-group'), classNamePrefix: "react-select", menuPortalTarget: document.body, menuPlacement: "auto", placeholder: placeholder }) })));
61
+ }, getOptionLabel: function (option) { var _a; return (_a = option === null || option === void 0 ? void 0 : option.label) !== null && _a !== void 0 ? _a : ''; }, className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'select-group'), classNamePrefix: "react-select", menuPortalTarget: document.body, menuPlacement: "auto", placeholder: placeholder }) })));
62
62
  function getValue() {
63
63
  if (multiple) {
64
64
  return effectiveOptions.filter(function (o) {
@@ -4,15 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var jsx_runtime_1 = require("react/jsx-runtime");
7
- var classnames_1 = __importDefault(require("classnames"));
7
+ var clsx_1 = require("clsx");
8
8
  var formik_1 = require("formik");
9
- var SubmitFormButton_1 = __importDefault(require("./SubmitFormButton"));
10
9
  var FormDefaults_1 = require("./FormDefaults");
10
+ var SubmitFormButton_1 = __importDefault(require("./SubmitFormButton"));
11
11
  /** Standard submit and cancel buttons. */
12
12
  function StandardFormActions(_a) {
13
13
  var allowPristineSubmit = _a.allowPristineSubmit, handleCancel = _a.handleCancel;
14
14
  var isSubmitting = (0, formik_1.useFormikContext)().isSubmitting;
15
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(SubmitFormButton_1.default, { allowPristineSubmit: allowPristineSubmit }), "\u00A0", (0, jsx_runtime_1.jsx)("button", { className: (0, classnames_1.default)(FormDefaults_1.FormDefaults.cssClassPrefix + 'standard-form-actions-cancel-button'), type: "button", disabled: isSubmitting, onClick: handleCancel || goBack, children: "Cancel" })] }));
15
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(SubmitFormButton_1.default, { allowPristineSubmit: allowPristineSubmit }), "\u00A0", (0, jsx_runtime_1.jsx)("button", { className: (0, clsx_1.clsx)(FormDefaults_1.FormDefaults.cssClassPrefix + 'standard-form-actions-cancel-button'), type: "button", disabled: isSubmitting, onClick: handleCancel || goBack, children: "Cancel" })] }));
16
16
  function goBack() {
17
17
  window.history.back();
18
18
  }
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_1 = __importDefault(require("react"));
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var formik_1 = require("formik");
32
32
  var FormDefaults_1 = require("./FormDefaults");
33
33
  function SubmitFormButton(_a, ref) {
@@ -39,7 +39,7 @@ function SubmitFormButton(_a, ref) {
39
39
  ? 'Loading, please wait...'
40
40
  : preventSubmit
41
41
  ? "You haven't made any changes"
42
- : '', className: (0, classnames_1.default)(FormDefaults_1.FormDefaults.cssClassPrefix + 'submit-form-button', className), children: children || 'Submit' })));
42
+ : '', className: (0, clsx_1.clsx)(FormDefaults_1.FormDefaults.cssClassPrefix + 'submit-form-button', className), children: children || 'Submit' })));
43
43
  }
44
44
  /** Generic submit button for forms. */
45
45
  exports.default = react_1.default.forwardRef(SubmitFormButton);
@@ -27,13 +27,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
29
  var react_1 = __importDefault(require("react"));
30
- var classnames_1 = __importDefault(require("classnames"));
30
+ var clsx_1 = require("clsx");
31
31
  var FormDefaults_1 = require("../FormDefaults");
32
32
  var Group_1 = __importDefault(require("../Group"));
33
33
  function TextAreaGroup(_a, ref) {
34
34
  var _b;
35
35
  var input = _a.input, meta = _a.meta, label = _a.label, helpText = _a.helpText, className = _a.className, required = _a.required, disabled = _a.disabled, icon = _a.icon, rest = __rest(_a, ["input", "meta", "label", "helpText", "className", "required", "disabled", "icon"]);
36
- return ((0, jsx_runtime_1.jsxs)(Group_1.default, { input: input, meta: meta, required: required, disabled: disabled, label: label, helpText: helpText, className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'text-area-group'), children: [icon, (0, jsx_runtime_1.jsx)("textarea", __assign({}, input, rest, { value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (val) { return input.onChange(val.target.value); }, ref: ref, className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'text-area-group') }))] }));
36
+ return ((0, jsx_runtime_1.jsxs)(Group_1.default, { input: input, meta: meta, required: required, disabled: disabled, label: label, helpText: helpText, className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'text-area-group'), children: [icon, (0, jsx_runtime_1.jsx)("textarea", __assign({}, input, rest, { value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (val) { return input.onChange(val.target.value); }, ref: ref, className: (0, clsx_1.clsx)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'text-area-group') }))] }));
37
37
  }
38
38
  /** Generic controlled `<textarea/>` wrapped by a `<Group/>` */
39
39
  var TextAreaGroupWithRef = react_1.default.forwardRef(TextAreaGroup);
package/lib/index.d.ts CHANGED
@@ -58,6 +58,8 @@ export { default as SelectGroup } from './Select/SelectGroup';
58
58
  export type { SelectGroupProps, SelectOption } from './Select/SelectGroup';
59
59
  export { BooleanSelectGroup } from './Select/BooleanSelectGroup';
60
60
  export type { BooleanSelectGroupProps } from './Select/BooleanSelectGroup';
61
+ export { default as CheckboxInputGroup } from './Input/CheckboxInputGroup';
62
+ export type { CheckboxInputGroupProps } from './Input/CheckboxInputGroup';
61
63
  export { MultiNumberSelectGroup, SingleNumberSelectGroup, } from './Select/NumberSelectGroup';
62
64
  export type { MultiNumberSelectGroupProps, SingleNumberSelectGroupProps, } from './Select/NumberSelectGroup';
63
65
  export type { SelectGroupPropsHelper } from './Select/SelectGroupPropsHelper';
package/lib/index.js CHANGED
@@ -29,7 +29,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
29
29
  return (mod && mod.__esModule) ? mod : { "default": mod };
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.validators = exports.serialize = exports.objectContainsNonSerializableProperty = exports.TextAreaGroup = exports.SingleStringSelectGroup = exports.MultiStringSelectGroup = exports.SingleNumberSelectGroup = exports.MultiNumberSelectGroup = exports.BooleanSelectGroup = exports.SelectGroup = exports.normalizers = exports.StringInputGroup = exports.PhoneNumberInputGroup = exports.NumberInputGroup = exports.MoneyInputGroup = exports.InputGroup = exports.IconInputGroup = exports.Group = exports.FormDefaults = exports.StandardFormActions = exports.FormActions = exports.ServerErrorContext = exports.Form = exports.FileGroup = exports.FieldArray = exports.useStandardField = exports.StandAloneInput = exports.FieldNameContext = exports.FieldErrorScrollTarget = exports.Field = exports.StringDateOnlyPickerGroup = exports.StringDatePickerGroup = exports.convertToTimeZoneInsensitiveISOString = exports.DatePickerGroup = exports.ConfirmDeleteForm = exports.ConfirmBaseForm = exports.SubmitFormButton = exports.AddressInput = void 0;
32
+ exports.validators = exports.serialize = exports.objectContainsNonSerializableProperty = exports.TextAreaGroup = exports.SingleStringSelectGroup = exports.MultiStringSelectGroup = exports.SingleNumberSelectGroup = exports.MultiNumberSelectGroup = exports.CheckboxInputGroup = exports.BooleanSelectGroup = exports.SelectGroup = exports.normalizers = exports.StringInputGroup = exports.PhoneNumberInputGroup = exports.NumberInputGroup = exports.MoneyInputGroup = exports.InputGroup = exports.IconInputGroup = exports.Group = exports.FormDefaults = exports.StandardFormActions = exports.FormActions = exports.ServerErrorContext = exports.Form = exports.FileGroup = exports.FieldArray = exports.useStandardField = exports.StandAloneInput = exports.FieldNameContext = exports.FieldErrorScrollTarget = exports.Field = exports.StringDateOnlyPickerGroup = exports.StringDatePickerGroup = exports.convertToTimeZoneInsensitiveISOString = exports.DatePickerGroup = exports.ConfirmDeleteForm = exports.ConfirmBaseForm = exports.SubmitFormButton = exports.AddressInput = void 0;
33
33
  // Address
34
34
  var AddressInput_1 = require("./AddressInput/AddressInput");
35
35
  Object.defineProperty(exports, "AddressInput", { enumerable: true, get: function () { return __importDefault(AddressInput_1).default; } });
@@ -101,6 +101,8 @@ var SelectGroup_1 = require("./Select/SelectGroup");
101
101
  Object.defineProperty(exports, "SelectGroup", { enumerable: true, get: function () { return __importDefault(SelectGroup_1).default; } });
102
102
  var BooleanSelectGroup_1 = require("./Select/BooleanSelectGroup");
103
103
  Object.defineProperty(exports, "BooleanSelectGroup", { enumerable: true, get: function () { return BooleanSelectGroup_1.BooleanSelectGroup; } });
104
+ var CheckboxInputGroup_1 = require("./Input/CheckboxInputGroup");
105
+ Object.defineProperty(exports, "CheckboxInputGroup", { enumerable: true, get: function () { return __importDefault(CheckboxInputGroup_1).default; } });
104
106
  var NumberSelectGroup_1 = require("./Select/NumberSelectGroup");
105
107
  Object.defineProperty(exports, "MultiNumberSelectGroup", { enumerable: true, get: function () { return NumberSelectGroup_1.MultiNumberSelectGroup; } });
106
108
  Object.defineProperty(exports, "SingleNumberSelectGroup", { enumerable: true, get: function () { return NumberSelectGroup_1.SingleNumberSelectGroup; } });