{"version":3,"file":"usePillStyles.cjs","sources":["../../../../src/components/toggle-switch/usePillStyles.ts"],"sourcesContent":["import {\n    type RefObject,\n    useCallback,\n    useEffect,\n    useMemo,\n    useState,\n} from \"react\";\n\nfunction throttle<R, A extends any[]>(fn: (...args: A) => R) {\n    let wait = false;\n\n    return (...args: A) => {\n        if (wait) return undefined;\n\n        const result = fn(...args);\n\n        wait = true;\n        window.setTimeout(() => {\n            wait = false;\n        }, 200);\n\n        return result;\n    };\n}\n\nexport const usePillStyles = (\n    ref: RefObject<HTMLLabelElement | null>,\n    shouldTransform: boolean,\n    dependencies: unknown[],\n) => {\n    const [width, setWidth] = useState(0);\n    const [distance, setDistance] = useState(0);\n\n    const setStyles = useCallback(() => {\n        if (ref.current?.parentElement) {\n            setWidth(ref.current.clientWidth);\n\n            const translateDistance = shouldTransform\n                ? ref.current.parentElement.clientWidth -\n                  ref.current.clientWidth\n                : 0;\n\n            setDistance(translateDistance);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [ref, shouldTransform, ...dependencies]);\n\n    const throttledSetStyles = useMemo(() => throttle(setStyles), [setStyles]);\n\n    useEffect(() => {\n        setStyles();\n        typeof window !== \"undefined\" &&\n            window.addEventListener(\"resize\", throttledSetStyles);\n        return () => {\n            typeof window !== \"undefined\" &&\n                window.removeEventListener(\"resize\", throttledSetStyles);\n        };\n    }, [setStyles, throttledSetStyles]);\n\n    return {\n        width,\n        transform: `translateX(${distance}px)`,\n    };\n};\n"],"names":["ref","shouldTransform","dependencies","width","setWidth","useState","distance","setDistance","setStyles","useCallback","current","parentElement","clientWidth","translateDistance","throttledSetStyles","useMemo","fn","wait","args","result","window","setTimeout","throttle","useEffect","addEventListener","removeEventListener","transform"],"mappings":"+HAyB6B,CACzBA,EACAC,EACAC,KAEA,MAAOC,EAAOC,GAAYC,EAAAA,SAAS,IAC5BC,EAAUC,GAAeF,EAAAA,SAAS,GAEnCG,EAAYC,EAAAA,YAAY,KAC1B,GAAIT,EAAIU,SAASC,cAAe,CAC5BP,EAASJ,EAAIU,QAAQE,aAErB,MAAMC,EAAoBZ,EACpBD,EAAIU,QAAQC,cAAcC,YAC1BZ,EAAIU,QAAQE,YACZ,EAENL,EAAYM,EAChB,GAED,CAACb,EAAKC,KAAoBC,IAEvBY,EAAqBC,EAAAA,QAAQ,IAvCvC,SAAsCC,GAClC,IAAIC,GAAO,EAEX,MAAO,IAAIC,KACP,GAAID,EAAM,OAEV,MAAME,EAASH,KAAME,GAErB,OAAAD,GAAO,EACPG,OAAOC,WAAW,KACdJ,GAAO,GACR,KAEIE,EAEf,CAwB6CG,CAASd,GAAY,CAACA,IAE/De,OAAAA,EAAAA,UAAU,KACNf,WACOY,OAAW,KACdA,OAAOI,iBAAiB,SAAUV,GAC/B,YACIM,OAAW,KACdA,OAAOK,oBAAoB,SAAUX,KAE9C,CAACN,EAAWM,IAER,CACHX,MAAAA,EACAuB,UAAW,cAAcpB"}