@entur/tooltip 4.0.0-beta.0 → 4.0.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/Popover.d.ts +3 -1
- package/dist/Tooltip.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/styles.css +160 -163
- package/dist/tooltip.cjs.development.js +104 -127
- package/dist/tooltip.cjs.development.js.map +1 -1
- package/dist/tooltip.cjs.production.min.js +1 -1
- package/dist/tooltip.cjs.production.min.js.map +1 -1
- package/dist/tooltip.esm.js +105 -128
- package/dist/tooltip.esm.js.map +1 -1
- package/dist/utils.d.ts +3 -0
- package/package.json +7 -9
package/dist/tooltip.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.esm.js","sources":["../src/Tooltip.tsx","../src/Popover.tsx","../src/index.tsx"],"sourcesContent":["import React, { cloneElement, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n Placement as FloatingUIPlacement,\n arrow,\n limitShift,\n} from '@floating-ui/react-dom';\n\nimport { useRandomId } from '@entur/utils';\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { space, borderRadiuses } from '@entur/tokens';\n\nimport './Tooltip.scss';\n\ntype Modifier = {\n name: string;\n enabled?: boolean;\n requires?: Array<string>;\n requiresIfExists?: Array<string>;\n options?: Record<string, unknown>;\n data?: Record<string, unknown>;\n [key: string]: any;\n};\n\nexport type Placement =\n | 'top'\n | 'top-left'\n | 'top-start'\n | 'top-right'\n | 'top-end'\n | 'left'\n | 'right'\n | 'bottom-left'\n | 'bottom-start'\n | 'bottom'\n | 'bottom-right'\n | 'bottom-end';\n\ntype ChildEventListner = {\n 'aria-describedby'?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseLeave?: () => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n onKeyUp?: (e: React.KeyboardEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n};\n\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type TooltipProps = {\n /** Plassering av tooltip-en */\n placement: Placement;\n /** Innholdet i tooltip-boksen */\n content: React.ReactNode;\n /** Elementet som skal ha tooltip-funksjonalitet */\n children: React.ReactElement;\n /** Om tooltip-en skal vises */\n isOpen?: boolean;\n /** Ekstra klassenavn for tooltip */\n className?: string;\n /** Åpner ikke tooltip ved hover-events\n * @default false\n */\n disableHoverListener?: boolean;\n /** Åpner ikke tooltip ved focus-events\n * @default false\n */\n disableFocusListener?: boolean;\n disableKeyboardListener?: boolean;\n disableClickListner?: boolean;\n /** Viser en lukkeknapp om man kontrollerer åpningen av Tooltip vha `isOpen`\n * @default true\n */\n showCloseButton?: boolean;\n /** Valideringsvariant for Tooltip */\n variant?: 'negative' | typeof error;\n /** @deprecated Ikke lenger støttet. Meld fra på #talk-designsystem hvis du trenger støtte for\n * overskrivinger av plasseringen til Tooltip!\n */\n popperModifiers?: Modifier[];\n [key: string]: any;\n};\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n placement,\n content,\n children,\n className,\n isOpen = false,\n disableHoverListener = false,\n disableFocusListener = false,\n disableKeyboardListener = true,\n disableClickListner = true,\n showCloseButton = true,\n variant,\n style,\n ...rest\n}) => {\n const [showTooltip, setShowTooltip] = useState(isOpen);\n const tooltipArrowRef = useRef(null);\n const tooltipId = useRandomId('eds-tooltip');\n let hoverOpenTimer: ReturnType<typeof setTimeout>;\n let hoverCloseTimer: ReturnType<typeof setTimeout>;\n\n // calculations for floating-UI tooltip position\n const {\n refs,\n floatingStyles,\n middlewareData,\n placement: actualPlacement,\n } = useFloating({\n whileElementsMounted: (ref, float, update) =>\n autoUpdate(ref, float, update),\n placement: standardisePlacement(placement),\n middleware: [\n offset(space.extraSmall),\n flip(),\n shift({ padding: space.extraSmall, limiter: limitShift({ offset: 8 }) }),\n arrow({\n element: tooltipArrowRef,\n padding: borderRadiuses.medium,\n }),\n ],\n });\n\n const onMouseEnter = () => {\n clearTimeout(hoverCloseTimer);\n hoverOpenTimer = setTimeout(() => {\n setShowTooltip(true);\n }, 150);\n };\n\n const onMouseLeave = () => {\n clearTimeout(hoverOpenTimer);\n hoverCloseTimer = setTimeout(() => {\n setShowTooltip(false);\n }, 300);\n };\n\n React.useEffect(() => {\n return () => {\n clearTimeout(hoverOpenTimer);\n clearTimeout(hoverCloseTimer);\n };\n }, []);\n React.useEffect(() => {\n console.log(actualPlacement);\n }, [actualPlacement]);\n\n const referenceListenerProps: ChildEventListner = {\n 'aria-describedby': showTooltip ? tooltipId : undefined,\n // focusListner\n ...(!disableFocusListener && { onFocus: () => setShowTooltip(true) }),\n ...(!disableFocusListener && { onBlur: () => setShowTooltip(false) }),\n // hoverListner\n ...(!disableHoverListener && { onMouseEnter }),\n ...(!disableHoverListener && { onMouseLeave }),\n // keyboardListner\n ...(!disableKeyboardListener && {\n onKeyDown: e => {\n if (e.key === 'Escape') setShowTooltip(false);\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n setShowTooltip(!showTooltip);\n }\n },\n }),\n // clickListner\n ...(!disableClickListner && {\n onClick: () => setShowTooltip(!showTooltip),\n }),\n };\n\n return (\n <>\n {cloneElement(children, {\n ref: refs.setReference,\n ...referenceListenerProps,\n })}\n <div\n className={classNames(className, 'eds-tooltip', {\n 'eds-tooltip--negative': variant === error || variant === 'negative',\n })}\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n display: showTooltip && content ? undefined : 'none',\n ...style,\n }}\n role=\"tooltip\"\n id={tooltipId}\n onMouseEnter={!disableHoverListener ? onMouseEnter : undefined}\n onMouseLeave={!disableHoverListener ? onMouseLeave : undefined}\n {...rest}\n >\n {content}\n {isOpen && showCloseButton && (\n <IconButton\n className=\"eds-tooltip__close-button\"\n onClick={() => setShowTooltip(false)}\n type=\"button\"\n aria-label=\"Lukk tooltip\"\n >\n <CloseIcon aria-hidden=\"true\" />\n </IconButton>\n )}\n <div\n className={`eds-tooltip__arrow--${actualPlacement?.split('-')?.[0]}`}\n ref={tooltipArrowRef}\n style={{\n left: middlewareData.arrow?.x,\n top: middlewareData.arrow?.y,\n }}\n />\n </div>\n </>\n );\n};\n\nfunction standardisePlacement(placement: string): FloatingUIPlacement {\n switch (placement) {\n case 'top-left':\n return 'top-start';\n case 'top-right':\n return 'top-end';\n case 'bottom-left':\n return 'bottom-start';\n case 'bottom-right':\n return 'bottom-end';\n default:\n return placement as FloatingUIPlacement;\n }\n}\n","import React, { cloneElement, createContext, useContext } from 'react';\n\nimport { usePopper } from 'react-popper';\nimport { Placement } from '@popperjs/core';\nimport classNames from 'classnames';\n\nimport { Contrast } from '@entur/layout';\nimport { useOnClickOutside } from '@entur/utils';\n\nimport './Popover.scss';\n\ntype PopoverContentCallbackProps = {\n ref: React.Ref<HTMLDivElement>;\n};\n\ntype PopoverContextProps = {\n showPopover: boolean;\n triggerElement?: React.RefObject<HTMLButtonElement>;\n contentElement: React.RefObject<HTMLDivElement>;\n styles: { [key: string]: React.CSSProperties };\n attributes: { [key: string]: { [key: string]: string } | undefined };\n closeButtonProps: Record<string, unknown>;\n popoverContentProps: (\n e: PopoverContentCallbackProps,\n ) => Record<string, unknown>;\n triggerProps: () => Record<string, unknown>;\n [key: string]: any;\n};\n\nconst PopoverContext = createContext<PopoverContextProps | undefined>(\n undefined,\n);\nconst usePopoverContext = () => {\n const context = useContext(PopoverContext);\n if (context == null) {\n throw Error('usePopoverContext must be used within <Popover/>');\n }\n return context;\n};\n\nconst useCustomState = (\n state?: boolean,\n setState?: React.Dispatch<React.SetStateAction<boolean>>,\n): [boolean, React.Dispatch<React.SetStateAction<boolean>>, boolean] => {\n const [internalState, setInternalState] = React.useState<boolean>(false);\n const controlled = state !== undefined && setState !== undefined;\n if (controlled) return [state, setState, controlled];\n return [internalState, setInternalState, controlled];\n};\n\nexport type PopoverProps = {\n /** Innholdet i Popover */\n children: React.ReactNode;\n /** Plasseringen av Popover\n * @default \"bottom-start\"\n */\n placement?: Placement;\n /** Hvis du ønsker å styre state selv kan du sende inn state her */\n showPopover?: boolean;\n /** Hvis du ønsker å styre state selv kan du sende inn setState her */\n setShowPopover?: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n placement = 'bottom-start',\n showPopover: controlledState,\n setShowPopover: setControlledState,\n}) => {\n const [showPopover, setShowPopover, controlled] = useCustomState(\n controlledState,\n setControlledState,\n );\n const triggerElement = React.useRef(null);\n const contentElement = React.useRef(null);\n\n const { styles, attributes, forceUpdate } = usePopper(\n triggerElement.current,\n contentElement.current,\n {\n modifiers: [\n { name: 'arrow', enabled: false },\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n ],\n placement: placement,\n },\n );\n\n React.useEffect(() => {\n if (forceUpdate) {\n forceUpdate();\n }\n }, [showPopover, forceUpdate]);\n\n const triggerProps = React.useCallback(() => {\n const buttonProps = {\n 'aria-haspopup': 'dialog',\n 'aria-expanded': showPopover,\n ref: triggerElement,\n type: 'button',\n };\n const buttonOnClick = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(prev => !prev);\n },\n };\n return controlled ? buttonProps : { ...buttonProps, ...buttonOnClick };\n }, [triggerElement, showPopover, setShowPopover, controlled]);\n\n useOnClickOutside([contentElement, triggerElement], () =>\n setShowPopover(false),\n );\n const closeButtonProps = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(false);\n },\n type: 'button',\n };\n const popoverContentProps = React.useCallback(() => {\n const contentProps = {\n role: 'dialog',\n 'aria-modal': 'false',\n ref: contentElement,\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Escape') {\n showPopover && setShowPopover(false);\n }\n },\n onBlur: (event: React.FocusEvent) => {\n const elementReceivingFocus = event.relatedTarget as HTMLElement;\n // The check for 'tabindex=-1' is a special case for focus handling in Docz\n if (\n !elementReceivingFocus ||\n elementReceivingFocus.getAttribute('tabindex') === '-1'\n )\n return;\n const focusElementIsPopover = elementContainsElement(\n contentElement.current,\n elementReceivingFocus,\n );\n const focusElementIsTrigger = elementContainsElement(\n triggerElement.current,\n elementReceivingFocus,\n );\n const isValidBlur = !focusElementIsPopover && !focusElementIsTrigger;\n if (showPopover && isValidBlur) setShowPopover(false);\n },\n };\n return contentProps;\n }, [contentElement, showPopover, setShowPopover]);\n const contextValue: PopoverContextProps = {\n showPopover,\n triggerElement,\n contentElement,\n styles,\n attributes,\n popoverContentProps,\n closeButtonProps,\n triggerProps,\n };\n return (\n <PopoverContext.Provider value={contextValue}>\n {children}\n </PopoverContext.Provider>\n );\n};\n\nexport type PopoverTriggerProps = {\n /** Knapp som skal brukes for å åpne Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverTrigger: React.FC<PopoverTriggerProps> = ({ children }) => {\n const { triggerProps } = usePopoverContext();\n const child = React.Children.only(children) as React.ReactElement<any>;\n return cloneElement(child, triggerProps());\n};\n\nexport type PopoverCloseButtonProps = {\n /** En valgfri knapp som kan legges inn for å lukke Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverCloseButton: React.FC<PopoverCloseButtonProps> = ({\n children,\n ...rest\n}) => {\n const { closeButtonProps } = usePopoverContext();\n return cloneElement(children, { ...closeButtonProps, ...rest });\n};\n\nexport type PopoverContentProps = {\n /**Innholdet til Popover */\n children: React.ReactNode;\n};\n\nexport const PopoverContent = React.forwardRef<\n HTMLDivElement,\n PopoverContentProps\n>(({ children }, ref: React.Ref<HTMLDivElement>) => {\n const { showPopover, attributes, styles, popoverContentProps } =\n usePopoverContext();\n const props = popoverContentProps({ ref });\n return (\n <Contrast\n className={classNames(\n 'eds-popover',\n {\n 'eds-popover--hidden': !showPopover,\n },\n 'eds-contrast',\n )}\n style={styles.popper}\n aria-hidden={!showPopover}\n {...attributes.styles}\n {...props}\n >\n {children}\n </Contrast>\n );\n});\n\nfunction elementContainsElement(\n parent: HTMLElement | null,\n child: HTMLElement,\n) {\n if (!parent) return false;\n return parent === child || parent.contains(child);\n}\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('tooltip');\n\nexport * from './Tooltip';\nexport * from './Popover';\n"],"names":["error","Tooltip","placement","content","children","className","isOpen","disableHoverListener","disableFocusListener","disableKeyboardListener","disableClickListner","showCloseButton","variant","style","rest","_excluded","useState","showTooltip","setShowTooltip","tooltipArrowRef","useRef","tooltipId","useRandomId","hoverOpenTimer","hoverCloseTimer","useFloating","whileElementsMounted","ref","float","update","autoUpdate","standardisePlacement","middleware","offset","space","extraSmall","flip","shift","padding","limiter","limitShift","arrow","element","borderRadiuses","medium","refs","floatingStyles","middlewareData","actualPlacement","onMouseEnter","clearTimeout","setTimeout","onMouseLeave","React","useEffect","console","log","referenceListenerProps","undefined","onFocus","onBlur","onKeyDown","e","key","preventDefault","onClick","createElement","Fragment","cloneElement","setReference","classNames","setFloating","display","role","id","IconButton","type","CloseIcon","split","left","x","top","y","PopoverContext","createContext","usePopoverContext","context","useContext","Error","useCustomState","state","setState","internalState","setInternalState","controlled","Popover","controlledState","showPopover","setControlledState","setShowPopover","triggerElement","contentElement","usePopper","current","modifiers","name","enabled","options","styles","attributes","forceUpdate","triggerProps","useCallback","buttonProps","buttonOnClick","prev","useOnClickOutside","closeButtonProps","popoverContentProps","contentProps","event","elementReceivingFocus","relatedTarget","getAttribute","focusElementIsPopover","elementContainsElement","focusElementIsTrigger","isValidBlur","contextValue","Provider","value","PopoverTrigger","child","Children","only","PopoverCloseButton","PopoverContent","forwardRef","props","Contrast","popper","parent","contains","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tooltip.esm.js","sources":["../src/utils.ts","../src/Tooltip.tsx","../src/Popover.tsx","../src/index.tsx"],"sourcesContent":["import { Placement as FloatingUIPlacement } from '@floating-ui/react-dom';\n\nexport type Placement =\n | 'top'\n | 'top-left'\n | 'top-start'\n | 'top-right'\n | 'top-end'\n | 'left'\n | 'right'\n | 'bottom-left'\n | 'bottom-start'\n | 'bottom'\n | 'bottom-right'\n | 'bottom-end';\n\nexport function standardisePlacement(placement: string): FloatingUIPlacement {\n switch (placement) {\n case 'top-left':\n return 'top-start';\n case 'top-right':\n return 'top-end';\n case 'bottom-left':\n return 'bottom-start';\n case 'bottom-right':\n return 'bottom-end';\n default:\n return placement as FloatingUIPlacement;\n }\n}\n","import React, { cloneElement, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n arrow,\n limitShift,\n} from '@floating-ui/react-dom';\n\nimport { useRandomId } from '@entur/utils';\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport { space, borderRadiuses } from '@entur/tokens';\n\nimport { Placement, standardisePlacement } from './utils';\n\nimport './Tooltip.scss';\n\ntype Modifier = {\n name: string;\n enabled?: boolean;\n requires?: Array<string>;\n requiresIfExists?: Array<string>;\n options?: Record<string, unknown>;\n data?: Record<string, unknown>;\n [key: string]: any;\n};\n\ntype ChildEventListner = {\n 'aria-describedby'?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseLeave?: () => void;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n onKeyUp?: (e: React.KeyboardEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n};\n\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type TooltipProps = {\n /** Plassering av tooltip-en */\n placement: Placement;\n /** Innholdet i tooltip-boksen */\n content: React.ReactNode;\n /** Elementet som skal ha tooltip-funksjonalitet */\n children: React.ReactElement;\n /** Om tooltip-en skal vises */\n isOpen?: boolean;\n /** Ekstra klassenavn for tooltip */\n className?: string;\n /** Åpner ikke tooltip ved hover-events\n * @default false\n */\n disableHoverListener?: boolean;\n /** Åpner ikke tooltip ved focus-events\n * @default false\n */\n disableFocusListener?: boolean;\n disableKeyboardListener?: boolean;\n disableClickListner?: boolean;\n /** Viser en lukkeknapp om man kontrollerer åpningen av Tooltip vha `isOpen`\n * @default true\n */\n showCloseButton?: boolean;\n /** Valideringsvariant for Tooltip */\n variant?: 'negative' | typeof error;\n /** @deprecated Ikke lenger støttet. Meld fra på #talk-designsystem hvis du trenger støtte for\n * overskrivinger av plasseringen til Tooltip!\n */\n popperModifiers?: Modifier[];\n [key: string]: any;\n};\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n placement,\n content,\n children,\n className,\n isOpen = false,\n disableHoverListener = false,\n disableFocusListener = false,\n disableKeyboardListener = true,\n disableClickListner = true,\n showCloseButton = true,\n variant,\n style,\n ...rest\n}) => {\n const [showTooltip, setShowTooltip] = useState(isOpen);\n const tooltipArrowRef = useRef(null);\n const tooltipId = useRandomId('eds-tooltip');\n const hoverOpenTimer = useRef<ReturnType<typeof setTimeout>>();\n const hoverCloseTimer = useRef<ReturnType<typeof setTimeout>>();\n\n // calculations for floating-UI tooltip position\n const {\n refs,\n floatingStyles,\n middlewareData,\n placement: actualPlacement,\n } = useFloating({\n whileElementsMounted: (ref, float, update) =>\n autoUpdate(ref, float, update),\n placement: standardisePlacement(placement),\n middleware: [\n offset(space.extraSmall),\n flip(),\n shift({ padding: space.extraSmall, limiter: limitShift({ offset: 8 }) }),\n arrow({\n element: tooltipArrowRef,\n padding: borderRadiuses.medium,\n }),\n ],\n });\n\n const onMouseEnter = () => {\n clearTimeout(hoverCloseTimer.current);\n hoverOpenTimer.current = setTimeout(() => {\n setShowTooltip(true);\n }, 150);\n };\n\n const onMouseLeave = () => {\n clearTimeout(hoverOpenTimer.current);\n hoverCloseTimer.current = setTimeout(() => {\n setShowTooltip(false);\n }, 300);\n };\n\n React.useEffect(() => {\n return () => {\n clearTimeout(hoverOpenTimer.current);\n clearTimeout(hoverCloseTimer.current);\n };\n }, []);\n\n const referenceListenerProps: ChildEventListner = {\n 'aria-describedby': showTooltip ? tooltipId : undefined,\n // focusListner\n ...(!disableFocusListener && { onFocus: () => setShowTooltip(true) }),\n ...(!disableFocusListener && { onBlur: () => setShowTooltip(false) }),\n // hoverListner\n ...(!disableHoverListener && { onMouseEnter }),\n ...(!disableHoverListener && { onMouseLeave }),\n // keyboardListner\n ...(!disableKeyboardListener && {\n onKeyDown: e => {\n if (e.key === 'Escape') setShowTooltip(false);\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n setShowTooltip(!showTooltip);\n }\n },\n }),\n // clickListner\n ...(!disableClickListner && {\n onClick: () => setShowTooltip(!showTooltip),\n }),\n };\n\n return (\n <>\n {cloneElement(children, {\n ref: refs.setReference,\n ...referenceListenerProps,\n })}\n <div\n className={classNames(className, 'eds-tooltip', {\n 'eds-tooltip--negative': variant === error || variant === 'negative',\n })}\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n display: showTooltip && content ? undefined : 'none',\n ...style,\n }}\n role=\"tooltip\"\n id={tooltipId}\n onMouseEnter={!disableHoverListener ? onMouseEnter : undefined}\n onMouseLeave={!disableHoverListener ? onMouseLeave : undefined}\n {...rest}\n >\n {content}\n {isOpen && showCloseButton && (\n <IconButton\n className=\"eds-tooltip__close-button\"\n onClick={() => setShowTooltip(false)}\n type=\"button\"\n aria-label=\"Lukk tooltip\"\n >\n <CloseIcon aria-hidden=\"true\" />\n </IconButton>\n )}\n <div\n className={`eds-tooltip__arrow--${actualPlacement?.split('-')?.[0]}`}\n ref={tooltipArrowRef}\n style={{\n left: middlewareData.arrow?.x,\n top: middlewareData.arrow?.y,\n }}\n />\n </div>\n </>\n );\n};\n","import React, {\n cloneElement,\n createContext,\n MutableRefObject,\n useContext,\n} from 'react';\n\nimport classNames from 'classnames';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n limitShift,\n} from '@floating-ui/react-dom';\n\nimport { Contrast } from '@entur/layout';\nimport { mergeRefs, useOnClickOutside } from '@entur/utils';\nimport { space } from '@entur/tokens';\n\nimport { Placement, standardisePlacement } from './utils';\n\nimport './Popover.scss';\n\nexport type PopoverProps = {\n /** Innholdet i Popover */\n children: React.ReactNode;\n /** Plasseringen av Popover\n * @default \"bottom-start\"\n */\n placement?: Placement;\n /** Hvis du ønsker å styre state selv kan du sende inn state her */\n showPopover?: boolean;\n /** Hvis du ønsker å styre state selv kan du sende inn setState her */\n setShowPopover?: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n placement = 'bottom-start',\n showPopover: controlledState,\n setShowPopover: setControlledState,\n}) => {\n const [showPopover, setShowPopover, controlled] = useCustomState(\n controlledState,\n setControlledState,\n );\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles } = useFloating<HTMLButtonElement>({\n whileElementsMounted: (ref, float, update) =>\n autoUpdate(ref, float, update),\n placement: standardisePlacement(placement),\n middleware: [\n offset(space.extraSmall),\n flip(),\n shift({ padding: space.extraSmall, limiter: limitShift({ offset: 8 }) }),\n ],\n });\n\n useOnClickOutside([refs.floating, refs.reference], () =>\n setShowPopover(false),\n );\n\n const popoverTriggerProps = {\n 'aria-haspopup': 'dialog',\n 'aria-expanded': showPopover,\n ref: refs.setReference,\n type: 'button',\n ...(!controlled && {\n onClick: () => setShowPopover(prev => !prev),\n }),\n };\n\n const popoverContentProps = {\n role: 'dialog',\n 'aria-modal': false,\n 'aria-hidden': !showPopover,\n ref: refs.setFloating,\n style: { ...(!showPopover && { display: 'none' }) },\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Escape') setShowPopover(false);\n },\n onBlur: (event: React.FocusEvent) => {\n const elementReceivingFocus = event.relatedTarget as HTMLElement;\n // The check for 'tabindex=-1' is a special case for focus handling in Docz\n if (\n !elementReceivingFocus ||\n elementReceivingFocus.getAttribute('tabindex') === '-1'\n )\n return;\n const focusedElementIsPopover = elementContainsElement(\n refs.floating.current,\n elementReceivingFocus,\n );\n const focusedElementIsTrigger = elementContainsElement(\n refs.reference.current,\n elementReceivingFocus,\n );\n const popoverShouldClose =\n !focusedElementIsPopover && !focusedElementIsTrigger;\n if (showPopover && popoverShouldClose) setShowPopover(false);\n },\n };\n\n const closeButtonProps = {\n onClick: () => setShowPopover(false),\n type: 'button',\n };\n\n const contextValue: PopoverContextProps = {\n showPopover,\n floatingStyles,\n popoverTriggerProps,\n popoverContentProps,\n closeButtonProps,\n };\n\n return (\n <PopoverContext.Provider value={contextValue}>\n {children}\n </PopoverContext.Provider>\n );\n};\n\nexport type PopoverTriggerProps = {\n /** Knapp som skal brukes for å åpne Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverTrigger: React.FC<PopoverTriggerProps> = ({ children }) => {\n const { popoverTriggerProps } = usePopoverContext();\n const child = React.Children.only(children) as React.ReactElement<any>;\n return cloneElement(child, popoverTriggerProps);\n};\n\nexport type PopoverCloseButtonProps = {\n /** En valgfri knapp som kan legges inn for å lukke Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverCloseButton: React.FC<PopoverCloseButtonProps> = ({\n children,\n ...rest\n}) => {\n const { closeButtonProps } = usePopoverContext();\n return cloneElement(children, { ...closeButtonProps, ...rest });\n};\n\nexport type PopoverContentProps = {\n /**Innholdet til Popover */\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n};\n\nexport const PopoverContent = React.forwardRef<\n HTMLDivElement,\n PopoverContentProps\n>(({ children, className, style }, ref: React.Ref<HTMLDivElement>) => {\n const { floatingStyles, popoverContentProps } = usePopoverContext();\n return (\n <Contrast\n className={classNames(className, 'eds-popover')}\n {...popoverContentProps}\n style={{ ...floatingStyles, ...popoverContentProps.style, ...style }}\n // @ts-expect-error correct type for floating cannot be set via useFloating\n ref={mergeRefs(popoverContentProps.ref, ref)}\n >\n {children}\n </Contrast>\n );\n});\n\ntype PopoverContextProps = {\n showPopover: boolean;\n floatingStyles: React.CSSProperties;\n closeButtonProps: Record<string, unknown>;\n popoverContentProps: {\n role: string;\n 'aria-modal': boolean;\n 'aria-hidden': boolean;\n ref: MutableRefObject<HTMLElement> | ((node: HTMLElement | null) => void);\n style: React.CSSProperties;\n onKeyDown: (event: React.KeyboardEvent) => void;\n onBlur: (event: React.FocusEvent) => void;\n };\n popoverTriggerProps: Record<string, unknown>;\n};\n\nconst PopoverContext = createContext<PopoverContextProps | undefined>(\n undefined,\n);\nconst usePopoverContext = () => {\n const context = useContext(PopoverContext);\n if (context == null) {\n throw Error('usePopoverContext must be used within <Popover/>');\n }\n return context;\n};\n\nconst useCustomState = (\n state?: boolean,\n setState?: React.Dispatch<React.SetStateAction<boolean>>,\n): [boolean, React.Dispatch<React.SetStateAction<boolean>>, boolean] => {\n const [internalState, setInternalState] = React.useState<boolean>(false);\n const controlled = state !== undefined && setState !== undefined;\n if (controlled) return [state, setState, controlled];\n return [internalState, setInternalState, controlled];\n};\n\nfunction elementContainsElement(\n parent: HTMLElement | null,\n child: HTMLElement,\n) {\n if (!parent) return false;\n return parent === child || parent.contains(child);\n}\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('tooltip');\n\nexport * from './Tooltip';\nexport * from './Popover';\nexport { Placement } from './utils';\n"],"names":["standardisePlacement","placement","error","Tooltip","content","children","className","isOpen","disableHoverListener","disableFocusListener","disableKeyboardListener","disableClickListner","showCloseButton","variant","style","rest","_excluded","useState","showTooltip","setShowTooltip","tooltipArrowRef","useRef","tooltipId","useRandomId","hoverOpenTimer","hoverCloseTimer","useFloating","whileElementsMounted","ref","float","update","autoUpdate","middleware","offset","space","extraSmall","flip","shift","padding","limiter","limitShift","arrow","element","borderRadiuses","medium","refs","floatingStyles","middlewareData","actualPlacement","onMouseEnter","clearTimeout","current","setTimeout","onMouseLeave","React","useEffect","referenceListenerProps","undefined","onFocus","onBlur","onKeyDown","e","key","preventDefault","onClick","createElement","Fragment","cloneElement","setReference","classNames","setFloating","display","role","id","IconButton","type","CloseIcon","split","left","x","top","y","Popover","controlledState","showPopover","setControlledState","setShowPopover","useCustomState","controlled","useOnClickOutside","floating","reference","popoverTriggerProps","prev","popoverContentProps","event","elementReceivingFocus","relatedTarget","getAttribute","focusedElementIsPopover","elementContainsElement","focusedElementIsTrigger","popoverShouldClose","closeButtonProps","contextValue","PopoverContext","Provider","value","PopoverTrigger","usePopoverContext","child","Children","only","PopoverCloseButton","PopoverContent","forwardRef","Contrast","mergeRefs","createContext","context","useContext","Error","state","setState","internalState","setInternalState","parent","contains","warnAboutMissingStyles"],"mappings":"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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Placement as FloatingUIPlacement } from '@floating-ui/react-dom';
|
|
2
|
+
export type Placement = 'top' | 'top-left' | 'top-start' | 'top-right' | 'top-end' | 'left' | 'right' | 'bottom-left' | 'bottom-start' | 'bottom' | 'bottom-right' | 'bottom-end';
|
|
3
|
+
export declare function standardisePlacement(placement: string): FloatingUIPlacement;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/tooltip",
|
|
3
|
-
"version": "4.0.0
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/tooltip.esm.js",
|
|
@@ -27,15 +27,13 @@
|
|
|
27
27
|
"react-dom": ">=16.8.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@entur/button": "^3.2.
|
|
31
|
-
"@entur/icons": "^7.
|
|
32
|
-
"@entur/layout": "^2.3.
|
|
30
|
+
"@entur/button": "^3.2.31",
|
|
31
|
+
"@entur/icons": "^7.3.0",
|
|
32
|
+
"@entur/layout": "^2.3.15",
|
|
33
33
|
"@entur/tokens": "^3.17.0",
|
|
34
|
-
"@entur/utils": "^0.11.
|
|
34
|
+
"@entur/utils": "^0.11.2",
|
|
35
35
|
"@floating-ui/react-dom": "^2.1.0",
|
|
36
|
-
"
|
|
37
|
-
"classnames": "^2.3.1",
|
|
38
|
-
"react-popper": "~2.2.5"
|
|
36
|
+
"classnames": "^2.3.1"
|
|
39
37
|
},
|
|
40
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "c5713d9ad333e17ca5714d86181baba74c56e0eb"
|
|
41
39
|
}
|