@entur/modal 1.7.59 → 1.7.60-beta.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.
@@ -10,7 +10,6 @@ var typography = require('@entur/typography');
10
10
  var classNames = require('classnames');
11
11
  var dialog = require('@reach/dialog');
12
12
  var reactFocusLock = require('react-focus-lock');
13
- var a11y = require('@entur/a11y');
14
13
  var layout = require('@entur/layout');
15
14
 
16
15
  function _extends() {
@@ -151,18 +150,19 @@ var Drawer = function Drawer(_ref) {
151
150
  className: classNames('eds-drawer', className),
152
151
  onKeyDown: handleKeyDown,
153
152
  style: style
154
- }, React.createElement(reactFocusLock.MoveFocusInside, null, React.createElement("div", {
155
- className: "eds-drawer__content"
156
- }, React.createElement(typography.Heading3, {
157
- as: "h2",
158
- id: titleId
159
- }, title), children), React.createElement(button.IconButton, {
153
+ }, React.createElement(reactFocusLock.MoveFocusInside, null, React.createElement(button.IconButton, {
160
154
  className: "eds-drawer__close-button",
161
155
  onClick: onDismiss,
162
- type: "button"
156
+ type: "button",
157
+ "aria-label": closeLabel
163
158
  }, React.createElement(icons.CloseIcon, {
164
159
  "aria-hidden": true
165
- }), React.createElement(a11y.VisuallyHidden, null, closeLabel))))));
160
+ })), React.createElement("div", {
161
+ className: "eds-drawer__content"
162
+ }, React.createElement(typography.Heading3, {
163
+ as: "h2",
164
+ id: titleId
165
+ }, title), children)))));
166
166
  };
167
167
  var ConditionalWrapper = function ConditionalWrapper(_ref2) {
168
168
  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 type=\"button\"\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","_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","Modal","_ref$closeLabel","closeLabel","initialFocusRef","onDismiss","_ref$closeOnClickOuts","closeOnClickOutside","showCloseButton","includes","handleOnDismiss","IconButton","onClick","type","CloseIcon","Drawer","_ref$contrast","contrast","_ref$open","style","_ref$overlay","overlay","titleId","handleKeyDown","e","key","stopPropagation","Wrapper","Contrast","Fragment","ContentContainer","ConditionalWrapper","condition","wrapper","onKeyDown","MoveFocusInside","VisuallyHidden","_ref2","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 type=\"button\"\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 { 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 <IconButton\n className=\"eds-drawer__close-button\"\n onClick={onDismiss}\n type=\"button\"\n aria-label={closeLabel}\n >\n <CloseIcon aria-hidden />\n </IconButton>\n <div className=\"eds-drawer__content\">\n <Heading3 as=\"h2\" id={titleId}>\n {title}\n </Heading3>\n {children}\n </div>\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","_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","Modal","_ref$closeLabel","closeLabel","initialFocusRef","onDismiss","_ref$closeOnClickOuts","closeOnClickOutside","showCloseButton","includes","handleOnDismiss","IconButton","onClick","type","CloseIcon","Drawer","_ref$contrast","contrast","_ref$open","style","_ref$overlay","overlay","titleId","handleKeyDown","e","key","stopPropagation","Wrapper","Contrast","Fragment","ContentContainer","ConditionalWrapper","condition","wrapper","onKeyDown","MoveFocusInside","_ref2","warnAboutMissingStyles"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),n=require("react"),a=require("@entur/icons"),t=require("@entur/button"),r=require("@entur/typography"),l=require("classnames"),i=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 a=arguments[n];for(var t in a)({}).hasOwnProperty.call(a,t)&&(e[t]=a[t])}return e},d.apply(null,arguments)}function u(e,n){if(null==e)return{};var a={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(n.includes(t))continue;a[t]=e[t]}return a}var m=["className","open"],g=function(e){var a=e.className,t=e.open,r=u(e,m);return n.createElement(i.DialogOverlay,d({className:l("eds-modal__overlay",a),isOpen:t},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(a){var t=a.children,o=a.className,s=a.size,c=a.title,m=a.align,g=void 0===m?"start":m,y=u(a,p),f=v[s]||r.Heading2,b=e.useRandomId("eds-modal");return n.createElement(i.DialogContent,d({className:l("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),t)},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,w=d.overlay,N=void 0!==w&&w,q=e.useRandomId("eds-drawer");return h?n.createElement(b,{condition:N,wrapper:function(e){return n.createElement(g,{open:h,onDismiss:_},e)}},n.createElement(f?c.Contrast:n.Fragment,null,n.createElement(N?i.DialogContent:"div",{"aria-labelledby":q,className:l("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:q},O),u),n.createElement(t.IconButton,{className:"eds-drawer__close-button",onClick:_,type:"button"},n.createElement(a.CloseIcon,{"aria-hidden":!0}),n.createElement(s.VisuallyHidden,null,v)))))):null},exports.Modal=function(l){var i,o=l.children,s=l.closeLabel,c=void 0===s?"Lukk":s,m=l.initialFocusRef,p=l.open,b=l.onDismiss,E=l.size,h=l.align,_=void 0===h?"start":h,O=l.title,k=l.closeOnClickOutside,w=void 0===k||k,N=u(l,f),q=e.useRandomId("eds-modal"),C=v[E]||r.Heading2,D=["medium","large","extraLarge"].includes(E);return b&&w&&(i=b),n.createElement(g,{open:p,onDismiss:i,initialFocusRef:m},n.createElement(y,d({size:E,align:_},N),D&&n.createElement(t.IconButton,{className:"eds-modal__close","aria-label":c,onClick:b,type:"button"},n.createElement(a.CloseIcon,null)),O&&n.createElement(C,{margin:"bottom",as:"h2",id:q},O),o))},exports.ModalContent=y,exports.ModalOverlay=g,exports.headingsMap=v;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),n=require("react"),a=require("@entur/icons"),t=require("@entur/button"),r=require("@entur/typography"),i=require("classnames"),l=require("@reach/dialog"),o=require("react-focus-lock"),s=require("@entur/layout");function c(){return c=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var t in a)({}).hasOwnProperty.call(a,t)&&(e[t]=a[t])}return e},c.apply(null,arguments)}function d(e,n){if(null==e)return{};var a={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(n.includes(t))continue;a[t]=e[t]}return a}var u=["className","open"],m=function(e){var a=e.className,t=e.open,r=d(e,u);return n.createElement(l.DialogOverlay,c({className:i("eds-modal__overlay",a),isOpen:t},r))},g=["children","className","size","title","align"],p={extraSmall:r.Heading4,small:r.Heading3,medium:r.Heading2,large:r.Heading2,extraLarge:r.Heading2},v=function(a){var t=a.children,o=a.className,s=a.size,u=a.title,m=a.align,v=void 0===m?"start":m,f=d(a,g),y=p[s]||r.Heading2,b=e.useRandomId("eds-modal");return n.createElement(l.DialogContent,c({className:i("eds-modal__content","eds-modal__content--size-"+s,"eds-modal__content--align-"+v,o),"aria-labelledby":b},f),u&&n.createElement(y,{margin:"bottom",as:"h2",id:b},u),t)},f=["children","closeLabel","initialFocusRef","open","onDismiss","size","align","title","closeOnClickOutside"],y=function(e){var n=e.children;return e.condition?(0,e.wrapper)(n):n};e.warnAboutMissingStyles("modal","icons","typography","a11y","button"),exports.Drawer=function(c){var d=c.children,u=c.className,g=c.closeLabel,p=void 0===g?"Lukk skuff":g,v=c.contrast,f=void 0!==v&&v,b=c.open,E=void 0===b||b,h=c.onDismiss,_=c.title,O=c.style,k=c.overlay,w=void 0!==k&&k,N=e.useRandomId("eds-drawer");return E?n.createElement(y,{condition:w,wrapper:function(e){return n.createElement(m,{open:E,onDismiss:h},e)}},n.createElement(f?s.Contrast:n.Fragment,null,n.createElement(w?l.DialogContent:"div",{"aria-labelledby":N,className:i("eds-drawer",u),onKeyDown:function(e){"Escape"===e.key&&(e.stopPropagation(),h())},style:O},n.createElement(o.MoveFocusInside,null,n.createElement(t.IconButton,{className:"eds-drawer__close-button",onClick:h,type:"button","aria-label":p},n.createElement(a.CloseIcon,{"aria-hidden":!0})),n.createElement("div",{className:"eds-drawer__content"},n.createElement(r.Heading3,{as:"h2",id:N},_),d))))):null},exports.Modal=function(i){var l,o=i.children,s=i.closeLabel,u=void 0===s?"Lukk":s,g=i.initialFocusRef,y=i.open,b=i.onDismiss,E=i.size,h=i.align,_=void 0===h?"start":h,O=i.title,k=i.closeOnClickOutside,w=void 0===k||k,N=d(i,f),C=e.useRandomId("eds-modal"),D=p[E]||r.Heading2,q=["medium","large","extraLarge"].includes(E);return b&&w&&(l=b),n.createElement(m,{open:y,onDismiss:l,initialFocusRef:g},n.createElement(v,c({size:E,align:_},N),q&&n.createElement(t.IconButton,{className:"eds-modal__close","aria-label":u,onClick:b,type:"button"},n.createElement(a.CloseIcon,null)),O&&n.createElement(D,{margin:"bottom",as:"h2",id:C},O),o))},exports.ModalContent=v,exports.ModalOverlay=m,exports.headingsMap=p;
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 type=\"button\"\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 { 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 <IconButton\n className=\"eds-drawer__close-button\"\n onClick={onDismiss}\n type=\"button\"\n aria-label={closeLabel}\n >\n <CloseIcon aria-hidden />\n </IconButton>\n <div className=\"eds-drawer__content\">\n <Heading3 as=\"h2\" id={titleId}>\n {title}\n </Heading3>\n {children}\n </div>\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 type=\"button\"\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","handleOnDismiss","initialFocusRef","_ref$closeOnClickOuts","closeOnClickOutside","showCloseButton","includes"],"mappings":"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"}
package/dist/modal.esm.js CHANGED
@@ -6,7 +6,6 @@ import { Heading4, Heading3, Heading2 } from '@entur/typography';
6
6
  import classNames from 'classnames';
7
7
  import { DialogOverlay, DialogContent } from '@reach/dialog';
8
8
  import { MoveFocusInside } from 'react-focus-lock';
9
- import { VisuallyHidden } from '@entur/a11y';
10
9
  import { Contrast } from '@entur/layout';
11
10
 
12
11
  function _extends() {
@@ -147,18 +146,19 @@ var Drawer = function Drawer(_ref) {
147
146
  className: classNames('eds-drawer', className),
148
147
  onKeyDown: handleKeyDown,
149
148
  style: style
150
- }, React.createElement(MoveFocusInside, null, React.createElement("div", {
151
- className: "eds-drawer__content"
152
- }, React.createElement(Heading3, {
153
- as: "h2",
154
- id: titleId
155
- }, title), children), React.createElement(IconButton, {
149
+ }, React.createElement(MoveFocusInside, null, React.createElement(IconButton, {
156
150
  className: "eds-drawer__close-button",
157
151
  onClick: onDismiss,
158
- type: "button"
152
+ type: "button",
153
+ "aria-label": closeLabel
159
154
  }, React.createElement(CloseIcon, {
160
155
  "aria-hidden": true
161
- }), React.createElement(VisuallyHidden, null, closeLabel))))));
156
+ })), React.createElement("div", {
157
+ className: "eds-drawer__content"
158
+ }, React.createElement(Heading3, {
159
+ as: "h2",
160
+ id: titleId
161
+ }, title), children)))));
162
162
  };
163
163
  var ConditionalWrapper = function ConditionalWrapper(_ref2) {
164
164
  var condition = _ref2.condition,
@@ -1 +1 @@
1
- {"version":3,"file":"modal.esm.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 type=\"button\"\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","_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","Modal","_ref$closeLabel","closeLabel","initialFocusRef","onDismiss","_ref$closeOnClickOuts","closeOnClickOutside","showCloseButton","includes","handleOnDismiss","IconButton","onClick","type","CloseIcon","Drawer","_ref$contrast","contrast","_ref$open","style","_ref$overlay","overlay","titleId","handleKeyDown","e","key","stopPropagation","Wrapper","Contrast","Fragment","ContentContainer","ConditionalWrapper","condition","wrapper","onKeyDown","MoveFocusInside","VisuallyHidden","_ref2","warnAboutMissingStyles"],"mappings":"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"}
1
+ {"version":3,"file":"modal.esm.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 type=\"button\"\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 { 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 <IconButton\n className=\"eds-drawer__close-button\"\n onClick={onDismiss}\n type=\"button\"\n aria-label={closeLabel}\n >\n <CloseIcon aria-hidden />\n </IconButton>\n <div className=\"eds-drawer__content\">\n <Heading3 as=\"h2\" id={titleId}>\n {title}\n </Heading3>\n {children}\n </div>\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","_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","Modal","_ref$closeLabel","closeLabel","initialFocusRef","onDismiss","_ref$closeOnClickOuts","closeOnClickOutside","showCloseButton","includes","handleOnDismiss","IconButton","onClick","type","CloseIcon","Drawer","_ref$contrast","contrast","_ref$open","style","_ref$overlay","overlay","titleId","handleKeyDown","e","key","stopPropagation","Wrapper","Contrast","Fragment","ContentContainer","ConditionalWrapper","condition","wrapper","onKeyDown","MoveFocusInside","_ref2","warnAboutMissingStyles"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entur/modal",
3
- "version": "1.7.59",
3
+ "version": "1.7.60-beta.0",
4
4
  "license": "EUPL-1.2",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/modal.esm.js",
@@ -28,11 +28,11 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@entur/a11y": "^0.2.95",
31
- "@entur/button": "^3.2.38",
31
+ "@entur/button": "^3.3.0-beta.0",
32
32
  "@entur/icons": "^7.6.0",
33
- "@entur/layout": "^2.3.22",
33
+ "@entur/layout": "^2.4.0-beta.0",
34
34
  "@entur/tokens": "^3.17.5",
35
- "@entur/typography": "^1.8.51",
35
+ "@entur/typography": "^1.9.0-beta.0",
36
36
  "@entur/utils": "^0.12.2",
37
37
  "@reach/dialog": "^0.16.0",
38
38
  "classnames": "^2.3.1",
@@ -41,5 +41,5 @@
41
41
  "devDependencies": {
42
42
  "dts-cli": "2.0.5"
43
43
  },
44
- "gitHead": "1a989376d61ab59a8c554a9cab733039aef8b2eb"
44
+ "gitHead": "6ee621529704e08c9814cda206da98c37a9f0689"
45
45
  }