@toptal/picasso-forms 39.1.0 → 41.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/Autocomplete/Autocomplete.d.ts +1 -1
  2. package/Autocomplete/Autocomplete.js +19 -4
  3. package/Autocomplete/Autocomplete.js.map +1 -1
  4. package/ButtonCheckbox/ButtonCheckbox.d.ts +1 -1
  5. package/ButtonCheckbox/ButtonCheckbox.js +2 -2
  6. package/ButtonCheckbox/ButtonCheckbox.js.map +1 -1
  7. package/Checkbox/Checkbox.d.ts +2 -2
  8. package/Checkbox/Checkbox.js +6 -6
  9. package/Checkbox/Checkbox.js.map +1 -1
  10. package/CheckboxGroup/CheckboxGroup.d.ts +1 -1
  11. package/CheckboxGroup/CheckboxGroup.js +4 -3
  12. package/CheckboxGroup/CheckboxGroup.js.map +1 -1
  13. package/DatePicker/DatePicker.d.ts +1 -1
  14. package/DatePicker/DatePicker.js +19 -4
  15. package/DatePicker/DatePicker.js.map +1 -1
  16. package/Dropzone/Dropzone.d.ts +1 -1
  17. package/Dropzone/Dropzone.js +3 -2
  18. package/Dropzone/Dropzone.js.map +1 -1
  19. package/Field/Field.d.ts +29 -0
  20. package/Field/Field.js +88 -0
  21. package/Field/Field.js.map +1 -0
  22. package/Field/index.d.ts +2 -0
  23. package/Field/index.js +3 -0
  24. package/Field/index.js.map +1 -0
  25. package/FieldLabel/FieldLabel.d.ts +12 -0
  26. package/FieldLabel/FieldLabel.js +23 -0
  27. package/FieldLabel/FieldLabel.js.map +1 -0
  28. package/FieldLabel/index.d.ts +2 -0
  29. package/FieldLabel/index.js +3 -0
  30. package/FieldLabel/index.js.map +1 -0
  31. package/FieldWrapper/FieldWrapper.d.ts +4 -22
  32. package/FieldWrapper/FieldWrapper.js +5 -132
  33. package/FieldWrapper/FieldWrapper.js.map +1 -1
  34. package/FieldWrapper/index.d.ts +1 -0
  35. package/FileInput/FileInput.d.ts +1 -1
  36. package/FileInput/FileInput.js +3 -2
  37. package/FileInput/FileInput.js.map +1 -1
  38. package/Form/Form.d.ts +4 -4
  39. package/Form/FormContext.d.ts +2 -2
  40. package/Form/FormContext.js.map +1 -1
  41. package/Form/index.d.ts +1 -0
  42. package/Form/index.js +1 -0
  43. package/Form/index.js.map +1 -1
  44. package/FormConfig/FormConfig.d.ts +1 -0
  45. package/FormConfig/FormConfig.js.map +1 -1
  46. package/Input/Input.d.ts +2 -2
  47. package/Input/Input.js +15 -2
  48. package/Input/Input.js.map +1 -1
  49. package/Input/index.d.ts +1 -0
  50. package/Input/index.js +1 -0
  51. package/Input/index.js.map +1 -1
  52. package/InputField/InputField.d.ts +11 -0
  53. package/InputField/InputField.js +50 -0
  54. package/InputField/InputField.js.map +1 -0
  55. package/InputField/index.d.ts +1 -0
  56. package/InputField/index.js +2 -0
  57. package/InputField/index.js.map +1 -0
  58. package/NumberInput/NumberInput.d.ts +1 -1
  59. package/NumberInput/NumberInput.js +15 -3
  60. package/NumberInput/NumberInput.js.map +1 -1
  61. package/PasswordInput/FieldRenderer.d.ts +7 -0
  62. package/PasswordInput/FieldRenderer.js +27 -0
  63. package/PasswordInput/FieldRenderer.js.map +1 -0
  64. package/PasswordInput/PasswordInput.d.ts +1 -1
  65. package/PasswordInput/PasswordInput.js +15 -18
  66. package/PasswordInput/PasswordInput.js.map +1 -1
  67. package/RadioGroup/RadioGroup.d.ts +1 -1
  68. package/RadioGroup/RadioGroup.js +4 -7
  69. package/RadioGroup/RadioGroup.js.map +1 -1
  70. package/Rating/Rating.d.ts +2 -2
  71. package/Rating/Rating.js +9 -5
  72. package/Rating/Rating.js.map +1 -1
  73. package/Select/Select.d.ts +2 -2
  74. package/Select/Select.js +5 -4
  75. package/Select/Select.js.map +1 -1
  76. package/Switch/Switch.d.ts +1 -1
  77. package/Switch/Switch.js +3 -3
  78. package/Switch/Switch.js.map +1 -1
  79. package/TagSelector/TagSelector.d.ts +1 -1
  80. package/TagSelector/TagSelector.js +19 -4
  81. package/TagSelector/TagSelector.js.map +1 -1
  82. package/TimePicker/TimePicker.d.ts +1 -1
  83. package/TimePicker/TimePicker.js +21 -4
  84. package/TimePicker/TimePicker.js.map +1 -1
  85. package/index.d.ts +2 -1
  86. package/index.js.map +1 -1
  87. package/package.json +5 -3
  88. package/utils/index.d.ts +1 -0
  89. package/utils/index.js +1 -0
  90. package/utils/index.js.map +1 -1
  91. package/utils/use-field-validation/index.d.ts +1 -0
  92. package/utils/use-field-validation/index.js +2 -0
  93. package/utils/use-field-validation/index.js.map +1 -0
  94. package/utils/use-field-validation/use-field-validation.d.ts +12 -0
  95. package/utils/use-field-validation/use-field-validation.js +34 -0
  96. package/utils/use-field-validation/use-field-validation.js.map +1 -0
  97. package/utils/use-form-input-reset/index.d.ts +1 -0
  98. package/utils/use-form-input-reset/index.js +2 -0
  99. package/utils/use-form-input-reset/index.js.map +1 -0
  100. package/utils/use-form-input-reset/use-form-input-reset.d.ts +8 -0
  101. package/utils/use-form-input-reset/use-form-input-reset.js +17 -0
  102. package/utils/use-form-input-reset/use-form-input-reset.js.map +1 -0
@@ -1,5 +1,5 @@
1
1
  import { AutocompleteProps } from '@toptal/picasso';
2
- import { FieldProps } from '../FieldWrapper';
2
+ import { FieldProps } from '../Field';
3
3
  export declare type Props = AutocompleteProps & FieldProps<AutocompleteProps['value']>;
4
4
  export declare const Autocomplete: {
5
5
  (props: Props): JSX.Element;
@@ -1,9 +1,24 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
1
12
  import React from 'react';
2
13
  import { Autocomplete as PicassoAutocomplete } from '@toptal/picasso';
3
- import FieldWrapper from '../FieldWrapper';
4
- export const Autocomplete = (props) => (React.createElement(FieldWrapper, Object.assign({}, props), (inputProps) => {
5
- return React.createElement(PicassoAutocomplete, Object.assign({}, inputProps));
6
- }));
14
+ import FieldLabel from '../FieldLabel';
15
+ import InputField from '../InputField';
16
+ export const Autocomplete = (props) => {
17
+ const { label, titleCase } = props, rest = __rest(props, ["label", "titleCase"]);
18
+ return (React.createElement(InputField, Object.assign({}, rest, { label: label ? (React.createElement(FieldLabel, { name: props.name, required: props.required, label: label, titleCase: titleCase })) : null }), (inputProps) => {
19
+ return React.createElement(PicassoAutocomplete, Object.assign({}, inputProps));
20
+ }));
21
+ };
7
22
  Autocomplete.displayName = 'Autocomplete';
8
23
  export default Autocomplete;
9
24
  //# sourceMappingURL=Autocomplete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","sourceRoot":"","sources":["../../src/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,YAAY,IAAI,mBAAmB,EAEpC,MAAM,iBAAiB,CAAA;AAExB,OAAO,YAA4B,MAAM,iBAAiB,CAAA;AAI1D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAC5C,oBAAC,YAAY,oBAAwB,KAAK,GACvC,CAAC,UAA6B,EAAE,EAAE;IACjC,OAAO,oBAAC,mBAAmB,oBAAK,UAAU,EAAI,CAAA;AAChD,CAAC,CACY,CAChB,CAAA;AAED,YAAY,CAAC,WAAW,GAAG,cAAc,CAAA;AAEzC,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"Autocomplete.js","sourceRoot":"","sources":["../../src/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,YAAY,IAAI,mBAAmB,EAEpC,MAAM,iBAAiB,CAAA;AAGxB,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,UAAU,MAAM,eAAe,CAAA;AAItC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE;IAC3C,MAAM,EAAE,KAAK,EAAE,SAAS,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAArC,sBAA6B,CAAQ,CAAA;IAE3C,OAAO,CACL,oBAAC,UAAU,oBACL,IAAI,IACR,KAAK,EACH,KAAK,CAAC,CAAC,CAAC,CACN,oBAAC,UAAU,IACT,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,GACpB,CACH,CAAC,CAAC,CAAC,IAAI,KAGT,CAAC,UAA6B,EAAE,EAAE;QACjC,OAAO,oBAAC,mBAAmB,oBAAK,UAAU,EAAI,CAAA;IAChD,CAAC,CACU,CACd,CAAA;AACH,CAAC,CAAA;AAED,YAAY,CAAC,WAAW,GAAG,cAAc,CAAA;AAEzC,eAAe,YAAY,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { ButtonCheckboxProps } from '@toptal/picasso';
2
- import { FieldProps } from '../FieldWrapper';
2
+ import { FieldProps } from '../Field';
3
3
  declare type CheckboxValue = ButtonCheckboxProps['value'] | ButtonCheckboxProps['checked'];
4
4
  declare type CheckboxFormProps = Omit<ButtonCheckboxProps, 'requiredDecoration'> & {
5
5
  required?: boolean;
@@ -12,7 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import React, { useContext } from 'react';
13
13
  import { Button } from '@toptal/picasso';
14
14
  import { Field } from 'react-final-form';
15
- import FieldWrapper from '../FieldWrapper';
15
+ import PicassoField from '../Field';
16
16
  import { CheckboxGroupContext } from '../CheckboxGroup';
17
17
  const ButtonCheckbox = (_a) => {
18
18
  var { name, value, required } = _a, restProps = __rest(_a, ["name", "value", "required"]);
@@ -30,7 +30,7 @@ const ButtonCheckbox = (_a) => {
30
30
  return React.createElement(Button.Checkbox, Object.assign({}, restProps, restInput));
31
31
  }));
32
32
  }
33
- return (React.createElement(FieldWrapper, Object.assign({ type: 'checkbox', hideFieldLabel: true, required: required }, restProps, {
33
+ return (React.createElement(PicassoField, Object.assign({ type: 'checkbox', required: required }, restProps, {
34
34
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
35
35
  name: name }), (input) => React.createElement(Button.Checkbox, Object.assign({}, input))));
36
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonCheckbox.js","sourceRoot":"","sources":["../../src/ButtonCheckbox/ButtonCheckbox.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,MAAM,EAAuB,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EACL,KAAK,EAEN,MAAM,kBAAkB,CAAA;AAEzB,OAAO,YAA4B,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAcvD,MAAM,cAAc,GAAG,CAAC,EAA8C,EAAE,EAAE;QAAlD,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,OAAuB,EAAlB,SAAS,cAArC,6BAAuC,CAAF;IAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAA;IAClD,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAE5C,IAAI,iBAAiB,EAAE;QACrB,OAAO;QACL,oEAAoE;QACpE,oBAAC,KAAK,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,IAAI,SAAU,EAAE,KAAK,EAAE,KAAK,IAC1D,CAAC,EAGmC,EAAE,EAAE;;YAFvC,6DAA6D;YAC7D,aAAgD;YADhD,6DAA6D;YAC7D,EAAS,KAAK,EAAE,UAAU,EAAE,IAAI,OAAgB,EAAX,SAAS,cAAvC,iBAAyC,CAAF;YAE9C,OAAO,oBAAC,MAAM,CAAC,QAAQ,oBAAK,SAAS,EAAM,SAAS,EAAI,CAAA;QAC1D,CAAC,CACK,CACT,CAAA;KACF;IAED,OAAO,CACL,oBAAC,YAAY,kBACX,IAAI,EAAC,UAAU,EACf,cAAc,QACd,QAAQ,EAAE,QAAQ,IACd,SAAS;QACb,oEAAoE;QACpE,IAAI,EAAE,IAAK,KAEV,CAAC,KAA0B,EAAE,EAAE,CAAC,oBAAC,MAAM,CAAC,QAAQ,oBAAK,KAAK,EAAI,CAClD,CAChB,CAAA;AACH,CAAC,CAAA;AAED,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAA;AAE7C,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"ButtonCheckbox.js","sourceRoot":"","sources":["../../src/ButtonCheckbox/ButtonCheckbox.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,MAAM,EAAuB,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EACL,KAAK,EAEN,MAAM,kBAAkB,CAAA;AAEzB,OAAO,YAA4B,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAcvD,MAAM,cAAc,GAAG,CAAC,EAA8C,EAAE,EAAE;QAAlD,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,OAAuB,EAAlB,SAAS,cAArC,6BAAuC,CAAF;IAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAA;IAClD,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAE5C,IAAI,iBAAiB,EAAE;QACrB,OAAO;QACL,oEAAoE;QACpE,oBAAC,KAAK,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,IAAI,SAAU,EAAE,KAAK,EAAE,KAAK,IAC1D,CAAC,EAGmC,EAAE,EAAE;;YAFvC,6DAA6D;YAC7D,aAAgD;YADhD,6DAA6D;YAC7D,EAAS,KAAK,EAAE,UAAU,EAAE,IAAI,OAAgB,EAAX,SAAS,cAAvC,iBAAyC,CAAF;YAE9C,OAAO,oBAAC,MAAM,CAAC,QAAQ,oBAAK,SAAS,EAAM,SAAS,EAAI,CAAA;QAC1D,CAAC,CACK,CACT,CAAA;KACF;IAED,OAAO,CACL,oBAAC,YAAY,kBACX,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,QAAQ,IACd,SAAS;QACb,oEAAoE;QACpE,IAAI,EAAE,IAAK,KAEV,CAAC,KAA0B,EAAE,EAAE,CAAC,oBAAC,MAAM,CAAC,QAAQ,oBAAK,KAAK,EAAI,CAClD,CAChB,CAAA;AACH,CAAC,CAAA;AAED,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAA;AAE7C,eAAe,cAAc,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { CheckboxProps } from '@toptal/picasso';
2
- import { FieldProps } from '../FieldWrapper';
2
+ import { FieldProps } from '../Field';
3
3
  declare type CheckboxValue = CheckboxProps['value'] | CheckboxProps['checked'];
4
4
  declare type CheckboxFormProps = Omit<CheckboxProps, 'requiredDecoration'> & {
5
5
  required?: boolean;
@@ -10,7 +10,7 @@ declare type CheckboxInGroup = CheckboxFormProps & {
10
10
  };
11
11
  export declare type Props = CheckboxWithoutGroup | CheckboxInGroup;
12
12
  export declare const Checkbox: {
13
- ({ name, value, required, defaultValue, ...restProps }: Props): JSX.Element;
13
+ ({ name, value, required, label, defaultValue, ...restProps }: Props): JSX.Element;
14
14
  displayName: string;
15
15
  };
16
16
  export default Checkbox;
@@ -12,13 +12,13 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import React, { useContext } from 'react';
13
13
  import { Checkbox as PicassoCheckbox } from '@toptal/picasso';
14
14
  import { Field } from 'react-final-form';
15
- import FieldWrapper from '../FieldWrapper';
15
+ import PicassoField from '../Field';
16
16
  import { CheckboxGroupContext } from '../CheckboxGroup';
17
17
  import { useFormConfig } from '../FormConfig';
18
18
  export const Checkbox = (_a) => {
19
- var { name, value, required,
19
+ var { name, value, required, label,
20
20
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
- defaultValue } = _a, restProps = __rest(_a, ["name", "value", "required", "defaultValue"]);
21
+ defaultValue } = _a, restProps = __rest(_a, ["name", "value", "required", "label", "defaultValue"]);
22
22
  const formConfig = useFormConfig();
23
23
  const groupName = useContext(CheckboxGroupContext);
24
24
  const isCheckboxInGroup = Boolean(groupName);
@@ -31,14 +31,14 @@ export const Checkbox = (_a) => {
31
31
  _b = _a.input,
32
32
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
33
33
  { value: inputValue, type } = _b, restInput = __rest(_b, ["value", "type"]);
34
- return React.createElement(PicassoCheckbox, Object.assign({}, restProps, restInput));
34
+ return React.createElement(PicassoCheckbox, Object.assign({}, restProps, restInput, { label: label }));
35
35
  }));
36
36
  }
37
37
  const showAsterisk = required && formConfig.requiredVariant === 'asterisk';
38
38
  const requiredDecoration = showAsterisk ? 'asterisk' : undefined;
39
- return (React.createElement(FieldWrapper, Object.assign({ type: 'checkbox', hideFieldLabel: true, required: required }, restProps, {
39
+ return (React.createElement(PicassoField, Object.assign({ type: 'checkbox', required: required }, restProps, {
40
40
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
41
- name: name }), (input) => (React.createElement(PicassoCheckbox, Object.assign({}, input, { titleCase: restProps.titleCase, requiredDecoration: requiredDecoration })))));
41
+ name: name }), (input) => (React.createElement(PicassoCheckbox, Object.assign({}, input, { label: label, titleCase: restProps.titleCase, requiredDecoration: requiredDecoration })))));
42
42
  };
43
43
  Checkbox.displayName = 'Checkbox';
44
44
  export default Checkbox;
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/Checkbox/Checkbox.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAiB,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EACL,KAAK,EAEN,MAAM,kBAAkB,CAAA;AAEzB,OAAO,YAA4B,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAY7C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAOjB,EAAE,EAAE;QAPa,EACvB,IAAI,EACJ,KAAK,EACL,QAAQ;IACR,6DAA6D;IAC7D,YAAY,OAEN,EADH,SAAS,cANW,6CAOxB,CADa;IAEZ,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,SAAS,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAA;IAClD,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAE5C,IAAI,iBAAiB,EAAE;QACrB,OAAO;QACL,oEAAoE;QACpE,oBAAC,KAAK,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,IAAI,SAAU,EAAE,KAAK,EAAE,KAAK,IAC1D,CAAC,EAGmC,EAAE,EAAE;;YAFvC,6DAA6D;YAC7D,aAAgD;YADhD,6DAA6D;YAC7D,EAAS,KAAK,EAAE,UAAU,EAAE,IAAI,OAAgB,EAAX,SAAS,cAAvC,iBAAyC,CAAF;YAE9C,OAAO,oBAAC,eAAe,oBAAK,SAAS,EAAM,SAAS,EAAI,CAAA;QAC1D,CAAC,CACK,CACT,CAAA;KACF;IAED,MAAM,YAAY,GAAG,QAAQ,IAAI,UAAU,CAAC,eAAe,KAAK,UAAU,CAAA;IAC1E,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;IAEhE,OAAO,CACL,oBAAC,YAAY,kBACX,IAAI,EAAC,UAAU,EACf,cAAc,QACd,QAAQ,EAAE,QAAQ,IACd,SAAS;QACb,oEAAoE;QACpE,IAAI,EAAE,IAAK,KAEV,CAAC,KAAoB,EAAE,EAAE,CAAC,CACzB,oBAAC,eAAe,oBACV,KAAK,IACT,SAAS,EAAE,SAAS,CAAC,SAAS,EAC9B,kBAAkB,EAAE,kBAAkB,IACtC,CACH,CACY,CAChB,CAAA;AACH,CAAC,CAAA;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;AAEjC,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/Checkbox/Checkbox.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAiB,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EACL,KAAK,EAEN,MAAM,kBAAkB,CAAA;AAEzB,OAAO,YAA4B,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAY7C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAQjB,EAAE,EAAE;QARa,EACvB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK;IACL,6DAA6D;IAC7D,YAAY,OAEN,EADH,SAAS,cAPW,sDAQxB,CADa;IAEZ,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,SAAS,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAA;IAClD,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAE5C,IAAI,iBAAiB,EAAE;QACrB,OAAO;QACL,oEAAoE;QACpE,oBAAC,KAAK,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,IAAI,SAAU,EAAE,KAAK,EAAE,KAAK,IAC1D,CAAC,EAGmC,EAAE,EAAE;;YAFvC,6DAA6D;YAC7D,aAAgD;YADhD,6DAA6D;YAC7D,EAAS,KAAK,EAAE,UAAU,EAAE,IAAI,OAAgB,EAAX,SAAS,cAAvC,iBAAyC,CAAF;YAE9C,OAAO,oBAAC,eAAe,oBAAK,SAAS,EAAM,SAAS,IAAE,KAAK,EAAE,KAAK,IAAI,CAAA;QACxE,CAAC,CACK,CACT,CAAA;KACF;IAED,MAAM,YAAY,GAAG,QAAQ,IAAI,UAAU,CAAC,eAAe,KAAK,UAAU,CAAA;IAC1E,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;IAEhE,OAAO,CACL,oBAAC,YAAY,kBACX,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,QAAQ,IACd,SAAS;QACb,oEAAoE;QACpE,IAAI,EAAE,IAAK,KAEV,CAAC,KAAoB,EAAE,EAAE,CAAC,CACzB,oBAAC,eAAe,oBACV,KAAK,IACT,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,CAAC,SAAS,EAC9B,kBAAkB,EAAE,kBAAkB,IACtC,CACH,CACY,CAChB,CAAA;AACH,CAAC,CAAA;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;AAEjC,eAAe,QAAQ,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { CheckboxProps, CheckboxGroupProps } from '@toptal/picasso';
2
- import { FieldProps } from '../FieldWrapper';
2
+ import { FieldProps } from '../Field';
3
3
  export declare type Props = CheckboxGroupProps & FieldProps<CheckboxProps['value']>;
4
4
  export declare const CheckboxGroup: {
5
5
  (props: Props): JSX.Element;
@@ -12,12 +12,13 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  /* eslint-disable react/jsx-props-no-spreading */
13
13
  import React from 'react';
14
14
  import { Checkbox as PicassoCheckbox } from '@toptal/picasso';
15
- import FieldWrapper from '../FieldWrapper';
15
+ import PicassoField from '../Field';
16
+ import FieldLabel from '../FieldLabel';
16
17
  import CheckboxGroupContext from './CheckboxGroupContext';
17
18
  export const CheckboxGroup = (props) => {
18
- const { children, titleCase } = props, rest = __rest(props, ["children", "titleCase"]);
19
+ const { children, titleCase, label } = props, rest = __rest(props, ["children", "titleCase", "label"]);
19
20
  return (React.createElement(CheckboxGroupContext.Provider, { value: props.name },
20
- React.createElement(FieldWrapper, Object.assign({ titleCase: titleCase }, rest, { type: 'checkbox' }), () => (React.createElement(PicassoCheckbox.Group, Object.assign({}, rest), children)))));
21
+ React.createElement(PicassoField, Object.assign({}, rest, { type: 'checkbox', label: label ? (React.createElement(FieldLabel, { name: props.name, required: props.required, label: label, titleCase: titleCase })) : null }), () => (React.createElement(PicassoCheckbox.Group, Object.assign({}, rest), children)))));
21
22
  };
22
23
  CheckboxGroup.displayName = 'CheckboxGroup';
23
24
  export default CheckboxGroup;
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxGroup.js","sourceRoot":"","sources":["../../src/CheckboxGroup/CheckboxGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,iDAAiD;AACjD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,QAAQ,IAAI,eAAe,EAG5B,MAAM,iBAAiB,CAAA;AAExB,OAAO,YAA4B,MAAM,iBAAiB,CAAA;AAC1D,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AAIzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE;IAC5C,MAAM,EAAE,QAAQ,EAAE,SAAS,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAAxC,yBAAgC,CAAQ,CAAA;IAE9C,OAAO,CACL,oBAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI;QAC9C,oBAAC,YAAY,kBAAC,SAAS,EAAE,SAAS,IAAM,IAAI,IAAE,IAAI,EAAC,UAAU,KAC1D,GAAG,EAAE,CAAC,CACL,oBAAC,eAAe,CAAC,KAAK,oBAAK,IAAI,GAAG,QAAQ,CAAyB,CACpE,CACY,CACe,CACjC,CAAA;AACH,CAAC,CAAA;AAED,aAAa,CAAC,WAAW,GAAG,eAAe,CAAA;AAE3C,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"CheckboxGroup.js","sourceRoot":"","sources":["../../src/CheckboxGroup/CheckboxGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,iDAAiD;AACjD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,QAAQ,IAAI,eAAe,EAG5B,MAAM,iBAAiB,CAAA;AAExB,OAAO,YAA4B,MAAM,UAAU,CAAA;AACnD,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AAIzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE;IAC5C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAA/C,kCAAuC,CAAQ,CAAA;IAErD,OAAO,CACL,oBAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI;QAC9C,oBAAC,YAAY,oBACP,IAAI,IACR,IAAI,EAAC,UAAU,EACf,KAAK,EACH,KAAK,CAAC,CAAC,CAAC,CACN,oBAAC,UAAU,IACT,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,GACpB,CACH,CAAC,CAAC,CAAC,IAAI,KAGT,GAAG,EAAE,CAAC,CACL,oBAAC,eAAe,CAAC,KAAK,oBAAK,IAAI,GAAG,QAAQ,CAAyB,CACpE,CACY,CACe,CACjC,CAAA;AACH,CAAC,CAAA;AAED,aAAa,CAAC,WAAW,GAAG,eAAe,CAAA;AAE3C,eAAe,aAAa,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { DatePickerProps } from '@toptal/picasso';
2
- import { FieldProps } from '../FieldWrapper';
2
+ import { FieldProps } from '../Field';
3
3
  export declare type FormDatePickerProps = Omit<DatePickerProps, 'onChange'> & {
4
4
  onChange?: DatePickerProps['onChange'];
5
5
  };
@@ -1,9 +1,24 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
1
12
  import React from 'react';
2
13
  import { DatePicker as PicassoDatePicker } from '@toptal/picasso';
3
- import FieldWrapper from '../FieldWrapper';
4
- export const DatePicker = (props) => (React.createElement(FieldWrapper, Object.assign({}, props), (inputProps) => {
5
- return React.createElement(PicassoDatePicker, Object.assign({}, inputProps));
6
- }));
14
+ import InputField from '../InputField';
15
+ import FieldLabel from '../FieldLabel';
16
+ export const DatePicker = (props) => {
17
+ const { label, titleCase } = props, rest = __rest(props, ["label", "titleCase"]);
18
+ return (React.createElement(InputField, Object.assign({}, rest, { label: React.createElement(FieldLabel, { name: props.name, required: props.required, label: label, titleCase: titleCase }) }), (inputProps) => {
19
+ return React.createElement(PicassoDatePicker, Object.assign({}, inputProps));
20
+ }));
21
+ };
7
22
  DatePicker.defaultProps = {};
8
23
  DatePicker.displayName = 'DatePicker';
9
24
  export default DatePicker;
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../src/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,UAAU,IAAI,iBAAiB,EAEhC,MAAM,iBAAiB,CAAA;AAExB,OAAO,YAA4B,MAAM,iBAAiB,CAAA;AAO1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAC1C,oBAAC,YAAY,oBAA0B,KAAK,GACzC,CAAC,UAA2B,EAAE,EAAE;IAC/B,OAAO,oBAAC,iBAAiB,oBAAK,UAAU,EAAI,CAAA;AAC9C,CAAC,CACY,CAChB,CAAA;AAED,UAAU,CAAC,YAAY,GAAG,EAAE,CAAA;AAE5B,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA;AAErC,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../src/DatePicker/DatePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,UAAU,IAAI,iBAAiB,EAEhC,MAAM,iBAAiB,CAAA;AAGxB,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,UAAU,MAAM,eAAe,CAAA;AAOtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAY,EAAE,EAAE;IACzC,MAAM,EAAE,KAAK,EAAE,SAAS,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAArC,sBAA6B,CAAQ,CAAA;IAE3C,OAAO,CACL,oBAAC,UAAU,oBACL,IAAI,IACR,KAAK,EACH,oBAAC,UAAU,IACT,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,GACpB,KAGH,CAAC,UAA2B,EAAE,EAAE;QAC/B,OAAO,oBAAC,iBAAiB,oBAAK,UAAU,EAAI,CAAA;IAC9C,CAAC,CACU,CACd,CAAA;AACH,CAAC,CAAA;AAED,UAAU,CAAC,YAAY,GAAG,EAAE,CAAA;AAE5B,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA;AAErC,eAAe,UAAU,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { DropzoneProps } from '@toptal/picasso';
2
- import { FieldProps } from '../FieldWrapper';
2
+ import { FieldProps } from '../Field';
3
3
  export declare type Props = DropzoneProps & FieldProps<DropzoneProps['value']> & {
4
4
  dropzoneHint?: string;
5
5
  };
@@ -11,7 +11,8 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import React from 'react';
13
13
  import { Dropzone as PicassoDropzone } from '@toptal/picasso';
14
- import FieldWrapper from '../FieldWrapper';
14
+ import PicassoField from '../Field';
15
+ import FieldLabel from '../FieldLabel';
15
16
  const Dropzone = (_a) => {
16
17
  var { dropzoneHint } = _a, props = __rest(_a, ["dropzoneHint"]);
17
18
  const handleDrop = ({ acceptedFiles, value = [], finalFormOnChange }) => {
@@ -28,7 +29,7 @@ const Dropzone = (_a) => {
28
29
  const updatedFiles = value.filter((_, index) => index !== fileIndex);
29
30
  finalFormOnChange(updatedFiles);
30
31
  };
31
- return (React.createElement(FieldWrapper, Object.assign({ hideErrors: true }, props), inputProps => (React.createElement(PicassoDropzone, Object.assign({}, inputProps, { hint: dropzoneHint, onDropAccepted: acceptedFiles => {
32
+ return (React.createElement(PicassoField, Object.assign({ hideErrors: true }, props, { label: React.createElement(FieldLabel, { name: props.name, required: props.required, label: props.label, titleCase: props.titleCase }) }), inputProps => (React.createElement(PicassoDropzone, Object.assign({}, inputProps, { hint: dropzoneHint, onDropAccepted: acceptedFiles => {
32
33
  handleDrop({
33
34
  acceptedFiles,
34
35
  value: inputProps.value,
@@ -1 +1 @@
1
- {"version":3,"file":"Dropzone.js","sourceRoot":"","sources":["../../src/Dropzone/Dropzone.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAiB,MAAM,iBAAiB,CAAA;AAI5E,OAAO,YAA4B,MAAM,iBAAiB,CAAA;AAW1D,MAAM,QAAQ,GAAG,CAAC,EAAiC,EAAE,EAAE;QAArC,EAAE,YAAY,OAAmB,EAAd,KAAK,cAAxB,gBAA0B,CAAF;IACxC,MAAM,UAAU,GAAG,CAAC,EAClB,aAAa,EACb,KAAK,GAAG,EAAE,EACV,iBAAiB,EAKlB,EAAE,EAAE;QACH,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YACzB,OAAM;SACP;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI;YACJ,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC,CAAA;QAEH,iBAAiB,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,EACpB,SAAS,EACT,KAAK,GAAG,EAAE,EACV,iBAAiB,EAKlB,EAAE,EAAE;QACH,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;QAEpE,iBAAiB,CAAC,YAAY,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,YAAY,kBACX,UAAU,UACN,KAAK,GAER,UAAU,CAAC,EAAE,CAAC,CACb,oBAAC,eAAe,oBACV,UAAU,IACd,IAAI,EAAE,YAAY,EAClB,cAAc,EAAE,aAAa,CAAC,EAAE;YAC9B,UAAU,CAAC;gBACT,aAAa;gBACb,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,iBAAiB,EAAE,UAAU,CAAC,QAAQ;aACvC,CAAC,CAAA;QACJ,CAAC,EACD,QAAQ,EAAE,CAAC,SAAiB,EAAE,KAAa,EAAE,EAAE;YAC7C,YAAY,CAAC;gBACX,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,iBAAiB,EAAE,UAAU,CAAC,QAAQ;aACvC,CAAC,CAAA;QACJ,CAAC,IACD,CACH,CACY,CAChB,CAAA;AACH,CAAC,CAAA;AAED,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAA;AAE1B,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;AAEjC,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"Dropzone.js","sourceRoot":"","sources":["../../src/Dropzone/Dropzone.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAiB,MAAM,iBAAiB,CAAA;AAI5E,OAAO,YAA4B,MAAM,UAAU,CAAA;AACnD,OAAO,UAAU,MAAM,eAAe,CAAA;AAWtC,MAAM,QAAQ,GAAG,CAAC,EAAiC,EAAE,EAAE;QAArC,EAAE,YAAY,OAAmB,EAAd,KAAK,cAAxB,gBAA0B,CAAF;IACxC,MAAM,UAAU,GAAG,CAAC,EAClB,aAAa,EACb,KAAK,GAAG,EAAE,EACV,iBAAiB,EAKlB,EAAE,EAAE;QACH,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YACzB,OAAM;SACP;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI;YACJ,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC,CAAA;QAEH,iBAAiB,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,EACpB,SAAS,EACT,KAAK,GAAG,EAAE,EACV,iBAAiB,EAKlB,EAAE,EAAE;QACH,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;QAEpE,iBAAiB,CAAC,YAAY,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,YAAY,kBACX,UAAU,UACN,KAAK,IACT,KAAK,EACH,oBAAC,UAAU,IACT,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,SAAS,EAAE,KAAK,CAAC,SAAS,GAC1B,KAGH,UAAU,CAAC,EAAE,CAAC,CACb,oBAAC,eAAe,oBACV,UAAU,IACd,IAAI,EAAE,YAAY,EAClB,cAAc,EAAE,aAAa,CAAC,EAAE;YAC9B,UAAU,CAAC;gBACT,aAAa;gBACb,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,iBAAiB,EAAE,UAAU,CAAC,QAAQ;aACvC,CAAC,CAAA;QACJ,CAAC,EACD,QAAQ,EAAE,CAAC,SAAiB,EAAE,KAAa,EAAE,EAAE;YAC7C,YAAY,CAAC;gBACX,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,iBAAiB,EAAE,UAAU,CAAC,QAAQ;aACvC,CAAC,CAAA;QACJ,CAAC,IACD,CACH,CACY,CAChB,CAAA;AACH,CAAC,CAAA;AAED,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAA;AAE1B,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;AAEjC,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { FieldProps as FinalFieldProps, FieldRenderProps } from 'react-final-form';
3
+ import { DateOrDateRangeType, OutlinedInputStatus } from '@toptal/picasso';
4
+ import { Item } from '@toptal/picasso/Autocomplete';
5
+ import { FileUpload } from '@toptal/picasso/FileInput';
6
+ import { TextLabelProps } from '@toptal/picasso-shared';
7
+ export declare type ValueType = string | string[] | number | boolean | null | undefined | FileUpload[] | DateOrDateRangeType | Item | Item[];
8
+ export declare type FieldProps<TInputValue> = FinalFieldProps<TInputValue, FieldRenderProps<TInputValue, HTMLInputElement>, HTMLInputElement> & TextLabelProps;
9
+ export interface IFormComponentProps {
10
+ value?: ValueType;
11
+ }
12
+ export declare type Props<TWrappedComponentProps extends IFormComponentProps, TInputValue> = TWrappedComponentProps & FieldProps<TInputValue> & {
13
+ name: string;
14
+ type?: string;
15
+ label?: React.ReactNode;
16
+ fieldType?: string;
17
+ status?: OutlinedInputStatus;
18
+ children: (props: any) => React.ReactNode;
19
+ renderFieldRequirements?: (props: {
20
+ value?: TInputValue;
21
+ error?: boolean;
22
+ }) => React.ReactNode;
23
+ };
24
+ declare const Field: {
25
+ <TWrappedComponentProps extends IFormComponentProps, TInputValue extends ValueType = TWrappedComponentProps["value"]>(props: Props<TWrappedComponentProps, TInputValue>): JSX.Element;
26
+ defaultProps: {};
27
+ displayName: string;
28
+ };
29
+ export default Field;
package/Field/Field.js ADDED
@@ -0,0 +1,88 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React, { useMemo } from 'react';
13
+ import { useField } from 'react-final-form';
14
+ import { Form as PicassoForm } from '@toptal/picasso';
15
+ import { useFormConfig } from '../FormConfig';
16
+ import { validators, useFieldValidation } from '../utils';
17
+ const { composeValidators, required: requiredValidator } = validators;
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
+ const getValidators = (required, validate) => {
20
+ if (required && validate) {
21
+ return composeValidators([requiredValidator, validate]);
22
+ }
23
+ if (required && !validate) {
24
+ return requiredValidator;
25
+ }
26
+ return validate;
27
+ };
28
+ const Field = (props) => {
29
+ const { type, hint, label, required, 'data-testid': dataTestId, renderFieldRequirements, status,
30
+ // FieldProps - https://final-form.org/docs/react-final-form/types/FieldProps
31
+ afterSubmit, allowNull, beforeSubmit, children, data, defaultValue, format, formatOnBlur, initialValue, isEqual, name, id = name, parse, subscription, validate, validateFields, value } = props,
32
+ //
33
+ rest = __rest(props, ["type", "hint", "label", "required", 'data-testid', "renderFieldRequirements", "status", "afterSubmit", "allowNull", "beforeSubmit", "children", "data", "defaultValue", "format", "formatOnBlur", "initialValue", "isEqual", "name", "id", "parse", "subscription", "validate", "validateFields", "value"]);
34
+ const { validateOnSubmit: shouldValidateOnSubmit } = useFormConfig();
35
+ const validators = useMemo(() => getValidators(required, validate), [required, validate]);
36
+ const { meta, input } = useField(name, {
37
+ validate: shouldValidateOnSubmit ? undefined : validators,
38
+ type,
39
+ afterSubmit,
40
+ allowNull,
41
+ beforeSubmit,
42
+ data,
43
+ defaultValue,
44
+ format,
45
+ formatOnBlur,
46
+ initialValue,
47
+ isEqual,
48
+ parse,
49
+ subscription,
50
+ validateFields,
51
+ value
52
+ });
53
+ const error = useFieldValidation({
54
+ name,
55
+ meta,
56
+ validators,
57
+ shouldValidateOnSubmit
58
+ });
59
+ const childProps = Object.assign(Object.assign(Object.assign({ id,
60
+ status }, rest), input), {
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ onChange: (event) => {
63
+ input.onChange(event);
64
+ if (rest.onChange) {
65
+ rest.onChange(event);
66
+ }
67
+ }, onBlur: (event) => {
68
+ input.onBlur(event);
69
+ if (rest.onBlur) {
70
+ rest.onBlur(event);
71
+ }
72
+ }, onFocus: (event) => {
73
+ input.onFocus(event);
74
+ if (rest.onFocus) {
75
+ rest.onFocus(event);
76
+ }
77
+ } });
78
+ return (React.createElement(PicassoForm.Field, { error: error, hint: hint, "data-testid": dataTestId, fieldRequirements: renderFieldRequirements === null || renderFieldRequirements === void 0 ? void 0 : renderFieldRequirements({
79
+ value: input.value,
80
+ error: status === 'error'
81
+ }) },
82
+ label,
83
+ children(childProps)));
84
+ };
85
+ Field.defaultProps = {};
86
+ Field.displayName = 'Field';
87
+ export default Field;
88
+ //# sourceMappingURL=Field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../src/Field/Field.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { default } from './Field';
2
+ export * from './Field';
package/Field/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { default } from './Field';
2
+ export * from './Field';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Field/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,cAAc,SAAS,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { TextLabelProps } from '@toptal/picasso-shared';
2
+ export declare type Props = {
3
+ name?: string;
4
+ label?: string;
5
+ required?: boolean;
6
+ } & TextLabelProps;
7
+ declare const FieldLabel: {
8
+ (props: Props): JSX.Element;
9
+ defaultProps: {};
10
+ displayName: string;
11
+ };
12
+ export default FieldLabel;
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { Form as PicassoForm } from '@toptal/picasso';
3
+ import { useFormConfig } from '../FormConfig';
4
+ const getRequiredDecoration = (required, requiredVariant) => {
5
+ const showAsterisk = required && requiredVariant === 'asterisk';
6
+ if (showAsterisk) {
7
+ return 'asterisk';
8
+ }
9
+ const showOptional = !required && (!requiredVariant || requiredVariant === 'default');
10
+ if (showOptional) {
11
+ return 'optional';
12
+ }
13
+ };
14
+ const FieldLabel = (props) => {
15
+ const { label, required, titleCase, name } = props;
16
+ const formConfig = useFormConfig();
17
+ const requiredDecoration = getRequiredDecoration(required, formConfig.requiredVariant);
18
+ return (React.createElement(PicassoForm.Label, { requiredDecoration: requiredDecoration, htmlFor: name, titleCase: titleCase }, label));
19
+ };
20
+ FieldLabel.defaultProps = {};
21
+ FieldLabel.displayName = 'FieldLabel';
22
+ export default FieldLabel;
23
+ //# sourceMappingURL=FieldLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldLabel.js","sourceRoot":"","sources":["../../src/FieldLabel/FieldLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,IAAI,IAAI,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AAGzE,OAAO,EAAE,aAAa,EAAmB,MAAM,eAAe,CAAA;AAQ9D,MAAM,qBAAqB,GAAG,CAC5B,QAAkB,EAClB,eAAiC,EACD,EAAE;IAClC,MAAM,YAAY,GAAG,QAAQ,IAAI,eAAe,KAAK,UAAU,CAAA;IAE/D,IAAI,YAAY,EAAE;QAChB,OAAO,UAAU,CAAA;KAClB;IAED,MAAM,YAAY,GAChB,CAAC,QAAQ,IAAI,CAAC,CAAC,eAAe,IAAI,eAAe,KAAK,SAAS,CAAC,CAAA;IAElE,IAAI,YAAY,EAAE;QAChB,OAAO,UAAU,CAAA;KAClB;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,KAAY,EAAE,EAAE;IAClC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAElD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,kBAAkB,GAAG,qBAAqB,CAC9C,QAAQ,EACR,UAAU,CAAC,eAAe,CAC3B,CAAA;IAED,OAAO,CACL,oBAAC,WAAW,CAAC,KAAK,IAChB,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,SAAS,IAEnB,KAAK,CACY,CACrB,CAAA;AACH,CAAC,CAAA;AAED,UAAU,CAAC,YAAY,GAAG,EAAE,CAAA;AAE5B,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA;AAErC,eAAe,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { default } from './FieldLabel';
2
+ export * from './FieldLabel';
@@ -0,0 +1,3 @@
1
+ export { default } from './FieldLabel';
2
+ export * from './FieldLabel';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/FieldLabel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,cAAc,cAAc,CAAA"}
@@ -1,27 +1,9 @@
1
- import React from 'react';
2
- import { FieldProps as FinalFieldProps, FieldRenderProps } from 'react-final-form';
3
- import { DateOrDateRangeType } from '@toptal/picasso';
4
- import { Item } from '@toptal/picasso/Autocomplete';
5
- import { FileUpload } from '@toptal/picasso/FileInput';
6
- import { TextLabelProps } from '@toptal/picasso-shared';
7
- declare type ValueType = string | string[] | number | boolean | null | undefined | FileUpload[] | DateOrDateRangeType | Item | Item[];
8
- export declare type FieldProps<TInputValue> = FinalFieldProps<TInputValue, FieldRenderProps<TInputValue, HTMLInputElement>, HTMLInputElement> & TextLabelProps;
9
- export declare type Props<TInputValue, TWrappedComponentProps> = TWrappedComponentProps & FieldProps<TInputValue> & TextLabelProps & {
10
- name: string;
11
- type?: string;
12
- hideFieldLabel?: boolean;
13
- hideLabelRequiredDecoration?: boolean;
14
- fieldType?: string;
15
- children: (props: any) => React.ReactNode;
16
- renderFieldRequirements?: (props: {
17
- value?: TInputValue;
18
- error?: boolean;
19
- }) => React.ReactNode;
1
+ import { Props as FieldProps, ValueType, IFormComponentProps } from '../Field';
2
+ export declare type Props<TWrappedComponentProps, TInputValue> = Omit<FieldProps<TWrappedComponentProps, TInputValue>, 'label'> & {
3
+ label?: string;
20
4
  };
21
5
  declare const FieldWrapper: {
22
- <TWrappedComponentProps extends {
23
- value?: ValueType;
24
- }, TInputValue extends ValueType = TWrappedComponentProps["value"]>(props: Props<TInputValue, TWrappedComponentProps>): JSX.Element;
6
+ <TWrappedComponentProps extends IFormComponentProps, TInputValue extends ValueType = TWrappedComponentProps["value"]>(props: Props<TWrappedComponentProps, TInputValue>): JSX.Element;
25
7
  defaultProps: {};
26
8
  displayName: string;
27
9
  };