@dnanpm/styleguide 3.8.2 → 3.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.
- package/build/cjs/components/AmountSelector/AmountSelector.js +1 -1
- package/build/cjs/components/{Button → ButtonArrow}/ButtonArrow.d.ts +1 -1
- package/build/cjs/components/{Button → ButtonArrow}/ButtonArrow.js +2 -2
- package/build/cjs/components/ButtonCard/ButtonCard.d.ts +70 -0
- package/build/cjs/components/ButtonCard/ButtonCard.js +135 -0
- package/build/cjs/components/{Button → ButtonClose}/ButtonClose.d.ts +1 -1
- package/build/cjs/components/{Button → ButtonIcon}/ButtonIcon.d.ts +1 -1
- package/build/cjs/components/{Button → ButtonPrimary}/ButtonPrimary.d.ts +1 -1
- package/build/cjs/components/{Button → ButtonPrimary}/ButtonPrimary.js +1 -1
- package/build/{es/components/Button → cjs/components/ButtonRound}/ButtonRound.d.ts +1 -1
- package/build/cjs/components/{Button → ButtonRound}/ButtonRound.js +1 -1
- package/build/cjs/components/{Button → ButtonSecondary}/ButtonSecondary.d.ts +1 -1
- package/build/cjs/components/{Button → ButtonSecondary}/ButtonSecondary.js +1 -1
- package/build/cjs/components/Carousel/Carousel.js +2 -2
- package/build/cjs/components/DateTimePicker/DateTimePicker.js +1 -1
- package/build/cjs/components/Drawer/Drawer.d.ts +20 -10
- package/build/cjs/components/Drawer/Drawer.js +27 -25
- package/build/cjs/components/Expander/Expander.js +1 -1
- package/build/cjs/components/Footer/Components/FooterComponents.js +1 -1
- package/build/cjs/components/Input/Input.js +1 -1
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +1 -1
- package/build/cjs/components/MainNavigation/MainNavigation.d.ts +4 -1
- package/build/cjs/components/MainNavigation/MainNavigation.js +4 -1
- package/build/cjs/components/Modal/Modal.js +1 -1
- package/build/cjs/components/Notification/Notification.js +1 -1
- package/build/cjs/components/PriorityNavigation/PriorityNavigation.js +5 -1
- package/build/cjs/components/ReadMore/ReadMore.js +1 -1
- package/build/cjs/components/Search/Search.js +1 -1
- package/build/cjs/components/Toaster/Toaster.js +1 -1
- package/build/cjs/components/index.d.ts +7 -6
- package/build/cjs/index.js +8 -6
- package/build/es/components/AmountSelector/AmountSelector.js +1 -1
- package/build/es/components/{Button → ButtonArrow}/ButtonArrow.d.ts +1 -1
- package/build/es/components/{Button → ButtonArrow}/ButtonArrow.js +2 -2
- package/build/es/components/ButtonCard/ButtonCard.d.ts +70 -0
- package/build/es/components/ButtonCard/ButtonCard.js +131 -0
- package/build/es/components/{Button → ButtonClose}/ButtonClose.d.ts +1 -1
- package/build/es/components/{Button → ButtonIcon}/ButtonIcon.d.ts +1 -1
- package/build/es/components/{Button → ButtonPrimary}/ButtonPrimary.d.ts +1 -1
- package/build/es/components/{Button → ButtonPrimary}/ButtonPrimary.js +1 -1
- package/build/{cjs/components/Button → es/components/ButtonRound}/ButtonRound.d.ts +1 -1
- package/build/es/components/{Button → ButtonRound}/ButtonRound.js +1 -1
- package/build/es/components/{Button → ButtonSecondary}/ButtonSecondary.d.ts +1 -1
- package/build/es/components/{Button → ButtonSecondary}/ButtonSecondary.js +1 -1
- package/build/es/components/Carousel/Carousel.js +2 -2
- package/build/es/components/DateTimePicker/DateTimePicker.js +1 -1
- package/build/es/components/Drawer/Drawer.d.ts +20 -10
- package/build/es/components/Drawer/Drawer.js +28 -26
- package/build/es/components/Expander/Expander.js +1 -1
- package/build/es/components/Footer/Components/FooterComponents.js +1 -1
- package/build/es/components/Input/Input.js +1 -1
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +1 -1
- package/build/es/components/MainNavigation/MainNavigation.d.ts +4 -1
- package/build/es/components/MainNavigation/MainNavigation.js +4 -1
- package/build/es/components/Modal/Modal.js +1 -1
- package/build/es/components/Notification/Notification.js +1 -1
- package/build/es/components/PriorityNavigation/PriorityNavigation.js +5 -1
- package/build/es/components/ReadMore/ReadMore.js +1 -1
- package/build/es/components/Search/Search.js +1 -1
- package/build/es/components/Toaster/Toaster.js +1 -1
- package/build/es/components/index.d.ts +7 -6
- package/build/es/index.js +7 -6
- package/package.json +7 -7
- /package/build/cjs/components/{Button → ButtonClose}/ButtonClose.js +0 -0
- /package/build/cjs/components/{Button → ButtonIcon}/ButtonIcon.js +0 -0
- /package/build/es/components/{Button → ButtonClose}/ButtonClose.js +0 -0
- /package/build/es/components/{Button → ButtonIcon}/ButtonIcon.js +0 -0
|
@@ -8,7 +8,7 @@ var React = require('react');
|
|
|
8
8
|
var styled = require('../../themes/styled.js');
|
|
9
9
|
var theme = require('../../themes/theme.js');
|
|
10
10
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
11
|
-
var ButtonArrow = require('../
|
|
11
|
+
var ButtonArrow = require('../ButtonArrow/ButtonArrow.js');
|
|
12
12
|
var Icon = require('../Icon/Icon.js');
|
|
13
13
|
|
|
14
14
|
const Container = styled.default.div `
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import type { Props as ButtonProps } from '
|
|
3
|
+
import type { Props as ButtonProps } from '../Button/Button';
|
|
4
4
|
type ButtonArrowDirection = 'up' | 'right' | 'down' | 'left';
|
|
5
5
|
type ButtonArrowVariant = 'primary' | 'secondary';
|
|
6
6
|
type Props = ({
|
|
@@ -8,9 +8,9 @@ var React = require('react');
|
|
|
8
8
|
var styled = require('styled-components');
|
|
9
9
|
var theme = require('../../themes/theme.js');
|
|
10
10
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
11
|
+
var ButtonPrimary = require('../ButtonPrimary/ButtonPrimary.js');
|
|
12
|
+
var ButtonSecondary = require('../ButtonSecondary/ButtonSecondary.js');
|
|
11
13
|
var Icon = require('../Icon/Icon.js');
|
|
12
|
-
var ButtonPrimary = require('./ButtonPrimary.js');
|
|
13
|
-
var ButtonSecondary = require('./ButtonSecondary.js');
|
|
14
14
|
|
|
15
15
|
const iconsMap = {
|
|
16
16
|
up: icons.ChevronUp,
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { MouseEvent, ReactNode } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
type Size = 'small' | 'medium' | 'large';
|
|
4
|
+
type ButtonType = 'submit' | 'button' | 'reset';
|
|
5
|
+
interface Props {
|
|
6
|
+
/**
|
|
7
|
+
* Unique ID for the component
|
|
8
|
+
*/
|
|
9
|
+
id?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Name of the button element
|
|
12
|
+
*/
|
|
13
|
+
name?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Allows to change the HTML type of button element. Ignored when `href` is defined
|
|
16
|
+
*
|
|
17
|
+
* @param {ButtonType} submit Button submits the form data
|
|
18
|
+
* @param {ButtonType} button No functionality when pressed
|
|
19
|
+
* @param {ButtonType} reset Button resets all the controls to their initial values
|
|
20
|
+
*
|
|
21
|
+
* @default 'submit'
|
|
22
|
+
*/
|
|
23
|
+
type?: ButtonType;
|
|
24
|
+
/**
|
|
25
|
+
* Allows to change layout of the component based on size
|
|
26
|
+
*
|
|
27
|
+
* @param {Size} small Renders component in compact layout
|
|
28
|
+
* @param {Size} medium Default
|
|
29
|
+
* @param {Size} large Renders component with enlarged title and subtitle
|
|
30
|
+
*
|
|
31
|
+
* @default 'medium'
|
|
32
|
+
*/
|
|
33
|
+
size?: Size;
|
|
34
|
+
/**
|
|
35
|
+
* Allows to change the type of resulting HTML element from button (`<button></button>`) to anchor (`<a href="..."></a>`)
|
|
36
|
+
*/
|
|
37
|
+
href?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Allows to define title
|
|
40
|
+
*/
|
|
41
|
+
title: string;
|
|
42
|
+
/**
|
|
43
|
+
* Allows to define subtitle
|
|
44
|
+
*/
|
|
45
|
+
subtitle?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Allows to define visual content
|
|
48
|
+
*/
|
|
49
|
+
children: ReactNode;
|
|
50
|
+
/**
|
|
51
|
+
* On button click callback
|
|
52
|
+
*/
|
|
53
|
+
onClick?: (e: MouseEvent<HTMLElement>) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Allows to change icon from `ChevronRight` to `Open`
|
|
56
|
+
*/
|
|
57
|
+
isExternal?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Allows to pass a custom className
|
|
60
|
+
*/
|
|
61
|
+
className?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Allows to pass testid string for testing purposes
|
|
64
|
+
*/
|
|
65
|
+
'data-testid'?: string;
|
|
66
|
+
}
|
|
67
|
+
/** @visibleName Button Card */
|
|
68
|
+
declare const ButtonCard: ({ type, size, "data-testid": dataTestId, ...props }: Props) => React.JSX.Element;
|
|
69
|
+
/** @component */
|
|
70
|
+
export default ButtonCard;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib = require('tslib');
|
|
6
|
+
var icons = require('@dnanpm/icons');
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var styled = require('styled-components');
|
|
9
|
+
var theme = require('../../themes/theme.js');
|
|
10
|
+
var Box = require('../Box/Box.js');
|
|
11
|
+
var Icon = require('../Icon/Icon.js');
|
|
12
|
+
|
|
13
|
+
const ButtonCardWrapper = styled.button `
|
|
14
|
+
display: block;
|
|
15
|
+
padding: 0;
|
|
16
|
+
border: 0 none;
|
|
17
|
+
width: 100%;
|
|
18
|
+
background-color: transparent;
|
|
19
|
+
cursor: pointer;
|
|
20
|
+
font-family: ${theme.default.fontFamily.default};
|
|
21
|
+
font-size: ${theme.default.fontSize.default};
|
|
22
|
+
line-height: ${theme.default.lineHeight.default};
|
|
23
|
+
color: ${theme.default.color.text.black};
|
|
24
|
+
|
|
25
|
+
&:focus-visible {
|
|
26
|
+
border: 1px solid ${theme.default.color.focus.light};
|
|
27
|
+
box-shadow: 0px 0px 0px 2px ${theme.default.color.focus.dark};
|
|
28
|
+
border-radius: ${theme.default.radius.default};
|
|
29
|
+
outline: none;
|
|
30
|
+
|
|
31
|
+
& > div {
|
|
32
|
+
border: 0 none;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&:hover {
|
|
37
|
+
color: ${theme.default.color.text.black};
|
|
38
|
+
text-decoration: none;
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
const StyledBox = styled(Box.default) `
|
|
42
|
+
display: flex;
|
|
43
|
+
gap: ${({ size }) => (size === 'small' ? '0.313rem' : '1rem')};
|
|
44
|
+
border: 1px solid ${theme.default.color.line.L03};
|
|
45
|
+
padding: ${({ size }) => (size === 'small' ? '0.625rem' : '1rem')};
|
|
46
|
+
${({ size }) => size === 'small' && 'flex-direction: column'};
|
|
47
|
+
${({ size }) => size !== 'small' && 'align-items: center'};
|
|
48
|
+
`;
|
|
49
|
+
const VisualContent = styled.div `
|
|
50
|
+
display: flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
width: ${({ size }) => (size === 'small' ? '2.5rem' : '3.75rem')};
|
|
53
|
+
height: ${({ size }) => (size === 'small' ? '2.5rem' : '3.75rem')};
|
|
54
|
+
`;
|
|
55
|
+
const TextContentWrapper = styled.div `
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-grow: 1;
|
|
58
|
+
align-items: center;
|
|
59
|
+
justify-content: space-between;
|
|
60
|
+
gap: ${({ size }) => (size === 'small' ? '0.625rem' : '1rem')};
|
|
61
|
+
min-width: 0;
|
|
62
|
+
`;
|
|
63
|
+
const TextContent = styled.div `
|
|
64
|
+
display: flex;
|
|
65
|
+
align-items: flex-start;
|
|
66
|
+
flex-direction: column;
|
|
67
|
+
min-width: 0;
|
|
68
|
+
`;
|
|
69
|
+
const Title = styled.div `
|
|
70
|
+
font-size: ${theme.default.fontSize.default};
|
|
71
|
+
line-height: ${theme.default.lineHeight.default};
|
|
72
|
+
font-weight: ${theme.default.fontWeight.bold};
|
|
73
|
+
|
|
74
|
+
text-overflow: ellipsis;
|
|
75
|
+
overflow: hidden;
|
|
76
|
+
white-space: nowrap;
|
|
77
|
+
max-width: 100%;
|
|
78
|
+
|
|
79
|
+
${({ size }) => size === 'small' &&
|
|
80
|
+
`
|
|
81
|
+
font-size: ${theme.default.fontSize.s};
|
|
82
|
+
line-height: ${theme.default.lineHeight.s};
|
|
83
|
+
font-weight: ${theme.default.fontWeight.medium};
|
|
84
|
+
`}
|
|
85
|
+
|
|
86
|
+
${({ size }) => size === 'large' &&
|
|
87
|
+
`
|
|
88
|
+
font-size: ${theme.default.fontSize.xl};
|
|
89
|
+
`};
|
|
90
|
+
`;
|
|
91
|
+
const Subtitle = styled.div `
|
|
92
|
+
color: ${theme.default.color.text.gray};
|
|
93
|
+
font-size: ${theme.default.fontSize.s};
|
|
94
|
+
line-height: ${theme.default.lineHeight.s};
|
|
95
|
+
font-weight: ${theme.default.fontWeight.medium};
|
|
96
|
+
|
|
97
|
+
text-overflow: ellipsis;
|
|
98
|
+
overflow: hidden;
|
|
99
|
+
white-space: nowrap;
|
|
100
|
+
max-width: 100%;
|
|
101
|
+
|
|
102
|
+
${({ size }) => size === 'small' &&
|
|
103
|
+
`
|
|
104
|
+
font-size: ${theme.default.fontSize.xs};
|
|
105
|
+
line-height: ${theme.default.lineHeight.xxs};
|
|
106
|
+
`}
|
|
107
|
+
|
|
108
|
+
${({ size }) => size === 'large' &&
|
|
109
|
+
`
|
|
110
|
+
font-size: ${theme.default.fontSize.default};
|
|
111
|
+
`};
|
|
112
|
+
`;
|
|
113
|
+
const CtaIcon = styled(Icon.default) `
|
|
114
|
+
color: ${theme.default.color.text.pink};
|
|
115
|
+
|
|
116
|
+
${ButtonCardWrapper}:hover & {
|
|
117
|
+
color: ${theme.default.color.hover.pink};
|
|
118
|
+
}
|
|
119
|
+
`;
|
|
120
|
+
/** @visibleName Button Card */
|
|
121
|
+
const ButtonCard = (_a) => {
|
|
122
|
+
var { type = 'submit', size = 'medium', 'data-testid': dataTestId } = _a, props = tslib.__rest(_a, ["type", "size", 'data-testid']);
|
|
123
|
+
return (React.createElement(ButtonCardWrapper, Object.assign({ id: props.id, as: props.href ? 'a' : undefined, type: props.href ? undefined : type, href: props.href, onClick: props.onClick, className: props.className, "data-testid": dataTestId }, (!props.href && {
|
|
124
|
+
name: props.name,
|
|
125
|
+
})),
|
|
126
|
+
React.createElement(StyledBox, { elevation: "low", size: size },
|
|
127
|
+
React.createElement(VisualContent, { size: size, "data-testid": dataTestId && `${dataTestId}-content` }, props.children),
|
|
128
|
+
React.createElement(TextContentWrapper, { size: size },
|
|
129
|
+
React.createElement(TextContent, null,
|
|
130
|
+
React.createElement(Title, { size: size, "data-testid": dataTestId && `${dataTestId}-title` }, props.title),
|
|
131
|
+
props.subtitle && (React.createElement(Subtitle, { size: size, "data-testid": dataTestId && `${dataTestId}-subtitle` }, props.subtitle))),
|
|
132
|
+
React.createElement(CtaIcon, { icon: props.isExternal ? icons.Open : icons.ChevronRight, size: size === 'small' ? '1rem' : '1.5rem', "data-testid": dataTestId && `${dataTestId}-cta` })))));
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
exports.default = ButtonCard;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { Props as ButtonProps } from '
|
|
2
|
+
import type { Props as ButtonProps } from '../Button/Button';
|
|
3
3
|
interface Props extends Pick<ButtonProps, 'id' | 'name' | 'children' | 'onClick' | 'onMouseDown' | 'className' | 'data-testid'> {
|
|
4
4
|
/**
|
|
5
5
|
* Allows to pass aria label for screen readers
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { Props as ButtonProps } from '../Button/Button';
|
|
2
3
|
import type { Props as IconProps } from '../Icon/Icon';
|
|
3
|
-
import type { Props as ButtonProps } from './Button';
|
|
4
4
|
interface Props extends Omit<ButtonProps, 'fullWidth'> {
|
|
5
5
|
/**
|
|
6
6
|
* Icon shown in icon button component
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var styled = require('styled-components');
|
|
6
6
|
var theme = require('../../themes/theme.js');
|
|
7
|
-
var Button = require('
|
|
7
|
+
var Button = require('../Button/Button.js');
|
|
8
8
|
|
|
9
9
|
/** @visibleName Button Primary */
|
|
10
10
|
const ButtonPrimary = styled(Button.default) `
|
|
@@ -7,7 +7,7 @@ var React = require('react');
|
|
|
7
7
|
var styled = require('styled-components');
|
|
8
8
|
var theme = require('../../themes/theme.js');
|
|
9
9
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
10
|
-
var ButtonPrimary = require('
|
|
10
|
+
var ButtonPrimary = require('../ButtonPrimary/ButtonPrimary.js');
|
|
11
11
|
|
|
12
12
|
const ButtonElement = styled(ButtonPrimary.default) `
|
|
13
13
|
display: flex;
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var styled = require('styled-components');
|
|
6
6
|
var theme = require('../../themes/theme.js');
|
|
7
|
-
var Button = require('
|
|
7
|
+
var Button = require('../Button/Button.js');
|
|
8
8
|
|
|
9
9
|
/** @visibleName Button Secondary */
|
|
10
10
|
const ButtonSecondary = styled(Button.default) `
|
|
@@ -9,8 +9,8 @@ var useWindowSize = require('../../hooks/useWindowSize.js');
|
|
|
9
9
|
var styled = require('../../themes/styled.js');
|
|
10
10
|
var theme = require('../../themes/theme.js');
|
|
11
11
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
12
|
-
var ButtonArrow = require('../
|
|
13
|
-
var ButtonIcon = require('../
|
|
12
|
+
var ButtonArrow = require('../ButtonArrow/ButtonArrow.js');
|
|
13
|
+
var ButtonIcon = require('../ButtonIcon/ButtonIcon.js');
|
|
14
14
|
|
|
15
15
|
const CarouselWrapper = styled.default.div ``;
|
|
16
16
|
const Header = styled.default.div `
|
|
@@ -9,7 +9,7 @@ var ReactDatePicker = require('react-datepicker');
|
|
|
9
9
|
var styled = require('styled-components');
|
|
10
10
|
var theme = require('../../themes/theme.js');
|
|
11
11
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
12
|
-
var ButtonIcon = require('../
|
|
12
|
+
var ButtonIcon = require('../ButtonIcon/ButtonIcon.js');
|
|
13
13
|
var Input = require('../Input/Input.js');
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -3,6 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import type { Props as ReactModalProps } from 'react-modal';
|
|
4
4
|
type Size = 'small' | 'medium' | 'large';
|
|
5
5
|
type Variant = 'light' | 'dark';
|
|
6
|
+
type Side = 'left' | 'right';
|
|
6
7
|
interface Props {
|
|
7
8
|
/**
|
|
8
9
|
* Allows to control the state of component
|
|
@@ -16,15 +17,6 @@ interface Props {
|
|
|
16
17
|
* Unique ID for the component
|
|
17
18
|
*/
|
|
18
19
|
id?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Allows to change the color scheme of the component
|
|
21
|
-
*
|
|
22
|
-
* @param {Variant} light Sets header background color to `theme.color.background.white.default`
|
|
23
|
-
* @param {Variant} dark Sets header background color to `theme.color.background.plum.E02`
|
|
24
|
-
*
|
|
25
|
-
* @default 'light'
|
|
26
|
-
*/
|
|
27
|
-
variant?: Variant;
|
|
28
20
|
/**
|
|
29
21
|
* Allows to define subtitle shown in the header
|
|
30
22
|
*/
|
|
@@ -50,6 +42,24 @@ interface Props {
|
|
|
50
42
|
* @default 'medium'
|
|
51
43
|
*/
|
|
52
44
|
size?: Size;
|
|
45
|
+
/**
|
|
46
|
+
* Allows to change the color scheme of the component
|
|
47
|
+
*
|
|
48
|
+
* @param {Variant} light Sets header background color to `theme.color.background.white.default`
|
|
49
|
+
* @param {Variant} dark Sets header background color to `theme.color.background.plum.E02`
|
|
50
|
+
*
|
|
51
|
+
* @default 'light'
|
|
52
|
+
*/
|
|
53
|
+
variant?: Variant;
|
|
54
|
+
/**
|
|
55
|
+
* Allows to change the opening side of the component
|
|
56
|
+
*
|
|
57
|
+
* @param {Side} left Opens the drawer from the left side
|
|
58
|
+
* @param {Side} right Opens the drawer from the right side
|
|
59
|
+
*
|
|
60
|
+
* @default 'right'
|
|
61
|
+
*/
|
|
62
|
+
side?: Side;
|
|
53
63
|
/**
|
|
54
64
|
* Allows to pass a custom margin
|
|
55
65
|
*
|
|
@@ -101,5 +111,5 @@ interface Props {
|
|
|
101
111
|
*/
|
|
102
112
|
'data-testid'?: string;
|
|
103
113
|
}
|
|
104
|
-
declare const Drawer: ({ appElement, size, variant, padding, closeButton, isClosable, "data-testid": dataTestId, ...props }: Props) => React.JSX.Element;
|
|
114
|
+
declare const Drawer: ({ appElement, size, side, variant, padding, closeButton, isClosable, "data-testid": dataTestId, ...props }: Props) => React.JSX.Element;
|
|
105
115
|
export default Drawer;
|
|
@@ -8,52 +8,54 @@ var React = require('react');
|
|
|
8
8
|
var ReactModal = require('react-modal');
|
|
9
9
|
var styled = require('../../themes/styled.js');
|
|
10
10
|
var theme = require('../../themes/theme.js');
|
|
11
|
+
var common = require('../../utils/common.js');
|
|
11
12
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
12
13
|
var Box = require('../Box/Box.js');
|
|
13
|
-
var ButtonClose = require('../
|
|
14
|
-
var Icon = require('../Icon/Icon.js');
|
|
15
|
-
var common = require('../../utils/common.js');
|
|
14
|
+
var ButtonClose = require('../ButtonClose/ButtonClose.js');
|
|
16
15
|
var Floater = require('../Floater/Floater.js');
|
|
16
|
+
var Icon = require('../Icon/Icon.js');
|
|
17
17
|
|
|
18
18
|
const sizeMap = {
|
|
19
19
|
small: '375px',
|
|
20
20
|
medium: '768px',
|
|
21
21
|
large: '1080px',
|
|
22
22
|
};
|
|
23
|
+
const animationMap = {
|
|
24
|
+
small: ['0.4', '0.2'],
|
|
25
|
+
medium: ['0.5', '0.3'],
|
|
26
|
+
large: ['0.6', '0.4'],
|
|
27
|
+
};
|
|
23
28
|
const GlobalStyle = styled.createGlobalStyle `
|
|
24
29
|
body.ReactModal__Body--open {
|
|
25
30
|
overflow: hidden;
|
|
26
31
|
}
|
|
27
32
|
`;
|
|
33
|
+
const slideOut = (side) => styled.keyframes `
|
|
34
|
+
0% {
|
|
35
|
+
transform: translateX(0%);
|
|
36
|
+
}
|
|
37
|
+
100% {
|
|
38
|
+
transform: translateX(${side === 'left' && '-'}100%);
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
const slideIn = styled.keyframes `
|
|
42
|
+
100% {
|
|
43
|
+
transform: translateX(0%);
|
|
44
|
+
}
|
|
45
|
+
`;
|
|
28
46
|
const StyledReactModal = styled.default(ReactModal) `
|
|
29
47
|
position: fixed;
|
|
30
48
|
top: 0;
|
|
31
|
-
right: 0;
|
|
49
|
+
${({ side }) => (side === 'left' ? 'left: 0' : 'right: 0')};
|
|
32
50
|
width: 100vw;
|
|
33
51
|
height: 100dvh;
|
|
34
52
|
max-width: 100vw;
|
|
35
53
|
max-height: 100%;
|
|
36
|
-
transform: translateX(100%);
|
|
37
|
-
animation: slideIn 0
|
|
54
|
+
transform: translateX(${({ side }) => side === 'left' && '-'}100%);
|
|
55
|
+
animation: ${slideIn} ${({ size }) => animationMap[size][0]}s forwards;
|
|
38
56
|
|
|
39
57
|
&.ReactModal__Content--before-close {
|
|
40
|
-
animation: slideOut
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
@keyframes slideIn {
|
|
44
|
-
100% {
|
|
45
|
-
transform: translateX(0%);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
@keyframes slideOut {
|
|
50
|
-
0% {
|
|
51
|
-
transform: translateX(0%);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
100% {
|
|
55
|
-
transform: translateX(100%);
|
|
56
|
-
}
|
|
58
|
+
animation: ${({ side }) => slideOut(side)} ${({ size }) => animationMap[size][1]}s forwards;
|
|
57
59
|
}
|
|
58
60
|
|
|
59
61
|
${({ size }) => styledUtils.media.sm `
|
|
@@ -165,10 +167,10 @@ const ModalContent = (_a, children) => {
|
|
|
165
167
|
return (React.createElement(StyledReactModalContent, { id: id, ref: ref, tabIndex: tabIndex, role: role, onKeyDown: onKeyDown, onMouseDown: onMouseDown, onMouseUp: onMouseUp, onClick: onClick, "aria-label": contentProps['aria-label'], "aria-modal": contentProps['aria-modal'], className: className }, children));
|
|
166
168
|
};
|
|
167
169
|
const Drawer = (_a) => {
|
|
168
|
-
var { appElement = '#__next', size = 'medium', variant = 'light', padding = '1.25rem', closeButton = true, isClosable = true, 'data-testid': dataTestId } = _a, props = tslib.__rest(_a, ["appElement", "size", "variant", "padding", "closeButton", "isClosable", 'data-testid']);
|
|
170
|
+
var { appElement = '#__next', size = 'medium', side = 'right', variant = 'light', padding = '1.25rem', closeButton = true, isClosable = true, 'data-testid': dataTestId } = _a, props = tslib.__rest(_a, ["appElement", "size", "side", "variant", "padding", "closeButton", "isClosable", 'data-testid']);
|
|
169
171
|
ReactModal.setAppElement(appElement);
|
|
170
172
|
return (React.createElement(React.Fragment, null,
|
|
171
|
-
React.createElement(StyledReactModal, { id: props.id, isOpen: props.isOpen, overlayElement: ModalOverlay, contentElement: ModalContent, onRequestClose: props.onRequestClose, portalClassName: props.className, contentLabel: props.contentLabel, shouldCloseOnEsc: isClosable, shouldCloseOnOverlayClick: isClosable, closeTimeoutMS: 300, size: size },
|
|
173
|
+
React.createElement(StyledReactModal, { id: props.id, isOpen: props.isOpen, overlayElement: ModalOverlay, contentElement: ModalContent, onRequestClose: props.onRequestClose, portalClassName: props.className, contentLabel: props.contentLabel, shouldCloseOnEsc: isClosable, shouldCloseOnOverlayClick: isClosable, closeTimeoutMS: 300, size: size, side: side },
|
|
172
174
|
React.createElement(StyledBox, { elevation: "extraHigh", margin: props.margin, "data-testid": dataTestId },
|
|
173
175
|
React.createElement("div", null,
|
|
174
176
|
React.createElement(Floater.default, null, closeButton && isClosable && (React.createElement(CloseButton, { onClick: props.onRequestClose, "aria-label": props.closeLabel, "data-testid": dataTestId && `${dataTestId}-close-button`, variant: variant },
|
|
@@ -7,7 +7,7 @@ var icons = require('@dnanpm/icons');
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var styled = require('../../themes/styled.js');
|
|
9
9
|
var theme = require('../../themes/theme.js');
|
|
10
|
-
var ButtonIcon = require('../
|
|
10
|
+
var ButtonIcon = require('../ButtonIcon/ButtonIcon.js');
|
|
11
11
|
|
|
12
12
|
const Container = styled.default.div `
|
|
13
13
|
display: flex;
|
|
@@ -5,7 +5,7 @@ var React = require('react');
|
|
|
5
5
|
var styled = require('../../../themes/styled.js');
|
|
6
6
|
var theme = require('../../../themes/theme.js');
|
|
7
7
|
var styledUtils = require('../../../utils/styledUtils.js');
|
|
8
|
-
var ButtonIcon = require('../../
|
|
8
|
+
var ButtonIcon = require('../../ButtonIcon/ButtonIcon.js');
|
|
9
9
|
var Icon = require('../../Icon/Icon.js');
|
|
10
10
|
var FooterContext = require('../context/FooterContext.js');
|
|
11
11
|
|
|
@@ -8,7 +8,7 @@ var React = require('react');
|
|
|
8
8
|
var styled = require('../../themes/styled.js');
|
|
9
9
|
var theme = require('../../themes/theme.js');
|
|
10
10
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
11
|
-
var ButtonIcon = require('../
|
|
11
|
+
var ButtonIcon = require('../ButtonIcon/ButtonIcon.js');
|
|
12
12
|
var Icon = require('../Icon/Icon.js');
|
|
13
13
|
var LabelText = require('../LabelText/LabelText.js');
|
|
14
14
|
|
|
@@ -11,7 +11,7 @@ var theme = require('../../../themes/theme.js');
|
|
|
11
11
|
var navigation = require('../../../themes/themeComponents/navigation.js');
|
|
12
12
|
var styledUtils = require('../../../utils/styledUtils.js');
|
|
13
13
|
var Box = require('../../Box/Box.js');
|
|
14
|
-
var ButtonPrimary = require('../../
|
|
14
|
+
var ButtonPrimary = require('../../ButtonPrimary/ButtonPrimary.js');
|
|
15
15
|
var NavContext = require('../context/NavContext.js');
|
|
16
16
|
var MainNavTooltipMenuExportedStyles = require('./MainNavTooltipMenuExportedStyles.js');
|
|
17
17
|
|
|
@@ -29,7 +29,10 @@ export interface MainNavigationProps {
|
|
|
29
29
|
currentUrl?: string;
|
|
30
30
|
notificationText?: string;
|
|
31
31
|
}
|
|
32
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* @visibleName Main Navigation
|
|
34
|
+
* @deprecated Use `MainHeaderNavigation` component
|
|
35
|
+
*/
|
|
33
36
|
declare const MainNavigation: ({ items, language, zIndex, languageSelector, search, searchText, searchComponent, minicart, minicartText, minicartComponent, minicartAmount, showMinicart, showLoginTooltip, login, loginText, loginComponent, isLoggedIn, collapseSize, nextJSLinkComponent, ribbon, ribbonData, className, currentUrl, notificationText, }: MainNavigationProps) => React.JSX.Element;
|
|
34
37
|
/** @component */
|
|
35
38
|
export default MainNavigation;
|
|
@@ -113,7 +113,10 @@ const initiateScrollToHeader = (componentRef) => {
|
|
|
113
113
|
window.scrollTo({ top: componentRef.current.offsetTop, left: 0 });
|
|
114
114
|
}
|
|
115
115
|
};
|
|
116
|
-
/**
|
|
116
|
+
/**
|
|
117
|
+
* @visibleName Main Navigation
|
|
118
|
+
* @deprecated Use `MainHeaderNavigation` component
|
|
119
|
+
*/
|
|
117
120
|
const MainNavigation = ({ items = {}, language = 'fi', zIndex = 1030, languageSelector = false, search = true, searchText = 'Haku', searchComponent = false, minicart = true, minicartText = 'Ostoskori', minicartComponent = false, minicartAmount = 0, showMinicart = false, showLoginTooltip = false, login = true, loginText = 'Kirjaudu', loginComponent, isLoggedIn = false, collapseSize = 767, nextJSLinkComponent = false, ribbon = true, ribbonData, className, currentUrl = '', notificationText = '', }) => {
|
|
118
121
|
const { isMobile } = useWindowSize.default(collapseSize);
|
|
119
122
|
const props = {
|
|
@@ -10,7 +10,7 @@ var styled = require('../../themes/styled.js');
|
|
|
10
10
|
var theme = require('../../themes/theme.js');
|
|
11
11
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
12
12
|
var Box = require('../Box/Box.js');
|
|
13
|
-
var ButtonClose = require('../
|
|
13
|
+
var ButtonClose = require('../ButtonClose/ButtonClose.js');
|
|
14
14
|
var Icon = require('../Icon/Icon.js');
|
|
15
15
|
|
|
16
16
|
const GlobalStyle = styled.createGlobalStyle `
|
|
@@ -7,7 +7,7 @@ var icons = require('@dnanpm/icons');
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var styled = require('styled-components');
|
|
9
9
|
var theme = require('../../themes/theme.js');
|
|
10
|
-
var ButtonClose = require('../
|
|
10
|
+
var ButtonClose = require('../ButtonClose/ButtonClose.js');
|
|
11
11
|
var Icon = require('../Icon/Icon.js');
|
|
12
12
|
|
|
13
13
|
const iconsMap = {
|
|
@@ -13,7 +13,7 @@ var styled = require('../../themes/styled.js');
|
|
|
13
13
|
var theme = require('../../themes/theme.js');
|
|
14
14
|
var common = require('../../utils/common.js');
|
|
15
15
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
16
|
-
var ButtonIcon = require('../
|
|
16
|
+
var ButtonIcon = require('../ButtonIcon/ButtonIcon.js');
|
|
17
17
|
var Icon = require('../Icon/Icon.js');
|
|
18
18
|
var PriorityNavigationItem = require('../PriorityNavigationItem/PriorityNavigationItem.js');
|
|
19
19
|
|
|
@@ -64,6 +64,10 @@ const MobileDropdown = styled.default.button `
|
|
|
64
64
|
line-height: ${theme.default.lineHeight.default};
|
|
65
65
|
font-weight: ${theme.default.fontWeight.bold};
|
|
66
66
|
border-bottom: 3px solid ${theme.default.color.default.pink};
|
|
67
|
+
|
|
68
|
+
& svg {
|
|
69
|
+
pointer-events: none;
|
|
70
|
+
}
|
|
67
71
|
`;
|
|
68
72
|
const MobileDropdownContent = styled.default.div `
|
|
69
73
|
display: flex;
|
|
@@ -7,7 +7,7 @@ var icons = require('@dnanpm/icons');
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var styled = require('../../themes/styled.js');
|
|
9
9
|
var theme = require('../../themes/theme.js');
|
|
10
|
-
var ButtonIcon = require('../
|
|
10
|
+
var ButtonIcon = require('../ButtonIcon/ButtonIcon.js');
|
|
11
11
|
|
|
12
12
|
const Container = styled.default.div `
|
|
13
13
|
display: flex;
|
|
@@ -8,7 +8,7 @@ var React = require('react');
|
|
|
8
8
|
var styled = require('../../themes/styled.js');
|
|
9
9
|
var theme = require('../../themes/theme.js');
|
|
10
10
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
11
|
-
var ButtonIcon = require('../
|
|
11
|
+
var ButtonIcon = require('../ButtonIcon/ButtonIcon.js');
|
|
12
12
|
|
|
13
13
|
const Container = styled.default.div `
|
|
14
14
|
display: flex;
|
|
@@ -9,7 +9,7 @@ var styled = require('styled-components');
|
|
|
9
9
|
var theme = require('../../themes/theme.js');
|
|
10
10
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
11
11
|
var Box = require('../Box/Box.js');
|
|
12
|
-
var ButtonClose = require('../
|
|
12
|
+
var ButtonClose = require('../ButtonClose/ButtonClose.js');
|
|
13
13
|
var Icon = require('../Icon/Icon.js');
|
|
14
14
|
|
|
15
15
|
const iconsMap = {
|
|
@@ -3,12 +3,13 @@ export { default as AccordionItem } from './AccordionItem/AccordionItem';
|
|
|
3
3
|
export { default as AmountSelector } from './AmountSelector/AmountSelector';
|
|
4
4
|
export { default as Box } from './Box/Box';
|
|
5
5
|
export { default as Button } from './Button/Button';
|
|
6
|
-
export { default as ButtonArrow } from './
|
|
7
|
-
export { default as
|
|
8
|
-
export { default as
|
|
9
|
-
export { default as
|
|
10
|
-
export { default as
|
|
11
|
-
export { default as
|
|
6
|
+
export { default as ButtonArrow } from './ButtonArrow/ButtonArrow';
|
|
7
|
+
export { default as ButtonCard } from './ButtonCard/ButtonCard';
|
|
8
|
+
export { default as ButtonClose } from './ButtonClose/ButtonClose';
|
|
9
|
+
export { default as ButtonIcon } from './ButtonIcon/ButtonIcon';
|
|
10
|
+
export { default as ButtonPrimary } from './ButtonPrimary/ButtonPrimary';
|
|
11
|
+
export { default as ButtonRound } from './ButtonRound/ButtonRound';
|
|
12
|
+
export { default as ButtonSecondary } from './ButtonSecondary/ButtonSecondary';
|
|
12
13
|
export { default as Carousel } from './Carousel/Carousel';
|
|
13
14
|
export { default as Checkbox } from './Checkbox/Checkbox';
|
|
14
15
|
export { default as Chip } from './Chip/Chip';
|