{"version":3,"file":"compound-components.cjs","sources":["../../../src/cli/transformers/compound-components.ts"],"sourcesContent":["import MagicString from \"magic-string\";\nimport { parseSync, Visitor } from \"oxc-parser\";\nimport type { Transformer } from \"../commands/migrate\";\n\nconst COMPOUND_TO_SIMPLE_MAP: Record<string, string> = {\n  // Accordion\n  \"Accordion.Panel\": \"AccordionPanel\",\n  \"Accordion.Title\": \"AccordionTitle\",\n  \"Accordion.Content\": \"AccordionContent\",\n\n  // Avatar\n  \"Avatar.Group\": \"AvatarGroup\",\n  \"Avatar.Counter\": \"AvatarGroupCounter\",\n\n  // Banner\n  \"Banner.CollapseButton\": \"BannerCollapseButton\",\n\n  // Breadcrumb\n  \"Breadcrumb.Item\": \"BreadcrumbItem\",\n\n  // Button\n  \"Button.Group\": \"ButtonGroup\",\n\n  // Clipboard\n  \"Clipboard.WithIcon\": \"ClipboardWithIcon\",\n  \"Clipboard.WithIconText\": \"ClipboardWithIconText\",\n\n  // Drawer\n  \"Drawer.Header\": \"DrawerHeader\",\n  \"Drawer.Items\": \"DrawerItems\",\n\n  // Dropdown\n  \"Dropdown.Item\": \"DropdownItem\",\n  \"Dropdown.Header\": \"DropdownHeader\",\n  \"Dropdown.Divider\": \"DropdownDivider\",\n\n  // Footer\n  \"Footer.Brand\": \"FooterBrand\",\n  \"Footer.Copyright\": \"FooterCopyright\",\n  \"Footer.Divider\": \"FooterDivider\",\n  \"Footer.Icon\": \"FooterIcon\",\n  \"Footer.Link\": \"FooterLink\",\n  \"Footer.LinkGroup\": \"FooterLinkGroup\",\n  \"Footer.Title\": \"FooterTitle\",\n\n  // HR\n  \"HR.Icon\": \"HRIcon\",\n  \"HR.Square\": \"HRSquare\",\n  \"HR.Text\": \"HRText\",\n  \"HR.Trimmed\": \"HRTrimmed\",\n\n  // List\n  \"List.Item\": \"ListItem\",\n  \"ListGroup.Item\": \"ListGroupItem\",\n\n  // MegaMenu\n  \"MegaMenu.Dropdown\": \"MegaMenuDropdown\",\n  \"MegaMenu.DropdownToggle\": \"MegaMenuDropdownToggle\",\n\n  // Modal\n  \"Modal.Header\": \"ModalHeader\",\n  \"Modal.Body\": \"ModalBody\",\n  \"Modal.Footer\": \"ModalFooter\",\n\n  // Navbar\n  \"Navbar.Brand\": \"NavbarBrand\",\n  \"Navbar.Collapse\": \"NavbarCollapse\",\n  \"Navbar.Link\": \"NavbarLink\",\n  \"Navbar.Toggle\": \"NavbarToggle\",\n\n  // Pagination\n  \"Pagination.Button\": \"PaginationButton\",\n\n  // Rating\n  \"Rating.Star\": \"RatingStar\",\n  \"Rating.Advanced\": \"RatingAdvanced\",\n\n  // Sidebar\n  \"Sidebar.CTA\": \"SidebarCTA\",\n  \"Sidebar.Collapse\": \"SidebarCollapse\",\n  \"Sidebar.Item\": \"SidebarItem\",\n  \"Sidebar.Items\": \"SidebarItems\",\n  \"Sidebar.ItemGroup\": \"SidebarItemGroup\",\n  \"Sidebar.Logo\": \"SidebarLogo\",\n\n  // Table\n  \"Table.Head\": \"TableHead\",\n  \"Table.Body\": \"TableBody\",\n  \"Table.Row\": \"TableRow\",\n  \"Table.Cell\": \"TableCell\",\n  \"Table.HeadCell\": \"TableHeadCell\",\n\n  // Tabs\n  \"Tabs.Item\": \"TabItem\",\n\n  // Timeline\n  \"Timeline.Item\": \"TimelineItem\",\n  \"Timeline.Point\": \"TimelinePoint\",\n  \"Timeline.Content\": \"TimelineContent\",\n  \"Timeline.Time\": \"TimelineTime\",\n  \"Timeline.Title\": \"TimelineTitle\",\n  \"Timeline.Body\": \"TimelineBody\",\n\n  // Toast\n  \"Toast.Toggle\": \"ToastToggle\",\n};\n\ninterface SpecifierInfo {\n  name: string;\n  originalText: string;\n}\n\ninterface ImportInfo {\n  start: number;\n  end: number;\n  specifiersStart: number;\n  specifiersEnd: number;\n  specifiers: SpecifierInfo[];\n  source: string;\n}\n\ninterface Replacement {\n  start: number;\n  end: number;\n  newText: string;\n}\n\nfunction transform(content: string): { content: string; changed: boolean } {\n  try {\n    const result = parseSync(\"file.tsx\", content);\n\n    if (result.errors.length > 0) {\n      console.warn(\"Warning: Parsing errors detected, skipping transformation\");\n      return { content, changed: false };\n    }\n\n    const flowbiteImportSpecifiers: string[] = [];\n    const flowbiteImportInfos: ImportInfo[] = [];\n    const replacements: Replacement[] = [];\n    const newImportsToAdd: Set<string> = new Set();\n\n    const importVisitor = new Visitor({\n      ImportDeclaration(node) {\n        if (\n          node.source?.value === \"flowbite-react\" ||\n          (typeof node.source?.value === \"string\" && node.source.value.startsWith(\"flowbite-react/components/\"))\n        ) {\n          if (Array.isArray(node.specifiers) && node.specifiers.every((s) => s.type === \"ImportSpecifier\")) {\n            const importText = content.slice(node.start, node.end);\n            const braceStart = importText.indexOf(\"{\");\n            const braceEnd = importText.lastIndexOf(\"}\");\n\n            if (braceStart !== -1 && braceEnd !== -1) {\n              const importInfo: ImportInfo = {\n                start: node.start,\n                end: node.end,\n                specifiersStart: node.start + braceStart + 1,\n                specifiersEnd: node.start + braceEnd,\n                specifiers: [],\n                source: node.source?.value as string,\n              };\n\n              node.specifiers.forEach((specifier) => {\n                if (specifier.imported?.type === \"Identifier\") {\n                  flowbiteImportSpecifiers.push(specifier.imported.name);\n                  importInfo.specifiers.push({\n                    name: specifier.imported.name,\n                    originalText: content.slice(specifier.start, specifier.end),\n                  });\n                }\n              });\n\n              flowbiteImportInfos.push(importInfo);\n            }\n          }\n        }\n      },\n    });\n\n    importVisitor.visit(result.program);\n\n    const jsxVisitor = new Visitor({\n      JSXMemberExpression(node) {\n        if (\n          node.object?.type === \"JSXIdentifier\" &&\n          node.property?.type === \"JSXIdentifier\" &&\n          flowbiteImportSpecifiers.includes(node.object.name)\n        ) {\n          const compoundName = `${node.object.name}.${node.property.name}`;\n          const simpleName = COMPOUND_TO_SIMPLE_MAP[compoundName];\n\n          if (simpleName && flowbiteImportInfos.length > 0) {\n            replacements.push({\n              start: node.start,\n              end: node.end,\n              newText: simpleName,\n            });\n\n            if (!flowbiteImportSpecifiers.includes(simpleName) && !newImportsToAdd.has(simpleName)) {\n              newImportsToAdd.add(simpleName);\n            }\n          }\n        }\n      },\n    });\n\n    jsxVisitor.visit(result.program);\n\n    if (replacements.length === 0) {\n      return { content, changed: false };\n    }\n\n    const finalImportInfo =\n      flowbiteImportInfos.find((info) => info.source === \"flowbite-react\") || flowbiteImportInfos[0] || null;\n    const s = new MagicString(content);\n\n    const sortedReplacements = [...replacements].sort((a, b) => b.start - a.start);\n    for (const { start, end, newText } of sortedReplacements) {\n      s.overwrite(start, end, newText);\n    }\n\n    if (newImportsToAdd.size > 0 && finalImportInfo) {\n      const existingSpecifierTexts = finalImportInfo.specifiers.map((s) => s.originalText);\n      const existingNames = new Set(finalImportInfo.specifiers.map((s) => s.name));\n      const newSpecifierNames = [...newImportsToAdd].filter((name) => !existingNames.has(name));\n      const allSpecifiers = [\n        ...existingSpecifierTexts.map((text, i) => ({ text, name: finalImportInfo.specifiers[i].name })),\n        ...newSpecifierNames.map((name) => ({ text: name, name })),\n      ].sort((a, b) => a.name.localeCompare(b.name));\n      const originalImportText = content.slice(finalImportInfo.specifiersStart, finalImportInfo.specifiersEnd);\n      const isMultiline = originalImportText.includes(\"\\n\");\n\n      let newSpecifiersText: string;\n      if (isMultiline) {\n        newSpecifiersText = \"\\n  \" + allSpecifiers.map((s) => s.text).join(\",\\n  \") + \",\\n\";\n      } else {\n        newSpecifiersText = \" \" + allSpecifiers.map((s) => s.text).join(\", \") + \" \";\n      }\n\n      s.overwrite(finalImportInfo.specifiersStart, finalImportInfo.specifiersEnd, newSpecifiersText);\n    }\n\n    return {\n      content: s.toString(),\n      changed: true,\n    };\n  } catch (_error) {\n    console.warn(\"Warning: Could not parse file, skipping transformation\");\n    return {\n      content,\n      changed: false,\n    };\n  }\n}\n\nexport const compoundComponentsTransformer: Transformer = {\n  name: \"Compound Components\",\n  transform,\n};\n"],"names":["parseSync","Visitor"],"mappings":"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"}