@dnanpm/styleguide 1.9.0 → 2.0.0

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 (155) hide show
  1. package/build/cjs/components/Accordion/Accordion.d.ts +27 -15
  2. package/build/cjs/components/Accordion/Accordion.js +29 -12
  3. package/build/cjs/components/Accordion/AccordionItem.d.ts +14 -29
  4. package/build/cjs/components/Accordion/AccordionItem.js +29 -52
  5. package/build/cjs/components/AmountSelector/AmountSelector.js +3 -4
  6. package/build/cjs/components/Buttons/ButtonBasicStyles.d.ts +37 -30
  7. package/build/cjs/components/Buttons/ButtonBasicStyles.js +10 -14
  8. package/build/cjs/components/Buttons/ButtonDefault.js +6 -2
  9. package/build/cjs/components/Buttons/ButtonIconPrimaryStyles.d.ts +37 -30
  10. package/build/cjs/components/Buttons/ButtonIconStyles.d.ts +37 -30
  11. package/build/cjs/components/Buttons/ButtonPrimary.js +6 -2
  12. package/build/cjs/components/Buttons/ButtonPrimaryStyles.d.ts +37 -30
  13. package/build/cjs/components/Buttons/ButtonSecondary.js +7 -3
  14. package/build/cjs/components/Buttons/ButtonSecondaryStyles.d.ts +37 -30
  15. package/build/cjs/components/Buttons/ButtonTertiary.js +7 -3
  16. package/build/cjs/components/Buttons/ButtonTertiaryStyles.d.ts +37 -30
  17. package/build/cjs/components/Buttons/CloseButton.d.ts +37 -30
  18. package/build/cjs/components/Card/Card.js +4 -2
  19. package/build/cjs/components/Card/CardRow.js +3 -3
  20. package/build/cjs/components/Checkbox/Checkbox.d.ts +38 -12
  21. package/build/cjs/components/Checkbox/Checkbox.js +37 -70
  22. package/build/cjs/components/DnaLogo/DnaLogo.d.ts +37 -40
  23. package/build/cjs/components/Footer/Components/FooterComponents.js +3 -2
  24. package/build/cjs/components/Helper/Helper.js +2 -1
  25. package/build/cjs/components/Icon/Icon.d.ts +39 -30
  26. package/build/cjs/components/Icon/Icons.d.ts +1 -4
  27. package/build/cjs/components/Icon/Icons.js +3 -7
  28. package/build/cjs/components/Input/Input.d.ts +102 -13
  29. package/build/cjs/components/Input/Input.js +57 -58
  30. package/build/cjs/components/Label/Label.js +2 -3
  31. package/build/cjs/components/LabelText/LabelText.d.ts +38 -30
  32. package/build/cjs/components/LabelText/LabelText.js +1 -1
  33. package/build/cjs/components/MainNavigation/ChildComponents/BusinessMenu.js +1 -1
  34. package/build/cjs/components/MainNavigation/ChildComponents/DesktopMenu.js +10 -4
  35. package/build/cjs/components/MainNavigation/ChildComponents/HeaderNavigationElements.d.ts +37 -30
  36. package/build/cjs/components/MainNavigation/ChildComponents/LanguageSelector.js +2 -2
  37. package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +37 -30
  38. package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +1 -4
  39. package/build/cjs/components/MainNavigation/ChildComponents/MobileMenu.js +1 -1
  40. package/build/cjs/components/MainNavigation/ChildComponents/Ribbon.js +1 -1
  41. package/build/cjs/components/MainNavigation/MainNavigation.js +1 -1
  42. package/build/cjs/components/MainNavigation/globalNavStyles.d.ts +148 -120
  43. package/build/cjs/components/Notification/Notification.d.ts +1 -5
  44. package/build/cjs/components/Notification/Notification.js +1 -4
  45. package/build/cjs/components/NotificationBadge/NotificationBadge.d.ts +37 -30
  46. package/build/cjs/components/NotificationBadge/NotificationBadge.js +1 -1
  47. package/build/cjs/components/PixelLoader/PixelLoaderStyles.d.ts +74 -60
  48. package/build/cjs/components/ProgressIndicator/ProgressIndicator.js +3 -3
  49. package/build/cjs/components/RadioButton/RadioButton.d.ts +33 -17
  50. package/build/cjs/components/RadioButton/RadioButton.js +12 -57
  51. package/build/cjs/components/ReadMore/ReadMore.js +2 -7
  52. package/build/cjs/components/Ribbon/Ribbon.js +2 -2
  53. package/build/cjs/components/Search/Search.js +2 -1
  54. package/build/cjs/components/SecondaryNavigation/SecondaryNavigation.js +2 -2
  55. package/build/cjs/components/Selectbox/Selectbox.d.ts +102 -13
  56. package/build/cjs/components/Selectbox/Selectbox.js +40 -49
  57. package/build/cjs/components/Tabs/Tab.d.ts +37 -30
  58. package/build/cjs/components/Tabs/Tab.js +3 -2
  59. package/build/cjs/components/Tabs/Tabs.d.ts +40 -30
  60. package/build/cjs/components/Textarea/Textarea.js +4 -3
  61. package/build/cjs/components/Tooltip/Tooltip.d.ts +37 -30
  62. package/build/cjs/components/TooltipMenu/ChildComponents/TooltipMenuExportedStyles.d.ts +74 -60
  63. package/build/cjs/components/index.d.ts +3 -2
  64. package/build/cjs/index.js +2 -2
  65. package/build/cjs/themes/globalStyles.d.ts +174 -60
  66. package/build/cjs/themes/globalStyles.js +132 -142
  67. package/build/cjs/themes/styled.d.ts +259 -210
  68. package/build/cjs/themes/theme.d.ts +37 -30
  69. package/build/cjs/themes/themeComponents/buttons.d.ts +1 -6
  70. package/build/cjs/themes/themeComponents/buttons.js +1 -6
  71. package/build/cjs/themes/themeComponents/fontFamily.d.ts +3 -1
  72. package/build/cjs/themes/themeComponents/fontFamily.js +3 -1
  73. package/build/cjs/themes/themeComponents/fontSize.d.ts +18 -15
  74. package/build/cjs/themes/themeComponents/fontSize.js +20 -14
  75. package/build/cjs/themes/themeComponents/lineHeight.d.ts +19 -12
  76. package/build/cjs/themes/themeComponents/lineHeight.js +21 -11
  77. package/build/es/components/Accordion/Accordion.d.ts +27 -15
  78. package/build/es/components/Accordion/Accordion.js +29 -12
  79. package/build/es/components/Accordion/AccordionItem.d.ts +14 -29
  80. package/build/es/components/Accordion/AccordionItem.js +31 -54
  81. package/build/es/components/AmountSelector/AmountSelector.js +3 -4
  82. package/build/es/components/Buttons/ButtonBasicStyles.d.ts +37 -30
  83. package/build/es/components/Buttons/ButtonBasicStyles.js +10 -14
  84. package/build/es/components/Buttons/ButtonDefault.js +6 -2
  85. package/build/es/components/Buttons/ButtonIconPrimaryStyles.d.ts +37 -30
  86. package/build/es/components/Buttons/ButtonIconStyles.d.ts +37 -30
  87. package/build/es/components/Buttons/ButtonPrimary.js +6 -2
  88. package/build/es/components/Buttons/ButtonPrimaryStyles.d.ts +37 -30
  89. package/build/es/components/Buttons/ButtonSecondary.js +7 -3
  90. package/build/es/components/Buttons/ButtonSecondaryStyles.d.ts +37 -30
  91. package/build/es/components/Buttons/ButtonTertiary.js +7 -3
  92. package/build/es/components/Buttons/ButtonTertiaryStyles.d.ts +37 -30
  93. package/build/es/components/Buttons/CloseButton.d.ts +37 -30
  94. package/build/es/components/Card/Card.js +4 -2
  95. package/build/es/components/Card/CardRow.js +3 -3
  96. package/build/es/components/Checkbox/Checkbox.d.ts +38 -12
  97. package/build/es/components/Checkbox/Checkbox.js +39 -72
  98. package/build/es/components/DnaLogo/DnaLogo.d.ts +37 -40
  99. package/build/es/components/Footer/Components/FooterComponents.js +3 -2
  100. package/build/es/components/Helper/Helper.js +2 -1
  101. package/build/es/components/Icon/Icon.d.ts +39 -30
  102. package/build/es/components/Icon/Icons.d.ts +1 -4
  103. package/build/es/components/Icon/Icons.js +3 -7
  104. package/build/es/components/Input/Input.d.ts +102 -13
  105. package/build/es/components/Input/Input.js +57 -58
  106. package/build/es/components/Label/Label.js +2 -3
  107. package/build/es/components/LabelText/LabelText.d.ts +38 -30
  108. package/build/es/components/LabelText/LabelText.js +1 -1
  109. package/build/es/components/MainNavigation/ChildComponents/BusinessMenu.js +1 -1
  110. package/build/es/components/MainNavigation/ChildComponents/DesktopMenu.js +10 -4
  111. package/build/es/components/MainNavigation/ChildComponents/HeaderNavigationElements.d.ts +37 -30
  112. package/build/es/components/MainNavigation/ChildComponents/LanguageSelector.js +2 -2
  113. package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +37 -30
  114. package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +2 -5
  115. package/build/es/components/MainNavigation/ChildComponents/MobileMenu.js +1 -1
  116. package/build/es/components/MainNavigation/ChildComponents/Ribbon.js +1 -1
  117. package/build/es/components/MainNavigation/MainNavigation.js +1 -1
  118. package/build/es/components/MainNavigation/globalNavStyles.d.ts +148 -120
  119. package/build/es/components/Notification/Notification.d.ts +1 -5
  120. package/build/es/components/Notification/Notification.js +1 -4
  121. package/build/es/components/NotificationBadge/NotificationBadge.d.ts +37 -30
  122. package/build/es/components/NotificationBadge/NotificationBadge.js +1 -1
  123. package/build/es/components/PixelLoader/PixelLoaderStyles.d.ts +74 -60
  124. package/build/es/components/ProgressIndicator/ProgressIndicator.js +3 -3
  125. package/build/es/components/RadioButton/RadioButton.d.ts +33 -17
  126. package/build/es/components/RadioButton/RadioButton.js +12 -57
  127. package/build/es/components/ReadMore/ReadMore.js +2 -7
  128. package/build/es/components/Ribbon/Ribbon.js +2 -2
  129. package/build/es/components/Search/Search.js +2 -1
  130. package/build/es/components/SecondaryNavigation/SecondaryNavigation.js +2 -2
  131. package/build/es/components/Selectbox/Selectbox.d.ts +102 -13
  132. package/build/es/components/Selectbox/Selectbox.js +40 -49
  133. package/build/es/components/Tabs/Tab.d.ts +37 -30
  134. package/build/es/components/Tabs/Tab.js +3 -2
  135. package/build/es/components/Tabs/Tabs.d.ts +40 -30
  136. package/build/es/components/Textarea/Textarea.js +4 -3
  137. package/build/es/components/Tooltip/Tooltip.d.ts +37 -30
  138. package/build/es/components/TooltipMenu/ChildComponents/TooltipMenuExportedStyles.d.ts +74 -60
  139. package/build/es/components/index.d.ts +3 -2
  140. package/build/es/index.js +1 -1
  141. package/build/es/themes/globalStyles.d.ts +174 -60
  142. package/build/es/themes/globalStyles.js +134 -145
  143. package/build/es/themes/styled.d.ts +259 -210
  144. package/build/es/themes/theme.d.ts +37 -30
  145. package/build/es/themes/themeComponents/buttons.d.ts +1 -6
  146. package/build/es/themes/themeComponents/buttons.js +1 -6
  147. package/build/es/themes/themeComponents/fontFamily.d.ts +3 -1
  148. package/build/es/themes/themeComponents/fontFamily.js +3 -1
  149. package/build/es/themes/themeComponents/fontSize.d.ts +18 -15
  150. package/build/es/themes/themeComponents/fontSize.js +20 -14
  151. package/build/es/themes/themeComponents/lineHeight.d.ts +19 -12
  152. package/build/es/themes/themeComponents/lineHeight.js +21 -11
  153. package/package.json +2 -2
  154. package/build/cjs/components/Accordion/index.d.ts +0 -2
  155. package/build/es/components/Accordion/index.d.ts +0 -2
@@ -1,38 +1,50 @@
1
1
  import React from 'react';
2
- interface AccordionProps {
2
+ export interface Props {
3
3
  /**
4
- * Allows to pass a custom className
5
- */
6
- className?: string;
7
- /**
8
- * The actual content
4
+ * Content of Accordion
5
+ *
9
6
  * @type AccordionItem
10
7
  */
11
8
  children: React.ReactNode;
12
- /** Allow multiple accordion items to be open
13
- * @default true
14
- */
15
- allowMultiOpen?: boolean;
16
9
  /**
17
- * Display close button in the item content
10
+ * Allows only one AccordionItem to be opened when set to true
11
+ *
18
12
  * @default false
19
13
  */
20
- hasCloseButton?: boolean;
14
+ autoCollapsible?: boolean;
21
15
  /**
22
- * Title has color when item is open, hovered or focused
16
+ * Allows to remove item title highlight when it is in expanded state
17
+ * Removes also highlight of CSS :hover and :active states
18
+ *
23
19
  * @default true
24
20
  */
25
21
  highlightSelected?: boolean;
26
22
  /**
27
- * Label to show for the close button in the content
23
+ * Allows to expand or collapse the component
24
+ *
25
+ * @default false
26
+ */
27
+ isExpanded?: boolean;
28
+ /**
29
+ * Display close button in the item content
30
+ *
31
+ * @default false
32
+ */
33
+ hasCloseButton?: boolean;
34
+ /**
35
+ * Label to show for the open icon for accessibility
28
36
  */
29
37
  openLabel?: string;
30
38
  /**
31
39
  * Label to show for the close button in the content
32
40
  */
33
41
  closeLabel?: string;
42
+ /**
43
+ * Allows to pass a custom className
44
+ */
45
+ className?: string;
34
46
  }
35
47
  /** @visibleName Accordion */
36
- declare const Accordion: ({ className, children, allowMultiOpen, highlightSelected, hasCloseButton, openLabel, closeLabel, }: AccordionProps) => JSX.Element;
48
+ declare const Accordion: ({ autoCollapsible, highlightSelected, hasCloseButton, ...props }: Props) => JSX.Element;
37
49
  /** @component */
38
50
  export default Accordion;
@@ -10,26 +10,43 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
10
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
11
11
 
12
12
  /** @visibleName Accordion */
13
- const Accordion = ({ className, children, allowMultiOpen = true, highlightSelected = true, hasCloseButton = false, openLabel, closeLabel, }) => {
14
- const [activeItem, setActiveItem] = React.useState(null);
15
- const handleItemOpen = (index) => {
16
- if (allowMultiOpen) {
17
- return;
13
+ const Accordion = ({ autoCollapsible = false, highlightSelected = true, hasCloseButton = false, ...props }) => {
14
+ const initialItemList = {};
15
+ const getAccordionItemId = (index, title) => `${title.replace(/\s+/g, '')}-${index}`;
16
+ if (props.isExpanded) {
17
+ React__default['default'].Children.map(props.children, (child, index) => {
18
+ if (React__default['default'].isValidElement(child) && child.type === AccordionItem['default']) {
19
+ initialItemList[getAccordionItemId(index, child.props.title)] = Boolean(props.isExpanded);
20
+ }
21
+ });
22
+ }
23
+ const [itemList, setItemList] = React.useState(initialItemList);
24
+ const toggleExpanded = (currentItemId) => {
25
+ const currentItemState = itemList[currentItemId];
26
+ setItemList({
27
+ ...(autoCollapsible ? {} : itemList),
28
+ [currentItemId]: !currentItemState,
29
+ });
30
+ };
31
+ const handleClick = (e) => {
32
+ toggleExpanded(e.currentTarget.parentElement.id);
33
+ };
34
+ const handleKeyDown = (e) => {
35
+ if (e.key === 'Enter' || e.key === ' ') {
36
+ e.preventDefault();
37
+ toggleExpanded(e.currentTarget.parentElement.id);
18
38
  }
19
- setActiveItem(index);
20
39
  };
21
- /** filter out immediate children that are not AccordionItems */
22
- const accordionItems = React__default['default'].Children.map(children, (child, index) => {
40
+ const accordionItems = React__default['default'].Children.map(props.children, (child, index) => {
23
41
  if (React__default['default'].isValidElement(child) && child.type === AccordionItem['default']) {
24
- return (React__default['default'].createElement(AccordionItem['default'], Object.assign({ closeFromParent: !allowMultiOpen && activeItem !== index, key: index + child.props.title, hasCloseButton: hasCloseButton, highlightSelected: highlightSelected, openLabel: openLabel, closeLabel: closeLabel,
25
- // tslint:disable-next-line: jsx-no-lambda
26
- onOpen: () => handleItemOpen(index) }, child.props), child.props.children));
42
+ const id = getAccordionItemId(index, child.props.title);
43
+ return (React__default['default'].createElement(AccordionItem['default'], Object.assign({ id: id, key: id, title: child.props.title, isExpanded: itemList[id], hasCloseButton: hasCloseButton, highlightSelected: highlightSelected, openLabel: props.openLabel, closeLabel: props.closeLabel, onClick: handleClick, onKeyDown: handleKeyDown }, child.props), child.props.children));
27
44
  }
28
45
  });
29
46
  if (!accordionItems) {
30
47
  return React__default['default'].createElement(React__default['default'].Fragment, null);
31
48
  }
32
- return React__default['default'].createElement("div", { className: className }, accordionItems);
49
+ return React__default['default'].createElement("div", { className: props.className }, accordionItems);
33
50
  };
34
51
 
35
52
  exports.default = Accordion;
@@ -1,45 +1,30 @@
1
1
  import React from 'react';
2
- export interface AccordionItemProps {
3
- /**
4
- * Allows to pass a custom className
5
- */
6
- className?: string;
7
- /**
8
- * The actual content
9
- */
10
- children?: React.ReactNode;
2
+ import { Props as AccordionProps } from './Accordion';
3
+ interface Props extends Omit<AccordionProps, 'children' | 'autoCollapsible'> {
11
4
  /**
12
5
  * Accordion item title
13
6
  */
14
7
  title: string;
15
8
  /**
16
- * Display close button in the item content
17
- * @default false
9
+ * Unique ID for the component
18
10
  */
19
- hasCloseButton?: boolean;
11
+ id?: string;
20
12
  /**
21
- * Title has color when item is open, hovered or focused
22
- * @default true
13
+ * Content of Accordion Item
23
14
  */
24
- highlightSelected?: boolean;
25
- /**
26
- * Label to show for the open icon for accessibility
27
- */
28
- openLabel?: string;
29
- /**
30
- * Label to show for the close button in the content
31
- */
32
- closeLabel?: string;
15
+ children?: React.ReactNode;
33
16
  /**
34
- * Accordion item is closed from a parent accordion
35
- * @default false
17
+ * On component title and close button mouse click callback
18
+ * Use `e.currentTarget.parentElement` to get AccordionItem element
36
19
  */
37
- closeFromParent?: boolean;
20
+ onClick?: (e: React.MouseEvent<HTMLElement>) => void;
38
21
  /**
39
- * callback to parent accordion when item is expanded
22
+ * On component title and close button keyboard key down callback
23
+ * Use `e.currentTarget.parentElement` to get AccordionItem element
40
24
  */
41
- onOpen?: () => void;
25
+ onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;
42
26
  }
43
- declare const AccordionItem: ({ title, children, hasCloseButton, highlightSelected, openLabel, closeLabel, closeFromParent, onOpen, ...props }: AccordionItemProps) => JSX.Element;
27
+ /** @visibleName Accordion Item */
28
+ declare const AccordionItem: ({ hasCloseButton, highlightSelected, ...props }: Props) => JSX.Element;
44
29
  /** @component */
45
30
  export default AccordionItem;
@@ -13,88 +13,65 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
13
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
14
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
15
15
 
16
- /* eslint-disable react-hooks/exhaustive-deps */
16
+ const AccordionItemContainer = styled__default['default'].div `
17
+ margin: ${p => `0 ${styledUtils.getDividedSize(p.theme.base.baseHeight, 2.5)}}`};
18
+ border-bottom: 1px solid
19
+ ${p => (p.isExpanded && p.highlightSelected ? p.theme.color.hotPink : p.theme.color.gray15)};
20
+ `;
17
21
  const AccordionItemTitle = styled__default['default'].div `
18
- font-size: ${p => p.theme.fontSize.defaultFontSize};
22
+ font-size: ${p => p.theme.fontSize.default};
19
23
  font-weight: ${p => p.theme.fontWeight.bold};
20
24
  display: flex;
21
25
  justify-content: space-between;
22
26
  flex-direction: row;
23
27
  cursor: pointer;
28
+ padding: ${p => styledUtils.getMultipliedSize(p.theme.base.baseHeight, 1.6)}
29
+ ${p => styledUtils.getMultipliedSize(p.theme.base.baseHeight, 2)};
24
30
  color: ${p => p.isExpanded && p.highlightSelected ? p.theme.color.hotPink : p.theme.color.text};
25
- padding: ${p => `${styledUtils.getMultipliedSize(p.theme.base.baseHeight, 1.6)} ${styledUtils.getMultipliedSize(p.theme.base.baseHeight, 2)}`};
26
31
  transition: color 0.2s;
27
32
  ${p => p.highlightSelected &&
28
33
  styled.css `
29
34
  &:hover,
30
- &:active,
31
- &:focus {
35
+ &:active {
32
36
  color: ${p.theme.color.hotPink};
33
37
  text-decoration: none;
34
38
  }
35
39
  `}
36
40
  `;
37
- const AccordionItemContainer = styled__default['default'].div `
38
- margin: ${p => `0 ${styledUtils.getDividedSize(p.theme.base.baseHeight, 2.5)}}`};
39
- border-bottom: 1px solid
40
- ${p => (p.isExpanded && p.highlightSelected ? p.theme.color.hotPink : p.theme.color.gray15)};
41
- `;
42
- const AccordionItemContent = styled__default['default'].div `
41
+ const AccordionItemContentWrapper = styled__default['default'].div `
43
42
  overflow: hidden;
44
43
  color: ${p => p.theme.color.slateGray};
45
44
  transition: all 0.2s ease;
46
45
  height: ${p => (p.isExpanded ? p.maxHeight / 16 + 1.25 : 0)}rem;
46
+ padding: 0 ${p => styledUtils.getMultipliedSize(p.theme.base.baseHeight, 2)};
47
47
  visibility: ${p => (p.isExpanded ? 'visible' : 'hidden')};
48
48
  `;
49
- const AccordionItemContentInner = styled__default['default'].div `
50
- padding: ${p => `0 ${styledUtils.getMultipliedSize(p.theme.base.baseHeight, 2)} ${styledUtils.getMultipliedSize(p.theme.base.baseHeight, 2)}`};
49
+ const AccordionItemContent = styled__default['default'].div `
50
+ padding-bottom: ${p => styledUtils.getMultipliedSize(p.theme.base.baseHeight, 1.6)};
51
51
  `;
52
- const CloseAccordionItemWrapper = styled__default['default'].div `
52
+ const AccordionItemCloseButton = styled__default['default'].div `
53
53
  display: flex;
54
- flex: 1;
55
54
  justify-content: flex-end;
56
- `;
57
- const CloseAccordionItem = styled__default['default'].div `
58
- display: flex;
55
+ line-height: ${p => p.theme.lineHeight.default};
56
+ margin-bottom: ${p => styledUtils.getMultipliedSize(p.theme.base.baseHeight, 1.6)};
57
+ padding: 0 ${p => styledUtils.getMultipliedSize(p.theme.base.baseHeight, 2)};
59
58
  gap: ${p => styledUtils.getMultipliedSize(p.theme.base.baseHeight, 1)};
60
59
  color: ${p => p.theme.color.text};
61
60
  cursor: pointer;
62
61
  `;
63
- const AccordionItem = ({ title, children, hasCloseButton = false, highlightSelected = true, openLabel, closeLabel, closeFromParent = false, onOpen, ...props }) => {
64
- const [isExpanded, setExpanded] = React.useState(false);
65
- const toggleExpanded = () => {
66
- setExpanded(!isExpanded);
67
- };
68
- // get height when element dimensions change
62
+ /** @visibleName Accordion Item */
63
+ const AccordionItem = ({ hasCloseButton = false, highlightSelected = true, ...props }) => {
64
+ // Get height when element dimensions change
69
65
  const { height: contentHeight, ref: contentRef } = useElementDimensions['default']();
70
- React.useEffect(() => {
71
- if (closeFromParent) {
72
- setExpanded(false);
73
- }
74
- }, [closeFromParent]);
75
- React.useEffect(() => {
76
- if (isExpanded && onOpen) {
77
- onOpen();
78
- }
79
- }, [isExpanded]);
80
- const handleKeyDown = (e) => {
81
- const key = e.key;
82
- if (key === 'Enter' || key === ' ') {
83
- e.preventDefault();
84
- setExpanded(!isExpanded);
85
- }
86
- };
87
- return (React__default['default'].createElement(AccordionItemContainer, { "aria-expanded": isExpanded, className: props.className, isExpanded: isExpanded, highlightSelected: highlightSelected },
88
- React__default['default'].createElement(AccordionItemTitle, { tabIndex: 0, onKeyDown: handleKeyDown, isExpanded: isExpanded, highlightSelected: highlightSelected, onClick: toggleExpanded, role: "button" },
89
- React__default['default'].createElement("span", null, title),
90
- isExpanded ? (React__default['default'].createElement(Icon['default'], { name: "hlChevronUp", size: "1.5rem", right: true, "aria-label": closeLabel })) : (React__default['default'].createElement(Icon['default'], { name: "hlChevronDown", size: "1.5rem", right: true, "aria-label": openLabel }))),
91
- React__default['default'].createElement(AccordionItemContent, { maxHeight: contentHeight, isExpanded: isExpanded },
92
- React__default['default'].createElement(AccordionItemContentInner, { ref: contentRef },
93
- children,
94
- hasCloseButton && (React__default['default'].createElement(CloseAccordionItemWrapper, null,
95
- React__default['default'].createElement(CloseAccordionItem, { onClick: toggleExpanded, "aria-label": closeLabel, tabIndex: 0, onKeyDown: handleKeyDown, role: "button" },
96
- React__default['default'].createElement("span", null, closeLabel),
97
- React__default['default'].createElement(Icon['default'], { name: "hlX", size: "1.5rem" }))))))));
66
+ return (React__default['default'].createElement(AccordionItemContainer, { id: props.id, "aria-expanded": Boolean(props.isExpanded), className: props.className, isExpanded: Boolean(props.isExpanded), highlightSelected: highlightSelected },
67
+ React__default['default'].createElement(AccordionItemTitle, { tabIndex: 0, onClick: props.onClick, onKeyDown: props.onKeyDown, isExpanded: Boolean(props.isExpanded), highlightSelected: highlightSelected, role: "button" },
68
+ props.title,
69
+ Boolean(props.isExpanded) ? (React__default['default'].createElement(Icon['default'], { name: "hlChevronUp", size: "1.5rem", right: true, "aria-label": props.closeLabel })) : (React__default['default'].createElement(Icon['default'], { name: "hlChevronDown", size: "1.5rem", right: true, "aria-label": props.openLabel }))),
70
+ React__default['default'].createElement(AccordionItemContentWrapper, { maxHeight: contentHeight, isExpanded: props.isExpanded },
71
+ React__default['default'].createElement(AccordionItemContent, { ref: contentRef }, props.children)),
72
+ hasCloseButton && props.isExpanded && (React__default['default'].createElement(AccordionItemCloseButton, { tabIndex: 0, onClick: props.onClick, onKeyDown: props.onKeyDown, "aria-label": props.closeLabel, role: "button" },
73
+ React__default['default'].createElement("span", null, props.closeLabel),
74
+ React__default['default'].createElement(Icon['default'], { name: "hlX", size: "1.5rem" })))));
98
75
  };
99
76
 
100
77
  exports.default = AccordionItem;
@@ -6,11 +6,10 @@ var React = require('react');
6
6
  var styled = require('../../themes/styled.js');
7
7
  var theme = require('../../themes/theme.js');
8
8
  var styledUtils = require('../../utils/styledUtils.js');
9
- require('../Buttons/ButtonBasicStyles.js');
10
- require('../PixelLoader/PixelLoaderStyles.js');
11
- require('../Buttons/ButtonPrimaryStyles.js');
9
+ require('../Buttons/ButtonDefault.js');
10
+ require('../Buttons/ButtonPrimary.js');
12
11
  var ButtonSecondary = require('../Buttons/ButtonSecondary.js');
13
- require('../Buttons/ButtonTertiaryStyles.js');
12
+ require('../Buttons/ButtonTertiary.js');
14
13
  require('../Buttons/ButtonRoundStyles.js');
15
14
  require('../Buttons/CloseButton.js');
16
15
  require('../Buttons/ButtonIconStyles.js');
@@ -18,12 +18,7 @@ declare const ButtonBasicStyle: import("styled-components").StyledComponent<"but
18
18
  };
19
19
  breakpoints: import("../../themes/themeComponents/breakpoints").ViewBreakpoints;
20
20
  button: {
21
- buttonBorderWidth: string;
22
- buttonPadding: string;
23
- smallButtonPadding: string;
24
- buttonLineHeight: string;
25
- buttonWidth: string;
26
- buttonSmallWidth: string;
21
+ border: string;
27
22
  };
28
23
  color: {
29
24
  black: string;
@@ -54,22 +49,27 @@ declare const ButtonBasicStyle: import("styled-components").StyledComponent<"but
54
49
  gray5: string;
55
50
  };
56
51
  fontFamily: {
57
- baseFontFamily: string;
52
+ default: string;
53
+ heading: string;
54
+ numerals: string;
58
55
  };
59
56
  fontSize: {
60
- defaultFontSize: string;
61
- smallFontSize: string;
62
- extraSmallFontSize: string;
63
- xsFontSize: string;
64
- xxsFontSize: string;
65
- h1FontSize: string;
66
- h2FontSize: string;
67
- h2MobileFontSize: string;
68
- h3FontSize: string;
69
- h4FontSize: string;
70
- h5FontSize: string;
71
- heroBannerTitleFontSize: string;
72
- heroBannerTitleMobileFontSize: string;
57
+ default: string;
58
+ xl: string;
59
+ l: string;
60
+ s: string;
61
+ xs: string;
62
+ h1XL: string;
63
+ h1L: string;
64
+ h1M: string;
65
+ h1S: string;
66
+ h2M: string;
67
+ h2S: string;
68
+ h3: string;
69
+ h4: string;
70
+ h5: string;
71
+ h1: string;
72
+ h2: string;
73
73
  };
74
74
  fontWeight: {
75
75
  book: number;
@@ -85,16 +85,23 @@ declare const ButtonBasicStyle: import("styled-components").StyledComponent<"but
85
85
  gutter: string;
86
86
  };
87
87
  lineHeight: {
88
- defaultLineHeight: string;
89
- paragraphLineHeight: string;
90
- heroBannerLineHeight: string;
91
- heroBannerMobileLineHeight: string;
92
- h1LineHeight: string;
93
- h2LineHeight: string;
94
- h2MobileLineHeight: string;
95
- h3LineHeight: string;
96
- h4LineHeight: string;
97
- h5LineHeight: string;
88
+ default: string;
89
+ xl: string;
90
+ s: string;
91
+ xs: string;
92
+ xxs: string;
93
+ auto: string;
94
+ h1XL: string;
95
+ h1L: string;
96
+ h1M: string;
97
+ h1S: string;
98
+ h2M: string;
99
+ h2S: string;
100
+ h3: string;
101
+ h4: string;
102
+ h5: string;
103
+ h1: string;
104
+ h2: string;
98
105
  };
99
106
  media: Record<string | number, (l: TemplateStringsArray, ...p: any[]) => string>;
100
107
  }, ButtonProps, never>;
@@ -3,30 +3,28 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var styled = require('../../themes/styled.js');
6
+ var styledUtils = require('../../utils/styledUtils.js');
6
7
 
7
8
  const ButtonBasicStyle = styled['default'].button `
8
9
  position: relative;
9
- padding: ${props => props && props.small
10
- ? props.theme.button.smallButtonPadding
11
- : props.theme.button.buttonPadding};
10
+ padding: ${props => `${styledUtils.getMultipliedSize(props.theme.base.baseWidth, 0.8)}
11
+ ${styledUtils.getMultipliedSize(props.theme.base.baseWidth, 1)}`};
12
12
  text-decoration: none;
13
13
  display: inline-block;
14
14
  border-style: solid;
15
- border-width: ${props => props.theme.button.buttonBorderWidth};
15
+ border-width: ${props => props.theme.button.border};
16
16
  border-color: ${props => props && props.darkBg ? props.theme.color.white : props.theme.color.black};
17
17
  box-sizing: border-box;
18
18
  background-color: transparent;
19
19
  color: ${props => (props && props.darkBg ? props.theme.color.white : props.theme.color.black)};
20
- font-family: ${props => props.theme.fontFamily.baseFontFamily};
20
+ font-family: ${props => props.theme.fontFamily.default};
21
21
  font-weight: ${props => props.theme.fontWeight.bold};
22
- line-height: ${props => props.theme.button.buttonLineHeight};
23
- font-size: ${props => props.theme.fontSize.defaultFontSize};
22
+ font-size: ${props => props && props.small ? props.theme.fontSize.s : props.theme.fontSize.default};
23
+ line-height: ${props => props && props.small ? props.theme.lineHeight.s : props.theme.lineHeight.default};
24
24
  outline: none;
25
25
  text-align: center;
26
26
  vertical-align: middle;
27
- min-width: ${props => props && props.small
28
- ? props.theme.button.buttonSmallWidth
29
- : props.theme.button.buttonWidth};
27
+ min-width: ${props => styledUtils.getMultipliedSize(props.theme.base.baseWidth, props && props.small ? 10.5 : 12.5)};
30
28
  width: ${props => (props && props.fullWidth ? '100%' : 'auto')};
31
29
  cursor: pointer;
32
30
  max-width: 100%;
@@ -36,7 +34,7 @@ const ButtonBasicStyle = styled['default'].button `
36
34
  outline: none;
37
35
  color: ${props => props && props.darkBg ? props.theme.color.white : props.theme.color.black};
38
36
  span {
39
- border-bottom: ${props => `${props.theme.button.buttonBorderWidth} solid`};
37
+ border-bottom: ${props => `${props.theme.button.border} solid`};
40
38
  }
41
39
  }
42
40
  &:hover {
@@ -66,9 +64,7 @@ const ButtonBasicStyle = styled['default'].button `
66
64
 
67
65
  span {
68
66
  border-bottom: 0;
69
- font-size: ${props => props && props.small
70
- ? props.theme.fontSize.smallFontSize
71
- : props.theme.fontSize.defaultFontSize};
67
+ font-size: ${props => props && props.small ? props.theme.fontSize.s : props.theme.fontSize.default};
72
68
  }
73
69
  `;
74
70
 
@@ -3,14 +3,18 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var ButtonBasicStyles = require('./ButtonBasicStyles.js');
6
+ var styled = require('../../themes/styled.js');
7
7
  var PixelLoader = require('../PixelLoader/PixelLoader.js');
8
+ var ButtonBasicStyles = require('./ButtonBasicStyles.js');
8
9
 
9
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
11
 
11
12
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
13
 
13
14
  const noop = () => { }; // tslint:disable-line
15
+ const StyledPixelLoader = styled['default'](PixelLoader.PixelLoader) `
16
+ display: inline-flex;
17
+ `;
14
18
  /** @visibleName Buttons */
15
19
  const Button = (props) => {
16
20
  const { children, className, fullWidth, small, loading = false, darkBg, onClick, onMouseDown, disabled = false, 'data-testid': dataTestId, 'data-no-close': dataNoClose, 'data-track-value': dataTrackValue, type, } = props;
@@ -20,7 +24,7 @@ const Button = (props) => {
20
24
  // https://github.com/styled-components/styled-components/pull/2093
21
25
  loading: loading ? loading.toString() : undefined, darkBg: darkBg, disabled: disabled, onClick: !disabled || !loading ? onClick : noop, onMouseDown: (!disabled || !loading) && onMouseDown ? onMouseDown : noop, className: className, "data-testid": dataTestId, "data-no-close": dataNoClose, "data-track-value": dataTrackValue, type: type },
22
26
  !loading && (React__default['default'].createElement("span", { "data-testid": dataTestId && `${dataTestId}-text`, "data-no-close": dataNoClose }, children)),
23
- loading && React__default['default'].createElement(PixelLoader.PixelLoader, null)));
27
+ loading && React__default['default'].createElement(StyledPixelLoader, null)));
24
28
  };
25
29
 
26
30
  exports.Button = Button;
@@ -11,12 +11,7 @@ declare const ButtonIconPrimaryStyles: import("styled-components").StyledCompone
11
11
  };
12
12
  breakpoints: import("../../themes/themeComponents/breakpoints").ViewBreakpoints;
13
13
  button: {
14
- buttonBorderWidth: string;
15
- buttonPadding: string;
16
- smallButtonPadding: string;
17
- buttonLineHeight: string;
18
- buttonWidth: string;
19
- buttonSmallWidth: string;
14
+ border: string;
20
15
  };
21
16
  color: {
22
17
  black: string;
@@ -47,22 +42,27 @@ declare const ButtonIconPrimaryStyles: import("styled-components").StyledCompone
47
42
  gray5: string;
48
43
  };
49
44
  fontFamily: {
50
- baseFontFamily: string;
45
+ default: string;
46
+ heading: string;
47
+ numerals: string;
51
48
  };
52
49
  fontSize: {
53
- defaultFontSize: string;
54
- smallFontSize: string;
55
- extraSmallFontSize: string;
56
- xsFontSize: string;
57
- xxsFontSize: string;
58
- h1FontSize: string;
59
- h2FontSize: string;
60
- h2MobileFontSize: string;
61
- h3FontSize: string;
62
- h4FontSize: string;
63
- h5FontSize: string;
64
- heroBannerTitleFontSize: string;
65
- heroBannerTitleMobileFontSize: string;
50
+ default: string;
51
+ xl: string;
52
+ l: string;
53
+ s: string;
54
+ xs: string;
55
+ h1XL: string;
56
+ h1L: string;
57
+ h1M: string;
58
+ h1S: string;
59
+ h2M: string;
60
+ h2S: string;
61
+ h3: string;
62
+ h4: string;
63
+ h5: string;
64
+ h1: string;
65
+ h2: string;
66
66
  };
67
67
  fontWeight: {
68
68
  book: number;
@@ -78,16 +78,23 @@ declare const ButtonIconPrimaryStyles: import("styled-components").StyledCompone
78
78
  gutter: string;
79
79
  };
80
80
  lineHeight: {
81
- defaultLineHeight: string;
82
- paragraphLineHeight: string;
83
- heroBannerLineHeight: string;
84
- heroBannerMobileLineHeight: string;
85
- h1LineHeight: string;
86
- h2LineHeight: string;
87
- h2MobileLineHeight: string;
88
- h3LineHeight: string;
89
- h4LineHeight: string;
90
- h5LineHeight: string;
81
+ default: string;
82
+ xl: string;
83
+ s: string;
84
+ xs: string;
85
+ xxs: string;
86
+ auto: string;
87
+ h1XL: string;
88
+ h1L: string;
89
+ h1M: string;
90
+ h1S: string;
91
+ h2M: string;
92
+ h2S: string;
93
+ h3: string;
94
+ h4: string;
95
+ h5: string;
96
+ h1: string;
97
+ h2: string;
91
98
  };
92
99
  media: Record<string | number, (l: TemplateStringsArray, ...p: any[]) => string>;
93
100
  }, import("./ButtonBasicStyles").ButtonProps & {