@entur/alert 0.16.24 → 0.17.0-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.
@@ -88,7 +88,8 @@ var BaseAlertBox = function BaseAlertBox(_ref) {
88
88
  var Icon = iconsMap[variant].icon;
89
89
  return React.createElement("div", _extends({
90
90
  className: classNames('eds-alert-box', "eds-alert-box--" + size, "eds-alert-box--" + variant, {
91
- 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved
91
+ 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved,
92
+ 'eds-alert-box--no-title': !title
92
93
  }, className)
93
94
  }, rest), React.createElement(Icon, {
94
95
  role: "img",
@@ -96,7 +97,6 @@ var BaseAlertBox = function BaseAlertBox(_ref) {
96
97
  "aria-label": iconsMap[variant].description
97
98
  }), React.createElement("div", {
98
99
  className: classNames('eds-alert-box__content', {
99
- 'eds-alert-box__content--no-title': !title,
100
100
  'eds-alert-box__content--no-children': !children
101
101
  })
102
102
  }, title && React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"alert.cjs.development.js","sources":["../src/BaseAlertBox.tsx","../src/BannerAlertBox.tsx","../src/ToastAlertBox.tsx","../src/SmallAlertBox.tsx","../src/ToastProvider.tsx","../src/CopyableText.tsx","../src/ExpandableAlertBox.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport {\n CloseIcon,\n ValidationSuccessIcon,\n ValidationExclamationIcon,\n ValidationInfoIcon,\n ValidationErrorIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\nimport { VariantType } from '@entur/utils';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: ValidationSuccessIcon,\n description: 'Suksessmelding',\n },\n information: { icon: ValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: ValidationExclamationIcon,\n description: 'Varselmelding',\n },\n negative: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n //deprecated\n info: { icon: ValidationInfoIcon, description: 'Infomelding' },\n error: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox: React.FC<BaseAlertBoxProps> = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant].icon;\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n { 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved },\n className,\n )}\n {...rest}\n >\n <Icon\n role=\"img\"\n className=\"eds-alert-box__icon\"\n aria-label={iconsMap[variant].description}\n />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-title': !title,\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n {closable && (\n <Tooltip\n className=\"eds-alert-box__tooltip\"\n aria-hidden\n placement=\"bottom\"\n content=\"Lukk\"\n >\n <IconButton\n data-color-mode=\"light\"\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const BannerAlertBox: React.FC<BannerAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'information' | typeof info;\n [key: string]: any;\n};\n\nexport const ToastAlertBox: React.FC<ToastAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const SmallAlertBox: React.FC<SmallAlertBoxProps> = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastVariants = 'success' | 'information' | typeof info;\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport { VariantType } from '@entur/utils';\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox: React.FC<SmallExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n };\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox: React.FC<BannerExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n };\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox: React.FC<ExpandableAlertBoxProps> = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}) => {\n const [open, setopen] = React.useState(false);\n return (\n <BaseAlertBox\n size={size}\n variant={variant}\n className={classNames('eds-expandable-alert-box', className)}\n title={\n <ExpandableAlertBoxTitle\n open={open}\n title={title}\n onClick={() => setopen(!open)}\n openLabel={openLabel}\n closeLabel={closeLabel}\n />\n }\n {...rest}\n >\n <BaseExpand open={open}>{children}</BaseExpand>\n </BaseAlertBox>\n );\n};\n\ntype ExpandableAlertBoxTitleProps = {\n title: React.ReactNode;\n open: boolean;\n openLabel?: string;\n closeLabel?: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst ExpandableAlertBoxTitle: React.FC<ExpandableAlertBoxTitleProps> = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}) => {\n return (\n <div className=\"eds-expandable-alert-box__title\">\n <div>{title}</div>\n <button\n className=\"eds-expandable-alert-box__button\"\n onClick={onClick}\n type=\"button\"\n >\n {open ? closeLabel : openLabel}\n <ExpandArrow open={open} inline />\n </button>\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('alert', 'icons');\n\nexport { BannerAlertBox } from './BannerAlertBox';\nexport { ToastAlertBox } from './ToastAlertBox';\nexport { SmallAlertBox } from './SmallAlertBox';\nexport { ToastProvider, useToast } from './ToastProvider';\nexport { CopyableText } from './CopyableText';\nexport * from './ExpandableAlertBox';\n"],"names":["iconsMap","success","icon","ValidationSuccessIcon","description","information","ValidationInfoIcon","warning","ValidationExclamationIcon","negative","ValidationErrorIcon","info","error","BaseAlertBox","_ref","children","className","_ref$closable","closable","_ref$closeButtonLabel","closeButtonLabel","variant","_ref$onClose","onClose","size","title","toastIsBeingRemoved","rest","_objectWithoutPropertiesLoose","_excluded","_React$useState","React","useState","isClosed","setClosed","handleClose","Icon","createElement","_extends","classNames","role","Tooltip","placement","content","IconButton","onClick","type","CloseIcon","BannerAlertBox","props","ToastAlertBox","SmallAlertBox","width","EXIT_ANIMATION_TIME","ToastContext","createContext","toastReducer","prevToasts","action","payload","concat","map","toast","id","isBeingRemoved","filter","createUniqueId","Math","random","toString","substring","createToast","ToastProvider","_ref$delay","delay","_ref$position","position","style","_React$useReducer","useReducer","toasts","dispatch","hoveringId","setHovering","timeoutIdRefs","useRef","removeToast","useCallback","window","clearTimeout","current","playExitAnimation","removeToastWithAnimationAfterDelay","setTimeout","addToast","handleMouseEnter","Object","values","forEach","timeoutId","handleMouseLeave","undefined","toastId","contextValue","useMemo","Provider","value","length","slice","toastToShow","onMouseEnter","onMouseLeave","key","useToast","context","useContext","Error","CopyableText","_ref$successHeading","successHeading","successMessage","textToCopy","_ref$ariaLabel","ariaLabel","_useToast","buttonRef","_textToCopy","_successMessage","handleClick","copy","target","tabIndex","PreformattedText","ref","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","_ref2","_ref2$openLabel","_ref2$closeLabel","ExpandArrow","inline","warnAboutMissingStyles"],"mappings":"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"}
1
+ {"version":3,"file":"alert.cjs.development.js","sources":["../src/BaseAlertBox.tsx","../src/BannerAlertBox.tsx","../src/ToastAlertBox.tsx","../src/SmallAlertBox.tsx","../src/ToastProvider.tsx","../src/CopyableText.tsx","../src/ExpandableAlertBox.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport {\n CloseIcon,\n ValidationSuccessIcon,\n ValidationExclamationIcon,\n ValidationInfoIcon,\n ValidationErrorIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\nimport { VariantType } from '@entur/utils';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: ValidationSuccessIcon,\n description: 'Suksessmelding',\n },\n information: { icon: ValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: ValidationExclamationIcon,\n description: 'Varselmelding',\n },\n negative: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n //deprecated\n info: { icon: ValidationInfoIcon, description: 'Infomelding' },\n error: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox: React.FC<BaseAlertBoxProps> = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant].icon;\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n {\n 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved,\n 'eds-alert-box--no-title': !title,\n },\n className,\n )}\n {...rest}\n >\n <Icon\n role=\"img\"\n className=\"eds-alert-box__icon\"\n aria-label={iconsMap[variant].description}\n />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n {closable && (\n <Tooltip\n className=\"eds-alert-box__tooltip\"\n aria-hidden\n placement=\"bottom\"\n content=\"Lukk\"\n >\n <IconButton\n data-color-mode=\"light\"\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const BannerAlertBox: React.FC<BannerAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'information' | typeof info;\n [key: string]: any;\n};\n\nexport const ToastAlertBox: React.FC<ToastAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const SmallAlertBox: React.FC<SmallAlertBoxProps> = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastVariants = 'success' | 'information' | typeof info;\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport { VariantType } from '@entur/utils';\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox: React.FC<SmallExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n };\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox: React.FC<BannerExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n };\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox: React.FC<ExpandableAlertBoxProps> = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}) => {\n const [open, setopen] = React.useState(false);\n return (\n <BaseAlertBox\n size={size}\n variant={variant}\n className={classNames('eds-expandable-alert-box', className)}\n title={\n <ExpandableAlertBoxTitle\n open={open}\n title={title}\n onClick={() => setopen(!open)}\n openLabel={openLabel}\n closeLabel={closeLabel}\n />\n }\n {...rest}\n >\n <BaseExpand open={open}>{children}</BaseExpand>\n </BaseAlertBox>\n );\n};\n\ntype ExpandableAlertBoxTitleProps = {\n title: React.ReactNode;\n open: boolean;\n openLabel?: string;\n closeLabel?: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst ExpandableAlertBoxTitle: React.FC<ExpandableAlertBoxTitleProps> = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}) => {\n return (\n <div className=\"eds-expandable-alert-box__title\">\n <div>{title}</div>\n <button\n className=\"eds-expandable-alert-box__button\"\n onClick={onClick}\n type=\"button\"\n >\n {open ? closeLabel : openLabel}\n <ExpandArrow open={open} inline />\n </button>\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('alert', 'icons');\n\nexport { BannerAlertBox } from './BannerAlertBox';\nexport { ToastAlertBox } from './ToastAlertBox';\nexport { SmallAlertBox } from './SmallAlertBox';\nexport { ToastProvider, useToast } from './ToastProvider';\nexport { CopyableText } from './CopyableText';\nexport * from './ExpandableAlertBox';\n"],"names":["iconsMap","success","icon","ValidationSuccessIcon","description","information","ValidationInfoIcon","warning","ValidationExclamationIcon","negative","ValidationErrorIcon","info","error","BaseAlertBox","_ref","children","className","_ref$closable","closable","_ref$closeButtonLabel","closeButtonLabel","variant","_ref$onClose","onClose","size","title","toastIsBeingRemoved","rest","_objectWithoutPropertiesLoose","_excluded","_React$useState","React","useState","isClosed","setClosed","handleClose","Icon","createElement","_extends","classNames","role","Tooltip","placement","content","IconButton","onClick","type","CloseIcon","BannerAlertBox","props","ToastAlertBox","SmallAlertBox","width","EXIT_ANIMATION_TIME","ToastContext","createContext","toastReducer","prevToasts","action","payload","concat","map","toast","id","isBeingRemoved","filter","createUniqueId","Math","random","toString","substring","createToast","ToastProvider","_ref$delay","delay","_ref$position","position","style","_React$useReducer","useReducer","toasts","dispatch","hoveringId","setHovering","timeoutIdRefs","useRef","removeToast","useCallback","window","clearTimeout","current","playExitAnimation","removeToastWithAnimationAfterDelay","setTimeout","addToast","handleMouseEnter","Object","values","forEach","timeoutId","handleMouseLeave","undefined","toastId","contextValue","useMemo","Provider","value","length","slice","toastToShow","onMouseEnter","onMouseLeave","key","useToast","context","useContext","Error","CopyableText","_ref$successHeading","successHeading","successMessage","textToCopy","_ref$ariaLabel","ariaLabel","_useToast","buttonRef","_textToCopy","_successMessage","handleClick","copy","target","tabIndex","PreformattedText","ref","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","_ref2","_ref2$openLabel","_ref2$closeLabel","ExpandArrow","inline","warnAboutMissingStyles"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),n=require("classnames"),a=require("@entur/icons"),o=require("@entur/button"),r=require("@entur/tooltip"),l=require("copy-text-to-clipboard"),i=require("@entur/typography"),s=require("@entur/expand/");function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},c.apply(null,arguments)}function u(e,t){if(null==e)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.includes(a))continue;n[a]=e[a]}return n}var d=["children","className","closable","closeButtonLabel","variant","onClose","size","title","toastIsBeingRemoved"],m={success:{icon:a.ValidationSuccessIcon,description:"Suksessmelding"},information:{icon:a.ValidationInfoIcon,description:"Infomelding"},warning:{icon:a.ValidationExclamationIcon,description:"Varselmelding"},negative:{icon:a.ValidationErrorIcon,description:"Feilmelding"},info:{icon:a.ValidationInfoIcon,description:"Infomelding"},error:{icon:a.ValidationErrorIcon,description:"Feilmelding"}},p=function(e){var l=e.children,i=e.className,s=e.closable,p=void 0!==s&&s,b=e.closeButtonLabel,v=void 0===b?"Lukk":b,f=e.variant,x=e.onClose,E=void 0===x?function(){return{}}:x,y=e.size,_=e.title,g=e.toastIsBeingRemoved,T=u(e,d),N=t.useState(!1),h=N[1];if(N[0])return null;var I=m[f].icon;return t.createElement("div",c({className:n("eds-alert-box","eds-alert-box--"+y,"eds-alert-box--"+f,{"eds-alert-box--toast--exit-animation":g},i)},T),t.createElement(I,{role:"img",className:"eds-alert-box__icon","aria-label":m[f].description}),t.createElement("div",{className:n("eds-alert-box__content",{"eds-alert-box__content--no-title":!_,"eds-alert-box__content--no-children":!l})},_&&t.createElement("div",{className:"eds-alert-box__title"},_),l&&l),p&&t.createElement(r.Tooltip,{className:"eds-alert-box__tooltip","aria-hidden":!0,placement:"bottom",content:"Lukk"},t.createElement(o.IconButton,{"data-color-mode":"light",className:"eds-alert-box__close-button","aria-label":v,onClick:function(){h(!0),E()},type:"button"},t.createElement(a.CloseIcon,null))))},b=function(e){return t.createElement(p,c({},e,{size:"toast",role:"status"}))},v=["className","width","onClose","closable","closeButtonLabel"],f=t.createContext(null),x=function(e,t){switch(t.type){case"ADD_TOAST":return[t.payload].concat(e);case"PLAY_EXIT_ANIMATION":return e.map((function(e){return e.id===t.payload?c({},e,{isBeingRemoved:!0}):e}));case"REMOVE_TOAST":return e.filter((function(e){return e.id!==t.payload}))}},E=function(){var e=t.useContext(f);if(!e)throw new Error("You need to wrap your component in a ToastProvider component in order to use the useToast hook");return{addToast:e.addToast}},y=["children","successHeading","successMessage","textToCopy","className","aria-label"],_=["variant","title","children","size","className","openLabel","closeLabel"],g=function(e){var a=e.variant,o=e.title,r=e.children,l=e.size,i=e.className,d=e.openLabel,m=e.closeLabel,b=u(e,_),v=t.useState(!1),f=v[0],x=v[1];return t.createElement(p,c({size:l,variant:a,className:n("eds-expandable-alert-box",i),title:t.createElement(T,{open:f,title:o,onClick:function(){return x(!f)},openLabel:d,closeLabel:m})},b),t.createElement(s.BaseExpand,{open:f},r))},T=function(e){var n=e.open,a=e.openLabel,o=void 0===a?"Les mer":a,r=e.closeLabel,l=void 0===r?"Lukk":r,i=e.onClick;return t.createElement("div",{className:"eds-expandable-alert-box__title"},t.createElement("div",null,e.title),t.createElement("button",{className:"eds-expandable-alert-box__button",onClick:i,type:"button"},n?l:o,t.createElement(s.ExpandArrow,{open:n,inline:!0})))};e.warnAboutMissingStyles("alert","icons"),exports.BannerAlertBox=function(e){return t.createElement(p,c({},e,{size:"banner"}))},exports.BannerExpandableAlertBox=function(e){return t.createElement(g,c({size:"banner"},e))},exports.CopyableText=function(e){var n=e.children,r=e.successHeading,s=void 0===r?"Kopiert!":r,d=e.successMessage,m=e.textToCopy,p=e.className,b=e["aria-label"],v=void 0===b?"Kopier "+(null!=m?m:n)+" til utklippstavlen":b,f=u(e,y),x=E().addToast,_=t.useRef(null),g=null!=m?m:n,T=null!=d?d:g+" ble kopiert til utklippstavlen.";return t.createElement("div",c({className:"eds-copyable-text "+p,style:c({},f.style),type:"button",onClick:function(){_.current&&l(g,{target:_.current})&&x({title:s,content:T})},tabIndex:-1,"aria-label":""},f),t.createElement(i.PreformattedText,{className:"eds-copyable-text__preformatted-text"},t.createElement("span",{className:"eds-copyable-text__displayed-text"},n),t.createElement(o.IconButton,{className:"eds-copyable-text__button","aria-label":v,type:"button",ref:_},t.createElement(a.CopyIcon,{className:"eds-copyable-text__button__icon"}))))},exports.SmallAlertBox=function(e){var a=e.className,o=e.width,r=e.onClose,l=e.closable,i=void 0!==l&&l,s=e.closeButtonLabel,d=u(e,v);return t.createElement(p,c({className:n(a,{"eds-alert-box--fit-content":"fit-content"===o})},d,{onClose:r,closable:i,closeButtonLabel:s,size:"small"}))},exports.SmallExpandableAlertBox=function(e){return t.createElement(g,c({size:"small"},e))},exports.ToastAlertBox=b,exports.ToastProvider=function(e){var a=e.delay,o=void 0===a?6e3:a,r=e.children,l=e.position,i=void 0===l?"bottom-right":l,s=e.className,u=e.style,d=t.useReducer(x,[]),m=d[0],p=d[1],v=t.useState(),E=v[0],y=v[1],_=t.useRef({}),g=t.useCallback((function(e){window.clearTimeout(_.current[e]),p({type:"REMOVE_TOAST",payload:e}),delete _.current[e]}),[]),T=t.useCallback((function(e){window.clearTimeout(_.current[e+"animation"]),p({type:"PLAY_EXIT_ANIMATION",payload:e}),delete _.current[e+"animation"]}),[]),N=t.useCallback((function(e,t){_.current[e+"animation"]=window.setTimeout((function(){return T(e)}),t-400),_.current[e]=window.setTimeout((function(){return g(e)}),t)}),[_,T,g]),h=t.useCallback((function(e){var t=Math.random().toString().substring(2),n=function(e,t){return"string"==typeof e?{id:t,content:e,variant:"success",isBeingRemoved:!1}:c({id:t,variant:"success",isBeingRemoved:!1},e)}(e,t);p({type:"ADD_TOAST",payload:n}),N(t,o)}),[o,N]),I=function(){y(void 0),m.forEach((function(e){N(e.id,o)}))},B=t.useMemo((function(){return{toasts:m,addToast:h,removeToast:g}}),[h,g,m]);return t.createElement(f.Provider,{value:B},m.length>0&&t.createElement("div",{className:n("eds-toast-container","eds-toast-container--"+i,s),style:u},m.slice(0,3).map((function(e){return t.createElement(b,{variant:e.variant,title:e.title,onClose:(a=e.id,function(){g(a),I()}),onMouseEnter:(n=e,function(){n.isBeingRemoved||(y(n.id),Object.values(_.current).forEach((function(e){window.clearTimeout(e)})),_.current={})}),onMouseLeave:I,closable:E===e.id,toastIsBeingRemoved:e.isBeingRemoved,key:e.id},e.content);var n,a}))),r)},exports.useToast=E;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),n=require("classnames"),a=require("@entur/icons"),o=require("@entur/button"),r=require("@entur/tooltip"),l=require("copy-text-to-clipboard"),i=require("@entur/typography"),s=require("@entur/expand/");function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},c.apply(null,arguments)}function u(e,t){if(null==e)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.includes(a))continue;n[a]=e[a]}return n}var d=["children","className","closable","closeButtonLabel","variant","onClose","size","title","toastIsBeingRemoved"],m={success:{icon:a.ValidationSuccessIcon,description:"Suksessmelding"},information:{icon:a.ValidationInfoIcon,description:"Infomelding"},warning:{icon:a.ValidationExclamationIcon,description:"Varselmelding"},negative:{icon:a.ValidationErrorIcon,description:"Feilmelding"},info:{icon:a.ValidationInfoIcon,description:"Infomelding"},error:{icon:a.ValidationErrorIcon,description:"Feilmelding"}},p=function(e){var l=e.children,i=e.className,s=e.closable,p=void 0!==s&&s,b=e.closeButtonLabel,v=void 0===b?"Lukk":b,f=e.variant,x=e.onClose,E=void 0===x?function(){return{}}:x,y=e.size,_=e.title,g=e.toastIsBeingRemoved,T=u(e,d),N=t.useState(!1),h=N[1];if(N[0])return null;var I=m[f].icon;return t.createElement("div",c({className:n("eds-alert-box","eds-alert-box--"+y,"eds-alert-box--"+f,{"eds-alert-box--toast--exit-animation":g,"eds-alert-box--no-title":!_},i)},T),t.createElement(I,{role:"img",className:"eds-alert-box__icon","aria-label":m[f].description}),t.createElement("div",{className:n("eds-alert-box__content",{"eds-alert-box__content--no-children":!l})},_&&t.createElement("div",{className:"eds-alert-box__title"},_),l&&l),p&&t.createElement(r.Tooltip,{className:"eds-alert-box__tooltip","aria-hidden":!0,placement:"bottom",content:"Lukk"},t.createElement(o.IconButton,{"data-color-mode":"light",className:"eds-alert-box__close-button","aria-label":v,onClick:function(){h(!0),E()},type:"button"},t.createElement(a.CloseIcon,null))))},b=function(e){return t.createElement(p,c({},e,{size:"toast",role:"status"}))},v=["className","width","onClose","closable","closeButtonLabel"],f=t.createContext(null),x=function(e,t){switch(t.type){case"ADD_TOAST":return[t.payload].concat(e);case"PLAY_EXIT_ANIMATION":return e.map((function(e){return e.id===t.payload?c({},e,{isBeingRemoved:!0}):e}));case"REMOVE_TOAST":return e.filter((function(e){return e.id!==t.payload}))}},E=function(){var e=t.useContext(f);if(!e)throw new Error("You need to wrap your component in a ToastProvider component in order to use the useToast hook");return{addToast:e.addToast}},y=["children","successHeading","successMessage","textToCopy","className","aria-label"],_=["variant","title","children","size","className","openLabel","closeLabel"],g=function(e){var a=e.variant,o=e.title,r=e.children,l=e.size,i=e.className,d=e.openLabel,m=e.closeLabel,b=u(e,_),v=t.useState(!1),f=v[0],x=v[1];return t.createElement(p,c({size:l,variant:a,className:n("eds-expandable-alert-box",i),title:t.createElement(T,{open:f,title:o,onClick:function(){return x(!f)},openLabel:d,closeLabel:m})},b),t.createElement(s.BaseExpand,{open:f},r))},T=function(e){var n=e.open,a=e.openLabel,o=void 0===a?"Les mer":a,r=e.closeLabel,l=void 0===r?"Lukk":r,i=e.onClick;return t.createElement("div",{className:"eds-expandable-alert-box__title"},t.createElement("div",null,e.title),t.createElement("button",{className:"eds-expandable-alert-box__button",onClick:i,type:"button"},n?l:o,t.createElement(s.ExpandArrow,{open:n,inline:!0})))};e.warnAboutMissingStyles("alert","icons"),exports.BannerAlertBox=function(e){return t.createElement(p,c({},e,{size:"banner"}))},exports.BannerExpandableAlertBox=function(e){return t.createElement(g,c({size:"banner"},e))},exports.CopyableText=function(e){var n=e.children,r=e.successHeading,s=void 0===r?"Kopiert!":r,d=e.successMessage,m=e.textToCopy,p=e.className,b=e["aria-label"],v=void 0===b?"Kopier "+(null!=m?m:n)+" til utklippstavlen":b,f=u(e,y),x=E().addToast,_=t.useRef(null),g=null!=m?m:n,T=null!=d?d:g+" ble kopiert til utklippstavlen.";return t.createElement("div",c({className:"eds-copyable-text "+p,style:c({},f.style),type:"button",onClick:function(){_.current&&l(g,{target:_.current})&&x({title:s,content:T})},tabIndex:-1,"aria-label":""},f),t.createElement(i.PreformattedText,{className:"eds-copyable-text__preformatted-text"},t.createElement("span",{className:"eds-copyable-text__displayed-text"},n),t.createElement(o.IconButton,{className:"eds-copyable-text__button","aria-label":v,type:"button",ref:_},t.createElement(a.CopyIcon,{className:"eds-copyable-text__button__icon"}))))},exports.SmallAlertBox=function(e){var a=e.className,o=e.width,r=e.onClose,l=e.closable,i=void 0!==l&&l,s=e.closeButtonLabel,d=u(e,v);return t.createElement(p,c({className:n(a,{"eds-alert-box--fit-content":"fit-content"===o})},d,{onClose:r,closable:i,closeButtonLabel:s,size:"small"}))},exports.SmallExpandableAlertBox=function(e){return t.createElement(g,c({size:"small"},e))},exports.ToastAlertBox=b,exports.ToastProvider=function(e){var a=e.delay,o=void 0===a?6e3:a,r=e.children,l=e.position,i=void 0===l?"bottom-right":l,s=e.className,u=e.style,d=t.useReducer(x,[]),m=d[0],p=d[1],v=t.useState(),E=v[0],y=v[1],_=t.useRef({}),g=t.useCallback((function(e){window.clearTimeout(_.current[e]),p({type:"REMOVE_TOAST",payload:e}),delete _.current[e]}),[]),T=t.useCallback((function(e){window.clearTimeout(_.current[e+"animation"]),p({type:"PLAY_EXIT_ANIMATION",payload:e}),delete _.current[e+"animation"]}),[]),N=t.useCallback((function(e,t){_.current[e+"animation"]=window.setTimeout((function(){return T(e)}),t-400),_.current[e]=window.setTimeout((function(){return g(e)}),t)}),[_,T,g]),h=t.useCallback((function(e){var t=Math.random().toString().substring(2),n=function(e,t){return"string"==typeof e?{id:t,content:e,variant:"success",isBeingRemoved:!1}:c({id:t,variant:"success",isBeingRemoved:!1},e)}(e,t);p({type:"ADD_TOAST",payload:n}),N(t,o)}),[o,N]),I=function(){y(void 0),m.forEach((function(e){N(e.id,o)}))},B=t.useMemo((function(){return{toasts:m,addToast:h,removeToast:g}}),[h,g,m]);return t.createElement(f.Provider,{value:B},m.length>0&&t.createElement("div",{className:n("eds-toast-container","eds-toast-container--"+i,s),style:u},m.slice(0,3).map((function(e){return t.createElement(b,{variant:e.variant,title:e.title,onClose:(a=e.id,function(){g(a),I()}),onMouseEnter:(n=e,function(){n.isBeingRemoved||(y(n.id),Object.values(_.current).forEach((function(e){window.clearTimeout(e)})),_.current={})}),onMouseLeave:I,closable:E===e.id,toastIsBeingRemoved:e.isBeingRemoved,key:e.id},e.content);var n,a}))),r)},exports.useToast=E;
2
2
  //# sourceMappingURL=alert.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.cjs.production.min.js","sources":["../src/BaseAlertBox.tsx","../src/ToastAlertBox.tsx","../src/ToastProvider.tsx","../src/ExpandableAlertBox.tsx","../src/index.tsx","../src/BannerAlertBox.tsx","../src/CopyableText.tsx","../src/SmallAlertBox.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport {\n CloseIcon,\n ValidationSuccessIcon,\n ValidationExclamationIcon,\n ValidationInfoIcon,\n ValidationErrorIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\nimport { VariantType } from '@entur/utils';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: ValidationSuccessIcon,\n description: 'Suksessmelding',\n },\n information: { icon: ValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: ValidationExclamationIcon,\n description: 'Varselmelding',\n },\n negative: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n //deprecated\n info: { icon: ValidationInfoIcon, description: 'Infomelding' },\n error: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox: React.FC<BaseAlertBoxProps> = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant].icon;\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n { 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved },\n className,\n )}\n {...rest}\n >\n <Icon\n role=\"img\"\n className=\"eds-alert-box__icon\"\n aria-label={iconsMap[variant].description}\n />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-title': !title,\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n {closable && (\n <Tooltip\n className=\"eds-alert-box__tooltip\"\n aria-hidden\n placement=\"bottom\"\n content=\"Lukk\"\n >\n <IconButton\n data-color-mode=\"light\"\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'information' | typeof info;\n [key: string]: any;\n};\n\nexport const ToastAlertBox: React.FC<ToastAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastVariants = 'success' | 'information' | typeof info;\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport { VariantType } from '@entur/utils';\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox: React.FC<SmallExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n };\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox: React.FC<BannerExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n };\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox: React.FC<ExpandableAlertBoxProps> = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}) => {\n const [open, setopen] = React.useState(false);\n return (\n <BaseAlertBox\n size={size}\n variant={variant}\n className={classNames('eds-expandable-alert-box', className)}\n title={\n <ExpandableAlertBoxTitle\n open={open}\n title={title}\n onClick={() => setopen(!open)}\n openLabel={openLabel}\n closeLabel={closeLabel}\n />\n }\n {...rest}\n >\n <BaseExpand open={open}>{children}</BaseExpand>\n </BaseAlertBox>\n );\n};\n\ntype ExpandableAlertBoxTitleProps = {\n title: React.ReactNode;\n open: boolean;\n openLabel?: string;\n closeLabel?: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst ExpandableAlertBoxTitle: React.FC<ExpandableAlertBoxTitleProps> = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}) => {\n return (\n <div className=\"eds-expandable-alert-box__title\">\n <div>{title}</div>\n <button\n className=\"eds-expandable-alert-box__button\"\n onClick={onClick}\n type=\"button\"\n >\n {open ? closeLabel : openLabel}\n <ExpandArrow open={open} inline />\n </button>\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('alert', 'icons');\n\nexport { BannerAlertBox } from './BannerAlertBox';\nexport { ToastAlertBox } from './ToastAlertBox';\nexport { SmallAlertBox } from './SmallAlertBox';\nexport { ToastProvider, useToast } from './ToastProvider';\nexport { CopyableText } from './CopyableText';\nexport * from './ExpandableAlertBox';\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const BannerAlertBox: React.FC<BannerAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const SmallAlertBox: React.FC<SmallAlertBoxProps> = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n"],"names":["iconsMap","success","icon","ValidationSuccessIcon","description","information","ValidationInfoIcon","warning","ValidationExclamationIcon","negative","ValidationErrorIcon","info","error","BaseAlertBox","_ref","children","className","_ref$closable","closable","_ref$closeButtonLabel","closeButtonLabel","variant","_ref$onClose","onClose","size","title","toastIsBeingRemoved","rest","_objectWithoutPropertiesLoose","_excluded","_React$useState","React","useState","setClosed","Icon","createElement","_extends","classNames","role","Tooltip","placement","content","IconButton","onClick","type","CloseIcon","ToastAlertBox","props","ToastContext","createContext","toastReducer","prevToasts","action","payload","concat","map","toast","id","isBeingRemoved","filter","useToast","context","useContext","Error","addToast","ExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","_ref2","_ref2$openLabel","_ref2$closeLabel","ExpandArrow","inline","warnAboutMissingStyles","_ref$successHeading","successHeading","successMessage","textToCopy","_ref$ariaLabel","ariaLabel","buttonRef","useRef","_textToCopy","_successMessage","style","current","copy","target","tabIndex","PreformattedText","ref","CopyIcon","width","_ref$delay","delay","_ref$position","position","_React$useReducer","useReducer","toasts","dispatch","hoveringId","setHovering","timeoutIdRefs","removeToast","useCallback","window","clearTimeout","playExitAnimation","removeToastWithAnimationAfterDelay","setTimeout","Math","random","toString","substring","createToast","handleMouseLeave","undefined","forEach","contextValue","useMemo","Provider","value","length","slice","toastToShow","toastId","onMouseEnter","Object","values","timeoutId","onMouseLeave","key"],"mappings":"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"}
1
+ {"version":3,"file":"alert.cjs.production.min.js","sources":["../src/BaseAlertBox.tsx","../src/ToastAlertBox.tsx","../src/ToastProvider.tsx","../src/ExpandableAlertBox.tsx","../src/index.tsx","../src/BannerAlertBox.tsx","../src/CopyableText.tsx","../src/SmallAlertBox.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport {\n CloseIcon,\n ValidationSuccessIcon,\n ValidationExclamationIcon,\n ValidationInfoIcon,\n ValidationErrorIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\nimport { VariantType } from '@entur/utils';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: ValidationSuccessIcon,\n description: 'Suksessmelding',\n },\n information: { icon: ValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: ValidationExclamationIcon,\n description: 'Varselmelding',\n },\n negative: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n //deprecated\n info: { icon: ValidationInfoIcon, description: 'Infomelding' },\n error: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox: React.FC<BaseAlertBoxProps> = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant].icon;\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n {\n 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved,\n 'eds-alert-box--no-title': !title,\n },\n className,\n )}\n {...rest}\n >\n <Icon\n role=\"img\"\n className=\"eds-alert-box__icon\"\n aria-label={iconsMap[variant].description}\n />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n {closable && (\n <Tooltip\n className=\"eds-alert-box__tooltip\"\n aria-hidden\n placement=\"bottom\"\n content=\"Lukk\"\n >\n <IconButton\n data-color-mode=\"light\"\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'information' | typeof info;\n [key: string]: any;\n};\n\nexport const ToastAlertBox: React.FC<ToastAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastVariants = 'success' | 'information' | typeof info;\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport { VariantType } from '@entur/utils';\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox: React.FC<SmallExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n };\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox: React.FC<BannerExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n };\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox: React.FC<ExpandableAlertBoxProps> = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}) => {\n const [open, setopen] = React.useState(false);\n return (\n <BaseAlertBox\n size={size}\n variant={variant}\n className={classNames('eds-expandable-alert-box', className)}\n title={\n <ExpandableAlertBoxTitle\n open={open}\n title={title}\n onClick={() => setopen(!open)}\n openLabel={openLabel}\n closeLabel={closeLabel}\n />\n }\n {...rest}\n >\n <BaseExpand open={open}>{children}</BaseExpand>\n </BaseAlertBox>\n );\n};\n\ntype ExpandableAlertBoxTitleProps = {\n title: React.ReactNode;\n open: boolean;\n openLabel?: string;\n closeLabel?: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst ExpandableAlertBoxTitle: React.FC<ExpandableAlertBoxTitleProps> = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}) => {\n return (\n <div className=\"eds-expandable-alert-box__title\">\n <div>{title}</div>\n <button\n className=\"eds-expandable-alert-box__button\"\n onClick={onClick}\n type=\"button\"\n >\n {open ? closeLabel : openLabel}\n <ExpandArrow open={open} inline />\n </button>\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('alert', 'icons');\n\nexport { BannerAlertBox } from './BannerAlertBox';\nexport { ToastAlertBox } from './ToastAlertBox';\nexport { SmallAlertBox } from './SmallAlertBox';\nexport { ToastProvider, useToast } from './ToastProvider';\nexport { CopyableText } from './CopyableText';\nexport * from './ExpandableAlertBox';\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const BannerAlertBox: React.FC<BannerAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const SmallAlertBox: React.FC<SmallAlertBoxProps> = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n"],"names":["iconsMap","success","icon","ValidationSuccessIcon","description","information","ValidationInfoIcon","warning","ValidationExclamationIcon","negative","ValidationErrorIcon","info","error","BaseAlertBox","_ref","children","className","_ref$closable","closable","_ref$closeButtonLabel","closeButtonLabel","variant","_ref$onClose","onClose","size","title","toastIsBeingRemoved","rest","_objectWithoutPropertiesLoose","_excluded","_React$useState","React","useState","setClosed","Icon","createElement","_extends","classNames","role","Tooltip","placement","content","IconButton","onClick","type","CloseIcon","ToastAlertBox","props","ToastContext","createContext","toastReducer","prevToasts","action","payload","concat","map","toast","id","isBeingRemoved","filter","useToast","context","useContext","Error","addToast","ExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","_ref2","_ref2$openLabel","_ref2$closeLabel","ExpandArrow","inline","warnAboutMissingStyles","_ref$successHeading","successHeading","successMessage","textToCopy","_ref$ariaLabel","ariaLabel","buttonRef","useRef","_textToCopy","_successMessage","style","current","copy","target","tabIndex","PreformattedText","ref","CopyIcon","width","_ref$delay","delay","_ref$position","position","_React$useReducer","useReducer","toasts","dispatch","hoveringId","setHovering","timeoutIdRefs","removeToast","useCallback","window","clearTimeout","playExitAnimation","removeToastWithAnimationAfterDelay","setTimeout","Math","random","toString","substring","createToast","handleMouseLeave","undefined","forEach","contextValue","useMemo","Provider","value","length","slice","toastToShow","toastId","onMouseEnter","Object","values","timeoutId","onMouseLeave","key"],"mappings":"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"}
package/dist/alert.esm.js CHANGED
@@ -84,7 +84,8 @@ var BaseAlertBox = function BaseAlertBox(_ref) {
84
84
  var Icon = iconsMap[variant].icon;
85
85
  return React.createElement("div", _extends({
86
86
  className: classNames('eds-alert-box', "eds-alert-box--" + size, "eds-alert-box--" + variant, {
87
- 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved
87
+ 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved,
88
+ 'eds-alert-box--no-title': !title
88
89
  }, className)
89
90
  }, rest), React.createElement(Icon, {
90
91
  role: "img",
@@ -92,7 +93,6 @@ var BaseAlertBox = function BaseAlertBox(_ref) {
92
93
  "aria-label": iconsMap[variant].description
93
94
  }), React.createElement("div", {
94
95
  className: classNames('eds-alert-box__content', {
95
- 'eds-alert-box__content--no-title': !title,
96
96
  'eds-alert-box__content--no-children': !children
97
97
  })
98
98
  }, title && React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"alert.esm.js","sources":["../src/BaseAlertBox.tsx","../src/BannerAlertBox.tsx","../src/ToastAlertBox.tsx","../src/SmallAlertBox.tsx","../src/ToastProvider.tsx","../src/CopyableText.tsx","../src/ExpandableAlertBox.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport {\n CloseIcon,\n ValidationSuccessIcon,\n ValidationExclamationIcon,\n ValidationInfoIcon,\n ValidationErrorIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\nimport { VariantType } from '@entur/utils';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: ValidationSuccessIcon,\n description: 'Suksessmelding',\n },\n information: { icon: ValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: ValidationExclamationIcon,\n description: 'Varselmelding',\n },\n negative: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n //deprecated\n info: { icon: ValidationInfoIcon, description: 'Infomelding' },\n error: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox: React.FC<BaseAlertBoxProps> = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant].icon;\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n { 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved },\n className,\n )}\n {...rest}\n >\n <Icon\n role=\"img\"\n className=\"eds-alert-box__icon\"\n aria-label={iconsMap[variant].description}\n />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-title': !title,\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n {closable && (\n <Tooltip\n className=\"eds-alert-box__tooltip\"\n aria-hidden\n placement=\"bottom\"\n content=\"Lukk\"\n >\n <IconButton\n data-color-mode=\"light\"\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const BannerAlertBox: React.FC<BannerAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'information' | typeof info;\n [key: string]: any;\n};\n\nexport const ToastAlertBox: React.FC<ToastAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const SmallAlertBox: React.FC<SmallAlertBoxProps> = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastVariants = 'success' | 'information' | typeof info;\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport { VariantType } from '@entur/utils';\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox: React.FC<SmallExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n };\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox: React.FC<BannerExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n };\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox: React.FC<ExpandableAlertBoxProps> = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}) => {\n const [open, setopen] = React.useState(false);\n return (\n <BaseAlertBox\n size={size}\n variant={variant}\n className={classNames('eds-expandable-alert-box', className)}\n title={\n <ExpandableAlertBoxTitle\n open={open}\n title={title}\n onClick={() => setopen(!open)}\n openLabel={openLabel}\n closeLabel={closeLabel}\n />\n }\n {...rest}\n >\n <BaseExpand open={open}>{children}</BaseExpand>\n </BaseAlertBox>\n );\n};\n\ntype ExpandableAlertBoxTitleProps = {\n title: React.ReactNode;\n open: boolean;\n openLabel?: string;\n closeLabel?: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst ExpandableAlertBoxTitle: React.FC<ExpandableAlertBoxTitleProps> = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}) => {\n return (\n <div className=\"eds-expandable-alert-box__title\">\n <div>{title}</div>\n <button\n className=\"eds-expandable-alert-box__button\"\n onClick={onClick}\n type=\"button\"\n >\n {open ? closeLabel : openLabel}\n <ExpandArrow open={open} inline />\n </button>\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('alert', 'icons');\n\nexport { BannerAlertBox } from './BannerAlertBox';\nexport { ToastAlertBox } from './ToastAlertBox';\nexport { SmallAlertBox } from './SmallAlertBox';\nexport { ToastProvider, useToast } from './ToastProvider';\nexport { CopyableText } from './CopyableText';\nexport * from './ExpandableAlertBox';\n"],"names":["iconsMap","success","icon","ValidationSuccessIcon","description","information","ValidationInfoIcon","warning","ValidationExclamationIcon","negative","ValidationErrorIcon","info","error","BaseAlertBox","_ref","children","className","_ref$closable","closable","_ref$closeButtonLabel","closeButtonLabel","variant","_ref$onClose","onClose","size","title","toastIsBeingRemoved","rest","_objectWithoutPropertiesLoose","_excluded","_React$useState","React","useState","isClosed","setClosed","handleClose","Icon","createElement","_extends","classNames","role","Tooltip","placement","content","IconButton","onClick","type","CloseIcon","BannerAlertBox","props","ToastAlertBox","SmallAlertBox","width","EXIT_ANIMATION_TIME","ToastContext","createContext","toastReducer","prevToasts","action","payload","concat","map","toast","id","isBeingRemoved","filter","createUniqueId","Math","random","toString","substring","createToast","ToastProvider","_ref$delay","delay","_ref$position","position","style","_React$useReducer","useReducer","toasts","dispatch","hoveringId","setHovering","timeoutIdRefs","useRef","removeToast","useCallback","window","clearTimeout","current","playExitAnimation","removeToastWithAnimationAfterDelay","setTimeout","addToast","handleMouseEnter","Object","values","forEach","timeoutId","handleMouseLeave","undefined","toastId","contextValue","useMemo","Provider","value","length","slice","toastToShow","onMouseEnter","onMouseLeave","key","useToast","context","useContext","Error","CopyableText","_ref$successHeading","successHeading","successMessage","textToCopy","_ref$ariaLabel","ariaLabel","_useToast","buttonRef","_textToCopy","_successMessage","handleClick","copy","target","tabIndex","PreformattedText","ref","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","_ref2","_ref2$openLabel","_ref2$closeLabel","ExpandArrow","inline","warnAboutMissingStyles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAMA,QAAQ,GAAG;AACfC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAEC,qBAAqB;AAC3BC,IAAAA,WAAW,EAAE,gBAAA;GACd;AACDC,EAAAA,WAAW,EAAE;AAAEH,IAAAA,IAAI,EAAEI,kBAAkB;AAAEF,IAAAA,WAAW,EAAE,aAAA;GAAe;AACrEG,EAAAA,OAAO,EAAE;AACPL,IAAAA,IAAI,EAAEM,yBAAyB;AAC/BJ,IAAAA,WAAW,EAAE,eAAA;GACd;AACDK,EAAAA,QAAQ,EAAE;AAAEP,IAAAA,IAAI,EAAEQ,mBAAmB;AAAEN,IAAAA,WAAW,EAAE,aAAA;GAAe;AACnE;AACAO,EAAAA,IAAI,EAAE;AAAET,IAAAA,IAAI,EAAEI,kBAAkB;AAAEF,IAAAA,WAAW,EAAE,aAAA;GAAe;AAC9DQ,EAAAA,KAAK,EAAE;AAAEV,IAAAA,IAAI,EAAEQ,mBAAmB;AAAEN,IAAAA,WAAW,EAAE,aAAA;AAAe,GAAA;CACjE,CAAA;AAiCM,IAAMS,YAAY,GAAgC,SAA5CA,YAAYA,CAAAC,IAAA,EAWpB;AAAA,EAAA,IAVHC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAAC,aAAA,GAAAH,IAAA,CACTI,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IAAAE,qBAAA,GAAAL,IAAA,CAChBM,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,qBAAA;IACzBE,OAAO,GAAAP,IAAA,CAAPO,OAAO;IAAAC,YAAA,GAAAR,IAAA,CACPS,OAAO;IAAPA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,YAAA;AAAA,MAAA,OAAO,EAAE,CAAA;AAAA,KAAC,GAAAA,YAAA;IACpBE,IAAI,GAAAV,IAAA,CAAJU,IAAI;IACJC,KAAK,GAAAX,IAAA,CAALW,KAAK;IACLC,mBAAmB,GAAAZ,IAAA,CAAnBY,mBAAmB;AAChBC,IAAAA,IAAI,GAAAC,6BAAA,CAAAd,IAAA,EAAAe,WAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,eAAA,GAA8BC,KAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;AAA5CC,IAAAA,QAAQ,GAAAH,eAAA,CAAA,CAAA,CAAA;AAAEI,IAAAA,SAAS,GAAAJ,eAAA,CAAA,CAAA,CAAA,CAAA;AAC1B,EAAA,IAAIG,QAAQ,EAAE;AACZ,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,IAAME,WAAW,GAAG,SAAdA,WAAWA,GAAQ;IACvBD,SAAS,CAAC,IAAI,CAAC,CAAA;AACfX,IAAAA,OAAO,EAAE,CAAA;GACV,CAAA;AACD,EAAA,IAAMa,IAAI,GAAGpC,QAAQ,CAACqB,OAAO,CAAC,CAACnB,IAAI,CAAA;AACnC,EAAA,OACE6B,KACE,CAAAM,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;IAAAtB,SAAS,EAAEuB,UAAU,CACnB,eAAe,sBACGf,IAAI,EAAA,iBAAA,GACJH,OAAO,EACzB;AAAE,MAAA,sCAAsC,EAAEK,mBAAAA;AAAmB,KAAE,EAC/DV,SAAS,CAAA;AACV,GAAA,EACGW,IAAI,CAERI,EAAAA,KAAA,CAAAM,aAAA,CAACD,IAAI,EACH;AAAAI,IAAAA,IAAI,EAAC,KAAK;AACVxB,IAAAA,SAAS,EAAC,qBAAqB;AAAA,IAAA,YAAA,EACnBhB,QAAQ,CAACqB,OAAO,CAAC,CAACjB,WAAAA;AAC9B,GAAA,CAAA,EACF2B,KAAA,CAAAM,aAAA,CAAA,KAAA,EAAA;AACErB,IAAAA,SAAS,EAAEuB,UAAU,CAAC,wBAAwB,EAAE;MAC9C,kCAAkC,EAAE,CAACd,KAAK;AAC1C,MAAA,qCAAqC,EAAE,CAACV,QAAAA;KACzC,CAAA;GAAC,EAEDU,KAAK,IAAIM,KAAK,CAAAM,aAAA,CAAA,KAAA,EAAA;AAAArB,IAAAA,SAAS,EAAC,sBAAA;AAAsB,GAAA,EAAES,KAAK,CAAO,EAC5DV,QAAQ,IAAIA,QAAQ,CACjB,EACLG,QAAQ,IACPa,KAAC,CAAAM,aAAA,CAAAI,OAAO;AACNzB,IAAAA,SAAS,EAAC,wBAAwB;AAAA,IAAA,aAAA,EAAA,IAAA;AAElC0B,IAAAA,SAAS,EAAC,QAAQ;AAClBC,IAAAA,OAAO,EAAC,MAAA;AAAM,GAAA,EAEdZ,KAAA,CAAAM,aAAA,CAACO,UAAU,EACO;AAAA,IAAA,iBAAA,EAAA,OAAO;AACvB5B,IAAAA,SAAS,EAAC,6BAA6B;AAAA,IAAA,YAAA,EAC3BI,gBAAgB;AAC5ByB,IAAAA,OAAO,EAAEV,WAAW;AACpBW,IAAAA,IAAI,EAAC,QAAA;GAAQ,EAEbf,KAAA,CAAAM,aAAA,CAACU,SAAS,EAAG,IAAA,CAAA,CACF,CAEhB,CACG,CAAA;AAEV,CAAC;;IClGYC,cAAc,GAAkC,SAAhDA,cAAcA,CAAkCC,KAAK,EAAA;EAAA,OAChElB,oBAAClB,YAAY,EAAAyB,QAAA,KAAKW,KAAK,EAAA;AAAEzB,IAAAA,IAAI,EAAC,QAAA;AAAQ,GAAA,CAAA,CAAG,CAAA;AAAA;;ICN9B0B,aAAa,GAAiC,SAA9CA,aAAaA,CAAiCD,KAAK,EAAA;EAAA,OAC9DlB,KAAC,CAAAM,aAAA,CAAAxB,YAAY,EAAAyB,QAAA,KAAKW,KAAK,EAAA;AAAEzB,IAAAA,IAAI,EAAC,OAAO;AAACgB,IAAAA,IAAI,EAAC,QAAA;AAAQ,GAAA,CAAG,CAAA,CAAA;AAAA;;;ICO3CW,aAAa,GAAiC,SAA9CA,aAAaA,CAAArC,IAAA,EAAA;AAAA,EAAA,IACxBE,SAAS,GAAAF,IAAA,CAATE,SAAS;IACToC,KAAK,GAAAtC,IAAA,CAALsC,KAAK;IACL7B,OAAO,GAAAT,IAAA,CAAPS,OAAO;IAAAN,aAAA,GAAAH,IAAA,CACPI,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IAChBG,gBAAgB,GAAAN,IAAA,CAAhBM,gBAAgB;AACbO,IAAAA,IAAI,GAAAC,6BAAA,CAAAd,IAAA,EAAAe,WAAA,CAAA,CAAA;AAAA,EAAA,OAEPE,KAAC,CAAAM,aAAA,CAAAxB,YAAY,EAAAyB,QAAA,CAAA;AACXtB,IAAAA,SAAS,EAAEuB,UAAU,CAACvB,SAAS,EAAE;MAC/B,4BAA4B,EAAEoC,KAAK,KAAK,aAAA;KACzC,CAAA;AAAC,GAAA,EACEzB,IAAI,EAAA;AACRJ,IAAAA,OAAO,EAAEA,OAAO;AAChBL,IAAAA,QAAQ,EAAEA,QAAQ;AAClBE,IAAAA,gBAAgB,EAAEA,gBAAgB;AAClCI,IAAAA,IAAI,EAAC,OAAA;AAAO,GAAA,CAAA,CACZ,CAAA;AAAA;;ACdJ,IAAM6B,mBAAmB,GAAG,GAAG,CAAA;AAE/B,IAAMC,YAAY,gBAAGvB,KAAK,CAACwB,aAAa,CAA0B,IAAI,CAAC,CAAA;AAEvE,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAChBC,UAAuB,EACvBC,MAAmB,EACJ;EACf,QAAQA,MAAM,CAACZ,IAAI;AACjB,IAAA,KAAK,WAAW;AACd,MAAA,OAAA,CAAQY,MAAM,CAACC,OAAO,CAAAC,CAAAA,MAAA,CAAKH,UAAU,CAAA,CAAA;AACvC,IAAA,KAAK,qBAAqB;AACxB,MAAA,OAAOA,UAAU,CAACI,GAAG,CAAC,UAAAC,KAAK,EAAG;QAC5B,IAAIA,KAAK,CAACC,EAAE,KAAKL,MAAM,CAACC,OAAO,EAC7B,OAAArB,QAAA,CAAA,EAAA,EAAYwB,KAAK,EAAA;AAAEE,UAAAA,cAAc,EAAE,IAAA;AAAI,SAAA,CAAA,CAAA;AACzC,QAAA,OAAOF,KAAK,CAAA;AACd,OAAC,CAAC,CAAA;AACJ,IAAA,KAAK,cAAc;AACjB,MAAA,OAAOL,UAAU,CAACQ,MAAM,CAAC,UAAAH,KAAK,EAAA;AAAA,QAAA,OAAIA,KAAK,CAACC,EAAE,KAAKL,MAAM,CAACC,OAAO,CAAA;OAAC,CAAA,CAAA;AAClE,GAAA;AACF,CAAC,CAAA;AAED,IAAMO,cAAc,GAAG,SAAjBA,cAAcA,GAAA;AAAA,EAAA,OAASC,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,EAAE,CAACC,SAAS,CAAC,CAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAElE,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CACfT,KAA+B,EAC/BC,EAAW,EACE;AACb,EAAA,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAO;AAAEC,MAAAA,EAAE,EAAFA,EAAE;AAAEpB,MAAAA,OAAO,EAAEmB,KAAK;AAAEzC,MAAAA,OAAO,EAAE,SAAS;AAAE2C,MAAAA,cAAc,EAAE,KAAA;KAAO,CAAA;AAC1E,GAAC,MAAM;AACL,IAAA,OAAA1B,QAAA,CAAA;AAASyB,MAAAA,EAAE,EAAFA,EAAE;AAAE1C,MAAAA,OAAO,EAAE,SAAS;AAAE2C,MAAAA,cAAc,EAAE,KAAA;AAAK,KAAA,EAAKF,KAAK,CAAA,CAAA;AAClE,GAAA;AACF,CAAC,CAAA;IAmBYU,aAAa,GAAiC,SAA9CA,aAAaA,CAAA1D,IAAA,EAMrB;AAAA,EAAA,IAAA2D,UAAA,GAAA3D,IAAA,CALH4D,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,UAAA;IACZ1D,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAA4D,aAAA,GAAA7D,IAAA,CACR8D,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,cAAc,GAAAA,aAAA;IACzB3D,SAAS,GAAAF,IAAA,CAATE,SAAS;IACT6D,KAAK,GAAA/D,IAAA,CAAL+D,KAAK,CAAA;EAEL,IAAAC,iBAAA,GAA2B/C,KAAK,CAACgD,UAAU,CAACvB,YAAY,EAAE,EAAE,CAAC;AAAtDwB,IAAAA,MAAM,GAAAF,iBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,QAAQ,GAAAH,iBAAA,CAAA,CAAA,CAAA,CAAA;AACvB,EAAA,IAAAhD,eAAA,GAAkCC,KAAK,CAACC,QAAQ,EAAU;AAAnDkD,IAAAA,UAAU,GAAApD,eAAA,CAAA,CAAA,CAAA;AAAEqD,IAAAA,WAAW,GAAArD,eAAA,CAAA,CAAA,CAAA,CAAA;EAC9B,IAAMsD,aAAa,GAAGrD,KAAK,CAACsD,MAAM,CAA4B,EAAE,CAAC,CAAA;EAEjE,IAAMC,WAAW,GAAGvD,KAAK,CAACwD,WAAW,CAAC,UAACxB,EAAW,EAAI;IACpDyB,MAAM,CAACC,YAAY,CAACL,aAAa,CAACM,OAAO,CAAC3B,EAAE,CAAC,CAAC,CAAA;AAC9CkB,IAAAA,QAAQ,CAAC;AAAEnC,MAAAA,IAAI,EAAE,cAAc;AAAEa,MAAAA,OAAO,EAAEI,EAAAA;AAAI,KAAA,CAAC,CAAA;AAC/C,IAAA,OAAOqB,aAAa,CAACM,OAAO,CAAC3B,EAAE,CAAC,CAAA;GACjC,EAAE,EAAE,CAAC,CAAA;EAEN,IAAM4B,iBAAiB,GAAG5D,KAAK,CAACwD,WAAW,CAAC,UAACxB,EAAW,EAAI;IAC1DyB,MAAM,CAACC,YAAY,CAACL,aAAa,CAACM,OAAO,CAAC3B,EAAE,GAAG,WAAW,CAAC,CAAC,CAAA;AAC5DkB,IAAAA,QAAQ,CAAC;AAAEnC,MAAAA,IAAI,EAAE,qBAAqB;AAAEa,MAAAA,OAAO,EAAEI,EAAAA;AAAI,KAAA,CAAC,CAAA;AACtD,IAAA,OAAOqB,aAAa,CAACM,OAAO,CAAC3B,EAAE,GAAG,WAAW,CAAC,CAAA;GAC/C,EAAE,EAAE,CAAC,CAAA;EAEN,IAAM6B,kCAAkC,GAAG7D,KAAK,CAACwD,WAAW,CAC1D,UAACxB,EAAW,EAAEW,KAAa,EAAI;IAC7BU,aAAa,CAACM,OAAO,CAAC3B,EAAE,GAAG,WAAW,CAAC,GAAGyB,MAAM,CAACK,UAAU,CACzD,YAAA;MAAA,OAAMF,iBAAiB,CAAC5B,EAAE,CAAC,CAAA;KAC3BW,EAAAA,KAAK,GAAGrB,mBAAmB,CAC5B,CAAA;IACD+B,aAAa,CAACM,OAAO,CAAC3B,EAAE,CAAC,GAAGyB,MAAM,CAACK,UAAU,CAC3C,YAAA;MAAA,OAAMP,WAAW,CAACvB,EAAE,CAAC,CAAA;AAAA,KAAA,EACrBW,KAAK,CACN,CAAA;GACF,EACD,CAACU,aAAa,EAAEO,iBAAiB,EAAEL,WAAW,CAAC,CAChD,CAAA;EAED,IAAMQ,QAAQ,GAAG/D,KAAK,CAACwD,WAAW,CAChC,UAACzB,KAA+B,EAAI;AAClC,IAAA,IAAMC,EAAE,GAAGG,cAAc,EAAE,CAAA;AAC3B,IAAA,IAAMP,OAAO,GAAGY,WAAW,CAACT,KAAK,EAAEC,EAAE,CAAC,CAAA;AACtCkB,IAAAA,QAAQ,CAAC;AAAEnC,MAAAA,IAAI,EAAE,WAAW;AAAEa,MAAAA,OAAO,EAAPA,OAAAA;AAAS,KAAA,CAAC,CAAA;AACxCiC,IAAAA,kCAAkC,CAAC7B,EAAE,EAAEW,KAAK,CAAC,CAAA;AAC/C,GAAC,EACD,CAACA,KAAK,EAAEkB,kCAAkC,CAAC,CAC5C,CAAA;AAED,EAAA,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIjC,KAAgB,EAAA;AAAA,IAAA,OAAK,YAAK;MAClD,IAAIA,KAAK,CAACE,cAAc,EAAE,OAAA;AAC1BmB,MAAAA,WAAW,CAACrB,KAAK,CAACC,EAAE,CAAC,CAAA;AACrBiC,MAAAA,MAAM,CAACC,MAAM,CAACb,aAAa,CAACM,OAAO,CAAC,CAACQ,OAAO,CAAC,UAAAC,SAAS,EAAG;AACvDX,QAAAA,MAAM,CAACC,YAAY,CAACU,SAAS,CAAC,CAAA;AAChC,OAAC,CAAC,CAAA;AACFf,MAAAA,aAAa,CAACM,OAAO,GAAG,EAAE,CAAA;KAC3B,CAAA;AAAA,GAAA,CAAA;AAED,EAAA,IAAMU,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAQ;IAC5BjB,WAAW,CAACkB,SAAS,CAAC,CAAA;AACtBrB,IAAAA,MAAM,CAACkB,OAAO,CAAC,UAAApC,KAAK,EAAG;AACrB8B,MAAAA,kCAAkC,CAAC9B,KAAK,CAACC,EAAE,EAAEW,KAAK,CAAC,CAAA;AACrD,KAAC,CAAC,CAAA;GACH,CAAA;AAED,EAAA,IAAMvC,WAAW,GAAG,SAAdA,WAAWA,CAAImE,OAAgB,EAAA;AAAA,IAAA,OAAK,YAAK;MAC7ChB,WAAW,CAACgB,OAAO,CAAC,CAAA;AACpBF,MAAAA,gBAAgB,EAAE,CAAA;KACnB,CAAA;AAAA,GAAA,CAAA;AAED,EAAA,IAAMG,YAAY,GAAGxE,KAAK,CAACyE,OAAO,CAChC,YAAA;IAAA,OAAO;AAAExB,MAAAA,MAAM,EAANA,MAAM;AAAEc,MAAAA,QAAQ,EAARA,QAAQ;AAAER,MAAAA,WAAW,EAAXA,WAAAA;KAAa,CAAA;GAAC,EACzC,CAACQ,QAAQ,EAAER,WAAW,EAAEN,MAAM,CAAC,CAChC,CAAA;AAED,EAAA,OACEjD,oBAACuB,YAAY,CAACmD,QAAQ,EAAC;AAAAC,IAAAA,KAAK,EAAEH,YAAAA;AAAY,GAAA,EACvCvB,MAAM,CAAC2B,MAAM,GAAG,CAAC,IAChB5E,KAAA,CAAAM,aAAA,CAAA,KAAA,EAAA;IACErB,SAAS,EAAEuB,UAAU,CACnB,qBAAqB,4BACGqC,QAAQ,EAChC5D,SAAS,CACV;AACD6D,IAAAA,KAAK,EAAEA,KAAAA;AAAK,GAAA,EAEXG,MAAM,CAAC4B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC/C,GAAG,CAAC,UAAAgD,WAAW,EAAA;AAAA,IAAA,OACjC9E,KAAC,CAAAM,aAAA,CAAAa,aAAa,EACZ;MAAA7B,OAAO,EAAEwF,WAAW,CAACxF,OAAO;MAC5BI,KAAK,EAAEoF,WAAW,CAACpF,KAAK;AACxBF,MAAAA,OAAO,EAAEY,WAAW,CAAC0E,WAAW,CAAC9C,EAAE,CAAC;AACpC+C,MAAAA,YAAY,EAAEf,gBAAgB,CAACc,WAAW,CAAC;AAC3CE,MAAAA,YAAY,EAAEX,gBAAgB;AAC9BlF,MAAAA,QAAQ,EAAEgE,UAAU,KAAK2B,WAAW,CAAC9C,EAAE;MACvCrC,mBAAmB,EAAEmF,WAAW,CAAC7C,cAAc;MAC/CgD,GAAG,EAAEH,WAAW,CAAC9C,EAAAA;AAAE,KAAA,EAElB8C,WAAW,CAAClE,OAAO,CACN,CAAA;AAAA,GACjB,CAAC,CAEL,EACA5B,QAAQ,CACa,CAAA;AAE5B,EAAC;IAEYkG,QAAQ,GAEjB,SAFSA,QAAQA,GAEZ;AACP,EAAA,IAAMC,OAAO,GAAGnF,KAAK,CAACoF,UAAU,CAAC7D,YAAY,CAAC,CAAA;EAC9C,IAAI,CAAC4D,OAAO,EAAE;AACZ,IAAA,MAAM,IAAIE,KAAK,CACb,kEAAkE,GAChE,gCAAgC,CACnC,CAAA;AACH,GAAA;AACA,EAAA,IAAQtB,QAAQ,GAAKoB,OAAO,CAApBpB,QAAQ,CAAA;EAChB,OAAO;AACLA,IAAAA,QAAQ,EAARA,QAAAA;GACD,CAAA;AACH;;;IClLauB,YAAY,GAAG,SAAfA,YAAYA,CAAAvG,IAAA,EAUY;AAAA,EAAA,IATnCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAAuG,mBAAA,GAAAxG,IAAA,CACRyG,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,mBAAA;IAC3BE,cAAc,GAAA1G,IAAA,CAAd0G,cAAc;IACdC,UAAU,GAAA3G,IAAA,CAAV2G,UAAU;IACVzG,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAA0G,cAAA,GAAA5G,IAAA,CACT,YAAY,CAAA;IAAE6G,SAAS,GAAAD,cAAA,KACrBD,KAAAA,CAAAA,GAAAA,SAAAA,IAAAA,UAAU,WAAVA,UAAU,GAAI1G,QAChB,CAAA,GAAA,qBAAA,GAAA2G,cAAA;AACG/F,IAAAA,IAAI,GAAAC,6BAAA,CAAAd,IAAA,EAAAe,WAAA,CAAA,CAAA;AAEP,EAAA,IAAA+F,SAAA,GAAqBX,QAAQ,EAAE;IAAvBnB,QAAQ,GAAA8B,SAAA,CAAR9B,QAAQ,CAAA;AAChB,EAAA,IAAM+B,SAAS,GAAG9F,KAAK,CAACsD,MAAM,CAAoB,IAAI,CAAC,CAAA;AACvD,EAAA,IAAMyC,WAAW,GAAGL,UAAU,IAAVA,IAAAA,GAAAA,UAAU,GAAI1G,QAAQ,CAAA;AAC1C,EAAA,IAAMgH,eAAe,GACnBP,cAAc,WAAdA,cAAc,GAAOM,WAAW,GAAkC,kCAAA,CAAA;AACpE,EAAA,IAAME,WAAW,GAAG,SAAdA,WAAWA,GAAQ;AACvBH,IAAAA,SAAS,CAACnC,OAAO,IACfuC,IAAI,CAACH,WAAW,EAAE;MAChBI,MAAM,EAAEL,SAAS,CAACnC,OAAAA;KACnB,CAAC,IACFI,QAAQ,CAAC;AAAErE,MAAAA,KAAK,EAAE8F,cAAc;AAAE5E,MAAAA,OAAO,EAAEoF,eAAAA;AAAiB,KAAA,CAAC,CAAA;GAChE,CAAA;AACD,EAAA,OACEhG,KAAA,CAAAM,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;IACEtB,SAAS,EAAE,oBAAoB,GAAGA,SAAS;AAC3C6D,IAAAA,KAAK,EAAAvC,QAAA,CAAA,EAAA,EAAOX,IAAI,CAACkD,KAAK,CAAE;AACxB/B,IAAAA,IAAI,EAAC,QAAQ;AACbD,IAAAA,OAAO,EAAEmF,WAAW;IACpBG,QAAQ,EAAE,CAAC,CAAC;AACD,IAAA,YAAA,EAAA,EAAA;AAAE,GAAA,EACTxG,IAAI,CAERI,EAAAA,KAAA,CAAAM,aAAA,CAAC+F,gBAAgB,EAAA;AAACpH,IAAAA,SAAS,EAAC,sCAAA;AAAsC,GAAA,EAChEe,KAAA,CAAAM,aAAA,CAAA,MAAA,EAAA;AAAMrB,IAAAA,SAAS,EAAC,mCAAA;GAAmC,EAAED,QAAQ,CAAQ,EACrEgB,KAAA,CAAAM,aAAA,CAACO,UAAU,EAAA;AACT5B,IAAAA,SAAS,EAAC,2BAA2B;AACzB,IAAA,YAAA,EAAA2G,SAAS;AACrB7E,IAAAA,IAAI,EAAC,QAAQ;AACbuF,IAAAA,GAAG,EAAER,SAAAA;AAAS,GAAA,EAEd9F,KAAC,CAAAM,aAAA,CAAAiG,QAAQ,EAAC;AAAAtH,IAAAA,SAAS,EAAE,iCAAA;IAAqC,CAC/C,CACI,CACf,CAAA;AAEV;;;IC9DauH,uBAAuB,GAClC,SADWA,uBAAuBA,CAClCtF,KAAK,EAAG;AACN,EAAA,OAAOlB,KAAA,CAAAM,aAAA,CAACmG,kBAAkB,EAAAlG,QAAA,CAAA;AAACd,IAAAA,IAAI,EAAC,OAAA;GAAYyB,EAAAA,KAAK,CAAA,CAAI,CAAA;AACvD,EAAC;IAKUwF,wBAAwB,GACnC,SADWA,wBAAwBA,CACnCxF,KAAK,EAAG;AACN,EAAA,OAAOlB,KAAA,CAAAM,aAAA,CAACmG,kBAAkB,EAAAlG,QAAA,CAAA;AAACd,IAAAA,IAAI,EAAC,QAAA;GAAayB,EAAAA,KAAK,CAAA,CAAI,CAAA;AACxD,EAAC;AA2BH,IAAMuF,kBAAkB,GAAsC,SAAxDA,kBAAkBA,CAAA1H,IAAA,EASnB;AAAA,EAAA,IARHO,OAAO,GAAAP,IAAA,CAAPO,OAAO;IACPI,KAAK,GAAAX,IAAA,CAALW,KAAK;IACLV,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRS,IAAI,GAAAV,IAAA,CAAJU,IAAI;IACJR,SAAS,GAAAF,IAAA,CAATE,SAAS;IACT0H,SAAS,GAAA5H,IAAA,CAAT4H,SAAS;IACTC,UAAU,GAAA7H,IAAA,CAAV6H,UAAU;AACPhH,IAAAA,IAAI,GAAAC,6BAAA,CAAAd,IAAA,EAAAe,SAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,eAAA,GAAwBC,KAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;AAAtC4G,IAAAA,IAAI,GAAA9G,eAAA,CAAA,CAAA,CAAA;AAAE+G,IAAAA,OAAO,GAAA/G,eAAA,CAAA,CAAA,CAAA,CAAA;AACpB,EAAA,OACEC,KAAC,CAAAM,aAAA,CAAAxB,YAAY,EAAAyB,QAAA,CAAA;AACXd,IAAAA,IAAI,EAAEA,IAAI;AACVH,IAAAA,OAAO,EAAEA,OAAO;AAChBL,IAAAA,SAAS,EAAEuB,UAAU,CAAC,0BAA0B,EAAEvB,SAAS,CAAC;AAC5DS,IAAAA,KAAK,EACHM,KAAC,CAAAM,aAAA,CAAAyG,uBAAuB,EACtB;AAAAF,MAAAA,IAAI,EAAEA,IAAI;AACVnH,MAAAA,KAAK,EAAEA,KAAK;MACZoB,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,QAAA,OAAQgG,OAAO,CAAC,CAACD,IAAI,CAAC,CAAA;AAAA,OAAA;AAC7BF,MAAAA,SAAS,EAAEA,SAAS;AACpBC,MAAAA,UAAU,EAAEA,UAAAA;KACZ,CAAA;AAAA,GAAA,EAEAhH,IAAI,CAERI,EAAAA,KAAC,CAAAM,aAAA,CAAA0G,UAAU,EAAC;AAAAH,IAAAA,IAAI,EAAEA,IAAAA;KAAO7H,QAAQ,CAAc,CAClC,CAAA;AAEnB,CAAC,CAAA;AAUD,IAAM+H,uBAAuB,GAA2C,SAAlEA,uBAAuBA,CAAAE,KAAA,EAMxB;AAAA,EAAA,IALHvH,KAAK,GAAAuH,KAAA,CAALvH,KAAK;IACLmH,IAAI,GAAAI,KAAA,CAAJJ,IAAI;IAAAK,eAAA,GAAAD,KAAA,CACJN,SAAS;AAATA,IAAAA,SAAS,GAAAO,eAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,eAAA;IAAAC,gBAAA,GAAAF,KAAA,CACrBL,UAAU;AAAVA,IAAAA,UAAU,GAAAO,gBAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,gBAAA;IACnBrG,OAAO,GAAAmG,KAAA,CAAPnG,OAAO,CAAA;AAEP,EAAA,OACEd,KAAA,CAAAM,aAAA,CAAA,KAAA,EAAA;AAAKrB,IAAAA,SAAS,EAAC,iCAAA;AAAiC,GAAA,EAC9Ce,KAAA,CAAAM,aAAA,CAAA,KAAA,EAAA,IAAA,EAAMZ,KAAK,CAAO,EAClBM,KACE,CAAAM,aAAA,CAAA,QAAA,EAAA;AAAArB,IAAAA,SAAS,EAAC,kCAAkC;AAC5C6B,IAAAA,OAAO,EAAEA,OAAO;AAChBC,IAAAA,IAAI,EAAC,QAAA;AAAQ,GAAA,EAEZ8F,IAAI,GAAGD,UAAU,GAAGD,SAAS,EAC9B3G,KAAC,CAAAM,aAAA,CAAA8G,WAAW,EAAC;AAAAP,IAAAA,IAAI,EAAEA,IAAI;AAAEQ,IAAAA,MAAM,EAAG,IAAA;GAAA,CAAA,CAC3B,CACL,CAAA;AAEV,CAAC;;AC5GDC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC;;;;"}
1
+ {"version":3,"file":"alert.esm.js","sources":["../src/BaseAlertBox.tsx","../src/BannerAlertBox.tsx","../src/ToastAlertBox.tsx","../src/SmallAlertBox.tsx","../src/ToastProvider.tsx","../src/CopyableText.tsx","../src/ExpandableAlertBox.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport {\n CloseIcon,\n ValidationSuccessIcon,\n ValidationExclamationIcon,\n ValidationInfoIcon,\n ValidationErrorIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\nimport { VariantType } from '@entur/utils';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: ValidationSuccessIcon,\n description: 'Suksessmelding',\n },\n information: { icon: ValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: ValidationExclamationIcon,\n description: 'Varselmelding',\n },\n negative: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n //deprecated\n info: { icon: ValidationInfoIcon, description: 'Infomelding' },\n error: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox: React.FC<BaseAlertBoxProps> = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant].icon;\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n {\n 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved,\n 'eds-alert-box--no-title': !title,\n },\n className,\n )}\n {...rest}\n >\n <Icon\n role=\"img\"\n className=\"eds-alert-box__icon\"\n aria-label={iconsMap[variant].description}\n />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n {closable && (\n <Tooltip\n className=\"eds-alert-box__tooltip\"\n aria-hidden\n placement=\"bottom\"\n content=\"Lukk\"\n >\n <IconButton\n data-color-mode=\"light\"\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const BannerAlertBox: React.FC<BannerAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'information' | typeof info;\n [key: string]: any;\n};\n\nexport const ToastAlertBox: React.FC<ToastAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const SmallAlertBox: React.FC<SmallAlertBoxProps> = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastVariants = 'success' | 'information' | typeof info;\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport { VariantType } from '@entur/utils';\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox: React.FC<SmallExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n };\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox: React.FC<BannerExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n };\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox: React.FC<ExpandableAlertBoxProps> = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}) => {\n const [open, setopen] = React.useState(false);\n return (\n <BaseAlertBox\n size={size}\n variant={variant}\n className={classNames('eds-expandable-alert-box', className)}\n title={\n <ExpandableAlertBoxTitle\n open={open}\n title={title}\n onClick={() => setopen(!open)}\n openLabel={openLabel}\n closeLabel={closeLabel}\n />\n }\n {...rest}\n >\n <BaseExpand open={open}>{children}</BaseExpand>\n </BaseAlertBox>\n );\n};\n\ntype ExpandableAlertBoxTitleProps = {\n title: React.ReactNode;\n open: boolean;\n openLabel?: string;\n closeLabel?: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst ExpandableAlertBoxTitle: React.FC<ExpandableAlertBoxTitleProps> = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}) => {\n return (\n <div className=\"eds-expandable-alert-box__title\">\n <div>{title}</div>\n <button\n className=\"eds-expandable-alert-box__button\"\n onClick={onClick}\n type=\"button\"\n >\n {open ? closeLabel : openLabel}\n <ExpandArrow open={open} inline />\n </button>\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('alert', 'icons');\n\nexport { BannerAlertBox } from './BannerAlertBox';\nexport { ToastAlertBox } from './ToastAlertBox';\nexport { SmallAlertBox } from './SmallAlertBox';\nexport { ToastProvider, useToast } from './ToastProvider';\nexport { CopyableText } from './CopyableText';\nexport * from './ExpandableAlertBox';\n"],"names":["iconsMap","success","icon","ValidationSuccessIcon","description","information","ValidationInfoIcon","warning","ValidationExclamationIcon","negative","ValidationErrorIcon","info","error","BaseAlertBox","_ref","children","className","_ref$closable","closable","_ref$closeButtonLabel","closeButtonLabel","variant","_ref$onClose","onClose","size","title","toastIsBeingRemoved","rest","_objectWithoutPropertiesLoose","_excluded","_React$useState","React","useState","isClosed","setClosed","handleClose","Icon","createElement","_extends","classNames","role","Tooltip","placement","content","IconButton","onClick","type","CloseIcon","BannerAlertBox","props","ToastAlertBox","SmallAlertBox","width","EXIT_ANIMATION_TIME","ToastContext","createContext","toastReducer","prevToasts","action","payload","concat","map","toast","id","isBeingRemoved","filter","createUniqueId","Math","random","toString","substring","createToast","ToastProvider","_ref$delay","delay","_ref$position","position","style","_React$useReducer","useReducer","toasts","dispatch","hoveringId","setHovering","timeoutIdRefs","useRef","removeToast","useCallback","window","clearTimeout","current","playExitAnimation","removeToastWithAnimationAfterDelay","setTimeout","addToast","handleMouseEnter","Object","values","forEach","timeoutId","handleMouseLeave","undefined","toastId","contextValue","useMemo","Provider","value","length","slice","toastToShow","onMouseEnter","onMouseLeave","key","useToast","context","useContext","Error","CopyableText","_ref$successHeading","successHeading","successMessage","textToCopy","_ref$ariaLabel","ariaLabel","_useToast","buttonRef","_textToCopy","_successMessage","handleClick","copy","target","tabIndex","PreformattedText","ref","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","_ref2","_ref2$openLabel","_ref2$closeLabel","ExpandArrow","inline","warnAboutMissingStyles"],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -102,6 +102,10 @@
102
102
  .eds-contrast .eds-alert-box--error .eds-alert-box__icon, .eds-contrast .eds-alert-box--negative .eds-alert-box__icon {
103
103
  color: var(--components-alert-alertbox-negative-contrast-icon);
104
104
  }
105
+ .eds-alert-box--no-title {
106
+ display: flex;
107
+ align-items: center;
108
+ }
105
109
  .eds-alert-box__icon {
106
110
  display: inline-block;
107
111
  flex: 0 0 1em;
@@ -121,8 +125,11 @@
121
125
  }
122
126
  .eds-alert-box__content {
123
127
  flex: 1;
128
+ word-break: break-word;
129
+ -webkit-hyphens: auto;
130
+ hyphens: auto;
124
131
  }
125
- .eds-alert-box__content--no-title, .eds-alert-box__content--no-children {
132
+ .eds-alert-box__content--no-children {
126
133
  display: flex;
127
134
  align-items: center;
128
135
  }
@@ -135,7 +142,7 @@
135
142
  .eds-alert-box__content > *:last-child {
136
143
  margin-bottom: 0;
137
144
  }
138
- .eds-alert-box__close-button {
145
+ .eds-alert-box .eds-alert-box__close-button {
139
146
  margin-top: -0.3125rem;
140
147
  margin-left: 0.5rem;
141
148
  height: -moz-fit-content;
@@ -143,17 +150,18 @@
143
150
  width: -moz-fit-content;
144
151
  width: fit-content;
145
152
  }
146
- .eds-alert-box__close-button, .eds-contrast .eds-alert-box__close-button {
153
+ .eds-contrast .eds-alert-box .eds-alert-box__close-button {
147
154
  color: var(--components-button-iconbutton-standard-text);
148
155
  }
149
- .eds-alert-box__close-button:hover, .eds-contrast .eds-alert-box__close-button:hover {
156
+ .eds-contrast .eds-alert-box .eds-alert-box__close-button:hover {
150
157
  background: var(--components-button-iconbutton-standard-hover);
151
158
  }
152
- .eds-alert-box__close-button:active, .eds-contrast .eds-alert-box__close-button:active {
159
+ .eds-contrast .eds-alert-box .eds-alert-box__close-button:active {
153
160
  background: var(--components-button-iconbutton-standard-active);
154
161
  }
155
- .eds-alert-box__close-button:focus, .eds-contrast .eds-alert-box__close-button:focus {
162
+ .eds-contrast .eds-alert-box .eds-alert-box__close-button:focus-visible {
156
163
  outline: 2px solid #181c56;
164
+ outline-color: var(--basecolors-stroke-focus-standard);
157
165
  }
158
166
  .eds-contrast .eds-alert-box .eds-alert-box__tooltip {
159
167
  background: var(--components-tooltip-tooltip-standard-fill);
@@ -304,25 +312,25 @@
304
312
  .eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:active {
305
313
  background: var(--components-button-iconbutton-standard-active);
306
314
  }
307
- .eds-copyable-text .eds-copyable-text__button:focus, .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
308
- .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
309
- .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
310
- .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
311
- .eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
312
- .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
313
- .eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus {
315
+ .eds-copyable-text .eds-copyable-text__button:focus-visible, .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus-visible,
316
+ .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus-visible,
317
+ .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus-visible,
318
+ .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus-visible,
319
+ .eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus-visible,
320
+ .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus-visible,
321
+ .eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus-visible {
314
322
  outline: 2px solid #181c56;
315
323
  outline-color: var(--basecolors-stroke-focus-standard);
316
324
  outline-offset: 0.125rem;
317
325
  }
318
- .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus, .eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
319
- .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
320
- .eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
321
- .eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
322
- .eds-contrast .eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
323
- .eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
324
- .eds-contrast .eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus {
325
- outline-color: var(--basecolors-stroke-focus-contrast);
326
+ .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus-visible, .eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus-visible,
327
+ .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus-visible,
328
+ .eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus-visible,
329
+ .eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus-visible,
330
+ .eds-contrast .eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus-visible,
331
+ .eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus-visible,
332
+ .eds-contrast .eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus-visible {
333
+ outline-color: var(--basecolors-stroke-focus-standard);
326
334
  }
327
335
  /* DO NOT CHANGE!*/
328
336
  /* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
@@ -351,7 +359,7 @@
351
359
  align-items: baseline;
352
360
  }
353
361
  .eds-expandable-alert-box__button {
354
- color: inherit;
362
+ color: var(--components-button-iconbutton-standard-text);
355
363
  background: none;
356
364
  border: none;
357
365
  cursor: pointer;
@@ -361,13 +369,15 @@
361
369
  padding: 0 0.25rem;
362
370
  flex-shrink: 0;
363
371
  }
364
- .eds-expandable-alert-box__button:focus {
372
+ .eds-expandable-alert-box__button:focus-visible {
365
373
  outline: 2px solid #181c56;
374
+ outline-color: var(--basecolors-stroke-focus-standard);
366
375
  outline-offset: 0.125rem;
367
376
  }
368
377
  .eds-expandable-alert-box__button .eds-icon {
369
378
  font-size: 1rem;
370
379
  padding-left: 0.25rem;
380
+ color: var(--components-button-iconbutton-standard-text);
371
381
  }
372
382
  /* DO NOT CHANGE!*/
373
383
  /* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entur/alert",
3
- "version": "0.16.24",
3
+ "version": "0.17.0-beta.0",
4
4
  "license": "EUPL-1.2",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/alert.esm.js",
@@ -27,12 +27,12 @@
27
27
  "react-dom": ">=16.8.0"
28
28
  },
29
29
  "dependencies": {
30
- "@entur/button": "^3.2.38",
31
- "@entur/expand": "^3.5.27",
30
+ "@entur/button": "^3.3.0-beta.0",
31
+ "@entur/expand": "^3.6.0-beta.0",
32
32
  "@entur/icons": "^7.6.0",
33
33
  "@entur/tokens": "^3.17.5",
34
- "@entur/tooltip": "^5.1.6",
35
- "@entur/typography": "^1.8.51",
34
+ "@entur/tooltip": "^5.2.0-beta.0",
35
+ "@entur/typography": "^1.9.0-beta.0",
36
36
  "@entur/utils": "^0.12.2",
37
37
  "classnames": "^2.3.1",
38
38
  "copy-text-to-clipboard": "^2.2"
@@ -40,5 +40,5 @@
40
40
  "devDependencies": {
41
41
  "dts-cli": "2.0.5"
42
42
  },
43
- "gitHead": "1a989376d61ab59a8c554a9cab733039aef8b2eb"
43
+ "gitHead": "6ee621529704e08c9814cda206da98c37a9f0689"
44
44
  }