UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

1 lines 2.24 kB
{"version":3,"file":"Arrow.cjs","sources":["../../../../src/lib/Tooltip/Arrow.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react';\nimport type {Placement} from '@floating-ui/react-dom';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Tooltip.module.css';\n\nexport type Props = {\n placement: Placement;\n left?: number;\n top?: number;\n};\n\nexport const Arrow = forwardRef<HTMLDivElement, Props>(({placement, left, top}, ref) => {\n const position = placement.split('-')[0];\n const {LocalRoot, ref: rootRef} = useLocalTheme<HTMLDivElement>();\n const theme = useMemo(() => {\n const result = {} as {top?: Props['top']; left?: Props['left']};\n if (top) {\n result.top = top;\n }\n if (left) {\n result.left = left;\n }\n return result;\n }, [left, top]);\n useLinkRefs<HTMLDivElement>(ref, rootRef);\n return (\n <LocalRoot\n theme={theme}\n className={classNames(classes.arrow, {\n [classes.bottom]: position === 'bottom',\n [classes.left]: position === 'left',\n [classes.top]: position === 'top',\n [classes.right]: position === 'right',\n })}></LocalRoot>\n );\n});\n\nArrow.displayName = 'Arrow';\n"],"names":["Arrow","forwardRef","placement","left","top","ref","position","LocalRoot","rootRef","useLocalTheme","theme","useMemo","result","useLinkRefs","jsx","classNames","classes"],"mappings":"gSAeaA,EAAQC,aAAkC,CAAC,CAAC,UAAAC,EAAW,KAAAC,EAAM,IAAAC,GAAMC,IAAQ,CACpF,MAAMC,EAAWJ,EAAU,MAAM,GAAG,EAAE,CAAC,EACjC,CAAC,UAAAK,EAAW,IAAKC,CAAA,EAAWC,EAAAA,cAA8B,EAC1DC,EAAQC,EAAAA,QAAQ,IAAM,CACxB,MAAMC,EAAS,CAAC,EAChB,OAAIR,IACAQ,EAAO,IAAMR,GAEbD,IACAS,EAAO,KAAOT,GAEXS,CAAA,EACR,CAACT,EAAMC,CAAG,CAAC,EACdS,OAAAA,EAAA,YAA4BR,EAAKG,CAAO,EAEpCM,EAAA,IAACP,EAAA,CACG,MAAAG,EACA,UAAWK,EAAWC,EAAA,QAAQ,MAAO,CACjC,CAACA,EAAA,QAAQ,MAAM,EAAGV,IAAa,SAC/B,CAACU,EAAA,QAAQ,IAAI,EAAGV,IAAa,OAC7B,CAACU,EAAA,QAAQ,GAAG,EAAGV,IAAa,MAC5B,CAACU,EAAA,QAAQ,KAAK,EAAGV,IAAa,OACjC,CAAA,CAAA,CAAG,CAEhB,CAAC,EAEDN,EAAM,YAAc"}