{"version":3,"file":"TooltipTrigger.cjs","sources":["../../../../src/components/tooltip/TooltipTrigger.tsx"],"sourcesContent":["import { useMergeRefs } from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport React, { forwardRef, type HTMLProps } from \"react\";\nimport { useTooltipContext } from \"./Tooltip.js\";\n\nexport const TooltipTrigger = forwardRef<HTMLElement, HTMLProps<HTMLElement>>(\n    function TooltipTrigger({ children, className, ...props }, forwardedRef) {\n        const { isOpen, getReferenceProps, refs, triggerOn } =\n            useTooltipContext();\n        const childrenRef = (children as any).ref;\n        const ref = useMergeRefs([\n            childrenRef,\n            refs.setReference,\n            forwardedRef,\n        ]);\n\n        const filterMaterialSymbols = (\n            maybeText: string | null | undefined,\n        ) => {\n            return maybeText?.replaceAll(/[\\ue003-\\uf8aa]/g, \"\");\n        };\n\n        const ariaLabel = [\n            (refs.reference.current as HTMLElement | null)?.textContent,\n            refs.description.current?.textContent,\n        ]\n            .map(filterMaterialSymbols)\n            .filter(Boolean)\n            .join(\". \");\n\n        if (React.isValidElement(children)) {\n            return React.cloneElement(\n                children,\n                getReferenceProps({\n                    ref,\n                    \"aria-label\": ariaLabel,\n                    ...children.props,\n                    ...props,\n                    className: clsx(children.props.className, className),\n                    \"data-tooltip-shown\": isOpen,\n                    style: { ...children.props.style },\n                    tabIndex: triggerOn === \"click\" ? 0 : undefined,\n                }),\n            );\n        }\n\n        return (\n            <button\n                data-tooltip-shown={isOpen}\n                {...getReferenceProps({\n                    className: clsx(className, \"jkl-tooltip-trigger\"),\n                    // Sørg for at vi ikke sender inn skjemaer ved klikk på knappen\n                    type: \"button\",\n                    ref,\n                    \"aria-label\": ariaLabel,\n                    ...props,\n                })}\n            >\n                {children}\n            </button>\n        );\n    },\n);\n"],"names":["TooltipTrigger","forwardRef","children","className","props","forwardedRef","isOpen","getReferenceProps","refs","triggerOn","useTooltipContext","childrenRef","ref","useMergeRefs","setReference","ariaLabel","reference","current","textContent","description","map","maybeText","replaceAll","filter","Boolean","join","React","isValidElement","cloneElement","clsx","style","tabIndex","jsx","type"],"mappings":"2OAKaA,EAAiBC,EAAAA,WAC1B,UAA0BC,SAAAA,EAAUC,UAAAA,KAAcC,GAASC,GACvD,MAAQC,OAAAA,EAAQC,kBAAAA,EAAmBC,KAAAA,EAAMC,UAAAA,GACrCC,EAAAA,oBACEC,EAAeT,EAAiBU,IAChCA,EAAMC,EAAAA,aAAa,CACrBF,EACAH,EAAKM,aACLT,IASEU,EAAY,CACbP,EAAKQ,UAAUC,SAAgCC,YAChDV,EAAKW,YAAYF,SAASC,aAEzBE,IATDC,GAEOA,GAAWC,WAAW,mBAAoB,KAQhDC,OAAOC,SACPC,KAAK,MAEV,OAAIC,EAAMC,eAAezB,GACdwB,EAAME,aACT1B,EACAK,EAAkB,CACdK,IAAAA,EACA,aAAcG,KACXb,EAASE,SACTA,EACHD,UAAW0B,EAAAA,KAAK3B,EAASE,MAAMD,UAAWA,GAC1C,qBAAsBG,EACtBwB,MAAO,IAAK5B,EAASE,MAAM0B,OAC3BC,SAAwB,UAAdtB,EAAwB,OAAI,KAM9CuB,EAAAA,IAAC,SAAA,CACG,qBAAoB1B,KAChBC,EAAkB,CAClBJ,UAAW0B,EAAAA,KAAK1B,EAAW,uBAE3B8B,KAAM,SACNrB,IAAAA,EACA,aAAcG,KACXX,IAGNF,SAAAA,GAGb"}