/**
 * Components - UI component library
 * @countermeasure/web-components/components
 */

// DataTable
export { DataTable } from './data-table/index'
export type {
  CellRenderer,
  ColumnDef,
  DataTableConfig,
  PaginationConfig,
  SortDirection,
  SortState,
} from './data-table/types'

// TreeView
export { TreeView } from './tree-view/index'
export type { TreeNode, TreeViewConfig } from './tree-view/types'

// TabPanel
export { TabPanel } from './tabs/index'
export type { Tab, TabPanelConfig } from './tabs/types'

// SplitPane
export { SplitPane } from './split-pane/index'
export type { PaneConfig, SplitOrientation, SplitPaneConfig } from './split-pane/types'

// Modal
export { Modal } from './modal/index'
export type { ModalConfig, ModalVariant } from './modal/types'

// ToastManager
export { ToastManager } from './toast/index'
export type { ToastConfig, ToastLevel, ToastOptions, ToastPosition } from './toast/types'

// SearchInput & CommandPalette
export { SearchInput } from './search/index'
export { CommandPalette } from './search/command-palette'
export type {
  SearchResult,
  SearchInputConfig,
  CommandPaletteConfig,
  CommandEntry,
} from './search/types'

// Pagination
export { Pagination } from './pagination/index'

// CopyButton
export { CopyButton } from './copy-button/index'

// StatusBar
export { StatusBar } from './status-bar/index'

// ContextMenu
export { ContextMenu } from './context-menu/index'

// LogToolbar
export { LogToolbar } from './log-toolbar/index'
export type { LogToolbarConfig } from './log-toolbar/index'

// DetailHeader
export { DetailHeader } from './detail-header/index'
export type { DetailHeaderConfig, DetailHeaderAction } from './detail-header/index'

// Theme controls
export {
  AccentSwitcher,
  DensitySwitcher,
  FontStackPicker,
  GlassSlider,
  IconSetPicker,
  IconUsageMatrix,
  RadiusSlider,
  ThemePresetGrid,
  ThemePreviewTile,
  ThemeStudio,
  ThemeSwitcher,
  applyAccentFromUrl,
  getCurrentAccent,
  renderThemeStudio,
  setPreviewAccent,
} from './theme/index'

// Brand
export {
  ConnectorLogo,
  Diamond,
  Wordmark,
  CONNECTOR_LOGO_PALETTE,
  createDiamondSvg,
  createWordmarkSvg,
  getBrandSizeClass,
  getConnectorLogoColor,
  getConnectorLogoInitial,
  getConnectorLogoSizeClass,
  getConnectorLogoTone,
} from './brand/index'
export type {
  BrandSize,
  ConnectorLogoConfig,
  ConnectorLogoSize,
  DiamondConfig,
  WordmarkConfig,
  WordmarkVariant,
} from './brand/types'
