@ilo-org/react 0.0.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 (348) hide show
  1. package/.eslintrc.js +36 -0
  2. package/.storybook/main.js +28 -0
  3. package/.storybook/manager-head.html +7 -0
  4. package/.storybook/manager.js +6 -0
  5. package/.storybook/preview.tsx +33 -0
  6. package/.storybook/styles.scss +1 -0
  7. package/.storybook/theme.js +11 -0
  8. package/.turbo/turbo-build.log +513 -0
  9. package/.turbo/turbo-check.log +5 -0
  10. package/.turbo/turbo-test.log +1676 -0
  11. package/=6.4.0 +115 -0
  12. package/=7.21.4 +21 -0
  13. package/LICENSE +201 -0
  14. package/README.md +11 -0
  15. package/lib/index.esm.js +24 -0
  16. package/lib/index.esm.js.map +1 -0
  17. package/lib/index.js +24 -0
  18. package/lib/index.js.map +1 -0
  19. package/package.json +115 -0
  20. package/rollup.config.js +40 -0
  21. package/src/__tests__/Accordion.test.tsx +52 -0
  22. package/src/__tests__/Button.test.tsx +60 -0
  23. package/src/__tests__/Callout.test.tsx +41 -0
  24. package/src/__tests__/ContextMenu.test.tsx +19 -0
  25. package/src/__tests__/Dropdown.test.tsx +38 -0
  26. package/src/__tests__/Form.test.tsx +34 -0
  27. package/src/__tests__/Heading.test.tsx +51 -0
  28. package/src/__tests__/Hero.test.tsx +22 -0
  29. package/src/__tests__/Image.test.tsx +21 -0
  30. package/src/__tests__/LinkList.test.tsx +17 -0
  31. package/src/__tests__/List.test.tsx +37 -0
  32. package/src/__tests__/Loading.text.tsx +33 -0
  33. package/src/__tests__/Notification.test.tsx +39 -0
  34. package/src/__tests__/Pagination.test.tsx +58 -0
  35. package/src/__tests__/Profile.test.tsx +48 -0
  36. package/src/__tests__/ReadMore.test.tsx +42 -0
  37. package/src/__tests__/RichText.test.tsx +16 -0
  38. package/src/__tests__/SearchField.test.tsx +35 -0
  39. package/src/__tests__/TableOfContents.test.tsx +12 -0
  40. package/src/__tests__/Tag.test.tsx +10 -0
  41. package/src/components/Accordion/Accordion.args.ts +19 -0
  42. package/src/components/Accordion/Accordion.props.d.ts +39 -0
  43. package/src/components/Accordion/Accordion.tsx +70 -0
  44. package/src/components/Accordion/AccordionButton.props.d.ts +13 -0
  45. package/src/components/Accordion/AccordionButton.tsx +60 -0
  46. package/src/components/Accordion/AccordionItem.props.d.ts +25 -0
  47. package/src/components/Accordion/AccordionItem.tsx +33 -0
  48. package/src/components/Accordion/AccordionPanel.props.d.ts +20 -0
  49. package/src/components/Accordion/AccordionPanel.tsx +47 -0
  50. package/src/components/Accordion/index.ts +4 -0
  51. package/src/components/Button/Button.args.ts +353 -0
  52. package/src/components/Button/Button.props.d.ts +74 -0
  53. package/src/components/Button/Button.tsx +67 -0
  54. package/src/components/Button/index.ts +1 -0
  55. package/src/components/Callout/Callout.args.ts +64 -0
  56. package/src/components/Callout/Callout.props.d.ts +61 -0
  57. package/src/components/Callout/Callout.tsx +80 -0
  58. package/src/components/Callout/index.ts +1 -0
  59. package/src/components/Checkbox/Checkbox.args.ts +22 -0
  60. package/src/components/Checkbox/Checkbox.props.d.ts +61 -0
  61. package/src/components/Checkbox/Checkbox.tsx +92 -0
  62. package/src/components/Checkbox/index.ts +1 -0
  63. package/src/components/ChoiceGroup/ChoiceGroup.args.ts +90 -0
  64. package/src/components/ChoiceGroup/ChoiceGroup.props.d.ts +57 -0
  65. package/src/components/ChoiceGroup/ChoiceGroup.tsx +42 -0
  66. package/src/components/ChoiceGroup/index.ts +1 -0
  67. package/src/components/Collapse/Collapse.props.d.ts +92 -0
  68. package/src/components/Collapse/Collapse.tsx +130 -0
  69. package/src/components/Collapse/index.ts +1 -0
  70. package/src/components/ContextMenu/ContextMenu.args.ts +62 -0
  71. package/src/components/ContextMenu/ContextMenu.props.d.ts +28 -0
  72. package/src/components/ContextMenu/ContextMenu.tsx +32 -0
  73. package/src/components/ContextMenu/index.ts +1 -0
  74. package/src/components/Credit/Credit.args.ts +14 -0
  75. package/src/components/Credit/Credit.props.d.ts +11 -0
  76. package/src/components/Credit/Credit.tsx +41 -0
  77. package/src/components/Credit/index.ts +1 -0
  78. package/src/components/DatePicker/DatePicker.args.ts +82 -0
  79. package/src/components/DatePicker/DatePicker.props.d.ts +68 -0
  80. package/src/components/DatePicker/DatePicker.tsx +119 -0
  81. package/src/components/DatePicker/index.ts +1 -0
  82. package/src/components/Dropdown/Dropdown.args.ts +220 -0
  83. package/src/components/Dropdown/Dropdown.props.d.ts +84 -0
  84. package/src/components/Dropdown/Dropdown.tsx +82 -0
  85. package/src/components/Dropdown/index.ts +1 -0
  86. package/src/components/Empty/Empty.args.ts +14 -0
  87. package/src/components/Empty/Empty.props.d.ts +6 -0
  88. package/src/components/Empty/Empty.tsx +16 -0
  89. package/src/components/Empty/index.ts +1 -0
  90. package/src/components/Fieldset/Fieldset.props.d.ts +36 -0
  91. package/src/components/Fieldset/Fieldset.tsx +90 -0
  92. package/src/components/Fieldset/index.ts +1 -0
  93. package/src/components/FileUpload/FileUpload.args.ts +62 -0
  94. package/src/components/FileUpload/FileUpload.props.d.ts +63 -0
  95. package/src/components/FileUpload/FileUpload.tsx +82 -0
  96. package/src/components/FileUpload/index.ts +1 -0
  97. package/src/components/Form/Form.args.ts +265 -0
  98. package/src/components/Form/Form.props.d.ts +84 -0
  99. package/src/components/Form/Form.tsx +83 -0
  100. package/src/components/Form/index.ts +1 -0
  101. package/src/components/FormElement/FormElement.props.d.ts +53 -0
  102. package/src/components/FormElement/FormElement.tsx +26 -0
  103. package/src/components/FormElement/index.ts +1 -0
  104. package/src/components/FormGroup/FormGroup.args.ts +84 -0
  105. package/src/components/FormGroup/FormGroup.props.d.ts +71 -0
  106. package/src/components/FormGroup/FormGroup.tsx +73 -0
  107. package/src/components/FormGroup/index.ts +1 -0
  108. package/src/components/GlobalProvider/GlobalProvider.props.d.ts +15 -0
  109. package/src/components/GlobalProvider/GlobalProvider.tsx +27 -0
  110. package/src/components/GlobalProvider/index.js +4 -0
  111. package/src/components/Heading/Heading.args.ts +46 -0
  112. package/src/components/Heading/Heading.props.d.ts +24 -0
  113. package/src/components/Heading/Heading.tsx +28 -0
  114. package/src/components/Heading/index.ts +1 -0
  115. package/src/components/Hero/Hero.args.ts +296 -0
  116. package/src/components/Hero/Hero.props.d.ts +29 -0
  117. package/src/components/Hero/Hero.tsx +35 -0
  118. package/src/components/Hero/HeroCard.props.d.ts +65 -0
  119. package/src/components/Hero/HeroCard.tsx +53 -0
  120. package/src/components/Hero/index.ts +2 -0
  121. package/src/components/Icon/Icon.args.ts +15 -0
  122. package/src/components/Icon/Icon.props.d.ts +16 -0
  123. package/src/components/Icon/Icon.tsx +25 -0
  124. package/src/components/Icon/index.ts +1 -0
  125. package/src/components/Image/Image.args.ts +35 -0
  126. package/src/components/Image/Image.props.d.ts +38 -0
  127. package/src/components/Image/Image.tsx +51 -0
  128. package/src/components/Image/index.ts +1 -0
  129. package/src/components/Input/Input.args.ts +139 -0
  130. package/src/components/Input/Input.props.d.ts +63 -0
  131. package/src/components/Input/Input.tsx +63 -0
  132. package/src/components/Input/index.ts +1 -0
  133. package/src/components/Link/Link.args.ts +36 -0
  134. package/src/components/Link/Link.props.d.ts +34 -0
  135. package/src/components/Link/Link.tsx +49 -0
  136. package/src/components/Link/index.ts +1 -0
  137. package/src/components/LinkList/LinkList.args.ts +193 -0
  138. package/src/components/LinkList/LinkList.props.d.ts +52 -0
  139. package/src/components/LinkList/LinkList.tsx +59 -0
  140. package/src/components/LinkList/index.ts +1 -0
  141. package/src/components/List/List.args.ts +38 -0
  142. package/src/components/List/List.props.d.ts +36 -0
  143. package/src/components/List/List.tsx +47 -0
  144. package/src/components/List/ListItem.props.d.ts +25 -0
  145. package/src/components/List/ListItem.tsx +23 -0
  146. package/src/components/List/index.ts +2 -0
  147. package/src/components/Loading/Loading.args.ts +55 -0
  148. package/src/components/Loading/Loading.props.d.ts +23 -0
  149. package/src/components/Loading/Loading.tsx +24 -0
  150. package/src/components/Loading/index.ts +1 -0
  151. package/src/components/Notification/Notification.args.ts +157 -0
  152. package/src/components/Notification/Notification.props.d.ts +67 -0
  153. package/src/components/Notification/Notification.tsx +78 -0
  154. package/src/components/Notification/index.ts +1 -0
  155. package/src/components/NumberPicker/NumberPicker.args.ts +58 -0
  156. package/src/components/NumberPicker/NumberPicker.props.d.ts +56 -0
  157. package/src/components/NumberPicker/NumberPicker.tsx +65 -0
  158. package/src/components/NumberPicker/index.ts +1 -0
  159. package/src/components/Pagination/Pagination.args.ts +43 -0
  160. package/src/components/Pagination/Pagination.props.d.ts +66 -0
  161. package/src/components/Pagination/Pagination.tsx +114 -0
  162. package/src/components/Pagination/index.ts +1 -0
  163. package/src/components/Profile/Profile.args.ts +58 -0
  164. package/src/components/Profile/Profile.props.d.ts +43 -0
  165. package/src/components/Profile/Profile.tsx +43 -0
  166. package/src/components/Profile/index.ts +1 -0
  167. package/src/components/Radio/Radio.args.ts +22 -0
  168. package/src/components/Radio/Radio.props.d.ts +61 -0
  169. package/src/components/Radio/Radio.tsx +64 -0
  170. package/src/components/Radio/index.ts +1 -0
  171. package/src/components/ReadMore/ReadMore.props.d.ts +38 -0
  172. package/src/components/ReadMore/ReadMore.tsx +55 -0
  173. package/src/components/ReadMore/index.ts +1 -0
  174. package/src/components/ReadMore/readMore.args.ts +35 -0
  175. package/src/components/RichText/RichText.props.d.ts +11 -0
  176. package/src/components/RichText/RichText.tsx +22 -0
  177. package/src/components/RichText/index.ts +1 -0
  178. package/src/components/RichText/richText.args.ts +15 -0
  179. package/src/components/SearchField/SearchField.args.ts +73 -0
  180. package/src/components/SearchField/SearchField.props.d.ts +35 -0
  181. package/src/components/SearchField/SearchField.tsx +55 -0
  182. package/src/components/SearchField/index.ts +1 -0
  183. package/src/components/TableOfContents/TableOfContents.args.ts +35 -0
  184. package/src/components/TableOfContents/TableOfContents.props.d.ts +23 -0
  185. package/src/components/TableOfContents/TableOfContents.tsx +32 -0
  186. package/src/components/TableOfContents/index.ts +1 -0
  187. package/src/components/Tag/Tag.args.ts +15 -0
  188. package/src/components/Tag/Tag.props.d.ts +34 -0
  189. package/src/components/Tag/Tag.tsx +99 -0
  190. package/src/components/Tag/TagSet.args.ts +39 -0
  191. package/src/components/Tag/TagSet.props.d.ts +36 -0
  192. package/src/components/Tag/TagSet.tsx +71 -0
  193. package/src/components/Tag/index.ts +2 -0
  194. package/src/components/Textarea/Textarea.args.ts +62 -0
  195. package/src/components/Textarea/Textarea.props.d.ts +71 -0
  196. package/src/components/Textarea/Textarea.tsx +67 -0
  197. package/src/components/Textarea/index.ts +1 -0
  198. package/src/components/Tooltip/Tooltip.args.ts +43 -0
  199. package/src/components/Tooltip/Tooltip.props.d.ts +48 -0
  200. package/src/components/Tooltip/Tooltip.tsx +139 -0
  201. package/src/components/Tooltip/index.ts +1 -0
  202. package/src/components/Video/Video.args.ts +81 -0
  203. package/src/components/Video/Video.props.d.ts +82 -0
  204. package/src/components/Video/Video.tsx +29 -0
  205. package/src/components/Video/VideoPlayer.props.d.ts +80 -0
  206. package/src/components/Video/VideoPlayer.tsx +285 -0
  207. package/src/components/Video/index.ts +1 -0
  208. package/src/hooks/useGlobalSettings.ts +13 -0
  209. package/src/hooks/useVideoPlayer.ts +85 -0
  210. package/src/index.ts +19 -0
  211. package/src/public/favicon.ico +0 -0
  212. package/src/public/index.html +43 -0
  213. package/src/public/logo192.png +0 -0
  214. package/src/public/logo512.png +0 -0
  215. package/src/public/manifest.json +25 -0
  216. package/src/public/robots.txt +3 -0
  217. package/src/setup.ts +6 -0
  218. package/src/stories/Accordion.stories.tsx +94 -0
  219. package/src/stories/Button.stories.tsx +491 -0
  220. package/src/stories/Callout.stories.tsx +154 -0
  221. package/src/stories/ContextMenu.stories.tsx +72 -0
  222. package/src/stories/Dropdown.stories.tsx +85 -0
  223. package/src/stories/Empty.stories.tsx +48 -0
  224. package/src/stories/Form.stories.tsx +67 -0
  225. package/src/stories/Heading.stories.tsx +191 -0
  226. package/src/stories/Hero.stories.tsx +129 -0
  227. package/src/stories/Image.stories.tsx +71 -0
  228. package/src/stories/Introduction.stories.mdx +12 -0
  229. package/src/stories/Link.stories.tsx +99 -0
  230. package/src/stories/LinkList.stories.tsx +68 -0
  231. package/src/stories/List.stories.tsx +246 -0
  232. package/src/stories/Loading.stories.tsx +103 -0
  233. package/src/stories/Notification.stories.tsx +154 -0
  234. package/src/stories/Pagination.stories.tsx +63 -0
  235. package/src/stories/Profile.stories.tsx +84 -0
  236. package/src/stories/ReadMore.stories.tsx +80 -0
  237. package/src/stories/RichText.stories.tsx +59 -0
  238. package/src/stories/SearchField.stories.tsx +87 -0
  239. package/src/stories/TableOfContents.stories.tsx +50 -0
  240. package/src/stories/Tag.stories.tsx +194 -0
  241. package/src/stories/Tooltip.stories.tsx +83 -0
  242. package/src/stories/Video.stories.tsx +69 -0
  243. package/src/stories/assets/code-brackets.svg +1 -0
  244. package/src/stories/assets/colors.svg +1 -0
  245. package/src/stories/assets/comments.svg +1 -0
  246. package/src/stories/assets/direction.svg +1 -0
  247. package/src/stories/assets/flow.svg +1 -0
  248. package/src/stories/assets/plugin.svg +1 -0
  249. package/src/stories/assets/repo.svg +1 -0
  250. package/src/stories/assets/stackalt.svg +1 -0
  251. package/src/types/index.ts +49 -0
  252. package/src/types/temp.d.ts +9 -0
  253. package/src/utils/checkArrayDuplicates.ts +3 -0
  254. package/src/utils/createChainedFunction.ts +31 -0
  255. package/src/utils/getDefaultDimensionValue.ts +28 -0
  256. package/src/utils/hoursMinutesSeconds.ts +8 -0
  257. package/src/utils/transitionEndListener.ts +29 -0
  258. package/src/utils/triggerBrowserReflow.ts +4 -0
  259. package/storybook-static/0.f9bb25299a048d2bb825.manager.bundle.js +2 -0
  260. package/storybook-static/0.f9bb25299a048d2bb825.manager.bundle.js.LICENSE.txt +8 -0
  261. package/storybook-static/01daf23af61cc99e9d75.woff2 +0 -0
  262. package/storybook-static/06a2da828c8b6497ba7a.woff +0 -0
  263. package/storybook-static/0fa24adac56865ac7e5f.ttf +0 -0
  264. package/storybook-static/12ec02e7e66abaf38243.eot +0 -0
  265. package/storybook-static/164.8f6e5926.iframe.bundle.js +2 -0
  266. package/storybook-static/164.8f6e5926.iframe.bundle.js.LICENSE.txt +8 -0
  267. package/storybook-static/181.1d6d475b.iframe.bundle.js +1 -0
  268. package/storybook-static/1cc3364249fd0db446ad.ttf +0 -0
  269. package/storybook-static/1dbed2ef5cef8fcb4cbe.ttf +0 -0
  270. package/storybook-static/1fa1c16a4a45d13f0df8.ttf +0 -0
  271. package/storybook-static/23cdaa8575b5e003dcde.eot +0 -0
  272. package/storybook-static/248db78ddf1e3568728d.woff +0 -0
  273. package/storybook-static/27d33755a2b827666dc5.woff +0 -0
  274. package/storybook-static/29.8e0bc9a8.iframe.bundle.js +2 -0
  275. package/storybook-static/29.8e0bc9a8.iframe.bundle.js.LICENSE.txt +102 -0
  276. package/storybook-static/2ac1a95228cf06e17040.woff2 +0 -0
  277. package/storybook-static/337.b8defe66.iframe.bundle.js +2 -0
  278. package/storybook-static/337.b8defe66.iframe.bundle.js.LICENSE.txt +11 -0
  279. package/storybook-static/3579203659b1428de036.eot +0 -0
  280. package/storybook-static/36229f80a738c199462d.woff2 +0 -0
  281. package/storybook-static/409a9c398a28ee4d74ff.eot +0 -0
  282. package/storybook-static/431.8ab7c276.iframe.bundle.js +1 -0
  283. package/storybook-static/431.b32fed6077acc140df7c.manager.bundle.js +1 -0
  284. package/storybook-static/4bf5fc6f93ba10519c82.eot +0 -0
  285. package/storybook-static/51d7da3f5e58e3a24a84.woff +0 -0
  286. package/storybook-static/697.1f42ad69d33c2733c631.manager.bundle.js +1 -0
  287. package/storybook-static/697.9e56beef.iframe.bundle.js +1 -0
  288. package/storybook-static/6a159f0a2005668f1f78.woff +0 -0
  289. package/storybook-static/6f781753b674130d947a.ttf +0 -0
  290. package/storybook-static/70a240717e773fe567b3.woff2 +0 -0
  291. package/storybook-static/720.f44d4e1f5203b6083ae4.manager.bundle.js +1 -0
  292. package/storybook-static/730.1240c246.iframe.bundle.js +1 -0
  293. package/storybook-static/730.7223b772132e3e068755.manager.bundle.js +1 -0
  294. package/storybook-static/73ba1c910e0f7bfc6b18.woff2 +0 -0
  295. package/storybook-static/88739612501023fa15e3.woff +0 -0
  296. package/storybook-static/8a142c29a318c432117a.woff +0 -0
  297. package/storybook-static/914.8ddb80ae2badda1468b0.manager.bundle.js +2 -0
  298. package/storybook-static/914.8ddb80ae2badda1468b0.manager.bundle.js.LICENSE.txt +94 -0
  299. package/storybook-static/978.236a5d9d5736517b960e.manager.bundle.js +2 -0
  300. package/storybook-static/978.236a5d9d5736517b960e.manager.bundle.js.LICENSE.txt +12 -0
  301. package/storybook-static/978.32e8032b.iframe.bundle.js +2 -0
  302. package/storybook-static/978.32e8032b.iframe.bundle.js.LICENSE.txt +12 -0
  303. package/storybook-static/9db5d05810cb98f2831f.ttf +0 -0
  304. package/storybook-static/9ff97e342523931a4992.eot +0 -0
  305. package/storybook-static/a40d436619020fb67db5.woff +0 -0
  306. package/storybook-static/a41d7e330757fb4b2125.woff2 +0 -0
  307. package/storybook-static/ab3494afe25b712485ed.woff +0 -0
  308. package/storybook-static/b53d0e74edc5a5fbef0a.ttf +0 -0
  309. package/storybook-static/b70a9c0ad8e8b43f5e6c.ttf +0 -0
  310. package/storybook-static/c12a83f816844ff94375.ttf +0 -0
  311. package/storybook-static/c5116d16544f932eba4b.eot +0 -0
  312. package/storybook-static/c807e115c00aaffbac11.woff2 +0 -0
  313. package/storybook-static/cadb6b94d6b0ecc3a86a.woff2 +0 -0
  314. package/storybook-static/d0cff1b064bcd84324fe.eot +0 -0
  315. package/storybook-static/d3434771ad7e9030387e.ttf +0 -0
  316. package/storybook-static/d8610c2a4fe5c177f4f6.woff +0 -0
  317. package/storybook-static/d970f426740b938f39e1.woff +0 -0
  318. package/storybook-static/d9c7eba773ff1c8df5bb.eot +0 -0
  319. package/storybook-static/dd4645bdb2f1e1a47ed7.woff2 +0 -0
  320. package/storybook-static/e0a63577ac642885f067.eot +0 -0
  321. package/storybook-static/e2625b8a1277972c9240.ttf +0 -0
  322. package/storybook-static/f469ea3aa8aacf7ad83a.eot +0 -0
  323. package/storybook-static/f632ebfa0d7b7085d542.woff2 +0 -0
  324. package/storybook-static/f93e2252d7112c3bcca5.woff2 +0 -0
  325. package/storybook-static/favicon.ico +0 -0
  326. package/storybook-static/iframe.html +348 -0
  327. package/storybook-static/index.html +59 -0
  328. package/storybook-static/main.01e6a863.iframe.bundle.js +1 -0
  329. package/storybook-static/main.dc406261155f1ebb44ce.manager.bundle.js +1 -0
  330. package/storybook-static/reactPlayerDailyMotion.469cc00f.iframe.bundle.js +1 -0
  331. package/storybook-static/reactPlayerFacebook.1423bb15.iframe.bundle.js +1 -0
  332. package/storybook-static/reactPlayerFilePlayer.e19e24a0.iframe.bundle.js +1 -0
  333. package/storybook-static/reactPlayerKaltura.d1eb0868.iframe.bundle.js +1 -0
  334. package/storybook-static/reactPlayerMixcloud.9f1b1691.iframe.bundle.js +1 -0
  335. package/storybook-static/reactPlayerPreview.9295696b.iframe.bundle.js +1 -0
  336. package/storybook-static/reactPlayerSoundCloud.d420395c.iframe.bundle.js +1 -0
  337. package/storybook-static/reactPlayerStreamable.9b655bf3.iframe.bundle.js +1 -0
  338. package/storybook-static/reactPlayerTwitch.e90e6dea.iframe.bundle.js +1 -0
  339. package/storybook-static/reactPlayerVidyard.a37ae6b3.iframe.bundle.js +1 -0
  340. package/storybook-static/reactPlayerVimeo.a7f367ee.iframe.bundle.js +1 -0
  341. package/storybook-static/reactPlayerWistia.fb351944.iframe.bundle.js +1 -0
  342. package/storybook-static/reactPlayerYouTube.3514e11a.iframe.bundle.js +1 -0
  343. package/storybook-static/runtime~main.012769eac0433a7ec083.manager.bundle.js +1 -0
  344. package/storybook-static/runtime~main.f3168ed5.iframe.bundle.js +1 -0
  345. package/storybook-static/static/css/main.3d116812.css +3 -0
  346. package/storybook-static/static/css/main.3d116812.css.map +1 -0
  347. package/tsconfig.build.json +15 -0
  348. package/tsconfig.json +7 -0
@@ -0,0 +1,53 @@
1
+ import { FC } from "react";
2
+ import classNames from "classnames";
3
+ import useGlobalSettings from "../../hooks/useGlobalSettings";
4
+ import { HeroCardProps } from "./HeroCard.props";
5
+
6
+ const HeroCard: FC<HeroCardProps> = ({
7
+ className,
8
+ alignment,
9
+ datecopy,
10
+ eyebrow,
11
+ intro,
12
+ socials,
13
+ title,
14
+ theme = "light",
15
+ types = "article",
16
+ }) => {
17
+ const { prefix } = useGlobalSettings();
18
+
19
+ const baseClass = `${prefix}--hero-card`;
20
+ const heroCardClasses = classNames(className, {
21
+ [baseClass]: true,
22
+ [`${baseClass}--${alignment}`]: alignment,
23
+ [`${baseClass}--${theme}`]: theme,
24
+ [`${baseClass}--${types}`]: types,
25
+ });
26
+
27
+ return (
28
+ <div className={heroCardClasses}>
29
+ {eyebrow && <p className={`${baseClass}--eyebrow`}>{eyebrow}</p>}
30
+ {title && <h2 className={`${baseClass}--title`}>{title}</h2>}
31
+ {datecopy && <p className={`${baseClass}--datecopy`}>{datecopy}</p>}
32
+ {intro && <p className={`${baseClass}--intro`}>{intro}</p>}
33
+ <ul className={`${baseClass}--list`}>
34
+ {socials &&
35
+ socials.map((item: any, index: any) => {
36
+ return (
37
+ <li className={`${baseClass}--list--item`} key={index}>
38
+ <a
39
+ className={`${baseClass}--link icon icon--${item.icon}`}
40
+ href={item.url}
41
+ title={item.label}
42
+ >
43
+ {item.label}
44
+ </a>
45
+ </li>
46
+ );
47
+ })}
48
+ </ul>
49
+ </div>
50
+ );
51
+ };
52
+
53
+ export default HeroCard;
@@ -0,0 +1,2 @@
1
+ export { default as Hero } from "./Hero";
2
+ export { default as HeroCard } from "./HeroCard";
@@ -0,0 +1,15 @@
1
+ import { IconProps } from "./Icon.props";
2
+
3
+ const icon: IconProps = {
4
+ hidden: false,
5
+ name: "add",
6
+ };
7
+
8
+ /**
9
+ * Sample prop definitions for Button's enumerable properties (imported in stories and tests).
10
+ */
11
+ const IconArgs = {
12
+ icon,
13
+ };
14
+
15
+ export default IconArgs;
@@ -0,0 +1,16 @@
1
+ export interface IconProps {
2
+ /**
3
+ * Specify if this should be hidden from screen readers
4
+ */
5
+ hidden: boolean;
6
+
7
+ /**
8
+ * Specify the icon
9
+ */
10
+ name?: string;
11
+
12
+ /**
13
+ * Specify the icon's size
14
+ */
15
+ size?: integer;
16
+ }
@@ -0,0 +1,25 @@
1
+ import { createElement, FC } from "react";
2
+ import useGlobalSettings from "../../hooks/useGlobalSettings";
3
+ import { IconProps } from "./Icon.props";
4
+ import * as icons from "@ilo-org/icons-react";
5
+
6
+ const Icon: FC<IconProps> = ({ hidden, name, size }) => {
7
+ const { prefix } = useGlobalSettings();
8
+ const baseClass = `${prefix}--icon`;
9
+ const ariaHidden = hidden ? "hidden" : "";
10
+ const iconsize = size || 24;
11
+
12
+ const icon = name
13
+ ? createElement(
14
+ icons[`${name.charAt(0).toUpperCase() + name.slice(1)}${iconsize}`],
15
+ {
16
+ "aria-hidden": ariaHidden,
17
+ className: baseClass,
18
+ }
19
+ )
20
+ : false;
21
+
22
+ return <>{icon}</>;
23
+ };
24
+
25
+ export default Icon;
@@ -0,0 +1 @@
1
+ export { default as Icon } from "./Icon";
@@ -0,0 +1,35 @@
1
+ import { ImageProps } from "./Image.props";
2
+
3
+ const image: ImageProps = {
4
+ alt: "My alt text",
5
+ className: "image",
6
+ caption: "my image caption",
7
+ credit: "Photo: copyright 2022 Person S. Name",
8
+ url: [
9
+ {
10
+ breakpoint: 0,
11
+ src: "https://placekitten.com/400/300",
12
+ },
13
+ {
14
+ breakpoint: 800,
15
+ src: "https://placekitten.com/800/600",
16
+ },
17
+ {
18
+ breakpoint: 1200,
19
+ src: "https://placekitten.com/1200/900",
20
+ },
21
+ {
22
+ breakpoint: 1440,
23
+ src: "https://placekitten.com/1600/1200",
24
+ },
25
+ ],
26
+ };
27
+
28
+ /**
29
+ * Sample prop definitions for Image's enumerable properties (imported in stories and tests).
30
+ */
31
+ const imageArgs = {
32
+ image,
33
+ };
34
+
35
+ export default imageArgs;
@@ -0,0 +1,38 @@
1
+ interface ImageUrl {
2
+ /**
3
+ * Specify the breakpoint at which this image src should be used
4
+ */
5
+ breakpoint?: number;
6
+
7
+ /**
8
+ * Specify the url of this breakpoint's image src
9
+ */
10
+ src?: string;
11
+ }
12
+
13
+ export interface ImageProps {
14
+ /**
15
+ * Specify the alt for the image
16
+ */
17
+ alt?: Required<string>;
18
+
19
+ /**
20
+ * Specify the caption for the image/video
21
+ */
22
+ caption?: string;
23
+
24
+ /**
25
+ * Specify an optional className to be added to your Media.
26
+ */
27
+ className?: string;
28
+
29
+ /**
30
+ * Specify the credit for the image/video
31
+ */
32
+ credit?: Required<string>;
33
+
34
+ /**
35
+ * Specify the image src for the image
36
+ */
37
+ url?: Required<Array<ImageUrl>>;
38
+ }
@@ -0,0 +1,51 @@
1
+ import { FC } from "react";
2
+ import classNames from "classnames";
3
+ import useGlobalSettings from "../../hooks/useGlobalSettings";
4
+ import { ImageProps } from "./Image.props";
5
+ import { Credit } from "../Credit";
6
+
7
+ const Image: FC<ImageProps> = ({ alt, caption, className, credit, url }) => {
8
+ const { prefix } = useGlobalSettings();
9
+ const baseClass = `${prefix}--image`;
10
+
11
+ const imageClasses = classNames(className, {
12
+ [baseClass]: true,
13
+ });
14
+
15
+ const imgClasses = classNames("", {
16
+ [`${baseClass}--img`]: true,
17
+ });
18
+
19
+ const captionClasses = classNames("", {
20
+ [`${baseClass}--caption`]: true,
21
+ });
22
+
23
+ return (
24
+ <figure className={imageClasses}>
25
+ <div className={`${imageClasses}--wrapper`}>
26
+ <picture className={imgClasses}>
27
+ {url &&
28
+ url
29
+ .sort(
30
+ (a: any, b: any) =>
31
+ parseFloat(a.breakpoint) - parseFloat(b.breakpoint)
32
+ )
33
+ .slice(1)
34
+ .reverse()
35
+ .map((item: any, index: any) => (
36
+ <source
37
+ srcSet={item.src}
38
+ media={`(min-width: ${item.breakpoint}px)`}
39
+ key={index}
40
+ />
41
+ ))}
42
+ {url && <img src={url[0].src} alt={alt} />}
43
+ </picture>
44
+ {credit && <Credit credit={credit} />}
45
+ </div>
46
+ {caption && <figcaption className={captionClasses}>{caption}</figcaption>}
47
+ </figure>
48
+ );
49
+ };
50
+
51
+ export default Image;
@@ -0,0 +1 @@
1
+ export { default as Image } from "./Image";
@@ -0,0 +1,139 @@
1
+ import { InputProps } from "./Input.props";
2
+
3
+ const basic: InputProps = {
4
+ callback: "",
5
+ disabled: false,
6
+ error: false,
7
+ helper: false,
8
+ label: "Text Field Label",
9
+ name: "text",
10
+ placeholder: "Text Field",
11
+ required: false,
12
+ type: "text",
13
+ };
14
+
15
+ const isdisabled: InputProps = {
16
+ callback: "",
17
+ disabled: true,
18
+ error: false,
19
+ helper: "This one has helper text",
20
+ label: "Disabled Text Field Label",
21
+ name: "text",
22
+ placeholder: "Disabled Text Field",
23
+ required: false,
24
+ type: "text",
25
+ };
26
+
27
+ const hashelper: InputProps = {
28
+ callback: "",
29
+ disabled: false,
30
+ error: false,
31
+ helper: "This one has helper text",
32
+ label: "Text Field Label",
33
+ name: "text",
34
+ placeholder: "Helper Text Field",
35
+ required: false,
36
+ type: "text",
37
+ };
38
+
39
+ const haserror: InputProps = {
40
+ callback: "",
41
+ disabled: false,
42
+ error: "This one has an error",
43
+ helper: false,
44
+ label: "Text Field Label",
45
+ name: "text",
46
+ placeholder: "Error Text Field",
47
+ required: false,
48
+ type: "text",
49
+ };
50
+
51
+ const hastooltip: InputProps = {
52
+ callback: "",
53
+ disabled: false,
54
+ error: false,
55
+ helper: false,
56
+ label: "Text Field Label",
57
+ name: "text",
58
+ placeholder: "Tooltip Text Field",
59
+ required: false,
60
+ tooltip: "Here is the tooltip",
61
+ type: "text",
62
+ };
63
+
64
+ const email: InputProps = {
65
+ callback: "",
66
+ disabled: false,
67
+ error: false,
68
+ helper: false,
69
+ label: "Email Field Label",
70
+ name: "email",
71
+ placeholder: "Email Field",
72
+ required: false,
73
+ type: "email",
74
+ };
75
+
76
+ const hidden: InputProps = {
77
+ callback: "",
78
+ disabled: false,
79
+ error: false,
80
+ helper: false,
81
+ label: "Hidden Field Label",
82
+ name: "hidden",
83
+ required: false,
84
+ type: "hidden",
85
+ };
86
+
87
+ const password: InputProps = {
88
+ callback: "",
89
+ disabled: false,
90
+ error: false,
91
+ helper: false,
92
+ label: "Password Field Label",
93
+ name: "password",
94
+ placeholder: "Password Field",
95
+ required: false,
96
+ type: "email",
97
+ };
98
+
99
+ const tel: InputProps = {
100
+ callback: "",
101
+ disabled: false,
102
+ error: false,
103
+ helper: false,
104
+ label: "Telephone Field Label",
105
+ name: "tel",
106
+ placeholder: "Telephone Field",
107
+ required: false,
108
+ type: "tel",
109
+ };
110
+
111
+ const url: InputProps = {
112
+ callback: "",
113
+ disabled: false,
114
+ error: false,
115
+ helper: false,
116
+ label: "URL Field Label",
117
+ name: "url",
118
+ placeholder: "URL Field",
119
+ required: false,
120
+ type: "url",
121
+ };
122
+
123
+ /**
124
+ * Sample prop definitions Input's enumerable properties (imported in stories and test)
125
+ */
126
+ const InputArgs = {
127
+ basic,
128
+ isdisabled,
129
+ hashelper,
130
+ haserror,
131
+ hastooltip,
132
+ email,
133
+ hidden,
134
+ password,
135
+ tel,
136
+ url,
137
+ };
138
+
139
+ export default InputArgs;
@@ -0,0 +1,63 @@
1
+ import { inputTypes } from "../../types";
2
+
3
+ export interface InputProps {
4
+ /**
5
+ * The input's onChange callback.
6
+ */
7
+ callback?: function;
8
+
9
+ /**
10
+ * Specify an optional className to be added to your input.
11
+ */
12
+ className?: string;
13
+
14
+ /**
15
+ * Is the input disabled?
16
+ */
17
+ disabled?: boolean;
18
+
19
+ /**
20
+ * Does the input have an error?
21
+ */
22
+ error?: string | false;
23
+
24
+ /**
25
+ * The input's helper text
26
+ */
27
+ helper?: string | false;
28
+
29
+ /**
30
+ * The input's id attribute
31
+ */
32
+ id?: string;
33
+
34
+ /**
35
+ * Does this input have a label?
36
+ */
37
+ label?: string;
38
+
39
+ /**
40
+ * The input's name attribute
41
+ */
42
+ name?: Required<string>;
43
+
44
+ /**
45
+ * Specify an optional className to be added to your Input component.
46
+ */
47
+ placeholder?: string;
48
+
49
+ /**
50
+ * Specify whether this input is required
51
+ */
52
+ required?: boolean;
53
+
54
+ /**
55
+ * Does this Input have a tooltip?
56
+ */
57
+ tooltip?: string;
58
+
59
+ /**
60
+ * The input's type.
61
+ */
62
+ type: Required<inputTypes>;
63
+ }
@@ -0,0 +1,63 @@
1
+ import { FC } from "react";
2
+ import classNames from "classnames";
3
+ import useGlobalSettings from "../../hooks/useGlobalSettings";
4
+ import { InputProps } from "./Input.props";
5
+ import { Fieldset } from "../Fieldset";
6
+ import { FormElement } from "../FormElement";
7
+
8
+ const Input: FC<InputProps> = ({
9
+ callback,
10
+ disabled = false,
11
+ error,
12
+ helper,
13
+ id,
14
+ label,
15
+ name,
16
+ placeholder,
17
+ required,
18
+ tooltip,
19
+ type = "text",
20
+ }) => {
21
+ const { prefix } = useGlobalSettings();
22
+ const baseClass = `${prefix}--input`;
23
+
24
+ const InputClasses = classNames("", {
25
+ [baseClass]: true,
26
+ [`error`]: error,
27
+ });
28
+
29
+ /**
30
+ * On change, if there is a callback, call it
31
+ */
32
+ const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
33
+ if (callback) {
34
+ callback(e);
35
+ }
36
+ };
37
+
38
+ return (
39
+ <Fieldset legend={false} fieldsetid={false}>
40
+ <FormElement
41
+ elemid={name as any}
42
+ label={label as any}
43
+ helper={helper as any}
44
+ error={error as any}
45
+ required={required as any}
46
+ tooltip={tooltip}
47
+ >
48
+ <input
49
+ id={id ? id : name}
50
+ name={name}
51
+ onChange={handleChange}
52
+ disabled={disabled}
53
+ placeholder={placeholder}
54
+ required={required as any}
55
+ type={type}
56
+ className={InputClasses}
57
+ />
58
+ </FormElement>
59
+ </Fieldset>
60
+ );
61
+ };
62
+
63
+ export default Input;
@@ -0,0 +1 @@
1
+ export { default as Input } from "./Input";
@@ -0,0 +1,36 @@
1
+ import { LinkProps } from "./Link.props";
2
+
3
+ const light: LinkProps = {
4
+ children: "",
5
+ label: "",
6
+ target: "",
7
+ theme: "light",
8
+ url: "",
9
+ };
10
+
11
+ const dark: LinkProps = {
12
+ children: "",
13
+ label: "",
14
+ target: "",
15
+ theme: "dark",
16
+ url: "",
17
+ };
18
+
19
+ const footer: LinkProps = {
20
+ children: "",
21
+ label: "",
22
+ target: "",
23
+ theme: "footer",
24
+ url: "",
25
+ };
26
+
27
+ /**
28
+ * Sample prop definitions for Link's enumerable properties (imported in stories and tests).
29
+ */
30
+ const LinkArgs = {
31
+ light,
32
+ dark,
33
+ footer,
34
+ };
35
+
36
+ export default LinkArgs;
@@ -0,0 +1,34 @@
1
+ import { ReactNode } from "react";
2
+ import { linkTypes } from "../../types";
3
+
4
+ export interface LinkProps {
5
+ /**
6
+ * Specify the content of your Link.
7
+ */
8
+ children: ReactNode;
9
+
10
+ /**
11
+ * Specify the label for the link
12
+ */
13
+ label?: html;
14
+
15
+ /**
16
+ * Specify the url for the link's href
17
+ */
18
+ url?: string;
19
+
20
+ /**
21
+ * Specify the target for the link
22
+ */
23
+ target?: string;
24
+
25
+ /**
26
+ * Specify an optional className to be added to your Link.
27
+ */
28
+ theme?: linkTypes;
29
+
30
+ /**
31
+ * Specify an optional className to be added to your Link.
32
+ */
33
+ className?: string;
34
+ }
@@ -0,0 +1,49 @@
1
+ import { FC } from "react";
2
+ import classNames from "classnames";
3
+ import useGlobalSettings from "../../hooks/useGlobalSettings";
4
+ import { LinkProps } from "./Link.props";
5
+
6
+ const Link: FC<LinkProps> = ({
7
+ children,
8
+ className,
9
+ label,
10
+ target,
11
+ theme = "light",
12
+ url,
13
+ ...rest
14
+ }) => {
15
+ const { prefix } = useGlobalSettings();
16
+ const baseClass =
17
+ typeof className !== "undefined" && className.includes("button")
18
+ ? ""
19
+ : `${prefix}--link`;
20
+
21
+ const linkClasses = classNames(className, {
22
+ [baseClass]: true,
23
+ [`${baseClass}--${theme}`]: theme,
24
+ });
25
+
26
+ function createMarkup() {
27
+ return { __html: label };
28
+ }
29
+
30
+ return (
31
+ <a
32
+ className={linkClasses}
33
+ href={url}
34
+ target={target}
35
+ rel={target ? "noopener noreferrer" : ""}
36
+ {...rest}
37
+ >
38
+ {label && (
39
+ <span
40
+ className="link__label"
41
+ dangerouslySetInnerHTML={createMarkup()}
42
+ ></span>
43
+ )}
44
+ {children}
45
+ </a>
46
+ );
47
+ };
48
+
49
+ export default Link;
@@ -0,0 +1 @@
1
+ export { default as Link } from "./Link";