@ilo-org/react 0.13.0 → 0.14.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 (290) hide show
  1. package/lib/cjs/components/Cards/CardGroup/CardGroup.js +0 -1
  2. package/lib/cjs/components/Cards/CardGroup/index.js +197 -160
  3. package/lib/cjs/components/Cards/FactlistCard/FactListCard.js +0 -1
  4. package/lib/cjs/components/Cards/FactlistCard/index.js +0 -1
  5. package/lib/cjs/components/Cards/TextCard/TextCard.js +1 -1
  6. package/lib/cjs/components/List/List.js +9 -11
  7. package/lib/cjs/components/List/ListItem.js +4 -7
  8. package/lib/cjs/components/List/index.js +1 -2
  9. package/lib/cjs/components/index.js +0 -1
  10. package/lib/cjs/index.js +0 -1
  11. package/lib/esm/components/Cards/CardGroup/CardGroup.js +0 -1
  12. package/lib/esm/components/Cards/CardGroup/index.js +197 -160
  13. package/lib/esm/components/Cards/FactlistCard/FactListCard.js +0 -1
  14. package/lib/esm/components/Cards/FactlistCard/index.js +0 -1
  15. package/lib/esm/components/Cards/TextCard/TextCard.js +1 -1
  16. package/lib/esm/components/List/List.js +10 -12
  17. package/lib/esm/components/List/ListItem.js +4 -7
  18. package/lib/esm/components/List/index.js +1 -2
  19. package/lib/esm/components/index.js +0 -1
  20. package/lib/esm/index.js +0 -1
  21. package/lib/types/react/src/components/List/List.props.d.ts +2 -9
  22. package/lib/types/react/src/components/List/ListItem.props.d.ts +0 -6
  23. package/lib/types/react/src/types/index.d.ts +0 -2
  24. package/package.json +35 -12
  25. package/.eslintrc.cjs +0 -39
  26. package/CHANGELOG.md +0 -858
  27. package/lib/cjs/ListCtx-14aa546f.js +0 -9
  28. package/lib/esm/ListCtx-da435fdf.js +0 -6
  29. package/lib/types/react/src/components/List/ListCtx.d.ts +0 -4
  30. package/rollup.config.mjs +0 -70
  31. package/src/components/Accordion/Accordion.args.ts +0 -16
  32. package/src/components/Accordion/Accordion.props.ts +0 -41
  33. package/src/components/Accordion/Accordion.tsx +0 -62
  34. package/src/components/Accordion/AccordionButton.props.ts +0 -13
  35. package/src/components/Accordion/AccordionButton.tsx +0 -58
  36. package/src/components/Accordion/AccordionCtx.ts +0 -9
  37. package/src/components/Accordion/AccordionItem.props.ts +0 -25
  38. package/src/components/Accordion/AccordionItem.tsx +0 -27
  39. package/src/components/Accordion/AccordionPanel.props.ts +0 -25
  40. package/src/components/Accordion/AccordionPanel.tsx +0 -46
  41. package/src/components/Accordion/index.ts +0 -4
  42. package/src/components/Breadcrumb/Breadcrumb.args.ts +0 -61
  43. package/src/components/Breadcrumb/Breadcrumb.props.ts +0 -13
  44. package/src/components/Breadcrumb/Breadcrumb.tsx +0 -82
  45. package/src/components/Breadcrumb/index.ts +0 -1
  46. package/src/components/Button/Button.args.ts +0 -35
  47. package/src/components/Button/Button.props.ts +0 -89
  48. package/src/components/Button/Button.tsx +0 -77
  49. package/src/components/Button/index.ts +0 -2
  50. package/src/components/Callout/Callout.args.ts +0 -38
  51. package/src/components/Callout/Callout.props.ts +0 -60
  52. package/src/components/Callout/Callout.tsx +0 -80
  53. package/src/components/Callout/index.ts +0 -2
  54. package/src/components/Cards/CardGroup/CardGroup.args.ts +0 -768
  55. package/src/components/Cards/CardGroup/CardGroup.props.ts +0 -78
  56. package/src/components/Cards/CardGroup/CardGroup.tsx +0 -54
  57. package/src/components/Cards/CardGroup/index.tsx +0 -3
  58. package/src/components/Cards/DataCard/DataCard.args.ts +0 -69
  59. package/src/components/Cards/DataCard/DataCard.props.ts +0 -60
  60. package/src/components/Cards/DataCard/DataCard.tsx +0 -107
  61. package/src/components/Cards/DataCard/index.tsx +0 -3
  62. package/src/components/Cards/DetailCard/DetailCard.args.ts +0 -17
  63. package/src/components/Cards/DetailCard/DetailCard.props.ts +0 -43
  64. package/src/components/Cards/DetailCard/DetailCard.tsx +0 -62
  65. package/src/components/Cards/DetailCard/index.tsx +0 -3
  66. package/src/components/Cards/FactlistCard/FactListCard.args.ts +0 -14
  67. package/src/components/Cards/FactlistCard/FactListCard.props.ts +0 -19
  68. package/src/components/Cards/FactlistCard/FactListCard.tsx +0 -42
  69. package/src/components/Cards/FactlistCard/index.tsx +0 -3
  70. package/src/components/Cards/FeatureCard/FeatureCard.args.ts +0 -30
  71. package/src/components/Cards/FeatureCard/FeatureCard.props.ts +0 -38
  72. package/src/components/Cards/FeatureCard/FeatureCard.tsx +0 -69
  73. package/src/components/Cards/FeatureCard/index.tsx +0 -3
  74. package/src/components/Cards/MultilinkCard/MultiLinkCard.tsx +0 -76
  75. package/src/components/Cards/MultilinkCard/MultilinkCard.args.ts +0 -33
  76. package/src/components/Cards/MultilinkCard/MultilinkCard.props.ts +0 -30
  77. package/src/components/Cards/MultilinkCard/index.tsx +0 -3
  78. package/src/components/Cards/PromoCard/PromoCard.args.ts +0 -19
  79. package/src/components/Cards/PromoCard/PromoCard.props.ts +0 -36
  80. package/src/components/Cards/PromoCard/PromoCard.tsx +0 -60
  81. package/src/components/Cards/PromoCard/index.tsx +0 -3
  82. package/src/components/Cards/StatCard/StatCard.args.ts +0 -14
  83. package/src/components/Cards/StatCard/StatCard.props.ts +0 -21
  84. package/src/components/Cards/StatCard/StatCard.tsx +0 -36
  85. package/src/components/Cards/StatCard/index.tsx +0 -3
  86. package/src/components/Cards/TextCard/TextCard.args.ts +0 -21
  87. package/src/components/Cards/TextCard/TextCard.props.ts +0 -32
  88. package/src/components/Cards/TextCard/TextCard.tsx +0 -62
  89. package/src/components/Cards/TextCard/index.tsx +0 -3
  90. package/src/components/Checkbox/Checkbox.args.ts +0 -42
  91. package/src/components/Checkbox/Checkbox.props.ts +0 -5
  92. package/src/components/Checkbox/Checkbox.tsx +0 -94
  93. package/src/components/Checkbox/index.ts +0 -2
  94. package/src/components/Collapse/Collapse.props.ts +0 -92
  95. package/src/components/Collapse/Collapse.tsx +0 -130
  96. package/src/components/Collapse/index.ts +0 -1
  97. package/src/components/ContextMenu/ContextMenu.args.ts +0 -62
  98. package/src/components/ContextMenu/ContextMenu.props.ts +0 -28
  99. package/src/components/ContextMenu/ContextMenu.tsx +0 -32
  100. package/src/components/ContextMenu/index.ts +0 -1
  101. package/src/components/Credit/Credit.args.ts +0 -14
  102. package/src/components/Credit/Credit.props.ts +0 -11
  103. package/src/components/Credit/Credit.tsx +0 -41
  104. package/src/components/Credit/index.ts +0 -1
  105. package/src/components/DatePicker/DatePicker.args.ts +0 -56
  106. package/src/components/DatePicker/DatePicker.props.ts +0 -26
  107. package/src/components/DatePicker/DatePicker.tsx +0 -80
  108. package/src/components/DatePicker/index.ts +0 -1
  109. package/src/components/Dropdown/Dropdown.args.ts +0 -70
  110. package/src/components/Dropdown/Dropdown.props.ts +0 -53
  111. package/src/components/Dropdown/Dropdown.tsx +0 -95
  112. package/src/components/Dropdown/index.ts +0 -1
  113. package/src/components/Empty/Empty.props.ts +0 -13
  114. package/src/components/Empty/Empty.tsx +0 -16
  115. package/src/components/Empty/index.ts +0 -1
  116. package/src/components/Fieldset/Fieldset.props.ts +0 -33
  117. package/src/components/Fieldset/Fieldset.tsx +0 -96
  118. package/src/components/Fieldset/index.ts +0 -1
  119. package/src/components/FileUpload/FileUpload.args.ts +0 -60
  120. package/src/components/FileUpload/FileUpload.props.ts +0 -21
  121. package/src/components/FileUpload/FileUpload.tsx +0 -116
  122. package/src/components/FileUpload/index.ts +0 -1
  123. package/src/components/Footer/Footer.args.ts +0 -74
  124. package/src/components/Footer/Footer.props.ts +0 -60
  125. package/src/components/Footer/Footer.tsx +0 -99
  126. package/src/components/Footer/index.ts +0 -1
  127. package/src/components/Form/Form.args.ts +0 -5
  128. package/src/components/Form/Form.props.ts +0 -8
  129. package/src/components/Form/Form.tsx +0 -23
  130. package/src/components/Form/index.ts +0 -2
  131. package/src/components/FormControl/FormControl.props.ts +0 -72
  132. package/src/components/FormControl/FormControl.tsx +0 -169
  133. package/src/components/FormControl/index.ts +0 -2
  134. package/src/components/FormElement/FormElement.props.ts +0 -60
  135. package/src/components/FormElement/FormElement.tsx +0 -19
  136. package/src/components/FormElement/index.ts +0 -1
  137. package/src/components/GlobalProvider/GlobalCtx.ts +0 -6
  138. package/src/components/GlobalProvider/GlobalProvider.props.ts +0 -15
  139. package/src/components/GlobalProvider/GlobalProvider.tsx +0 -21
  140. package/src/components/GlobalProvider/index.ts +0 -2
  141. package/src/components/Heading/Heading.args.ts +0 -49
  142. package/src/components/Heading/Heading.props.ts +0 -24
  143. package/src/components/Heading/Heading.tsx +0 -28
  144. package/src/components/Heading/index.ts +0 -1
  145. package/src/components/Hero/Hero.args.ts +0 -136
  146. package/src/components/Hero/Hero.props.ts +0 -62
  147. package/src/components/Hero/Hero.tsx +0 -94
  148. package/src/components/Hero/HeroCard.props.ts +0 -54
  149. package/src/components/Hero/HeroCard.tsx +0 -65
  150. package/src/components/Hero/index.ts +0 -2
  151. package/src/components/Icon/Icon.args.ts +0 -15
  152. package/src/components/Icon/Icon.props.ts +0 -16
  153. package/src/components/Icon/Icon.tsx +0 -25
  154. package/src/components/Icon/index.ts +0 -1
  155. package/src/components/Image/Image.args.ts +0 -29
  156. package/src/components/Image/Image.props.ts +0 -43
  157. package/src/components/Image/Image.tsx +0 -51
  158. package/src/components/Image/index.ts +0 -1
  159. package/src/components/Input/Input.args.ts +0 -139
  160. package/src/components/Input/Input.props.ts +0 -65
  161. package/src/components/Input/Input.tsx +0 -65
  162. package/src/components/Input/index.ts +0 -1
  163. package/src/components/Link/Link.props.ts +0 -39
  164. package/src/components/Link/Link.tsx +0 -42
  165. package/src/components/Link/index.ts +0 -1
  166. package/src/components/LinkList/LinkList.args.ts +0 -193
  167. package/src/components/LinkList/LinkList.props.ts +0 -52
  168. package/src/components/LinkList/LinkList.tsx +0 -59
  169. package/src/components/LinkList/index.ts +0 -1
  170. package/src/components/List/List.args.ts +0 -34
  171. package/src/components/List/List.props.ts +0 -37
  172. package/src/components/List/List.tsx +0 -41
  173. package/src/components/List/ListCtx.ts +0 -7
  174. package/src/components/List/ListItem.props.ts +0 -25
  175. package/src/components/List/ListItem.tsx +0 -22
  176. package/src/components/List/index.ts +0 -2
  177. package/src/components/Loading/Loading.args.ts +0 -55
  178. package/src/components/Loading/Loading.props.ts +0 -23
  179. package/src/components/Loading/Loading.tsx +0 -24
  180. package/src/components/Loading/index.ts +0 -1
  181. package/src/components/LocalNav/LocalNav.args.ts +0 -64
  182. package/src/components/LocalNav/LocalNav.props.ts +0 -56
  183. package/src/components/LocalNav/LocalNav.tsx +0 -181
  184. package/src/components/LocalNav/index.ts +0 -1
  185. package/src/components/Logo/Logo.args.ts +0 -45
  186. package/src/components/Logo/Logo.props.ts +0 -67
  187. package/src/components/Logo/Logo.tsx +0 -247
  188. package/src/components/Logo/index.ts +0 -1
  189. package/src/components/LogoGrid/LogoGrid.args.ts +0 -50
  190. package/src/components/LogoGrid/LogoGrid.props.ts +0 -28
  191. package/src/components/LogoGrid/LogoGrid.tsx +0 -53
  192. package/src/components/LogoGrid/index.ts +0 -1
  193. package/src/components/Navigation/Navigation.args.ts +0 -113
  194. package/src/components/Navigation/Navigation.props.ts +0 -120
  195. package/src/components/Navigation/Navigation.tsx +0 -246
  196. package/src/components/Navigation/index.ts +0 -1
  197. package/src/components/Notification/Notification.args.ts +0 -157
  198. package/src/components/Notification/Notification.props.ts +0 -67
  199. package/src/components/Notification/Notification.tsx +0 -78
  200. package/src/components/Notification/index.ts +0 -1
  201. package/src/components/NumberPicker/NumberPicker.args.ts +0 -50
  202. package/src/components/NumberPicker/NumberPicker.props.ts +0 -26
  203. package/src/components/NumberPicker/NumberPicker.tsx +0 -88
  204. package/src/components/NumberPicker/index.ts +0 -1
  205. package/src/components/Pagination/Pagination.args.ts +0 -43
  206. package/src/components/Pagination/Pagination.props.ts +0 -66
  207. package/src/components/Pagination/Pagination.tsx +0 -115
  208. package/src/components/Pagination/index.ts +0 -1
  209. package/src/components/Profile/Profile.args.ts +0 -58
  210. package/src/components/Profile/Profile.props.ts +0 -55
  211. package/src/components/Profile/Profile.tsx +0 -51
  212. package/src/components/Profile/index.ts +0 -1
  213. package/src/components/Radio/Radio.args.ts +0 -15
  214. package/src/components/Radio/Radio.props.ts +0 -6
  215. package/src/components/Radio/Radio.tsx +0 -102
  216. package/src/components/Radio/index.ts +0 -2
  217. package/src/components/ReadMore/ReadMore.args.ts +0 -23
  218. package/src/components/ReadMore/ReadMore.props.ts +0 -38
  219. package/src/components/ReadMore/ReadMore.tsx +0 -55
  220. package/src/components/ReadMore/index.ts +0 -1
  221. package/src/components/RichText/RichText.props.ts +0 -11
  222. package/src/components/RichText/RichText.tsx +0 -22
  223. package/src/components/RichText/index.ts +0 -1
  224. package/src/components/RichText/richText.args.ts +0 -38
  225. package/src/components/SearchField/SearchField.args.ts +0 -73
  226. package/src/components/SearchField/SearchField.props.ts +0 -35
  227. package/src/components/SearchField/SearchField.tsx +0 -83
  228. package/src/components/SearchField/index.ts +0 -1
  229. package/src/components/SocialMedia/SocialMedia.args.ts +0 -54
  230. package/src/components/SocialMedia/SocialMedia.props.ts +0 -45
  231. package/src/components/SocialMedia/SocialMedia.tsx +0 -46
  232. package/src/components/SocialMedia/index.ts +0 -3
  233. package/src/components/TableOfContents/TableOfContents.args.ts +0 -35
  234. package/src/components/TableOfContents/TableOfContents.props.ts +0 -23
  235. package/src/components/TableOfContents/TableOfContents.tsx +0 -32
  236. package/src/components/TableOfContents/index.ts +0 -1
  237. package/src/components/Tabs/Tabs.args.tsx +0 -201
  238. package/src/components/Tabs/Tabs.props.ts +0 -13
  239. package/src/components/Tabs/Tabs.tsx +0 -60
  240. package/src/components/Tabs/index.ts +0 -1
  241. package/src/components/Tag/Tag.args.ts +0 -15
  242. package/src/components/Tag/Tag.props.ts +0 -34
  243. package/src/components/Tag/Tag.tsx +0 -104
  244. package/src/components/Tag/TagCtx.ts +0 -4
  245. package/src/components/Tag/TagSet.args.ts +0 -37
  246. package/src/components/Tag/TagSet.props.ts +0 -37
  247. package/src/components/Tag/TagSet.tsx +0 -61
  248. package/src/components/Tag/index.ts +0 -2
  249. package/src/components/TextInput/TextInput.args.ts +0 -75
  250. package/src/components/TextInput/TextInput.props.ts +0 -20
  251. package/src/components/TextInput/TextInput.tsx +0 -71
  252. package/src/components/TextInput/index.ts +0 -2
  253. package/src/components/Textarea/Textarea.args.ts +0 -34
  254. package/src/components/Textarea/Textarea.props.ts +0 -45
  255. package/src/components/Textarea/Textarea.tsx +0 -52
  256. package/src/components/Textarea/index.ts +0 -3
  257. package/src/components/Toggle/Toggle.args.ts +0 -62
  258. package/src/components/Toggle/Toggle.props.ts +0 -27
  259. package/src/components/Toggle/Toggle.tsx +0 -85
  260. package/src/components/Toggle/index.ts +0 -3
  261. package/src/components/Tooltip/Tooltip.args.ts +0 -39
  262. package/src/components/Tooltip/Tooltip.props.ts +0 -38
  263. package/src/components/Tooltip/Tooltip.tsx +0 -119
  264. package/src/components/Tooltip/index.ts +0 -1
  265. package/src/components/Video/Video.args.ts +0 -47
  266. package/src/components/Video/Video.props.ts +0 -35
  267. package/src/components/Video/Video.tsx +0 -34
  268. package/src/components/Video/VideoPlayer.props.ts +0 -51
  269. package/src/components/Video/VideoPlayer.tsx +0 -71
  270. package/src/components/Video/index.ts +0 -1
  271. package/src/components/Video/media-file-poster.jpg +0 -0
  272. package/src/components/index.ts +0 -46
  273. package/src/declarations.d.ts +0 -36
  274. package/src/hooks/index.ts +0 -2
  275. package/src/hooks/useGlobalSettings.ts +0 -13
  276. package/src/hooks/usePrevious.ts +0 -15
  277. package/src/hooks/useVideoPlayer.ts +0 -85
  278. package/src/index.ts +0 -1
  279. package/src/types/forms.args.ts +0 -288
  280. package/src/types/index.ts +0 -139
  281. package/src/types/temp.d.ts +0 -9
  282. package/src/utils/checkArrayDuplicates.ts +0 -3
  283. package/src/utils/createChainedFunction.ts +0 -31
  284. package/src/utils/getDefaultDimensionValue.ts +0 -28
  285. package/src/utils/hoursMinutesSeconds.ts +0 -8
  286. package/src/utils/index.ts +0 -6
  287. package/src/utils/transitionEndListener.ts +0 -29
  288. package/src/utils/triggerBrowserReflow.ts +0 -4
  289. package/tsconfig.build.json +0 -19
  290. package/tsconfig.json +0 -8
@@ -1,71 +0,0 @@
1
- import React from "react";
2
- import classNames from "classnames";
3
- import useGlobalSettings from "../../hooks/useGlobalSettings";
4
- import { TextInputProps, LabelledTextInputProps } from "./TextInput.props";
5
- import FormControl, { useFormControl } from "../FormControl/FormControl";
6
-
7
- const TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(
8
- (
9
- {
10
- onChange,
11
- onBlur,
12
- error,
13
- id,
14
- name,
15
- placeholder,
16
- required,
17
- pattern,
18
- disabled = false,
19
- type = "text",
20
- },
21
- ref
22
- ) => {
23
- const { prefix } = useGlobalSettings();
24
- const formControlCtx = useFormControl();
25
- const { ariaDescribedBy } = formControlCtx;
26
-
27
- const baseClass = `${prefix}--text-input`;
28
-
29
- const inputClass = classNames(baseClass, {
30
- [`${baseClass}__error`]: error,
31
- });
32
-
33
- return (
34
- <input
35
- ref={ref}
36
- id={id ? id : name}
37
- name={name}
38
- onChange={onChange}
39
- onBlur={onBlur}
40
- disabled={disabled}
41
- placeholder={placeholder}
42
- required={required}
43
- type={type}
44
- className={inputClass}
45
- pattern={pattern}
46
- aria-describedby={ariaDescribedBy}
47
- />
48
- );
49
- }
50
- );
51
-
52
- const LabelledTextInput = React.forwardRef<
53
- HTMLInputElement,
54
- LabelledTextInputProps
55
- >((props, ref) => {
56
- const { style, inputStyle, className, ...rest } = props;
57
- const fieldId = props.id ? props.id : props.name;
58
-
59
- return (
60
- <FormControl
61
- fieldId={fieldId}
62
- style={style}
63
- className={className}
64
- {...rest}
65
- >
66
- <TextInput ref={ref} style={inputStyle} {...rest} />
67
- </FormControl>
68
- );
69
- });
70
-
71
- export default LabelledTextInput;
@@ -1,2 +0,0 @@
1
- export { default as TextInput } from "./TextInput";
2
- export * as TextInputArgs from "./TextInput.args";
@@ -1,34 +0,0 @@
1
- import { LabelledTextareaProps, TextareaProps } from "./Textarea.props";
2
-
3
- const placeholder =
4
- "It was a cold day in April and the clocks were striking thirteen....";
5
-
6
- export const basic: LabelledTextareaProps = {
7
- id: "textarea",
8
- disabled: false,
9
- name: "textarea",
10
- placeholder,
11
- required: false,
12
- spellcheck: false,
13
- label: "Insert your life story here",
14
- labelPlacement: "top" as const,
15
- labelSize: "medium" as const,
16
- style: { width: "100%" },
17
- errorMessage: "This is an error message",
18
- };
19
-
20
- export const haserror: TextareaProps = {
21
- ...basic,
22
- error: true,
23
- };
24
-
25
- export const disabled: TextareaProps = {
26
- ...basic,
27
- disabled: true,
28
- };
29
-
30
- export default {
31
- basic,
32
- haserror,
33
- disabled,
34
- };
@@ -1,45 +0,0 @@
1
- import { FormFieldProps } from "../../types";
2
- import { LabelledFormFieldProps } from "../../types";
3
- export interface TextareaProps extends FormFieldProps<HTMLTextAreaElement> {
4
- /**
5
- * The Textarea's onChange callback.
6
- */
7
- onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => any;
8
-
9
- /**
10
- * Activate automatic spelling correction and processing of text substitutions
11
- **/
12
- autocorrect?: "on" | "off";
13
-
14
- /**
15
- * The id of the form element the Textarea belongs to if it's not nested inside the form.
16
- **/
17
- form?: string;
18
-
19
- /**
20
- * The Textarea's maxlength
21
- */
22
- maxlength?: number;
23
-
24
- /**
25
- * The Textarea's minlength
26
- */
27
- minlength?: number;
28
-
29
- /**
30
- * Specify an optional className to be added to your Textarea component.
31
- */
32
- placeholder?: string;
33
-
34
- /**
35
- * Specifies whether the textarea is subject to spellchecking by the underlying browser/OS
36
- **/
37
- spellcheck?: boolean | "default";
38
-
39
- /**
40
- * How the control should wrap the value for submission.
41
- **/
42
- wrap?: "hard" | "soft" | "off";
43
- }
44
-
45
- export type LabelledTextareaProps = LabelledFormFieldProps<TextareaProps>;
@@ -1,52 +0,0 @@
1
- import React from "react";
2
- import classnames from "classnames";
3
- import useGlobalSettings from "../../hooks/useGlobalSettings";
4
- import { TextareaProps, LabelledTextareaProps } from "./Textarea.props";
5
- import FormControl, { useFormControl } from "../FormControl/FormControl";
6
-
7
- const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
8
- ({ error, className, name, id, ...props }, ref) => {
9
- const { prefix } = useGlobalSettings();
10
- const formControlCtx = useFormControl();
11
- const { ariaDescribedBy } = formControlCtx;
12
-
13
- const baseClass = `${prefix}--textarea`;
14
- const errorClass = `${baseClass}__error`;
15
-
16
- const textAreaClass = classnames(baseClass, className, {
17
- [errorClass]: error,
18
- });
19
-
20
- return (
21
- <textarea
22
- ref={ref}
23
- className={textAreaClass}
24
- name={name}
25
- id={id ? id : name}
26
- aria-describedby={ariaDescribedBy}
27
- {...props}
28
- />
29
- );
30
- }
31
- );
32
-
33
- const LabelledTextarea = React.forwardRef<
34
- HTMLTextAreaElement,
35
- LabelledTextareaProps
36
- >((props, ref) => {
37
- const { style, inputStyle, className, ...rest } = props;
38
- const fieldId = props.id ? props.id : props.name;
39
-
40
- return (
41
- <FormControl
42
- fieldId={fieldId}
43
- style={style}
44
- className={className}
45
- {...rest}
46
- >
47
- <Textarea ref={ref} style={inputStyle} {...rest} />
48
- </FormControl>
49
- );
50
- });
51
-
52
- export default LabelledTextarea;
@@ -1,3 +0,0 @@
1
- export { default as Textarea } from "./Textarea";
2
- export type { TextareaProps } from "./Textarea.props";
3
- export { default as TextareaArgs } from "./Textarea.args";
@@ -1,62 +0,0 @@
1
- import { LabelledToggleProps } from "./Toggle.props";
2
-
3
- export const Default: LabelledToggleProps = {
4
- defaultChecked: false,
5
- errorMessage: "Invalid option",
6
- name: "my-toggle",
7
- size: "medium",
8
- label: "Show details",
9
- labelPlacement: "end",
10
- labelSize: "small",
11
- };
12
-
13
- export const Checked: LabelledToggleProps = {
14
- ...Default,
15
- defaultChecked: true,
16
- };
17
-
18
- export const Disabled: LabelledToggleProps = {
19
- ...Default,
20
- disabled: true,
21
- };
22
-
23
- export const Helper: LabelledToggleProps = {
24
- ...Default,
25
- helper: "This is a helper text",
26
- };
27
-
28
- export const Tooltip: LabelledToggleProps = {
29
- ...Helper,
30
- tooltip: "This is a tooltip",
31
- };
32
-
33
- export const Error: LabelledToggleProps = {
34
- ...Default,
35
- error: true,
36
- };
37
-
38
- export const DefaultChecked: LabelledToggleProps = {
39
- ...Default,
40
- defaultChecked: true,
41
- };
42
-
43
- export const Controlled: LabelledToggleProps = {
44
- ...Default,
45
- onClick: () => console.log("clicked"),
46
- checked: true,
47
- };
48
-
49
- export const Large: LabelledToggleProps = {
50
- ...Default,
51
- size: "large",
52
- };
53
-
54
- export const Medium: LabelledToggleProps = {
55
- ...Default,
56
- size: "medium",
57
- };
58
-
59
- export const Small: LabelledToggleProps = {
60
- ...Default,
61
- size: "small",
62
- };
@@ -1,27 +0,0 @@
1
- import { FormFieldProps } from "../../types";
2
- import { LabelledFormFieldProps } from "../../types";
3
-
4
- export interface ToggleProps extends FormFieldProps<HTMLInputElement> {
5
- /**
6
- * Specify the size of your Toggle. Defaults to "medium".
7
- */
8
- size?: "large" | "medium" | "small";
9
-
10
- /**
11
- * Specify whether your Toggle is checked by default. Defaults to false.
12
- *
13
- */
14
- defaultChecked?: boolean;
15
-
16
- /**
17
- * Specify whether your Toggle is checked. Defaults to undefined.
18
- */
19
- checked?: boolean;
20
-
21
- /**
22
- * OnClick handler for the input element.
23
- */
24
- onClick?: (event: React.MouseEvent<HTMLInputElement>) => any;
25
- }
26
-
27
- export type LabelledToggleProps = LabelledFormFieldProps<ToggleProps>;
@@ -1,85 +0,0 @@
1
- import { Ref, forwardRef } from "react";
2
- import { ToggleProps } from "./Toggle.props";
3
- import { LabelledToggleProps } from "./Toggle.props";
4
- import { useGlobalSettings } from "../../hooks";
5
- import classnames from "classnames";
6
- import FormControl, { useFormControl } from "../FormControl/FormControl";
7
-
8
- const Toggle = forwardRef<HTMLInputElement, ToggleProps>(
9
- (
10
- {
11
- size = "medium",
12
- error = false,
13
- disabled = false,
14
- defaultChecked = false,
15
- required = false,
16
- id,
17
- name,
18
- onChange,
19
- onBlur,
20
- onClick,
21
- checked,
22
- className,
23
- },
24
- ref
25
- ) => {
26
- const { prefix } = useGlobalSettings();
27
- const formControlCtx = useFormControl();
28
- const { ariaDescribedBy } = formControlCtx;
29
-
30
- const hasError = !disabled && !!error;
31
-
32
- const baseClass = `${prefix}--input--toggle`;
33
- const sliderClass = `${baseClass}--slider`;
34
-
35
- const toggleClass = classnames(
36
- baseClass,
37
- className,
38
- `${baseClass}__size__${size}`,
39
- [
40
- { [`${baseClass}__error`]: hasError },
41
- { [`${baseClass}__disabled`]: disabled },
42
- ]
43
- );
44
-
45
- return (
46
- <div className={toggleClass}>
47
- <input
48
- ref={ref} // Forwarded ref applied here
49
- checked={checked}
50
- disabled={disabled}
51
- defaultChecked={defaultChecked}
52
- name={name}
53
- id={id ? id : name}
54
- type="checkbox"
55
- role="switch"
56
- required={required}
57
- onChange={onChange}
58
- onBlur={onBlur}
59
- onClick={onClick}
60
- aria-describedby={ariaDescribedBy}
61
- />
62
- <span className={sliderClass} />
63
- </div>
64
- );
65
- }
66
- );
67
-
68
- const LabelledToggle = forwardRef(
69
- (props: LabelledToggleProps, ref: Ref<HTMLInputElement>) => {
70
- const fieldId = props.id ? props.id : props.name;
71
- const { style, inputStyle, className, ...rest } = props;
72
- return (
73
- <FormControl
74
- fieldId={fieldId}
75
- style={style}
76
- className={className}
77
- {...rest}
78
- >
79
- <Toggle ref={ref} style={inputStyle} {...rest} />
80
- </FormControl>
81
- );
82
- }
83
- );
84
-
85
- export default LabelledToggle;
@@ -1,3 +0,0 @@
1
- export { default as Toggle } from "./Toggle";
2
- export type { ToggleProps } from "./Toggle.props";
3
- export * as ToggleArgs from "./Toggle.args";
@@ -1,39 +0,0 @@
1
- import { TooltipProps } from "./Tooltip.props";
2
-
3
- const light: TooltipProps = {
4
- label: "This is a light tooltip",
5
- theme: "light", // "light" | "dark" ;
6
- isVisible: false,
7
- };
8
-
9
- const lighticon: TooltipProps = {
10
- icon: true,
11
- label: "This is a light tooltip",
12
- theme: "light", // "light" | "dark" ;
13
- isVisible: false,
14
- };
15
-
16
- const dark: TooltipProps = {
17
- label: "This is a dark tooltip",
18
- theme: "dark", // "light" | "dark" ;
19
- isVisible: false,
20
- };
21
-
22
- const darkicon: TooltipProps = {
23
- icon: true,
24
- label: "This is a tooltip for an icon",
25
- iconTheme: "dark", // "light" | "dark" ;
26
- isVisible: false,
27
- };
28
-
29
- /**
30
- * Sample prop definitions for Tooltip's enumerable properties (imported in stories and tests).
31
- */
32
- const tooltipArgs = {
33
- light,
34
- lighticon,
35
- dark,
36
- darkicon,
37
- };
38
-
39
- export default tooltipArgs;
@@ -1,38 +0,0 @@
1
- import { TooltipThemes, TooltipIconThemes } from "../../types";
2
-
3
- export interface TooltipProps {
4
- /**
5
- * Specify an optional className to be added to your Tooltip.
6
- */
7
- className?: string;
8
-
9
- /**
10
- * Should the tooltip appear on hover of an info icon?
11
- */
12
- icon?: boolean;
13
-
14
- /**
15
- * Set the id of the tooltip
16
- */
17
- id?: string;
18
-
19
- /**
20
- * Set the label for the tooltip
21
- */
22
- label?: Required<string>;
23
-
24
- /**
25
- * Set whether the tooltip is visible or not
26
- */
27
- isVisible?: boolean;
28
-
29
- /**
30
- * Describe the theme of the tooltip
31
- */
32
- theme?: Required<TooltipThemes>;
33
-
34
- /**
35
- * Describe the background theme of the tooltip
36
- */
37
- iconTheme?: Required<TooltipIconThemes>;
38
- }
@@ -1,119 +0,0 @@
1
- import React, { FC, useState, useRef } from "react";
2
- import classNames from "classnames";
3
- import useGlobalSettings from "../../hooks/useGlobalSettings";
4
- import { TooltipProps } from "./Tooltip.props";
5
- import { createPopper, Instance as PopperInstance } from "@popperjs/core";
6
-
7
- const Tooltip: FC<TooltipProps> = ({
8
- className,
9
- children,
10
- icon,
11
- label,
12
- iconTheme,
13
- theme,
14
- id,
15
- }) => {
16
- const { prefix } = useGlobalSettings();
17
- const baseClass = `${prefix}--tooltip`;
18
- const [isVisible, setIsVisible] = useState<boolean>(false);
19
- const tooltipRef = useRef<HTMLDivElement>(null);
20
- const popperInstanceRef = useRef<PopperInstance | null>(null);
21
-
22
- const isLongTooltip = () => {
23
- const tooltipText = (
24
- tooltipRef.current?.textContent ||
25
- tooltipRef.current?.innerText ||
26
- ""
27
- ).trim();
28
- return tooltipText.length > 50;
29
- };
30
-
31
- const tooltipClasses = classNames(className, {
32
- [baseClass]: true,
33
- [`${baseClass}--${theme}`]: theme,
34
- [`${baseClass}--visible`]: isVisible,
35
- [`${baseClass}--long`]: isLongTooltip(),
36
- });
37
-
38
- const tooltipArrowClasses = classNames(
39
- `${baseClass}--arrow`,
40
- `${baseClass}--arrow--placement-negative`
41
- );
42
-
43
- const iconClasses = classNames(className, `${baseClass}--wrapper`, {
44
- [`${baseClass}--wrapper__icon ${baseClass}--wrapper__icon__theme__${theme}`]:
45
- icon,
46
- [`${baseClass}--wrapper__icon__theme__${theme}`]: iconTheme,
47
- });
48
-
49
- const handleOnMouseOver: React.MouseEventHandler<HTMLDivElement> = (e) => {
50
- const target = e.currentTarget;
51
- if (target && tooltipRef.current) {
52
- const popperInstance = createPopper(target, tooltipRef.current, {
53
- placement: "top",
54
- modifiers: [
55
- {
56
- name: "offset",
57
- options: {
58
- offset: [0, 12], // Adjust offset as needed
59
- },
60
- },
61
- {
62
- name: "flip",
63
- enabled: true,
64
- },
65
- {
66
- name: "preventOverflow",
67
- enabled: true,
68
- },
69
- ],
70
- });
71
-
72
- popperInstanceRef.current = popperInstance;
73
-
74
- setIsVisible(true);
75
- }
76
- };
77
-
78
- const handleOnMouseOut = () => {
79
- if (popperInstanceRef.current) {
80
- popperInstanceRef.current.destroy();
81
- }
82
- setIsVisible(false);
83
- };
84
-
85
- const handleOnFocus: React.FocusEventHandler<HTMLDivElement> = (e) => {
86
- handleOnMouseOver(e as unknown as React.MouseEvent<HTMLDivElement>);
87
- };
88
-
89
- return (
90
- <div
91
- className={iconClasses}
92
- onMouseOver={handleOnMouseOver}
93
- onFocus={handleOnFocus}
94
- onMouseOut={handleOnMouseOut}
95
- onBlur={handleOnMouseOut}
96
- id={id}
97
- >
98
- {!icon && <>{children}</>}
99
- <span
100
- className={tooltipClasses}
101
- ref={tooltipRef}
102
- data-id={id}
103
- id="tooltip"
104
- role="tooltip"
105
- aria-hidden={!isVisible}
106
- >
107
- <span
108
- data-popper-arrow
109
- className={tooltipArrowClasses}
110
- data-placement="negative"
111
- role="presentation"
112
- />
113
- {label}
114
- </span>
115
- </div>
116
- );
117
- };
118
-
119
- export default Tooltip;
@@ -1 +0,0 @@
1
- export { default as Tooltip } from "./Tooltip";
@@ -1,47 +0,0 @@
1
- import { VideoProps } from "./Video.props";
2
-
3
- const videofile: VideoProps = {
4
- className: "image",
5
- caption:
6
- "The ILO brings together governments, employers and workers to set labour standards and promote decent work.",
7
- poster: {
8
- src: "/media-file-poster.jpg",
9
- alt: "The ILO logo on a blue background",
10
- },
11
- controls: {
12
- fullscreen: "Fullscreen",
13
- play: "Play",
14
- pause: "Pause",
15
- volume: "Volume",
16
- },
17
- src: "/video-example.mp4",
18
- youtube: false,
19
- };
20
-
21
- const videoyt: VideoProps = {
22
- caption:
23
- "Indigenous entrepreneur Celestina Ábalos runs a tourism business in the UNESCO World Heritage site of Quebrada de Humahuaca in northern Argentina. ©ILO/Ivar Velasquez",
24
- className: "image",
25
- poster: {
26
- src: "/youtube-video-poster.avif",
27
- alt: "An smiling woman with gray hair holds a bowl full of corn in front of her home.",
28
- },
29
- controls: {
30
- fullscreen: "Fullscreen",
31
- play: "Play",
32
- pause: "Pause",
33
- volume: "Volume",
34
- },
35
- src: "https://youtu.be/X72_A4_6zjU",
36
- youtube: true,
37
- };
38
-
39
- /**
40
- * Sample prop definitions for Video's enumerable properties (imported in stories and tests).
41
- */
42
- const videoArgs = {
43
- videofile,
44
- videoyt,
45
- };
46
-
47
- export default videoArgs;
@@ -1,35 +0,0 @@
1
- import { VideoPlayerControls } from "./VideoPlayer.props";
2
-
3
- export interface Poster {
4
- src: string;
5
- alt: string;
6
- }
7
-
8
- export interface VideoProps {
9
- src: string;
10
-
11
- /**
12
- * Specify the strings to be used as labels for the video controls
13
- */
14
- controls?: VideoPlayerControls;
15
-
16
- /**
17
- * if YouTube, set to true
18
- */
19
- youtube?: boolean;
20
-
21
- /**
22
- * Specify the caption for the image/video
23
- */
24
- caption?: string;
25
-
26
- /**
27
- * Specify an optional className to be added to your Media.
28
- */
29
- className?: string;
30
-
31
- /**
32
- * Specify the image src for the image
33
- */
34
- poster?: Poster;
35
- }