@ndlib/component-library 0.0.7-9.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/README.md +101 -0
  2. package/dist/FontLoader.d.ts +1 -0
  3. package/dist/FontLoader.js +4 -0
  4. package/dist/components/composites/Card/Card.stories.d.ts +13 -0
  5. package/dist/components/composites/Card/Card.stories.js +122 -0
  6. package/dist/components/composites/Card/Card.test.d.ts +1 -0
  7. package/dist/components/composites/Card/Card.test.js +37 -0
  8. package/dist/components/composites/Card/index.d.ts +36 -0
  9. package/dist/components/composites/Card/index.js +89 -0
  10. package/dist/components/composites/DragDropList/DragDropList.stories.d.ts +7 -0
  11. package/dist/components/composites/DragDropList/DragDropList.stories.js +32 -0
  12. package/dist/components/composites/DragDropList/index.d.ts +25 -0
  13. package/dist/components/composites/DragDropList/index.js +48 -0
  14. package/dist/components/composites/DropdownLinks/DropdownLinks.stories.d.ts +8 -0
  15. package/dist/components/composites/DropdownLinks/DropdownLinks.stories.js +25 -0
  16. package/dist/components/composites/DropdownLinks/DropdownLinks.test.d.ts +1 -0
  17. package/dist/components/composites/DropdownLinks/DropdownLinks.test.js +27 -0
  18. package/dist/components/composites/DropdownLinks/index.d.ts +15 -0
  19. package/dist/components/composites/DropdownLinks/index.js +28 -0
  20. package/dist/components/composites/EmptyState/EmptyState.stories.d.ts +10 -0
  21. package/dist/components/composites/EmptyState/EmptyState.stories.js +31 -0
  22. package/dist/components/composites/EmptyState/EmptyState.test.d.ts +1 -0
  23. package/dist/components/composites/EmptyState/EmptyState.test.js +20 -0
  24. package/dist/components/composites/EmptyState/index.d.ts +15 -0
  25. package/dist/components/composites/EmptyState/index.js +32 -0
  26. package/dist/components/composites/Modal/Modal.stories.d.ts +6 -0
  27. package/dist/components/composites/Modal/Modal.stories.js +40 -0
  28. package/dist/components/composites/Modal/index.d.ts +21 -0
  29. package/dist/components/composites/Modal/index.js +64 -0
  30. package/dist/components/composites/NavMenu/NavMenu.stories.d.ts +6 -0
  31. package/dist/components/composites/NavMenu/NavMenu.stories.js +12 -0
  32. package/dist/components/composites/NavMenu/NavMenu.test.d.ts +1 -0
  33. package/dist/components/composites/NavMenu/NavMenu.test.js +96 -0
  34. package/dist/components/composites/NavMenu/demo.d.ts +1 -0
  35. package/dist/components/composites/NavMenu/demo.js +172 -0
  36. package/dist/components/composites/NavMenu/index.d.ts +5 -0
  37. package/dist/components/composites/NavMenu/index.js +52 -0
  38. package/dist/components/composites/Seo/SeoDataDisplay/index.d.ts +2 -0
  39. package/dist/components/composites/Seo/SeoDataDisplay/index.js +9 -0
  40. package/dist/components/composites/Seo/index.d.ts +11 -0
  41. package/dist/components/composites/Seo/index.js +16 -0
  42. package/dist/components/composites/Seo/seo.stories.d.ts +6 -0
  43. package/dist/components/composites/Seo/seo.stories.js +12 -0
  44. package/dist/components/composites/Seo/seo.test.d.ts +1 -0
  45. package/dist/components/composites/Seo/seo.test.js +56 -0
  46. package/dist/components/composites/Seo/siteMetadata.d.ts +9 -0
  47. package/dist/components/composites/Seo/siteMetadata.js +16 -0
  48. package/dist/components/composites/SnackBar/SnackBar.stories.d.ts +8 -0
  49. package/dist/components/composites/SnackBar/SnackBar.stories.js +20 -0
  50. package/dist/components/composites/SnackBar/SnackBar.test.d.ts +1 -0
  51. package/dist/components/composites/SnackBar/SnackBar.test.js +75 -0
  52. package/dist/components/composites/SnackBar/examples.d.ts +3 -0
  53. package/dist/components/composites/SnackBar/examples.js +35 -0
  54. package/dist/components/composites/SnackBar/index.d.ts +1 -0
  55. package/dist/components/composites/SnackBar/index.js +45 -0
  56. package/dist/components/composites/StructuredData/StructuredData.stories.d.ts +6 -0
  57. package/dist/components/composites/StructuredData/StructuredData.stories.js +12 -0
  58. package/dist/components/composites/StructuredData/StructuredData.test.d.ts +1 -0
  59. package/dist/components/composites/StructuredData/StructuredData.test.js +48 -0
  60. package/dist/components/composites/StructuredData/StructuredDataDisplay/index.d.ts +2 -0
  61. package/dist/components/composites/StructuredData/StructuredDataDisplay/index.js +37 -0
  62. package/dist/components/composites/StructuredData/index.d.ts +38 -0
  63. package/dist/components/composites/StructuredData/index.js +58 -0
  64. package/dist/components/composites/StructuredData/sdEvent/index.d.ts +13 -0
  65. package/dist/components/composites/StructuredData/sdEvent/index.js +16 -0
  66. package/dist/components/composites/StructuredData/sdEvent/makeEventSchema.d.ts +15 -0
  67. package/dist/components/composites/StructuredData/sdEvent/makeEventSchema.js +16 -0
  68. package/dist/components/composites/StructuredData/sdNews/index.d.ts +11 -0
  69. package/dist/components/composites/StructuredData/sdNews/index.js +14 -0
  70. package/dist/components/composites/StructuredData/sdNews/makeNewsSchema.d.ts +12 -0
  71. package/dist/components/composites/StructuredData/sdNews/makeNewsSchema.js +11 -0
  72. package/dist/components/composites/StructuredData/sdWebsite/index.d.ts +8 -0
  73. package/dist/components/composites/StructuredData/sdWebsite/index.js +11 -0
  74. package/dist/components/composites/StructuredData/sdWebsite/makeWebPageSchema.d.ts +9 -0
  75. package/dist/components/composites/StructuredData/sdWebsite/makeWebPageSchema.js +9 -0
  76. package/dist/components/composites/StructuredData/siteMetadata.d.ts +9 -0
  77. package/dist/components/composites/StructuredData/siteMetadata.js +12 -0
  78. package/dist/components/elements/Alerts/Alert.stories.d.ts +9 -0
  79. package/dist/components/elements/Alerts/Alert.stories.js +41 -0
  80. package/dist/components/elements/Alerts/Alerts.stories.d.ts +6 -0
  81. package/dist/components/elements/Alerts/Alerts.stories.js +12 -0
  82. package/dist/components/elements/Alerts/Alerts.test.d.ts +1 -0
  83. package/dist/components/elements/Alerts/Alerts.test.js +61 -0
  84. package/dist/components/elements/Alerts/index.d.ts +14 -0
  85. package/dist/components/elements/Alerts/index.js +64 -0
  86. package/dist/components/elements/ArrowLink/ArrowLink.stories.d.ts +6 -0
  87. package/dist/components/elements/ArrowLink/ArrowLink.stories.js +12 -0
  88. package/dist/components/elements/ArrowLink/ArrowLink.test.d.ts +1 -0
  89. package/dist/components/elements/ArrowLink/ArrowLink.test.js +34 -0
  90. package/dist/components/elements/ArrowLink/index.d.ts +7 -0
  91. package/dist/components/elements/ArrowLink/index.js +39 -0
  92. package/dist/components/elements/BrandingBar/BrandingBar.stories.d.ts +6 -0
  93. package/dist/components/elements/BrandingBar/BrandingBar.stories.js +11 -0
  94. package/dist/components/elements/BrandingBar/index.d.ts +2 -0
  95. package/dist/components/elements/BrandingBar/index.js +52 -0
  96. package/dist/components/elements/Button/Button.stories.d.ts +15 -0
  97. package/dist/components/elements/Button/Button.stories.js +88 -0
  98. package/dist/components/elements/Button/Button.test.d.ts +1 -0
  99. package/dist/components/elements/Button/Button.test.js +39 -0
  100. package/dist/components/elements/Button/index.d.ts +49 -0
  101. package/dist/components/elements/Button/index.js +138 -0
  102. package/dist/components/elements/Dropdown/Dropdown.stories.d.ts +7 -0
  103. package/dist/components/elements/Dropdown/Dropdown.stories.js +20 -0
  104. package/dist/components/elements/Dropdown/index.d.ts +24 -0
  105. package/dist/components/elements/Dropdown/index.js +87 -0
  106. package/dist/components/elements/Fields/AutoComplete/AutoComplete.stories.d.ts +6 -0
  107. package/dist/components/elements/Fields/AutoComplete/AutoComplete.stories.js +60 -0
  108. package/dist/components/elements/Fields/AutoComplete/index.d.ts +11 -0
  109. package/dist/components/elements/Fields/AutoComplete/index.js +26 -0
  110. package/dist/components/elements/Fields/Checkbox/Checkbox.stories.d.ts +6 -0
  111. package/dist/components/elements/Fields/Checkbox/Checkbox.stories.js +17 -0
  112. package/dist/components/elements/Fields/Checkbox/index.d.ts +8 -0
  113. package/dist/components/elements/Fields/Checkbox/index.js +22 -0
  114. package/dist/components/elements/Fields/CheckboxGroup/CheckboxGroup.stories.d.ts +7 -0
  115. package/dist/components/elements/Fields/CheckboxGroup/CheckboxGroup.stories.js +26 -0
  116. package/dist/components/elements/Fields/CheckboxGroup/index.d.ts +16 -0
  117. package/dist/components/elements/Fields/CheckboxGroup/index.js +49 -0
  118. package/dist/components/elements/Fields/DatePicker/DatePicker.stories.d.ts +8 -0
  119. package/dist/components/elements/Fields/DatePicker/DatePicker.stories.js +31 -0
  120. package/dist/components/elements/Fields/DatePicker/index.d.ts +20 -0
  121. package/dist/components/elements/Fields/DatePicker/index.js +48 -0
  122. package/dist/components/elements/Fields/MonthPicker/MonthPicker.stories.d.ts +7 -0
  123. package/dist/components/elements/Fields/MonthPicker/MonthPicker.stories.js +20 -0
  124. package/dist/components/elements/Fields/MonthPicker/index.d.ts +13 -0
  125. package/dist/components/elements/Fields/MonthPicker/index.js +24 -0
  126. package/dist/components/elements/Fields/Radio/Radio.stories.d.ts +6 -0
  127. package/dist/components/elements/Fields/Radio/Radio.stories.js +17 -0
  128. package/dist/components/elements/Fields/Radio/index.d.ts +8 -0
  129. package/dist/components/elements/Fields/Radio/index.js +22 -0
  130. package/dist/components/elements/Fields/RadioGroup/RadioGroup.stories.d.ts +6 -0
  131. package/dist/components/elements/Fields/RadioGroup/RadioGroup.stories.js +23 -0
  132. package/dist/components/elements/Fields/RadioGroup/index.d.ts +14 -0
  133. package/dist/components/elements/Fields/RadioGroup/index.js +28 -0
  134. package/dist/components/elements/Fields/Select/Select.stories.d.ts +8 -0
  135. package/dist/components/elements/Fields/Select/Select.stories.js +39 -0
  136. package/dist/components/elements/Fields/Select/index.d.ts +18 -0
  137. package/dist/components/elements/Fields/Select/index.js +178 -0
  138. package/dist/components/elements/Fields/TextInput/TextInput.stories.d.ts +9 -0
  139. package/dist/components/elements/Fields/TextInput/TextInput.stories.js +35 -0
  140. package/dist/components/elements/Fields/TextInput/index.d.ts +45 -0
  141. package/dist/components/elements/Fields/TextInput/index.js +119 -0
  142. package/dist/components/elements/Fields/option.d.ts +16 -0
  143. package/dist/components/elements/Fields/option.js +3 -0
  144. package/dist/components/elements/Group/index.d.ts +22 -0
  145. package/dist/components/elements/Group/index.js +69 -0
  146. package/dist/components/elements/Icon/Icon.stories.d.ts +7 -0
  147. package/dist/components/elements/Icon/Icon.stories.js +29 -0
  148. package/dist/components/elements/Icon/Icon.test.d.ts +1 -0
  149. package/dist/components/elements/Icon/Icon.test.js +26 -0
  150. package/dist/components/elements/Icon/index.d.ts +10 -0
  151. package/dist/components/elements/Icon/index.js +34 -0
  152. package/dist/components/elements/Link/Link.stories.d.ts +6 -0
  153. package/dist/components/elements/Link/Link.stories.js +21 -0
  154. package/dist/components/elements/Link/Link.test.d.ts +1 -0
  155. package/dist/components/elements/Link/Link.test.js +58 -0
  156. package/dist/components/elements/Link/index.d.ts +14 -0
  157. package/dist/components/elements/Link/index.js +41 -0
  158. package/dist/components/elements/List/List.stories.d.ts +10 -0
  159. package/dist/components/elements/List/List.stories.js +37 -0
  160. package/dist/components/elements/List/List.test.d.ts +1 -0
  161. package/dist/components/elements/List/List.test.js +24 -0
  162. package/dist/components/elements/List/index.d.ts +27 -0
  163. package/dist/components/elements/List/index.js +103 -0
  164. package/dist/components/elements/ListBox/Listbox.stories.d.ts +6 -0
  165. package/dist/components/elements/ListBox/Listbox.stories.js +17 -0
  166. package/dist/components/elements/ListBox/index.d.ts +33 -0
  167. package/dist/components/elements/ListBox/index.js +51 -0
  168. package/dist/components/elements/Markdown/Markdown.stories.d.ts +10 -0
  169. package/dist/components/elements/Markdown/Markdown.stories.js +97 -0
  170. package/dist/components/elements/Markdown/Markdown.test.d.ts +1 -0
  171. package/dist/components/elements/Markdown/Markdown.test.js +91 -0
  172. package/dist/components/elements/Markdown/index.d.ts +21 -0
  173. package/dist/components/elements/Markdown/index.js +75 -0
  174. package/dist/components/elements/Pill/Pill.stories.d.ts +8 -0
  175. package/dist/components/elements/Pill/Pill.stories.js +40 -0
  176. package/dist/components/elements/Pill/Pill.test.d.ts +1 -0
  177. package/dist/components/elements/Pill/Pill.test.js +18 -0
  178. package/dist/components/elements/Pill/index.d.ts +21 -0
  179. package/dist/components/elements/Pill/index.js +117 -0
  180. package/dist/components/elements/Spinner/Spinner.stories.d.ts +7 -0
  181. package/dist/components/elements/Spinner/Spinner.stories.js +26 -0
  182. package/dist/components/elements/Spinner/Spinner.test.d.ts +1 -0
  183. package/dist/components/elements/Spinner/Spinner.test.js +9 -0
  184. package/dist/components/elements/Spinner/index.d.ts +14 -0
  185. package/dist/components/elements/Spinner/index.js +49 -0
  186. package/dist/components/elements/TabList/TabList.stories.d.ts +6 -0
  187. package/dist/components/elements/TabList/TabList.stories.js +12 -0
  188. package/dist/components/elements/TabList/TabList.test.d.ts +1 -0
  189. package/dist/components/elements/TabList/TabList.test.js +19 -0
  190. package/dist/components/elements/TabList/example.d.ts +7 -0
  191. package/dist/components/elements/TabList/example.js +36 -0
  192. package/dist/components/elements/TabList/index.d.ts +10 -0
  193. package/dist/components/elements/TabList/index.js +30 -0
  194. package/dist/components/elements/Table/Table.stories.d.ts +10 -0
  195. package/dist/components/elements/Table/Table.stories.js +96 -0
  196. package/dist/components/elements/Table/Table.test.d.ts +1 -0
  197. package/dist/components/elements/Table/Table.test.js +36 -0
  198. package/dist/components/elements/Table/index.d.ts +30 -0
  199. package/dist/components/elements/Table/index.js +100 -0
  200. package/dist/components/elements/layout/Box.d.ts +9 -0
  201. package/dist/components/elements/layout/Box.js +3 -0
  202. package/dist/components/elements/layout/Box.stories.d.ts +6 -0
  203. package/dist/components/elements/layout/Box.stories.js +12 -0
  204. package/dist/components/elements/layout/Column.d.ts +8 -0
  205. package/dist/components/elements/layout/Column.js +19 -0
  206. package/dist/components/elements/layout/Flex.stories.d.ts +10 -0
  207. package/dist/components/elements/layout/Flex.stories.js +26 -0
  208. package/dist/components/elements/layout/Flex.test.d.ts +1 -0
  209. package/dist/components/elements/layout/Flex.test.js +34 -0
  210. package/dist/components/elements/layout/Row.d.ts +20 -0
  211. package/dist/components/elements/layout/Row.js +52 -0
  212. package/dist/components/elements/text/Heading/Heading.stories.d.ts +8 -0
  213. package/dist/components/elements/text/Heading/Heading.stories.js +35 -0
  214. package/dist/components/elements/text/Heading/Heading.test.d.ts +1 -0
  215. package/dist/components/elements/text/Heading/Heading.test.js +51 -0
  216. package/dist/components/elements/text/Heading/index.d.ts +20 -0
  217. package/dist/components/elements/text/Heading/index.js +62 -0
  218. package/dist/components/elements/text/Inline/Inline.stories.d.ts +6 -0
  219. package/dist/components/elements/text/Inline/Inline.stories.js +12 -0
  220. package/dist/components/elements/text/Inline/index.d.ts +6 -0
  221. package/dist/components/elements/text/Inline/index.js +21 -0
  222. package/dist/components/elements/text/Label/Label.stories.d.ts +6 -0
  223. package/dist/components/elements/text/Label/Label.stories.js +20 -0
  224. package/dist/components/elements/text/Label/Label.test.d.ts +1 -0
  225. package/dist/components/elements/text/Label/Label.test.js +56 -0
  226. package/dist/components/elements/text/Label/index.d.ts +20 -0
  227. package/dist/components/elements/text/Label/index.js +38 -0
  228. package/dist/components/elements/text/Paragraph/Paragraph.stories.d.ts +6 -0
  229. package/dist/components/elements/text/Paragraph/Paragraph.stories.js +25 -0
  230. package/dist/components/elements/text/Paragraph/Paragraph.test.d.ts +1 -0
  231. package/dist/components/elements/text/Paragraph/Paragraph.test.js +9 -0
  232. package/dist/components/elements/text/Paragraph/index.d.ts +14 -0
  233. package/dist/components/elements/text/Paragraph/index.js +29 -0
  234. package/dist/components/elements/text/ReadMore/ReadMore.stories.d.ts +8 -0
  235. package/dist/components/elements/text/ReadMore/ReadMore.stories.js +26 -0
  236. package/dist/components/elements/text/ReadMore/index.d.ts +12 -0
  237. package/dist/components/elements/text/ReadMore/index.js +71 -0
  238. package/dist/components/providers/alerts.d.ts +41 -0
  239. package/dist/components/providers/alerts.js +133 -0
  240. package/dist/components/providers/componentConfig.d.ts +25 -0
  241. package/dist/components/providers/componentConfig.js +37 -0
  242. package/dist/components/providers/dialogs.d.ts +9 -0
  243. package/dist/components/providers/dialogs.js +32 -0
  244. package/dist/components/providers/env.d.ts +14 -0
  245. package/dist/components/providers/env.js +25 -0
  246. package/dist/components/providers/media.d.ts +8 -0
  247. package/dist/components/providers/media.js +43 -0
  248. package/dist/components/providers/menu.d.ts +46 -0
  249. package/dist/components/providers/menu.js +304 -0
  250. package/dist/components/providers/snackBar.d.ts +23 -0
  251. package/dist/components/providers/snackBar.js +53 -0
  252. package/dist/components/providers/ui.d.ts +18 -0
  253. package/dist/components/providers/ui.js +16 -0
  254. package/dist/components/providers/uniqueIds.d.ts +3 -0
  255. package/dist/components/providers/uniqueIds.js +23 -0
  256. package/dist/components/providers/uniqueIds.test.d.ts +1 -0
  257. package/dist/components/providers/uniqueIds.test.js +26 -0
  258. package/dist/index.d.ts +53 -0
  259. package/dist/index.js +51 -0
  260. package/dist/theme/Color.stories.d.ts +5 -0
  261. package/dist/theme/Color.stories.js +63 -0
  262. package/dist/theme/GlobalStyles.d.ts +1 -0
  263. package/dist/theme/GlobalStyles.js +167 -0
  264. package/dist/theme/Typography.stories.d.ts +5 -0
  265. package/dist/theme/Typography.stories.js +44 -0
  266. package/dist/theme/colors.d.ts +51 -0
  267. package/dist/theme/colors.js +97 -0
  268. package/dist/theme/custom.d.ts +11 -0
  269. package/dist/theme/custom.js +13 -0
  270. package/dist/theme/index.d.ts +185 -0
  271. package/dist/theme/index.js +25 -0
  272. package/dist/theme/spacing.d.ts +0 -0
  273. package/dist/theme/spacing.js +1 -0
  274. package/dist/theme/typography.d.ts +100 -0
  275. package/dist/theme/typography.js +206 -0
  276. package/dist/utils/hooks/useCheckMidClick.d.ts +8 -0
  277. package/dist/utils/hooks/useCheckMidClick.js +17 -0
  278. package/dist/utils/hooks/useCheckMidKeyPress.d.ts +9 -0
  279. package/dist/utils/hooks/useCheckMidKeyPress.js +23 -0
  280. package/dist/utils/hooks/useHover.d.ts +7 -0
  281. package/dist/utils/hooks/useHover.js +12 -0
  282. package/dist/utils/hooks/useStorage.d.ts +14 -0
  283. package/dist/utils/hooks/useStorage.js +37 -0
  284. package/dist/utils/misc.d.ts +14 -0
  285. package/dist/utils/misc.js +19 -0
  286. package/dist/utils/sortByKey.d.ts +12 -0
  287. package/dist/utils/sortByKey.js +20 -0
  288. package/dist/utils/test.d.ts +2 -0
  289. package/dist/utils/test.js +9 -0
  290. package/package.json +98 -0
@@ -0,0 +1,304 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React, { useEffect, useState } from 'react';
3
+ import { useEnvironment } from './env';
4
+ import { KEY_CODES, equals } from '../../utils/misc';
5
+ import { useCheckMidClick } from '../../utils/hooks/useCheckMidClick';
6
+ import { useUniqueId } from './uniqueIds';
7
+ import { useCheckMidKeyPress } from '../../utils/hooks/useCheckMidKeyPress';
8
+ export var MENU_ACTION_TYPE;
9
+ (function (MENU_ACTION_TYPE) {
10
+ MENU_ACTION_TYPE["SUBMENU"] = "SUBMENU";
11
+ MENU_ACTION_TYPE["LINK"] = "LINK";
12
+ })(MENU_ACTION_TYPE || (MENU_ACTION_TYPE = {}));
13
+ export var MENU_ORIENTATION;
14
+ (function (MENU_ORIENTATION) {
15
+ MENU_ORIENTATION["HORIZONTAL"] = "HORIZONTAL";
16
+ MENU_ORIENTATION["VERTICAL"] = "VERTICAL";
17
+ })(MENU_ORIENTATION || (MENU_ORIENTATION = {}));
18
+ const MenuContext = React.createContext({
19
+ menu: { items: [], orientation: MENU_ORIENTATION.HORIZONTAL },
20
+ activePath: [],
21
+ isOpen: false,
22
+ open: () => { },
23
+ close: () => { },
24
+ getMenuItem: () => undefined,
25
+ getMenuItemProps: () => ({}),
26
+ getMenuProps: () => ({}),
27
+ });
28
+ const getAriaRoleDescription = (orientation) => {
29
+ if (orientation === MENU_ORIENTATION.HORIZONTAL) {
30
+ return 'Menu item, press right arrow to navigate to next item, press enter to select';
31
+ }
32
+ else {
33
+ return 'Menu item, press down arrow to navigate to next item, press enter to select';
34
+ }
35
+ };
36
+ export const useMenu = () => React.useContext(MenuContext);
37
+ const activeStyles = {
38
+ outline: '2px solid blue',
39
+ };
40
+ const inactiveStyles = {
41
+ outline: 'none',
42
+ };
43
+ export const MenuProvider = ({ menu, children, }) => {
44
+ const { flagInDevelopment } = useEnvironment();
45
+ const menuId = useUniqueId('hcl-menu');
46
+ const { isMidClick, elementProps: checkMidclickProps } = useCheckMidClick();
47
+ const { isMidKeyPress, elementProps: checkMidKeyPressProps } = useCheckMidKeyPress();
48
+ const closeOnBlurTimeout = React.useRef();
49
+ const initialPath = React.useMemo(() => [menu.items[0].id], [menu]);
50
+ const [activePath, setActivePath] = useState(initialPath);
51
+ const [isOpen, setIsOpen] = useState(false);
52
+ const getItemId = React.useCallback((path) => `${menuId}-item-${path.join('-')}`, [menuId]);
53
+ useEffect(() => {
54
+ if (activePath && isOpen) {
55
+ const activeChild = window.document.getElementById(getItemId(activePath));
56
+ activeChild === null || activeChild === void 0 ? void 0 : activeChild.focus();
57
+ clearTimeout(closeOnBlurTimeout.current);
58
+ }
59
+ }, [activePath, getItemId, isOpen]);
60
+ const open = React.useCallback(() => {
61
+ setIsOpen(true);
62
+ }, []);
63
+ const close = React.useCallback(() => {
64
+ setIsOpen(false);
65
+ }, []);
66
+ const getMenuItem = React.useCallback((path) => {
67
+ let menuItem = undefined;
68
+ for (const pathSegment of path) {
69
+ if (!menuItem) {
70
+ menuItem = menu.items.find((item) => item.id === pathSegment);
71
+ }
72
+ else if (menuItem.action.type === MENU_ACTION_TYPE.SUBMENU) {
73
+ menuItem = menuItem.action.submenu.items.find((item) => item.id === pathSegment);
74
+ }
75
+ if (!menuItem) {
76
+ return undefined;
77
+ }
78
+ }
79
+ return menuItem;
80
+ }, [menu]);
81
+ const activeMenuItem = React.useMemo(() => getMenuItem(activePath), [activePath, getMenuItem]);
82
+ const activeParentMenu = React.useMemo(() => {
83
+ let parentMenu = menu;
84
+ const tempActivePath = [...activePath];
85
+ tempActivePath.pop();
86
+ if (tempActivePath.length > 0) {
87
+ const parentMenuItem = getMenuItem(tempActivePath);
88
+ if ((parentMenuItem === null || parentMenuItem === void 0 ? void 0 : parentMenuItem.action.type) === MENU_ACTION_TYPE.SUBMENU) {
89
+ parentMenu = parentMenuItem === null || parentMenuItem === void 0 ? void 0 : parentMenuItem.action.submenu;
90
+ }
91
+ else {
92
+ flagInDevelopment('');
93
+ }
94
+ }
95
+ return parentMenu;
96
+ }, [activePath, menu, getMenuItem, flagInDevelopment]);
97
+ const activeIndex = React.useMemo(() => {
98
+ return activeParentMenu.items.findIndex((item) => item.id === activePath[activePath.length - 1]);
99
+ }, [activeParentMenu, activePath]);
100
+ const currentMenuLength = activeParentMenu.items.length;
101
+ const onFocus = React.useCallback(() => {
102
+ if (!isMidClick.current) {
103
+ open();
104
+ }
105
+ }, [isMidClick, open]);
106
+ const onBlur = React.useCallback(() => {
107
+ checkMidKeyPressProps.onBlur();
108
+ closeOnBlurTimeout.current = setTimeout(() => {
109
+ close();
110
+ setActivePath(initialPath);
111
+ }, 300);
112
+ }, [close, initialPath, checkMidKeyPressProps]);
113
+ const onKeyDown = React.useCallback((e) => {
114
+ checkMidKeyPressProps.onKeyDown(e);
115
+ const navigateNext = () => {
116
+ const nextIndex = (activeIndex + 1) % currentMenuLength;
117
+ const nextId = activeParentMenu.items[nextIndex].id;
118
+ setActivePath([...activePath.slice(0, activePath.length - 1), nextId]);
119
+ };
120
+ const navigatePrevious = () => {
121
+ if (activeIndex === 0) {
122
+ navigateOut();
123
+ }
124
+ else {
125
+ const prevIndex = activeIndex - 1;
126
+ const prevId = activeParentMenu.items[prevIndex].id;
127
+ setActivePath([...activePath.slice(0, activePath.length - 1), prevId]);
128
+ }
129
+ };
130
+ const navigateIn = () => {
131
+ var _a;
132
+ if (((_a = activeMenuItem === null || activeMenuItem === void 0 ? void 0 : activeMenuItem.action) === null || _a === void 0 ? void 0 : _a.type) === MENU_ACTION_TYPE.SUBMENU) {
133
+ setActivePath([
134
+ ...activePath,
135
+ activeMenuItem.action.submenu.items[0].id,
136
+ ]);
137
+ }
138
+ else {
139
+ navigateNext();
140
+ }
141
+ };
142
+ const navigateOut = () => {
143
+ if (activePath.length > 1) {
144
+ setActivePath(activePath.slice(0, activePath.length - 1));
145
+ }
146
+ };
147
+ const select = () => {
148
+ if ((activeMenuItem === null || activeMenuItem === void 0 ? void 0 : activeMenuItem.action.type) === MENU_ACTION_TYPE.SUBMENU) {
149
+ setActivePath(activePath.concat([activeMenuItem === null || activeMenuItem === void 0 ? void 0 : activeMenuItem.id]));
150
+ }
151
+ else if ((activeMenuItem === null || activeMenuItem === void 0 ? void 0 : activeMenuItem.action.type) === MENU_ACTION_TYPE.LINK) {
152
+ window.location.href = activeMenuItem.action.to;
153
+ }
154
+ };
155
+ const isVertical = activeParentMenu.orientation === MENU_ORIENTATION.VERTICAL;
156
+ if (e.key === KEY_CODES.ENTER) {
157
+ if ((activeMenuItem === null || activeMenuItem === void 0 ? void 0 : activeMenuItem.action.type) === MENU_ACTION_TYPE.LINK) {
158
+ select();
159
+ }
160
+ else if ((activeMenuItem === null || activeMenuItem === void 0 ? void 0 : activeMenuItem.action.type) === MENU_ACTION_TYPE.SUBMENU) {
161
+ navigateIn();
162
+ }
163
+ }
164
+ if (e.key === KEY_CODES.ESCAPE) {
165
+ if (activePath.length > 1) {
166
+ navigateOut();
167
+ }
168
+ else {
169
+ const activeChild = window.document.getElementById(getItemId(activePath));
170
+ activeChild === null || activeChild === void 0 ? void 0 : activeChild.blur();
171
+ }
172
+ }
173
+ if (e.key === KEY_CODES.ARROW_DOWN) {
174
+ if (isVertical) {
175
+ navigateNext();
176
+ }
177
+ else {
178
+ navigateIn();
179
+ }
180
+ }
181
+ if (e.key === KEY_CODES.ARROW_UP) {
182
+ if (isVertical) {
183
+ navigatePrevious();
184
+ }
185
+ else {
186
+ navigateOut();
187
+ }
188
+ }
189
+ if (e.key === KEY_CODES.ARROW_RIGHT) {
190
+ if (isVertical) {
191
+ navigateIn();
192
+ }
193
+ else {
194
+ navigateNext();
195
+ }
196
+ }
197
+ if (e.key === KEY_CODES.ARROW_LEFT) {
198
+ if (isVertical) {
199
+ navigateOut();
200
+ }
201
+ else {
202
+ navigatePrevious();
203
+ }
204
+ }
205
+ }, [
206
+ activePath,
207
+ activeIndex,
208
+ activeMenuItem,
209
+ activeParentMenu,
210
+ currentMenuLength,
211
+ getItemId,
212
+ checkMidKeyPressProps,
213
+ ]);
214
+ const getMenuProps = React.useCallback((path) => {
215
+ const isTopLevel = !path;
216
+ let _menu = menu;
217
+ let menuItem = undefined;
218
+ if (path) {
219
+ menuItem = getMenuItem(path);
220
+ if ((menuItem === null || menuItem === void 0 ? void 0 : menuItem.action.type) === MENU_ACTION_TYPE.SUBMENU) {
221
+ _menu = menuItem.action.submenu;
222
+ }
223
+ }
224
+ const isVertical = _menu.orientation === MENU_ORIENTATION.VERTICAL;
225
+ const topLevelProps = Object.assign(Object.assign({}, checkMidclickProps), { onKeyUp: checkMidKeyPressProps.onKeyUp, onKeyDown,
226
+ onFocus,
227
+ onBlur });
228
+ return Object.assign({ role: 'menu', 'aria-orientation': isVertical ? 'vertical' : 'horizontal', tabIndex: isTopLevel ? 0 : -1 }, (isTopLevel ? topLevelProps : {}));
229
+ }, [
230
+ menu,
231
+ onFocus,
232
+ onBlur,
233
+ checkMidclickProps,
234
+ checkMidKeyPressProps,
235
+ getMenuItem,
236
+ onKeyDown,
237
+ ]);
238
+ const getMenuItemProps = React.useCallback((path) => {
239
+ const isTopLevel = path.length === 1;
240
+ const isActivePath = equals(path, activePath);
241
+ const useActiveStyles = isOpen && equals(path, activePath);
242
+ const styles = useActiveStyles ? activeStyles : inactiveStyles;
243
+ return Object.assign(Object.assign({}, checkMidclickProps), { role: 'menuitem', 'aria-roledescription': getAriaRoleDescription(activeParentMenu.orientation), id: getItemId(path), onKeyDown: equals(path, activePath) ? onKeyDown : undefined, onKeyUp: checkMidKeyPressProps.onKeyUp, tabIndex: -1, onFocus: () => {
244
+ if (!isMidClick) {
245
+ setActivePath(path);
246
+ }
247
+ }, onMouseDown: () => {
248
+ checkMidclickProps.onMouseDown();
249
+ const menuItem = getMenuItem(path);
250
+ if ((menuItem === null || menuItem === void 0 ? void 0 : menuItem.action.type) === MENU_ACTION_TYPE.LINK) {
251
+ window.location.href = menuItem.action.to;
252
+ }
253
+ }, onClick: (e) => {
254
+ const menuItem = getMenuItem(path);
255
+ const isSubmenu = (menuItem === null || menuItem === void 0 ? void 0 : menuItem.action.type) === MENU_ACTION_TYPE.SUBMENU;
256
+ if (!isSubmenu) {
257
+ e.preventDefault();
258
+ }
259
+ if (isSubmenu &&
260
+ isActivePath &&
261
+ isTopLevel &&
262
+ !isMidKeyPress.current &&
263
+ isOpen) {
264
+ close();
265
+ }
266
+ else if (isSubmenu &&
267
+ isTopLevel &&
268
+ !isMidKeyPress.current &&
269
+ (!isOpen || !isActivePath)) {
270
+ setActivePath(path);
271
+ open();
272
+ }
273
+ else {
274
+ onKeyDown({
275
+ key: KEY_CODES.ENTER,
276
+ });
277
+ }
278
+ }, style: styles });
279
+ }, [
280
+ getItemId,
281
+ getMenuItem,
282
+ activePath,
283
+ checkMidclickProps,
284
+ isMidKeyPress,
285
+ checkMidKeyPressProps,
286
+ isOpen,
287
+ close,
288
+ open,
289
+ onKeyDown,
290
+ activeParentMenu,
291
+ isMidClick,
292
+ ]);
293
+ const contextValue = {
294
+ menu,
295
+ isOpen,
296
+ open,
297
+ close,
298
+ activePath,
299
+ getMenuItem,
300
+ getMenuProps,
301
+ getMenuItemProps,
302
+ };
303
+ return (_jsx(MenuContext.Provider, Object.assign({ value: contextValue }, { children: typeof children === 'function' ? children(contextValue) : children })));
304
+ };
@@ -0,0 +1,23 @@
1
+ /// <reference types="react" />
2
+ type SnackBarMessage = {
3
+ message: string;
4
+ content?: JSX.Element;
5
+ id?: string;
6
+ };
7
+ type SendMessageOptions = {
8
+ timeout?: number;
9
+ wipePrevious?: boolean;
10
+ };
11
+ type SnackBarMessageWithId = Omit<SnackBarMessage, 'id'> & {
12
+ id: string;
13
+ };
14
+ type AddMessage = (message: SnackBarMessage, options?: SendMessageOptions) => void;
15
+ type SnackBarContextType = {
16
+ addMessage: AddMessage;
17
+ removeMessage: (id: string) => void;
18
+ messages: SnackBarMessageWithId[];
19
+ previousMessageCount: number;
20
+ };
21
+ export declare const SnackBarProvider: React.FC<React.PropsWithChildren>;
22
+ export declare const useSnackBar: () => SnackBarContextType;
23
+ export {};
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useCallback, useContext, useEffect, useRef, useState, } from 'react';
3
+ const DEFAULT_TIMEOUT = 10000;
4
+ const SnackBarContext = createContext({
5
+ addMessage: () => { },
6
+ removeMessage: () => { },
7
+ previousMessageCount: 0,
8
+ messages: [],
9
+ });
10
+ export const SnackBarProvider = ({ children, }) => {
11
+ const [messages, setMessages] = useState([]);
12
+ const removeMessageTimeouts = useRef([]);
13
+ const previousMessageCount = useRef(0);
14
+ const removeMessage = useCallback((id) => {
15
+ setMessages((messages) => {
16
+ previousMessageCount.current = messages.length;
17
+ return messages.filter((m) => m.id !== id);
18
+ });
19
+ }, []);
20
+ const addMessage = useCallback((message, options = {}) => {
21
+ const newRandomId = Math.random().toString(36).substring(7);
22
+ setMessages((messages) => {
23
+ previousMessageCount.current = options.wipePrevious
24
+ ? 0
25
+ : messages.length;
26
+ let newMessages = options.wipePrevious ? [] : [...messages];
27
+ newMessages = newMessages.filter((m) => m.id !== message.id);
28
+ newMessages.push(Object.assign(Object.assign({}, message), { id: message.id || newRandomId }));
29
+ if (newMessages.length > 3) {
30
+ newMessages.shift();
31
+ }
32
+ return newMessages;
33
+ });
34
+ const removeMessageTimeout = setTimeout(() => {
35
+ removeMessage(newRandomId);
36
+ }, options.timeout || DEFAULT_TIMEOUT);
37
+ removeMessageTimeouts.current.push(removeMessageTimeout);
38
+ }, [removeMessage]);
39
+ useEffect(() => {
40
+ return () => {
41
+ removeMessageTimeouts.current.forEach((timeout) => clearTimeout(timeout));
42
+ };
43
+ }, []);
44
+ return (_jsx(SnackBarContext.Provider, Object.assign({ value: {
45
+ messages,
46
+ removeMessage,
47
+ previousMessageCount: previousMessageCount.current,
48
+ addMessage,
49
+ } }, { children: children })));
50
+ };
51
+ export const useSnackBar = () => {
52
+ return useContext(SnackBarContext);
53
+ };
@@ -0,0 +1,18 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { ComponentConfigParam } from './componentConfig';
3
+ import { ENVIRONMENT } from './env';
4
+ import { AlertQueryParams } from './alerts';
5
+ import { StructuredDataProps } from '../composites/StructuredData';
6
+ export type UiConfig = {
7
+ structuredData?: StructuredDataProps;
8
+ env?: ENVIRONMENT;
9
+ components?: ComponentConfigParam;
10
+ alertsConfig?: AlertQueryParams;
11
+ disableAlerts?: boolean;
12
+ loadFonts?: boolean;
13
+ loadGlobalStyles?: boolean;
14
+ includeTheme?: boolean;
15
+ };
16
+ type UiProviderProps = PropsWithChildren<UiConfig>;
17
+ export declare const UiProvider: React.FC<UiProviderProps>;
18
+ export {};
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ComponentConfigProvider, } from './componentConfig';
3
+ import { EnvironmentProvider } from './env';
4
+ import { ThemeProvider } from '../../theme/';
5
+ import { AlertsProvider } from './alerts';
6
+ import { FontLoader } from '../../FontLoader';
7
+ import { GlobalStyles } from '../../theme/GlobalStyles';
8
+ import { DialogsProvider } from './dialogs';
9
+ import { MediaSizeProvider } from './media';
10
+ import StructuredData from '../composites/StructuredData';
11
+ import { SnackBarProvider } from './snackBar';
12
+ import { UniqueIdProvider } from './uniqueIds';
13
+ export const UiProvider = ({ structuredData, env, components, alertsConfig, children, includeTheme = true, loadFonts, loadGlobalStyles, }) => {
14
+ const core = (_jsxs(EnvironmentProvider, Object.assign({ env: env }, { children: [_jsx(MediaSizeProvider, { children: _jsx(ComponentConfigProvider, Object.assign({ config: components || {} }, { children: _jsx(UniqueIdProvider, { children: _jsx(SnackBarProvider, { children: _jsx(DialogsProvider, { children: _jsx(AlertsProvider, Object.assign({}, alertsConfig, { children: children })) }) }) }) })) }), loadGlobalStyles && _jsx(GlobalStyles, {}), loadFonts && _jsx(FontLoader, {}), structuredData && _jsx(StructuredData, Object.assign({}, structuredData))] })));
15
+ return includeTheme ? _jsx(ThemeProvider, { children: core }) : core;
16
+ };
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const UniqueIdProvider: React.FC<React.PropsWithChildren>;
3
+ export declare const useUniqueId: (prefix: string) => string;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, useMemo, useRef } from 'react';
3
+ const UniqueIdContext = createContext({});
4
+ export const UniqueIdProvider = ({ children, }) => {
5
+ const countIndexRef = useRef({});
6
+ return (_jsx(UniqueIdContext.Provider, Object.assign({ value: countIndexRef.current }, { children: children })));
7
+ };
8
+ export const useUniqueId = (prefix) => {
9
+ const countIndex = useContext(UniqueIdContext);
10
+ return useMemo(() => {
11
+ var _a;
12
+ const idForPrefix = ((_a = countIndex[prefix]) === null || _a === void 0 ? void 0 : _a.count) || 1;
13
+ if (!countIndex[prefix]) {
14
+ countIndex[prefix] = {
15
+ count: 2,
16
+ };
17
+ }
18
+ else {
19
+ countIndex[prefix].count += 1;
20
+ }
21
+ return `${prefix}-${idForPrefix}`;
22
+ }, []);
23
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { render } from '@testing-library/react';
3
+ import { UniqueIdProvider, useUniqueId } from './uniqueIds';
4
+ const ExampleInner = () => {
5
+ const uniqueId1 = useUniqueId('test-1');
6
+ const uniqueId2 = useUniqueId('test-1');
7
+ const uniqueId3 = useUniqueId('test-2');
8
+ return (_jsxs(_Fragment, { children: [_jsx("div", { children: uniqueId1 }), _jsx("div", { children: uniqueId2 }), _jsx("div", { children: uniqueId3 })] }));
9
+ };
10
+ const ExampleOuter = () => {
11
+ return (_jsxs(UniqueIdProvider, { children: [_jsx(ExampleInner, {}), _jsx(ExampleInner, {}), _jsx(ExampleInner, {})] }));
12
+ };
13
+ describe('UniqueIdProvider', () => {
14
+ it('should generate unique ids', () => {
15
+ const { getByText } = render(_jsx(ExampleOuter, {}));
16
+ expect(getByText('test-1-1')).toBeInTheDocument();
17
+ expect(getByText('test-1-2')).toBeInTheDocument();
18
+ expect(getByText('test-2-1')).toBeInTheDocument();
19
+ expect(getByText('test-1-3')).toBeInTheDocument();
20
+ expect(getByText('test-1-4')).toBeInTheDocument();
21
+ expect(getByText('test-2-2')).toBeInTheDocument();
22
+ expect(getByText('test-1-5')).toBeInTheDocument();
23
+ expect(getByText('test-1-6')).toBeInTheDocument();
24
+ expect(getByText('test-2-3')).toBeInTheDocument();
25
+ });
26
+ });
@@ -0,0 +1,53 @@
1
+ export { theme, ThemeProvider, useTheme } from './theme';
2
+ export type { StylesProp, StyledElementProps } from './theme';
3
+ export { COLOR } from './theme/colors';
4
+ export { TYPOGRAPHY_TYPE, FONT, FONT_SIZE, FONT_WEIGHT, LINE_HEIGHT, } from './theme/typography';
5
+ export { GlobalStyles } from './theme/GlobalStyles';
6
+ export { Alert, Alerts } from './components/elements/Alerts';
7
+ export { ArrowLink } from './components/elements/ArrowLink';
8
+ export { BrandingBar } from './components/elements/BrandingBar';
9
+ export { Button, BUTTON_SIZE, BUTTON_TYPE, LinkButton, } from './components/elements/Button';
10
+ export { Heading, HEADING_SIZE } from './components/elements/text/Heading';
11
+ export { Label, LABEL_SIZE } from './components/elements/text/Label';
12
+ export { Paragraph, PARAGRAPH_SIZE } from './components/elements/text/Paragraph';
13
+ export { Group, useGroup, GROUP_TYPE } from './components/elements/Group';
14
+ export { Markdown } from './components/elements/Markdown';
15
+ export { Box } from './components/elements/layout/Box';
16
+ export { Column } from './components/elements/layout/Column';
17
+ export { Row } from './components/elements/layout/Row';
18
+ export { Link, LINK_SIZE } from './components/elements/Link';
19
+ export { INPUT_SIZE, TextInput } from './components/elements/Fields/TextInput';
20
+ export { Select } from './components/elements/Fields/Select';
21
+ export { DatePicker } from './components/elements/Fields/DatePicker';
22
+ export { MonthPicker } from './components/elements/Fields/MonthPicker';
23
+ export { Checkbox } from './components/elements/Fields/Checkbox';
24
+ export { CheckboxGroup } from './components/elements/Fields/CheckboxGroup';
25
+ export { Radio } from './components/elements/Fields/Radio';
26
+ export { RadioGroup } from './components/elements/Fields/RadioGroup';
27
+ export { List, ListItem, LIST_SIZE } from './components/elements/List';
28
+ export { ReadMore } from './components/elements/text/ReadMore';
29
+ export { Icon } from './components/elements/Icon';
30
+ export { Dropdown } from './components/elements/Dropdown';
31
+ export { Spinner, SPINNER_SIZE } from './components/elements/Spinner';
32
+ export { Pill, PILL_SIZE, PILL_TYPE } from './components/elements/Pill';
33
+ export { Table, TableColumn } from './components/elements/Table';
34
+ export { TabList, Tab } from './components/elements/TabList';
35
+ export { Card, CARD_SIZE, CARD_LAYOUT } from './components/composites/Card';
36
+ export { SnackBar } from './components/composites/SnackBar';
37
+ export { NavMenu } from './components/composites/NavMenu';
38
+ export { EmptyState, EMPTY_STATE_SIZE, } from './components/composites/EmptyState';
39
+ export { DropdownLinks } from './components/composites/DropdownLinks';
40
+ export { Modal } from './components/composites/Modal';
41
+ export { DragDropList, DragHandle } from './components/composites/DragDropList';
42
+ export { Seo } from './components/composites/Seo';
43
+ export { StructuredData } from './components/composites/StructuredData';
44
+ export { UiProvider } from './components/providers/ui';
45
+ export { MenuProvider, useMenu, MENU_ACTION_TYPE, MENU_ORIENTATION, } from './components/providers/menu';
46
+ export { SnackBarProvider, useSnackBar } from './components/providers/snackBar';
47
+ export { useAlerts, AlertsProvider, ALERT_TYPE, ALERT_DOMAIN, } from './components/providers/alerts';
48
+ export { MediaSizeProvider, useMediaQuery } from './components/providers/media';
49
+ export { DialogsProvider, useDialog } from './components/providers/dialogs';
50
+ export { useUniqueId } from './components/providers/uniqueIds';
51
+ export { sortByKey, SORT_DIRECTION } from './utils/sortByKey';
52
+ export type { SortConfig } from './utils/sortByKey';
53
+ export { useHover } from './utils/hooks/useHover';
package/dist/index.js ADDED
@@ -0,0 +1,51 @@
1
+ export { theme, ThemeProvider, useTheme } from './theme';
2
+ export { COLOR } from './theme/colors';
3
+ export { TYPOGRAPHY_TYPE, FONT, FONT_SIZE, FONT_WEIGHT, LINE_HEIGHT, } from './theme/typography';
4
+ export { GlobalStyles } from './theme/GlobalStyles';
5
+ export { Alert, Alerts } from './components/elements/Alerts';
6
+ export { ArrowLink } from './components/elements/ArrowLink';
7
+ export { BrandingBar } from './components/elements/BrandingBar';
8
+ export { Button, BUTTON_SIZE, BUTTON_TYPE, LinkButton, } from './components/elements/Button';
9
+ export { Heading, HEADING_SIZE } from './components/elements/text/Heading';
10
+ export { Label, LABEL_SIZE } from './components/elements/text/Label';
11
+ export { Paragraph, PARAGRAPH_SIZE } from './components/elements/text/Paragraph';
12
+ export { Group, useGroup, GROUP_TYPE } from './components/elements/Group';
13
+ export { Markdown } from './components/elements/Markdown';
14
+ export { Box } from './components/elements/layout/Box';
15
+ export { Column } from './components/elements/layout/Column';
16
+ export { Row } from './components/elements/layout/Row';
17
+ export { Link, LINK_SIZE } from './components/elements/Link';
18
+ export { INPUT_SIZE, TextInput } from './components/elements/Fields/TextInput';
19
+ export { Select } from './components/elements/Fields/Select';
20
+ export { DatePicker } from './components/elements/Fields/DatePicker';
21
+ export { MonthPicker } from './components/elements/Fields/MonthPicker';
22
+ export { Checkbox } from './components/elements/Fields/Checkbox';
23
+ export { CheckboxGroup } from './components/elements/Fields/CheckboxGroup';
24
+ export { Radio } from './components/elements/Fields/Radio';
25
+ export { RadioGroup } from './components/elements/Fields/RadioGroup';
26
+ export { List, ListItem, LIST_SIZE } from './components/elements/List';
27
+ export { ReadMore } from './components/elements/text/ReadMore';
28
+ export { Icon } from './components/elements/Icon';
29
+ export { Dropdown } from './components/elements/Dropdown';
30
+ export { Spinner, SPINNER_SIZE } from './components/elements/Spinner';
31
+ export { Pill, PILL_SIZE, PILL_TYPE } from './components/elements/Pill';
32
+ export { Table, TableColumn } from './components/elements/Table';
33
+ export { TabList, Tab } from './components/elements/TabList';
34
+ export { Card, CARD_SIZE, CARD_LAYOUT } from './components/composites/Card';
35
+ export { SnackBar } from './components/composites/SnackBar';
36
+ export { NavMenu } from './components/composites/NavMenu';
37
+ export { EmptyState, EMPTY_STATE_SIZE, } from './components/composites/EmptyState';
38
+ export { DropdownLinks } from './components/composites/DropdownLinks';
39
+ export { Modal } from './components/composites/Modal';
40
+ export { DragDropList, DragHandle } from './components/composites/DragDropList';
41
+ export { Seo } from './components/composites/Seo';
42
+ export { StructuredData } from './components/composites/StructuredData';
43
+ export { UiProvider } from './components/providers/ui';
44
+ export { MenuProvider, useMenu, MENU_ACTION_TYPE, MENU_ORIENTATION, } from './components/providers/menu';
45
+ export { SnackBarProvider, useSnackBar } from './components/providers/snackBar';
46
+ export { useAlerts, AlertsProvider, ALERT_TYPE, ALERT_DOMAIN, } from './components/providers/alerts';
47
+ export { MediaSizeProvider, useMediaQuery } from './components/providers/media';
48
+ export { DialogsProvider, useDialog } from './components/providers/dialogs';
49
+ export { useUniqueId } from './components/providers/uniqueIds';
50
+ export { sortByKey, SORT_DIRECTION } from './utils/sortByKey';
51
+ export { useHover } from './utils/hooks/useHover';
@@ -0,0 +1,5 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj<typeof meta>;
5
+ export declare const Default: Story;
@@ -0,0 +1,63 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { COLOR } from './colors';
3
+ import { GROUP_TYPE, Group } from '../components/elements/Group';
4
+ import { Row } from '../components/elements/layout/Row';
5
+ import { Box } from '../components/elements/layout/Box';
6
+ import { LABEL_SIZE, Label } from '../components/elements/text/Label';
7
+ const meta = {
8
+ title: 'Theme/Colors',
9
+ };
10
+ const ColorSquare = ({ color }) => {
11
+ return _jsx(Box, { sx: { p: 3, bg: color } });
12
+ };
13
+ export default meta;
14
+ const colors = [
15
+ { color: COLOR.TEXT, label: 'TEXT' },
16
+ { color: COLOR.BACKGROUND, label: 'BACKGROUND' },
17
+ { color: COLOR.PRIMARY, label: 'PRIMARY' },
18
+ { color: COLOR.PRIMARY_HIGHLIGHT, label: 'PRIMARY_HIGHLIGHT' },
19
+ { color: COLOR.GRAY, label: 'GRAY' },
20
+ { color: COLOR.DARK_GRAY, label: 'DARK_GRAY' },
21
+ { color: COLOR.LIGHT_GRAY, label: 'LIGHT GRAY' },
22
+ { color: COLOR.EXTRA_LIGHT_GRAY, label: 'EXTRA_LIGHT_GRAY' },
23
+ { color: COLOR.EXTRA_EXTRA_LIGHT_GRAY, label: 'EXTRA_EXTRA_LIGHT_GRAY' },
24
+ { color: COLOR.ND_BLUE, label: 'ND_BLUE' },
25
+ { color: COLOR.ND_BLUE_DARK, label: 'ND_BLUE_DARK' },
26
+ { color: COLOR.ND_BLUE_LIGHT, label: 'ND_BLUE_LIGHT' },
27
+ { color: COLOR.ND_BLUE_BRIGHT, label: 'ND_BLUE_BRIGHT' },
28
+ { color: COLOR.ND_GOLD, label: 'ND_GOLD' },
29
+ { color: COLOR.ND_GOLD_LIGHT, label: 'ND_GOLD_LIGHT' },
30
+ { color: COLOR.ND_GOLD_DARK, label: 'ND_GOLD_DARK' },
31
+ { color: COLOR.ND_METALLIC_GOLD, label: 'ND_METALLIC_GOLD' },
32
+ { color: COLOR.ND_PROVOST_BLUE, label: 'ND_PROVOST_BLUE' },
33
+ { color: COLOR.ND_SECONDARY_1, label: 'ND_SECONDARY_1' },
34
+ { color: COLOR.ND_SECONDARY_2, label: 'ND_SECONDARY_2' },
35
+ { color: COLOR.ND_SECONDARY_3, label: 'ND_SECONDARY_3' },
36
+ { color: COLOR.ND_SECONDARY_4, label: 'ND_SECONDARY_4' },
37
+ { color: COLOR.ND_SECONDARY_5, label: 'ND_SECONDARY_5' },
38
+ { color: COLOR.ND_SECONDARY_6, label: 'ND_SECONDARY_6' },
39
+ { color: COLOR.ND_TERTIARY_1, label: 'ND_TERTIARY_1' },
40
+ { color: COLOR.ND_TERTIARY_2, label: 'ND_TERTIARY_2' },
41
+ { color: COLOR.ND_TERTIARY_3, label: 'ND_TERTIARY_3' },
42
+ { color: COLOR.ND_TERTIARY_4, label: 'ND_TERTIARY_4' },
43
+ { color: COLOR.ND_TERTIARY_5, label: 'ND_TERTIARY_5' },
44
+ { color: COLOR.ND_TERTIARY_6, label: 'ND_TERTIARY_6' },
45
+ { color: COLOR.ALERT_INFORMATIONAL_BG, label: 'ALERT_INFORMATIONAL_BG' },
46
+ {
47
+ color: COLOR.ALERT_INFORMATIONAL_BORDER,
48
+ label: 'ALERT_INFORMATIONAL_BORDER',
49
+ },
50
+ {
51
+ color: COLOR.ALERT_INFORMATIONAL_YELLOW_BG,
52
+ label: 'ALERT_INFORMATIONAL_YELLOW_BG',
53
+ },
54
+ {
55
+ color: COLOR.ALERT_INFORMATIONAL_YELLOW_BORDER,
56
+ label: 'ALERT_INFORMATIONAL_YELLOW_BORDER',
57
+ },
58
+ { color: COLOR.ALERT_WARNING_BG, label: 'ALERT_WARNING_BG' },
59
+ { color: COLOR.ALERT_WARNING_BORDER, label: 'ALERT_WARNING_BORDER' },
60
+ ];
61
+ export const Default = {
62
+ render: () => (_jsx(Row, Object.assign({ sx: { flexWrap: 'wrap' } }, { children: colors.map((color) => (_jsxs(Group, Object.assign({ type: GROUP_TYPE.GROUP, sx: { mr: 3, mt: 0, flexBasis: '100px' } }, { children: [_jsx(Label, Object.assign({ size: LABEL_SIZE.SM }, { children: color.label })), _jsx(ColorSquare, { color: color.color })] }), color.label))) }))),
63
+ };
@@ -0,0 +1 @@
1
+ export declare const GlobalStyles: () => import("react/jsx-runtime").JSX.Element;