{"version":3,"file":"SlotComponent.cjs","sources":["../../../../src/utilities/polymorphism/SlotComponent.tsx"],"sourcesContent":["import React from \"react\";\nimport { mergeRefs } from \"../mergeRefs.js\";\nimport { mergeProps } from \"./mergeProps.js\";\n\nexport type SlotComponentProps = React.HTMLAttributes<HTMLElement> & {\n    children: React.ReactElement | false | null;\n};\n\nexport const SlotComponent = React.forwardRef<HTMLElement, SlotComponentProps>(\n    function SlotComponent({ children, ...slotProps }, forwardedRef) {\n        if (React.isValidElement(children)) {\n            return React.cloneElement(children as React.ReactElement, {\n                ...mergeProps(slotProps, children.props),\n                ref: mergeRefs(forwardedRef, (children as any).ref),\n            });\n        }\n\n        if (React.Children.count(children) > 1) {\n            throw new Error(\n                \"Du kan kun bruke ett enkelt React-element som children i en komponent med asChild\",\n            );\n        }\n\n        return null;\n    },\n);\n"],"names":["SlotComponent","React","forwardRef","children","slotProps","forwardedRef","isValidElement","cloneElement","mergeProps","props","ref","mergeRefs","Children","count","Error"],"mappings":"qKAQaA,EAAgBC,EAAMC,WAC/B,UAAyBC,SAAAA,KAAaC,GAAaC,GAC/C,GAAIJ,EAAMK,eAAeH,GACrB,OAAOF,EAAMM,aAAaJ,EAAgC,IACnDK,aAAWJ,EAAWD,EAASM,OAClCC,IAAKC,EAAAA,UAAUN,EAAeF,EAAiBO,OAIvD,GAAIT,EAAMW,SAASC,MAAMV,GAAY,EACjC,MAAM,IAAIW,MACN,qFAIR,OAAO,IACX"}