@entur/modal 1.7.10 → 1.7.11
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/dist/Drawer.d.ts +29 -29
- package/dist/Modal.d.ts +28 -28
- package/dist/ModalContent.d.ts +24 -24
- package/dist/ModalOverlay.d.ts +15 -15
- package/dist/index.d.ts +5 -5
- package/dist/modal.cjs.development.js +19 -24
- package/dist/modal.cjs.development.js.map +1 -1
- package/dist/modal.cjs.production.min.js +1 -1
- package/dist/modal.cjs.production.min.js.map +1 -1
- package/dist/styles.css +47 -47
- package/package.json +8 -8
package/dist/Drawer.d.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import './Drawer.scss';
|
|
3
|
-
export type DrawerProps = {
|
|
4
|
-
/** Innholdet. Typisk tekst, lenker eller knapper */
|
|
5
|
-
children: React.ReactNode;
|
|
6
|
-
/** Ekstra klassenavn */
|
|
7
|
-
className?: string;
|
|
8
|
-
/** Tekst som beskriver lukkeknappen for skjermlesere
|
|
9
|
-
* @default 'Lukk skuff'
|
|
10
|
-
*/
|
|
11
|
-
closeLabel?: string;
|
|
12
|
-
/** Om draweren skal vises i mørk variant
|
|
13
|
-
* @default false
|
|
14
|
-
*/
|
|
15
|
-
contrast?: boolean;
|
|
16
|
-
/** Callback som kalles når brukeren ønsker å lukke draweren */
|
|
17
|
-
onDismiss: () => void;
|
|
18
|
-
/** Om draweren er åpen eller ikke
|
|
19
|
-
* @default true
|
|
20
|
-
*/
|
|
21
|
-
open?: boolean;
|
|
22
|
-
/** Tittel på toppen av draweren */
|
|
23
|
-
title: string;
|
|
24
|
-
/** Styling som sendes til Drawer */
|
|
25
|
-
style?: React.CSSProperties;
|
|
26
|
-
/** Legger på et overlay over resten av siden */
|
|
27
|
-
overlay?: boolean;
|
|
28
|
-
};
|
|
29
|
-
export declare const Drawer: React.FC<DrawerProps>;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Drawer.scss';
|
|
3
|
+
export type DrawerProps = {
|
|
4
|
+
/** Innholdet. Typisk tekst, lenker eller knapper */
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
/** Ekstra klassenavn */
|
|
7
|
+
className?: string;
|
|
8
|
+
/** Tekst som beskriver lukkeknappen for skjermlesere
|
|
9
|
+
* @default 'Lukk skuff'
|
|
10
|
+
*/
|
|
11
|
+
closeLabel?: string;
|
|
12
|
+
/** Om draweren skal vises i mørk variant
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
contrast?: boolean;
|
|
16
|
+
/** Callback som kalles når brukeren ønsker å lukke draweren */
|
|
17
|
+
onDismiss: () => void;
|
|
18
|
+
/** Om draweren er åpen eller ikke
|
|
19
|
+
* @default true
|
|
20
|
+
*/
|
|
21
|
+
open?: boolean;
|
|
22
|
+
/** Tittel på toppen av draweren */
|
|
23
|
+
title: string;
|
|
24
|
+
/** Styling som sendes til Drawer */
|
|
25
|
+
style?: React.CSSProperties;
|
|
26
|
+
/** Legger på et overlay over resten av siden */
|
|
27
|
+
overlay?: boolean;
|
|
28
|
+
};
|
|
29
|
+
export declare const Drawer: React.FC<DrawerProps>;
|
package/dist/Modal.d.ts
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import './Modal.scss';
|
|
3
|
-
export type ModalProps = {
|
|
4
|
-
/** Innholdet i modalen */
|
|
5
|
-
children: React.ReactNode;
|
|
6
|
-
/** Skjermleser-label til lukk-knappen */
|
|
7
|
-
closeLabel?: string;
|
|
8
|
-
/** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */
|
|
9
|
-
initialFocusRef?: React.RefObject<HTMLElement>;
|
|
10
|
-
/** Flagg som sier om modalen er åpen */
|
|
11
|
-
open?: boolean;
|
|
12
|
-
/** Callback som kalles når brukeren ber om å lukke modalen */
|
|
13
|
-
onDismiss?: () => void;
|
|
14
|
-
/** Størrelsen på modalen */
|
|
15
|
-
size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';
|
|
16
|
-
/** Hvordan innholdet skal plasseres i modalen
|
|
17
|
-
* @default 'start'
|
|
18
|
-
*/
|
|
19
|
-
align?: 'start' | 'center' | 'end';
|
|
20
|
-
/** Tittelen som vises i modalen */
|
|
21
|
-
title?: React.ReactNode;
|
|
22
|
-
/** Om modalen skal lukkes når man klikker på utsiden av den
|
|
23
|
-
* @default true
|
|
24
|
-
*/
|
|
25
|
-
closeOnClickOutside?: boolean;
|
|
26
|
-
[key: string]: any;
|
|
27
|
-
};
|
|
28
|
-
export declare const Modal: React.FC<ModalProps>;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Modal.scss';
|
|
3
|
+
export type ModalProps = {
|
|
4
|
+
/** Innholdet i modalen */
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
/** Skjermleser-label til lukk-knappen */
|
|
7
|
+
closeLabel?: string;
|
|
8
|
+
/** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */
|
|
9
|
+
initialFocusRef?: React.RefObject<HTMLElement>;
|
|
10
|
+
/** Flagg som sier om modalen er åpen */
|
|
11
|
+
open?: boolean;
|
|
12
|
+
/** Callback som kalles når brukeren ber om å lukke modalen */
|
|
13
|
+
onDismiss?: () => void;
|
|
14
|
+
/** Størrelsen på modalen */
|
|
15
|
+
size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';
|
|
16
|
+
/** Hvordan innholdet skal plasseres i modalen
|
|
17
|
+
* @default 'start'
|
|
18
|
+
*/
|
|
19
|
+
align?: 'start' | 'center' | 'end';
|
|
20
|
+
/** Tittelen som vises i modalen */
|
|
21
|
+
title?: React.ReactNode;
|
|
22
|
+
/** Om modalen skal lukkes når man klikker på utsiden av den
|
|
23
|
+
* @default true
|
|
24
|
+
*/
|
|
25
|
+
closeOnClickOutside?: boolean;
|
|
26
|
+
[key: string]: any;
|
|
27
|
+
};
|
|
28
|
+
export declare const Modal: React.FC<ModalProps>;
|
package/dist/ModalContent.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type ModalContentProps = {
|
|
3
|
-
/** Innholdet i modalen */
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
/** Ekstra klassenavn */
|
|
6
|
-
className?: string;
|
|
7
|
-
/** Størrelsen på modalen */
|
|
8
|
-
size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';
|
|
9
|
-
/** Tittelen som vises i modalen */
|
|
10
|
-
title?: React.ReactNode;
|
|
11
|
-
/** Hvordan innholdet skal plasseres i modalen
|
|
12
|
-
* @default 'start'
|
|
13
|
-
*/
|
|
14
|
-
align?: 'start' | 'center' | 'end';
|
|
15
|
-
[key: string]: any;
|
|
16
|
-
};
|
|
17
|
-
export declare const headingsMap: {
|
|
18
|
-
extraSmall: <E extends React.ElementType<any> = "h4">({ margin, children, as, ...rest }: import("@entur/typography").Heading4Props<E>) => JSX.Element;
|
|
19
|
-
small: <E_1 extends React.ElementType<any> = "h3">({ margin, children, as, ...rest }: import("@entur/typography").Heading3Props<E_1>) => JSX.Element;
|
|
20
|
-
medium: <E_2 extends React.ElementType<any> = "h2">({ margin, children, as, ...rest }: import("@entur/typography").Heading2Props<E_2>) => JSX.Element;
|
|
21
|
-
large: <E_2 extends React.ElementType<any> = "h2">({ margin, children, as, ...rest }: import("@entur/typography").Heading2Props<E_2>) => JSX.Element;
|
|
22
|
-
extraLarge: <E_2 extends React.ElementType<any> = "h2">({ margin, children, as, ...rest }: import("@entur/typography").Heading2Props<E_2>) => JSX.Element;
|
|
23
|
-
};
|
|
24
|
-
export declare const ModalContent: React.FC<ModalContentProps>;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type ModalContentProps = {
|
|
3
|
+
/** Innholdet i modalen */
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
/** Ekstra klassenavn */
|
|
6
|
+
className?: string;
|
|
7
|
+
/** Størrelsen på modalen */
|
|
8
|
+
size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';
|
|
9
|
+
/** Tittelen som vises i modalen */
|
|
10
|
+
title?: React.ReactNode;
|
|
11
|
+
/** Hvordan innholdet skal plasseres i modalen
|
|
12
|
+
* @default 'start'
|
|
13
|
+
*/
|
|
14
|
+
align?: 'start' | 'center' | 'end';
|
|
15
|
+
[key: string]: any;
|
|
16
|
+
};
|
|
17
|
+
export declare const headingsMap: {
|
|
18
|
+
extraSmall: <E extends React.ElementType<any> = "h4">({ margin, children, as, ...rest }: import("@entur/typography").Heading4Props<E>) => JSX.Element;
|
|
19
|
+
small: <E_1 extends React.ElementType<any> = "h3">({ margin, children, as, ...rest }: import("@entur/typography").Heading3Props<E_1>) => JSX.Element;
|
|
20
|
+
medium: <E_2 extends React.ElementType<any> = "h2">({ margin, children, as, ...rest }: import("@entur/typography").Heading2Props<E_2>) => JSX.Element;
|
|
21
|
+
large: <E_2 extends React.ElementType<any> = "h2">({ margin, children, as, ...rest }: import("@entur/typography").Heading2Props<E_2>) => JSX.Element;
|
|
22
|
+
extraLarge: <E_2 extends React.ElementType<any> = "h2">({ margin, children, as, ...rest }: import("@entur/typography").Heading2Props<E_2>) => JSX.Element;
|
|
23
|
+
};
|
|
24
|
+
export declare const ModalContent: React.FC<ModalContentProps>;
|
package/dist/ModalOverlay.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type ModalOverlayProps = {
|
|
3
|
-
/** Flagg som sier om modalen er åpen */
|
|
4
|
-
open?: boolean;
|
|
5
|
-
/** Callback som kalles når brukeren ber om å lukke modalen */
|
|
6
|
-
onDismiss?: () => void;
|
|
7
|
-
/** Innholdet i modalen */
|
|
8
|
-
children: React.ReactNode;
|
|
9
|
-
/** Ekstra klassenavn */
|
|
10
|
-
className?: string;
|
|
11
|
-
/** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */
|
|
12
|
-
initialFocusRef?: React.RefObject<HTMLElement>;
|
|
13
|
-
[key: string]: any;
|
|
14
|
-
};
|
|
15
|
-
export declare const ModalOverlay: React.FC<ModalOverlayProps>;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type ModalOverlayProps = {
|
|
3
|
+
/** Flagg som sier om modalen er åpen */
|
|
4
|
+
open?: boolean;
|
|
5
|
+
/** Callback som kalles når brukeren ber om å lukke modalen */
|
|
6
|
+
onDismiss?: () => void;
|
|
7
|
+
/** Innholdet i modalen */
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
/** Ekstra klassenavn */
|
|
10
|
+
className?: string;
|
|
11
|
+
/** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */
|
|
12
|
+
initialFocusRef?: React.RefObject<HTMLElement>;
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
};
|
|
15
|
+
export declare const ModalOverlay: React.FC<ModalOverlayProps>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import './index.scss';
|
|
2
|
-
export * from './Modal';
|
|
3
|
-
export * from './ModalOverlay';
|
|
4
|
-
export * from './ModalContent';
|
|
5
|
-
export * from './Drawer';
|
|
1
|
+
import './index.scss';
|
|
2
|
+
export * from './Modal';
|
|
3
|
+
export * from './ModalOverlay';
|
|
4
|
+
export * from './ModalContent';
|
|
5
|
+
export * from './Drawer';
|
|
@@ -13,11 +13,6 @@ var reactFocusLock = require('react-focus-lock');
|
|
|
13
13
|
var a11y = require('@entur/a11y');
|
|
14
14
|
var layout = require('@entur/layout');
|
|
15
15
|
|
|
16
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
|
-
|
|
18
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
19
|
-
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
20
|
-
|
|
21
16
|
function _extends() {
|
|
22
17
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
23
18
|
for (var i = 1; i < arguments.length; i++) {
|
|
@@ -50,8 +45,8 @@ var ModalOverlay = function ModalOverlay(_ref) {
|
|
|
50
45
|
var className = _ref.className,
|
|
51
46
|
open = _ref.open,
|
|
52
47
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
53
|
-
return
|
|
54
|
-
className:
|
|
48
|
+
return React.createElement(dialog.DialogOverlay, _extends({
|
|
49
|
+
className: classNames('eds-modal__overlay', className),
|
|
55
50
|
isOpen: open
|
|
56
51
|
}, rest));
|
|
57
52
|
};
|
|
@@ -74,10 +69,10 @@ var ModalContent = function ModalContent(_ref) {
|
|
|
74
69
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
75
70
|
var Heading = headingsMap[size] || typography.Heading2;
|
|
76
71
|
var randomId = utils.useRandomId('eds-modal');
|
|
77
|
-
return
|
|
78
|
-
className:
|
|
72
|
+
return React.createElement(dialog.DialogContent, _extends({
|
|
73
|
+
className: classNames('eds-modal__content', "eds-modal__content--size-" + size, "eds-modal__content--align-" + align, className),
|
|
79
74
|
"aria-labelledby": randomId
|
|
80
|
-
}, rest), title &&
|
|
75
|
+
}, rest), title && React.createElement(Heading, {
|
|
81
76
|
margin: "bottom",
|
|
82
77
|
as: "h2",
|
|
83
78
|
id: randomId
|
|
@@ -106,18 +101,18 @@ var Modal = function Modal(_ref) {
|
|
|
106
101
|
if (onDismiss && closeOnClickOutside) {
|
|
107
102
|
handleOnDismiss = onDismiss;
|
|
108
103
|
}
|
|
109
|
-
return
|
|
104
|
+
return React.createElement(ModalOverlay, {
|
|
110
105
|
open: open,
|
|
111
106
|
onDismiss: handleOnDismiss,
|
|
112
107
|
initialFocusRef: initialFocusRef
|
|
113
|
-
},
|
|
108
|
+
}, React.createElement(ModalContent, _extends({
|
|
114
109
|
size: size,
|
|
115
110
|
align: align
|
|
116
|
-
}, rest), showCloseButton &&
|
|
111
|
+
}, rest), showCloseButton && React.createElement(button.IconButton, {
|
|
117
112
|
className: "eds-modal__close",
|
|
118
113
|
"aria-label": closeLabel,
|
|
119
114
|
onClick: onDismiss
|
|
120
|
-
},
|
|
115
|
+
}, React.createElement(icons.CloseIcon, null)), title && React.createElement(Heading, {
|
|
121
116
|
margin: "bottom",
|
|
122
117
|
as: "h2",
|
|
123
118
|
id: randomId
|
|
@@ -148,33 +143,33 @@ var Drawer = function Drawer(_ref) {
|
|
|
148
143
|
onDismiss();
|
|
149
144
|
}
|
|
150
145
|
};
|
|
151
|
-
var Wrapper = contrast ? layout.Contrast :
|
|
146
|
+
var Wrapper = contrast ? layout.Contrast : React.Fragment;
|
|
152
147
|
var ContentContainer = overlay ? dialog.DialogContent : 'div';
|
|
153
|
-
return
|
|
148
|
+
return React.createElement(ConditionalWrapper, {
|
|
154
149
|
condition: overlay,
|
|
155
150
|
wrapper: function wrapper(children) {
|
|
156
|
-
return
|
|
151
|
+
return React.createElement(ModalOverlay, {
|
|
157
152
|
open: open,
|
|
158
153
|
onDismiss: onDismiss
|
|
159
154
|
}, children);
|
|
160
155
|
}
|
|
161
|
-
},
|
|
156
|
+
}, React.createElement(Wrapper, null, React.createElement(ContentContainer, {
|
|
162
157
|
"aria-labelledby": titleId,
|
|
163
|
-
className:
|
|
158
|
+
className: classNames('eds-drawer', className),
|
|
164
159
|
onKeyDown: handleKeyDown,
|
|
165
160
|
style: style
|
|
166
|
-
},
|
|
161
|
+
}, React.createElement(reactFocusLock.MoveFocusInside, null, React.createElement("div", {
|
|
167
162
|
className: "eds-drawer__content"
|
|
168
|
-
},
|
|
163
|
+
}, React.createElement(typography.Heading3, {
|
|
169
164
|
as: "h2",
|
|
170
165
|
id: titleId
|
|
171
|
-
}, title), children),
|
|
166
|
+
}, title), children), React.createElement(button.IconButton, {
|
|
172
167
|
className: "eds-drawer__close-button",
|
|
173
168
|
onClick: onDismiss,
|
|
174
169
|
type: "button"
|
|
175
|
-
},
|
|
170
|
+
}, React.createElement(icons.CloseIcon, {
|
|
176
171
|
"aria-hidden": true
|
|
177
|
-
}),
|
|
172
|
+
}), React.createElement(a11y.VisuallyHidden, null, closeLabel))))));
|
|
178
173
|
};
|
|
179
174
|
var ConditionalWrapper = function ConditionalWrapper(_ref2) {
|
|
180
175
|
var condition = _ref2.condition,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.cjs.development.js","sources":["../src/ModalOverlay.tsx","../src/ModalContent.tsx","../src/Modal.tsx","../src/Drawer.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { DialogOverlay } from '@reach/dialog';\n\nexport type ModalOverlayProps = {\n /** Flagg som sier om modalen er åpen */\n open?: boolean;\n /** Callback som kalles når brukeren ber om å lukke modalen */\n onDismiss?: () => void;\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */\n initialFocusRef?: React.RefObject<HTMLElement>;\n [key: string]: any;\n};\n\nexport const ModalOverlay: React.FC<ModalOverlayProps> = ({\n className,\n open,\n ...rest\n}) => (\n <DialogOverlay\n className={classNames('eds-modal__overlay', className)}\n isOpen={open}\n {...rest}\n />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DialogContent } from '@reach/dialog';\nimport { Heading4, Heading3, Heading2 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\n\nexport type ModalContentProps = {\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelsen på modalen */\n size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';\n /** Tittelen som vises i modalen */\n title?: React.ReactNode;\n /** Hvordan innholdet skal plasseres i modalen\n * @default 'start'\n */\n align?: 'start' | 'center' | 'end';\n [key: string]: any;\n};\n\nexport const headingsMap = {\n extraSmall: Heading4,\n small: Heading3,\n medium: Heading2,\n large: Heading2,\n extraLarge: Heading2,\n};\n\nexport const ModalContent: React.FC<ModalContentProps> = ({\n children,\n className,\n size,\n title,\n align = 'start',\n ...rest\n}) => {\n const Heading: React.ElementType = headingsMap[size] || Heading2;\n const randomId = useRandomId('eds-modal');\n return (\n <DialogContent\n className={classNames(\n 'eds-modal__content',\n `eds-modal__content--size-${size}`,\n `eds-modal__content--align-${align}`,\n className,\n )}\n aria-labelledby={randomId}\n {...rest}\n >\n {title && (\n <Heading margin=\"bottom\" as=\"h2\" id={randomId}>\n {title}\n </Heading>\n )}\n {children}\n </DialogContent>\n );\n};\n","import React from 'react';\n\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Heading2 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\n\nimport { ModalOverlay } from './ModalOverlay';\nimport { ModalContent, headingsMap } from './ModalContent';\n\nimport './Modal.scss';\n\nexport type ModalProps = {\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Skjermleser-label til lukk-knappen */\n closeLabel?: string;\n /** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */\n initialFocusRef?: React.RefObject<HTMLElement>;\n /** Flagg som sier om modalen er åpen */\n open?: boolean;\n /** Callback som kalles når brukeren ber om å lukke modalen */\n onDismiss?: () => void;\n /** Størrelsen på modalen */\n size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';\n /** Hvordan innholdet skal plasseres i modalen\n * @default 'start'\n */\n align?: 'start' | 'center' | 'end';\n /** Tittelen som vises i modalen */\n title?: React.ReactNode;\n /** Om modalen skal lukkes når man klikker på utsiden av den\n * @default true\n */\n closeOnClickOutside?: boolean;\n [key: string]: any;\n};\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n closeLabel = 'Lukk',\n initialFocusRef,\n open,\n onDismiss,\n size,\n align = 'start',\n title,\n closeOnClickOutside = true,\n ...rest\n}) => {\n const randomId = useRandomId('eds-modal');\n const Heading: React.ElementType = headingsMap[size] || Heading2;\n const showCloseButton = ['medium', 'large', 'extraLarge'].includes(size);\n\n let handleOnDismiss;\n if (onDismiss && closeOnClickOutside) {\n handleOnDismiss = onDismiss;\n }\n return (\n <ModalOverlay\n open={open}\n onDismiss={handleOnDismiss}\n initialFocusRef={initialFocusRef}\n >\n <ModalContent size={size} align={align} {...rest}>\n {showCloseButton && (\n <IconButton\n className=\"eds-modal__close\"\n aria-label={closeLabel}\n onClick={onDismiss}\n >\n <CloseIcon />\n </IconButton>\n )}\n {title && (\n <Heading margin=\"bottom\" as=\"h2\" id={randomId}>\n {title}\n </Heading>\n )}\n {children}\n </ModalContent>\n </ModalOverlay>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { MoveFocusInside } from 'react-focus-lock';\nimport { VisuallyHidden } from '@entur/a11y';\nimport { Contrast } from '@entur/layout';\nimport { CloseIcon } from '@entur/icons';\nimport { Heading3 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\nimport { IconButton } from '@entur/button';\n\nimport './Drawer.scss';\nimport { ModalOverlay } from './ModalOverlay';\nimport { DialogContent } from '@reach/dialog';\n\nexport type DrawerProps = {\n /** Innholdet. Typisk tekst, lenker eller knapper */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Tekst som beskriver lukkeknappen for skjermlesere\n * @default 'Lukk skuff'\n */\n closeLabel?: string;\n /** Om draweren skal vises i mørk variant\n * @default false\n */\n contrast?: boolean;\n /** Callback som kalles når brukeren ønsker å lukke draweren */\n onDismiss: () => void;\n /** Om draweren er åpen eller ikke\n * @default true\n */\n open?: boolean;\n /** Tittel på toppen av draweren */\n title: string;\n /** Styling som sendes til Drawer */\n style?: React.CSSProperties;\n /** Legger på et overlay over resten av siden */\n overlay?: boolean;\n};\n\nexport const Drawer: React.FC<DrawerProps> = ({\n children,\n className,\n closeLabel = 'Lukk skuff',\n contrast = false,\n open = true,\n onDismiss,\n title,\n style,\n overlay = false,\n}) => {\n const titleId = useRandomId('eds-drawer');\n\n if (!open) {\n return null;\n }\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n onDismiss();\n }\n };\n\n const Wrapper = contrast ? Contrast : React.Fragment;\n const ContentContainer = overlay ? DialogContent : 'div';\n return (\n <ConditionalWrapper\n condition={overlay}\n wrapper={(children: React.ReactNode) => (\n <ModalOverlay open={open} onDismiss={onDismiss}>\n {children}\n </ModalOverlay>\n )}\n >\n <Wrapper>\n <ContentContainer\n aria-labelledby={titleId}\n className={classNames('eds-drawer', className)}\n onKeyDown={handleKeyDown}\n style={style}\n >\n <MoveFocusInside>\n <div className=\"eds-drawer__content\">\n <Heading3 as=\"h2\" id={titleId}>\n {title}\n </Heading3>\n {children}\n </div>\n <IconButton\n className=\"eds-drawer__close-button\"\n onClick={onDismiss}\n type=\"button\"\n >\n <CloseIcon aria-hidden />\n <VisuallyHidden>{closeLabel}</VisuallyHidden>\n </IconButton>\n </MoveFocusInside>\n </ContentContainer>\n </Wrapper>\n </ConditionalWrapper>\n );\n};\n\nconst ConditionalWrapper: React.FC<{\n condition: boolean;\n wrapper: (child: JSX.Element) => JSX.Element;\n children: React.ReactElement;\n}> = ({ condition, wrapper, children }) =>\n condition ? wrapper(children) : children;\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('modal', 'icons', 'typography', 'a11y', 'button');\n\nexport * from './Modal';\nexport * from './ModalOverlay';\nexport * from './ModalContent';\nexport * from './Drawer';\n"],"names":["ModalOverlay","className","open","rest","_excluded","React","createElement","DialogOverlay","classNames","isOpen","headingsMap","extraSmall","Heading4","small","Heading3","medium","Heading2","large","extraLarge","ModalContent","children","size","title","align","Heading","randomId","useRandomId","DialogContent","margin","as","id","Modal","closeLabel","initialFocusRef","onDismiss","closeOnClickOutside","showCloseButton","includes","handleOnDismiss","IconButton","onClick","CloseIcon","Drawer","contrast","style","overlay","titleId","handleKeyDown","e","key","stopPropagation","Wrapper","Contrast","Fragment","ContentContainer","ConditionalWrapper","condition","wrapper","onKeyDown","MoveFocusInside","type","VisuallyHidden","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modal.cjs.development.js","sources":["../src/ModalOverlay.tsx","../src/ModalContent.tsx","../src/Modal.tsx","../src/Drawer.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { DialogOverlay } from '@reach/dialog';\n\nexport type ModalOverlayProps = {\n /** Flagg som sier om modalen er åpen */\n open?: boolean;\n /** Callback som kalles når brukeren ber om å lukke modalen */\n onDismiss?: () => void;\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */\n initialFocusRef?: React.RefObject<HTMLElement>;\n [key: string]: any;\n};\n\nexport const ModalOverlay: React.FC<ModalOverlayProps> = ({\n className,\n open,\n ...rest\n}) => (\n <DialogOverlay\n className={classNames('eds-modal__overlay', className)}\n isOpen={open}\n {...rest}\n />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DialogContent } from '@reach/dialog';\nimport { Heading4, Heading3, Heading2 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\n\nexport type ModalContentProps = {\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelsen på modalen */\n size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';\n /** Tittelen som vises i modalen */\n title?: React.ReactNode;\n /** Hvordan innholdet skal plasseres i modalen\n * @default 'start'\n */\n align?: 'start' | 'center' | 'end';\n [key: string]: any;\n};\n\nexport const headingsMap = {\n extraSmall: Heading4,\n small: Heading3,\n medium: Heading2,\n large: Heading2,\n extraLarge: Heading2,\n};\n\nexport const ModalContent: React.FC<ModalContentProps> = ({\n children,\n className,\n size,\n title,\n align = 'start',\n ...rest\n}) => {\n const Heading: React.ElementType = headingsMap[size] || Heading2;\n const randomId = useRandomId('eds-modal');\n return (\n <DialogContent\n className={classNames(\n 'eds-modal__content',\n `eds-modal__content--size-${size}`,\n `eds-modal__content--align-${align}`,\n className,\n )}\n aria-labelledby={randomId}\n {...rest}\n >\n {title && (\n <Heading margin=\"bottom\" as=\"h2\" id={randomId}>\n {title}\n </Heading>\n )}\n {children}\n </DialogContent>\n );\n};\n","import React from 'react';\n\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Heading2 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\n\nimport { ModalOverlay } from './ModalOverlay';\nimport { ModalContent, headingsMap } from './ModalContent';\n\nimport './Modal.scss';\n\nexport type ModalProps = {\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Skjermleser-label til lukk-knappen */\n closeLabel?: string;\n /** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */\n initialFocusRef?: React.RefObject<HTMLElement>;\n /** Flagg som sier om modalen er åpen */\n open?: boolean;\n /** Callback som kalles når brukeren ber om å lukke modalen */\n onDismiss?: () => void;\n /** Størrelsen på modalen */\n size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';\n /** Hvordan innholdet skal plasseres i modalen\n * @default 'start'\n */\n align?: 'start' | 'center' | 'end';\n /** Tittelen som vises i modalen */\n title?: React.ReactNode;\n /** Om modalen skal lukkes når man klikker på utsiden av den\n * @default true\n */\n closeOnClickOutside?: boolean;\n [key: string]: any;\n};\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n closeLabel = 'Lukk',\n initialFocusRef,\n open,\n onDismiss,\n size,\n align = 'start',\n title,\n closeOnClickOutside = true,\n ...rest\n}) => {\n const randomId = useRandomId('eds-modal');\n const Heading: React.ElementType = headingsMap[size] || Heading2;\n const showCloseButton = ['medium', 'large', 'extraLarge'].includes(size);\n\n let handleOnDismiss;\n if (onDismiss && closeOnClickOutside) {\n handleOnDismiss = onDismiss;\n }\n return (\n <ModalOverlay\n open={open}\n onDismiss={handleOnDismiss}\n initialFocusRef={initialFocusRef}\n >\n <ModalContent size={size} align={align} {...rest}>\n {showCloseButton && (\n <IconButton\n className=\"eds-modal__close\"\n aria-label={closeLabel}\n onClick={onDismiss}\n >\n <CloseIcon />\n </IconButton>\n )}\n {title && (\n <Heading margin=\"bottom\" as=\"h2\" id={randomId}>\n {title}\n </Heading>\n )}\n {children}\n </ModalContent>\n </ModalOverlay>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { MoveFocusInside } from 'react-focus-lock';\nimport { VisuallyHidden } from '@entur/a11y';\nimport { Contrast } from '@entur/layout';\nimport { CloseIcon } from '@entur/icons';\nimport { Heading3 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\nimport { IconButton } from '@entur/button';\n\nimport './Drawer.scss';\nimport { ModalOverlay } from './ModalOverlay';\nimport { DialogContent } from '@reach/dialog';\n\nexport type DrawerProps = {\n /** Innholdet. Typisk tekst, lenker eller knapper */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Tekst som beskriver lukkeknappen for skjermlesere\n * @default 'Lukk skuff'\n */\n closeLabel?: string;\n /** Om draweren skal vises i mørk variant\n * @default false\n */\n contrast?: boolean;\n /** Callback som kalles når brukeren ønsker å lukke draweren */\n onDismiss: () => void;\n /** Om draweren er åpen eller ikke\n * @default true\n */\n open?: boolean;\n /** Tittel på toppen av draweren */\n title: string;\n /** Styling som sendes til Drawer */\n style?: React.CSSProperties;\n /** Legger på et overlay over resten av siden */\n overlay?: boolean;\n};\n\nexport const Drawer: React.FC<DrawerProps> = ({\n children,\n className,\n closeLabel = 'Lukk skuff',\n contrast = false,\n open = true,\n onDismiss,\n title,\n style,\n overlay = false,\n}) => {\n const titleId = useRandomId('eds-drawer');\n\n if (!open) {\n return null;\n }\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n onDismiss();\n }\n };\n\n const Wrapper = contrast ? Contrast : React.Fragment;\n const ContentContainer = overlay ? DialogContent : 'div';\n return (\n <ConditionalWrapper\n condition={overlay}\n wrapper={(children: React.ReactNode) => (\n <ModalOverlay open={open} onDismiss={onDismiss}>\n {children}\n </ModalOverlay>\n )}\n >\n <Wrapper>\n <ContentContainer\n aria-labelledby={titleId}\n className={classNames('eds-drawer', className)}\n onKeyDown={handleKeyDown}\n style={style}\n >\n <MoveFocusInside>\n <div className=\"eds-drawer__content\">\n <Heading3 as=\"h2\" id={titleId}>\n {title}\n </Heading3>\n {children}\n </div>\n <IconButton\n className=\"eds-drawer__close-button\"\n onClick={onDismiss}\n type=\"button\"\n >\n <CloseIcon aria-hidden />\n <VisuallyHidden>{closeLabel}</VisuallyHidden>\n </IconButton>\n </MoveFocusInside>\n </ContentContainer>\n </Wrapper>\n </ConditionalWrapper>\n );\n};\n\nconst ConditionalWrapper: React.FC<{\n condition: boolean;\n wrapper: (child: JSX.Element) => JSX.Element;\n children: React.ReactElement;\n}> = ({ condition, wrapper, children }) =>\n condition ? wrapper(children) : children;\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('modal', 'icons', 'typography', 'a11y', 'button');\n\nexport * from './Modal';\nexport * from './ModalOverlay';\nexport * from './ModalContent';\nexport * from './Drawer';\n"],"names":["ModalOverlay","className","open","rest","_excluded","React","createElement","DialogOverlay","classNames","isOpen","headingsMap","extraSmall","Heading4","small","Heading3","medium","Heading2","large","extraLarge","ModalContent","children","size","title","align","Heading","randomId","useRandomId","DialogContent","margin","as","id","Modal","closeLabel","initialFocusRef","onDismiss","closeOnClickOutside","showCloseButton","includes","handleOnDismiss","IconButton","onClick","CloseIcon","Drawer","contrast","style","overlay","titleId","handleKeyDown","e","key","stopPropagation","Wrapper","Contrast","Fragment","ContentContainer","ConditionalWrapper","condition","wrapper","onKeyDown","MoveFocusInside","type","VisuallyHidden","warnAboutMissingStyles"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),n=require("react"),t=require("@entur/icons"),a=require("@entur/button"),r=require("@entur/typography"),i=require("classnames"),l=require("@reach/dialog"),o=require("react-focus-lock"),s=require("@entur/a11y"),c=require("@entur/layout");function d(){return d=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},d.apply(this,arguments)}function u(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n.indexOf(t=i[a])>=0||(r[t]=e[t]);return r}var m=["className","open"],g=function(e){var t=e.className,a=e.open,r=u(e,m);return n.createElement(l.DialogOverlay,d({className:i("eds-modal__overlay",t),isOpen:a},r))},p=["children","className","size","title","align"],v={extraSmall:r.Heading4,small:r.Heading3,medium:r.Heading2,large:r.Heading2,extraLarge:r.Heading2},y=function(t){var a=t.children,o=t.className,s=t.size,c=t.title,m=t.align,g=void 0===m?"start":m,y=u(t,p),f=v[s]||r.Heading2,b=e.useRandomId("eds-modal");return n.createElement(l.DialogContent,d({className:i("eds-modal__content","eds-modal__content--size-"+s,"eds-modal__content--align-"+g,o),"aria-labelledby":b},y),c&&n.createElement(f,{margin:"bottom",as:"h2",id:b},c),a)},f=["children","closeLabel","initialFocusRef","open","onDismiss","size","align","title","closeOnClickOutside"],b=function(e){var n=e.children;return e.condition?(0,e.wrapper)(n):n};e.warnAboutMissingStyles("modal","icons","typography","a11y","button"),exports.Drawer=function(d){var u=d.children,m=d.className,p=d.closeLabel,v=void 0===p?"Lukk skuff":p,y=d.contrast,f=void 0!==y&&y,E=d.open,h=void 0===E||E,_=d.onDismiss,O=d.title,k=d.style,N=d.overlay,q=void 0!==N&&N,w=e.useRandomId("eds-drawer");return h?n.createElement(b,{condition:q,wrapper:function(e){return n.createElement(g,{open:h,onDismiss:_},e)}},n.createElement(f?c.Contrast:n.Fragment,null,n.createElement(q?l.DialogContent:"div",{"aria-labelledby":w,className:i("eds-drawer",m),onKeyDown:function(e){"Escape"===e.key&&(e.stopPropagation(),_())},style:k},n.createElement(o.MoveFocusInside,null,n.createElement("div",{className:"eds-drawer__content"},n.createElement(r.Heading3,{as:"h2",id:w},O),u),n.createElement(a.IconButton,{className:"eds-drawer__close-button",onClick:_,type:"button"},n.createElement(t.CloseIcon,{"aria-hidden":!0}),n.createElement(s.VisuallyHidden,null,v)))))):null},exports.Modal=function(i){var l,o=i.children,s=i.closeLabel,c=void 0===s?"Lukk":s,m=i.initialFocusRef,p=i.open,b=i.onDismiss,E=i.size,h=i.align,_=void 0===h?"start":h,O=i.title,k=i.closeOnClickOutside,N=void 0===k||k,q=u(i,f),w=e.useRandomId("eds-modal"),x=v[E]||r.Heading2,C=["medium","large","extraLarge"].includes(E);return b&&N&&(l=b),n.createElement(g,{open:p,onDismiss:l,initialFocusRef:m},n.createElement(y,d({size:E,align:_},q),C&&n.createElement(a.IconButton,{className:"eds-modal__close","aria-label":c,onClick:b},n.createElement(t.CloseIcon,null)),O&&n.createElement(x,{margin:"bottom",as:"h2",id:w},O),o))},exports.ModalContent=y,exports.ModalOverlay=g,exports.headingsMap=v;
|
|
2
2
|
//# sourceMappingURL=modal.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.cjs.production.min.js","sources":["../src/ModalOverlay.tsx","../src/ModalContent.tsx","../src/Drawer.tsx","../src/index.tsx","../src/Modal.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { DialogOverlay } from '@reach/dialog';\n\nexport type ModalOverlayProps = {\n /** Flagg som sier om modalen er åpen */\n open?: boolean;\n /** Callback som kalles når brukeren ber om å lukke modalen */\n onDismiss?: () => void;\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */\n initialFocusRef?: React.RefObject<HTMLElement>;\n [key: string]: any;\n};\n\nexport const ModalOverlay: React.FC<ModalOverlayProps> = ({\n className,\n open,\n ...rest\n}) => (\n <DialogOverlay\n className={classNames('eds-modal__overlay', className)}\n isOpen={open}\n {...rest}\n />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DialogContent } from '@reach/dialog';\nimport { Heading4, Heading3, Heading2 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\n\nexport type ModalContentProps = {\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelsen på modalen */\n size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';\n /** Tittelen som vises i modalen */\n title?: React.ReactNode;\n /** Hvordan innholdet skal plasseres i modalen\n * @default 'start'\n */\n align?: 'start' | 'center' | 'end';\n [key: string]: any;\n};\n\nexport const headingsMap = {\n extraSmall: Heading4,\n small: Heading3,\n medium: Heading2,\n large: Heading2,\n extraLarge: Heading2,\n};\n\nexport const ModalContent: React.FC<ModalContentProps> = ({\n children,\n className,\n size,\n title,\n align = 'start',\n ...rest\n}) => {\n const Heading: React.ElementType = headingsMap[size] || Heading2;\n const randomId = useRandomId('eds-modal');\n return (\n <DialogContent\n className={classNames(\n 'eds-modal__content',\n `eds-modal__content--size-${size}`,\n `eds-modal__content--align-${align}`,\n className,\n )}\n aria-labelledby={randomId}\n {...rest}\n >\n {title && (\n <Heading margin=\"bottom\" as=\"h2\" id={randomId}>\n {title}\n </Heading>\n )}\n {children}\n </DialogContent>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { MoveFocusInside } from 'react-focus-lock';\nimport { VisuallyHidden } from '@entur/a11y';\nimport { Contrast } from '@entur/layout';\nimport { CloseIcon } from '@entur/icons';\nimport { Heading3 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\nimport { IconButton } from '@entur/button';\n\nimport './Drawer.scss';\nimport { ModalOverlay } from './ModalOverlay';\nimport { DialogContent } from '@reach/dialog';\n\nexport type DrawerProps = {\n /** Innholdet. Typisk tekst, lenker eller knapper */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Tekst som beskriver lukkeknappen for skjermlesere\n * @default 'Lukk skuff'\n */\n closeLabel?: string;\n /** Om draweren skal vises i mørk variant\n * @default false\n */\n contrast?: boolean;\n /** Callback som kalles når brukeren ønsker å lukke draweren */\n onDismiss: () => void;\n /** Om draweren er åpen eller ikke\n * @default true\n */\n open?: boolean;\n /** Tittel på toppen av draweren */\n title: string;\n /** Styling som sendes til Drawer */\n style?: React.CSSProperties;\n /** Legger på et overlay over resten av siden */\n overlay?: boolean;\n};\n\nexport const Drawer: React.FC<DrawerProps> = ({\n children,\n className,\n closeLabel = 'Lukk skuff',\n contrast = false,\n open = true,\n onDismiss,\n title,\n style,\n overlay = false,\n}) => {\n const titleId = useRandomId('eds-drawer');\n\n if (!open) {\n return null;\n }\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n onDismiss();\n }\n };\n\n const Wrapper = contrast ? Contrast : React.Fragment;\n const ContentContainer = overlay ? DialogContent : 'div';\n return (\n <ConditionalWrapper\n condition={overlay}\n wrapper={(children: React.ReactNode) => (\n <ModalOverlay open={open} onDismiss={onDismiss}>\n {children}\n </ModalOverlay>\n )}\n >\n <Wrapper>\n <ContentContainer\n aria-labelledby={titleId}\n className={classNames('eds-drawer', className)}\n onKeyDown={handleKeyDown}\n style={style}\n >\n <MoveFocusInside>\n <div className=\"eds-drawer__content\">\n <Heading3 as=\"h2\" id={titleId}>\n {title}\n </Heading3>\n {children}\n </div>\n <IconButton\n className=\"eds-drawer__close-button\"\n onClick={onDismiss}\n type=\"button\"\n >\n <CloseIcon aria-hidden />\n <VisuallyHidden>{closeLabel}</VisuallyHidden>\n </IconButton>\n </MoveFocusInside>\n </ContentContainer>\n </Wrapper>\n </ConditionalWrapper>\n );\n};\n\nconst ConditionalWrapper: React.FC<{\n condition: boolean;\n wrapper: (child: JSX.Element) => JSX.Element;\n children: React.ReactElement;\n}> = ({ condition, wrapper, children }) =>\n condition ? wrapper(children) : children;\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('modal', 'icons', 'typography', 'a11y', 'button');\n\nexport * from './Modal';\nexport * from './ModalOverlay';\nexport * from './ModalContent';\nexport * from './Drawer';\n","import React from 'react';\n\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Heading2 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\n\nimport { ModalOverlay } from './ModalOverlay';\nimport { ModalContent, headingsMap } from './ModalContent';\n\nimport './Modal.scss';\n\nexport type ModalProps = {\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Skjermleser-label til lukk-knappen */\n closeLabel?: string;\n /** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */\n initialFocusRef?: React.RefObject<HTMLElement>;\n /** Flagg som sier om modalen er åpen */\n open?: boolean;\n /** Callback som kalles når brukeren ber om å lukke modalen */\n onDismiss?: () => void;\n /** Størrelsen på modalen */\n size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';\n /** Hvordan innholdet skal plasseres i modalen\n * @default 'start'\n */\n align?: 'start' | 'center' | 'end';\n /** Tittelen som vises i modalen */\n title?: React.ReactNode;\n /** Om modalen skal lukkes når man klikker på utsiden av den\n * @default true\n */\n closeOnClickOutside?: boolean;\n [key: string]: any;\n};\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n closeLabel = 'Lukk',\n initialFocusRef,\n open,\n onDismiss,\n size,\n align = 'start',\n title,\n closeOnClickOutside = true,\n ...rest\n}) => {\n const randomId = useRandomId('eds-modal');\n const Heading: React.ElementType = headingsMap[size] || Heading2;\n const showCloseButton = ['medium', 'large', 'extraLarge'].includes(size);\n\n let handleOnDismiss;\n if (onDismiss && closeOnClickOutside) {\n handleOnDismiss = onDismiss;\n }\n return (\n <ModalOverlay\n open={open}\n onDismiss={handleOnDismiss}\n initialFocusRef={initialFocusRef}\n >\n <ModalContent size={size} align={align} {...rest}>\n {showCloseButton && (\n <IconButton\n className=\"eds-modal__close\"\n aria-label={closeLabel}\n onClick={onDismiss}\n >\n <CloseIcon />\n </IconButton>\n )}\n {title && (\n <Heading margin=\"bottom\" as=\"h2\" id={randomId}>\n {title}\n </Heading>\n )}\n {children}\n </ModalContent>\n </ModalOverlay>\n );\n};\n"],"names":["ModalOverlay","_ref","className","open","rest","_objectWithoutPropertiesLoose","_excluded","React","createElement","DialogOverlay","_extends","classNames","isOpen","headingsMap","extraSmall","Heading4","small","Heading3","medium","Heading2","large","extraLarge","ModalContent","children","size","title","_ref$align","align","Heading","randomId","useRandomId","DialogContent","margin","as","id","ConditionalWrapper","_ref2","condition","wrapper","warnAboutMissingStyles","_ref$closeLabel","closeLabel","_ref$contrast","contrast","_ref$open","onDismiss","style","_ref$overlay","overlay","titleId","Contrast","Fragment","onKeyDown","e","key","stopPropagation","MoveFocusInside","IconButton","onClick","type","CloseIcon","VisuallyHidden","handleOnDismiss","initialFocusRef","_ref$closeOnClickOuts","closeOnClickOutside","showCloseButton","includes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modal.cjs.production.min.js","sources":["../src/ModalOverlay.tsx","../src/ModalContent.tsx","../src/Drawer.tsx","../src/index.tsx","../src/Modal.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { DialogOverlay } from '@reach/dialog';\n\nexport type ModalOverlayProps = {\n /** Flagg som sier om modalen er åpen */\n open?: boolean;\n /** Callback som kalles når brukeren ber om å lukke modalen */\n onDismiss?: () => void;\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */\n initialFocusRef?: React.RefObject<HTMLElement>;\n [key: string]: any;\n};\n\nexport const ModalOverlay: React.FC<ModalOverlayProps> = ({\n className,\n open,\n ...rest\n}) => (\n <DialogOverlay\n className={classNames('eds-modal__overlay', className)}\n isOpen={open}\n {...rest}\n />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DialogContent } from '@reach/dialog';\nimport { Heading4, Heading3, Heading2 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\n\nexport type ModalContentProps = {\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelsen på modalen */\n size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';\n /** Tittelen som vises i modalen */\n title?: React.ReactNode;\n /** Hvordan innholdet skal plasseres i modalen\n * @default 'start'\n */\n align?: 'start' | 'center' | 'end';\n [key: string]: any;\n};\n\nexport const headingsMap = {\n extraSmall: Heading4,\n small: Heading3,\n medium: Heading2,\n large: Heading2,\n extraLarge: Heading2,\n};\n\nexport const ModalContent: React.FC<ModalContentProps> = ({\n children,\n className,\n size,\n title,\n align = 'start',\n ...rest\n}) => {\n const Heading: React.ElementType = headingsMap[size] || Heading2;\n const randomId = useRandomId('eds-modal');\n return (\n <DialogContent\n className={classNames(\n 'eds-modal__content',\n `eds-modal__content--size-${size}`,\n `eds-modal__content--align-${align}`,\n className,\n )}\n aria-labelledby={randomId}\n {...rest}\n >\n {title && (\n <Heading margin=\"bottom\" as=\"h2\" id={randomId}>\n {title}\n </Heading>\n )}\n {children}\n </DialogContent>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { MoveFocusInside } from 'react-focus-lock';\nimport { VisuallyHidden } from '@entur/a11y';\nimport { Contrast } from '@entur/layout';\nimport { CloseIcon } from '@entur/icons';\nimport { Heading3 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\nimport { IconButton } from '@entur/button';\n\nimport './Drawer.scss';\nimport { ModalOverlay } from './ModalOverlay';\nimport { DialogContent } from '@reach/dialog';\n\nexport type DrawerProps = {\n /** Innholdet. Typisk tekst, lenker eller knapper */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Tekst som beskriver lukkeknappen for skjermlesere\n * @default 'Lukk skuff'\n */\n closeLabel?: string;\n /** Om draweren skal vises i mørk variant\n * @default false\n */\n contrast?: boolean;\n /** Callback som kalles når brukeren ønsker å lukke draweren */\n onDismiss: () => void;\n /** Om draweren er åpen eller ikke\n * @default true\n */\n open?: boolean;\n /** Tittel på toppen av draweren */\n title: string;\n /** Styling som sendes til Drawer */\n style?: React.CSSProperties;\n /** Legger på et overlay over resten av siden */\n overlay?: boolean;\n};\n\nexport const Drawer: React.FC<DrawerProps> = ({\n children,\n className,\n closeLabel = 'Lukk skuff',\n contrast = false,\n open = true,\n onDismiss,\n title,\n style,\n overlay = false,\n}) => {\n const titleId = useRandomId('eds-drawer');\n\n if (!open) {\n return null;\n }\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n onDismiss();\n }\n };\n\n const Wrapper = contrast ? Contrast : React.Fragment;\n const ContentContainer = overlay ? DialogContent : 'div';\n return (\n <ConditionalWrapper\n condition={overlay}\n wrapper={(children: React.ReactNode) => (\n <ModalOverlay open={open} onDismiss={onDismiss}>\n {children}\n </ModalOverlay>\n )}\n >\n <Wrapper>\n <ContentContainer\n aria-labelledby={titleId}\n className={classNames('eds-drawer', className)}\n onKeyDown={handleKeyDown}\n style={style}\n >\n <MoveFocusInside>\n <div className=\"eds-drawer__content\">\n <Heading3 as=\"h2\" id={titleId}>\n {title}\n </Heading3>\n {children}\n </div>\n <IconButton\n className=\"eds-drawer__close-button\"\n onClick={onDismiss}\n type=\"button\"\n >\n <CloseIcon aria-hidden />\n <VisuallyHidden>{closeLabel}</VisuallyHidden>\n </IconButton>\n </MoveFocusInside>\n </ContentContainer>\n </Wrapper>\n </ConditionalWrapper>\n );\n};\n\nconst ConditionalWrapper: React.FC<{\n condition: boolean;\n wrapper: (child: JSX.Element) => JSX.Element;\n children: React.ReactElement;\n}> = ({ condition, wrapper, children }) =>\n condition ? wrapper(children) : children;\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('modal', 'icons', 'typography', 'a11y', 'button');\n\nexport * from './Modal';\nexport * from './ModalOverlay';\nexport * from './ModalContent';\nexport * from './Drawer';\n","import React from 'react';\n\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Heading2 } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\n\nimport { ModalOverlay } from './ModalOverlay';\nimport { ModalContent, headingsMap } from './ModalContent';\n\nimport './Modal.scss';\n\nexport type ModalProps = {\n /** Innholdet i modalen */\n children: React.ReactNode;\n /** Skjermleser-label til lukk-knappen */\n closeLabel?: string;\n /** En ref til elementet som skal være fokusert når modalen åpnes. Defaulter til lukkeknappen */\n initialFocusRef?: React.RefObject<HTMLElement>;\n /** Flagg som sier om modalen er åpen */\n open?: boolean;\n /** Callback som kalles når brukeren ber om å lukke modalen */\n onDismiss?: () => void;\n /** Størrelsen på modalen */\n size: 'extraSmall' | 'small' | 'medium' | 'large' | 'extraLarge';\n /** Hvordan innholdet skal plasseres i modalen\n * @default 'start'\n */\n align?: 'start' | 'center' | 'end';\n /** Tittelen som vises i modalen */\n title?: React.ReactNode;\n /** Om modalen skal lukkes når man klikker på utsiden av den\n * @default true\n */\n closeOnClickOutside?: boolean;\n [key: string]: any;\n};\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n closeLabel = 'Lukk',\n initialFocusRef,\n open,\n onDismiss,\n size,\n align = 'start',\n title,\n closeOnClickOutside = true,\n ...rest\n}) => {\n const randomId = useRandomId('eds-modal');\n const Heading: React.ElementType = headingsMap[size] || Heading2;\n const showCloseButton = ['medium', 'large', 'extraLarge'].includes(size);\n\n let handleOnDismiss;\n if (onDismiss && closeOnClickOutside) {\n handleOnDismiss = onDismiss;\n }\n return (\n <ModalOverlay\n open={open}\n onDismiss={handleOnDismiss}\n initialFocusRef={initialFocusRef}\n >\n <ModalContent size={size} align={align} {...rest}>\n {showCloseButton && (\n <IconButton\n className=\"eds-modal__close\"\n aria-label={closeLabel}\n onClick={onDismiss}\n >\n <CloseIcon />\n </IconButton>\n )}\n {title && (\n <Heading margin=\"bottom\" as=\"h2\" id={randomId}>\n {title}\n </Heading>\n )}\n {children}\n </ModalContent>\n </ModalOverlay>\n );\n};\n"],"names":["ModalOverlay","_ref","className","open","rest","_objectWithoutPropertiesLoose","_excluded","React","createElement","DialogOverlay","_extends","classNames","isOpen","headingsMap","extraSmall","Heading4","small","Heading3","medium","Heading2","large","extraLarge","ModalContent","children","size","title","_ref$align","align","Heading","randomId","useRandomId","DialogContent","margin","as","id","ConditionalWrapper","_ref2","condition","wrapper","warnAboutMissingStyles","_ref$closeLabel","closeLabel","_ref$contrast","contrast","_ref$open","onDismiss","style","_ref$overlay","overlay","titleId","Contrast","Fragment","onKeyDown","e","key","stopPropagation","MoveFocusInside","IconButton","onClick","type","CloseIcon","VisuallyHidden","handleOnDismiss","initialFocusRef","_ref$closeOnClickOuts","closeOnClickOutside","showCloseButton","includes"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -1,50 +1,3 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
--eds-modal: 1;
|
|
3
|
-
}
|
|
4
|
-
/* DO NOT CHANGE!*/
|
|
5
|
-
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
6
|
-
@keyframes slideFromRight {
|
|
7
|
-
from {
|
|
8
|
-
box-shadow: none;
|
|
9
|
-
transform: translateX(100%);
|
|
10
|
-
}
|
|
11
|
-
to {
|
|
12
|
-
box-shadow: 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.25);
|
|
13
|
-
transform: 0;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
.eds-drawer {
|
|
17
|
-
animation: slideFromRight forwards ease-out 0.1s;
|
|
18
|
-
background: #ebebf1;
|
|
19
|
-
bottom: 0;
|
|
20
|
-
padding: 1.5rem;
|
|
21
|
-
position: fixed;
|
|
22
|
-
right: 0;
|
|
23
|
-
top: 0;
|
|
24
|
-
max-width: 100%;
|
|
25
|
-
min-width: 20rem;
|
|
26
|
-
width: 25vw;
|
|
27
|
-
z-index: 40;
|
|
28
|
-
overflow-y: auto;
|
|
29
|
-
}
|
|
30
|
-
.eds-contrast .eds-drawer {
|
|
31
|
-
background: #292b6a;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.eds-drawer__close-button {
|
|
35
|
-
margin: 0;
|
|
36
|
-
position: absolute;
|
|
37
|
-
top: 1.5rem;
|
|
38
|
-
right: 1.5rem;
|
|
39
|
-
}
|
|
40
|
-
.eds-drawer__close-button:focus {
|
|
41
|
-
outline-offset: 0.125rem;
|
|
42
|
-
outline: none;
|
|
43
|
-
box-shadow: 0 0 0 0.125rem #ffffff, 0 0 0 0.25rem #181c56;
|
|
44
|
-
}
|
|
45
|
-
.eds-contrast .eds-drawer__close-button:focus {
|
|
46
|
-
box-shadow: 0 0 0 0.125rem #181c56, 0 0 0 0.25rem #ffffff;
|
|
47
|
-
}
|
|
48
1
|
/* DO NOT CHANGE!*/
|
|
49
2
|
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
50
3
|
:root {
|
|
@@ -169,3 +122,50 @@
|
|
|
169
122
|
opacity: 1;
|
|
170
123
|
}
|
|
171
124
|
}
|
|
125
|
+
:root {
|
|
126
|
+
--eds-modal: 1;
|
|
127
|
+
}
|
|
128
|
+
/* DO NOT CHANGE!*/
|
|
129
|
+
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
130
|
+
@keyframes slideFromRight {
|
|
131
|
+
from {
|
|
132
|
+
box-shadow: none;
|
|
133
|
+
transform: translateX(100%);
|
|
134
|
+
}
|
|
135
|
+
to {
|
|
136
|
+
box-shadow: 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.25);
|
|
137
|
+
transform: 0;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
.eds-drawer {
|
|
141
|
+
animation: slideFromRight forwards ease-out 0.1s;
|
|
142
|
+
background: #ebebf1;
|
|
143
|
+
bottom: 0;
|
|
144
|
+
padding: 1.5rem;
|
|
145
|
+
position: fixed;
|
|
146
|
+
right: 0;
|
|
147
|
+
top: 0;
|
|
148
|
+
max-width: 100%;
|
|
149
|
+
min-width: 20rem;
|
|
150
|
+
width: 25vw;
|
|
151
|
+
z-index: 40;
|
|
152
|
+
overflow-y: auto;
|
|
153
|
+
}
|
|
154
|
+
.eds-contrast .eds-drawer {
|
|
155
|
+
background: #292b6a;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.eds-drawer__close-button {
|
|
159
|
+
margin: 0;
|
|
160
|
+
position: absolute;
|
|
161
|
+
top: 1.5rem;
|
|
162
|
+
right: 1.5rem;
|
|
163
|
+
}
|
|
164
|
+
.eds-drawer__close-button:focus {
|
|
165
|
+
outline-offset: 0.125rem;
|
|
166
|
+
outline: none;
|
|
167
|
+
box-shadow: 0 0 0 0.125rem #ffffff, 0 0 0 0.25rem #181c56;
|
|
168
|
+
}
|
|
169
|
+
.eds-contrast .eds-drawer__close-button:focus {
|
|
170
|
+
box-shadow: 0 0 0 0.125rem #181c56, 0 0 0 0.25rem #ffffff;
|
|
171
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/modal",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.11",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/modal.esm.js",
|
|
@@ -27,16 +27,16 @@
|
|
|
27
27
|
"react-dom": ">=16.8.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@entur/a11y": "^0.2.
|
|
31
|
-
"@entur/button": "^3.1.
|
|
32
|
-
"@entur/icons": "^6.
|
|
33
|
-
"@entur/layout": "^2.1.
|
|
30
|
+
"@entur/a11y": "^0.2.70",
|
|
31
|
+
"@entur/button": "^3.1.2",
|
|
32
|
+
"@entur/icons": "^6.5.0",
|
|
33
|
+
"@entur/layout": "^2.1.41",
|
|
34
34
|
"@entur/tokens": "^3.10.0",
|
|
35
|
-
"@entur/typography": "^1.8.
|
|
36
|
-
"@entur/utils": "^0.9.
|
|
35
|
+
"@entur/typography": "^1.8.8",
|
|
36
|
+
"@entur/utils": "^0.9.5",
|
|
37
37
|
"@reach/dialog": "^0.16.0",
|
|
38
38
|
"classnames": "^2.3.1",
|
|
39
39
|
"react-focus-lock": "^2.9.1"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "9b8d4e5d2e6f7a74256371e30ebef43e046c9338"
|
|
42
42
|
}
|