Overview
The eighteen Base UI namespaces @nyte-ai/ui re-exports without styling, and which desktop files consume each
@nyte-ai/ui/<name> is a one-line re-export of a Base UI namespace. Nothing is styled; Base UI
owns the interaction model and the consumer owns every visual decision. The point of the subpath
is that the Base UI dependency and version stay behind the shared package.
import { Popover } from "@nyte-ai/ui/popover";Each page in this section is Base UI's own documentation for that component, reproduced verbatim
(MIT, © Material-UI SAS) with a Nyte header that lists the repo files consuming it. They are
regenerated by pnpm --dir packages/docs sync:base-ui; check:base-ui fails when they drift.
Rules
- Import from the subpath, never from
@base-ui/reactdirectly. - A styled wrapper belongs in
packages/ui/src/components/uionly when more than one product needs the same look. Product-specific composites (the desktop menu, settings controls) stay in the product. - Do not replace Base UI's keyboard or focus behavior. Add to it with
onKeyDownonly when the surface has a documented reason (the composer's suggestion listbox is the example). renderis the composition mechanism. When a rendered element is not a<button>, passnativeButton={false}so Base UI keeps button semantics.
Subpaths
| Subpath | Base UI | Styled wrapper in @nyte-ai/ui | Desktop tier |
|---|---|---|---|
/alert-dialog | AlertDialog | Alert dialog | ConfirmDialog |
/autocomplete | Autocomplete | none | Model picker search |
/button | Button | Button | Button, IconButton |
/collapsible | Collapsible | none | Tool call, work group, reasoning, sidebar |
/context-menu | ContextMenu | none | ContextMenu |
/dialog | Dialog | Dialog | About, image preview, workspace trust |
/menu | Menu | Dropdown menu | Menu |
/number-field | NumberField | none | SettingsStepper |
/popover | Popover | none | Composer suggestion listbox |
/preview-card | PreviewCard | none | Sidebar session preview, composer detail card |
/select | Select | none | SettingsSelect |
/slider | Slider | none | Appearance hue/intensity/density |
/switch | Switch | none | SettingsSwitch |
/tabs | Tabs | none | Search palette, customize, workbench tab strip |
/toggle | Toggle | none | ToggleIconButton |
/toggle-group | ToggleGroup | none | Usage range control |
/toolbar | Toolbar | none | Changes panel actions |
/tooltip | Tooltip | none | Hint |
Also from @nyte-ai/ui/sonner: Toaster, toast, and the ExternalToast / ToasterProps types
from the sonner package. See Toaster.
Not wrapped
Base UI parts with no subpath yet: Checkbox, CheckboxGroup, Radio, RadioGroup, Field, Fieldset,
Form, Progress, Meter, Separator, ScrollArea, Accordion, Combobox, NavigationMenu, Toast. Add a
subpath file in packages/ui/src/<name>.ts and an exports entry before consuming one.