@entur/alert 0.15.9 → 0.15.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BaseAlertBox.d.ts +1 -1
- package/dist/ToastAlertBox.d.ts +1 -0
- package/dist/alert.cjs.development.js +13 -8
- package/dist/alert.cjs.development.js.map +1 -1
- package/dist/alert.cjs.production.min.js +1 -1
- package/dist/alert.cjs.production.min.js.map +1 -1
- package/dist/alert.esm.js +13 -8
- package/dist/alert.esm.js.map +1 -1
- package/dist/styles.css +24 -34
- package/package.json +6 -6
package/dist/BaseAlertBox.d.ts
CHANGED
package/dist/ToastAlertBox.d.ts
CHANGED
|
@@ -6,8 +6,9 @@ var utils = require('@entur/utils');
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var classNames = require('classnames');
|
|
8
8
|
var icons = require('@entur/icons');
|
|
9
|
-
var copy = require('copy-text-to-clipboard');
|
|
10
9
|
var button = require('@entur/button');
|
|
10
|
+
var tooltip = require('@entur/tooltip');
|
|
11
|
+
var copy = require('copy-text-to-clipboard');
|
|
11
12
|
var typography = require('@entur/typography');
|
|
12
13
|
var _ = require('@entur/expand/');
|
|
13
14
|
|
|
@@ -88,12 +89,7 @@ var BaseAlertBox = function BaseAlertBox(_ref) {
|
|
|
88
89
|
className: classNames('eds-alert-box', "eds-alert-box--" + size, "eds-alert-box--" + variant, {
|
|
89
90
|
'eds-alert-box--toast--exit-animation': toastIsBeingRemoved
|
|
90
91
|
}, className)
|
|
91
|
-
}, rest),
|
|
92
|
-
"aria-label": closeButtonLabel,
|
|
93
|
-
className: "eds-alert-box__close-button",
|
|
94
|
-
type: "button",
|
|
95
|
-
onClick: handleClose
|
|
96
|
-
}, React.createElement(icons.CloseIcon, null)), React.createElement(Icon, {
|
|
92
|
+
}, rest), React.createElement(Icon, {
|
|
97
93
|
role: "img",
|
|
98
94
|
className: "eds-alert-box__icon",
|
|
99
95
|
"aria-label": iconsMap[variant].description
|
|
@@ -104,7 +100,16 @@ var BaseAlertBox = function BaseAlertBox(_ref) {
|
|
|
104
100
|
})
|
|
105
101
|
}, title && React.createElement("div", {
|
|
106
102
|
className: "eds-alert-box__title"
|
|
107
|
-
}, title), children && children)
|
|
103
|
+
}, title), children && children), closable && React.createElement(tooltip.Tooltip, {
|
|
104
|
+
className: "eds-alert-box__tooltip",
|
|
105
|
+
"aria-hidden": true,
|
|
106
|
+
placement: "bottom",
|
|
107
|
+
content: "Lukk"
|
|
108
|
+
}, React.createElement(button.IconButton, {
|
|
109
|
+
className: "eds-alert-box__close-button",
|
|
110
|
+
"aria-label": closeButtonLabel,
|
|
111
|
+
onClick: handleClose
|
|
112
|
+
}, React.createElement(icons.CloseIcon, null))));
|
|
108
113
|
};
|
|
109
114
|
|
|
110
115
|
var BannerAlertBox = function BannerAlertBox(props) {
|
|
@@ -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 OutlinedValidationCheckIcon,\n OutlinedValidationExclamationIcon,\n OutlinedValidationInfoIcon,\n OutlinedValidationErrorIcon,\n} from '@entur/icons';\nimport './styles.scss';\n\nconst iconsMap = {\n success: {\n icon: OutlinedValidationCheckIcon,\n description: 'Suksessmelding',\n },\n info: { icon: OutlinedValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: OutlinedValidationExclamationIcon,\n description: 'Varselmelding',\n },\n error: { icon: OutlinedValidationErrorIcon, description: 'Feilmelding' },\n};\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: 'success' | 'info' | 'warning' | '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 {closable && (\n <button\n aria-label={closeButtonLabel}\n className=\"eds-alert-box__close-button\"\n type=\"button\"\n onClick={handleClose}\n >\n <CloseIcon />\n </button>\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 </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\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: 'success' | 'info' | 'warning' | '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';\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' | '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\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: 'success' | 'info' | 'warning' | '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\ntype ToastVariants = 'success' | '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) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\ntype AddToastPayload =\n | { title?: string; content: React.ReactNode; variant?: ToastVariants }\n | string;\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 = (toast: AddToastPayload, id: ToastId): 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) => {\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) => 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<HTMLButtonElement>, '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 <button\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n ref={buttonRef}\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 >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </button>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\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\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | '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","OutlinedValidationCheckIcon","description","info","OutlinedValidationInfoIcon","warning","OutlinedValidationExclamationIcon","error","OutlinedValidationErrorIcon","BaseAlertBox","children","className","closable","closeButtonLabel","variant","onClose","size","title","toastIsBeingRemoved","rest","_excluded","React","useState","isClosed","setClosed","handleClose","Icon","createElement","classNames","type","onClick","CloseIcon","role","BannerAlertBox","props","ToastAlertBox","SmallAlertBox","width","EXIT_ANIMATION_TIME","ToastContext","createContext","toastReducer","prevToasts","action","payload","map","toast","id","isBeingRemoved","filter","createUniqueId","Math","random","toString","substring","createToast","content","ToastProvider","delay","position","style","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","successHeading","successMessage","textToCopy","ariaLabel","buttonRef","_textToCopy","_successMessage","handleClick","copy","target","ref","tabIndex","PreformattedText","IconButton","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","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 OutlinedValidationCheckIcon,\n OutlinedValidationExclamationIcon,\n OutlinedValidationInfoIcon,\n OutlinedValidationErrorIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: OutlinedValidationCheckIcon,\n description: 'Suksessmelding',\n },\n info: { icon: OutlinedValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: OutlinedValidationExclamationIcon,\n description: 'Varselmelding',\n },\n error: { icon: OutlinedValidationErrorIcon, description: 'Feilmelding' },\n};\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: 'success' | 'info' | 'warning' | '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 className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\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: 'success' | 'info' | 'warning' | '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\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' | '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\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: 'success' | 'info' | 'warning' | '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\ntype ToastVariants = 'success' | '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) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\ntype AddToastPayload =\n | { title?: string; content: React.ReactNode; variant?: ToastVariants }\n | string;\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 = (toast: AddToastPayload, id: ToastId): 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) => {\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) => 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<HTMLButtonElement>, '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 <button\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n ref={buttonRef}\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 >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </button>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\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\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | '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","OutlinedValidationCheckIcon","description","info","OutlinedValidationInfoIcon","warning","OutlinedValidationExclamationIcon","error","OutlinedValidationErrorIcon","BaseAlertBox","children","className","closable","closeButtonLabel","variant","onClose","size","title","toastIsBeingRemoved","rest","_excluded","React","useState","isClosed","setClosed","handleClose","Icon","createElement","classNames","role","Tooltip","placement","content","IconButton","onClick","CloseIcon","BannerAlertBox","props","ToastAlertBox","SmallAlertBox","width","EXIT_ANIMATION_TIME","ToastContext","createContext","toastReducer","prevToasts","action","type","payload","map","toast","id","isBeingRemoved","filter","createUniqueId","Math","random","toString","substring","createToast","ToastProvider","delay","position","style","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","successHeading","successMessage","textToCopy","ariaLabel","buttonRef","_textToCopy","_successMessage","handleClick","copy","target","ref","tabIndex","PreformattedText","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","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("
|
|
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)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},c.apply(this,arguments)}function u(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t.indexOf(n=r[a])>=0||(o[n]=e[n]);return o}var d=["children","className","closable","closeButtonLabel","variant","onClose","size","title","toastIsBeingRemoved"],m={success:{icon:a.OutlinedValidationCheckIcon,description:"Suksessmelding"},info:{icon:a.OutlinedValidationInfoIcon,description:"Infomelding"},warning:{icon:a.OutlinedValidationExclamationIcon,description:"Varselmelding"},error:{icon:a.OutlinedValidationErrorIcon,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,T=e.toastIsBeingRemoved,g=u(e,d),N=t.useState(!1),h=N[1];if(N[0])return null;var k=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":T},i)},g),t.createElement(k,{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,{className:"eds-alert-box__close-button","aria-label":v,onClick:function(){h(!0),E()}},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"],T=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(g,{open:f,title:o,onClick:function(){return x(!f)},openLabel:d,closeLabel:m})},b),t.createElement(s.BaseExpand,{open:f},r))},g=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(T,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),T=null!=m?m:n,g=null!=d?d:T+" ble kopiert til utklippstavlen.";return t.createElement("button",c({className:"eds-copyable-text "+p,style:c({},f.style),type:"button",onClick:function(){_.current&&l(T,{target:_.current})&&x({title:s,content:g})},ref:_,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},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(T,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({}),T=t.useCallback((function(e){window.clearTimeout(_.current[e]),p({type:"REMOVE_TOAST",payload:e}),delete _.current[e]}),[]),g=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 g(e)}),t-400),_.current[e]=window.setTimeout((function(){return T(e)}),t)}),[_,g,T]),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]),k=function(){y(void 0),m.forEach((function(e){N(e.id,o)}))},B=t.useMemo((function(){return{toasts:m,addToast:h,removeToast:T}}),[h,T,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(){T(a),k()}),onMouseEnter:(n=e,function(){n.isBeingRemoved||(y(n.id),Object.values(_.current).forEach((function(e){window.clearTimeout(e)})),_.current={})}),onMouseLeave:k,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 OutlinedValidationCheckIcon,\n OutlinedValidationExclamationIcon,\n OutlinedValidationInfoIcon,\n OutlinedValidationErrorIcon,\n} from '@entur/icons';\nimport './styles.scss';\n\nconst iconsMap = {\n success: {\n icon: OutlinedValidationCheckIcon,\n description: 'Suksessmelding',\n },\n info: { icon: OutlinedValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: OutlinedValidationExclamationIcon,\n description: 'Varselmelding',\n },\n error: { icon: OutlinedValidationErrorIcon, description: 'Feilmelding' },\n};\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: 'success' | 'info' | 'warning' | '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 {closable && (\n <button\n aria-label={closeButtonLabel}\n className=\"eds-alert-box__close-button\"\n type=\"button\"\n onClick={handleClose}\n >\n <CloseIcon />\n </button>\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 </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\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' | '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\ntype ToastVariants = 'success' | '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) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\ntype AddToastPayload =\n | { title?: string; content: React.ReactNode; variant?: ToastVariants }\n | string;\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 = (toast: AddToastPayload, id: ToastId): 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) => {\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) => 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 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\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | '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\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: 'success' | 'info' | 'warning' | '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<HTMLButtonElement>, '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 <button\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n ref={buttonRef}\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 >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </button>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\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: 'success' | 'info' | 'warning' | '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","OutlinedValidationCheckIcon","description","info","OutlinedValidationInfoIcon","warning","OutlinedValidationExclamationIcon","error","OutlinedValidationErrorIcon","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","type","onClick","CloseIcon","role","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","content","ref","tabIndex","PreformattedText","IconButton","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 OutlinedValidationCheckIcon,\n OutlinedValidationExclamationIcon,\n OutlinedValidationInfoIcon,\n OutlinedValidationErrorIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: OutlinedValidationCheckIcon,\n description: 'Suksessmelding',\n },\n info: { icon: OutlinedValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: OutlinedValidationExclamationIcon,\n description: 'Varselmelding',\n },\n error: { icon: OutlinedValidationErrorIcon, description: 'Feilmelding' },\n};\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: 'success' | 'info' | 'warning' | '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 className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\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\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' | '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\ntype ToastVariants = 'success' | '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) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\ntype AddToastPayload =\n | { title?: string; content: React.ReactNode; variant?: ToastVariants }\n | string;\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 = (toast: AddToastPayload, id: ToastId): 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) => {\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) => 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 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\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | '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\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: 'success' | 'info' | 'warning' | '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<HTMLButtonElement>, '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 <button\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n ref={buttonRef}\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 >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </button>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\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: 'success' | 'info' | 'warning' | '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","OutlinedValidationCheckIcon","description","info","OutlinedValidationInfoIcon","warning","OutlinedValidationExclamationIcon","error","OutlinedValidationErrorIcon","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","CloseIcon","ToastAlertBox","props","ToastContext","createContext","toastReducer","prevToasts","action","type","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","ref","tabIndex","PreformattedText","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":"2xBAcMA,EAAW,CACfC,QAAS,CACPC,KAAMC,EAA2BA,4BACjCC,YAAa,kBAEfC,KAAM,CAAEH,KAAMI,EAA0BA,2BAAEF,YAAa,eACvDG,QAAS,CACPL,KAAMM,EAAiCA,kCACvCJ,YAAa,iBAEfK,MAAO,CAAEP,KAAMQ,EAA2BA,4BAAEN,YAAa,gBA6B9CO,EAA4C,SAWpDC,GAAA,IAVHC,IAAAA,SACAC,IAAAA,UAASC,EAAAH,EACTI,SAAAA,cAAgBD,EAAAE,EAAAL,EAChBM,iBAAAA,aAAmB,OAAMD,EACzBE,IAAAA,QAAOC,EAAAR,EACPS,QAAAA,OAAU,IAAAD,EAAA,WAAA,MAAO,IAAGA,EACpBE,IAAAA,KACAC,IAAAA,MACAC,IAAAA,oBACGC,EAAIC,EAAAd,EAAAe,GAEPC,EAA8BC,EAAMC,UAAS,GAA5BC,EAASH,EAAA,GAC1B,GADeA,EAAA,GAEb,OAAO,KAET,IAIMI,EAAOhC,EAASmB,GAASjB,KAC/B,OACE2B,EACEI,cAAA,MAAAC,EAAA,CAAApB,UAAWqB,EACT,kCACkBb,EAAI,kBACJH,EAClB,CAAE,uCAAwCK,GAC1CV,IAEEW,GAEJI,EAAAI,cAACD,EACC,CAAAI,KAAK,MACLtB,UAAU,sBAAqB,aACnBd,EAASmB,GAASf,cAEhCyB,EAAAI,cAAA,MAAA,CACEnB,UAAWqB,EAAW,yBAA0B,CAC9C,oCAAqCZ,EACrC,uCAAwCV,KAGzCU,GAASM,EAAKI,cAAA,MAAA,CAAAnB,UAAU,wBAAwBS,GAChDV,GAAYA,GAEdG,GACCa,EAACI,cAAAI,WACCvB,UAAU,yBAAwB,eAAA,EAElCwB,UAAU,SACVC,QAAQ,QAERV,EAACI,cAAAO,aACC,CAAA1B,UAAU,2CACEI,EACZuB,QAxCU,WAClBV,GAAU,GACVV,MAwCQQ,EAAAI,cAACS,EAAAA,UAAY,QAMzB,EC/FaC,EAA8C,SAAAC,GAAK,OAC9Df,EAACI,cAAAtB,OAAiBiC,EAAK,CAAEtB,KAAK,QAAQc,KAAK,WAAW,kECUlDS,EAAehB,EAAMiB,cAAuC,MAE5DC,EAAe,SACnBC,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,YACH,MAAA,CAAQD,EAAOE,SAAOC,OAAKJ,GAC7B,IAAK,sBACH,OAAOA,EAAWK,KAAI,SAAAC,GACpB,OAAIA,EAAMC,KAAON,EAAOE,QACtBjB,EAAA,CAAA,EAAYoB,EAAK,CAAEE,gBAAgB,IAC9BF,CACT,IACF,IAAK,eACH,OAAON,EAAWS,QAAO,SAAAH,GAAK,OAAIA,EAAMC,KAAON,EAAOE,WAE5D,EAsIaO,EAET,WACF,IAAMC,EAAU9B,EAAM+B,WAAWf,GACjC,IAAKc,EACH,MAAM,IAAIE,MACR,kGAKJ,MAAO,CACLC,SAFmBH,EAAbG,SAIV,sKC3JMC,EAAwD,SASzDnD,GAAA,IARHO,IAAAA,QACAI,IAAAA,MACAV,IAAAA,SACAS,IAAAA,KACAR,IAAAA,UACAkD,IAAAA,UACAC,IAAAA,WACGxC,EAAIC,EAAAd,EAAAe,GAEPC,EAAwBC,EAAMC,UAAS,GAAhCoC,EAAItC,EAAA,GAAEuC,EAAOvC,EAAA,GACpB,OACEC,EAACI,cAAAtB,EAAYuB,EAAA,CACXZ,KAAMA,EACNH,QAASA,EACTL,UAAWqB,EAAW,2BAA4BrB,GAClDS,MACEM,EAACI,cAAAmC,EACC,CAAAF,KAAMA,EACN3C,MAAOA,EACPkB,QAAS,WAAA,OAAM0B,GAASD,EAAK,EAC7BF,UAAWA,EACXC,WAAYA,KAGZxC,GAEJI,EAACI,cAAAoC,EAAAA,WAAW,CAAAH,KAAMA,GAAOrD,GAG/B,EAUMuD,EAAkE,SAMnEE,GAAA,IAJHJ,IAAAA,KAAIK,EAAAD,EACJN,UAAAA,aAAY,UAASO,EAAAC,EAAAF,EACrBL,WAAAA,aAAa,OAAMO,EACnB/B,IAAAA,QAEA,OACEZ,EAAAI,cAAA,MAAA,CAAKnB,UAAU,mCACbe,EAAAI,cAAA,MAAA,OARJV,OASIM,EACEI,cAAA,SAAA,CAAAnB,UAAU,mCACV2B,QAASA,EACTS,KAAK,UAEJgB,EAAOD,EAAaD,EACrBnC,EAACI,cAAAwC,EAAAA,YAAY,CAAAP,KAAMA,EAAMQ,QAAS,KAI1C,ECrGAC,EAAAA,uBAAuB,QAAS,gCCoB6B,SAAA/B,GAAK,OAChEf,gBAAClB,OAAiBiC,EAAK,CAAEtB,KAAK,WAAW,mCFJzC,SAAAsB,GACE,OAAOf,EAAAI,cAAC8B,EAAkB7B,EAAA,CAACZ,KAAK,UAAasB,GAC/C,uBGO0B,SAUShC,GAAA,IATnCC,IAAAA,SAAQ+D,EAAAhE,EACRiE,eAAAA,aAAiB,WAAUD,EAC3BE,IAAAA,eACAC,IAAAA,WACAjE,IAAAA,UAASkE,EAAApE,EACT,cAAcqE,OACZF,IAAAA,EAAAA,WAAAA,MAAAA,EAAAA,EAAclE,GAChB,sBAAAmE,EACGvD,EAAIC,EAAAd,EAAAe,GAECmC,EAAaJ,IAAbI,SACFoB,EAAYrD,EAAMsD,OAA0B,MAC5CC,EAAcL,MAAAA,EAAAA,EAAclE,EAC5BwE,QACJP,EAAAA,EAAqBM,EAA6C,mCAQpE,OACEvD,EACEI,cAAA,SAAAC,EAAA,CAAApB,UAAW,qBAAuBA,EAClCwE,MAAY7D,EAAAA,GAAAA,EAAK6D,OACjBpC,KAAK,SACLT,QAZgB,WAClByC,EAAUK,SACRC,EAAKJ,EAAa,CAChBK,OAAQP,EAAUK,WAEpBzB,EAAS,CAAEvC,MAAOsD,EAAgBtC,QAAS8C,KAQ3CK,IAAKR,EACLS,UAAW,EACA,aAAA,IACPlE,GAEJI,EAAAI,cAAC2D,EAAAA,iBAAgB,CAAC9E,UAAU,wCAC1Be,EAAAI,cAAA,OAAA,CAAMnB,UAAU,qCAAqCD,GACrDgB,EAAAI,cAACO,EAAAA,WACC,CAAA1B,UAAU,yCACEmE,GAEZpD,EAACI,cAAA4D,WAAS,CAAA/E,UAAW,sCAK/B,wBChD2D,SAAjCF,GAAA,IACxBE,IAAAA,UACAgF,IAAAA,MACAzE,IAAAA,QAAON,EAAAH,EACPI,SAAAA,cAAgBD,EAChBG,IAAAA,iBACGO,EAAIC,EAAAd,EAAAe,GAAA,OAEPE,EAACI,cAAAtB,EAAYuB,EAAA,CACXpB,UAAWqB,EAAWrB,EAAW,CAC/B,6BAAwC,gBAAVgF,KAE5BrE,EAAI,CACRJ,QAASA,EACTL,SAAUA,EACVE,iBAAkBA,EAClBI,KAAK,UACL,kCJ/BF,SAAAsB,GACE,OAAOf,EAAAI,cAAC8B,EAAkB7B,EAAA,CAACZ,KAAK,SAAYsB,GAC9C,gDDkEyD,SAMtDhC,GAAA,IAAAmF,EAAAnF,EALHoF,MAAAA,aAAQ,IAAID,EACZlF,IAAAA,SAAQoF,EAAArF,EACRsF,SAAAA,aAAW,eAAcD,EACzBnF,IAAAA,UACAwE,IAAAA,MAEAa,EAA2BtE,EAAMuE,WAAWrD,EAAc,IAAnDsD,EAAMF,EAAA,GAAEG,EAAQH,EAAA,GACWtE,EAAAA,EAAMC,WAAjCyE,EAAU3E,EAAA,GAAE4E,EAAW5E,EAAA,GACxB6E,EAAgB5E,EAAMsD,OAAkC,CAAE,GAE1DuB,EAAc7E,EAAM8E,aAAY,SAACpD,GACrCqD,OAAOC,aAAaJ,EAAclB,QAAQhC,IAC1C+C,EAAS,CAAEpD,KAAM,eAAgBC,QAASI,WACnCkD,EAAclB,QAAQhC,EAC9B,GAAE,IAEGuD,EAAoBjF,EAAM8E,aAAY,SAACpD,GAC3CqD,OAAOC,aAAaJ,EAAclB,QAAQhC,EAAK,cAC/C+C,EAAS,CAAEpD,KAAM,sBAAuBC,QAASI,WAC1CkD,EAAclB,QAAQhC,EAAK,YACnC,GAAE,IAEGwD,EAAqClF,EAAM8E,aAC/C,SAACpD,EAAayC,GACZS,EAAclB,QAAQhC,EAAK,aAAeqD,OAAOI,YAC/C,WAAA,OAAMF,EAAkBvD,KACxByC,EA5EoB,KA8EtBS,EAAclB,QAAQhC,GAAMqD,OAAOI,YACjC,WAAA,OAAMN,EAAYnD,EAAG,GACrByC,EAEH,GACD,CAACS,EAAeK,EAAmBJ,IAG/B5C,EAAWjC,EAAM8E,aACrB,SAACrD,GACC,IAAMC,EAlEiB0D,KAAKC,SAASC,WAAWC,UAAU,GAmEpDjE,EAjEQ,SAACG,EAAwBC,GAC3C,MAAqB,iBAAVD,EACF,CAAEC,GAAAA,EAAIhB,QAASe,EAAOnC,QAAS,UAAWqC,gBAAgB,GAEjEtB,EAAA,CAASqB,GAAAA,EAAIpC,QAAS,UAAWqC,gBAAgB,GAAUF,EAE/D,CA2DsB+D,CAAY/D,EAAOC,GACnC+C,EAAS,CAAEpD,KAAM,YAAaC,QAAAA,IAC9B4D,EAAmCxD,EAAIyC,EACzC,GACA,CAACA,EAAOe,IAYJO,EAAmB,WACvBd,OAAYe,GACZlB,EAAOmB,SAAQ,SAAAlE,GACbyD,EAAmCzD,EAAMC,GAAIyC,EAC/C,KAQIyB,EAAe5F,EAAM6F,SACzB,WAAA,MAAO,CAAErB,OAAAA,EAAQvC,SAAAA,EAAU4C,YAAAA,EAAc,GACzC,CAAC5C,EAAU4C,EAAaL,IAG1B,OACExE,gBAACgB,EAAa8E,SAAS,CAAAC,MAAOH,GAC3BpB,EAAOwB,OAAS,GACfhG,EAAAI,cAAA,MAAA,CACEnB,UAAWqB,EACT,8CACwB+D,EACxBpF,GAEFwE,MAAOA,GAENe,EAAOyB,MAAM,EAAG,GAAGzE,KAAI,SAAA0E,GAAW,OACjClG,EAACI,cAAAU,EACC,CAAAxB,QAAS4G,EAAY5G,QACrBI,MAAOwG,EAAYxG,MACnBF,SAzBS2G,EAyBYD,EAAYxE,GAzBH,WACxCmD,EAAYsB,GACZV,MAwBUW,cA1Cc3E,EA0CiByE,EA1CI,WACzCzE,EAAME,iBACVgD,EAAYlD,EAAMC,IAClB2E,OAAOC,OAAO1B,EAAclB,SAASiC,SAAQ,SAAAY,GAC3CxB,OAAOC,aAAauB,EACtB,IACA3B,EAAclB,QAAU,MAqCd8C,aAAcf,EACdtG,SAAUuF,IAAewB,EAAYxE,GACrC/B,oBAAqBuG,EAAYvE,eACjC8E,IAAKP,EAAYxE,IAEhBwE,EAAYxF,SAhDA,IAACe,EAgBL0E,CAiCK,KAIrBnH,EAGP"}
|
package/dist/alert.esm.js
CHANGED
|
@@ -2,8 +2,9 @@ import { warnAboutMissingStyles } from '@entur/utils';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { CloseIcon, OutlinedValidationCheckIcon, OutlinedValidationInfoIcon, OutlinedValidationExclamationIcon, OutlinedValidationErrorIcon, CopyIcon } from '@entur/icons';
|
|
5
|
-
import copy from 'copy-text-to-clipboard';
|
|
6
5
|
import { IconButton } from '@entur/button';
|
|
6
|
+
import { Tooltip } from '@entur/tooltip';
|
|
7
|
+
import copy from 'copy-text-to-clipboard';
|
|
7
8
|
import { PreformattedText } from '@entur/typography';
|
|
8
9
|
import { BaseExpand, ExpandArrow } from '@entur/expand/';
|
|
9
10
|
|
|
@@ -84,12 +85,7 @@ var BaseAlertBox = function BaseAlertBox(_ref) {
|
|
|
84
85
|
className: classNames('eds-alert-box', "eds-alert-box--" + size, "eds-alert-box--" + variant, {
|
|
85
86
|
'eds-alert-box--toast--exit-animation': toastIsBeingRemoved
|
|
86
87
|
}, className)
|
|
87
|
-
}, rest),
|
|
88
|
-
"aria-label": closeButtonLabel,
|
|
89
|
-
className: "eds-alert-box__close-button",
|
|
90
|
-
type: "button",
|
|
91
|
-
onClick: handleClose
|
|
92
|
-
}, React.createElement(CloseIcon, null)), React.createElement(Icon, {
|
|
88
|
+
}, rest), React.createElement(Icon, {
|
|
93
89
|
role: "img",
|
|
94
90
|
className: "eds-alert-box__icon",
|
|
95
91
|
"aria-label": iconsMap[variant].description
|
|
@@ -100,7 +96,16 @@ var BaseAlertBox = function BaseAlertBox(_ref) {
|
|
|
100
96
|
})
|
|
101
97
|
}, title && React.createElement("div", {
|
|
102
98
|
className: "eds-alert-box__title"
|
|
103
|
-
}, title), children && children)
|
|
99
|
+
}, title), children && children), closable && React.createElement(Tooltip, {
|
|
100
|
+
className: "eds-alert-box__tooltip",
|
|
101
|
+
"aria-hidden": true,
|
|
102
|
+
placement: "bottom",
|
|
103
|
+
content: "Lukk"
|
|
104
|
+
}, React.createElement(IconButton, {
|
|
105
|
+
className: "eds-alert-box__close-button",
|
|
106
|
+
"aria-label": closeButtonLabel,
|
|
107
|
+
onClick: handleClose
|
|
108
|
+
}, React.createElement(CloseIcon, null))));
|
|
104
109
|
};
|
|
105
110
|
|
|
106
111
|
var BannerAlertBox = function BannerAlertBox(props) {
|
package/dist/alert.esm.js.map
CHANGED
|
@@ -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 OutlinedValidationCheckIcon,\n OutlinedValidationExclamationIcon,\n OutlinedValidationInfoIcon,\n OutlinedValidationErrorIcon,\n} from '@entur/icons';\nimport './styles.scss';\n\nconst iconsMap = {\n success: {\n icon: OutlinedValidationCheckIcon,\n description: 'Suksessmelding',\n },\n info: { icon: OutlinedValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: OutlinedValidationExclamationIcon,\n description: 'Varselmelding',\n },\n error: { icon: OutlinedValidationErrorIcon, description: 'Feilmelding' },\n};\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: 'success' | 'info' | 'warning' | '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 {closable && (\n <button\n aria-label={closeButtonLabel}\n className=\"eds-alert-box__close-button\"\n type=\"button\"\n onClick={handleClose}\n >\n <CloseIcon />\n </button>\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 </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\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: 'success' | 'info' | 'warning' | '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';\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' | '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\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: 'success' | 'info' | 'warning' | '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\ntype ToastVariants = 'success' | '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) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\ntype AddToastPayload =\n | { title?: string; content: React.ReactNode; variant?: ToastVariants }\n | string;\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 = (toast: AddToastPayload, id: ToastId): 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) => {\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) => 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<HTMLButtonElement>, '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 <button\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n ref={buttonRef}\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 >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </button>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\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\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | '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","OutlinedValidationCheckIcon","description","info","OutlinedValidationInfoIcon","warning","OutlinedValidationExclamationIcon","error","OutlinedValidationErrorIcon","BaseAlertBox","children","className","closable","closeButtonLabel","variant","onClose","size","title","toastIsBeingRemoved","rest","_excluded","React","useState","isClosed","setClosed","handleClose","Icon","createElement","classNames","type","onClick","CloseIcon","role","BannerAlertBox","props","ToastAlertBox","SmallAlertBox","width","EXIT_ANIMATION_TIME","ToastContext","createContext","toastReducer","prevToasts","action","payload","map","toast","id","isBeingRemoved","filter","createUniqueId","Math","random","toString","substring","createToast","content","ToastProvider","delay","position","style","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","successHeading","successMessage","textToCopy","ariaLabel","buttonRef","_textToCopy","_successMessage","handleClick","copy","target","ref","tabIndex","PreformattedText","IconButton","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","ExpandArrow","inline","warnAboutMissingStyles"],"mappings":"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"}
|
|
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 OutlinedValidationCheckIcon,\n OutlinedValidationExclamationIcon,\n OutlinedValidationInfoIcon,\n OutlinedValidationErrorIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: OutlinedValidationCheckIcon,\n description: 'Suksessmelding',\n },\n info: { icon: OutlinedValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: OutlinedValidationExclamationIcon,\n description: 'Varselmelding',\n },\n error: { icon: OutlinedValidationErrorIcon, description: 'Feilmelding' },\n};\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: 'success' | 'info' | 'warning' | '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 className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\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: 'success' | 'info' | 'warning' | '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\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' | '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\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: 'success' | 'info' | 'warning' | '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\ntype ToastVariants = 'success' | '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) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\ntype AddToastPayload =\n | { title?: string; content: React.ReactNode; variant?: ToastVariants }\n | string;\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 = (toast: AddToastPayload, id: ToastId): 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) => {\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) => 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<HTMLButtonElement>, '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 <button\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n ref={buttonRef}\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 >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </button>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\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\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | '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","OutlinedValidationCheckIcon","description","info","OutlinedValidationInfoIcon","warning","OutlinedValidationExclamationIcon","error","OutlinedValidationErrorIcon","BaseAlertBox","children","className","closable","closeButtonLabel","variant","onClose","size","title","toastIsBeingRemoved","rest","_excluded","React","useState","isClosed","setClosed","handleClose","Icon","createElement","classNames","role","Tooltip","placement","content","IconButton","onClick","CloseIcon","BannerAlertBox","props","ToastAlertBox","SmallAlertBox","width","EXIT_ANIMATION_TIME","ToastContext","createContext","toastReducer","prevToasts","action","type","payload","map","toast","id","isBeingRemoved","filter","createUniqueId","Math","random","toString","substring","createToast","ToastProvider","delay","position","style","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","successHeading","successMessage","textToCopy","ariaLabel","buttonRef","_textToCopy","_successMessage","handleClick","copy","target","ref","tabIndex","PreformattedText","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","ExpandArrow","inline","warnAboutMissingStyles"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -59,7 +59,6 @@
|
|
|
59
59
|
border-color: #ff9494;
|
|
60
60
|
color: #d31b1b;
|
|
61
61
|
}
|
|
62
|
-
|
|
63
62
|
.eds-alert-box__icon {
|
|
64
63
|
display: inline-block;
|
|
65
64
|
flex: 0 0 1em;
|
|
@@ -73,14 +72,13 @@
|
|
|
73
72
|
margin-top: -0.25rem;
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
|
-
|
|
77
75
|
.eds-alert-box__title {
|
|
78
76
|
font-weight: 600;
|
|
79
77
|
margin: 0;
|
|
80
78
|
}
|
|
81
|
-
|
|
82
79
|
.eds-alert-box__content {
|
|
83
80
|
color: #181c56;
|
|
81
|
+
flex: 1;
|
|
84
82
|
}
|
|
85
83
|
.eds-alert-box__content--no-title, .eds-alert-box__content--no-children {
|
|
86
84
|
display: flex;
|
|
@@ -95,42 +93,34 @@
|
|
|
95
93
|
.eds-alert-box__content > *:last-child {
|
|
96
94
|
margin-bottom: 0;
|
|
97
95
|
}
|
|
98
|
-
|
|
99
96
|
.eds-alert-box__close-button {
|
|
100
|
-
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
97
|
+
margin-top: -0.3125rem;
|
|
98
|
+
margin-left: 0.5rem;
|
|
99
|
+
height: -moz-fit-content;
|
|
100
|
+
height: fit-content;
|
|
101
|
+
width: -moz-fit-content;
|
|
102
|
+
width: fit-content;
|
|
106
103
|
color: #181c56;
|
|
107
|
-
cursor: pointer;
|
|
108
|
-
font-size: 1rem;
|
|
109
|
-
height: 1.5rem;
|
|
110
|
-
width: 1.5rem;
|
|
111
|
-
padding: 0;
|
|
112
|
-
position: absolute;
|
|
113
|
-
right: 1rem;
|
|
114
|
-
top: 1rem;
|
|
115
104
|
}
|
|
116
|
-
.eds-alert-box__close-button:
|
|
117
|
-
|
|
118
|
-
outline: 2px solid #181c56;
|
|
105
|
+
.eds-alert-box__close-button:hover, .eds-contrast .eds-alert-box__close-button:hover {
|
|
106
|
+
background: rgba(0, 0, 0, 0.1);
|
|
119
107
|
}
|
|
120
|
-
|
|
121
|
-
.
|
|
122
|
-
font-size: 1.5rem;
|
|
123
|
-
right: 1.5rem;
|
|
124
|
-
top: 1.5rem;
|
|
125
|
-
height: 1.5rem;
|
|
126
|
-
width: 1.5rem;
|
|
127
|
-
}
|
|
128
|
-
.eds-alert-box--toast .eds-alert-box__close-button {
|
|
129
|
-
right: 1rem;
|
|
130
|
-
top: 1rem;
|
|
131
|
-
}
|
|
108
|
+
.eds-alert-box__close-button:active, .eds-contrast .eds-alert-box__close-button:active {
|
|
109
|
+
background: rgba(0, 0, 0, 0.3);
|
|
132
110
|
}
|
|
133
|
-
|
|
111
|
+
.eds-alert-box__close-button:focus, .eds-contrast .eds-alert-box__close-button:focus {
|
|
112
|
+
border: 0.0625rem solid #181c56;
|
|
113
|
+
outline: none;
|
|
114
|
+
}
|
|
115
|
+
.eds-contrast .eds-alert-box .eds-alert-box__tooltip {
|
|
116
|
+
background: #181c56;
|
|
117
|
+
color: #ffffff;
|
|
118
|
+
}
|
|
119
|
+
.eds-contrast .eds-alert-box .eds-alert-box__tooltip::after {
|
|
120
|
+
background: #181c56;
|
|
121
|
+
}
|
|
122
|
+
/* DO NOT CHANGE!*/
|
|
123
|
+
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
134
124
|
.eds-toast-container {
|
|
135
125
|
position: fixed;
|
|
136
126
|
z-index: 50;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/alert",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.11",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/alert.esm.js",
|
|
@@ -27,14 +27,14 @@
|
|
|
27
27
|
"react-dom": ">=16.8.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@entur/button": "^3.2.
|
|
31
|
-
"@entur/expand": "^3.4.
|
|
32
|
-
"@entur/icons": "^6.
|
|
30
|
+
"@entur/button": "^3.2.3",
|
|
31
|
+
"@entur/expand": "^3.4.19",
|
|
32
|
+
"@entur/icons": "^6.13.0",
|
|
33
33
|
"@entur/tokens": "^3.11.1",
|
|
34
|
-
"@entur/typography": "^1.8.
|
|
34
|
+
"@entur/typography": "^1.8.18",
|
|
35
35
|
"@entur/utils": "^0.9.5",
|
|
36
36
|
"classnames": "^2.3.1",
|
|
37
37
|
"copy-text-to-clipboard": "^2.2"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "9710b2aa46f13d914e531f16f197052e8d09d9ca"
|
|
40
40
|
}
|