@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,157 @@
1
+ import { NotificationProps } from "./Notification.props";
2
+
3
+ const hascta: NotificationProps = {
4
+ className: "storybook",
5
+ closelabel: "Close",
6
+ copy: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
7
+ cta: {
8
+ label: "Optional CTA",
9
+ url: "http://www.google.com",
10
+ },
11
+ headline: "With CTA",
12
+ placement: "inline",
13
+ type: "info",
14
+ timestamp: {
15
+ human: "Dec 7, 2022",
16
+ unix: "1670389200",
17
+ },
18
+ };
19
+
20
+ const nocta: NotificationProps = {
21
+ className: "storybook",
22
+ closelabel: "Close",
23
+ copy: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
24
+ headline: "Notification Info",
25
+ placement: "inline",
26
+ type: "info",
27
+ timestamp: {
28
+ human: "Dec 7, 2022",
29
+ unix: "1670389200",
30
+ },
31
+ };
32
+
33
+ const error: NotificationProps = {
34
+ className: "storybook",
35
+ closelabel: "Close",
36
+ copy: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
37
+ headline: "Notification Error",
38
+ placement: "inline",
39
+ type: "error",
40
+ timestamp: {
41
+ human: "Dec 7, 2022",
42
+ unix: "1670389200",
43
+ },
44
+ };
45
+
46
+ const success: NotificationProps = {
47
+ className: "storybook",
48
+ closelabel: "Close",
49
+ copy: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
50
+ headline: "Notification Success",
51
+ placement: "inline",
52
+ type: "success",
53
+ timestamp: {
54
+ human: "Dec 7, 2022",
55
+ unix: "1670389200",
56
+ },
57
+ };
58
+
59
+ const warning: NotificationProps = {
60
+ className: "storybook",
61
+ closelabel: "Close",
62
+ copy: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
63
+ headline: "Notification Warning",
64
+ placement: "inline",
65
+ type: "warning",
66
+ timestamp: {
67
+ human: "Dec 7, 2022",
68
+ unix: "1670389200",
69
+ },
70
+ };
71
+
72
+ const hasctadialog: NotificationProps = {
73
+ className: "storybook",
74
+ closelabel: "Close",
75
+ copy: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
76
+ cta: {
77
+ label: "Optional CTA",
78
+ url: "http://www.google.com",
79
+ },
80
+ headline: "Notification With CTA",
81
+ placement: "dialog",
82
+ type: "info",
83
+ timestamp: {
84
+ human: "Dec 7, 2022",
85
+ unix: "1670389200",
86
+ },
87
+ };
88
+
89
+ const infodialog: NotificationProps = {
90
+ className: "storybook",
91
+ closelabel: "Close",
92
+ copy: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
93
+ headline: "Notification Info",
94
+ placement: "dialog",
95
+ type: "info",
96
+ timestamp: {
97
+ human: "Dec 7, 2022",
98
+ unix: "1670389200",
99
+ },
100
+ };
101
+
102
+ const errordialog: NotificationProps = {
103
+ className: "storybook",
104
+ closelabel: "Close",
105
+ copy: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.",
106
+ headline: "Notification Error",
107
+ placement: "dialog",
108
+ type: "error",
109
+ timestamp: {
110
+ human: "Dec 7, 2022",
111
+ unix: "1670389200",
112
+ },
113
+ };
114
+
115
+ const successdialog: NotificationProps = {
116
+ className: "storybook",
117
+ closelabel: "Close",
118
+ copy: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.",
119
+ headline: "Notification Success",
120
+ placement: "dialog",
121
+ type: "success",
122
+ timestamp: {
123
+ human: "Dec 7, 2022",
124
+ unix: "1670389200",
125
+ },
126
+ };
127
+
128
+ const warningdialog: NotificationProps = {
129
+ className: "storybook",
130
+ closelabel: "Close",
131
+ copy: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.",
132
+ headline: "Notification Warning",
133
+ placement: "dialog",
134
+ type: "warning",
135
+ timestamp: {
136
+ human: "Dec 7, 2022",
137
+ unix: "1670389200",
138
+ },
139
+ };
140
+
141
+ /**
142
+ * Sample prop definitions for Notification's enumerable properties (imported in stories and test)
143
+ */
144
+ const NotificationArgs = {
145
+ error,
146
+ errordialog,
147
+ hascta,
148
+ hasctadialog,
149
+ infodialog,
150
+ nocta,
151
+ success,
152
+ successdialog,
153
+ warning,
154
+ warningdialog,
155
+ };
156
+
157
+ export default NotificationArgs;
@@ -0,0 +1,67 @@
1
+ import { notificationPlacement, notificationTypes } from "../../types";
2
+
3
+ interface CTAProps {
4
+ /**
5
+ * Specify the label of the CTA
6
+ */
7
+ label?: string;
8
+
9
+ /**
10
+ * Specify the url of the CTA
11
+ */
12
+ url?: string;
13
+ }
14
+
15
+ interface TimeStampProps {
16
+ /**
17
+ * Specify the human-readable time
18
+ */
19
+ human?: string;
20
+
21
+ /**
22
+ * Specify the UNIX timestamp
23
+ */
24
+ unix?: string;
25
+ }
26
+
27
+ export interface NotificationProps {
28
+ /**
29
+ * Specify an optional className to be added to your Notification component.
30
+ */
31
+ className?: string;
32
+
33
+ /**
34
+ * Specify the label for the close button
35
+ */
36
+ closelabel?: Required<string>;
37
+
38
+ /**
39
+ * Specify the copy
40
+ */
41
+ copy?: Required<string>;
42
+
43
+ /**
44
+ * Specify the settings for an option CTA
45
+ */
46
+ cta?: CTAProps;
47
+
48
+ /**
49
+ * Specify the headline
50
+ */
51
+ headline?: Required<string>;
52
+
53
+ /**
54
+ * Specify whether the notification is inline in the DOM or absolutely-positioned at a higher z-index
55
+ */
56
+ placement?: Required<notificationPlacement>;
57
+
58
+ /**
59
+ * Specify an optional timestamp
60
+ */
61
+ timestamp?: TimeStampProps;
62
+
63
+ /**
64
+ * Specify the icon for the Notification
65
+ */
66
+ type?: notificationTypes;
67
+ }
@@ -0,0 +1,78 @@
1
+ import { FC, useState } from "react";
2
+ import classNames from "classnames";
3
+ import useGlobalSettings from "../../hooks/useGlobalSettings";
4
+ import { NotificationProps } from "./Notification.props";
5
+ import { ButtonProps } from "../Button/Button.props";
6
+ import { Button } from "../Button";
7
+
8
+ const Notification: FC<NotificationProps> = ({
9
+ className,
10
+ closelabel,
11
+ copy,
12
+ cta,
13
+ headline,
14
+ placement,
15
+ timestamp,
16
+ type,
17
+ }) => {
18
+ const { prefix } = useGlobalSettings();
19
+
20
+ const [display, setDisplay] = useState(true);
21
+
22
+ const baseClass = `${prefix}--notification`;
23
+ const notificationClasses = classNames(className, {
24
+ [baseClass]: true,
25
+ [`${baseClass}--${placement}`]: placement,
26
+ [`icon icon--${type}`]: type,
27
+ });
28
+
29
+ const ctaprops: ButtonProps = {
30
+ callback: false,
31
+ className: `${baseClass}--cta`,
32
+ children: false,
33
+ label: cta?.label,
34
+ size: "small",
35
+ type: "secondary",
36
+ url: cta?.url,
37
+ };
38
+
39
+ /**
40
+ * On click, close
41
+ */
42
+ const handleClick = () => {
43
+ setDisplay(false);
44
+ };
45
+
46
+ return (
47
+ <>
48
+ {display && (
49
+ <div
50
+ className={notificationClasses}
51
+ role="status"
52
+ aria-live="polite"
53
+ aria-relevant="additions"
54
+ >
55
+ <div className={`${baseClass}--content`}>
56
+ <h2 className={`${baseClass}--headline`}>{headline}</h2>
57
+ <p className={`${baseClass}--copy`}>{copy}</p>
58
+ {timestamp && (
59
+ <time className={`${baseClass}--date`} dateTime={timestamp.unix}>
60
+ {timestamp.human}
61
+ </time>
62
+ )}
63
+ {cta && <Button {...ctaprops} />}
64
+ </div>
65
+ <button
66
+ className={`${baseClass}--close`}
67
+ type="button"
68
+ onClick={() => handleClick()}
69
+ >
70
+ <span>{closelabel}</span>
71
+ </button>
72
+ </div>
73
+ )}
74
+ </>
75
+ );
76
+ };
77
+
78
+ export default Notification;
@@ -0,0 +1 @@
1
+ export { default as Notification } from "./Notification";
@@ -0,0 +1,58 @@
1
+ import { NumberPickerProps } from "./NumberPicker.props";
2
+
3
+ const basic: NumberPickerProps = {
4
+ callback: "",
5
+ disabled: false,
6
+ error: false,
7
+ helper: false,
8
+ label: "Number Picker Field Label",
9
+ name: "text",
10
+ placeholder: "Number Picker Field",
11
+ required: false,
12
+ };
13
+
14
+ const hashelper: NumberPickerProps = {
15
+ callback: "",
16
+ disabled: false,
17
+ error: false,
18
+ helper: "Here is the helper text",
19
+ label: "Number Picker Field Label",
20
+ name: "text",
21
+ placeholder: "Number Picker Field",
22
+ required: false,
23
+ };
24
+
25
+ const haserror: NumberPickerProps = {
26
+ callback: "",
27
+ disabled: false,
28
+ error: "This one has an error",
29
+ helper: false,
30
+ label: "Number Picker Field Label",
31
+ name: "text",
32
+ placeholder: "Number Picker Field",
33
+ required: false,
34
+ };
35
+
36
+ const hastooltip: NumberPickerProps = {
37
+ callback: "",
38
+ disabled: false,
39
+ error: false,
40
+ helper: false,
41
+ label: "Number Picker Field Label",
42
+ name: "text",
43
+ placeholder: "Number Picker Field",
44
+ required: false,
45
+ tooltip: "This is the tooltip",
46
+ };
47
+
48
+ /**
49
+ * Sample prop definitions NumberPicker's enumerable properties (imported in stories and test)
50
+ */
51
+ const NumberPickerArgs = {
52
+ basic,
53
+ hashelper,
54
+ haserror,
55
+ hastooltip,
56
+ };
57
+
58
+ export default NumberPickerArgs;
@@ -0,0 +1,56 @@
1
+ export interface NumberPickerProps {
2
+ /**
3
+ * The input's onChange callback.
4
+ */
5
+ callback: function;
6
+
7
+ /**
8
+ * Specify an optional className to be added to your input.
9
+ */
10
+ className?: string;
11
+
12
+ /**
13
+ * Is the input disabled?
14
+ */
15
+ disabled?: boolean;
16
+
17
+ /**
18
+ * Does the input have an error?
19
+ */
20
+ error?: string | false;
21
+
22
+ /**
23
+ * The input's helper text
24
+ */
25
+ helper: string | false;
26
+
27
+ /**
28
+ * The input's id attribute
29
+ */
30
+ id?: string;
31
+
32
+ /**
33
+ * Does this input have a label?
34
+ */
35
+ label: string;
36
+
37
+ /**
38
+ * The input's name attribute
39
+ */
40
+ name?: Required<string>;
41
+
42
+ /**
43
+ * Specify an optional className to be added to your NumberPicker component.
44
+ */
45
+ placeholder?: string;
46
+
47
+ /**
48
+ * Specify whether this input is required
49
+ */
50
+ required?: boolean;
51
+
52
+ /**
53
+ * Does this NumberPicker have a tooltip?
54
+ */
55
+ tooltip?: string;
56
+ }
@@ -0,0 +1,65 @@
1
+ import { FC } from "react";
2
+ import classNames from "classnames";
3
+ import useGlobalSettings from "../../hooks/useGlobalSettings";
4
+ import { NumberPickerProps } from "./NumberPicker.props";
5
+ import { Fieldset } from "../Fieldset";
6
+ import { FormElement } from "../FormElement";
7
+
8
+ const NumberPicker: FC<NumberPickerProps> = ({
9
+ callback,
10
+ disabled = false,
11
+ error,
12
+ helper,
13
+ id,
14
+ label,
15
+ name,
16
+ placeholder,
17
+ required,
18
+ tooltip,
19
+ }) => {
20
+ const { prefix } = useGlobalSettings();
21
+ const baseClass = `${prefix}--numberpicker`;
22
+
23
+ const NumberPickerClasses = classNames("", {
24
+ [baseClass]: true,
25
+ [`error`]: error,
26
+ });
27
+
28
+ /**
29
+ * On change, if there is a callback, call it
30
+ */
31
+ const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
32
+ if (callback) {
33
+ callback(e);
34
+ }
35
+ };
36
+
37
+ return (
38
+ <Fieldset legend={false} fieldsetid={false}>
39
+ <FormElement
40
+ elemid={name as any}
41
+ label={label}
42
+ helper={helper as any}
43
+ error={error as any}
44
+ required={required as any}
45
+ tooltip={tooltip}
46
+ type={"text"}
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={"text"}
56
+ className={`${NumberPickerClasses} ${prefix}--input`}
57
+ pattern="[0-9]*"
58
+ inputMode="numeric"
59
+ />
60
+ </FormElement>
61
+ </Fieldset>
62
+ );
63
+ };
64
+
65
+ export default NumberPicker;
@@ -0,0 +1 @@
1
+ export { default as NumberPicker } from "./NumberPicker";
@@ -0,0 +1,43 @@
1
+ import { PaginationProps } from "./Pagination.props";
2
+
3
+ const pagination: PaginationProps = {
4
+ className: "storybook",
5
+ callback: "",
6
+ currentPage: 1,
7
+ firstPageUrl: "https://www.google.com?s=first",
8
+ firstPageTitle: "First",
9
+ lastPageUrl: "https://www.google.com?s=last",
10
+ lastPageTitle: "Last",
11
+ nextPageUrl: "https://www.google.com?s=next",
12
+ nextPageTitle: "Next",
13
+ pageCountPreposition: "of",
14
+ prevPageUrl: "https://www.google.com?s=prev",
15
+ prevPageTitle: "Prev",
16
+ totalPages: 8,
17
+ };
18
+
19
+ const firstDisabled: PaginationProps = {
20
+ className: "storybook",
21
+ callback: "",
22
+ currentPage: 0,
23
+ firstPageUrl: "https://www.google.com?s=first",
24
+ firstPageTitle: "First",
25
+ lastPageUrl: "https://www.google.com?s=last",
26
+ lastPageTitle: "Last",
27
+ nextPageUrl: "https://www.google.com?s=next",
28
+ nextPageTitle: "Next",
29
+ pageCountPreposition: "of",
30
+ prevPageUrl: "https://www.google.com?s=prev",
31
+ prevPageTitle: "Prev",
32
+ totalPages: 1,
33
+ };
34
+
35
+ /**
36
+ * Sample prop definitions for Pagination's enumerable properties (imported in stories and test)
37
+ */
38
+ const PaginationArgs = {
39
+ pagination,
40
+ firstDisabled,
41
+ };
42
+
43
+ export default PaginationArgs;
@@ -0,0 +1,66 @@
1
+ export interface PaginationProps {
2
+ /**
3
+ * Specify the callback of your Button.
4
+ */
5
+ callback: function;
6
+
7
+ /**
8
+ * Specify an optional className to be added to your Pagination component.
9
+ */
10
+ className?: string;
11
+
12
+ /**
13
+ * current page number that the user is on, zero-indexed
14
+ */
15
+ currentPage: number;
16
+
17
+ /**
18
+ * link to the first page
19
+ */
20
+ firstPageUrl: string;
21
+
22
+ /**
23
+ * title label for the first page
24
+ */
25
+ firstPageTitle: string;
26
+
27
+ /**
28
+ * link to the last page
29
+ */
30
+ lastPageUrl: string;
31
+
32
+ /**
33
+ * title label for the last page
34
+ */
35
+ lastPageTitle: string;
36
+
37
+ /**
38
+ * linking word for the page counts
39
+ */
40
+ pageCountPreposition?: string;
41
+
42
+ /**
43
+ * link the following page
44
+ */
45
+ nextPageUrl: string;
46
+
47
+ /**
48
+ * title label for the next page
49
+ */
50
+ nextPageTitle: string;
51
+
52
+ /**
53
+ * link of the previous page
54
+ */
55
+ prevPageUrl: string;
56
+
57
+ /**
58
+ * title label for the prev page
59
+ */
60
+ prevPageTitle: string;
61
+
62
+ /**
63
+ * total number of pages that are available
64
+ */
65
+ totalPages: number;
66
+ }
@@ -0,0 +1,114 @@
1
+ import { FC } from "react";
2
+ import classNames from "classnames";
3
+ import useGlobalSettings from "../../hooks/useGlobalSettings";
4
+ import { PaginationProps } from "./Pagination.props";
5
+
6
+ const Pagination: FC<PaginationProps> = ({
7
+ className,
8
+ callback,
9
+ currentPage,
10
+ firstPageUrl,
11
+ firstPageTitle = "First page",
12
+ lastPageUrl,
13
+ lastPageTitle = "Last page",
14
+ nextPageUrl,
15
+ nextPageTitle = "Next page",
16
+ pageCountPreposition = "of",
17
+ prevPageUrl,
18
+ prevPageTitle = "Previous page",
19
+ totalPages,
20
+ }) => {
21
+ const { prefix } = useGlobalSettings();
22
+
23
+ const baseClass = `${prefix}--pagination`;
24
+ const paginationClasses = classNames(className, {
25
+ [baseClass]: true,
26
+ });
27
+
28
+ const isFirst = currentPage === 0;
29
+ const isLast = currentPage + 1 === totalPages;
30
+
31
+ const firstClasses = classNames(className, {
32
+ [`${baseClass}--first-page`]: true,
33
+ [`${baseClass}--link`]: true,
34
+ [`${baseClass}--disable`]: isFirst,
35
+ });
36
+
37
+ const prevClasses = classNames(className, {
38
+ [`${baseClass}--prev-page`]: true,
39
+ [`${baseClass}--link`]: true,
40
+ [`${baseClass}--disable`]: isFirst,
41
+ });
42
+
43
+ const nextClasses = classNames(className, {
44
+ [`${baseClass}--next-page`]: true,
45
+ [`${baseClass}--link`]: true,
46
+ [`${baseClass}--disable`]: isLast,
47
+ });
48
+
49
+ const lastClasses = classNames(className, {
50
+ [`${baseClass}--last-page`]: true,
51
+ [`${baseClass}--link`]: true,
52
+ [`${baseClass}--disable`]: isLast,
53
+ });
54
+
55
+ /**
56
+ * On click, if there is a callback, call it
57
+ */
58
+ const handleClick = (e: React.MouseEvent<Element, MouseEvent>) => {
59
+ if (callback) {
60
+ callback(e);
61
+ }
62
+ };
63
+
64
+ return (
65
+ <div className={paginationClasses}>
66
+ <div className={`${baseClass}--previous-set`}>
67
+ <a
68
+ className={firstClasses}
69
+ onClick={(e) => handleClick(e)}
70
+ href={firstPageUrl}
71
+ title={firstPageTitle}
72
+ >
73
+ {firstPageTitle}
74
+ </a>
75
+
76
+ <a
77
+ className={prevClasses}
78
+ onClick={(e) => handleClick(e)}
79
+ href={prevPageUrl}
80
+ title={prevPageTitle}
81
+ >
82
+ {prevPageTitle}
83
+ </a>
84
+ </div>
85
+
86
+ <p className={`${baseClass}--page`}>
87
+ <span>{currentPage + 1}</span> {pageCountPreposition}{" "}
88
+ <span>{totalPages}</span>
89
+ </p>
90
+
91
+ <div className={`${baseClass}--next-set`}>
92
+ <a
93
+ className={nextClasses}
94
+ onClick={(e) => handleClick(e)}
95
+ href={nextPageUrl}
96
+ title={nextPageTitle}
97
+ >
98
+ {nextPageTitle}
99
+ </a>
100
+
101
+ <a
102
+ className={lastClasses}
103
+ onClick={(e) => handleClick(e)}
104
+ href={lastPageUrl}
105
+ title={lastPageTitle}
106
+ >
107
+ {lastPageTitle}
108
+ </a>
109
+ </div>
110
+ </div>
111
+ );
112
+ };
113
+
114
+ export default Pagination;