@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,9 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
-
5
- const ListContext = React.createContext({});
6
- const ListItemContext = React.createContext({});
7
-
8
- exports.ListContext = ListContext;
9
- exports.ListItemContext = ListItemContext;
@@ -1,6 +0,0 @@
1
- import { createContext } from 'react';
2
-
3
- const ListContext = createContext({});
4
- const ListItemContext = createContext({});
5
-
6
- export { ListContext as L, ListItemContext as a };
@@ -1,4 +0,0 @@
1
- import { ListContextProps } from "./List.props";
2
- import { ListItemContextProps } from "./ListItem.props";
3
- export declare const ListContext: import("react").Context<ListContextProps>;
4
- export declare const ListItemContext: import("react").Context<ListItemContextProps>;
package/rollup.config.mjs DELETED
@@ -1,70 +0,0 @@
1
- import commonjs from "@rollup/plugin-commonjs";
2
- import json from "@rollup/plugin-json";
3
- import resolve from "@rollup/plugin-node-resolve";
4
- import { createRequire } from "node:module";
5
- import del from "rollup-plugin-delete";
6
- import livereload from "rollup-plugin-livereload";
7
- import peerDepsExternal from "rollup-plugin-peer-deps-external";
8
- import typescript from "rollup-plugin-typescript2";
9
- import multiInput from "rollup-plugin-multi-input";
10
-
11
- const require = createRequire(import.meta.url);
12
- const packageJson = require("./package.json");
13
-
14
- const config = {
15
- input: [
16
- "src/index.ts",
17
- "src/components/**/index.ts",
18
- "src/components/**/*.tsx",
19
- "src/hooks/*.ts",
20
- "src/utils/*.ts",
21
- ],
22
- external: [
23
- ...Object.keys(packageJson.dependencies),
24
- ...Object.keys(packageJson.devDependencies),
25
- ],
26
- output: [
27
- {
28
- dir: "lib/esm",
29
- format: "esm",
30
- },
31
- {
32
- dir: "lib/cjs",
33
- format: "cjs",
34
- },
35
- ],
36
- };
37
-
38
- const basePlugins = [
39
- resolve(),
40
- commonjs(),
41
- json(),
42
- multiInput.default({ relative: "src/" }),
43
- typescript({
44
- baseUrl: "./src",
45
- useTsconfigDeclarationDir: true,
46
- tsconfig: "./tsconfig.build.json",
47
- }),
48
- peerDepsExternal(),
49
- ];
50
-
51
- export default function (commandLineArgs) {
52
- let plugins;
53
-
54
- // For production
55
- if (!commandLineArgs.configDevelop) {
56
- plugins = [...basePlugins, del({ targets: "lib/*" })];
57
- }
58
-
59
- // for development
60
- if (commandLineArgs.configDevelop) {
61
- plugins = [
62
- ...basePlugins,
63
- del({ targets: "lib/*", runOnce: true }),
64
- livereload(),
65
- ];
66
- }
67
-
68
- config.plugins = plugins;
69
- return config;
70
- }
@@ -1,16 +0,0 @@
1
- import { AccordionProps } from "./Accordion.props";
2
-
3
- const large: AccordionProps = {
4
- onButtonClick: (e) => {
5
- console.log(e.target);
6
- },
7
- allowMultipleExpanded: true,
8
- defaultAccordionsExpanded: ["l1", "l2"],
9
- children: undefined,
10
- };
11
-
12
- /**
13
- * Sample prop definitions for Accordions's enumerable properties (imported in stories and tests).
14
- */
15
-
16
- export { large };
@@ -1,41 +0,0 @@
1
- import { Dispatch, MouseEvent, ReactElement, SetStateAction } from "react";
2
- export { default as AccordionItem } from "./AccordionItem";
3
- import { getUpdatedItems } from "@ilo-org/utils";
4
- import { AccordionItemProps } from "./AccordionItem.props";
5
-
6
- export interface AccordionProps {
7
- /**
8
- * Specify the content of your Accordion.
9
- */
10
- children?:
11
- | ReactElement<AccordionItemProps>
12
- | Array<ReactElement<AccordionItemProps>>;
13
-
14
- /**
15
- * Callback to onButtonClick event;
16
- */
17
- onButtonClick?: (e: MouseEvent<HTMLButtonElement>, i: any) => void;
18
-
19
- /**
20
- * Allow multiple accordions to be expanded at once, default value is false
21
- */
22
- allowMultipleExpanded?: boolean;
23
-
24
- /**
25
- * Default accordions expanded on first load
26
- */
27
- defaultAccordionsExpanded?: string[];
28
-
29
- /**
30
- * Specify an optional className to be added to your accordion.
31
- */
32
- className?: string;
33
- }
34
-
35
- export interface AccordionContextProps {
36
- activeItems: string[];
37
- getUpdatedItems: typeof getUpdatedItems;
38
- setActiveItems: Dispatch<SetStateAction<string[]>>;
39
- allowMultipleExpanded: boolean;
40
- onButtonClick?: (e: MouseEvent<HTMLButtonElement>, i: any) => void;
41
- }
@@ -1,62 +0,0 @@
1
- import { getUpdatedItems } from "@ilo-org/utils";
2
- import classNames from "classnames";
3
- import { Children, FC, ReactElement, useEffect, useState } from "react";
4
- import useGlobalSettings from "../../hooks/useGlobalSettings";
5
- import { checkArrayDuplicates } from "../../utils/checkArrayDuplicates";
6
- import { AccordionProps } from "./Accordion.props";
7
- import { AccordionContext } from "./AccordionCtx";
8
-
9
- const Accordion: FC<AccordionProps> = ({
10
- children,
11
- allowMultipleExpanded = false,
12
- onButtonClick,
13
- defaultAccordionsExpanded = [],
14
- className,
15
- }) => {
16
- const { prefix } = useGlobalSettings();
17
- const baseClass = `${prefix}--accordion`;
18
- const [activeItems, setActiveItems] = useState<string[]>([]);
19
-
20
- const accordionClasses = classNames(className, {
21
- [baseClass]: true,
22
- });
23
-
24
- const defaultAccordionsExpandedString = JSON.stringify(
25
- defaultAccordionsExpanded
26
- );
27
-
28
- useEffect(() => {
29
- const expandedOnLoad = allowMultipleExpanded
30
- ? defaultAccordionsExpanded
31
- : defaultAccordionsExpanded.length > 0
32
- ? [defaultAccordionsExpanded[0]]
33
- : defaultAccordionsExpanded;
34
- setActiveItems(expandedOnLoad);
35
- }, [defaultAccordionsExpandedString, allowMultipleExpanded]); //eslint-disable-line react-hooks/exhaustive-deps
36
-
37
- if (children) {
38
- const ids: string[] = [];
39
- Children.forEach(children, (child: ReactElement) => {
40
- ids.push(child.props.id);
41
- });
42
- if (checkArrayDuplicates(ids)) {
43
- console.warn("Warning: Accordion items must have unique ids.");
44
- }
45
- }
46
-
47
- return (
48
- <AccordionContext.Provider
49
- value={{
50
- activeItems,
51
- setActiveItems,
52
- getUpdatedItems,
53
- allowMultipleExpanded,
54
- onButtonClick,
55
- }}
56
- >
57
- <ul className={accordionClasses}>{children}</ul>
58
- </AccordionContext.Provider>
59
- );
60
- };
61
-
62
- export default Accordion;
@@ -1,13 +0,0 @@
1
- import { ReactNode } from "react";
2
-
3
- export default interface AccordionButtonProps {
4
- /**
5
- * Specify the content of your Button.
6
- */
7
- children: ReactNode;
8
-
9
- /**
10
- * Specify an optional className to be added to your Button.
11
- */
12
- className?: string;
13
- }
@@ -1,58 +0,0 @@
1
- import classNames from "classnames";
2
- import { FC, MouseEvent, useContext } from "react";
3
- import useGlobalSettings from "../../hooks/useGlobalSettings";
4
- import { default as AccordionButtonProps } from "./AccordionButton.props";
5
- import { AccordionContext, AccordionItemContext } from "./AccordionCtx";
6
-
7
- const AccordionButton: FC<AccordionButtonProps> = ({
8
- children,
9
- className,
10
- ...rest
11
- }) => {
12
- const { prefix } = useGlobalSettings();
13
- const baseClass = `${prefix}--accordion--button`;
14
-
15
- const {
16
- activeItems,
17
- setActiveItems,
18
- getUpdatedItems,
19
- allowMultipleExpanded,
20
- onButtonClick,
21
- } = useContext(AccordionContext);
22
- const { id } = useContext(AccordionItemContext);
23
- const open = activeItems.indexOf(id) > -1;
24
-
25
- const accordionButtonClasses = classNames(className, {
26
- [baseClass]: true,
27
- });
28
-
29
- /**
30
- * On click, get id of clicked item, and set that item in state to 'open', all others to 'closed'
31
- */
32
- const handleClick = (e: MouseEvent<HTMLButtonElement>, id: string) => {
33
- setActiveItems(
34
- getUpdatedItems({ id, itemStatuses: activeItems, allowMultipleExpanded })
35
- );
36
- if (onButtonClick) {
37
- onButtonClick(e, id);
38
- }
39
- e.currentTarget.blur();
40
- };
41
-
42
- return (
43
- <div className={`${prefix}--h3`}>
44
- <button
45
- className={accordionButtonClasses}
46
- aria-expanded={open}
47
- onClick={(e) => handleClick(e, id)}
48
- aria-controls={`panel-${id}`}
49
- id={`button-${id}`}
50
- {...rest}
51
- >
52
- {children}
53
- </button>
54
- </div>
55
- );
56
- };
57
-
58
- export default AccordionButton;
@@ -1,9 +0,0 @@
1
- import { createContext } from "react";
2
- import { AccordionContextProps } from "./Accordion.props";
3
- import { AccordionItemContextProps } from "./AccordionItem.props";
4
-
5
- export const AccordionContext = createContext({} as AccordionContextProps);
6
-
7
- export const AccordionItemContext = createContext(
8
- {} as AccordionItemContextProps
9
- );
@@ -1,25 +0,0 @@
1
- import { ReactNode } from "react";
2
-
3
- export interface AccordionItemContextProps {
4
- /**
5
- * The accordion item's unique id.
6
- */
7
- id: string;
8
- }
9
-
10
- export interface AccordionItemProps {
11
- /**
12
- * Specify the id of the accordion item.
13
- */
14
- id: string;
15
-
16
- /**
17
- * Specify the content of your Button.
18
- */
19
- children: ReactNode;
20
-
21
- /**
22
- * Specify an optional className to be added to your Button.
23
- */
24
- className?: string;
25
- }
@@ -1,27 +0,0 @@
1
- import classNames from "classnames";
2
- import { FC } from "react";
3
- import useGlobalSettings from "../../hooks/useGlobalSettings";
4
- import { AccordionItemContext } from "./AccordionCtx";
5
- import { AccordionItemProps } from "./AccordionItem.props";
6
-
7
- const AccordionItem: FC<AccordionItemProps> = ({
8
- children,
9
- id,
10
- className,
11
- ...rest
12
- }) => {
13
- const { prefix } = useGlobalSettings();
14
- const baseClass = `${prefix}--accordion--item`;
15
- const accordionItemClasses = classNames(className, {
16
- [baseClass]: true,
17
- });
18
- return (
19
- <AccordionItemContext.Provider value={{ id }}>
20
- <li className={accordionItemClasses} {...rest}>
21
- {children}
22
- </li>
23
- </AccordionItemContext.Provider>
24
- );
25
- };
26
-
27
- export default AccordionItem;
@@ -1,25 +0,0 @@
1
- import { ReactNode } from "react";
2
-
3
- export default interface AccordionPanelProps {
4
- /**
5
- * Specify the content of your Button.
6
- */
7
- children: ReactNode;
8
-
9
- /**
10
- * Specify an optional className to be added to your Button.
11
- */
12
- className?: string;
13
-
14
- /**
15
- * Duration of the collapse animation in milliseconds, to ensure that
16
- * finishing callbacks are fired even if the original browser transition end
17
- * events are canceled
18
- */
19
- timeout?: number;
20
-
21
- /**
22
- * Allows the AccordionPanel to be scrollable by default
23
- */
24
- scroll?: boolean;
25
- }
@@ -1,46 +0,0 @@
1
- import classNames from "classnames";
2
- import { FC, useContext, useLayoutEffect, useRef, useState } from "react";
3
- import useGlobalSettings from "../../hooks/useGlobalSettings";
4
- import { AccordionContext, AccordionItemContext } from "./AccordionCtx";
5
- import { default as AccordionPanelProps } from "./AccordionPanel.props";
6
-
7
- const AccordionPanel: FC<AccordionPanelProps> = ({
8
- children,
9
- className,
10
- scroll,
11
- ...rest
12
- }) => {
13
- const { activeItems } = useContext(AccordionContext);
14
- const { id } = useContext(AccordionItemContext);
15
- const [panelHeight, setPanelHeight] = useState(0);
16
- const open = activeItems.indexOf(id) > -1;
17
- const { prefix } = useGlobalSettings();
18
- const baseClass = `${prefix}--accordion--panel`;
19
-
20
- const accordionaPanelClasses = classNames(className, baseClass, {
21
- [`${baseClass}__scroll`]: scroll,
22
- [`${baseClass}--open`]: open,
23
- });
24
-
25
- const ref = useRef<HTMLInputElement>();
26
-
27
- useLayoutEffect(() => {
28
- ref.current && setPanelHeight(ref.current.scrollHeight);
29
- });
30
-
31
- return (
32
- <div
33
- className={accordionaPanelClasses}
34
- id={`panel-${id}`}
35
- aria-labelledby={`button-${id}`}
36
- role="region"
37
- ref={ref as any}
38
- style={{ ["--height" as any]: `${panelHeight}px` }}
39
- {...rest}
40
- >
41
- <div className={`${prefix}--accordion--innerpanel`}>{children}</div>
42
- </div>
43
- );
44
- };
45
-
46
- export default AccordionPanel;
@@ -1,4 +0,0 @@
1
- export { default as AccordionButton } from "./AccordionButton";
2
- export { default as AccordionPanel } from "./AccordionPanel";
3
- export { default as AccordionItem } from "./AccordionItem";
4
- export { default as Accordion } from "./Accordion";
@@ -1,61 +0,0 @@
1
- import { BreadcrumbProps } from "./Breadcrumb.props";
2
-
3
- const basic: BreadcrumbProps = {
4
- home: {
5
- indented: false,
6
- label: "Home",
7
- url: "/",
8
- },
9
- links: [
10
- {
11
- label: "Link One",
12
- url: "https://www.ilo.org/",
13
- },
14
- {
15
- label: "Link Two",
16
- url: "https://www.ilo.org/",
17
- },
18
- {
19
- label: "Link Three",
20
- url: "https://www.ilo.org/",
21
- },
22
- {
23
- label: "Link Four",
24
- url: "https://www.ilo.org/",
25
- },
26
- ],
27
- };
28
-
29
- const fiveLinks: BreadcrumbProps = {
30
- home: {
31
- indented: false,
32
- label: "Home",
33
- url: "/",
34
- },
35
- links: [
36
- {
37
- label: "Link One",
38
- url: "https://www.ilo.org/",
39
- },
40
- {
41
- label: "Link Two",
42
- url: "https://www.ilo.org/",
43
- },
44
- {
45
- label: "Link Three",
46
- url: "https://www.ilo.org/",
47
- },
48
- {
49
- label: "Link Four",
50
- url: "https://www.ilo.org/",
51
- },
52
- {
53
- label: "Link Five",
54
- url: "https://www.ilo.org/",
55
- },
56
- ],
57
- };
58
-
59
- const BreadcrumbArgs = { basic, fiveLinks };
60
-
61
- export default BreadcrumbArgs;
@@ -1,13 +0,0 @@
1
- import { LinkProps } from "../LinkList/LinkList.props";
2
-
3
- export interface BreadcrumbProps {
4
- /**
5
- * Specify the HOME link in the Breadcrumb
6
- */
7
- home: Required<LinkProps>;
8
-
9
- /**
10
- * Specify the links to be displayed in the Breadcrumb
11
- */
12
- links: Required<Array<LinkProps>>;
13
- }
@@ -1,82 +0,0 @@
1
- import { FC, useState, useEffect } from "react";
2
- import useGlobalSettings from "../../hooks/useGlobalSettings";
3
- import classnames from "classnames";
4
- import { BreadcrumbProps } from "./Breadcrumb.props";
5
- import { ContextMenu } from "../ContextMenu";
6
-
7
- const Breadcrumb: FC<BreadcrumbProps> = ({ home, links }) => {
8
- const { prefix } = useGlobalSettings();
9
-
10
- const [showContextMenu, enableContextMenu] = useState(false);
11
- const [toggleMenuOpen, setContextMenuToggleOpen] = useState(false);
12
-
13
- const handleScreenResize = () => {
14
- enableContextMenu(window.innerWidth <= 1024); // turn on context menu when screen is resized to a smaller size
15
- };
16
-
17
- useEffect(() => {
18
- window.addEventListener("resize", handleScreenResize);
19
- handleScreenResize();
20
-
21
- return () => {
22
- window.removeEventListener("resize", handleScreenResize);
23
- };
24
- }, []);
25
-
26
- const handleContextMenuToggle = () => {
27
- setContextMenuToggleOpen(!toggleMenuOpen);
28
- };
29
-
30
- const showContext = links.length > 4 || showContextMenu ? true : false;
31
-
32
- const baseClass = `${prefix}--breadcrumb`;
33
- const BreadcrumbClasses = classnames(baseClass);
34
-
35
- const lastLink = links[links.length - 1];
36
- const menuLinks = links.slice(0, -1);
37
-
38
- return (
39
- <nav
40
- className={`${BreadcrumbClasses} ${showContext ? " contextmenu" : ""}`}
41
- >
42
- <ol className={`${baseClass}--items`}>
43
- <li className={`${baseClass}--item home`}>
44
- <a className={`${baseClass}--link`} href={home.url}>
45
- <span className={`${baseClass}--link--label`}>{home.label}</span>
46
- </a>
47
- </li>
48
- <li
49
- className={`${baseClass}--item--context`}
50
- onClick={handleContextMenuToggle}
51
- >
52
- <ul
53
- className={`${baseClass}--items context--menu ${
54
- toggleMenuOpen ? " open" : ""
55
- }`}
56
- >
57
- {showContext && <ContextMenu links={menuLinks}></ContextMenu>}
58
- {!showContext &&
59
- menuLinks.map((link, index) => (
60
- <li className={`${baseClass}--item`} key={index}>
61
- <a href={link.url} className={`${baseClass}--link`}>
62
- <span className={`${baseClass}--link--label`}>
63
- {link.label}
64
- </span>
65
- </a>
66
- </li>
67
- ))}
68
- </ul>
69
- </li>
70
- <li className={`${baseClass}--item final`}>
71
- <a className={`${baseClass}--link`} href={lastLink.url}>
72
- <span className={`${baseClass}--link--label`}>
73
- {lastLink.label}
74
- </span>
75
- </a>
76
- </li>
77
- </ol>
78
- </nav>
79
- );
80
- };
81
-
82
- export default Breadcrumb;
@@ -1 +0,0 @@
1
- export { default as Breadcrumb } from "./Breadcrumb";
@@ -1,35 +0,0 @@
1
- import { ButtonProps } from "./Button.props";
2
-
3
- const primary: ButtonProps = {
4
- type: "primary",
5
- label: "Primary",
6
- size: "medium",
7
- name: "primary",
8
- };
9
- const secondary: ButtonProps = {
10
- type: "secondary",
11
- label: "Secondary",
12
- name: "secondary",
13
- };
14
- const tertiary: ButtonProps = {
15
- type: "tertiary",
16
- label: "Tertiary",
17
- name: "tertiary",
18
- };
19
- const alert: ButtonProps = { type: "alert", label: "Alert", name: "alert" };
20
- const icon: ButtonProps = { type: "primary", label: "Icon", icon: "close" };
21
- const disabled: ButtonProps = {
22
- type: "primary",
23
- label: "Disabled",
24
- disabled: true,
25
- };
26
- const link: ButtonProps = {
27
- type: "primary",
28
- icon: "arrowright",
29
- iconPosition: "right",
30
- label: "Visit ilo.org",
31
- url: "https://www.ilo.org",
32
- target: "__blank",
33
- };
34
-
35
- export default { primary, secondary, tertiary, alert, icon, disabled, link };