@transkripid/flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS - Transkrip.id fork
1 lines • 2.03 kB
Source Map (JSON)
{"version":3,"file":"helpers.mjs","sources":["../../../src/components/Floating/helpers.ts"],"sourcesContent":["import type { Middleware, Placement } from '@floating-ui/react';\nimport { arrow, autoPlacement, flip, offset, shift } from '@floating-ui/react';\nimport type { RefObject } from 'react';\n\n/**\n * @see https://floating-ui.com/docs/middleware\n */\nexport const getMiddleware = ({\n arrowRef,\n placement,\n}: {\n arrowRef?: RefObject<HTMLDivElement>;\n placement: 'auto' | Placement;\n}): Middleware[] => {\n const middleware = [];\n\n middleware.push(offset(8));\n middleware.push(placement === 'auto' ? autoPlacement() : flip());\n middleware.push(shift({ padding: 8 }));\n\n if (arrowRef?.current) {\n middleware.push(arrow({ element: arrowRef.current }));\n }\n\n return middleware;\n};\n\nexport const getPlacement = ({ placement }: { placement: 'auto' | Placement }): Placement | undefined => {\n return placement === 'auto' ? undefined : placement;\n};\n\nexport const getArrowPlacement = ({ placement }: { placement: Placement }): Placement => {\n return {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]] as Placement;\n};\n"],"names":["getMiddleware","arrowRef","placement","middleware","push","offset","autoPlacement","flip","shift","padding","current","arrow","element","getPlacement","undefined","getArrowPlacement","top","right","bottom","left","split"],"mappings":";AAOO,MAAMA,IAAgBA,CAAC;AAAA,EAC5BC,UAAAA;AAAAA,EACAC,WAAAA;AAIF,MAAoB;AAClB,QAAMC,IAAa,CAAA;AAERC,SAAAA,EAAAA,KAAKC,EAAO,CAAC,CAAC,GACzBF,EAAWC,KAAKF,MAAc,SAASI,EAAc,IAAIC,GAAM,GAC/DJ,EAAWC,KAAKI,EAAM;AAAA,IAAEC,SAAS;AAAA,EAAG,CAAA,CAAC,GAEjCR,KAAAA,QAAAA,EAAUS,WACZP,EAAWC,KAAKO,EAAM;AAAA,IAAEC,SAASX,EAASS;AAAAA,EAAS,CAAA,CAAC,GAG/CP;AACT,GAEaU,IAAeA,CAAC;AAAA,EAAEX,WAAAA;AAA6C,MACnEA,MAAc,SAASY,SAAYZ,GAG/Ba,IAAoBA,CAAC;AAAA,EAAEb,WAAAA;AAAoC,OAC/D;AAAA,EACLc,KAAK;AAAA,EACLC,OAAO;AAAA,EACPC,QAAQ;AAAA,EACRC,MAAM;GACNjB,EAAUkB,MAAM,GAAG,EAAE,CAAC,CAAC;"}