@ilo-org/react 0.7.8 → 0.8.1

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 (174) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/cjs/components/Checkbox/Checkbox.js +28 -16
  3. package/lib/cjs/components/Checkbox/index.js +25 -3
  4. package/lib/cjs/components/DatePicker/DatePicker.js +21 -16
  5. package/lib/cjs/components/DatePicker/index.js +4 -4
  6. package/lib/cjs/components/Dropdown/Dropdown.js +19 -15
  7. package/lib/cjs/components/Dropdown/index.js +3 -3
  8. package/lib/cjs/components/Fieldset/Fieldset.js +33 -9
  9. package/lib/cjs/components/Fieldset/index.js +2 -2
  10. package/lib/cjs/components/FileUpload/FileUpload.js +29 -15
  11. package/lib/cjs/components/FileUpload/index.js +3 -3
  12. package/lib/cjs/components/Form/Form.js +8 -55
  13. package/lib/cjs/components/Form/index.js +10 -20
  14. package/lib/cjs/components/FormControl/FormControl.js +79 -0
  15. package/lib/cjs/components/FormControl/index.js +16 -0
  16. package/lib/cjs/components/Input/Input.js +1 -1
  17. package/lib/cjs/components/NumberPicker/NumberPicker.js +21 -16
  18. package/lib/cjs/components/NumberPicker/index.js +4 -4
  19. package/lib/cjs/components/Radio/Radio.js +34 -17
  20. package/lib/cjs/components/Radio/index.js +19 -4
  21. package/lib/cjs/components/TextInput/TextInput.js +30 -0
  22. package/lib/cjs/components/TextInput/index.js +52 -0
  23. package/lib/cjs/components/Textarea/Textarea.js +19 -19
  24. package/lib/cjs/components/Textarea/index.js +26 -5
  25. package/lib/cjs/components/Toggle/Toggle.js +33 -0
  26. package/lib/cjs/components/Toggle/index.js +51 -0
  27. package/lib/cjs/components/Tooltip/Tooltip.js +2 -2
  28. package/lib/cjs/components/index.js +10 -11
  29. package/lib/cjs/hooks/usePrevious.js +20 -0
  30. package/lib/cjs/index.js +10 -11
  31. package/lib/esm/components/Checkbox/Checkbox.js +31 -19
  32. package/lib/esm/components/Checkbox/index.js +27 -2
  33. package/lib/esm/components/DatePicker/DatePicker.js +22 -17
  34. package/lib/esm/components/DatePicker/index.js +4 -4
  35. package/lib/esm/components/Dropdown/Dropdown.js +20 -16
  36. package/lib/esm/components/Dropdown/index.js +3 -3
  37. package/lib/esm/components/Fieldset/Fieldset.js +31 -11
  38. package/lib/esm/components/Fieldset/index.js +1 -1
  39. package/lib/esm/components/FileUpload/FileUpload.js +31 -17
  40. package/lib/esm/components/FileUpload/index.js +3 -3
  41. package/lib/esm/components/Form/Form.js +10 -57
  42. package/lib/esm/components/Form/index.js +13 -20
  43. package/lib/esm/components/FormControl/FormControl.js +73 -0
  44. package/lib/esm/components/{ChoiceGroup → FormControl}/index.js +3 -6
  45. package/lib/esm/components/NumberPicker/NumberPicker.js +21 -16
  46. package/lib/esm/components/NumberPicker/index.js +4 -4
  47. package/lib/esm/components/Radio/Radio.js +34 -17
  48. package/lib/esm/components/Radio/index.js +21 -3
  49. package/lib/esm/components/TextInput/TextInput.js +28 -0
  50. package/lib/esm/components/TextInput/index.js +49 -0
  51. package/lib/esm/components/Textarea/Textarea.js +19 -19
  52. package/lib/esm/components/Textarea/index.js +28 -4
  53. package/lib/esm/components/Toggle/Toggle.js +31 -0
  54. package/lib/esm/components/Toggle/index.js +48 -0
  55. package/lib/esm/components/Tooltip/Tooltip.js +2 -2
  56. package/lib/esm/components/index.js +8 -5
  57. package/lib/esm/hooks/usePrevious.js +15 -0
  58. package/lib/esm/index.js +8 -5
  59. package/lib/types/react/src/components/Checkbox/Checkbox.args.d.ts +52 -0
  60. package/lib/types/react/src/components/Checkbox/Checkbox.d.ts +5 -3
  61. package/lib/types/react/src/components/Checkbox/Checkbox.props.d.ts +4 -13
  62. package/lib/types/react/src/components/Checkbox/index.d.ts +1 -0
  63. package/lib/types/react/src/components/DatePicker/DatePicker.d.ts +4 -3
  64. package/lib/types/react/src/components/DatePicker/DatePicker.props.d.ts +10 -43
  65. package/lib/types/react/src/components/Dropdown/Dropdown.d.ts +5 -3
  66. package/lib/types/react/src/components/Dropdown/Dropdown.props.d.ts +16 -42
  67. package/lib/types/react/src/components/Fieldset/Fieldset.d.ts +6 -0
  68. package/lib/types/react/src/components/Fieldset/Fieldset.props.d.ts +14 -21
  69. package/lib/types/react/src/components/FileUpload/FileUpload.d.ts +5 -3
  70. package/lib/types/react/src/components/FileUpload/FileUpload.props.d.ts +7 -44
  71. package/lib/types/react/src/components/Form/Form.args.d.ts +2 -0
  72. package/lib/types/react/src/components/Form/Form.d.ts +1 -2
  73. package/lib/types/react/src/components/Form/Form.props.d.ts +4 -111
  74. package/lib/types/react/src/components/Form/index.d.ts +1 -0
  75. package/lib/types/react/src/components/FormControl/FormControl.d.ts +9 -0
  76. package/lib/types/react/src/components/FormControl/FormControl.props.d.ts +55 -0
  77. package/lib/types/react/src/components/FormControl/index.d.ts +2 -0
  78. package/lib/types/react/src/components/FormElement/FormElement.props.d.ts +2 -2
  79. package/lib/types/react/src/components/Input/Input.props.d.ts +2 -2
  80. package/lib/types/react/src/components/NumberPicker/NumberPicker.d.ts +5 -3
  81. package/lib/types/react/src/components/NumberPicker/NumberPicker.props.d.ts +5 -42
  82. package/lib/types/react/src/components/Radio/Radio.args.d.ts +8 -0
  83. package/lib/types/react/src/components/Radio/Radio.d.ts +5 -3
  84. package/lib/types/react/src/components/Radio/Radio.props.d.ts +4 -14
  85. package/lib/types/react/src/components/Radio/index.d.ts +1 -0
  86. package/lib/types/react/src/components/TextInput/TextInput.args.d.ts +10 -0
  87. package/lib/types/react/src/components/TextInput/TextInput.d.ts +6 -0
  88. package/lib/types/react/src/components/TextInput/TextInput.props.d.ts +17 -0
  89. package/lib/types/react/src/components/TextInput/index.d.ts +2 -0
  90. package/lib/types/react/src/components/Textarea/Textarea.args.d.ts +10 -0
  91. package/lib/types/react/src/components/Textarea/Textarea.d.ts +5 -3
  92. package/lib/types/react/src/components/Textarea/Textarea.props.d.ts +17 -39
  93. package/lib/types/react/src/components/Textarea/index.d.ts +2 -0
  94. package/lib/types/react/src/components/Toggle/Toggle.args.d.ts +12 -0
  95. package/lib/types/react/src/components/Toggle/Toggle.d.ts +5 -0
  96. package/lib/types/react/src/components/Toggle/Toggle.props.d.ts +22 -0
  97. package/lib/types/react/src/components/Toggle/index.d.ts +3 -0
  98. package/lib/types/react/src/components/Tooltip/Tooltip.props.d.ts +4 -0
  99. package/lib/types/react/src/components/index.d.ts +1 -5
  100. package/lib/types/react/src/hooks/usePrevious.d.ts +2 -0
  101. package/lib/types/react/src/types/index.d.ts +57 -1
  102. package/package.json +20 -19
  103. package/src/components/Checkbox/Checkbox.args.ts +31 -9
  104. package/src/components/Checkbox/Checkbox.props.ts +5 -13
  105. package/src/components/Checkbox/Checkbox.tsx +78 -76
  106. package/src/components/Checkbox/index.ts +1 -0
  107. package/src/components/DatePicker/DatePicker.args.ts +6 -32
  108. package/src/components/DatePicker/DatePicker.props.ts +11 -51
  109. package/src/components/DatePicker/DatePicker.tsx +71 -110
  110. package/src/components/Dropdown/Dropdown.args.ts +42 -192
  111. package/src/components/Dropdown/Dropdown.props.ts +18 -49
  112. package/src/components/Dropdown/Dropdown.tsx +73 -62
  113. package/src/components/Fieldset/Fieldset.props.ts +14 -23
  114. package/src/components/Fieldset/Fieldset.tsx +75 -69
  115. package/src/components/FileUpload/FileUpload.args.ts +25 -27
  116. package/src/components/FileUpload/FileUpload.props.ts +8 -53
  117. package/src/components/FileUpload/FileUpload.tsx +103 -72
  118. package/src/components/Form/Form.args.ts +2 -184
  119. package/src/components/Form/Form.props.ts +4 -133
  120. package/src/components/Form/Form.tsx +17 -77
  121. package/src/components/Form/index.ts +1 -0
  122. package/src/components/FormControl/FormControl.props.ts +72 -0
  123. package/src/components/FormControl/FormControl.tsx +169 -0
  124. package/src/components/FormControl/index.ts +2 -0
  125. package/src/components/FormElement/FormElement.props.ts +2 -2
  126. package/src/components/Input/Input.props.ts +2 -2
  127. package/src/components/Navigation/Navigation.args.ts +2 -1
  128. package/src/components/NumberPicker/NumberPicker.args.ts +18 -26
  129. package/src/components/NumberPicker/NumberPicker.props.ts +7 -52
  130. package/src/components/NumberPicker/NumberPicker.tsx +73 -56
  131. package/src/components/Radio/Radio.args.ts +1 -7
  132. package/src/components/Radio/Radio.props.ts +6 -14
  133. package/src/components/Radio/Radio.tsx +90 -52
  134. package/src/components/Radio/index.ts +1 -0
  135. package/src/components/TextInput/TextInput.args.ts +75 -0
  136. package/src/components/TextInput/TextInput.props.ts +20 -0
  137. package/src/components/TextInput/TextInput.tsx +71 -0
  138. package/src/components/TextInput/index.ts +2 -0
  139. package/src/components/Textarea/Textarea.args.ts +19 -37
  140. package/src/components/Textarea/Textarea.props.ts +18 -46
  141. package/src/components/Textarea/Textarea.tsx +44 -59
  142. package/src/components/Textarea/index.ts +2 -0
  143. package/src/components/Toggle/Toggle.args.ts +62 -0
  144. package/src/components/Toggle/Toggle.props.ts +27 -0
  145. package/src/components/Toggle/Toggle.tsx +85 -0
  146. package/src/components/Toggle/index.ts +3 -0
  147. package/src/components/Tooltip/Tooltip.props.ts +5 -0
  148. package/src/components/Tooltip/Tooltip.tsx +2 -0
  149. package/src/components/index.ts +1 -5
  150. package/src/hooks/usePrevious.ts +15 -0
  151. package/src/types/forms.args.ts +288 -0
  152. package/src/types/index.ts +69 -1
  153. package/tsconfig.json +2 -1
  154. package/lib/cjs/components/ChoiceGroup/ChoiceGroup.js +0 -34
  155. package/lib/cjs/components/ChoiceGroup/index.js +0 -19
  156. package/lib/cjs/components/FormGroup/FormGroup.js +0 -58
  157. package/lib/cjs/components/FormGroup/index.js +0 -26
  158. package/lib/esm/components/ChoiceGroup/ChoiceGroup.js +0 -32
  159. package/lib/esm/components/FormGroup/FormGroup.js +0 -56
  160. package/lib/esm/components/FormGroup/index.js +0 -20
  161. package/lib/types/react/src/components/ChoiceGroup/ChoiceGroup.d.ts +0 -4
  162. package/lib/types/react/src/components/ChoiceGroup/ChoiceGroup.props.d.ts +0 -20
  163. package/lib/types/react/src/components/ChoiceGroup/index.d.ts +0 -1
  164. package/lib/types/react/src/components/FormGroup/FormGroup.d.ts +0 -4
  165. package/lib/types/react/src/components/FormGroup/FormGroup.props.d.ts +0 -81
  166. package/lib/types/react/src/components/FormGroup/index.d.ts +0 -1
  167. package/src/components/ChoiceGroup/ChoiceGroup.args.ts +0 -95
  168. package/src/components/ChoiceGroup/ChoiceGroup.props.ts +0 -25
  169. package/src/components/ChoiceGroup/ChoiceGroup.tsx +0 -54
  170. package/src/components/ChoiceGroup/index.ts +0 -1
  171. package/src/components/FormGroup/FormGroup.args.ts +0 -85
  172. package/src/components/FormGroup/FormGroup.props.ts +0 -102
  173. package/src/components/FormGroup/FormGroup.tsx +0 -73
  174. package/src/components/FormGroup/index.ts +0 -1
@@ -1,85 +0,0 @@
1
- import CheckboxArgs from "../Checkbox/Checkbox.args";
2
- import DatePickerArgs from "../DatePicker/DatePicker.args";
3
- import DropdownArgs from "../Dropdown/Dropdown.args";
4
- import FileUploadArgs from "../FileUpload/FileUpload.args";
5
- import { FormGroupProps } from "./FormGroup.props";
6
- import InputArgs from "../Input/Input.args";
7
- import NumberPickerArgs from "../NumberPicker/NumberPicker.args";
8
- import RadioArgs from "../Radio/Radio.args";
9
- import TextareaArgs from "../Textarea/Textarea.args";
10
-
11
- const fgcheckboxfields = [];
12
- const fgradiofields = [];
13
-
14
- for (let i = 0; i < 5; i++) {
15
- const checkboxargs = { ...CheckboxArgs.basic };
16
- const radioargs = { ...RadioArgs.basic };
17
- fgcheckboxfields.push(checkboxargs);
18
- fgcheckboxfields[i].label = `Checkbox ${i}`;
19
- fgcheckboxfields[i].name = `fgcheckbox${i}`;
20
- fgcheckboxfields[i].id = `fgcheckbox${i}`;
21
- fgcheckboxfields[i].grouped = true;
22
- fgradiofields.push(radioargs);
23
- fgradiofields[i].label = `Radio ${i}`;
24
- fgradiofields[i].name = `fgradio`;
25
- fgradiofields[i].value = `fgradio${i}`;
26
- fgradiofields[i].id = `fgradio${i}`;
27
- }
28
-
29
- const basic: FormGroupProps = {
30
- formgroupid: "examplegroup",
31
- items: [
32
- {
33
- field: InputArgs.basic,
34
- type: "input",
35
- },
36
- {
37
- field: DropdownArgs.basic,
38
- type: "dropdown",
39
- },
40
- {
41
- field: CheckboxArgs.basic,
42
- type: "checkbox",
43
- choicegroupid: "id",
44
- },
45
- {
46
- choicegroupid: "multiplecheckboxes",
47
- field: fgcheckboxfields,
48
- legend: "Multiple Checkboxes",
49
- type: "checkbox",
50
- },
51
- {
52
- choicegroupid: "radios",
53
- field: fgradiofields,
54
- legend: "Radio Group",
55
- type: "radio",
56
- },
57
- {
58
- field: FileUploadArgs.basic,
59
- type: "file",
60
- },
61
- {
62
- field: DatePickerArgs.basic,
63
- type: "date",
64
- },
65
- {
66
- field: NumberPickerArgs.basic,
67
- type: "number",
68
- },
69
- {
70
- field: TextareaArgs.basic,
71
- type: "textarea",
72
- },
73
- ],
74
- legend: "Example Legend",
75
- type: "default",
76
- };
77
-
78
- /**
79
- * Sample prop definitions FormGroup's enumerable properties (imported in stories and test)
80
- */
81
- const FormGroupArgs = {
82
- basic,
83
- };
84
-
85
- export default FormGroupArgs;
@@ -1,102 +0,0 @@
1
- import { FormGroupTypes } from "../../types";
2
- import { CheckboxProps } from "../Checkbox/Checkbox.props";
3
- import { DatePickerProps } from "../DatePicker/DatePicker.props";
4
- import { DropdownProps } from "../Dropdown/Dropdown.props";
5
- import { FileUploadProps } from "../FileUpload/FileUpload.props";
6
- import { InputProps } from "../Input/Input.props";
7
- import { NumberPickerProps } from "../NumberPicker/NumberPicker.props";
8
- import { RadioProps } from "../Radio/Radio.props";
9
- import { TextareaProps } from "../Textarea/Textarea.props";
10
-
11
- export interface InputItem {
12
- type: "input";
13
- field: InputProps;
14
- choicegroupid?: never;
15
- legend?: never;
16
- }
17
-
18
- export interface DropdownItem {
19
- type: "dropdown";
20
- field: DropdownProps;
21
- choicegroupid?: never;
22
- legend?: never;
23
- }
24
-
25
- export interface CheckboxItem {
26
- type: "checkbox";
27
- field: CheckboxProps | CheckboxProps[];
28
- choicegroupid: string;
29
- legend?: string;
30
- }
31
-
32
- export interface RadioItem {
33
- type: "radio";
34
- field: RadioProps | RadioProps[];
35
- choicegroupid: string;
36
- legend?: string;
37
- }
38
-
39
- export interface FileUploadItem {
40
- type: "file";
41
- field: FileUploadProps;
42
- choicegroupid?: never;
43
- legend?: never;
44
- }
45
-
46
- export interface NumberPickerItem {
47
- type: "number";
48
- field: NumberPickerProps;
49
- choicegroupid?: never;
50
- legend?: never;
51
- }
52
-
53
- export interface DatePickerItem {
54
- type: "date";
55
- field: DatePickerProps;
56
- choicegroupid?: never;
57
- legend?: never;
58
- }
59
-
60
- export interface TextareaItem {
61
- type: "textarea";
62
- field: TextareaProps;
63
- choicegroupid?: never;
64
- legend?: never;
65
- }
66
-
67
- type FormGroupItem =
68
- | InputItem
69
- | DropdownItem
70
- | CheckboxItem
71
- | RadioItem
72
- | FileUploadItem
73
- | NumberPickerItem
74
- | DatePickerItem
75
- | TextareaItem;
76
-
77
- export interface FormGroupProps {
78
- /**
79
- * Specify an optional className to be added to your FormGroup component.
80
- */
81
- className?: string;
82
-
83
- /**
84
- * The ID of the FormGroup
85
- */
86
- formgroupid: string | boolean;
87
-
88
- /**
89
- * The inputs in this form group
90
- */
91
- items: FormGroupItem[];
92
-
93
- /**
94
- * The FormGroups's legend
95
- */
96
- legend: string | false;
97
-
98
- /**
99
- * This Form Groups's type
100
- */
101
- type: FormGroupTypes;
102
- }
@@ -1,73 +0,0 @@
1
- import { FC } from "react";
2
- import classNames from "classnames";
3
- import useGlobalSettings from "../../hooks/useGlobalSettings";
4
- import { FormGroupProps } from "./FormGroup.props";
5
- import { Checkbox } from "../Checkbox";
6
- import { ChoiceGroup } from "../ChoiceGroup";
7
- import { DatePicker } from "../DatePicker";
8
- import { Dropdown } from "../Dropdown";
9
- import { FileUpload } from "../FileUpload";
10
- import { Input } from "../Input";
11
- import { NumberPicker } from "../NumberPicker";
12
- import { Textarea } from "../Textarea";
13
-
14
- const FormGroup: FC<FormGroupProps> = ({
15
- className,
16
- formgroupid,
17
- items,
18
- legend,
19
- type,
20
- }) => {
21
- const { prefix } = useGlobalSettings();
22
- const baseClass = `${prefix}--formgroup`;
23
- const formGroupClasses = classNames(className, {
24
- [baseClass]: true,
25
- });
26
-
27
- return (
28
- <fieldset
29
- className={`${formGroupClasses} ${type}`}
30
- id={formgroupid ? (formgroupid as any) : undefined}
31
- >
32
- {legend && <legend className={`${baseClass}--legend`}>{legend}</legend>}
33
- {items.map((item, i) => {
34
- if (item?.type === "input") {
35
- return <Input {...(item?.field as any)} key={i} />;
36
- }
37
- if (item?.type === "dropdown") {
38
- return <Dropdown {...(item?.field as any)} key={i} />;
39
- }
40
- if (item?.type === "checkbox" && Array.isArray(item?.field) === false) {
41
- return <Checkbox {...(item?.field as any)} key={i} />;
42
- }
43
- if (
44
- (item?.type === "checkbox" || item?.type === "radio") &&
45
- Array.isArray(item?.field)
46
- ) {
47
- return (
48
- <ChoiceGroup
49
- items={item?.field as any}
50
- legend={item?.legend as any}
51
- choicegroupid={item?.choicegroupid as any}
52
- key={i}
53
- />
54
- );
55
- }
56
- if (item?.type === "file") {
57
- return <FileUpload {...(item?.field as any)} key={i} />;
58
- }
59
- if (item?.type === "date") {
60
- return <DatePicker {...(item?.field as any)} key={i} />;
61
- }
62
- if (item?.type === "number") {
63
- return <NumberPicker {...(item?.field as any)} key={i} />;
64
- }
65
- if (item?.type === "textarea") {
66
- return <Textarea {...(item?.field as any)} key={i} />;
67
- }
68
- })}
69
- </fieldset>
70
- );
71
- };
72
-
73
- export default FormGroup;
@@ -1 +0,0 @@
1
- export { default as FormGroup } from "./FormGroup";