@conduction/components 2.2.18 → 2.2.20

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 (168) hide show
  1. package/.prettierrc +30 -30
  2. package/README.md +2 -0
  3. package/lib/components/Pagination/Pagination.d.ts +14 -14
  4. package/lib/components/Pagination/Pagination.js +12 -12
  5. package/lib/components/badgeCounter/BadgeCounter.d.ts +8 -8
  6. package/lib/components/badgeCounter/BadgeCounter.js +4 -4
  7. package/lib/components/badgeCounter/BadgeCounter.module.css +27 -27
  8. package/lib/components/card/cardHeader/CardHeader.d.ts +4 -4
  9. package/lib/components/card/cardHeader/CardHeader.js +14 -14
  10. package/lib/components/card/cardWrapper/CardWrapper.d.ts +2 -2
  11. package/lib/components/card/cardWrapper/CardWrapper.js +6 -6
  12. package/lib/components/card/detailsCard/DetailsCard.d.ts +14 -14
  13. package/lib/components/card/detailsCard/DetailsCard.js +11 -11
  14. package/lib/components/card/downloadCard/DownloadCard.d.ts +11 -11
  15. package/lib/components/card/downloadCard/DownloadCard.js +9 -9
  16. package/lib/components/card/horizontalImageCard/HorizontalImageCard.d.ts +13 -13
  17. package/lib/components/card/horizontalImageCard/HorizontalImageCard.js +10 -10
  18. package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.d.ts +14 -14
  19. package/lib/components/card/imageAndDetailsCard/ImageAndDetailsCard.js +10 -10
  20. package/lib/components/card/index.d.ts +8 -8
  21. package/lib/components/card/index.js +8 -8
  22. package/lib/components/card/infoCard/InfoCard.d.ts +8 -8
  23. package/lib/components/card/infoCard/InfoCard.js +6 -6
  24. package/lib/components/card/infoCard/InfoCard.module.css +26 -26
  25. package/lib/components/card/richContentCard/RichContentCard.d.ts +19 -19
  26. package/lib/components/card/richContentCard/RichContentCard.js +15 -16
  27. package/lib/components/codeBlock/CodeBlock.d.ts +6 -6
  28. package/lib/components/codeBlock/CodeBlock.js +3 -3
  29. package/lib/components/codeBlock/CodeBlock.module.css +6 -6
  30. package/lib/components/container/Container.d.ts +6 -6
  31. package/lib/components/container/Container.js +4 -4
  32. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.css +222 -222
  33. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.d.ts +17 -17
  34. package/lib/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.js +20 -20
  35. package/lib/components/denhaag-wrappers/pagination/Pagination.css +120 -120
  36. package/lib/components/denhaag-wrappers/pagination/Pagination.d.ts +9 -9
  37. package/lib/components/denhaag-wrappers/pagination/Pagination.js +15 -15
  38. package/lib/components/editableTableRow/EditableTableRow.d.ts +14 -14
  39. package/lib/components/editableTableRow/EditableTableRow.js +31 -31
  40. package/lib/components/editableTableRow/EditableTableRow.module.css +25 -25
  41. package/lib/components/formFields/checkbox/Checkbox.module.css +7 -7
  42. package/lib/components/formFields/checkbox/checkbox.d.ts +9 -9
  43. package/lib/components/formFields/checkbox/checkbox.js +3 -3
  44. package/lib/components/formFields/createKeyValue/CreateKeyValue.d.ts +23 -23
  45. package/lib/components/formFields/createKeyValue/CreateKeyValue.js +40 -40
  46. package/lib/components/formFields/date/Date.d.ts +12 -12
  47. package/lib/components/formFields/date/Date.js +10 -10
  48. package/lib/components/formFields/date/Date.module.css +12 -12
  49. package/lib/components/formFields/errorMessage/ErrorMessage.d.ts +5 -5
  50. package/lib/components/formFields/errorMessage/ErrorMessage.js +3 -3
  51. package/lib/components/formFields/index.d.ts +7 -7
  52. package/lib/components/formFields/index.js +7 -7
  53. package/lib/components/formFields/input.d.ts +22 -22
  54. package/lib/components/formFields/input.js +12 -12
  55. package/lib/components/formFields/radio.d.ts +9 -9
  56. package/lib/components/formFields/radio.js +3 -3
  57. package/lib/components/formFields/select/select.d.ts +24 -24
  58. package/lib/components/formFields/select/select.js +74 -74
  59. package/lib/components/formFields/select/select.module.css +1 -1
  60. package/lib/components/formFields/textarea.d.ts +10 -10
  61. package/lib/components/formFields/textarea.js +4 -4
  62. package/lib/components/formFields/types.d.ts +6 -6
  63. package/lib/components/formFields/types.js +1 -1
  64. package/lib/components/horizontalOverflowWrapper/HorizontalOverflowWrapper.d.ts +10 -10
  65. package/lib/components/horizontalOverflowWrapper/HorizontalOverflowWrapper.js +36 -36
  66. package/lib/components/htmlParser/ParsedHTML.d.ts +10 -0
  67. package/lib/components/htmlParser/ParsedHTML.js +17 -0
  68. package/lib/components/htmlParser/ParsedHTML.module.css +7 -0
  69. package/lib/components/htmlParser/parser/alert/getAlert.d.ts +1 -0
  70. package/lib/components/htmlParser/parser/alert/getAlert.js +18 -0
  71. package/lib/components/htmlParser/parser/alert/getAlert.module.css +28 -0
  72. package/lib/components/htmlParser/parser/anchor/getAnchor.d.ts +2 -0
  73. package/lib/components/htmlParser/parser/anchor/getAnchor.js +74 -0
  74. package/lib/components/htmlParser/parser/code/getCode.d.ts +1 -0
  75. package/lib/components/htmlParser/parser/code/getCode.js +11 -0
  76. package/lib/components/htmlParser/parser/getBlockquote/getBlockquote.d.ts +1 -0
  77. package/lib/components/htmlParser/parser/getBlockquote/getBlockquote.js +6 -0
  78. package/lib/components/htmlParser/parser/header/getHeader.d.ts +1 -0
  79. package/lib/components/htmlParser/parser/header/getHeader.js +15 -0
  80. package/lib/components/htmlParser/parser/image/getImage.d.ts +1 -0
  81. package/lib/components/htmlParser/parser/image/getImage.js +28 -0
  82. package/lib/components/htmlParser/parser/list/getList.d.ts +1 -0
  83. package/lib/components/htmlParser/parser/list/getList.js +12 -0
  84. package/lib/components/htmlParser/parser/list/getList.module.css +3 -0
  85. package/lib/components/htmlParser/parser/listItem/getListItem.d.ts +1 -0
  86. package/lib/components/htmlParser/parser/listItem/getListItem.js +12 -0
  87. package/lib/components/htmlParser/parser/paragraph/getParagraph.d.ts +1 -0
  88. package/lib/components/htmlParser/parser/paragraph/getParagraph.js +6 -0
  89. package/lib/components/htmlParser/parser/svg/getSvg.d.ts +1 -0
  90. package/lib/components/htmlParser/parser/svg/getSvg.js +8 -0
  91. package/lib/components/htmlParser/parser/table/getTable.d.ts +1 -0
  92. package/lib/components/htmlParser/parser/table/getTable.js +7 -0
  93. package/lib/components/htmlParser/parser/table/getTable.module.css +3 -0
  94. package/lib/components/htmlParser/parser/tableBody/getTableBody.d.ts +1 -0
  95. package/lib/components/htmlParser/parser/tableBody/getTableBody.js +7 -0
  96. package/lib/components/htmlParser/parser/tableBody/getTableBody.module.css +3 -0
  97. package/lib/components/htmlParser/parser/tableCell/getTableCell.d.ts +1 -0
  98. package/lib/components/htmlParser/parser/tableCell/getTableCell.js +7 -0
  99. package/lib/components/htmlParser/parser/tableCell/getTableCell.module.css +3 -0
  100. package/lib/components/htmlParser/parser/tableHeader/getTableHeader.d.ts +1 -0
  101. package/lib/components/htmlParser/parser/tableHeader/getTableHeader.js +7 -0
  102. package/lib/components/htmlParser/parser/tableHeader/getTableHeader.module.css +28 -0
  103. package/lib/components/htmlParser/parser/tableHeaderCell/getTableHeaderCell.d.ts +1 -0
  104. package/lib/components/htmlParser/parser/tableHeaderCell/getTableHeaderCell.js +6 -0
  105. package/lib/components/htmlParser/parser/tableRow/getTableRow.d.ts +1 -0
  106. package/lib/components/htmlParser/parser/tableRow/getTableRow.js +7 -0
  107. package/lib/components/htmlParser/parser/tableRow/getTableRow.module.css +29 -0
  108. package/lib/components/htmlParser/parser/useHtmlParser.d.ts +5 -0
  109. package/lib/components/htmlParser/parser/useHtmlParser.js +78 -0
  110. package/lib/components/htmlParser/useGitHubDirectories.d.ts +10 -0
  111. package/lib/components/htmlParser/useGitHubDirectories.js +31 -0
  112. package/lib/components/imageDivider/ImageDivider.d.ts +7 -7
  113. package/lib/components/imageDivider/ImageDivider.js +6 -6
  114. package/lib/components/imageDivider/imageDivider.module.css +5 -5
  115. package/lib/components/logo/Logo.d.ts +8 -8
  116. package/lib/components/logo/Logo.js +10 -10
  117. package/lib/components/logo/Logo.module.css +15 -15
  118. package/lib/components/metaIcon/MetaIcon.d.ts +7 -7
  119. package/lib/components/metaIcon/MetaIcon.js +3 -3
  120. package/lib/components/metaIcon/MetaIcon.module.css +29 -29
  121. package/lib/components/notificationPopUp/NotificationPopUp.d.ts +26 -26
  122. package/lib/components/notificationPopUp/NotificationPopUp.js +32 -32
  123. package/lib/components/privateRoute/PrivateRoute.d.ts +6 -6
  124. package/lib/components/privateRoute/PrivateRoute.js +15 -15
  125. package/lib/components/quoteWrapper/QuoteWrapper.d.ts +7 -7
  126. package/lib/components/quoteWrapper/QuoteWrapper.js +5 -5
  127. package/lib/components/quoteWrapper/QuoteWrapper.module.css +12 -12
  128. package/lib/components/statusSteps/StatusSteps.d.ts +13 -0
  129. package/lib/components/statusSteps/StatusSteps.js +5 -0
  130. package/lib/components/tableWrapper/TableWrapper.d.ts +4 -4
  131. package/lib/components/tableWrapper/TableWrapper.js +30 -30
  132. package/lib/components/tabs/Tabs.d.ts +5 -5
  133. package/lib/components/tabs/Tabs.js +49 -49
  134. package/lib/components/tag/Tag.d.ts +10 -10
  135. package/lib/components/tag/Tag.js +6 -6
  136. package/lib/components/tag/Tag.module.css +44 -44
  137. package/lib/components/toolTip/ToolTip.d.ts +14 -14
  138. package/lib/components/toolTip/ToolTip.js +14 -14
  139. package/lib/components/topNav/index.d.ts +3 -3
  140. package/lib/components/topNav/index.js +3 -3
  141. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.d.ts +39 -20
  142. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.js +23 -34
  143. package/lib/components/topNav/primaryTopNav/PrimaryTopNav.module.css +10 -5
  144. package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.d.ts +12 -12
  145. package/lib/components/topNav/secondaryTopNav/SecondaryTopNav.js +7 -7
  146. package/lib/custom.d copy.d.ts +5 -0
  147. package/lib/custom.d copy.js +1 -0
  148. package/lib/index.d.ts +27 -27
  149. package/lib/index.js +20 -20
  150. package/package.json +1 -1
  151. package/src/components/badgeCounter/BadgeCounter.module.css +27 -27
  152. package/src/components/card/infoCard/InfoCard.module.css +26 -26
  153. package/src/components/codeBlock/CodeBlock.module.css +6 -6
  154. package/src/components/denhaag-wrappers/breadcrumbs/Breadcrumbs.css +222 -222
  155. package/src/components/formFields/checkbox/Checkbox.module.css +7 -7
  156. package/src/components/formFields/date/Date.module.css +12 -12
  157. package/src/components/formFields/select/select.module.css +1 -1
  158. package/src/components/imageDivider/imageDivider.module.css +5 -5
  159. package/src/components/logo/Logo.module.css +15 -15
  160. package/src/components/metaIcon/MetaIcon.module.css +29 -29
  161. package/src/components/quoteWrapper/QuoteWrapper.module.css +12 -12
  162. package/src/components/tag/Tag.module.css +44 -44
  163. package/src/components/topNav/index.ts +4 -4
  164. package/src/components/topNav/primaryTopNav/PrimaryTopNav.module.css +10 -5
  165. package/src/components/topNav/primaryTopNav/PrimaryTopNav.tsx +63 -47
  166. package/src/custom.d.ts +4 -4
  167. package/lib/components/temp/Temp.d.ts +0 -5
  168. package/lib/components/temp/Temp.js +0 -14
@@ -1,29 +1,29 @@
1
- :root {
2
- --conduction-meta-icon-icon-size: var(--skeleton-size-lg);
3
- --conduction-meta-icon-icon-color: var(--skeleton-color-secondary-4);
4
- }
5
-
6
- .container {
7
- display: flex;
8
- align-items: center;
9
- flex-direction: column;
10
- }
11
-
12
- .container > *:not(:last-child) {
13
- margin-block-end: var(--skeleton-size-xs);
14
- }
15
-
16
- .icon {
17
- color: var(--conduction-meta-icon-icon-color);
18
- height: var(--conduction-meta-icon-icon-size);
19
- width: var(--conduction-meta-icon-icon-size);
20
- }
21
-
22
- .icon > svg {
23
- height: 100%;
24
- width: 100%;
25
- }
26
-
27
- .value {
28
- font-weight: var(--skeleton-font-weight-bold);
29
- }
1
+ :root {
2
+ --conduction-meta-icon-icon-size: var(--skeleton-size-lg);
3
+ --conduction-meta-icon-icon-color: var(--skeleton-color-secondary-4);
4
+ }
5
+
6
+ .container {
7
+ display: flex;
8
+ align-items: center;
9
+ flex-direction: column;
10
+ }
11
+
12
+ .container > *:not(:last-child) {
13
+ margin-block-end: var(--skeleton-size-xs);
14
+ }
15
+
16
+ .icon {
17
+ color: var(--conduction-meta-icon-icon-color);
18
+ height: var(--conduction-meta-icon-icon-size);
19
+ width: var(--conduction-meta-icon-icon-size);
20
+ }
21
+
22
+ .icon > svg {
23
+ height: 100%;
24
+ width: 100%;
25
+ }
26
+
27
+ .value {
28
+ font-weight: var(--skeleton-font-weight-bold);
29
+ }
@@ -1,12 +1,12 @@
1
- :root {
2
- --conduction-quote-wrapper-border-width: var(--skeleton-size-sm);
3
- --conduction-quote-wrapper-border-color: var(--skeleton-color-grey-1);
4
- --conduction-quote-wrapper-padding-inline: var(--skeleton-size-lg);
5
- }
6
-
7
- .container {
8
- border-left-width: var(--conduction-quote-wrapper-border-width);
9
- border-left-style: solid;
10
- border-left-color: var(--conduction-quote-wrapper-border-color);
11
- padding-inline-start: var(--conduction-quote-wrapper-padding-inline);
12
- }
1
+ :root {
2
+ --conduction-quote-wrapper-border-width: var(--skeleton-size-sm);
3
+ --conduction-quote-wrapper-border-color: var(--skeleton-color-grey-1);
4
+ --conduction-quote-wrapper-padding-inline: var(--skeleton-size-lg);
5
+ }
6
+
7
+ .container {
8
+ border-left-width: var(--conduction-quote-wrapper-border-width);
9
+ border-left-style: solid;
10
+ border-left-color: var(--conduction-quote-wrapper-border-color);
11
+ padding-inline-start: var(--conduction-quote-wrapper-padding-inline);
12
+ }
@@ -1,44 +1,44 @@
1
- :root {
2
- --conduction-tag-font-size: var(--skeleton-font-size-sm);
3
- --conduction-tag-color: var(--skeleton-black);
4
- --conduction-tag-background-color: var(--skeleton-color-grey-1);
5
- --conduction-tag-border-radius: var(--skeleton-border-radius-md);
6
- --conduction-tag-padding: var(--skeleton-size-xs);
7
- --conduction-tag-icon-margin-inline-end: var(--skeleton-size-2xs);
8
- --conduction-tag-remove-background-color: #ffbdad;
9
- --conduction-tag-remove-text-color: #e44f2a;
10
- }
11
-
12
- .tag {
13
- display: inline-block;
14
- width: fit-content;
15
- font-size: var(--conduction-tag-font-size);
16
- color: var(--conduction-tag-color);
17
- background-color: var(--conduction-tag-background-color);
18
- padding-inline-start: var(--conduction-tag-padding);
19
- padding-inline-end: var(--conduction-tag-padding);
20
- padding-block-start: var(--conduction-tag-padding);
21
- padding-block-end: var(--conduction-tag-padding);
22
- }
23
-
24
- .tag > *:not(:last-child) {
25
- margin-inline-end: var(--conduction-tag-icon-margin-inline-end);
26
- }
27
-
28
- .clickable :hover {
29
- cursor: pointer;
30
- }
31
-
32
- .remove {
33
- padding-inline-end: 4px;
34
- }
35
-
36
- .tagContainer {
37
- display: flex;
38
- }
39
-
40
- .removeTag:hover {
41
- cursor: pointer;
42
- background-color: var(--conduction-tag-remove-background-color);
43
- color: var(--conduction-tag-remove-text-color);
44
- }
1
+ :root {
2
+ --conduction-tag-font-size: var(--skeleton-font-size-sm);
3
+ --conduction-tag-color: var(--skeleton-black);
4
+ --conduction-tag-background-color: var(--skeleton-color-grey-1);
5
+ --conduction-tag-border-radius: var(--skeleton-border-radius-md);
6
+ --conduction-tag-padding: var(--skeleton-size-xs);
7
+ --conduction-tag-icon-margin-inline-end: var(--skeleton-size-2xs);
8
+ --conduction-tag-remove-background-color: #ffbdad;
9
+ --conduction-tag-remove-text-color: #e44f2a;
10
+ }
11
+
12
+ .tag {
13
+ display: inline-block;
14
+ width: fit-content;
15
+ font-size: var(--conduction-tag-font-size);
16
+ color: var(--conduction-tag-color);
17
+ background-color: var(--conduction-tag-background-color);
18
+ padding-inline-start: var(--conduction-tag-padding);
19
+ padding-inline-end: var(--conduction-tag-padding);
20
+ padding-block-start: var(--conduction-tag-padding);
21
+ padding-block-end: var(--conduction-tag-padding);
22
+ }
23
+
24
+ .tag > *:not(:last-child) {
25
+ margin-inline-end: var(--conduction-tag-icon-margin-inline-end);
26
+ }
27
+
28
+ .clickable :hover {
29
+ cursor: pointer;
30
+ }
31
+
32
+ .remove {
33
+ padding-inline-end: 4px;
34
+ }
35
+
36
+ .tagContainer {
37
+ display: flex;
38
+ }
39
+
40
+ .removeTag:hover {
41
+ cursor: pointer;
42
+ background-color: var(--conduction-tag-remove-background-color);
43
+ color: var(--conduction-tag-remove-text-color);
44
+ }
@@ -1,4 +1,4 @@
1
- import { PrimaryTopNav } from "./primaryTopNav/PrimaryTopNav";
2
- import { SecondaryTopNav } from "./secondaryTopNav/SecondaryTopNav";
3
-
4
- export { PrimaryTopNav, SecondaryTopNav };
1
+ import { PrimaryTopNav } from "./primaryTopNav/PrimaryTopNav";
2
+ import { SecondaryTopNav } from "./secondaryTopNav/SecondaryTopNav";
3
+
4
+ export { PrimaryTopNav, SecondaryTopNav };
@@ -116,6 +116,11 @@
116
116
  }
117
117
  .primary .link {
118
118
  text-decoration: none;
119
+ text-overflow: ellipsis;
120
+ display: block;
121
+ overflow: hidden;
122
+ max-width: 100%;
123
+ white-space: wrap;
119
124
  }
120
125
 
121
126
  .primary .link:not(.currentLink) {
@@ -187,6 +192,11 @@
187
192
  margin-inline-end: var(--conduction-primary-top-nav-item-icon-margin);
188
193
  }
189
194
 
195
+ .li:hover .dropdown {
196
+ display: block;
197
+ z-index: 1;
198
+ }
199
+
190
200
  @media only screen and (min-width: 992px) {
191
201
  .container {
192
202
  width: fit-content;
@@ -215,11 +225,6 @@
215
225
  display: none;
216
226
  }
217
227
 
218
- .primary .li:hover .dropdown {
219
- display: block;
220
- z-index: 1;
221
- }
222
-
223
228
  .mobileLink {
224
229
  margin-block-end: unset;
225
230
  }
@@ -4,20 +4,57 @@ import clsx from "clsx";
4
4
  import { Link } from "@utrecht/component-library-react/dist/css-module";
5
5
  import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
6
6
  import { faBars, faChevronRight } from "@fortawesome/free-solid-svg-icons";
7
+ import { IconPrefix, IconName } from "@fortawesome/fontawesome-svg-core";
7
8
 
8
- interface ITopNavItem {
9
+ interface ITopNavItemBase {
9
10
  label: string;
10
11
  icon?: JSX.Element;
11
- current?: boolean;
12
- handleClick?: () => any;
13
- subItems?: {
14
- label: string;
15
- icon?: JSX.Element;
16
- current?: boolean;
17
- handleClick?: () => any;
18
- }[];
12
+ current?: boolean | ICurrentItemJSONFormat;
19
13
  }
20
14
 
15
+ interface ICurrentItemJSONFormat {
16
+ pathname: string;
17
+ operator: "equals" | "includes";
18
+ filterCondition?: {
19
+ filter: string;
20
+ value: string;
21
+ isObject: boolean;
22
+ };
23
+ }
24
+
25
+ interface IIconJSONFormat {
26
+ icon?: {
27
+ icon: IconName;
28
+ prefix: IconPrefix;
29
+ placement: "left" | "right";
30
+ };
31
+ customIcon?: {
32
+ icon: string;
33
+ placement: "left" | "right";
34
+ };
35
+ }
36
+
37
+ interface IHandleClickJSONFormat {
38
+ link: string;
39
+ setFilter?: {
40
+ filter: string;
41
+ value: string;
42
+ };
43
+ }
44
+
45
+ interface ITopNavItemWithSubItems extends ITopNavItemBase {
46
+ handleClick?: never;
47
+ subItems: ITopNavItem[];
48
+ }
49
+
50
+ interface ITopNavItemWithoutSubItems extends ITopNavItemBase {
51
+ handleClick?: () => any | IHandleClickJSONFormat;
52
+ type: "readme" | "internal" | "external";
53
+ subItems?: never;
54
+ }
55
+
56
+ export type ITopNavItem = ITopNavItemWithSubItems | ITopNavItemWithoutSubItems;
57
+
21
58
  export interface TopNavProps {
22
59
  items: ITopNavItem[];
23
60
  mobileLogo?: JSX.Element;
@@ -26,30 +63,24 @@ export interface TopNavProps {
26
63
 
27
64
  export const PrimaryTopNav = ({ items, mobileLogo, layoutClassName }: TopNavProps): JSX.Element => {
28
65
  const [isOpen, setIsOpen] = React.useState<boolean>(false);
29
- const [subNavIsOpen, setSubNavIsOpen] = React.useState({});
66
+ const [isMobile, setIsMobile] = React.useState<boolean>(window.innerWidth < 992);
30
67
 
31
- const handleItemClick = (handleClick?: () => any) => {
32
- if (handleClick) {
33
- handleClick();
68
+ React.useEffect(() => {
69
+ const handleResize = () => {
70
+ setIsMobile(window.innerWidth < 992);
71
+ };
34
72
 
35
- setIsOpen(false);
36
- }
37
- };
73
+ window.addEventListener("resize", handleResize);
38
74
 
39
- const handleSubItemMenu = (idx: number, value: boolean) => {
40
- setSubNavIsOpen({
41
- ...subNavIsOpen,
42
- [idx as keyof typeof subNavIsOpen]: value,
43
- });
44
- };
75
+ return () => window.removeEventListener("resize", handleResize);
76
+ }, []);
45
77
 
46
- const screenWidth = window.innerWidth;
78
+ const handleSubItemClick = (handleClick: any) => {
79
+ setIsOpen(false);
80
+
81
+ handleClick();
82
+ };
47
83
 
48
- React.useEffect(() => {
49
- if (screenWidth > 992) {
50
- setSubNavIsOpen({});
51
- }
52
- }, [screenWidth]);
53
84
  return (
54
85
  <div className={clsx(styles.container, layoutClassName && layoutClassName)}>
55
86
  <div className={styles.menuToggleContainer}>
@@ -63,17 +94,7 @@ export const PrimaryTopNav = ({ items, mobileLogo, layoutClassName }: TopNavProp
63
94
  <nav className={clsx(styles.primary, isOpen && styles.isOpen)}>
64
95
  <ul className={styles.ul}>
65
96
  {items.map(({ label, icon, current, handleClick, subItems }, idx) => (
66
- <li
67
- onClick={() =>
68
- !subItems
69
- ? handleItemClick(handleClick)
70
- : screenWidth > 992
71
- ? handleItemClick(handleClick)
72
- : handleSubItemMenu(idx, !subNavIsOpen[idx as keyof typeof subNavIsOpen] ?? true)
73
- }
74
- className={clsx(styles.li, current && styles.current)}
75
- key={idx}
76
- >
97
+ <li onClick={handleClick} className={clsx(styles.li, current && styles.current)} key={idx}>
77
98
  <Link
78
99
  className={clsx(
79
100
  styles.link,
@@ -84,21 +105,16 @@ export const PrimaryTopNav = ({ items, mobileLogo, layoutClassName }: TopNavProp
84
105
  >
85
106
  {icon}
86
107
  {label}{" "}
87
- {subItems && screenWidth < 992 && (
88
- <FontAwesomeIcon
89
- className={clsx(styles.toggleIcon, subNavIsOpen[idx as keyof typeof subNavIsOpen] && styles.isOpen)}
90
- icon={faChevronRight}
91
- />
92
- )}
108
+ {subItems && isMobile && <FontAwesomeIcon className={styles.toggleIcon} icon={faChevronRight} />}
93
109
  </Link>
94
110
 
95
111
  {subItems && (
96
- <ul className={clsx(styles.dropdown, subNavIsOpen[idx as keyof typeof subNavIsOpen] && styles.isOpen)}>
112
+ <ul className={styles.dropdown}>
97
113
  {subItems.map(({ label, icon, current, handleClick }, idx) => (
98
114
  <li
99
115
  key={idx}
100
116
  className={clsx(styles.li, current && styles.current)}
101
- onClick={() => handleItemClick(handleClick)}
117
+ onClick={() => handleSubItemClick(handleClick)}
102
118
  >
103
119
  <Link className={clsx(styles.link, styles.label, current && styles.currentLink)}>
104
120
  {icon}
package/src/custom.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- declare module "*.svg";
2
- declare module "*.jpg";
3
- declare module "*.png";
4
- declare module "*.module.css";
1
+ declare module "*.svg";
2
+ declare module "*.jpg";
3
+ declare module "*.png";
4
+ declare module "*.module.css";
@@ -1,5 +0,0 @@
1
- import { ReactTabsFunctionComponent, TabProps, TabPanelProps, TabListProps, TabsProps } from "react-tabs";
2
- export declare const Tabs: ReactTabsFunctionComponent<TabsProps>;
3
- export declare const TabList: ReactTabsFunctionComponent<TabListProps>;
4
- export declare const Tab: ReactTabsFunctionComponent<TabProps>;
5
- export declare const TabPanel: ReactTabsFunctionComponent<TabPanelProps>;
@@ -1,14 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Tabs as RTabs, TabList as RTabList, Tab as RTab, TabPanel as RTabPanel, } from "react-tabs";
3
- // Tabs
4
- export const Tabs = ({ children, ...otherProps }) => (_jsx(RTabs, { ...otherProps, children: _jsx("h1", { children: children }) }));
5
- Tabs.tabsRole = "Tabs";
6
- // TabList
7
- export const TabList = ({ children, ...otherProps }) => (_jsx(RTabList, { ...otherProps, children: children }));
8
- TabList.tabsRole = "TabList";
9
- // Tab
10
- export const Tab = ({ children, ...otherProps }) => (_jsx(RTab, { ...otherProps, children: children }));
11
- Tab.tabsRole = "Tab";
12
- // TabPanel
13
- export const TabPanel = ({ children, ...otherProps }) => (_jsx(RTabPanel, { ...otherProps, children: children }));
14
- TabPanel.tabsRole = "TabPanel";