// Renderer-side contract + per-renderer status (DOM / canvas-ui / desktop) for every component
// below is tracked in packages/canvas-ui/COMPONENTS.md.
export { UIButton, type UIButtonStyle } from './UIButton'
export { UIScreen, type UIScreenStyle } from './UIScreen'
export { UISpacer, type UISpacerStyle } from './UISpacer'
export { UIText, type UITextStyle } from './UIText'
export { registerFont } from './fonts'
export { UIImage, type UIImageStyle } from './UIImage'
export { UIVideo, type UIVideoStyle } from './UIVideo'
export { UIInput, UITextArea, type UIInputStyle } from './UIInput'

export { UIWidget, type UIWidgetStyle } from './UIWidget'

export { UIRow, UIColumn, UIBox, type UIContainerStyle } from './UIContainer'
export { UIScrollable, type UIScrollableStyle } from './UIScrollable'

export { UIVirtualizedList } from './UIVirtualizedList'

export { Router } from './router'

// Internal: memoized map for reactive children — the chisel `reactiveUi` pass rewrites
// `list.map(fn)` inside children bindings to `__uiMap(list, fn, slot)` calls.
export { __uiMap } from './UINode'