@entur/alert 0.15.21 → 0.15.22
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/alert.cjs.development.js +1 -0
- 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 +1 -0
- package/dist/alert.esm.js.map +1 -1
- package/dist/styles.css +484 -32
- package/package.json +8 -8
|
@@ -106,6 +106,7 @@ var BaseAlertBox = function BaseAlertBox(_ref) {
|
|
|
106
106
|
placement: "bottom",
|
|
107
107
|
content: "Lukk"
|
|
108
108
|
}, React.createElement(button.IconButton, {
|
|
109
|
+
"data-color-mode": "light",
|
|
109
110
|
className: "eds-alert-box__close-button",
|
|
110
111
|
"aria-label": closeButtonLabel,
|
|
111
112
|
onClick: handleClose,
|
|
@@ -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 { 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 type=\"button\"\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\nexport type 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 | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport 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","type","CloseIcon","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","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","tabIndex","PreformattedText","ref","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 data-color-mode=\"light\"\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\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\nexport type 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 | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport 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","type","CloseIcon","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","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","tabIndex","PreformattedText","ref","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("@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()},type:"button"},t.createElement(a.CloseIcon,null))))},b=function(e){return t.createElement(p,c({},e,{size:"toast",role:"status"}))},v=["className","width","onClose","closable","closeButtonLabel"],f=t.createContext(null),x=function(e,t){switch(t.type){case"ADD_TOAST":return[t.payload].concat(e);case"PLAY_EXIT_ANIMATION":return e.map((function(e){return e.id===t.payload?c({},e,{isBeingRemoved:!0}):e}));case"REMOVE_TOAST":return e.filter((function(e){return e.id!==t.payload}))}},E=function(){var e=t.useContext(f);if(!e)throw new Error("You need to wrap your component in a ToastProvider component in order to use the useToast hook");return{addToast:e.addToast}},y=["children","successHeading","successMessage","textToCopy","className","aria-label"],_=["variant","title","children","size","className","openLabel","closeLabel"],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("div",c({className:"eds-copyable-text "+p,style:c({},f.style),type:"button",onClick:function(){_.current&&l(T,{target:_.current})&&x({title:s,content:g})},tabIndex:-1,"aria-label":""},f),t.createElement(i.PreformattedText,{className:"eds-copyable-text__preformatted-text"},t.createElement("span",{className:"eds-copyable-text__displayed-text"},n),t.createElement(o.IconButton,{className:"eds-copyable-text__button","aria-label":v,type:"button",ref:_},t.createElement(a.CopyIcon,{className:"eds-copyable-text__button__icon"}))))},exports.SmallAlertBox=function(e){var a=e.className,o=e.width,r=e.onClose,l=e.closable,i=void 0!==l&&l,s=e.closeButtonLabel,d=u(e,v);return t.createElement(p,c({className:n(a,{"eds-alert-box--fit-content":"fit-content"===o})},d,{onClose:r,closable:i,closeButtonLabel:s,size:"small"}))},exports.SmallExpandableAlertBox=function(e){return t.createElement(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;
|
|
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,{"data-color-mode":"light",className:"eds-alert-box__close-button","aria-label":v,onClick:function(){h(!0),E()},type:"button"},t.createElement(a.CloseIcon,null))))},b=function(e){return t.createElement(p,c({},e,{size:"toast",role:"status"}))},v=["className","width","onClose","closable","closeButtonLabel"],f=t.createContext(null),x=function(e,t){switch(t.type){case"ADD_TOAST":return[t.payload].concat(e);case"PLAY_EXIT_ANIMATION":return e.map((function(e){return e.id===t.payload?c({},e,{isBeingRemoved:!0}):e}));case"REMOVE_TOAST":return e.filter((function(e){return e.id!==t.payload}))}},E=function(){var e=t.useContext(f);if(!e)throw new Error("You need to wrap your component in a ToastProvider component in order to use the useToast hook");return{addToast:e.addToast}},y=["children","successHeading","successMessage","textToCopy","className","aria-label"],_=["variant","title","children","size","className","openLabel","closeLabel"],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("div",c({className:"eds-copyable-text "+p,style:c({},f.style),type:"button",onClick:function(){_.current&&l(T,{target:_.current})&&x({title:s,content:g})},tabIndex:-1,"aria-label":""},f),t.createElement(i.PreformattedText,{className:"eds-copyable-text__preformatted-text"},t.createElement("span",{className:"eds-copyable-text__displayed-text"},n),t.createElement(o.IconButton,{className:"eds-copyable-text__button","aria-label":v,type:"button",ref:_},t.createElement(a.CopyIcon,{className:"eds-copyable-text__button__icon"}))))},exports.SmallAlertBox=function(e){var a=e.className,o=e.width,r=e.onClose,l=e.closable,i=void 0!==l&&l,s=e.closeButtonLabel,d=u(e,v);return t.createElement(p,c({className:n(a,{"eds-alert-box--fit-content":"fit-content"===o})},d,{onClose:r,closable:i,closeButtonLabel:s,size:"small"}))},exports.SmallExpandableAlertBox=function(e){return t.createElement(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 { 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 type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\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\nexport type 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 | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport 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<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\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","type","CloseIcon","ToastAlertBox","props","ToastContext","createContext","toastReducer","prevToasts","action","payload","concat","map","toast","id","isBeingRemoved","filter","useToast","context","useContext","Error","addToast","ExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","_ref2","_ref2$openLabel","_ref2$closeLabel","ExpandArrow","inline","warnAboutMissingStyles","_ref$successHeading","successHeading","successMessage","textToCopy","_ref$ariaLabel","ariaLabel","buttonRef","useRef","_textToCopy","_successMessage","style","current","copy","target","tabIndex","PreformattedText","ref","CopyIcon","width","_ref$delay","delay","_ref$position","position","_React$useReducer","useReducer","toasts","dispatch","hoveringId","setHovering","timeoutIdRefs","removeToast","useCallback","window","clearTimeout","playExitAnimation","removeToastWithAnimationAfterDelay","setTimeout","Math","random","toString","substring","createToast","handleMouseLeave","undefined","forEach","contextValue","useMemo","Provider","value","length","slice","toastToShow","toastId","onMouseEnter","Object","values","timeoutId","onMouseLeave","key"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alert.cjs.production.min.js","sources":["../src/BaseAlertBox.tsx","../src/ToastAlertBox.tsx","../src/ToastProvider.tsx","../src/ExpandableAlertBox.tsx","../src/index.tsx","../src/BannerAlertBox.tsx","../src/CopyableText.tsx","../src/SmallAlertBox.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport {\n CloseIcon,\n 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 data-color-mode=\"light\"\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\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\nexport type 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 | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport 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<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\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","type","CloseIcon","ToastAlertBox","props","ToastContext","createContext","toastReducer","prevToasts","action","payload","concat","map","toast","id","isBeingRemoved","filter","useToast","context","useContext","Error","addToast","ExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","_ref2","_ref2$openLabel","_ref2$closeLabel","ExpandArrow","inline","warnAboutMissingStyles","_ref$successHeading","successHeading","successMessage","textToCopy","_ref$ariaLabel","ariaLabel","buttonRef","useRef","_textToCopy","_successMessage","style","current","copy","target","tabIndex","PreformattedText","ref","CopyIcon","width","_ref$delay","delay","_ref$position","position","_React$useReducer","useReducer","toasts","dispatch","hoveringId","setHovering","timeoutIdRefs","removeToast","useCallback","window","clearTimeout","playExitAnimation","removeToastWithAnimationAfterDelay","setTimeout","Math","random","toString","substring","createToast","handleMouseLeave","undefined","forEach","contextValue","useMemo","Provider","value","length","slice","toastToShow","toastId","onMouseEnter","Object","values","timeoutId","onMouseLeave","key"],"mappings":"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"}
|
package/dist/alert.esm.js
CHANGED
|
@@ -102,6 +102,7 @@ var BaseAlertBox = function BaseAlertBox(_ref) {
|
|
|
102
102
|
placement: "bottom",
|
|
103
103
|
content: "Lukk"
|
|
104
104
|
}, React.createElement(IconButton, {
|
|
105
|
+
"data-color-mode": "light",
|
|
105
106
|
className: "eds-alert-box__close-button",
|
|
106
107
|
"aria-label": closeButtonLabel,
|
|
107
108
|
onClick: handleClose,
|
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 { 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 type=\"button\"\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\nexport type 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 | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport 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","type","CloseIcon","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","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","tabIndex","PreformattedText","ref","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 data-color-mode=\"light\"\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\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\nexport type 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 | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n 'aria-label': ariaLabel = `Kopier ${\n textToCopy ?? children\n } til utklippstavlen`,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const _textToCopy = textToCopy ?? children;\n const _successMessage =\n successMessage ?? `${_textToCopy} ble kopiert til utklippstavlen.`;\n const handleClick = () => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport 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","type","CloseIcon","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","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","tabIndex","PreformattedText","ref","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","ExpandArrow","inline","warnAboutMissingStyles"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/* DO NOT CHANGE!*/
|
|
2
2
|
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
3
3
|
.eds-alert-box {
|
|
4
|
-
border: 0.0625rem solid;
|
|
4
|
+
border: 0.0625rem solid transparent;
|
|
5
5
|
border-radius: 0.25rem;
|
|
6
|
-
color: #181c56;
|
|
7
6
|
display: flex;
|
|
8
7
|
padding: 0.75rem;
|
|
9
8
|
position: relative;
|
|
@@ -40,24 +39,68 @@
|
|
|
40
39
|
width: fit-content;
|
|
41
40
|
}
|
|
42
41
|
.eds-alert-box--success {
|
|
43
|
-
background-color:
|
|
44
|
-
border-color:
|
|
45
|
-
color:
|
|
42
|
+
background-color: var(--components-alert-alertbox-success-standard-fill);
|
|
43
|
+
border-color: var(--components-alert-alertbox-success-standard-border);
|
|
44
|
+
color: var(--components-alert-alertbox-success-standard-text);
|
|
45
|
+
}
|
|
46
|
+
.eds-alert-box--success .eds-alert-box__icon {
|
|
47
|
+
color: var(--components-alert-alertbox-success-standard-icon);
|
|
48
|
+
}
|
|
49
|
+
.eds-contrast .eds-alert-box--success {
|
|
50
|
+
background-color: var(--components-alert-alertbox-success-contrast-fill);
|
|
51
|
+
border-color: transparent;
|
|
52
|
+
color: var(--components-alert-alertbox-success-contrast-text);
|
|
53
|
+
}
|
|
54
|
+
.eds-contrast .eds-alert-box--success .eds-alert-box__icon {
|
|
55
|
+
color: var(--components-alert-alertbox-success-contrast-icon);
|
|
46
56
|
}
|
|
47
57
|
.eds-alert-box--info {
|
|
48
|
-
background-color:
|
|
49
|
-
border-color:
|
|
50
|
-
color:
|
|
58
|
+
background-color: var(--components-alert-alertbox-information-standard-fill);
|
|
59
|
+
border-color: var(--components-alert-alertbox-information-standard-border);
|
|
60
|
+
color: var(--components-alert-alertbox-information-standard-text);
|
|
61
|
+
}
|
|
62
|
+
.eds-alert-box--info .eds-alert-box__icon {
|
|
63
|
+
color: var(--components-alert-alertbox-information-standard-icon);
|
|
64
|
+
}
|
|
65
|
+
.eds-contrast .eds-alert-box--info {
|
|
66
|
+
background-color: var(--components-alert-alertbox-information-contrast-fill);
|
|
67
|
+
border-color: transparent;
|
|
68
|
+
color: var(--components-alert-alertbox-information-contrast-text);
|
|
69
|
+
}
|
|
70
|
+
.eds-contrast .eds-alert-box--info .eds-alert-box__icon {
|
|
71
|
+
color: var(--components-alert-alertbox-information-contrast-icon);
|
|
51
72
|
}
|
|
52
73
|
.eds-alert-box--warning {
|
|
53
|
-
background-color:
|
|
54
|
-
border-color:
|
|
55
|
-
color:
|
|
74
|
+
background-color: var(--components-alert-alertbox-warning-standard-fill);
|
|
75
|
+
border-color: var(--components-alert-alertbox-warning-standard-border);
|
|
76
|
+
color: var(--components-alert-alertbox-warning-standard-text);
|
|
77
|
+
}
|
|
78
|
+
.eds-alert-box--warning .eds-alert-box__icon {
|
|
79
|
+
color: var(--components-alert-alertbox-warning-standard-icon);
|
|
80
|
+
}
|
|
81
|
+
.eds-contrast .eds-alert-box--warning {
|
|
82
|
+
background-color: var(--components-alert-alertbox-warning-contrast-fill);
|
|
83
|
+
border-color: transparent;
|
|
84
|
+
color: var(--components-alert-alertbox-warning-contrast-text);
|
|
85
|
+
}
|
|
86
|
+
.eds-contrast .eds-alert-box--warning .eds-alert-box__icon {
|
|
87
|
+
color: var(--components-alert-alertbox-warning-contrast-icon);
|
|
56
88
|
}
|
|
57
89
|
.eds-alert-box--error {
|
|
58
|
-
background-color:
|
|
59
|
-
border-color:
|
|
60
|
-
color:
|
|
90
|
+
background-color: var(--components-alert-alertbox-negative-standard-fill);
|
|
91
|
+
border-color: var(--components-alert-alertbox-negative-standard-border);
|
|
92
|
+
color: var(--components-alert-alertbox-negative-standard-text);
|
|
93
|
+
}
|
|
94
|
+
.eds-alert-box--error .eds-alert-box__icon {
|
|
95
|
+
color: var(--components-alert-alertbox-negative-standard-icon);
|
|
96
|
+
}
|
|
97
|
+
.eds-contrast .eds-alert-box--error {
|
|
98
|
+
background-color: var(--components-alert-alertbox-negative-contrast-fill);
|
|
99
|
+
border-color: transparent;
|
|
100
|
+
color: var(--components-alert-alertbox-negative-contrast-text);
|
|
101
|
+
}
|
|
102
|
+
.eds-contrast .eds-alert-box--error .eds-alert-box__icon {
|
|
103
|
+
color: var(--components-alert-alertbox-negative-contrast-icon);
|
|
61
104
|
}
|
|
62
105
|
.eds-alert-box__icon {
|
|
63
106
|
display: inline-block;
|
|
@@ -77,7 +120,6 @@
|
|
|
77
120
|
margin: 0;
|
|
78
121
|
}
|
|
79
122
|
.eds-alert-box__content {
|
|
80
|
-
color: #181c56;
|
|
81
123
|
flex: 1;
|
|
82
124
|
}
|
|
83
125
|
.eds-alert-box__content--no-title, .eds-alert-box__content--no-children {
|
|
@@ -100,23 +142,25 @@
|
|
|
100
142
|
height: fit-content;
|
|
101
143
|
width: -moz-fit-content;
|
|
102
144
|
width: fit-content;
|
|
103
|
-
|
|
145
|
+
}
|
|
146
|
+
.eds-alert-box__close-button, .eds-contrast .eds-alert-box__close-button {
|
|
147
|
+
color: var(--components-button-iconbutton-standard-text);
|
|
104
148
|
}
|
|
105
149
|
.eds-alert-box__close-button:hover, .eds-contrast .eds-alert-box__close-button:hover {
|
|
106
|
-
background:
|
|
150
|
+
background: var(--components-button-iconbutton-standard-hover);
|
|
107
151
|
}
|
|
108
152
|
.eds-alert-box__close-button:active, .eds-contrast .eds-alert-box__close-button:active {
|
|
109
|
-
background:
|
|
153
|
+
background: var(--components-button-iconbutton-standard-active);
|
|
110
154
|
}
|
|
111
155
|
.eds-alert-box__close-button:focus, .eds-contrast .eds-alert-box__close-button:focus {
|
|
112
156
|
outline: 2px solid #181c56;
|
|
113
157
|
}
|
|
114
158
|
.eds-contrast .eds-alert-box .eds-alert-box__tooltip {
|
|
115
|
-
background:
|
|
116
|
-
color:
|
|
159
|
+
background: var(--components-tooltip-tooltip-standard-fill);
|
|
160
|
+
color: var(--components-tooltip-tooltip-standard-text);
|
|
117
161
|
}
|
|
118
162
|
.eds-contrast .eds-alert-box .eds-alert-box__tooltip::after {
|
|
119
|
-
background:
|
|
163
|
+
background: var(--components-tooltip-tooltip-standard-fill);
|
|
120
164
|
}
|
|
121
165
|
/* DO NOT CHANGE!*/
|
|
122
166
|
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
@@ -209,7 +253,11 @@
|
|
|
209
253
|
}
|
|
210
254
|
.eds-copyable-text__preformatted-text:hover,
|
|
211
255
|
.eds-contrast .eds-copyable-text__preformatted-text:hover {
|
|
212
|
-
border-color:
|
|
256
|
+
border-color: var(--components-alert-copyabletext-standard-border-interactive);
|
|
257
|
+
}
|
|
258
|
+
.eds-contrast .eds-copyable-text__preformatted-text:hover,
|
|
259
|
+
.eds-contrast .eds-contrast .eds-copyable-text__preformatted-text:hover {
|
|
260
|
+
border-color: var(--components-alert-copyabletext-contrast-border-interactive);
|
|
213
261
|
}
|
|
214
262
|
.eds-copyable-text__displayed-text,
|
|
215
263
|
.eds-contrast .eds-copyable-text__displayed-text {
|
|
@@ -221,6 +269,7 @@
|
|
|
221
269
|
.eds-copyable-text .eds-contrast .eds-copyable-text__button,
|
|
222
270
|
.eds-contrast .eds-copyable-text .eds-copyable-text__button,
|
|
223
271
|
.eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button {
|
|
272
|
+
color: var(--components-alert-copyabletext-standard-text);
|
|
224
273
|
margin: -0.5rem;
|
|
225
274
|
margin-left: 0.5rem;
|
|
226
275
|
width: -moz-fit-content;
|
|
@@ -228,25 +277,52 @@
|
|
|
228
277
|
height: -moz-fit-content;
|
|
229
278
|
height: fit-content;
|
|
230
279
|
}
|
|
231
|
-
.eds-copyable-text .eds-copyable-text__button
|
|
280
|
+
.eds-copyable-text .eds-copyable-text__button, .eds-contrast .eds-copyable-text .eds-copyable-text__button,
|
|
281
|
+
.eds-copyable-text .eds-contrast .eds-copyable-text__button,
|
|
282
|
+
.eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button,
|
|
283
|
+
.eds-contrast .eds-copyable-text .eds-copyable-text__button,
|
|
284
|
+
.eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button,
|
|
285
|
+
.eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button,
|
|
286
|
+
.eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button {
|
|
287
|
+
color: var(--components-alert-copyabletext-standard-text);
|
|
288
|
+
}
|
|
289
|
+
.eds-copyable-text .eds-copyable-text__button:hover, .eds-contrast .eds-copyable-text .eds-copyable-text__button:hover,
|
|
232
290
|
.eds-copyable-text .eds-contrast .eds-copyable-text__button:hover,
|
|
291
|
+
.eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:hover,
|
|
233
292
|
.eds-contrast .eds-copyable-text .eds-copyable-text__button:hover,
|
|
234
|
-
.eds-contrast .eds-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
293
|
+
.eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:hover,
|
|
294
|
+
.eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:hover,
|
|
295
|
+
.eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:hover {
|
|
296
|
+
background: var(--components-button-iconbutton-standard-hover);
|
|
297
|
+
}
|
|
298
|
+
.eds-copyable-text .eds-copyable-text__button:active, .eds-contrast .eds-copyable-text .eds-copyable-text__button:active,
|
|
299
|
+
.eds-copyable-text .eds-contrast .eds-copyable-text__button:active,
|
|
300
|
+
.eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:active,
|
|
301
|
+
.eds-contrast .eds-copyable-text .eds-copyable-text__button:active,
|
|
302
|
+
.eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:active,
|
|
303
|
+
.eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:active,
|
|
304
|
+
.eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:active {
|
|
305
|
+
background: var(--components-button-iconbutton-standard-active);
|
|
306
|
+
}
|
|
307
|
+
.eds-copyable-text .eds-copyable-text__button:focus, .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
|
|
239
308
|
.eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
|
|
309
|
+
.eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
|
|
240
310
|
.eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
|
|
241
|
-
.eds-contrast .eds-
|
|
311
|
+
.eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
|
|
312
|
+
.eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
|
|
313
|
+
.eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus {
|
|
242
314
|
outline: 2px solid #181c56;
|
|
315
|
+
outline-color: var(--basecolors-stroke-focus-standard);
|
|
243
316
|
outline-offset: 0.125rem;
|
|
244
317
|
}
|
|
245
|
-
.eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
|
|
318
|
+
.eds-contrast .eds-copyable-text .eds-copyable-text__button:focus, .eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
|
|
246
319
|
.eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
|
|
320
|
+
.eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
|
|
247
321
|
.eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
|
|
248
|
-
.eds-contrast .eds-contrast .eds-
|
|
249
|
-
|
|
322
|
+
.eds-contrast .eds-contrast .eds-contrast .eds-copyable-text .eds-copyable-text__button:focus,
|
|
323
|
+
.eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus,
|
|
324
|
+
.eds-contrast .eds-contrast .eds-contrast .eds-copyable-text .eds-contrast .eds-copyable-text__button:focus {
|
|
325
|
+
outline-color: var(--basecolors-stroke-focus-contrast);
|
|
250
326
|
}
|
|
251
327
|
/* DO NOT CHANGE!*/
|
|
252
328
|
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
@@ -293,6 +369,382 @@
|
|
|
293
369
|
font-size: 1rem;
|
|
294
370
|
padding-left: 0.25rem;
|
|
295
371
|
}
|
|
372
|
+
@import "~@entur/tokens/dist/primitive.css";
|
|
373
|
+
@import "~@entur/tokens/dist/semantic.css";
|
|
374
|
+
/* DO NOT CHANGE!*/
|
|
375
|
+
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
376
|
+
:root {
|
|
377
|
+
--fill-background-contrast-dark: var(--ebony-90);
|
|
378
|
+
--fill-background-contrast-light: var(--lavender-90);
|
|
379
|
+
--fill-background-contrast-lightalt: var(--blue-90);
|
|
380
|
+
--fill-background-contrast-lightalt-2: var(--blue-100);
|
|
381
|
+
--fill-background-overlay-solid: var(--ebony-80);
|
|
382
|
+
--fill-background-overlay-solidalt: var(--ebony-75);
|
|
383
|
+
--fill-background-overlay-transparent: var(--transparent-ebony-alpha15);
|
|
384
|
+
--fill-background-overlay-transparentalt: var(--transparent-ebony-alpha25);
|
|
385
|
+
--fill-background-standard-colorless: var(--white-alpha-0);
|
|
386
|
+
--fill-background-standard-dark: var(--ebony-100);
|
|
387
|
+
--fill-background-standard-light: var(--white-alpha-100);
|
|
388
|
+
--fill-background-subdued-dark: var(--ebony-85);
|
|
389
|
+
--fill-background-subdued-light: var(--blue-30);
|
|
390
|
+
--fill-background-tint-dark: var(--ebony-95);
|
|
391
|
+
--fill-background-tint-light: var(--blue-10);
|
|
392
|
+
--fill-background-tint-neutral: var(--grey-10);
|
|
393
|
+
--fill-background-tint-transparent: var(--transparent-blue-alpha10);
|
|
394
|
+
--fill-boolean-false-contrast: var(--blue-50);
|
|
395
|
+
--fill-boolean-false-dark: var(--transparent-ebony-alpha35);
|
|
396
|
+
--fill-boolean-false-light: var(--grey-60);
|
|
397
|
+
--fill-boolean-true-contrast: var(--mint-40);
|
|
398
|
+
--fill-boolean-true-dark: var(--mint-40);
|
|
399
|
+
--fill-boolean-true-light: var(--mint-60);
|
|
400
|
+
--fill-disabled-light: var(--grey-40);
|
|
401
|
+
--fill-disabled-transparent: var(--transparent-neutral-alpha15);
|
|
402
|
+
--fill-disabled-transparentalt: var(--transparent-neutral-alpha10);
|
|
403
|
+
--fill-information-contrast: var(--sky-30);
|
|
404
|
+
--fill-information-deep: var(--sky-50);
|
|
405
|
+
--fill-information-muted: var(--sky-10);
|
|
406
|
+
--fill-information-tint: var(--sky-20);
|
|
407
|
+
--fill-negative-contrast: var(--coral-40);
|
|
408
|
+
--fill-negative-dark: var(--coral-90);
|
|
409
|
+
--fill-negative-deep: var(--coral-60);
|
|
410
|
+
--fill-negative-muted: var(--coral-20);
|
|
411
|
+
--fill-negative-tint: var(--coral-30);
|
|
412
|
+
--fill-negative-transparent: var(--transparent-coral-alpha20);
|
|
413
|
+
--fill-primary-active-contrast: var(--lavender-50);
|
|
414
|
+
--fill-primary-active-light: var(--lavender-100);
|
|
415
|
+
--fill-primary-default-contrast: var(--lavender-40);
|
|
416
|
+
--fill-primary-default-light: var(--lavender-90);
|
|
417
|
+
--fill-primary-hover-contrast: var(--lavender-30);
|
|
418
|
+
--fill-primary-hover-light: var(--blue-90);
|
|
419
|
+
--fill-secondary-active-contrast: var(--lavender-50);
|
|
420
|
+
--fill-secondary-active-light: var(--lavender-40);
|
|
421
|
+
--fill-secondary-default-colorless: var(--white-alpha-0);
|
|
422
|
+
--fill-secondary-hover-contrast: var(--blue-70);
|
|
423
|
+
--fill-secondary-hover-light: var(--lavender-20);
|
|
424
|
+
--fill-selected-default-contrast: var(--blue-90);
|
|
425
|
+
--fill-selected-default-dark: var(--ebony-10);
|
|
426
|
+
--fill-selected-default-darkalt: var(--ebony-50);
|
|
427
|
+
--fill-selected-default-light: var(--blue-10);
|
|
428
|
+
--fill-selected-default-neutral: var(--grey-30);
|
|
429
|
+
--fill-selected-hover-contrast: var(--blue-80);
|
|
430
|
+
--fill-selected-hover-dark: var(--transparent-ebony-alpha35);
|
|
431
|
+
--fill-selected-hover-light: var(--blue-20);
|
|
432
|
+
--fill-selected-hover-neutral: var(--grey-20);
|
|
433
|
+
--fill-success-contrast: var(--mint-40);
|
|
434
|
+
--fill-success-deep: var(--mint-60);
|
|
435
|
+
--fill-success-muted: var(--mint-20);
|
|
436
|
+
--fill-success-subdued: var(--mint-50);
|
|
437
|
+
--fill-success-tint: var(--mint-30);
|
|
438
|
+
--fill-warning-contrast: var(--canary-40);
|
|
439
|
+
--fill-warning-deep: var(--canary-60);
|
|
440
|
+
--fill-warning-muted: var(--canary-20);
|
|
441
|
+
--fill-warning-tint: var(--canary-30);
|
|
442
|
+
--shape-accent: var(--lavender-90);
|
|
443
|
+
--shape-contrast: var(--lavender-40);
|
|
444
|
+
--shape-dark: var(--ebony-100);
|
|
445
|
+
--shape-darkalt: var(--ebony-30);
|
|
446
|
+
--shape-disabled: var(--grey-80);
|
|
447
|
+
--shape-highlight: var(--coral-40);
|
|
448
|
+
--shape-highlightalt: var(--coral-30);
|
|
449
|
+
--shape-inactive: var(--blue-40);
|
|
450
|
+
--shape-information: var(--sky-50);
|
|
451
|
+
--shape-informationalt: var(--sky-30);
|
|
452
|
+
--shape-light: var(--white-alpha-100);
|
|
453
|
+
--shape-lightalt: var(--ebony-10);
|
|
454
|
+
--shape-negative: var(--coral-60);
|
|
455
|
+
--shape-negativealt: var(--coral-30);
|
|
456
|
+
--shape-neutral: var(--grey-70);
|
|
457
|
+
--shape-neutralalt: var(--grey-50);
|
|
458
|
+
--shape-neutralalt2: var(--grey-60);
|
|
459
|
+
--shape-subdued: var(--blue-70);
|
|
460
|
+
--shape-subduedalt: var(--blue-30);
|
|
461
|
+
--shape-success: var(--mint-60);
|
|
462
|
+
--shape-successalt: var(--mint-40);
|
|
463
|
+
--shape-warning: var(--canary-60);
|
|
464
|
+
--shape-warningalt: var(--canary-40);
|
|
465
|
+
--stroke-accent: var(--lavender-90);
|
|
466
|
+
--stroke-colorless: var(--white-alpha-0);
|
|
467
|
+
--stroke-contrast: var(--lavender-40);
|
|
468
|
+
--stroke-contrastalt: var(--blue-80);
|
|
469
|
+
--stroke-dark: var(--ebony-30);
|
|
470
|
+
--stroke-darkalt: var(--ebony-50);
|
|
471
|
+
--stroke-darkalt-2: var(--ebony-100);
|
|
472
|
+
--stroke-highlight: var(--coral-40);
|
|
473
|
+
--stroke-highlightalt: var(--coral-30);
|
|
474
|
+
--stroke-information: var(--sky-50);
|
|
475
|
+
--stroke-light: var(--white-alpha-100);
|
|
476
|
+
--stroke-lightalt: var(--ebony-10);
|
|
477
|
+
--stroke-negative: var(--coral-60);
|
|
478
|
+
--stroke-negativealt: var(--coral-30);
|
|
479
|
+
--stroke-neutral: var(--grey-30);
|
|
480
|
+
--stroke-neutralalt: var(--grey-60);
|
|
481
|
+
--stroke-subdued: var(--blue-60);
|
|
482
|
+
--stroke-success: var(--mint-60);
|
|
483
|
+
--stroke-successalt: var(--mint-40);
|
|
484
|
+
--stroke-transparent: var(--transparent-blue-alpha40);
|
|
485
|
+
--stroke-transparentalt: var(--transparent-lavender-alpha70);
|
|
486
|
+
--stroke-warning: var(--canary-70);
|
|
487
|
+
--text-accent: var(--lavender-90);
|
|
488
|
+
--text-dark: var(--ebony-100);
|
|
489
|
+
--text-darkalt: var(--ebony-30);
|
|
490
|
+
--text-disabled: var(--grey-80);
|
|
491
|
+
--text-highlight: var(--lavender-40);
|
|
492
|
+
--text-highlightalt: var(--peach-40);
|
|
493
|
+
--text-light: var(--white-alpha-100);
|
|
494
|
+
--text-lightalt: var(--ebony-10);
|
|
495
|
+
--text-negative: var(--coral-60);
|
|
496
|
+
--text-negativealt: var(--coral-30);
|
|
497
|
+
--text-neutral: var(--grey-70);
|
|
498
|
+
--text-neutralalt: var(--grey-50);
|
|
499
|
+
--text-neutralalt2: var(--grey-60);
|
|
500
|
+
--text-subdued: var(--blue-70);
|
|
501
|
+
--text-subduedalt: var(--blue-30);
|
|
502
|
+
--text-success: var(--mint-60);
|
|
503
|
+
--text-successalt: var(--mint-40);
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
/* DO NOT CHANGE!*/
|
|
507
|
+
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
508
|
+
[data-color-mode=light],
|
|
509
|
+
:root {
|
|
510
|
+
--components-alert-alertbox-information-contrast-border: var(--stroke-colorless);
|
|
511
|
+
--components-alert-alertbox-information-contrast-fill: var(--fill-information-tint);
|
|
512
|
+
--components-alert-alertbox-information-contrast-icon: var(--shape-accent);
|
|
513
|
+
--components-alert-alertbox-information-contrast-iconborder: var(--stroke-accent);
|
|
514
|
+
--components-alert-alertbox-information-contrast-text: var(--text-accent);
|
|
515
|
+
--components-alert-alertbox-information-standard-border: var(--stroke-information);
|
|
516
|
+
--components-alert-alertbox-information-standard-fill: var(--fill-information-muted);
|
|
517
|
+
--components-alert-alertbox-information-standard-icon: var(--shape-information);
|
|
518
|
+
--components-alert-alertbox-information-standard-iconborder: var(--stroke-information);
|
|
519
|
+
--components-alert-alertbox-information-standard-text: var(--text-accent);
|
|
520
|
+
--components-alert-alertbox-negative-contrast-border: var(--stroke-colorless);
|
|
521
|
+
--components-alert-alertbox-negative-contrast-fill: var(--fill-negative-tint);
|
|
522
|
+
--components-alert-alertbox-negative-contrast-icon: var(--shape-accent);
|
|
523
|
+
--components-alert-alertbox-negative-contrast-iconborder: var(--stroke-accent);
|
|
524
|
+
--components-alert-alertbox-negative-contrast-text: var(--text-accent);
|
|
525
|
+
--components-alert-alertbox-negative-standard-border: var(--stroke-colorless);
|
|
526
|
+
--components-alert-alertbox-negative-standard-fill: var(--fill-negative-muted);
|
|
527
|
+
--components-alert-alertbox-negative-standard-icon: var(--shape-negative);
|
|
528
|
+
--components-alert-alertbox-negative-standard-iconborder: var(--stroke-negative);
|
|
529
|
+
--components-alert-alertbox-negative-standard-text: var(--text-accent);
|
|
530
|
+
--components-alert-alertbox-success-contrast-border: var(--stroke-colorless);
|
|
531
|
+
--components-alert-alertbox-success-contrast-fill: var(--fill-success-tint);
|
|
532
|
+
--components-alert-alertbox-success-contrast-icon: var(--shape-accent);
|
|
533
|
+
--components-alert-alertbox-success-contrast-iconborder: var(--stroke-accent);
|
|
534
|
+
--components-alert-alertbox-success-contrast-text: var(--text-accent);
|
|
535
|
+
--components-alert-alertbox-success-standard-border: var(--stroke-success);
|
|
536
|
+
--components-alert-alertbox-success-standard-fill: var(--fill-success-muted);
|
|
537
|
+
--components-alert-alertbox-success-standard-icon: var(--shape-success);
|
|
538
|
+
--components-alert-alertbox-success-standard-iconborder: var(--stroke-success);
|
|
539
|
+
--components-alert-alertbox-success-standard-text: var(--text-accent);
|
|
540
|
+
--components-alert-alertbox-warning-contrast-border: var(--stroke-colorless);
|
|
541
|
+
--components-alert-alertbox-warning-contrast-fill: var(--fill-warning-tint);
|
|
542
|
+
--components-alert-alertbox-warning-contrast-icon: var(--shape-accent);
|
|
543
|
+
--components-alert-alertbox-warning-contrast-iconborder: var(--stroke-accent);
|
|
544
|
+
--components-alert-alertbox-warning-contrast-text: var(--text-accent);
|
|
545
|
+
--components-alert-alertbox-warning-standard-border: var(--stroke-warning);
|
|
546
|
+
--components-alert-alertbox-warning-standard-fill: var(--fill-warning-muted);
|
|
547
|
+
--components-alert-alertbox-warning-standard-icon: var(--shape-accent);
|
|
548
|
+
--components-alert-alertbox-warning-standard-iconborder: var(--stroke-accent);
|
|
549
|
+
--components-alert-alertbox-warning-standard-text: var(--text-accent);
|
|
550
|
+
--components-alert-copyabletext-contrast-border: var(--stroke-colorless);
|
|
551
|
+
--components-alert-copyabletext-contrast-border-interactive: var(--stroke-contrast);
|
|
552
|
+
--components-alert-copyabletext-contrast-fill: var(--fill-background-tint-light);
|
|
553
|
+
--components-alert-copyabletext-contrast-icon: var(--shape-accent);
|
|
554
|
+
--components-alert-copyabletext-contrast-text: var(--text-accent);
|
|
555
|
+
--components-alert-copyabletext-standard-border: var(--stroke-transparent);
|
|
556
|
+
--components-alert-copyabletext-standard-border-interactive: var(--stroke-accent);
|
|
557
|
+
--components-alert-copyabletext-standard-fill: var(--fill-background-tint-light);
|
|
558
|
+
--components-alert-copyabletext-standard-icon: var(--shape-accent);
|
|
559
|
+
--components-alert-copyabletext-standard-text: var(--text-accent);
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
[data-color-mode=dark] {
|
|
563
|
+
--components-alert-alertbox-information-contrast-border: var(--stroke-colorless);
|
|
564
|
+
--components-alert-alertbox-information-contrast-fill: var(--fill-information-tint);
|
|
565
|
+
--components-alert-alertbox-information-contrast-icon: var(--shape-dark);
|
|
566
|
+
--components-alert-alertbox-information-contrast-iconborder: var(--stroke-darkalt-2);
|
|
567
|
+
--components-alert-alertbox-information-contrast-text: var(--text-dark);
|
|
568
|
+
--components-alert-alertbox-information-standard-border: var(--stroke-colorless);
|
|
569
|
+
--components-alert-alertbox-information-standard-fill: var(--fill-information-tint);
|
|
570
|
+
--components-alert-alertbox-information-standard-icon: var(--shape-dark);
|
|
571
|
+
--components-alert-alertbox-information-standard-iconborder: var(--stroke-darkalt-2);
|
|
572
|
+
--components-alert-alertbox-information-standard-text: var(--text-dark);
|
|
573
|
+
--components-alert-alertbox-negative-contrast-border: var(--stroke-colorless);
|
|
574
|
+
--components-alert-alertbox-negative-contrast-fill: var(--fill-negative-tint);
|
|
575
|
+
--components-alert-alertbox-negative-contrast-icon: var(--shape-dark);
|
|
576
|
+
--components-alert-alertbox-negative-contrast-iconborder: var(--stroke-darkalt-2);
|
|
577
|
+
--components-alert-alertbox-negative-contrast-text: var(--text-dark);
|
|
578
|
+
--components-alert-alertbox-negative-standard-border: var(--stroke-colorless);
|
|
579
|
+
--components-alert-alertbox-negative-standard-fill: var(--fill-negative-tint);
|
|
580
|
+
--components-alert-alertbox-negative-standard-icon: var(--shape-dark);
|
|
581
|
+
--components-alert-alertbox-negative-standard-iconborder: var(--stroke-darkalt-2);
|
|
582
|
+
--components-alert-alertbox-negative-standard-text: var(--text-dark);
|
|
583
|
+
--components-alert-alertbox-success-contrast-border: var(--stroke-colorless);
|
|
584
|
+
--components-alert-alertbox-success-contrast-fill: var(--fill-success-tint);
|
|
585
|
+
--components-alert-alertbox-success-contrast-icon: var(--shape-dark);
|
|
586
|
+
--components-alert-alertbox-success-contrast-iconborder: var(--stroke-darkalt-2);
|
|
587
|
+
--components-alert-alertbox-success-contrast-text: var(--text-dark);
|
|
588
|
+
--components-alert-alertbox-success-standard-border: var(--stroke-colorless);
|
|
589
|
+
--components-alert-alertbox-success-standard-fill: var(--fill-success-tint);
|
|
590
|
+
--components-alert-alertbox-success-standard-icon: var(--shape-dark);
|
|
591
|
+
--components-alert-alertbox-success-standard-iconborder: var(--stroke-darkalt-2);
|
|
592
|
+
--components-alert-alertbox-success-standard-text: var(--text-dark);
|
|
593
|
+
--components-alert-alertbox-warning-contrast-border: var(--stroke-colorless);
|
|
594
|
+
--components-alert-alertbox-warning-contrast-fill: var(--fill-warning-tint);
|
|
595
|
+
--components-alert-alertbox-warning-contrast-icon: var(--shape-dark);
|
|
596
|
+
--components-alert-alertbox-warning-contrast-iconborder: var(--stroke-darkalt-2);
|
|
597
|
+
--components-alert-alertbox-warning-contrast-text: var(--text-dark);
|
|
598
|
+
--components-alert-alertbox-warning-standard-border: var(--stroke-colorless);
|
|
599
|
+
--components-alert-alertbox-warning-standard-fill: var(--fill-warning-tint);
|
|
600
|
+
--components-alert-alertbox-warning-standard-icon: var(--shape-dark);
|
|
601
|
+
--components-alert-alertbox-warning-standard-iconborder: var(--stroke-darkalt-2);
|
|
602
|
+
--components-alert-alertbox-warning-standard-text: var(--text-dark);
|
|
603
|
+
--components-alert-copyabletext-contrast-border: var(--stroke-colorless);
|
|
604
|
+
--components-alert-copyabletext-contrast-border-interactive: var(--stroke-lightalt);
|
|
605
|
+
--components-alert-copyabletext-contrast-fill: var(--fill-background-overlay-solid);
|
|
606
|
+
--components-alert-copyabletext-contrast-icon: var(--shape-lightalt);
|
|
607
|
+
--components-alert-copyabletext-contrast-text: var(--text-lightalt);
|
|
608
|
+
--components-alert-copyabletext-standard-border: var(--stroke-colorless);
|
|
609
|
+
--components-alert-copyabletext-standard-border-interactive: var(--stroke-lightalt);
|
|
610
|
+
--components-alert-copyabletext-standard-fill: var(--fill-background-overlay-solid);
|
|
611
|
+
--components-alert-copyabletext-standard-icon: var(--shape-lightalt);
|
|
612
|
+
--components-alert-copyabletext-standard-text: var(--text-lightalt);
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
/* DO NOT CHANGE!*/
|
|
616
|
+
/* This file is automatically generated from @entur/tokens! Changes will be overwritten. */
|
|
617
|
+
[data-color-mode=light],
|
|
618
|
+
:root {
|
|
619
|
+
--basecolors-frame-contrast: var(--fill-background-contrast-light);
|
|
620
|
+
--basecolors-frame-contrastalt: var(--fill-background-contrast-lightalt);
|
|
621
|
+
--basecolors-frame-default: var(--fill-background-standard-light);
|
|
622
|
+
--basecolors-frame-elevated: var(--fill-background-standard-light);
|
|
623
|
+
--basecolors-frame-elevatedalt: var(--fill-background-tint-light);
|
|
624
|
+
--basecolors-frame-subdued: var(--fill-background-subdued-light);
|
|
625
|
+
--basecolors-frame-tint: var(--fill-background-tint-light);
|
|
626
|
+
--basecolors-shape-accent: var(--shape-accent);
|
|
627
|
+
--basecolors-shape-bicycle-contrast: var(--contrast-bicycle);
|
|
628
|
+
--basecolors-shape-bicycle-default: var(--standard-bicycle);
|
|
629
|
+
--basecolors-shape-bus-contrast: var(--contrast-bus);
|
|
630
|
+
--basecolors-shape-bus-default: var(--standard-bus);
|
|
631
|
+
--basecolors-shape-cableway-contrast: var(--contrast-cableway);
|
|
632
|
+
--basecolors-shape-cableway-default: var(--standard-cableway);
|
|
633
|
+
--basecolors-shape-disabled: var(--shape-neutral);
|
|
634
|
+
--basecolors-shape-disabledalt: var(--shape-neutralalt);
|
|
635
|
+
--basecolors-shape-ferry-contrast: var(--contrast-ferry);
|
|
636
|
+
--basecolors-shape-ferry-default: var(--standard-ferry);
|
|
637
|
+
--basecolors-shape-funicular-contrast: var(--contrast-funicular);
|
|
638
|
+
--basecolors-shape-funicular-default: var(--standard-funicular);
|
|
639
|
+
--basecolors-shape-helicopter-contrast: var(--contrast-helicopter);
|
|
640
|
+
--basecolors-shape-helicopter-default: var(--standard-helicopter);
|
|
641
|
+
--basecolors-shape-highlight: var(--stroke-highlight);
|
|
642
|
+
--basecolors-shape-light: var(--shape-light);
|
|
643
|
+
--basecolors-shape-mask: var(--shape-light);
|
|
644
|
+
--basecolors-shape-maskalt: var(--shape-light);
|
|
645
|
+
--basecolors-shape-metro-contrast: var(--contrast-metro);
|
|
646
|
+
--basecolors-shape-metro-default: var(--standard-metro);
|
|
647
|
+
--basecolors-shape-mobility-contrast: var(--contrast-mobility);
|
|
648
|
+
--basecolors-shape-mobility-default: var(--standard-mobility);
|
|
649
|
+
--basecolors-shape-plane-contrast: var(--contrast-plane);
|
|
650
|
+
--basecolors-shape-plane-default: var(--standard-plane);
|
|
651
|
+
--basecolors-shape-subdued: var(--shape-subdued);
|
|
652
|
+
--basecolors-shape-subduedalt: var(--shape-subduedalt);
|
|
653
|
+
--basecolors-shape-taxi-contrast: var(--contrast-taxi);
|
|
654
|
+
--basecolors-shape-taxi-default: var(--standard-taxi);
|
|
655
|
+
--basecolors-shape-train-contrast: var(--contrast-train);
|
|
656
|
+
--basecolors-shape-train-default: var(--standard-train);
|
|
657
|
+
--basecolors-shape-tram-contrast: var(--contrast-tram);
|
|
658
|
+
--basecolors-shape-tram-default: var(--standard-tram);
|
|
659
|
+
--basecolors-shape-walk-contrast: var(--contrast-walk);
|
|
660
|
+
--basecolors-shape-walk-default: var(--standard-walk);
|
|
661
|
+
--basecolors-shape-airportlinkbus-contrast: var(--contrast-airportlinkbus);
|
|
662
|
+
--basecolors-shape-airportlinkbus-default: var(--standard-airportlinkbus);
|
|
663
|
+
--basecolors-shape-airportlinkrail-contrast: var(--contrast-airportlinkrail);
|
|
664
|
+
--basecolors-shape-airportlinkrail-default: var(--standard-airportlinkrail);
|
|
665
|
+
--basecolors-stroke-contrast: var(--stroke-contrast);
|
|
666
|
+
--basecolors-stroke-default: var(--stroke-accent);
|
|
667
|
+
--basecolors-stroke-disabled: var(--stroke-neutralalt);
|
|
668
|
+
--basecolors-stroke-focus-contrast: var(--stroke-contrast);
|
|
669
|
+
--basecolors-stroke-focus-standard: var(--stroke-accent);
|
|
670
|
+
--basecolors-stroke-highlight: var(--stroke-highlight);
|
|
671
|
+
--basecolors-stroke-light: var(--stroke-light);
|
|
672
|
+
--basecolors-stroke-subdued: var(--stroke-subdued);
|
|
673
|
+
--basecolors-stroke-subduedalt: var(--stroke-neutral);
|
|
674
|
+
--basecolors-text-accent: var(--text-accent);
|
|
675
|
+
--basecolors-text-disabled: var(--text-neutral);
|
|
676
|
+
--basecolors-text-disabledalt: var(--text-neutralalt);
|
|
677
|
+
--basecolors-text-highlight: var(--stroke-highlight);
|
|
678
|
+
--basecolors-text-light: var(--text-light);
|
|
679
|
+
--basecolors-text-subdued: var(--text-subdued);
|
|
680
|
+
--basecolors-text-subduedalt: var(--text-subduedalt);
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
[data-color-mode=dark] {
|
|
684
|
+
--basecolors-frame-contrast: var(--fill-background-contrast-dark);
|
|
685
|
+
--basecolors-frame-contrastalt: var(--fill-background-tint-dark);
|
|
686
|
+
--basecolors-frame-default: var(--fill-background-standard-dark);
|
|
687
|
+
--basecolors-frame-elevated: var(--fill-background-overlay-transparent);
|
|
688
|
+
--basecolors-frame-elevatedalt: var(--fill-background-overlay-solidalt);
|
|
689
|
+
--basecolors-frame-subdued: var(--fill-background-subdued-dark);
|
|
690
|
+
--basecolors-frame-tint: var(--fill-background-tint-dark);
|
|
691
|
+
--basecolors-shape-accent: var(--shape-lightalt);
|
|
692
|
+
--basecolors-shape-bicycle-contrast: var(--dark-bicycle);
|
|
693
|
+
--basecolors-shape-bicycle-default: var(--dark-bicycle);
|
|
694
|
+
--basecolors-shape-bus-contrast: var(--dark-bus);
|
|
695
|
+
--basecolors-shape-bus-default: var(--dark-bus);
|
|
696
|
+
--basecolors-shape-cableway-contrast: var(--dark-cableway);
|
|
697
|
+
--basecolors-shape-cableway-default: var(--dark-cableway);
|
|
698
|
+
--basecolors-shape-disabled: var(--shape-neutralalt);
|
|
699
|
+
--basecolors-shape-disabledalt: var(--shape-darkalt);
|
|
700
|
+
--basecolors-shape-ferry-contrast: var(--dark-ferry);
|
|
701
|
+
--basecolors-shape-ferry-default: var(--dark-ferry);
|
|
702
|
+
--basecolors-shape-funicular-contrast: var(--dark-funicular);
|
|
703
|
+
--basecolors-shape-funicular-default: var(--dark-funicular);
|
|
704
|
+
--basecolors-shape-helicopter-contrast: var(--dark-helicopter);
|
|
705
|
+
--basecolors-shape-helicopter-default: var(--dark-helicopter);
|
|
706
|
+
--basecolors-shape-highlight: var(--stroke-highlightalt);
|
|
707
|
+
--basecolors-shape-light: var(--shape-lightalt);
|
|
708
|
+
--basecolors-shape-mask: var(--fill-background-subdued-dark);
|
|
709
|
+
--basecolors-shape-maskalt: var(--fill-background-overlay-solid);
|
|
710
|
+
--basecolors-shape-metro-contrast: var(--dark-metro);
|
|
711
|
+
--basecolors-shape-metro-default: var(--dark-metro);
|
|
712
|
+
--basecolors-shape-mobility-contrast: var(--dark-mobility);
|
|
713
|
+
--basecolors-shape-mobility-default: var(--dark-mobility);
|
|
714
|
+
--basecolors-shape-plane-contrast: var(--dark-plane);
|
|
715
|
+
--basecolors-shape-plane-default: var(--dark-plane);
|
|
716
|
+
--basecolors-shape-subdued: var(--shape-darkalt);
|
|
717
|
+
--basecolors-shape-subduedalt: var(--shape-darkalt);
|
|
718
|
+
--basecolors-shape-taxi-contrast: var(--dark-taxi);
|
|
719
|
+
--basecolors-shape-taxi-default: var(--dark-taxi);
|
|
720
|
+
--basecolors-shape-train-contrast: var(--dark-train);
|
|
721
|
+
--basecolors-shape-train-default: var(--dark-train);
|
|
722
|
+
--basecolors-shape-tram-contrast: var(--dark-tram);
|
|
723
|
+
--basecolors-shape-tram-default: var(--dark-tram);
|
|
724
|
+
--basecolors-shape-walk-contrast: var(--dark-walk);
|
|
725
|
+
--basecolors-shape-walk-default: var(--dark-walk);
|
|
726
|
+
--basecolors-shape-airportlinkbus-contrast: var(--dark-airportlinkbus);
|
|
727
|
+
--basecolors-shape-airportlinkbus-default: var(--dark-airportlinkbus);
|
|
728
|
+
--basecolors-shape-airportlinkrail-contrast: var(--dark-airportlinkrail);
|
|
729
|
+
--basecolors-shape-airportlinkrail-default: var(--dark-airportlinkrail);
|
|
730
|
+
--basecolors-stroke-contrast: var(--stroke-contrast);
|
|
731
|
+
--basecolors-stroke-default: var(--stroke-dark);
|
|
732
|
+
--basecolors-stroke-disabled: var(--stroke-neutral);
|
|
733
|
+
--basecolors-stroke-focus-contrast: var(--stroke-contrast);
|
|
734
|
+
--basecolors-stroke-focus-standard: var(--stroke-contrast);
|
|
735
|
+
--basecolors-stroke-highlight: var(--stroke-highlightalt);
|
|
736
|
+
--basecolors-stroke-light: var(--stroke-dark);
|
|
737
|
+
--basecolors-stroke-subdued: var(--stroke-darkalt);
|
|
738
|
+
--basecolors-stroke-subduedalt: var(--stroke-darkalt);
|
|
739
|
+
--basecolors-text-accent: var(--text-lightalt);
|
|
740
|
+
--basecolors-text-disabled: var(--text-neutralalt);
|
|
741
|
+
--basecolors-text-disabledalt: var(--text-neutralalt);
|
|
742
|
+
--basecolors-text-highlight: var(--stroke-highlightalt);
|
|
743
|
+
--basecolors-text-light: var(--text-lightalt);
|
|
744
|
+
--basecolors-text-subdued: var(--text-darkalt);
|
|
745
|
+
--basecolors-text-subduedalt: var(--text-darkalt);
|
|
746
|
+
}
|
|
747
|
+
|
|
296
748
|
:root {
|
|
297
749
|
--eds-alert: 1;
|
|
298
750
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/alert",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.22",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/alert.esm.js",
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
"react-dom": ">=16.8.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@entur/button": "^3.2.
|
|
31
|
-
"@entur/expand": "^3.5.
|
|
32
|
-
"@entur/icons": "^6.15.
|
|
33
|
-
"@entur/tokens": "^3.13.
|
|
34
|
-
"@entur/tooltip": "^2.6.
|
|
35
|
-
"@entur/typography": "^1.8.
|
|
30
|
+
"@entur/button": "^3.2.12",
|
|
31
|
+
"@entur/expand": "^3.5.1",
|
|
32
|
+
"@entur/icons": "^6.15.2",
|
|
33
|
+
"@entur/tokens": "^3.13.1",
|
|
34
|
+
"@entur/tooltip": "^2.6.49",
|
|
35
|
+
"@entur/typography": "^1.8.25",
|
|
36
36
|
"@entur/utils": "^0.10.0",
|
|
37
37
|
"classnames": "^2.3.1",
|
|
38
38
|
"copy-text-to-clipboard": "^2.2"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "d0a435264ccaf7ed8e6b7798c81e876176ce3d4d"
|
|
41
41
|
}
|