{"version":3,"file":"createIconChildUtils.cjs","sources":["../../src/utils/createIconChildUtils.ts"],"sourcesContent":["import {\r\n    Children,\r\n    isValidElement,\r\n    type ComponentType,\r\n    type ReactElement,\r\n    type ReactNode,\r\n} from 'react'\r\n\r\nexport const createIconChildUtils = <T>(iconComponent: ComponentType<T>) => {\r\n    const isIconChild = (child: ReactNode): child is ReactElement<T> =>\r\n        isValidElement(child) && child.type === iconComponent\r\n\r\n    const hasIconChild = (children: ReactNode): boolean =>\r\n        Children.toArray(children).some(isIconChild)\r\n\r\n    const extractIconChild = (\r\n        children: ReactNode,\r\n    ): { node: ReactNode; remaining: ReactNode } => {\r\n        let node: ReactNode = null\r\n        const remaining = Children.toArray(children).filter((child) => {\r\n            if (isIconChild(child) && node === null) {\r\n                node = child\r\n                return false\r\n            }\r\n            return true\r\n        })\r\n\r\n        return { node, remaining }\r\n    }\r\n\r\n    return { hasIconChild, extractIconChild }\r\n}\r\n"],"names":["createIconChildUtils","iconComponent","isIconChild","child","isValidElement","children","Children","node","remaining"],"mappings":"yGAQaA,EAA2BC,GAAoC,CACxE,MAAMC,EAAeC,GACjBC,EAAAA,eAAeD,CAAK,GAAKA,EAAM,OAASF,EAoB5C,MAAO,CAAE,aAlBaI,GAClBC,EAAAA,SAAS,QAAQD,CAAQ,EAAE,KAAKH,CAAW,EAiBxB,iBAdnBG,GAC4C,CAC5C,IAAIE,EAAkB,KACtB,MAAMC,EAAYF,EAAAA,SAAS,QAAQD,CAAQ,EAAE,OAAQF,GAC7CD,EAAYC,CAAK,GAAKI,IAAS,MAC/BA,EAAOJ,EACA,IAEJ,EACV,EAED,MAAO,CAAE,KAAAI,EAAM,UAAAC,CAAA,CACnB,CAEuB,CAC3B"}