@vkontakte/vkui 7.11.0 → 7.11.2

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.
@@ -122,7 +122,7 @@ export const useTooltip = (_param)=>{
122
122
  customMiddlewares: [
123
123
  sizeMiddleware({
124
124
  apply ({ rects, elements, availableWidth }) {
125
- const width = Math.min(Math.round(rects.floating.width), Math.floor(availableWidth));
125
+ const width = Math.min(Math.ceil(rects.floating.width), Math.floor(availableWidth));
126
126
  Object.assign(elements.floating.style, {
127
127
  width: `${width}px`
128
128
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Tooltip/useTooltip.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { type Ref, useCallback } from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport {\n type FloatingComponentProps,\n useFloatingElement,\n type UseFloatingElementProps,\n} from '../../hooks/useFloatingElement';\nimport { animationFadeClassNames } from '../../lib/animation';\nimport { getArrowCoordsByMiddlewareData, sizeMiddleware } from '../../lib/floating';\nimport { type ReferenceProps } from '../../lib/floating/useFloatingWithInteractions/types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { TooltipBase } from '../TooltipBase/TooltipBase';\nimport { type TooltipProps } from './Tooltip';\n\nexport type UseTooltipProps = Omit<TooltipProps, 'children'> & {\n [key: `data-${string}`]: string | number | boolean;\n};\n\nexport type UseTooltipResult<ElementType extends HTMLElement = HTMLElement> = {\n /**\n * Реф на якорный элемент.\n */\n anchorRef: Ref<ElementType>;\n /**\n * Свойства для якорного элемента, содержит необходимые обработчики.\n */\n anchorProps: ReferenceProps<ElementType>;\n /**\n * Отрендеренный компонент тултипа.\n */\n tooltip: React.ReactNode | null;\n};\n\nexport const useTooltip = ({\n // UseFloatingMiddlewaresBootstrapOptions\n placement: placementProp = 'bottom',\n arrowPadding = 10,\n arrowHeight = 8,\n offsetByMainAxis = 8,\n offsetByCrossAxis = 0,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n disableShiftMiddleware = false,\n disableTriggerOnFocus = false,\n onReferenceHiddenChange,\n overflowPadding,\n\n // useFloatingWithInteractions\n defaultShown,\n shown: shownProp,\n onShownChange,\n hoverDelay = 150,\n strategy,\n\n // инверсированные св-ва для useFloatingWithInteractions\n enableInteractive = false,\n disableArrow = false,\n disableCloseAfterClick = false,\n\n // AppRootProps\n usePortal,\n\n // TooltipBaseProps\n id: idProp,\n getRootRef,\n appearance = 'neutral',\n style: styleProp,\n className,\n zIndex = 'var(--vkui--z_index_popout)',\n closable,\n onPlacementChange,\n ...popperProps\n}: UseTooltipProps): UseTooltipResult => {\n const generatedId = React.useId();\n const tooltipId = idProp || generatedId;\n\n const renderFloatingComponent = useCallback(\n ({\n shown,\n floatingProps,\n floatingRef,\n placement: resultPlacement,\n middlewareData,\n setArrowRef,\n willBeHide,\n onClose,\n }: FloatingComponentProps<HTMLDivElement>) => {\n if (!shown) {\n return null;\n }\n return (\n <AppRootPortal usePortal={usePortal}>\n <TooltipBase\n {...popperProps}\n {...floatingProps}\n style={{\n ...floatingProps.style,\n zIndex,\n ...styleProp,\n }}\n id={tooltipId}\n getRootRef={floatingRef}\n appearance={appearance}\n arrowProps={\n disableArrow\n ? undefined\n : {\n placement: resultPlacement,\n coords: getArrowCoordsByMiddlewareData(middlewareData),\n getRootRef: setArrowRef,\n }\n }\n className={classNames(\n willBeHide ? animationFadeClassNames.out : animationFadeClassNames.in,\n className,\n )}\n onCloseIconClick={closable ? onClose : undefined}\n />\n </AppRootPortal>\n );\n },\n [\n appearance,\n className,\n closable,\n disableArrow,\n popperProps,\n styleProp,\n tooltipId,\n usePortal,\n zIndex,\n ],\n );\n\n const remapReferenceProps: Exclude<UseFloatingElementProps['remapReferenceProps'], undefined> =\n useCallback(\n ({ shown, ...referenceProps }) => ({\n ...referenceProps,\n ...(shown && { 'aria-describedby': tooltipId }),\n }),\n [tooltipId],\n );\n\n const { component, anchorRef, anchorProps } = useFloatingElement({\n placement: placementProp,\n arrow: !disableArrow,\n arrowHeight,\n arrowPadding,\n offsetByMainAxis,\n offsetByCrossAxis,\n hideWhenReferenceHidden,\n disableFlipMiddleware,\n disableShiftMiddleware,\n overflowPadding,\n\n defaultShown,\n shown: shownProp,\n onShownChange,\n trigger: disableTriggerOnFocus ? 'hover' : ['hover', 'focus'],\n onReferenceHiddenChange,\n hoverDelay,\n closeAfterClick: !disableCloseAfterClick,\n disableInteractive: !enableInteractive,\n strategy,\n\n onPlacementChange,\n\n renderFloatingComponent,\n externalFloatingElementRef: getRootRef,\n remapReferenceProps,\n\n customMiddlewares: [\n sizeMiddleware({\n apply({ rects, elements, availableWidth }) {\n const width = Math.min(Math.round(rects.floating.width), Math.floor(availableWidth));\n Object.assign(elements.floating.style, {\n width: `${width}px`,\n });\n },\n padding: overflowPadding,\n }),\n ],\n });\n\n return {\n anchorRef,\n anchorProps,\n tooltip: component,\n };\n};\n"],"names":["React","useCallback","classNames","useFloatingElement","animationFadeClassNames","getArrowCoordsByMiddlewareData","sizeMiddleware","AppRootPortal","TooltipBase","useTooltip","placement","placementProp","arrowPadding","arrowHeight","offsetByMainAxis","offsetByCrossAxis","hideWhenReferenceHidden","disableFlipMiddleware","disableShiftMiddleware","disableTriggerOnFocus","onReferenceHiddenChange","overflowPadding","defaultShown","shown","shownProp","onShownChange","hoverDelay","strategy","enableInteractive","disableArrow","disableCloseAfterClick","usePortal","id","idProp","getRootRef","appearance","style","styleProp","className","zIndex","closable","onPlacementChange","popperProps","generatedId","useId","tooltipId","renderFloatingComponent","floatingProps","floatingRef","resultPlacement","middlewareData","setArrowRef","willBeHide","onClose","arrowProps","undefined","coords","out","in","onCloseIconClick","remapReferenceProps","referenceProps","component","anchorRef","anchorProps","arrow","trigger","closeAfterClick","disableInteractive","externalFloatingElementRef","customMiddlewares","apply","rects","elements","availableWidth","width","Math","min","round","floating","floor","Object","assign","padding","tooltip"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Tooltip/useTooltip.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { type Ref, useCallback } from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport {\n type FloatingComponentProps,\n useFloatingElement,\n type UseFloatingElementProps,\n} from '../../hooks/useFloatingElement';\nimport { animationFadeClassNames } from '../../lib/animation';\nimport { getArrowCoordsByMiddlewareData, sizeMiddleware } from '../../lib/floating';\nimport { type ReferenceProps } from '../../lib/floating/useFloatingWithInteractions/types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { TooltipBase } from '../TooltipBase/TooltipBase';\nimport { type TooltipProps } from './Tooltip';\n\nexport type UseTooltipProps = Omit<TooltipProps, 'children'> & {\n [key: `data-${string}`]: string | number | boolean;\n};\n\nexport type UseTooltipResult<ElementType extends HTMLElement = HTMLElement> = {\n /**\n * Реф на якорный элемент.\n */\n anchorRef: Ref<ElementType>;\n /**\n * Свойства для якорного элемента, содержит необходимые обработчики.\n */\n anchorProps: ReferenceProps<ElementType>;\n /**\n * Отрендеренный компонент тултипа.\n */\n tooltip: React.ReactNode | null;\n};\n\nexport const useTooltip = ({\n // UseFloatingMiddlewaresBootstrapOptions\n placement: placementProp = 'bottom',\n arrowPadding = 10,\n arrowHeight = 8,\n offsetByMainAxis = 8,\n offsetByCrossAxis = 0,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n disableShiftMiddleware = false,\n disableTriggerOnFocus = false,\n onReferenceHiddenChange,\n overflowPadding,\n\n // useFloatingWithInteractions\n defaultShown,\n shown: shownProp,\n onShownChange,\n hoverDelay = 150,\n strategy,\n\n // инверсированные св-ва для useFloatingWithInteractions\n enableInteractive = false,\n disableArrow = false,\n disableCloseAfterClick = false,\n\n // AppRootProps\n usePortal,\n\n // TooltipBaseProps\n id: idProp,\n getRootRef,\n appearance = 'neutral',\n style: styleProp,\n className,\n zIndex = 'var(--vkui--z_index_popout)',\n closable,\n onPlacementChange,\n ...popperProps\n}: UseTooltipProps): UseTooltipResult => {\n const generatedId = React.useId();\n const tooltipId = idProp || generatedId;\n\n const renderFloatingComponent = useCallback(\n ({\n shown,\n floatingProps,\n floatingRef,\n placement: resultPlacement,\n middlewareData,\n setArrowRef,\n willBeHide,\n onClose,\n }: FloatingComponentProps<HTMLDivElement>) => {\n if (!shown) {\n return null;\n }\n return (\n <AppRootPortal usePortal={usePortal}>\n <TooltipBase\n {...popperProps}\n {...floatingProps}\n style={{\n ...floatingProps.style,\n zIndex,\n ...styleProp,\n }}\n id={tooltipId}\n getRootRef={floatingRef}\n appearance={appearance}\n arrowProps={\n disableArrow\n ? undefined\n : {\n placement: resultPlacement,\n coords: getArrowCoordsByMiddlewareData(middlewareData),\n getRootRef: setArrowRef,\n }\n }\n className={classNames(\n willBeHide ? animationFadeClassNames.out : animationFadeClassNames.in,\n className,\n )}\n onCloseIconClick={closable ? onClose : undefined}\n />\n </AppRootPortal>\n );\n },\n [\n appearance,\n className,\n closable,\n disableArrow,\n popperProps,\n styleProp,\n tooltipId,\n usePortal,\n zIndex,\n ],\n );\n\n const remapReferenceProps: Exclude<UseFloatingElementProps['remapReferenceProps'], undefined> =\n useCallback(\n ({ shown, ...referenceProps }) => ({\n ...referenceProps,\n ...(shown && { 'aria-describedby': tooltipId }),\n }),\n [tooltipId],\n );\n\n const { component, anchorRef, anchorProps } = useFloatingElement({\n placement: placementProp,\n arrow: !disableArrow,\n arrowHeight,\n arrowPadding,\n offsetByMainAxis,\n offsetByCrossAxis,\n hideWhenReferenceHidden,\n disableFlipMiddleware,\n disableShiftMiddleware,\n overflowPadding,\n\n defaultShown,\n shown: shownProp,\n onShownChange,\n trigger: disableTriggerOnFocus ? 'hover' : ['hover', 'focus'],\n onReferenceHiddenChange,\n hoverDelay,\n closeAfterClick: !disableCloseAfterClick,\n disableInteractive: !enableInteractive,\n strategy,\n\n onPlacementChange,\n\n renderFloatingComponent,\n externalFloatingElementRef: getRootRef,\n remapReferenceProps,\n\n customMiddlewares: [\n sizeMiddleware({\n apply({ rects, elements, availableWidth }) {\n const width = Math.min(Math.ceil(rects.floating.width), Math.floor(availableWidth));\n Object.assign(elements.floating.style, {\n width: `${width}px`,\n });\n },\n padding: overflowPadding,\n }),\n ],\n });\n\n return {\n anchorRef,\n anchorProps,\n tooltip: component,\n };\n};\n"],"names":["React","useCallback","classNames","useFloatingElement","animationFadeClassNames","getArrowCoordsByMiddlewareData","sizeMiddleware","AppRootPortal","TooltipBase","useTooltip","placement","placementProp","arrowPadding","arrowHeight","offsetByMainAxis","offsetByCrossAxis","hideWhenReferenceHidden","disableFlipMiddleware","disableShiftMiddleware","disableTriggerOnFocus","onReferenceHiddenChange","overflowPadding","defaultShown","shown","shownProp","onShownChange","hoverDelay","strategy","enableInteractive","disableArrow","disableCloseAfterClick","usePortal","id","idProp","getRootRef","appearance","style","styleProp","className","zIndex","closable","onPlacementChange","popperProps","generatedId","useId","tooltipId","renderFloatingComponent","floatingProps","floatingRef","resultPlacement","middlewareData","setArrowRef","willBeHide","onClose","arrowProps","undefined","coords","out","in","onCloseIconClick","remapReferenceProps","referenceProps","component","anchorRef","anchorProps","arrow","trigger","closeAfterClick","disableInteractive","externalFloatingElementRef","customMiddlewares","apply","rects","elements","availableWidth","width","Math","min","ceil","floating","floor","Object","assign","padding","tooltip"],"mappings":"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"}