@entur/alert 0.19.3 → 1.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BannerAlertBox.d.ts +1 -1
- package/dist/BaseAlertBox.d.ts +1 -1
- package/dist/ExpandableAlertBox.d.ts +2 -2
- package/dist/SmallAlertBox.d.ts +1 -1
- package/dist/ToastAlertBox.d.ts +1 -1
- package/dist/ToastProvider.d.ts +1 -1
- package/dist/alert.cjs.js.map +1 -1
- package/dist/alert.esm.js.map +1 -1
- package/dist/styles.css +16 -16
- package/package.json +12 -12
package/dist/BannerAlertBox.d.ts
CHANGED
|
@@ -23,5 +23,5 @@ export type BannerAlertBoxProps = {
|
|
|
23
23
|
variant: VariantType | typeof info | typeof error;
|
|
24
24
|
[key: string]: any;
|
|
25
25
|
};
|
|
26
|
-
export declare const BannerAlertBox:
|
|
26
|
+
export declare const BannerAlertBox: (props: BannerAlertBoxProps) => import("react/jsx-runtime").JSX.Element;
|
|
27
27
|
export {};
|
package/dist/BaseAlertBox.d.ts
CHANGED
|
@@ -29,5 +29,5 @@ type BaseAlertBoxProps = {
|
|
|
29
29
|
size: 'banner' | 'toast' | 'small';
|
|
30
30
|
[key: string]: any;
|
|
31
31
|
};
|
|
32
|
-
export declare const BaseAlertBox:
|
|
32
|
+
export declare const BaseAlertBox: ({ children, className, closable, closeButtonLabel, variant, onClose, size, title, toastIsBeingRemoved, ...rest }: BaseAlertBoxProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
33
33
|
export {};
|
|
@@ -3,9 +3,9 @@ import { default as React } from 'react';
|
|
|
3
3
|
import { BannerAlertBoxProps } from './BannerAlertBox';
|
|
4
4
|
import { SmallAlertBoxProps } from './SmallAlertBox';
|
|
5
5
|
export type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps & SmallAlertBoxProps;
|
|
6
|
-
export declare const SmallExpandableAlertBox:
|
|
6
|
+
export declare const SmallExpandableAlertBox: (props: SmallExpandableAlertBoxProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
export type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps & BannerAlertBoxProps;
|
|
8
|
-
export declare const BannerExpandableAlertBox:
|
|
8
|
+
export declare const BannerExpandableAlertBox: (props: BannerExpandableAlertBoxProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
/** @deprecated use variant="information" instead */
|
|
10
10
|
declare const info = "info";
|
|
11
11
|
/** @deprecated use variant="negative" instead */
|
package/dist/SmallAlertBox.d.ts
CHANGED
|
@@ -25,5 +25,5 @@ export type SmallAlertBoxProps = {
|
|
|
25
25
|
variant: VariantType | typeof info | typeof error;
|
|
26
26
|
[key: string]: any;
|
|
27
27
|
};
|
|
28
|
-
export declare const SmallAlertBox:
|
|
28
|
+
export declare const SmallAlertBox: ({ className, width, onClose, closable, closeButtonLabel, ...rest }: SmallAlertBoxProps) => import("react/jsx-runtime").JSX.Element;
|
|
29
29
|
export {};
|
package/dist/ToastAlertBox.d.ts
CHANGED
|
@@ -18,5 +18,5 @@ export type ToastAlertBoxProps = {
|
|
|
18
18
|
variant: 'success' | 'information' | typeof info;
|
|
19
19
|
[key: string]: any;
|
|
20
20
|
};
|
|
21
|
-
export declare const ToastAlertBox:
|
|
21
|
+
export declare const ToastAlertBox: (props: ToastAlertBoxProps) => import("react/jsx-runtime").JSX.Element;
|
|
22
22
|
export {};
|
package/dist/ToastProvider.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export type ToastProviderProps = {
|
|
|
23
23
|
/** Innholdet */
|
|
24
24
|
children: React.ReactNode;
|
|
25
25
|
};
|
|
26
|
-
export declare const ToastProvider:
|
|
26
|
+
export declare const ToastProvider: ({ delay, children, position, className, style, }: ToastProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
27
27
|
export declare const useToast: () => {
|
|
28
28
|
addToast: (payload: AddToastPayload | string) => void;
|
|
29
29
|
};
|
package/dist/alert.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.cjs.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 ValidationErrorIcon,\n ValidationExclamationIcon,\n ValidationInfoIcon,\n ValidationSuccessIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\nimport { VariantType } from '@entur/utils';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: ValidationSuccessIcon,\n description: 'Suksessmelding',\n },\n information: { icon: ValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: ValidationExclamationIcon,\n description: 'Varselmelding',\n },\n negative: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n //deprecated\n info: { icon: ValidationInfoIcon, description: 'Infomelding' },\n error: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox: React.FC<BaseAlertBoxProps> = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant].icon;\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n {\n 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved,\n 'eds-alert-box--no-title': !title,\n },\n className,\n )}\n {...rest}\n >\n <Icon\n role=\"img\"\n className=\"eds-alert-box__icon\"\n aria-label={iconsMap[variant].description}\n />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n {closable && (\n <Tooltip\n className=\"eds-alert-box__tooltip\"\n aria-hidden\n placement=\"bottom\"\n content=\"Lukk\"\n >\n <IconButton\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const BannerAlertBox: React.FC<BannerAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'information' | typeof info;\n [key: string]: any;\n};\n\nexport const ToastAlertBox: React.FC<ToastAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const SmallAlertBox: React.FC<SmallAlertBoxProps> = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastVariants = 'success' | 'information' | typeof info;\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n onClick,\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 = (e: React.MouseEvent<HTMLDivElement>) => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n onClick?.(e);\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand';\nimport { VariantType } from '@entur/utils';\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox: React.FC<\n SmallExpandableAlertBoxProps\n> = props => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n};\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox: React.FC<\n BannerExpandableAlertBoxProps\n> = props => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox: React.FC<ExpandableAlertBoxProps> = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}) => {\n const [open, setopen] = React.useState(false);\n return (\n <BaseAlertBox\n size={size}\n variant={variant}\n className={classNames('eds-expandable-alert-box', className)}\n title={\n <ExpandableAlertBoxTitle\n open={open}\n title={title}\n onClick={() => setopen(!open)}\n openLabel={openLabel}\n closeLabel={closeLabel}\n />\n }\n {...rest}\n >\n <BaseExpand open={open}>{children}</BaseExpand>\n </BaseAlertBox>\n );\n};\n\ntype ExpandableAlertBoxTitleProps = {\n title: React.ReactNode;\n open: boolean;\n openLabel?: string;\n closeLabel?: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst ExpandableAlertBoxTitle: React.FC<ExpandableAlertBoxTitleProps> = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}) => {\n return (\n <div className=\"eds-expandable-alert-box__title\">\n <div>{title}</div>\n <button\n className=\"eds-expandable-alert-box__button\"\n onClick={onClick}\n type=\"button\"\n >\n {open ? closeLabel : openLabel}\n <ExpandArrow open={open} inline />\n </button>\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('alert', 'icons');\n\nexport { BannerAlertBox } from './BannerAlertBox';\nexport { ToastAlertBox } from './ToastAlertBox';\nexport { SmallAlertBox } from './SmallAlertBox';\nexport { ToastProvider, useToast } from './ToastProvider';\nexport { CopyableText } from './CopyableText';\nexport * from './ExpandableAlertBox';\n"],"names":["ValidationSuccessIcon","ValidationInfoIcon","ValidationExclamationIcon","ValidationErrorIcon","jsxs","jsx","Tooltip","IconButton","CloseIcon","delay","PreformattedText","CopyIcon","BaseExpand","ExpandArrow","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alert.cjs.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 ValidationErrorIcon,\n ValidationExclamationIcon,\n ValidationInfoIcon,\n ValidationSuccessIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\nimport { VariantType } from '@entur/utils';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: ValidationSuccessIcon,\n description: 'Suksessmelding',\n },\n information: { icon: ValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: ValidationExclamationIcon,\n description: 'Varselmelding',\n },\n negative: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n //deprecated\n info: { icon: ValidationInfoIcon, description: 'Infomelding' },\n error: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}: BaseAlertBoxProps) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant].icon;\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n {\n 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved,\n 'eds-alert-box--no-title': !title,\n },\n className,\n )}\n {...rest}\n >\n <Icon\n role=\"img\"\n className=\"eds-alert-box__icon\"\n aria-label={iconsMap[variant].description}\n />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n {closable && (\n <Tooltip\n className=\"eds-alert-box__tooltip\"\n aria-hidden\n placement=\"bottom\"\n content=\"Lukk\"\n >\n <IconButton\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const BannerAlertBox = (props: BannerAlertBoxProps) => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'information' | typeof info;\n [key: string]: any;\n};\n\nexport const ToastAlertBox = (props: ToastAlertBoxProps) => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const SmallAlertBox = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}: SmallAlertBoxProps) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastVariants = 'success' | 'information' | typeof info;\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}: ToastProviderProps) => {\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 onClick,\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 = (e: React.MouseEvent<HTMLDivElement>) => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n onClick?.(e);\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand';\nimport { VariantType } from '@entur/utils';\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox = (\n props: SmallExpandableAlertBoxProps,\n) => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n};\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox = (\n props: BannerExpandableAlertBoxProps,\n) => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}: ExpandableAlertBoxProps) => {\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 = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}: ExpandableAlertBoxTitleProps) => {\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":["ValidationSuccessIcon","ValidationInfoIcon","ValidationExclamationIcon","ValidationErrorIcon","jsxs","jsx","Tooltip","IconButton","CloseIcon","delay","PreformattedText","CopyIcon","BaseExpand","ExpandArrow","warnAboutMissingStyles"],"mappings":"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"}
|
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 ValidationErrorIcon,\n ValidationExclamationIcon,\n ValidationInfoIcon,\n ValidationSuccessIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\nimport { VariantType } from '@entur/utils';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: ValidationSuccessIcon,\n description: 'Suksessmelding',\n },\n information: { icon: ValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: ValidationExclamationIcon,\n description: 'Varselmelding',\n },\n negative: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n //deprecated\n info: { icon: ValidationInfoIcon, description: 'Infomelding' },\n error: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox: React.FC<BaseAlertBoxProps> = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant].icon;\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n {\n 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved,\n 'eds-alert-box--no-title': !title,\n },\n className,\n )}\n {...rest}\n >\n <Icon\n role=\"img\"\n className=\"eds-alert-box__icon\"\n aria-label={iconsMap[variant].description}\n />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n {closable && (\n <Tooltip\n className=\"eds-alert-box__tooltip\"\n aria-hidden\n placement=\"bottom\"\n content=\"Lukk\"\n >\n <IconButton\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const BannerAlertBox: React.FC<BannerAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'information' | typeof info;\n [key: string]: any;\n};\n\nexport const ToastAlertBox: React.FC<ToastAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const SmallAlertBox: React.FC<SmallAlertBoxProps> = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastVariants = 'success' | 'information' | typeof info;\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload | string) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload | string) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\nimport copy from 'copy-text-to-clipboard';\n\nimport { IconButton } from '@entur/button';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport { useToast } from './ToastProvider';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Hvis du ønsker å kopiere noe annet enn\n * innholdet i children kan du legge det inn her */\n textToCopy?: string;\n /** Overskrift i toast-varselet\n * @default 'Kopiert!'\n */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet\n * @default `${textToCopy} ble kopiert til utklippstavlen.`\n */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage,\n textToCopy,\n className,\n onClick,\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 = (e: React.MouseEvent<HTMLDivElement>) => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n onClick?.(e);\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand';\nimport { VariantType } from '@entur/utils';\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox: React.FC<\n SmallExpandableAlertBoxProps\n> = props => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n};\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox: React.FC<\n BannerExpandableAlertBoxProps\n> = props => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox: React.FC<ExpandableAlertBoxProps> = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}) => {\n const [open, setopen] = React.useState(false);\n return (\n <BaseAlertBox\n size={size}\n variant={variant}\n className={classNames('eds-expandable-alert-box', className)}\n title={\n <ExpandableAlertBoxTitle\n open={open}\n title={title}\n onClick={() => setopen(!open)}\n openLabel={openLabel}\n closeLabel={closeLabel}\n />\n }\n {...rest}\n >\n <BaseExpand open={open}>{children}</BaseExpand>\n </BaseAlertBox>\n );\n};\n\ntype ExpandableAlertBoxTitleProps = {\n title: React.ReactNode;\n open: boolean;\n openLabel?: string;\n closeLabel?: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst ExpandableAlertBoxTitle: React.FC<ExpandableAlertBoxTitleProps> = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}) => {\n return (\n <div className=\"eds-expandable-alert-box__title\">\n <div>{title}</div>\n <button\n className=\"eds-expandable-alert-box__button\"\n onClick={onClick}\n type=\"button\"\n >\n {open ? closeLabel : openLabel}\n <ExpandArrow open={open} inline />\n </button>\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('alert', 'icons');\n\nexport { BannerAlertBox } from './BannerAlertBox';\nexport { ToastAlertBox } from './ToastAlertBox';\nexport { SmallAlertBox } from './SmallAlertBox';\nexport { ToastProvider, useToast } from './ToastProvider';\nexport { CopyableText } from './CopyableText';\nexport * from './ExpandableAlertBox';\n"],"names":["delay"],"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 ValidationErrorIcon,\n ValidationExclamationIcon,\n ValidationInfoIcon,\n ValidationSuccessIcon,\n} from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { Tooltip } from '@entur/tooltip';\nimport { VariantType } from '@entur/utils';\n\nimport './BaseAlertBox.scss';\n\nconst iconsMap = {\n success: {\n icon: ValidationSuccessIcon,\n description: 'Suksessmelding',\n },\n information: { icon: ValidationInfoIcon, description: 'Infomelding' },\n warning: {\n icon: ValidationExclamationIcon,\n description: 'Varselmelding',\n },\n negative: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n //deprecated\n info: { icon: ValidationInfoIcon, description: 'Infomelding' },\n error: { icon: ValidationErrorIcon, description: 'Feilmelding' },\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}: BaseAlertBoxProps) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant].icon;\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n {\n 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved,\n 'eds-alert-box--no-title': !title,\n },\n className,\n )}\n {...rest}\n >\n <Icon\n role=\"img\"\n className=\"eds-alert-box__icon\"\n aria-label={iconsMap[variant].description}\n />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n {closable && (\n <Tooltip\n className=\"eds-alert-box__tooltip\"\n aria-hidden\n placement=\"bottom\"\n content=\"Lukk\"\n >\n <IconButton\n className=\"eds-alert-box__close-button\"\n aria-label={closeButtonLabel}\n onClick={handleClose}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const BannerAlertBox = (props: BannerAlertBoxProps) => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ToastAlertBox.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'information' | typeof info;\n [key: string]: any;\n};\n\nexport const ToastAlertBox = (props: ToastAlertBoxProps) => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n [key: string]: any;\n};\n\nexport const SmallAlertBox = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}: SmallAlertBoxProps) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n\nexport type ToastVariants = 'success' | 'information' | typeof info;\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload | string) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\nexport type AddToastPayload = {\n title?: string;\n content: React.ReactNode;\n variant?: ToastVariants;\n};\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (\n toast: AddToastPayload | string,\n id: ToastId,\n): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}: ToastProviderProps) => {\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 onClick,\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 = (e: React.MouseEvent<HTMLDivElement>) => {\n buttonRef.current &&\n copy(_textToCopy, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: _successMessage });\n onClick?.(e);\n };\n return (\n <div\n className={'eds-copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n tabIndex={-1}\n aria-label=\"\"\n {...rest}\n >\n <PreformattedText className=\"eds-copyable-text__preformatted-text\">\n <span className=\"eds-copyable-text__displayed-text\">{children}</span>\n <IconButton\n className=\"eds-copyable-text__button\"\n aria-label={ariaLabel}\n type=\"button\"\n ref={buttonRef}\n >\n <CopyIcon className={'eds-copyable-text__button__icon'} />\n </IconButton>\n </PreformattedText>\n </div>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand';\nimport { VariantType } from '@entur/utils';\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox = (\n props: SmallExpandableAlertBoxProps,\n) => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n};\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox = (\n props: BannerExpandableAlertBoxProps,\n) => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n};\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen*/\n variant: VariantType | typeof info | typeof error;\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}: ExpandableAlertBoxProps) => {\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 = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}: ExpandableAlertBoxTitleProps) => {\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":["delay"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -479,11 +479,11 @@
|
|
|
479
479
|
}
|
|
480
480
|
|
|
481
481
|
@-webkit-keyframes bounceInRight{
|
|
482
|
-
|
|
482
|
+
0%, 60%, 75%, 90%, 100%{
|
|
483
483
|
-webkit-animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
484
484
|
animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
485
485
|
}
|
|
486
|
-
|
|
486
|
+
0%{
|
|
487
487
|
opacity:0;
|
|
488
488
|
-webkit-transform:translate3d(3000px, 0, 0) scaleX(3);
|
|
489
489
|
transform:translate3d(3000px, 0, 0) scaleX(3);
|
|
@@ -501,18 +501,18 @@
|
|
|
501
501
|
-webkit-transform:translate3d(-5px, 0, 0) scaleX(0.995);
|
|
502
502
|
transform:translate3d(-5px, 0, 0) scaleX(0.995);
|
|
503
503
|
}
|
|
504
|
-
|
|
504
|
+
100%{
|
|
505
505
|
-webkit-transform:translate3d(0, 0, 0);
|
|
506
506
|
transform:translate3d(0, 0, 0);
|
|
507
507
|
}
|
|
508
508
|
}
|
|
509
509
|
|
|
510
510
|
@-moz-keyframes bounceInRight{
|
|
511
|
-
|
|
511
|
+
0%, 60%, 75%, 90%, 100%{
|
|
512
512
|
-moz-animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
513
513
|
animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
514
514
|
}
|
|
515
|
-
|
|
515
|
+
0%{
|
|
516
516
|
opacity:0;
|
|
517
517
|
-moz-transform:translate3d(3000px, 0, 0) scaleX(3);
|
|
518
518
|
transform:translate3d(3000px, 0, 0) scaleX(3);
|
|
@@ -530,18 +530,18 @@
|
|
|
530
530
|
-moz-transform:translate3d(-5px, 0, 0) scaleX(0.995);
|
|
531
531
|
transform:translate3d(-5px, 0, 0) scaleX(0.995);
|
|
532
532
|
}
|
|
533
|
-
|
|
533
|
+
100%{
|
|
534
534
|
-moz-transform:translate3d(0, 0, 0);
|
|
535
535
|
transform:translate3d(0, 0, 0);
|
|
536
536
|
}
|
|
537
537
|
}
|
|
538
538
|
|
|
539
539
|
@-o-keyframes bounceInRight{
|
|
540
|
-
|
|
540
|
+
0%, 60%, 75%, 90%, 100%{
|
|
541
541
|
-o-animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
542
542
|
animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
543
543
|
}
|
|
544
|
-
|
|
544
|
+
0%{
|
|
545
545
|
opacity:0;
|
|
546
546
|
transform:translate3d(3000px, 0, 0) scaleX(3);
|
|
547
547
|
}
|
|
@@ -555,19 +555,19 @@
|
|
|
555
555
|
90%{
|
|
556
556
|
transform:translate3d(-5px, 0, 0) scaleX(0.995);
|
|
557
557
|
}
|
|
558
|
-
|
|
558
|
+
100%{
|
|
559
559
|
transform:translate3d(0, 0, 0);
|
|
560
560
|
}
|
|
561
561
|
}
|
|
562
562
|
|
|
563
563
|
@keyframes bounceInRight{
|
|
564
|
-
|
|
564
|
+
0%, 60%, 75%, 90%, 100%{
|
|
565
565
|
-webkit-animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
566
566
|
-moz-animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
567
567
|
-o-animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
568
568
|
animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
569
569
|
}
|
|
570
|
-
|
|
570
|
+
0%{
|
|
571
571
|
opacity:0;
|
|
572
572
|
-webkit-transform:translate3d(3000px, 0, 0) scaleX(3);
|
|
573
573
|
-moz-transform:translate3d(3000px, 0, 0) scaleX(3);
|
|
@@ -589,7 +589,7 @@
|
|
|
589
589
|
-moz-transform:translate3d(-5px, 0, 0) scaleX(0.995);
|
|
590
590
|
transform:translate3d(-5px, 0, 0) scaleX(0.995);
|
|
591
591
|
}
|
|
592
|
-
|
|
592
|
+
100%{
|
|
593
593
|
-webkit-transform:translate3d(0, 0, 0);
|
|
594
594
|
-moz-transform:translate3d(0, 0, 0);
|
|
595
595
|
transform:translate3d(0, 0, 0);
|
|
@@ -601,7 +601,7 @@
|
|
|
601
601
|
-webkit-transform:translate3d(-20px, 0, 0) scaleX(0.9);
|
|
602
602
|
transform:translate3d(-20px, 0, 0) scaleX(0.9);
|
|
603
603
|
}
|
|
604
|
-
|
|
604
|
+
100%{
|
|
605
605
|
opacity:0;
|
|
606
606
|
-webkit-transform:translate3d(2000px, 0, 0) scaleX(2);
|
|
607
607
|
transform:translate3d(2000px, 0, 0) scaleX(2);
|
|
@@ -613,7 +613,7 @@
|
|
|
613
613
|
-moz-transform:translate3d(-20px, 0, 0) scaleX(0.9);
|
|
614
614
|
transform:translate3d(-20px, 0, 0) scaleX(0.9);
|
|
615
615
|
}
|
|
616
|
-
|
|
616
|
+
100%{
|
|
617
617
|
opacity:0;
|
|
618
618
|
-moz-transform:translate3d(2000px, 0, 0) scaleX(2);
|
|
619
619
|
transform:translate3d(2000px, 0, 0) scaleX(2);
|
|
@@ -624,7 +624,7 @@
|
|
|
624
624
|
opacity:1;
|
|
625
625
|
transform:translate3d(-20px, 0, 0) scaleX(0.9);
|
|
626
626
|
}
|
|
627
|
-
|
|
627
|
+
100%{
|
|
628
628
|
opacity:0;
|
|
629
629
|
transform:translate3d(2000px, 0, 0) scaleX(2);
|
|
630
630
|
}
|
|
@@ -636,7 +636,7 @@
|
|
|
636
636
|
-moz-transform:translate3d(-20px, 0, 0) scaleX(0.9);
|
|
637
637
|
transform:translate3d(-20px, 0, 0) scaleX(0.9);
|
|
638
638
|
}
|
|
639
|
-
|
|
639
|
+
100%{
|
|
640
640
|
opacity:0;
|
|
641
641
|
-webkit-transform:translate3d(2000px, 0, 0) scaleX(2);
|
|
642
642
|
-moz-transform:translate3d(2000px, 0, 0) scaleX(2);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/alert",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-next.0",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/alert.cjs.js",
|
|
6
6
|
"module": "dist/alert.esm.js",
|
|
@@ -22,23 +22,23 @@
|
|
|
22
22
|
"test": "jest"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"react": ">=
|
|
26
|
-
"react-dom": ">=
|
|
25
|
+
"react": ">=18.0.0",
|
|
26
|
+
"react-dom": ">=18.0.0"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@entur/button": "^
|
|
30
|
-
"@entur/expand": "^
|
|
31
|
-
"@entur/icons": "^
|
|
32
|
-
"@entur/tokens": "^3.24.0",
|
|
33
|
-
"@entur/tooltip": "^
|
|
34
|
-
"@entur/typography": "^
|
|
35
|
-
"@entur/utils": "^0.
|
|
29
|
+
"@entur/button": "^5.0.0-next.0",
|
|
30
|
+
"@entur/expand": "^4.0.0-next.0",
|
|
31
|
+
"@entur/icons": "^10.0.0-next.0",
|
|
32
|
+
"@entur/tokens": "^3.24.1-next.0",
|
|
33
|
+
"@entur/tooltip": "^6.0.0-next.0",
|
|
34
|
+
"@entur/typography": "^3.0.0-next.0",
|
|
35
|
+
"@entur/utils": "^1.0.0-next.0",
|
|
36
36
|
"classnames": "^2.5.1",
|
|
37
37
|
"copy-text-to-clipboard": "^2.2.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@testing-library/jest-dom": "^5.17.0",
|
|
41
|
-
"@testing-library/react": "^
|
|
41
|
+
"@testing-library/react": "^16.3.0",
|
|
42
42
|
"@testing-library/user-event": "14.6.1",
|
|
43
43
|
"@vitejs/plugin-react": "^5.0.1",
|
|
44
44
|
"jest": "^29.0.0",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"vite": "^7.3.2",
|
|
49
49
|
"vite-plugin-dts": "^4.5.4"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "0f435bdeec98cc3cea1db7434b13b1f771a39a18"
|
|
52
52
|
}
|