/**
 * @zync/ui — shared component library barrel.
 *
 * Re-exports every primitive + its public Props type. Token CSS
 * (`@zync/ui/tokens.css`) is imported for side-effect by the consuming app
 * entry, NOT here, so the barrel stays tree-shakeable.
 */
export { cn } from './lib/cn'

// ── primitives ──
export * from './primitives/button'
export * from './primitives/input'
export * from './primitives/badge'
export * from './primitives/avatar'
export * from './primitives/heading'
export * from './primitives/text'
export * from './primitives/card'
export * from './primitives/checkbox'
export * from './primitives/radio'
export * from './primitives/select'
export * from './primitives/switch'
export * from './primitives/textarea'
export * from './primitives/tooltip'
export * from './primitives/separator'
export * from './primitives/skeleton'
export * from './primitives/skip-link'
export * from './primitives/timezone-picker'

// ── layout ──
export * from './layout/stack'
export * from './layout/container'
export * from './layout/divider'

// ── forms ──
export * from './forms/form'
export * from './forms/form-field'
export * from './forms/form-label'
export * from './forms/form-error'

// ── overlays ──
export * from './overlays/dialog'
export * from './overlays/sheet'
export * from './overlays/dropdown-menu'
export * from './overlays/context-menu'
export * from './overlays/popover'
export * from './overlays/command'

// ── navigation ──
export * from './navigation/tabs'
export * from './navigation/breadcrumb'
export * from './navigation/pagination'

// ── feedback ──
export * from './feedback/alert'
export * from './feedback/toast'
export * from './feedback/spinner'
export * from './feedback/progress'

// ── data-display ──
export * from './data-display/table'
export * from './data-display/data-table'
export * from './data-display/stat-card'
export * from './data-display/empty-state'
export * from './data-display/virtual-list'
export * from './data-display/pagination-controls'

// ── theme ──
export * from './theme/theme-provider'
export * from './theme/theme-toggle'
export * from './theme/use-theme'

// ── hooks ──
export * from './hooks/use-reduced-motion'

// ── upgrade-upsell-modal (upgrade-upsell-modal spec) ──
export * from './upgrade-modal'

// ── lib: RTL helpers & locale-aware formatters (rtl-hebrew-ui spec 81) ──
export { isHebrew, AutoText } from './lib/lang'
export type { AutoTextProps } from './lib/lang'
export { formatCurrencyILS } from './lib/format'

// ── locale & date/number formatting (hebrew-locale-dates spec 117) ──
export { toFormattingLocale, FORMATTING_LOCALE } from './lib/locale'
export type { StoredLocale, FormattingLocaleTag } from './lib/locale'

// wave-11 leaf-C: proposal-editor shared renderer
export { ProposalRenderer } from './proposals/ProposalRenderer'
export type { ProposalRendererProps } from './proposals/ProposalRenderer'
export { formatDate, formatTime } from './lib/format-date'
export type { DateStyle } from './lib/format-date'
export { formatNumber, formatCurrency } from './lib/format-number'
export { relativeTime } from './lib/relative-time'
export { useLocale } from './hooks/useLocale'
export { DatePicker } from './primitives/date-picker'
export type { DatePickerProps } from './primitives/date-picker'

// ── useIdleDetection (time-management spec) ──
export * from './hooks/useIdleDetection'

// ── trial UI (trial-expiry-conversion-ui spec) ──
export * from './trial'

// ── wave-12: proposal-expiry-deadline ──
export { proposalCountdown } from './proposal-countdown'
export { ProposalCountdownBadge } from './components/ProposalCountdownBadge'
export type { ProposalCountdownBadgeProps } from './components/ProposalCountdownBadge'
