import { defineConfig } from 'tsup'
import { tsupBase } from '@tooling/tsup-config'
import { deriveSubpaths } from '@tooling/tsup-config/subpaths'

// Each component is emitted alongside the barrel so consumers can import a
// single component without pulling the full bundle:
//   import { RadioGroup } from '@platform-modules/ui-primitives/RadioGroup'
// The entry list is DERIVED from src (single source of truth shared with the
// package.json `exports` codegen) — never hand-maintained.
export default defineConfig(
  tsupBase({
    entry: [
      'src/index.tsx',
      ...deriveSubpaths('src').map(s => s.srcFile),
    ],
    external: [
      'react',
      'react-dom',
      '@platform-modules/ui-tokens',
      'class-variance-authority',
      '@radix-ui/react-avatar',
      '@radix-ui/react-checkbox',
      '@radix-ui/react-dialog',
      '@radix-ui/react-dropdown-menu',
      '@radix-ui/react-radio-group',
      '@radix-ui/react-tabs',
      '@radix-ui/react-select',
      '@radix-ui/react-slot',
      '@radix-ui/react-switch',
      '@radix-ui/react-toast',
      '@radix-ui/react-tooltip',
      'react-day-picker',
      '@tanstack/react-virtual',
    ],
  }),
)
