@dnanpm/styleguide 1.7.0 → 1.9.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 (125) hide show
  1. package/build/cjs/components/Accordion/Accordion.d.ts +38 -0
  2. package/build/cjs/components/Accordion/Accordion.js +35 -0
  3. package/build/cjs/components/Accordion/AccordionItem.d.ts +45 -0
  4. package/build/cjs/components/Accordion/AccordionItem.js +100 -0
  5. package/build/cjs/components/Accordion/index.d.ts +2 -0
  6. package/build/cjs/components/AmountSelector/AmountSelector.d.ts +66 -0
  7. package/build/cjs/components/AmountSelector/AmountSelector.js +84 -0
  8. package/build/cjs/components/Card/Card.js +1 -2
  9. package/build/cjs/components/Card/CardRow.js +0 -1
  10. package/build/cjs/components/Checkbox/Checkbox.d.ts +1 -0
  11. package/build/cjs/components/Checkbox/Checkbox.js +7 -2
  12. package/build/cjs/components/Footer/{index.d.ts → Footer.d.ts} +0 -1
  13. package/build/cjs/components/Footer/{index.js → Footer.js} +3 -2
  14. package/build/cjs/components/Footer/context/FooterContext.d.ts +1 -1
  15. package/build/{es/components/Helper/index.d.ts → cjs/components/Helper/Helper.d.ts} +1 -1
  16. package/build/cjs/components/Helper/{index.js → Helper.js} +0 -0
  17. package/build/cjs/components/Icon/Icons.d.ts +1 -0
  18. package/build/cjs/components/Icon/Icons.js +3 -0
  19. package/build/cjs/components/Image/{index.d.ts → Image.d.ts} +0 -0
  20. package/build/cjs/components/Image/{index.js → Image.js} +0 -0
  21. package/build/cjs/components/Input/Input.js +4 -4
  22. package/build/cjs/components/LabelText/LabelText.d.ts +2 -2
  23. package/build/cjs/components/LabelText/LabelText.js +1 -1
  24. package/build/cjs/components/MainNavigation/ChildComponents/BusinessMenu.js +3 -9
  25. package/build/cjs/components/MainNavigation/ChildComponents/DesktopMenu.js +9 -9
  26. package/build/cjs/components/MainNavigation/ChildComponents/LinkModifier.js +2 -2
  27. package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenu.js +7 -5
  28. package/build/cjs/components/MainNavigation/ChildComponents/MinicartTooltip.js +6 -6
  29. package/build/cjs/components/MainNavigation/{index.d.ts → MainNavigation.d.ts} +0 -1
  30. package/build/cjs/components/MainNavigation/{index.js → MainNavigation.js} +3 -2
  31. package/build/cjs/components/Notification/Notification.d.ts +40 -17
  32. package/build/cjs/components/Notification/Notification.js +28 -48
  33. package/build/cjs/components/NotificationBadge/{index.d.ts → NotificationBadge.d.ts} +0 -0
  34. package/build/cjs/components/NotificationBadge/{index.js → NotificationBadge.js} +0 -0
  35. package/build/cjs/components/PixelLoader/PixelLoader.d.ts +1 -1
  36. package/build/cjs/components/PixelLoader/PixelLoader.js +1 -1
  37. package/build/cjs/components/ProgressIndicator/{index.d.ts → ProgressIndicator.d.ts} +2 -2
  38. package/build/cjs/components/ProgressIndicator/{index.js → ProgressIndicator.js} +1 -1
  39. package/build/cjs/components/RadioButton/RadioButton.d.ts +1 -1
  40. package/build/cjs/components/RadioButton/RadioButton.js +1 -1
  41. package/build/{es/components/ReadMore/index.d.ts → cjs/components/ReadMore/ReadMore.d.ts} +1 -1
  42. package/build/cjs/components/ReadMore/{index.js → ReadMore.js} +1 -1
  43. package/build/cjs/components/Ribbon/Ribbon.d.ts +57 -0
  44. package/build/cjs/components/Ribbon/Ribbon.js +80 -0
  45. package/build/cjs/components/Search/Search.d.ts +44 -5
  46. package/build/cjs/components/Search/Search.js +3 -3
  47. package/build/cjs/components/SecondaryNavigation/{index.d.ts → SecondaryNavigation.d.ts} +1 -0
  48. package/build/cjs/components/SecondaryNavigation/{index.js → SecondaryNavigation.js} +3 -2
  49. package/build/cjs/components/Selectbox/Selectbox.d.ts +8 -4
  50. package/build/cjs/components/Selectbox/Selectbox.js +8 -8
  51. package/build/cjs/components/Textarea/Textarea.d.ts +25 -0
  52. package/build/cjs/components/Textarea/Textarea.js +83 -0
  53. package/build/{es/components/Tooltip/index.d.ts → cjs/components/Tooltip/Tooltip.d.ts} +2 -1
  54. package/build/cjs/components/Tooltip/{index.js → Tooltip.js} +0 -1
  55. package/build/cjs/components/index.d.ts +14 -10
  56. package/build/cjs/hooks/useDebounceFunc.d.ts +1 -0
  57. package/build/cjs/hooks/useDebounceFunc.js +19 -0
  58. package/build/cjs/hooks/useDocHeight.d.ts +1 -0
  59. package/build/cjs/hooks/useDocHeight.js +25 -0
  60. package/build/cjs/hooks/useElementDimensions.d.ts +5 -0
  61. package/build/cjs/hooks/useElementDimensions.js +37 -0
  62. package/build/cjs/index.js +28 -18
  63. package/build/es/components/Accordion/Accordion.d.ts +38 -0
  64. package/build/es/components/Accordion/Accordion.js +27 -0
  65. package/build/es/components/Accordion/AccordionItem.d.ts +45 -0
  66. package/build/es/components/Accordion/AccordionItem.js +91 -0
  67. package/build/es/components/Accordion/index.d.ts +2 -0
  68. package/build/es/components/AmountSelector/AmountSelector.d.ts +66 -0
  69. package/build/es/components/AmountSelector/AmountSelector.js +76 -0
  70. package/build/es/components/Card/Card.js +1 -2
  71. package/build/es/components/Card/CardRow.js +0 -1
  72. package/build/es/components/Checkbox/Checkbox.d.ts +1 -0
  73. package/build/es/components/Checkbox/Checkbox.js +7 -2
  74. package/build/es/components/Footer/{index.d.ts → Footer.d.ts} +0 -1
  75. package/build/es/components/Footer/{index.js → Footer.js} +3 -2
  76. package/build/es/components/Footer/context/FooterContext.d.ts +1 -1
  77. package/build/{cjs/components/Helper/index.d.ts → es/components/Helper/Helper.d.ts} +1 -1
  78. package/build/es/components/Helper/{index.js → Helper.js} +0 -0
  79. package/build/es/components/Icon/Icons.d.ts +1 -0
  80. package/build/es/components/Icon/Icons.js +3 -1
  81. package/build/es/components/Image/{index.d.ts → Image.d.ts} +0 -0
  82. package/build/es/components/Image/{index.js → Image.js} +0 -0
  83. package/build/es/components/Input/Input.js +4 -4
  84. package/build/es/components/LabelText/LabelText.d.ts +2 -2
  85. package/build/es/components/LabelText/LabelText.js +1 -1
  86. package/build/es/components/MainNavigation/ChildComponents/BusinessMenu.js +3 -9
  87. package/build/es/components/MainNavigation/ChildComponents/DesktopMenu.js +9 -9
  88. package/build/es/components/MainNavigation/ChildComponents/LinkModifier.js +2 -2
  89. package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenu.js +7 -5
  90. package/build/es/components/MainNavigation/ChildComponents/MinicartTooltip.js +5 -5
  91. package/build/es/components/MainNavigation/{index.d.ts → MainNavigation.d.ts} +0 -1
  92. package/build/es/components/MainNavigation/{index.js → MainNavigation.js} +3 -2
  93. package/build/es/components/Notification/Notification.d.ts +40 -17
  94. package/build/es/components/Notification/Notification.js +28 -48
  95. package/build/es/components/NotificationBadge/{index.d.ts → NotificationBadge.d.ts} +0 -0
  96. package/build/es/components/NotificationBadge/{index.js → NotificationBadge.js} +0 -0
  97. package/build/es/components/PixelLoader/PixelLoader.d.ts +1 -1
  98. package/build/es/components/PixelLoader/PixelLoader.js +1 -1
  99. package/build/es/components/ProgressIndicator/{index.d.ts → ProgressIndicator.d.ts} +2 -2
  100. package/build/es/components/ProgressIndicator/{index.js → ProgressIndicator.js} +1 -1
  101. package/build/es/components/RadioButton/RadioButton.d.ts +1 -1
  102. package/build/es/components/RadioButton/RadioButton.js +1 -1
  103. package/build/{cjs/components/ReadMore/index.d.ts → es/components/ReadMore/ReadMore.d.ts} +1 -1
  104. package/build/es/components/ReadMore/{index.js → ReadMore.js} +1 -1
  105. package/build/es/components/Ribbon/Ribbon.d.ts +57 -0
  106. package/build/es/components/Ribbon/Ribbon.js +71 -0
  107. package/build/es/components/Search/Search.d.ts +44 -5
  108. package/build/es/components/Search/Search.js +3 -3
  109. package/build/es/components/SecondaryNavigation/{index.d.ts → SecondaryNavigation.d.ts} +1 -0
  110. package/build/es/components/SecondaryNavigation/{index.js → SecondaryNavigation.js} +3 -2
  111. package/build/es/components/Selectbox/Selectbox.d.ts +8 -4
  112. package/build/es/components/Selectbox/Selectbox.js +8 -8
  113. package/build/es/components/Textarea/Textarea.d.ts +25 -0
  114. package/build/es/components/Textarea/Textarea.js +75 -0
  115. package/build/{cjs/components/Tooltip/index.d.ts → es/components/Tooltip/Tooltip.d.ts} +2 -1
  116. package/build/es/components/Tooltip/{index.js → Tooltip.js} +0 -1
  117. package/build/es/components/index.d.ts +14 -10
  118. package/build/es/hooks/useDebounceFunc.d.ts +1 -0
  119. package/build/es/hooks/useDebounceFunc.js +15 -0
  120. package/build/es/hooks/useDocHeight.d.ts +1 -0
  121. package/build/es/hooks/useDocHeight.js +21 -0
  122. package/build/es/hooks/useElementDimensions.d.ts +5 -0
  123. package/build/es/hooks/useElementDimensions.js +33 -0
  124. package/build/es/index.js +14 -9
  125. package/package.json +1 -1
@@ -43,7 +43,7 @@ const SubMenuListRight = styled['default'].ul `
43
43
  : 'none'};
44
44
  ${({ menuStates }) => menuStates.level2 && menuStates.animate2 ? fadeRightAnimation : noAnimation};
45
45
  top: -${p => styledUtils.getMultipliedSize(p.theme.base.baseHeight, 1)};
46
- margin: 0px;
46
+ margin: 0;
47
47
  margin-top: -2px;
48
48
  margin-left: ${p => styledUtils.getMultipliedSize(p.theme.base.baseHeight, 1)};
49
49
  padding: ${p => styledUtils.getMultipliedSize(p.theme.base.baseHeight, 1)};
@@ -167,7 +167,7 @@ const SubMenuList = styled['default'].ul `
167
167
  width: ${navigation.subMenuWidthXl};
168
168
  `};
169
169
  li {
170
- margin: 0px;
170
+ margin: 0;
171
171
  padding: 0;
172
172
  a,
173
173
  button {
@@ -201,13 +201,13 @@ const SubMenuLevel1 = ({ menuItem }) => {
201
201
  return (React__default['default'].createElement(SubMenuList, { role: "menu", "aria-hidden": false, menuStates: menuLevel, navItemId: menuItem.id, "data-testid": "desktop-nav-menu-ul-level-2", navZIndex: navZIndex }, menuItem.pages.map((element, index) => {
202
202
  const menuUrl = element.urls[language];
203
203
  if (element.pages.length) {
204
- return (React__default['default'].createElement(SubMenuItem, { key: element.id, role: "menuitem", "aria-haspopup": "true", "data-testid": `desktop-nav-item-level-2-link-${index + 1}` },
205
- React__default['default'].createElement(globalNavStyles.MenuLinkWithChildren, { isActive: menuLevel.level2 === element.id, isHighlighted: LinkModifier.isSelected(currentUrl, menuUrl), onClick: menuClick(element), role: "menuitem", "data-testid": "menu-button-with-children" },
204
+ return (React__default['default'].createElement(SubMenuItem, { key: element.id, role: "none", "data-testid": `desktop-nav-item-level-2-link-${index + 1}` },
205
+ React__default['default'].createElement(globalNavStyles.MenuLinkWithChildren, { isActive: menuLevel.level2 === element.id, isHighlighted: LinkModifier.isSelected(currentUrl, menuUrl), onClick: menuClick(element), role: "menuitem", "aria-haspopup": "true", "data-testid": "menu-button-with-children" },
206
206
  React__default['default'].createElement("span", null, element.titles[language]),
207
207
  React__default['default'].createElement(Icon['default'], { name: "chevronRight", size: "0.625rem" })),
208
208
  React__default['default'].createElement(SubMenuLevel2, { menuItem: element })));
209
209
  }
210
- return (React__default['default'].createElement(SubMenuItem, { key: element.id, isHighlighted: LinkModifier.isSelected(currentUrl, menuUrl, true), role: "menuitem", "aria-haspopup": "false", "data-testid": `desktop-nav-item-level-2-link-${index + 1}` },
210
+ return (React__default['default'].createElement(SubMenuItem, { key: element.id, isHighlighted: LinkModifier.isSelected(currentUrl, menuUrl, true), role: "none", "data-testid": `desktop-nav-item-level-2-link-${index + 1}` },
211
211
  React__default['default'].createElement(LinkModifier['default'], { menuItem: element, tabIndex: false })));
212
212
  })));
213
213
  };
@@ -215,7 +215,7 @@ const SubMenuLevel2 = ({ menuItem }) => {
215
215
  const { lang, menuLevel, currentUrl } = React.useContext(NavContext['default']);
216
216
  return (React__default['default'].createElement(SubMenuListRight, { role: "menu", menuStates: menuLevel, navItemId: menuItem.id, "data-testid": "desktop-nav-menu-ul-level-3" }, menuItem.pages.map((item, index) => {
217
217
  const menuUrl = item.urls[lang];
218
- return (React__default['default'].createElement(SubMenuItem, { key: item.id, isHighlighted: LinkModifier.isSelected(currentUrl, menuUrl, true), role: "menuitem", "data-testid": `desktop-nav-item-level-3-link-${index + 1}` },
218
+ return (React__default['default'].createElement(SubMenuItem, { key: item.id, isHighlighted: LinkModifier.isSelected(currentUrl, menuUrl, true), role: "none", "data-testid": `desktop-nav-item-level-3-link-${index + 1}` },
219
219
  React__default['default'].createElement(LinkModifier['default'], { menuItem: item, tabIndex: false })));
220
220
  })));
221
221
  };
@@ -226,8 +226,8 @@ const MenuItemWithChildren = ({ menuItem, currentLevel }) => {
226
226
  handleNavMenuClick(element.id, 'level1');
227
227
  };
228
228
  const menuUrl = menuItem.urls[language];
229
- return (React__default['default'].createElement(DesktopMenuItem, { isActive: menuLevel.level1 === menuItem.id || LinkModifier.isSelected(currentUrl, menuUrl), role: "menuitem", "aria-haspopup": "true", "data-testid": `desktop-nav-item-level-1-link-${currentLevel + 1}` },
230
- React__default['default'].createElement(globalNavStyles.MenuLinkWithChildren, { onClick: menuClickMain(menuItem), role: "menuitem", "data-testid": "menu-button-with-children" },
229
+ return (React__default['default'].createElement(DesktopMenuItem, { isActive: menuLevel.level1 === menuItem.id || LinkModifier.isSelected(currentUrl, menuUrl), role: "none", "data-testid": `desktop-nav-item-level-1-link-${currentLevel + 1}` },
230
+ React__default['default'].createElement(globalNavStyles.MenuLinkWithChildren, { onClick: menuClickMain(menuItem), role: "menuitem", "aria-haspopup": "true", "data-testid": "menu-button-with-children" },
231
231
  React__default['default'].createElement("span", null, menuItem.titles[language])),
232
232
  React__default['default'].createElement(SubMenuLevel1, { menuItem: menuItem })));
233
233
  };
@@ -248,7 +248,7 @@ const DesktopMenu = () => {
248
248
  if (menuHasChildren) {
249
249
  return (React__default['default'].createElement(MenuItemWithChildren, { menuItem: navElement, key: navElement.id, currentLevel: index }));
250
250
  }
251
- return (React__default['default'].createElement(globalNavStyles.MenuItem, { key: navElement.id, role: "menuitem", "data-testid": `desktop-nav-item-level-1-link-${index + 1}` },
251
+ return (React__default['default'].createElement(globalNavStyles.MenuItem, { key: navElement.id, role: "none", "data-testid": `desktop-nav-item-level-1-link-${index + 1}` },
252
252
  React__default['default'].createElement(LinkModifier['default'], { menuItem: navElement, tabIndex: false })));
253
253
  })));
254
254
  };
@@ -25,10 +25,10 @@ const LinkModifier = ({ menuItem, tabIndex }) => {
25
25
  const menuItemLink = menuItem.urls[lang] || '';
26
26
  if (NextJSLinkComponent && !isMenuItemLinkAbsolute(menuItemLink)) {
27
27
  return (React__default['default'].createElement(NextJSLinkComponent, { linkUrl: menuItem.urls[lang] },
28
- React__default['default'].createElement(globalNavStyles.MenuLink, { href: menuItem.urls[lang], onClick: resetMenuEvents, tabIndex: tabIndex ? -1 : undefined, id: menuItem.id },
28
+ React__default['default'].createElement(globalNavStyles.MenuLink, { href: menuItem.urls[lang], onClick: resetMenuEvents, tabIndex: tabIndex ? -1 : undefined, id: menuItem.id, role: "menuitem" },
29
29
  React__default['default'].createElement("span", null, menuItem.titles[lang]))));
30
30
  }
31
- return (React__default['default'].createElement(globalNavStyles.MenuLink, { href: menuItem.urls[lang], onClick: resetMenuEvents, tabIndex: tabIndex ? -1 : undefined, id: menuItem.id },
31
+ return (React__default['default'].createElement(globalNavStyles.MenuLink, { href: menuItem.urls[lang], onClick: resetMenuEvents, tabIndex: tabIndex ? -1 : undefined, id: menuItem.id, role: "menuitem" },
32
32
  React__default['default'].createElement("span", null, menuItem.titles[lang])));
33
33
  };
34
34
 
@@ -10,6 +10,7 @@ var colors = require('../../../themes/themeComponents/colors.js');
10
10
  var navigation = require('../../../themes/themeComponents/navigation.js');
11
11
  var styledUtils = require('../../../utils/styledUtils.js');
12
12
  var NavContext = require('../context/NavContext.js');
13
+ var useDocHeight = require('../../../hooks/useDocHeight.js');
13
14
 
14
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
16
 
@@ -27,7 +28,7 @@ const Tooltip = styled['default'].div `
27
28
  background-color: ${p => p.theme.color.white};
28
29
  min-height: 3rem;
29
30
  overflow-y: ${({ overflowY }) => (overflowY ? 'auto' : 'none')};
30
- max-height: calc(100vh - ${navigation.mobileNavMaxHeight});
31
+ max-height: calc(var(--vh100, 100vh) - ${navigation.mobileNavMaxHeight});
31
32
  width: 100%;
32
33
  position: absolute;
33
34
  right: 0;
@@ -42,11 +43,11 @@ const Tooltip = styled['default'].div `
42
43
  right: ${p => (p.fullWidthDesktop ? 0 : p.tooltipRight)};
43
44
  }
44
45
  ${styledUtils.media.md `
45
- max-height: calc(100vh - (${navigation.mobileNavMaxHeight} + ${navigation.ribbonHeight}));
46
+ max-height: calc(var(--vh100, 100vh) - (${navigation.mobileNavMaxHeight} + ${navigation.ribbonHeight}));
46
47
  top: calc(${navigation.mobileNavMaxHeight} + ${navigation.ribbonHeight});
47
48
  `};
48
49
  @media (min-width: ${p => p.collapseSize + 1}px) {
49
- max-height: calc(100vh - (${navigation.desktopNavMaxHeight} + ${navigation.ribbonHeight}));
50
+ max-height: calc(var(--vh100, 100vh) - (${navigation.desktopNavMaxHeight} + ${navigation.ribbonHeight}));
50
51
  top: calc(${navigation.desktopNavMaxHeight} + ${navigation.ribbonHeight});
51
52
  }
52
53
  `;
@@ -67,7 +68,7 @@ const TailShadowNav = styled['default'].div `
67
68
  top: calc(${navigation.mobileNavMaxHeight} + ${navigation.ribbonHeight});
68
69
  `};
69
70
  @media (min-width: ${p => p.collapseSize + 1}px) {
70
- max-height: calc(100vh - ${navigation.desktopNavMaxHeight});
71
+ max-height: calc(var(--vh100, 100vh) - ${navigation.desktopNavMaxHeight});
71
72
  top: calc(${navigation.desktopNavMaxHeight} + ${navigation.ribbonHeight});
72
73
  }
73
74
  `;
@@ -88,13 +89,14 @@ const TailNav = styled['default'].div `
88
89
  top: calc(${navigation.mobileNavMaxHeight} + ${navigation.ribbonHeight});
89
90
  `};
90
91
  @media (min-width: ${p => p.collapseSize + 1}px) {
91
- max-height: calc(100vh - ${navigation.desktopNavMaxHeight});
92
+ max-height: calc(var(--vh100, 100vh) - ${navigation.desktopNavMaxHeight});
92
93
  top: calc(${navigation.desktopNavMaxHeight} + ${navigation.ribbonHeight});
93
94
  }
94
95
  `;
95
96
  const MainNavTooltipMenu = ({ className, activeColor = colors['default'].hotPink, color = colors['default'].text, children, zIndex = '1', tooltipRight = '-1rem', contentWidth = '20rem', contentComponent: ContentComponent, closeWhenTagClicked = [], overflowY = true, globalStateString, fullWidthDesktop = false, fullWidthBreakpoint = breakpoints['default'].xs, }) => {
96
97
  const { isMobileMenu, tooltipItems, setTooltipItems, collapseSize, resetMenuEvents, showMinicart, showLoginTooltip, } = React__default['default'].useContext(NavContext['default']);
97
98
  const ref = React.useRef(null);
99
+ useDocHeight.useDocHeight();
98
100
  React__default['default'].useEffect(() => {
99
101
  setTooltipItems({
100
102
  minicart: showMinicart,
@@ -3,20 +3,20 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var NavContext = require('../context/NavContext.js');
7
- var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
8
- var MainNavTooltipMenuExportedStyles = require('./MainNavTooltipMenuExportedStyles.js');
9
- var index = require('../../NotificationBadge/index.js');
10
6
  var styled = require('../../../themes/styled.js');
7
+ var breakpoints = require('../../../themes/themeComponents/breakpoints.js');
11
8
  var colors = require('../../../themes/themeComponents/colors.js');
12
9
  var Icon = require('../../Icon/Icon.js');
13
- var breakpoints = require('../../../themes/themeComponents/breakpoints.js');
10
+ var NotificationBadge = require('../../NotificationBadge/NotificationBadge.js');
11
+ var NavContext = require('../context/NavContext.js');
12
+ var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
13
+ var MainNavTooltipMenuExportedStyles = require('./MainNavTooltipMenuExportedStyles.js');
14
14
 
15
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
16
 
17
17
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
18
 
19
- const MinicartAmount = styled['default'](index.NotificationBadge) `
19
+ const MinicartAmount = styled['default'](NotificationBadge.NotificationBadge) `
20
20
  right: auto;
21
21
  top: auto;
22
22
  margin-top: -2.2rem;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { RibbonDataProps } from './ChildComponents/Ribbon';
3
3
  import { GlobalNavItems } from './types/globalNavProps';
4
- /** @visibleName Main navigation */
5
4
  export interface MainNavigationProps {
6
5
  /** Allows to pass a custom className */
7
6
  className?: string;
@@ -123,6 +123,7 @@ const initiateScrollToHeader = (componentRef) => {
123
123
  window.scrollTo({ top: componentRef.current.offsetTop, left: 0 });
124
124
  }
125
125
  };
126
+ /** @visibleName Main Navigation */
126
127
  const MainNavigation = ({
127
128
  // TODO: Define types for MainNavigation component (https://jira.dna.fi/browse/STYLE-233)
128
129
  items = {}, language = 'fi', zIndex = 1030, languageSelector = false, isMobileMenu = false, search = true, searchText = 'Haku', searchComponent = false, minicart = true, minicartText = 'Ostoskori', minicartComponent = false, minicartAmount = 0, showMinicart = false, showLoginTooltip = false, login = true, loginText = 'Kirjaudu', loginComponent = false, isLoggedIn = false, collapseSize = 767, nextJSLinkComponent = false, ribbon = true, ribbonData, className, currentUrl = false, notificationText = '', }) => {
@@ -336,6 +337,6 @@ items = {}, language = 'fi', zIndex = 1030, languageSelector = false, isMobileMe
336
337
  /** @component */
337
338
  // TODO: Remove ts-ignore after https://jira.dna.fi/browse/STYLE-232 is done
338
339
  // @ts-ignore
339
- var index = withSizes__default['default'](mapSizesToProps)(MainNavigation);
340
+ var MainNavigation$1 = withSizes__default['default'](mapSizesToProps)(MainNavigation);
340
341
 
341
- exports.default = index;
342
+ exports.default = MainNavigation$1;
@@ -1,38 +1,61 @@
1
1
  import React from 'react';
2
- export interface NotificationProps {
3
- /** Allows to pass a custom className */
4
- className?: string;
5
- /** Dictates what the norification will say */
2
+ declare type NotificationType = 'info' | 'success' | 'warning' | 'error';
3
+ interface Props {
4
+ /**
5
+ * Depending on the passed type, the background color is determined
6
+ *
7
+ * @default 'info'
8
+ * @param {NotificationType} info Uses #007d91 color code as background color
9
+ * @param {NotificationType} success Uses #e80c0c color code as background color
10
+ * @param {NotificationType} warning Uses #00b201 color code as background color
11
+ * @param {NotificationType} error Uses #ff7800 color code as background color
12
+ */
13
+ type?: NotificationType;
14
+ /**
15
+ * @deprecated Use `type` property instead
16
+ */
17
+ color?: NotificationType | 'pinkday';
18
+ /**
19
+ * Content of the ribbon
20
+ */
6
21
  children?: React.ReactNode;
7
22
  /**
23
+ * Allows to show or hide appropriate notification icon
24
+ *
8
25
  * @default false
9
26
  */
10
- /** Show icon */
11
- showIcon: boolean;
27
+ showIcon?: boolean;
12
28
  /**
29
+ * Allows to show and hide close button
30
+ *
13
31
  * @default false
14
32
  */
15
- /** Show close button */
16
- closeButton: boolean;
17
- /** onClick handler for close button */
18
- onClickCloseButton?: (event: React.MouseEvent<HTMLElement>) => void;
19
- /** Is the notification dismissed */
33
+ closeButton?: boolean;
20
34
  /**
35
+ * On close button click callback
36
+ */
37
+ onClickCloseButton?: (e: React.MouseEvent<HTMLElement>) => void;
38
+ /**
39
+ * Allows to dismiss the ribbon programmatically
40
+ *
21
41
  * @default false
22
42
  */
23
43
  dismissed?: boolean;
24
- /** Dictates what is the type and color of the notification */
25
44
  /**
26
- * @default 'info'
27
- */
28
- color: 'info' | 'success' | 'warning' | 'error' | 'pinkday';
29
- /** Align text center
45
+ * Allows to center text of the ribbon
30
46
  *
31
47
  * @default false
32
48
  */
33
49
  centered?: boolean;
50
+ /**
51
+ * Allows to pass a custom className
52
+ */
53
+ className?: string;
54
+ /**
55
+ * Allows to pass testid string for testing purposes
56
+ */
34
57
  'data-testid'?: string;
35
58
  }
36
- declare const Notification: (props: NotificationProps) => JSX.Element | null;
59
+ declare const Notification: ({ type, color, "data-testid": dataTestId, ...props }: Props) => JSX.Element;
37
60
  /** @component */
38
61
  export default Notification;
@@ -3,74 +3,54 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var styledUtils = require('../../utils/styledUtils.js');
7
6
  var styled = require('styled-components');
7
+ var theme = require('../../themes/theme.js');
8
+ var styledUtils = require('../../utils/styledUtils.js');
8
9
  var Icon = require('../Icon/Icon.js');
10
+ var Ribbon = require('../Ribbon/Ribbon.js');
9
11
 
10
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
13
 
12
14
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
15
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
14
16
 
15
- const iconAreaWidth = 4;
16
- const smallPadding = '0.55rem';
17
- const basePadding = '0.75rem';
18
- const NotificationStyle = styled__default['default'].div `
19
- color: ${({ color, theme }) => (color === 'pinkday' ? theme.color.text : theme.color.white)};
20
- background: ${props => props.theme.color[props.color]};
17
+ const StyledRibbon = styled__default['default'](Ribbon['default']) `
18
+ ${({ showIcon, closeButton }) => showIcon &&
19
+ closeButton &&
20
+ `
21
+ a:last-of-type {
22
+ ${styledUtils.getMultipliedSize(theme['default'].base.baseWidth, 1.2)}
23
+ }
24
+ `}
25
+ `;
26
+ const NotificationWrapper = styled__default['default'].div `
21
27
  display: flex;
22
28
  align-items: center;
23
- overflow: hidden;
24
- padding: ${basePadding} 0.9375rem;
25
- position: relative;
26
- opacity: 0.95;
27
- transition: all 0.3s;
28
- ${({ centered }) => (centered ? 'text-align:center;' : '')}
29
- a {
30
- color: ${({ color, theme }) => color === 'pinkday' ? theme.color.text : theme.color.white};
31
- text-decoration: underline;
32
- }
33
29
  `;
34
- const IconArea = styled__default['default'].div `
30
+ const IconWrapper = styled__default['default'].div `
35
31
  display: none;
36
32
  align-items: center;
37
- width: ${iconAreaWidth}rem;
33
+ width: ${styledUtils.getMultipliedSize(theme['default'].base.baseWidth, 6.4)};
38
34
  overflow: hidden;
35
+
39
36
  ${() => styledUtils.media.xs `
40
37
  display: flex;
41
38
  `}
42
39
  `;
43
- const TextArea = styled__default['default'].div `
40
+ const ContentWrapper = styled__default['default'].div `
44
41
  flex: 1;
45
- font-weight: ${props => props.theme.fontWeight.book};
46
- overflow: hidden;
47
- font-size: ${props => props.theme.fontSize.defaultFontSize};
48
- line-height: 1.5;
49
- position: relative;
50
- word-wrap: break-word;
51
- margin-right: ${props => props && props.closeButton ? styledUtils.getMultipliedSize(props.theme.base.baseWidth, 3) : 0};
52
- `;
53
- const CloseButton = styled__default['default'].a `
54
- position: absolute;
55
- top: ${props => (props && props.showIcon ? basePadding : smallPadding)};
56
- ${() => styledUtils.media.xs `
57
- top: ${basePadding};
58
- `}
59
- right: ${basePadding};
60
- margin: ${props => styledUtils.getDividedSize(props.theme.base.baseWidth, 2)};
61
- cursor: pointer;
62
42
  `;
63
- const Notification = (props) => {
64
- const { children, showIcon, color, dismissed, onClickCloseButton, closeButton, centered, className, 'data-testid': dataTestId, } = props;
65
- if (dismissed) {
66
- return null;
67
- }
68
- return (React__default['default'].createElement(NotificationStyle, { className: className, color: color, showIcon: showIcon, onClick: onClickCloseButton, closeButton: closeButton, "data-testid": dataTestId, centered: centered },
69
- showIcon ? (React__default['default'].createElement(IconArea, null,
70
- React__default['default'].createElement(Icon['default'], { name: color === 'success' ? 'hlCheck' : color, size: "2rem", color: "currentColor" }))) : null,
71
- React__default['default'].createElement(TextArea, { closeButton: closeButton }, children),
72
- closeButton ? (React__default['default'].createElement(CloseButton, { showIcon: showIcon, onClick: onClickCloseButton },
73
- React__default['default'].createElement(Icon['default'], { name: "x", size: "0.75rem", color: "currentColor" }))) : null));
43
+ const Notification = ({ type = 'info', color, 'data-testid': dataTestId, ...props }) => {
44
+ // Property color is deprecated
45
+ // TODO: Remove this line after https://jira.dna.fi/browse/STYLE-292 is done
46
+ type = (color || type);
47
+ return (React__default['default'].createElement(StyledRibbon, { color: type, closeButton: props.closeButton, onClick: props.onClickCloseButton, dismissed: props.dismissed, centered: props.centered, className: props.className, "data-testid": dataTestId },
48
+ React__default['default'].createElement(NotificationWrapper, null,
49
+ props.showIcon && (React__default['default'].createElement(IconWrapper, null,
50
+ React__default['default'].createElement(Icon['default'], { name: type === 'success'
51
+ ? 'hlCheck'
52
+ : `hl${type.charAt(0).toUpperCase() + type.slice(1)}`, size: "2rem", color: "currentColor" }))),
53
+ React__default['default'].createElement(ContentWrapper, null, props.children))));
74
54
  };
75
55
 
76
56
  exports.default = Notification;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import LoaderProps from './types/LoaderProps';
3
- /** @visibleName Pixel loader */
3
+ /** @visibleName Pixel Loader */
4
4
  export declare const PixelLoader: ({ className, color, "data-testid": dataTestId }: LoaderProps) => JSX.Element;
5
5
  /** @component */
6
6
  export default PixelLoader;
@@ -9,7 +9,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
9
9
 
10
10
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
11
11
 
12
- /** @visibleName Pixel loader */
12
+ /** @visibleName Pixel Loader */
13
13
  const PixelLoader = ({ className, color, 'data-testid': dataTestId }) => (React__default['default'].createElement(PixelLoaderStyles.LoaderWrapper, { className: className, "data-testid": dataTestId },
14
14
  React__default['default'].createElement(PixelLoaderStyles.Pixel, { color: color, delay: "-0.27" }),
15
15
  React__default['default'].createElement(PixelLoaderStyles.Pixel, { color: color, delay: "-0.18" }),
@@ -19,6 +19,6 @@ export interface StepperProps {
19
19
  /** Dictates current status of the flow */
20
20
  currentStatus?: string;
21
21
  }
22
- /** @visibleName Progress indicator */
23
- declare const ProgressIndicator: React.SFC<StepperProps>;
22
+ /** @visibleName Progress Indicator */
23
+ declare const ProgressIndicator: React.FunctionComponent<StepperProps>;
24
24
  export default ProgressIndicator;
@@ -161,7 +161,7 @@ const ProgressItem = styled['default'].li `
161
161
  color: ${({ theme, isActive, isCompleted }) => isActive || isCompleted ? theme.color.text : theme.color.gray40};
162
162
  }
163
163
  `;
164
- /** @visibleName Progress indicator */
164
+ /** @visibleName Progress Indicator */
165
165
  const ProgressIndicator = props => {
166
166
  const { steps, small = false, onStepChange, activeSlideIndex = 0, currentStatus, className, } = props;
167
167
  return (React.createElement(Progress, { className: className, activeSlideIndex: activeSlideIndex, currentStatus: currentStatus, small: small, steps: steps }, steps.map(({ title, cursorType }, index) => {
@@ -27,7 +27,7 @@ export interface RadioProps {
27
27
  value?: string | number;
28
28
  'data-testid'?: string;
29
29
  }
30
- /** @visibleName Radio button */
30
+ /** @visibleName Radio Button */
31
31
  declare const RadioButton: React.FunctionComponent<RadioProps>;
32
32
  /** @component */
33
33
  export default RadioButton;
@@ -68,7 +68,7 @@ const Label = styled['default']('label') `
68
68
  content: '●';
69
69
  }
70
70
  `;
71
- /** @visibleName Radio button */
71
+ /** @visibleName Radio Button */
72
72
  const RadioButton = ({ id, name, checked, onChange, label, disabled, className, value, 'data-testid': dataTestId, }) => {
73
73
  return (React__default['default'].createElement(Wrapper, { className: className, "data-testid": dataTestId },
74
74
  React__default['default'].createElement(Input, { id: id, type: "radio", name: name, checked: checked, "aria-checked": checked, value: value, disabled: disabled, onChange: onChange, tabIndex: -1, "data-testid": dataTestId && `${dataTestId}-input` }),
@@ -13,6 +13,6 @@ interface ReadMoreProps {
13
13
  /** Init in expanded state and immediately close on client for better SEO */
14
14
  seoInitExpanded?: boolean;
15
15
  }
16
- /** @visibleName Read more */
16
+ /** @visibleName Read More */
17
17
  declare const ReadMore: React.FunctionComponent<ReadMoreProps>;
18
18
  export default ReadMore;
@@ -49,7 +49,7 @@ const Toggle = styled['default'].div `
49
49
  }
50
50
  }
51
51
  `;
52
- /** @visibleName Read more */
52
+ /** @visibleName Read More */
53
53
  const ReadMore = ({ children, showMoreText, showLessText, className, onClick = () => ({}), seoInitExpanded, }) => {
54
54
  const [expanded, setExpanded] = React.useState(seoInitExpanded === true || false);
55
55
  React.useEffect(() => {
@@ -0,0 +1,57 @@
1
+ import React from 'react';
2
+ import theme from '../../themes/theme';
3
+ declare type TextColor = 'text' | 'white' | 'black';
4
+ interface Props {
5
+ /**
6
+ * Depending on the passed value, background color and text color are determined
7
+ *
8
+ * @default 'info'
9
+ */
10
+ color?: keyof typeof theme.color;
11
+ /**
12
+ * When defined, the text colors in color map are ignored and passed value is used instead
13
+ *
14
+ * @default 'white'
15
+ * @param {TextColor} text Uses #121212 color code as text color
16
+ * @param {TextColor} white Uses #ffffff color code as text color
17
+ * @param {TextColor} black Uses #000000 color code as text color
18
+ */
19
+ textColor?: TextColor;
20
+ /**
21
+ * Content of the ribbon
22
+ */
23
+ children?: React.ReactNode;
24
+ /**
25
+ * Allows to show and hide close button
26
+ *
27
+ * @default false
28
+ */
29
+ closeButton?: boolean;
30
+ /**
31
+ * On close button click callback
32
+ */
33
+ onClick?: (e: React.MouseEvent<HTMLElement>) => void;
34
+ /**
35
+ * Allows to dismiss the ribbon programmatically
36
+ *
37
+ * @default false
38
+ */
39
+ dismissed?: boolean;
40
+ /**
41
+ * Allows to center text of the ribbon
42
+ *
43
+ * @default false
44
+ */
45
+ centered?: boolean;
46
+ /**
47
+ * Allows to pass a custom className
48
+ */
49
+ className?: string;
50
+ /**
51
+ * Allows to pass testid string for testing purposes
52
+ */
53
+ 'data-testid'?: string;
54
+ }
55
+ declare const Ribbon: ({ color, "data-testid": dataTestId, ...props }: Props) => JSX.Element | null;
56
+ /** @component */
57
+ export default Ribbon;
@@ -0,0 +1,80 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var styled = require('styled-components');
7
+ var theme = require('../../themes/theme.js');
8
+ var styledUtils = require('../../utils/styledUtils.js');
9
+ var Icon = require('../Icon/Icon.js');
10
+
11
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
15
+
16
+ const getColorScheme = ({ color, textColor }) => {
17
+ const map = {
18
+ text: ['pinkday', 'white', 'pink2', 'grayBg', 'gray15', 'gray10', 'gray5'],
19
+ black: ['grayWhite'],
20
+ };
21
+ textColor =
22
+ textColor ||
23
+ Object.keys(map).find(key => map[key].includes(color)) ||
24
+ 'white';
25
+ return `
26
+ color: ${theme['default'].color[textColor]};
27
+ background: ${theme['default'].color[color]};
28
+
29
+ a {
30
+ color: ${theme['default'].color[textColor]};
31
+ };
32
+ }`;
33
+ };
34
+ const RibbonWrapper = styled__default['default'].div `
35
+ ${({ color, textColor }) => getColorScheme({ color, textColor })}
36
+ display: flex;
37
+ align-items: center;
38
+ overflow: hidden;
39
+ padding: ${styledUtils.getMultipliedSize(theme['default'].base.baseWidth, 1.2)}
40
+ ${styledUtils.getMultipliedSize(theme['default'].base.baseWidth, 1.5)};
41
+ position: relative;
42
+ opacity: 0.95;
43
+ transition: all 0.3s;
44
+ text-align: ${({ centered }) => (centered ? 'center' : 'left')};
45
+ a {
46
+ text-decoration: underline;
47
+ }
48
+ `;
49
+ const ContentWrapper = styled__default['default'].div `
50
+ flex: 1;
51
+ font-weight: ${theme['default'].fontWeight.book};
52
+ overflow: hidden;
53
+ font-size: ${theme['default'].fontSize.defaultFontSize};
54
+ line-height: 1.5;
55
+ position: relative;
56
+ word-wrap: break-word;
57
+ margin-right: ${({ closeButton }) => closeButton ? styledUtils.getMultipliedSize(theme['default'].base.baseWidth, 3) : 0};
58
+ `;
59
+ const CloseButton = styled__default['default'].a `
60
+ position: absolute;
61
+ top: ${styledUtils.getMultipliedSize(theme['default'].base.baseWidth, 0.88)};
62
+ right: ${styledUtils.getMultipliedSize(theme['default'].base.baseWidth, 1.2)};
63
+ margin: ${styledUtils.getDividedSize(theme['default'].base.baseWidth, 2)};
64
+ cursor: pointer;
65
+
66
+ ${() => styledUtils.media.xs `
67
+ top: ${styledUtils.getMultipliedSize(theme['default'].base.baseWidth, 1.2)};
68
+ `}
69
+ `;
70
+ const Ribbon = ({ color = 'info', 'data-testid': dataTestId, ...props }) => {
71
+ if (props.dismissed) {
72
+ return null;
73
+ }
74
+ return (React__default['default'].createElement(RibbonWrapper, { className: props.className, color: color, textColor: props.textColor, "data-testid": dataTestId, centered: props.centered },
75
+ React__default['default'].createElement(ContentWrapper, { closeButton: props.closeButton }, props.children),
76
+ props.closeButton ? (React__default['default'].createElement(CloseButton, { onClick: props.onClick },
77
+ React__default['default'].createElement(Icon['default'], { name: "x", size: "0.75rem", color: "currentColor" }))) : null));
78
+ };
79
+
80
+ exports.default = Ribbon;