Dependency audit / audit (push) Canceled after 0s
CI / plan (push) Canceled after 0s
Gitoxide helper admission / macos-latest (push) Canceled after 0s
Gitoxide helper admission / ubuntu-latest (push) Canceled after 0s
Gitoxide helper admission / windows-latest (push) Canceled after 0s
Runtime Host peer admission / quality (push) Canceled after 0s
Windows recovery / windows_recovery (push) Canceled after 0s
CI / heavy (push) Canceled after 0s
CI / test (push) Canceled after 0s
46 KiB
46 KiB
Astryx surface file inventory (file-level)
Generated by scripts/generate-astryx-surface-inventory.mjs.
Each row is one on-disk product surface file. Regenerated inventory must stay in sync with disk (coverage gate).
Generated against @astryxdesign/core@0.5.2 (194 component exports).
Wiki bar: Design Conventions · API Use-the-System · Theming · Container Padding.
Totals: 235 files — blocker 0, reimplementation 0, polish 1, aligned 234.
Exclusions (explicit)
Universe rules
- Trees:
apps/desktop/src/renderer/**,packages/ui/src/**. - Included extensions:
.tsx(components/pages) and product.cssunder those trees. - Directories skipped:
__tests__,stories,locales,astryx-theme,computer-use-overlay(engine). - Basename rules below; pure
.tshooks/helpers are outside the universe (UI is inventoried at consumer.tsx).
Excluded paths
| Path | Why |
|---|---|
apps/desktop/src/renderer/main.tsx |
bundle entry, not a surface |
Files
| Path | Role | Astryx used | Gap / note | Severity |
|---|---|---|---|---|
apps/desktop/src/renderer/agent-graph-panel.tsx |
shell-chrome-or-panel | Banner, Button, EmptyState, IconButton, Selector, Spinner | aligned — uses Astryx (Banner, Button, EmptyState, IconButton, Selector, Spinner) | aligned |
apps/desktop/src/renderer/app-shell-chrome-actions.tsx |
shell-chrome-or-panel | Icon, IconButton, Tooltip | aligned — uses Astryx (Icon, IconButton, Tooltip) | aligned |
apps/desktop/src/renderer/app-shell-detail-panel.tsx |
shell-chrome-or-panel | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/app-shell-overlays.tsx |
shell-chrome-or-panel | Spinner | aligned — uses Astryx (Spinner) | aligned |
apps/desktop/src/renderer/app-shell.tsx |
shell-chrome-or-panel | AppShell, Button | aligned — uses Astryx (AppShell, Button) | aligned |
apps/desktop/src/renderer/app.tsx |
other | Theme | aligned — uses Astryx (Theme) | aligned |
apps/desktop/src/renderer/cascade-layers.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/chat-composer-region.tsx |
shell-chrome-or-panel | Banner, Button | aligned — uses Astryx (Banner, Button) | aligned |
apps/desktop/src/renderer/chat-message-surface.tsx |
shell-chrome-or-panel | Skeleton | aligned — uses Astryx (Skeleton) | aligned |
apps/desktop/src/renderer/chat-recovery-notice.tsx |
shell-chrome-or-panel | Banner, Button | aligned — uses Astryx (Banner, Button) | aligned |
apps/desktop/src/renderer/command-palette.tsx |
dialog-overlay | CommandPalette, CommandPaletteFooter, CommandPaletteInput, EmptyState, Kbd | aligned — uses Astryx (CommandPalette, CommandPaletteFooter, CommandPaletteInput, EmptyState, Kbd) | aligned |
apps/desktop/src/renderer/composer-mentions.tsx |
shell-chrome-or-panel | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/composition/desktop-feature-services.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/custom-pet-companion.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/error-boundary.tsx |
other | Button, Card | aligned — uses Astryx (Button, Card) | aligned |
apps/desktop/src/renderer/features/goals/services-context.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/goals/ui/goal-dialog.tsx |
dialog-overlay | Button, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, Text, TextArea, TextInput, VStack | aligned — uses Astryx (Button, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, Text) | aligned |
apps/desktop/src/renderer/features/goals/ui/goal-host.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/goals/ui/goal-provider.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/module-hub/services-context.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/module-hub/ui/module-hub-host.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/runtime-host-management/services-context.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/runtime-host-management/ui/peer-mesh-peer-id-button.tsx |
other | Button | aligned — uses Astryx (Button) | aligned |
apps/desktop/src/renderer/features/runtime-host-management/ui/runtime-host-peer-mesh-dialog.tsx |
dialog-overlay | Badge, Banner, Button, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, MoreMenu, SegmentedControl, SegmentedControlItem, Selector, Switch, Text, TextArea, TextInput, Tooltip | aligned — uses Astryx (Badge, Banner, Button, Dialog, DialogHeader, HStack, Layout, LayoutContent) | aligned |
apps/desktop/src/renderer/features/runtime-host-management/ui/runtime-host-profile-pairing-actions.tsx |
other | Button, MoreMenu | aligned — uses Astryx (Button, MoreMenu) | aligned |
apps/desktop/src/renderer/features/session-collaboration/services-context.tsx |
shell-chrome-or-panel | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/session-collaboration/ui/session-collaboration-join-dialog.tsx |
dialog-overlay | Banner, Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, List, ListItem, TextArea | aligned — uses Astryx (Banner, Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter) | aligned |
apps/desktop/src/renderer/features/session-navigation/services-context.tsx |
shell-chrome-or-panel | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/session-navigation/ui/session-navigation-provider.tsx |
shell-chrome-or-panel | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/task-entry/services-context.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/task-entry/ui/task-entry-host.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/workbar/services-context.tsx |
shell-chrome-or-panel | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/features/workbar/tools/artifacts/artifact-pane.tsx |
shell-chrome-or-panel | Badge, Banner, Button, EmptyState, MoreMenu | aligned — uses Astryx (Badge, Banner, Button, EmptyState, MoreMenu) | aligned |
apps/desktop/src/renderer/features/workbar/tools/artifacts/artifact-preview-registry-shell.tsx |
shell-chrome-or-panel | Banner, Button, Spinner | aligned — uses Astryx (Banner, Button, Spinner) | aligned |
apps/desktop/src/renderer/features/workbar/tools/artifacts/artifact-preview.tsx |
shell-chrome-or-panel | Banner, Button, CodeBlock, Spinner | aligned — uses Astryx (Banner, Button, CodeBlock, Spinner) | aligned |
apps/desktop/src/renderer/features/workbar/tools/browser/browser-panel.tsx |
shell-chrome-or-panel | EmptyState, IconButton, TextInput, Toolbar, Tooltip | aligned — uses Astryx (EmptyState, IconButton, TextInput, Toolbar, Tooltip) | aligned |
apps/desktop/src/renderer/features/workbar/tools/inspector/session-inspector-panel.tsx |
shell-chrome-or-panel | Banner, Button, EmptyState, Heading, Section, Text, VStack | aligned — uses Astryx (Banner, Button, EmptyState, Heading, Section, Text, VStack) | aligned |
apps/desktop/src/renderer/features/workbar/tools/review/session-review-panel.tsx |
shell-chrome-or-panel | Banner, Button, Collapsible, CollapsibleGroup, EmptyState, HStack, Section, Skeleton, Text, VStack | aligned — uses Astryx (Banner, Button, Collapsible, CollapsibleGroup, EmptyState, HStack, Section, Skeleton) | aligned |
apps/desktop/src/renderer/features/workbar/tools/side-chat/quote-companion-panel.tsx |
shell-chrome-or-panel | Banner, Spinner | aligned — uses Astryx (Banner, Spinner) | aligned |
apps/desktop/src/renderer/features/workbar/tools/terminal/session-terminal-panel.tsx |
shell-chrome-or-panel | Banner, EmptyState | aligned — uses Astryx (Banner, EmptyState) | aligned |
apps/desktop/src/renderer/features/workbar/ui/side-chat-close-confirmation.tsx |
shell-chrome-or-panel | Button, CheckboxInput, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, Text, VStack | aligned — uses Astryx (Button, CheckboxInput, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter) | aligned |
apps/desktop/src/renderer/features/workbar/ui/workbar-host.tsx |
shell-chrome-or-panel | Card, ResizeHandle, Spinner | aligned — uses Astryx (Card, ResizeHandle, Spinner) | aligned |
apps/desktop/src/renderer/features/workbar/ui/workbar-surface.tsx |
shell-chrome-or-panel | Badge, Button, Card, ContextMenu, Heading, Icon, IconButton, Kbd, List, ListItem, Section, Spinner, Tooltip | aligned — uses Astryx (Badge, Button, Card, ContextMenu, Heading, Icon, IconButton, Kbd) | aligned |
apps/desktop/src/renderer/features/workbar/ui/workbar-toggle.tsx |
shell-chrome-or-panel | Icon, IconButton, Tooltip | aligned — uses Astryx (Icon, IconButton, Tooltip) | aligned |
apps/desktop/src/renderer/keyboard-help.tsx |
dialog-overlay | Dialog, DialogHeader, Heading, Kbd, Layout, LayoutContent | aligned — uses Astryx (Dialog, DialogHeader, Heading, Kbd, Layout, LayoutContent) | aligned |
apps/desktop/src/renderer/live-turn-reconciler.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/maka-tokens.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/mcp-brand-marks.tsx |
other | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/mcp-page.tsx |
module-hub | Banner, Button, Collapsible, Dialog, DialogHeader, Divider, EmptyState, HStack, Heading, IconButton, Layout, LayoutContent, List, ListItem, MetadataList, MetadataListItem, RadioList, RadioListItem, SegmentedControl, SegmentedControlItem, Selector, Skeleton, StackItem, StatusDot, Switch, Text, TextArea, TextInput, Toolbar, VStack | aligned — uses Astryx (Banner, Button, Collapsible, Dialog, DialogHeader, Divider, EmptyState, HStack) | aligned |
apps/desktop/src/renderer/onboarding-hero.tsx |
dialog-overlay | Banner, Button, Card, Center, Code, HStack, Heading, List, ListItem, Text, VStack | aligned — uses Astryx (Banner, Button, Card, Center, Code, HStack, Heading, List) | aligned |
apps/desktop/src/renderer/plan-mode-panel.tsx |
shell-chrome-or-panel | Badge, Banner, Button, Collapsible | aligned — uses Astryx (Badge, Banner, Button, Collapsible) | aligned |
apps/desktop/src/renderer/reference-shell.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/remote-project-directory-dialog.tsx |
dialog-overlay | Button, Dialog, DialogHeader, DropdownMenu, DropdownMenuItem, HStack, Layout, LayoutContent, LayoutFooter, Text | aligned — uses Astryx (Button, Dialog, DialogHeader, DropdownMenu, DropdownMenuItem, HStack, Layout, LayoutContent) | aligned |
apps/desktop/src/renderer/session-collaboration-dialog.tsx |
dialog-overlay | Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, SegmentedControl, SegmentedControlItem, Text, TextArea | aligned — uses Astryx (Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, SegmentedControl) | aligned |
apps/desktop/src/renderer/session-turn-request-composer.tsx |
shell-chrome-or-panel | Button, Text, TextArea | aligned — uses Astryx (Button, Text, TextArea) | aligned |
apps/desktop/src/renderer/settings/about-settings-page.tsx |
settings-page | Badge, Banner, Button, Kbd, Link, List, ListItem | aligned — uses Astryx (Badge, Banner, Button, Kbd, Link, List, ListItem) | aligned |
apps/desktop/src/renderer/settings/appearance-settings-page.tsx |
settings-page | Button, Grid, HStack, NumberInput, SelectableCard, Switch, Text, VStack | aligned — uses Astryx (Button, Grid, HStack, NumberInput, SelectableCard, Switch, Text, VStack) | aligned |
apps/desktop/src/renderer/settings/bot-chat-detail.tsx |
settings-module | Banner, Button, Card, FormLayout, MetadataList, MetadataListItem, SegmentedControl, SegmentedControlItem, Selector, StatusDot, Switch, Text, TextArea, TextInput, VStack | aligned — uses Astryx (Banner, Button, Card, FormLayout, MetadataList, MetadataListItem, SegmentedControl, SegmentedControlItem) | aligned |
apps/desktop/src/renderer/settings/bot-chat-overview.tsx |
settings-module | Banner, Button, EmptyState, Item, StatusDot | aligned — uses Astryx (Banner, Button, EmptyState, Item, StatusDot) | aligned |
apps/desktop/src/renderer/settings/bot-chat-settings-page.tsx |
settings-page | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/settings/bot-chat-shared.tsx |
settings-module | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/settings/bot-onboarding-modal.tsx |
settings-page | Button, Dialog, DialogHeader, Layout, LayoutContent, Spinner | aligned — uses Astryx (Button, Dialog, DialogHeader, Layout, LayoutContent, Spinner) | aligned |
apps/desktop/src/renderer/settings/bot-wechat-login.tsx |
settings-module | Banner, Button, Collapsible, Dialog, DialogHeader, EmptyState, FormLayout, Layout, LayoutContent, Spinner, TextInput | aligned — uses Astryx (Banner, Button, Collapsible, Dialog, DialogHeader, EmptyState, FormLayout, Layout) | aligned |
apps/desktop/src/renderer/settings/custom-pet-settings-section.tsx |
settings-module | Badge, Button, EmptyState | aligned — uses Astryx (Badge, Button, EmptyState) | aligned |
apps/desktop/src/renderer/settings/daily-review-settings-page.tsx |
settings-page | Banner, Selector, Switch, TextInput | aligned — uses Astryx (Banner, Selector, Switch, TextInput) | aligned |
apps/desktop/src/renderer/settings/data-settings-page.tsx |
settings-page | Banner, Button, Selector, Switch | aligned — uses Astryx (Banner, Button, Selector, Switch) | aligned |
apps/desktop/src/renderer/settings/general-settings-page.tsx |
settings-page | Banner, Button, FormLayout, NumberInput, Selector, Switch, TextInput | aligned — uses Astryx (Banner, Button, FormLayout, NumberInput, Selector, Switch, TextInput) | aligned |
apps/desktop/src/renderer/settings/health-center-page.tsx |
settings-page | Banner, Button, StatusDot, Text, VStack | aligned — uses Astryx (Banner, Button, StatusDot, Text, VStack) | aligned |
apps/desktop/src/renderer/settings/import-tasks-settings-page.tsx |
settings-page | Banner, Button, CheckboxInput, EmptyState, HStack, List, ListItem, SegmentedControl, SegmentedControlItem, Spinner, TextInput, VStack | aligned — uses Astryx (Banner, Button, CheckboxInput, EmptyState, HStack, List, ListItem, SegmentedControl) | aligned |
apps/desktop/src/renderer/settings/memory-entry-list.tsx |
settings-module | Button, EmptyState, MoreMenu | aligned — uses Astryx (Button, EmptyState, MoreMenu) | aligned |
apps/desktop/src/renderer/settings/memory-settings-page.tsx |
settings-page | Banner, Button, EmptyState, FormLayout, MoreMenu, StatusDot, Switch, TextArea, TextInput | aligned — uses Astryx (Banner, Button, EmptyState, FormLayout, MoreMenu, StatusDot, Switch, TextArea) | aligned |
apps/desktop/src/renderer/settings/memory-settings-sections.tsx |
settings-module | Button | aligned — uses Astryx (Button) | aligned |
apps/desktop/src/renderer/settings/password-input.tsx |
settings-module | IconButton, InputGroup, InputGroupText, TextInput | aligned — uses Astryx (IconButton, InputGroup, InputGroupText, TextInput) | aligned |
apps/desktop/src/renderer/settings/permission-center-page.tsx |
settings-page | Banner, Button, Collapsible, CollapsibleGroup, HStack, List, ListItem, MetadataList, MetadataListItem, StatusDot, Text, VStack | aligned — uses Astryx (Banner, Button, Collapsible, CollapsibleGroup, HStack, List, ListItem, MetadataList) | aligned |
apps/desktop/src/renderer/settings/personalization-settings-section.tsx |
settings-module | SegmentedControl, SegmentedControlItem, TextArea, TextInput | aligned — uses Astryx (SegmentedControl, SegmentedControlItem, TextArea, TextInput) | aligned |
apps/desktop/src/renderer/settings/projects-settings-page.tsx |
settings-page | Badge, Banner, Button, EmptyState, HStack, List, ListItem, MoreMenu, TextInput | aligned — uses Astryx (Badge, Banner, Button, EmptyState, HStack, List, ListItem, MoreMenu) | aligned |
apps/desktop/src/renderer/settings/provider-add-form.tsx |
settings-module | Banner, Button, Collapsible, FormLayout, HStack, TextInput, VStack | aligned — uses Astryx (Banner, Button, Collapsible, FormLayout, HStack, TextInput, VStack) | aligned |
apps/desktop/src/renderer/settings/provider-add-model-dialog.tsx |
settings-module | Button, Dialog, DialogHeader, FormLayout, HStack, Layout, LayoutContent, LayoutFooter, NumberInput, TextInput | aligned — uses Astryx (Button, Dialog, DialogHeader, FormLayout, HStack, Layout, LayoutContent, LayoutFooter) | aligned |
apps/desktop/src/renderer/settings/provider-brand-marks.tsx |
settings-module | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/settings/provider-catalog-page.tsx |
settings-page | Banner, Button, EmptyState, HStack, List, ListItem, Section, Selector, TextInput, VStack | aligned — uses Astryx (Banner, Button, EmptyState, HStack, List, ListItem, Section, Selector) | aligned |
apps/desktop/src/renderer/settings/provider-connection-detail.tsx |
settings-module | Banner, Button, Divider, DropdownMenu, DropdownMenuCheckboxItem, Grid, HStack, Heading, Link, NumberInput, Selector, Text, TextInput, VStack | aligned — uses Astryx (Banner, Button, Divider, DropdownMenu, DropdownMenuCheckboxItem, Grid, HStack, Heading) | aligned |
apps/desktop/src/renderer/settings/provider-display.tsx |
settings-module | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/settings/provider-enabled-model-manager.tsx |
settings-module | MultiSelector | aligned — uses Astryx (MultiSelector) | aligned |
apps/desktop/src/renderer/settings/provider-oauth-section.tsx |
settings-module | Banner, Button, HStack, Text, VStack | aligned — uses Astryx (Banner, Button, HStack, Text, VStack) | aligned |
apps/desktop/src/renderer/settings/providers-panel.tsx |
settings-module | Badge, Banner, Button, EmptyState, HStack, Heading, List, ListItem, Skeleton, StatusDot, Text, VStack | aligned — uses Astryx (Badge, Banner, Button, EmptyState, HStack, Heading, List, ListItem) | aligned |
apps/desktop/src/renderer/settings/request-customization-editor.tsx |
settings-module | Button, HStack, IconButton, Text, TextArea, TextInput, VStack | aligned — uses Astryx (Button, HStack, IconButton, Text, TextArea, TextInput, VStack) | aligned |
apps/desktop/src/renderer/settings/runtime-host-connection-code-dialog.tsx |
settings-module | Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, TextArea | aligned — uses Astryx (Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, TextArea) | aligned |
apps/desktop/src/renderer/settings/runtime-host-interaction-boundary.tsx |
settings-module | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/settings/runtime-host-management-dialog.tsx |
settings-module | Badge, Banner, Button, Dialog, DialogHeader, IconButton, Layout, LayoutContent, LayoutFooter, MoreMenu, Selector, Spinner, Switch, Text, TextInput, Tooltip | aligned — uses Astryx (Badge, Banner, Button, Dialog, DialogHeader, IconButton, Layout, LayoutContent) | aligned |
apps/desktop/src/renderer/settings/runtime-host-onboarding-dialog.tsx |
settings-module | Banner, Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, SegmentedControl, SegmentedControlItem, Selector, Spinner, Text, TextInput | aligned — uses Astryx (Banner, Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter) | aligned |
apps/desktop/src/renderer/settings/runtime-host-profiles-section.tsx |
settings-module | Badge, Banner, Button, HStack, List, ListItem, MoreMenu, SegmentedControl, SegmentedControlItem, Selector, Switch, TextInput, Tooltip | aligned — uses Astryx (Badge, Banner, Button, HStack, List, ListItem, MoreMenu, SegmentedControl) | aligned |
apps/desktop/src/renderer/settings/runtime-host-project-directory-editor.tsx |
settings-module | Button, TextInput | aligned — uses Astryx (Button, TextInput) | aligned |
apps/desktop/src/renderer/settings/runtime-host-settings-target.tsx |
settings-module | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/settings/runtime-host-ssh-terminal-dialog.tsx |
settings-module | Banner, Button, Dialog, DialogHeader, Layout, LayoutContent, LayoutFooter | aligned — uses Astryx (Banner, Button, Dialog, DialogHeader, Layout, LayoutContent, LayoutFooter) | aligned |
apps/desktop/src/renderer/settings/settings-expandable-row.tsx |
settings-module | Button, HStack, Text | aligned — uses Astryx (Button, HStack, Text) | aligned |
apps/desktop/src/renderer/settings/settings-metric-card.tsx |
settings-module | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/settings/settings-modal.tsx |
settings-page | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/settings/settings-route-header.tsx |
settings-module | HStack, Heading, IconButton, Text, Toolbar, VStack | aligned — uses Astryx (HStack, Heading, IconButton, Text, Toolbar, VStack) | aligned |
apps/desktop/src/renderer/settings/settings-rows.tsx |
settings-module | none | aligned — no raw controls; no Astryx JSX usage | aligned |
apps/desktop/src/renderer/settings/settings-section.tsx |
settings-module | Divider, HStack, Heading, Item, Text, VStack | aligned — uses Astryx (Divider, HStack, Heading, Item, Text, VStack) | aligned |
apps/desktop/src/renderer/settings/settings-skeleton.tsx |
settings-module | Skeleton | aligned — uses Astryx (Skeleton) | aligned |
apps/desktop/src/renderer/settings/settings-status-summary-filter.tsx |
settings-module | Button | aligned — uses Astryx (Button) | aligned |
apps/desktop/src/renderer/settings/settings-surface.tsx |
settings-module | Badge, Banner, Button, IconButton, Layout, LayoutContent, LayoutHeader, LayoutPanel, Selector, SideNav, SideNavItem, SideNavSection | aligned — uses Astryx (Badge, Banner, Button, IconButton, Layout, LayoutContent, LayoutHeader, LayoutPanel) | aligned |
apps/desktop/src/renderer/settings/subagent-settings-page.tsx |
settings-page | Badge, Banner, Button, EmptyState, HStack, IconButton, Selector, Switch, TextArea, TextInput, VStack | aligned — uses Astryx (Badge, Banner, Button, EmptyState, HStack, IconButton, Selector, Switch) | aligned |
apps/desktop/src/renderer/settings/tasks-settings-page.tsx |
settings-page | Button, EmptyState, HStack, List, ListItem, MoreMenu, StackItem, TextInput | aligned — uses Astryx (Button, EmptyState, HStack, List, ListItem, MoreMenu, StackItem, TextInput) | aligned |
apps/desktop/src/renderer/settings/usage-settings-page.tsx |
settings-page | Banner, Button, Card, EmptyState, SegmentedControl, SegmentedControlItem, Selector, Switch, Tab, TabList, Table, TextInput, Tooltip | aligned — uses Astryx (Banner, Button, Card, EmptyState, SegmentedControl, SegmentedControlItem, Selector, Switch) | aligned |
apps/desktop/src/renderer/settings/web-search-settings-page.tsx |
settings-page | Banner, Button, EmptyState, Link, Selector, StatusDot, Switch, TextInput | aligned — uses Astryx (Banner, Button, EmptyState, Link, Selector, StatusDot, Switch, TextInput) | aligned |
apps/desktop/src/renderer/styles.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/agent-graph.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/astryx-mount.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/base.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/chat-detail.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/chat-header.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/chat-message.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/composer-mention.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/composer.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/custom-pet-companion.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/daily-review.css |
module-hub | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/deep-research.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/error.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/help.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/hero.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/interaction-prompts.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/model-switcher.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/module-pages.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/module-pages/capability-audit.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/module-pages/mcp.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/module-pages/module-shell.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/module-pages/scheduled-tasks.css |
module-hub | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/module-pages/skills.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/native-cursor.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/onboarding.css |
dialog-overlay | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/palette.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/plan-mode.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/prompt-rail.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/prompt-suggestions.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/quote-side-panel.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/search-modal.css |
dialog-overlay | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/about.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/bot.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/connection.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/form.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/health.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/memory.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/models.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/nav-sidebar.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/permission.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/provider-editor.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/route.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/rows.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/runtime-host.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/select.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/theme-preview.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/usage.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/web-search.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/settings/wechat.css |
settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/shell-layout.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/sidebar.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/task-ledger.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/theme-glass.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/work-board.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/workbar/artifacts.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/workbar/browser.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/workbar/inspector.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/workbar/review.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/workbar/shell.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/workbar/side-chat.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/workbar/terminal.css |
shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/styles/workhub.css |
styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
apps/desktop/src/renderer/work-board-panel.tsx |
shell-chrome-or-panel | Banner, Button, EmptyState, Spinner, TextInput | aligned — uses Astryx (Banner, Button, EmptyState, Spinner, TextInput) | aligned |
apps/desktop/src/renderer/workhub-surface.tsx |
other | Button, ChatMessage, ChatMessageBubble, ChatMessageList, Skeleton | aligned — uses Astryx (Button, ChatMessage, ChatMessageBubble, ChatMessageList, Skeleton) | aligned |
packages/ui/src/astryx-chat-reasoning.tsx |
shell-chrome-or-panel | Icon | aligned — uses Astryx (Icon) | aligned |
packages/ui/src/astryx-i18n.tsx |
ui-composition | InternationalizationProvider | aligned — uses Astryx (InternationalizationProvider) | aligned |
packages/ui/src/attachment-image.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/attachment-kinds.tsx |
ui-composition | Icon | aligned — uses Astryx (Icon) | aligned |
packages/ui/src/bot-brand-logo.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/capability-audit-strip.tsx |
ui-composition | Banner | aligned — uses Astryx (Banner) | aligned |
packages/ui/src/chat-empty-hero.tsx |
shell-chrome-or-panel | Item | aligned — uses Astryx (Item) | aligned |
packages/ui/src/chat-model-switcher.tsx |
shell-chrome-or-panel | Button, DropdownMenu, DropdownMenuItem | aligned — uses Astryx (Button, DropdownMenu, DropdownMenuItem) | aligned |
packages/ui/src/chat-surface-layout.tsx |
shell-chrome-or-panel | ChatLayout | aligned — uses Astryx (ChatLayout) | aligned |
packages/ui/src/chat-turn.tsx |
shell-chrome-or-panel | Badge, Banner, Button, ChatMessage, ChatMessageBubble, ChatMessageMetadata, ChatSystemMessage, ChatTokenizedText, HStack, IconButton, Spinner, Thumbnail, Timestamp, Token, Tooltip | aligned — uses Astryx (Badge, Banner, Button, ChatMessage, ChatMessageBubble, ChatMessageMetadata, ChatSystemMessage, ChatTokenizedText) | aligned |
packages/ui/src/chat-view.tsx |
shell-chrome-or-panel | Button, ButtonGroup, ChatMessageList, EmptyState, HStack, Spinner, Text | aligned — uses Astryx (Button, ButtonGroup, ChatMessageList, EmptyState, HStack, Spinner, Text) | aligned |
packages/ui/src/client-capability-prompt.tsx |
ui-composition | Button | aligned — uses Astryx (Button) | aligned |
packages/ui/src/components.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/composer-message-queue.tsx |
shell-chrome-or-panel | Button, IconButton, List, ListItem | raw <textarea (API Use-the-System) |
polish |
packages/ui/src/composer.tsx |
shell-chrome-or-panel | Button, ChatComposer, ChatComposerDrawer, ChatComposerInput, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuDivider, DropdownMenuItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, IconButton, Lightbox, Token, Tooltip | aligned — uses Astryx (Button, ChatComposer, ChatComposerDrawer, ChatComposerInput, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuDivider, DropdownMenuItem) | aligned |
packages/ui/src/daily-review-panel.tsx |
module-hub | Banner, Button, Divider, EmptyState, HStack, Heading, List, ListItem, SegmentedControl, SegmentedControlItem, Skeleton, StackItem, Text, Toolbar, VStack | aligned — uses Astryx (Banner, Button, Divider, EmptyState, HStack, Heading, List, ListItem) | aligned |
packages/ui/src/directory-reference-chip.tsx |
ui-composition | Token, Tooltip | aligned — uses Astryx (Token, Tooltip) | aligned |
packages/ui/src/icons.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/inline-reference.tsx |
ui-composition | ChatTokenizedText | aligned — uses Astryx (ChatTokenizedText) | aligned |
packages/ui/src/inline-rename-input.tsx |
ui-composition | TextInput | aligned — uses Astryx (TextInput) | aligned |
packages/ui/src/locale-context.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/maka-wordmark.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/markdown-body.tsx |
ui-composition | CodeBlock, Link, Markdown | aligned — uses Astryx (CodeBlock, Link, Markdown) | aligned |
packages/ui/src/markdown-math.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/markdown.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/mermaid-diagram.tsx |
ui-composition | Button, CodeBlock, Collapsible, Dialog, IconButton, Toolbar | aligned — uses Astryx (Button, CodeBlock, Collapsible, Dialog, IconButton, Toolbar) | aligned |
packages/ui/src/model-picker.tsx |
ui-composition | Selector, SelectorOption | aligned — uses Astryx (Selector, SelectorOption) | aligned |
packages/ui/src/module-hub-selector.tsx |
ui-composition | Tab, TabList | aligned — uses Astryx (Tab, TabList) | aligned |
packages/ui/src/module-pages.tsx |
ui-composition | EmptyState, Spinner | aligned — uses Astryx (EmptyState, Spinner) | aligned |
packages/ui/src/permission-mode-menu.tsx |
ui-composition | DropdownMenu, DropdownMenuRadioGroup, DropdownMenuRadioItem, Selector, SelectorOption | aligned — uses Astryx (DropdownMenu, DropdownMenuRadioGroup, DropdownMenuRadioItem, Selector, SelectorOption) | aligned |
packages/ui/src/primitives/chat.tsx |
primitive | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/primitives/module-page.tsx |
primitive | Dialog, DialogHeader, HStack, Heading, Layout, LayoutContent, LayoutHeader, LayoutPanel, ResizeHandle, StackItem, Text, VStack | aligned — uses Astryx (Dialog, DialogHeader, HStack, Heading, Layout, LayoutContent, LayoutHeader, LayoutPanel) | aligned |
packages/ui/src/primitives/page-header.tsx |
primitive | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/primitives/stat-tile.tsx |
primitive | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/prompt-anchor-rail.tsx |
ui-composition | Button, HoverCard | aligned — uses Astryx (Button, HoverCard) | aligned |
packages/ui/src/quote-ref-chip.tsx |
ui-composition | Button, IconButton | aligned — uses Astryx (Button, IconButton) | aligned |
packages/ui/src/relative-time.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/sandbox-boundary-prompt.tsx |
ui-composition | Button | aligned — uses Astryx (Button) | aligned |
packages/ui/src/scheduled-task-form-dialog.tsx |
module-hub | Button, DateTimeInput, Dialog, DialogHeader, DropdownMenu, DropdownMenuItem, FormLayout, HStack, Layout, LayoutContent, LayoutFooter, Selector, Text, TextArea, TextInput | aligned — uses Astryx (Button, DateTimeInput, Dialog, DialogHeader, DropdownMenu, DropdownMenuItem, FormLayout, HStack) | aligned |
packages/ui/src/scheduled-task-inspector.tsx |
module-hub | Button, Divider, HStack, Heading, List, ListItem, MetadataList, MetadataListItem, StackItem, StatusDot, Switch, Text, VStack | aligned — uses Astryx (Button, Divider, HStack, Heading, List, ListItem, MetadataList, MetadataListItem) | aligned |
packages/ui/src/scheduled-task-panel.tsx |
module-hub | Button, Divider, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuItem, EmptyState, List, ListItem, SegmentedControl, SegmentedControlItem, Selector, StatusDot, Text, TextInput, Toolbar | aligned — uses Astryx (Button, Divider, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuItem, EmptyState, List, ListItem) | aligned |
packages/ui/src/search-modal.tsx |
dialog-overlay | CommandPalette, CommandPaletteFooter, CommandPaletteInput | aligned — uses Astryx (CommandPalette, CommandPaletteFooter, CommandPaletteInput) | aligned |
packages/ui/src/session-context-layer.tsx |
shell-chrome-or-panel | BreadcrumbItem, Breadcrumbs, ButtonGroup, Icon, IconButton, LayoutHeader, MoreMenu, OverflowList, StatusDot, Text, Token, Tooltip | aligned — uses Astryx (BreadcrumbItem, Breadcrumbs, ButtonGroup, Icon, IconButton, LayoutHeader, MoreMenu, OverflowList) | aligned |
packages/ui/src/session-history-list.tsx |
shell-chrome-or-panel | Badge, CheckboxInput, MoreMenu, SideNavItem, SideNavSection, StatusDot, VStack | aligned — uses Astryx (Badge, CheckboxInput, MoreMenu, SideNavItem, SideNavSection, StatusDot, VStack) | aligned |
packages/ui/src/session-list-panel.tsx |
shell-chrome-or-panel | SegmentedControl, SegmentedControlItem, SideNav | aligned — uses Astryx (SegmentedControl, SegmentedControlItem, SideNav) | aligned |
packages/ui/src/session-rail-context.tsx |
shell-chrome-or-panel | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/session-rename-dialog.tsx |
dialog-overlay | Button, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, TextInput | aligned — uses Astryx (Button, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, TextInput) | aligned |
packages/ui/src/session-selection-bar.tsx |
shell-chrome-or-panel | Button, CheckboxInput | aligned — uses Astryx (Button, CheckboxInput) | aligned |
packages/ui/src/session-sidebar-nav.tsx |
shell-chrome-or-panel | Icon, IconButton, SideNavItem, SideNavSection, Tooltip | aligned — uses Astryx (Icon, IconButton, SideNavItem, SideNavSection, Tooltip) | aligned |
packages/ui/src/session-todo-panel.tsx |
shell-chrome-or-panel | Banner, EmptyState, IconButton, Spinner | aligned — uses Astryx (Banner, EmptyState, IconButton, Spinner) | aligned |
packages/ui/src/skill-inspector.tsx |
shell-chrome-or-panel | Button, Divider, HStack, Heading, MetadataList, MetadataListItem, StackItem, StatusDot, Switch, Text, VStack | aligned — uses Astryx (Button, Divider, HStack, Heading, MetadataList, MetadataListItem, StackItem, StatusDot) | aligned |
packages/ui/src/skills-panel.tsx |
module-hub | Button, DropdownMenu, DropdownMenuItem, EmptyState, IconButton, List, ListItem, SegmentedControl, SegmentedControlItem, Selector, StatusDot, Text, TextInput, Toolbar | aligned — uses Astryx (Button, DropdownMenu, DropdownMenuItem, EmptyState, IconButton, List, ListItem, SegmentedControl) | aligned |
packages/ui/src/styles.css |
ui-composition | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
packages/ui/src/titlebar-session-identity.tsx |
shell-chrome-or-panel | BreadcrumbItem, Breadcrumbs, Icon, IconButton, Tooltip | aligned — uses Astryx (BreadcrumbItem, Breadcrumbs, Icon, IconButton, Tooltip) | aligned |
packages/ui/src/toast.tsx |
ui-composition | AlertDialog, Button, HStack, LayerProvider, Text, VStack | aligned — uses Astryx (AlertDialog, Button, HStack, LayerProvider, Text, VStack) | aligned |
packages/ui/src/tool-activity.tsx |
ui-composition | Banner, Button, ChatToolCalls, List, ListItem, StatusDot, Text, VisuallyHidden | aligned — uses Astryx (Banner, Button, ChatToolCalls, List, ListItem, StatusDot, Text, VisuallyHidden) | aligned |
packages/ui/src/tool-activity/diff-code-preview.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/tool-activity/tool-code-block.tsx |
ui-composition | CodeBlock | aligned — uses Astryx (CodeBlock) | aligned |
packages/ui/src/tool-activity/tool-result-preview.tsx |
ui-composition | Button, Link | aligned — uses Astryx (Button, Link) | aligned |
packages/ui/src/transcript-scroll-authority.tsx |
ui-composition | ChatLayoutScrollButton | aligned — uses Astryx (ChatLayoutScrollButton) | aligned |
packages/ui/src/ui.tsx |
ui-composition | none | aligned — no raw controls; no Astryx JSX usage | aligned |
packages/ui/src/user-question-prompt.tsx |
ui-composition | Button, RadioList, RadioListItem, TextInput | aligned — uses Astryx (Button, RadioList, RadioListItem, TextInput) | aligned |
packages/ui/src/workspace-picker.tsx |
ui-composition | DropdownMenu, DropdownMenuItem | aligned — uses Astryx (DropdownMenu, DropdownMenuItem) | aligned |
Severity legend
- blocker — raw interactive control with an Astryx twin available (
button/input/select). - reimplementation — a public
@maka/uiexport shadows a shipped Astryx component (same name, not a re-export). A neutral signal for review, not proof of a semantic re-implementation. - polish — off-rhythm control heights or softer smells; not wrong primitive choice.
- aligned — no blocker smell found; Astryx usage noted when present.