@astryx
Meta's open source design system: accessible React components, hooks, examples, and page templates. Components install as re-exports of the Astryx package; examples and pages copy editable source.
Install this registry
npx shadcn@latest add https://astryx.atmeta.com/shadcn/registry.json pnpm dlx shadcn@latest add https://astryx.atmeta.com/shadcn/registry.json bunx shadcn@latest add https://astryx.atmeta.com/shadcn/registry.json curl -s https://astryx.atmeta.com/shadcn/registry.json Components
250 totalA modal dialog that asks the user to confirm a destructive action.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-alert-dialog.json AppShell is the page shell for an application. It provides slots for top navigation, side navigation, banners, and main content. Use it as the root wrapper for…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-app-shell.json Maintains a fixed width-to-height ratio for its children as its container resizes. Use it for media containers like videos, images, thumbnails, or any content …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-aspect-ratio.json Displays a user avatar with image, initials fallback, and optional status indicator.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-avatar.json Stacked avatar display with overlapping layout and optional overflow indicator. Children are Avatar elements.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-avatar-group.json Overflow indicator for AvatarGroup. Shows a compact count for hidden avatars and can render custom count text or act as a button.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-avatar-group-overflow.json Size-aware status indicator dot that reads avatar size from context and scales proportionally. Each variant pairs a colour with a distinct built-in shape (fill…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-avatar-status-dot.json Badge highlights a status or category at a glance. Use it sparingly: only when a value represents a distinct state (Active, Failed) or a grouping tag (Engineer…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-badge.json Banner shows a persistent message at the top of a page or section. Use it for form errors, system updates, maintenance notices, or success confirmations that t…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-banner.json Composable combobox engine providing a bare input, search, keyboard navigation, and a styled result dropdown. It renders no input wrapper, border, or selected-…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-base-typeahead.json A quotation block with a rule on its inline-start edge and secondary text color. Use to highlight quoted content, testimonials, or excerpts. The rule and paddi…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-blockquote.json A mobile touch surface for filters, actions, forms, and detail views that should rise from the bottom of the viewport; use BottomSheetSwitcher for multi-step f…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-bottom-sheet.json Coordinates a multi-step bottom-sheet flow, one native dialog per sheet; set activeSheet to a nested BottomSheet's sheetId to open or switch steps, and to null…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-bottom-sheet-switcher.json Individual breadcrumb item that renders as a link when href is provided, or as plain text for the current page.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-breadcrumb-item.json Navigation container that renders a <nav> with an ordered list of breadcrumb items.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-breadcrumbs.json Button triggers an action when clicked. Use it for form submissions, confirmations, navigation, or any interaction that needs a clear call to action.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-button.json Groups multiple buttons together with connected styling: shared borders, proper border-radius handling (only on outer edges), and horizontal or vertical orient…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-button-group.json Calendar lets the user pick a date or date range from a month grid. Use it in booking flows, scheduling UIs, date filters, or anywhere the user needs to see su…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-calendar.json Card is a bordered, elevated container for discrete, self-contained items: things you could reorder, remove, or interact with independently. Cards are NOT the …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-card.json Carousel scrolls a row of items horizontally when they overflow the available width. Use it for card grids, image galleries, product lists, or any set of items…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-carousel.json Center aligns content to the middle of its container. Use it for empty states, loading screens, login forms, or any content that should sit in the center of th…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-center.json Layout shell for a chat composer. Arranges named slots (drawer, header, input, footer, send) with page-radius container, elevation, a keyboard-only editor focu…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-composer.json Collapsible drawer panel that sits above the chat input inside ChatComposer. Pass it to the composer's `drawer` slot to show attachments, context chips, or any…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-composer-drawer.json Rich text input for the chat composer. Supports trigger menus (type @ or / to open a typeahead), inline tokens rendered as badges, message history recall with …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-composer-input.json Renders a single token chip outside the contentEditable input. Wraps a badge config or custom render function in the correct data-astryx-token span so the toke…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-composer-token-element.json ChatDictationButton is a toggle button that starts and stops voice dictation inside a chat composer. It pairs with useChatDictation to show a microphone icon w…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-dictation-button.json Layout shell for full chat interfaces. Messages flow in normal page flow, composer is fixed to the bottom with a frosted glass dock. Set density (compact/balan…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-layout.json Floating scroll-to-bottom button that appears when the user scrolls away from the latest messages. It fades in as a compact icon button and expands to show a l…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-layout-scroll-button.json Sender context wrapper: handles avatar, name, metadata, and alignment based on sender role.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-message.json Styled content container for the chat "bubble." Reads sender from parent ChatMessage context to auto-style the background. Use filled for standard messages and…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-message-bubble.json Presentational message container with density context and infinite scroll support. Provides role="log" with aria-live="polite" for accessibility. A flex spacer…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-message-list.json Composable metadata row for chat messages. Renders timestamp, footer content, and delivery status in a single row. Direction reverses for user sender. Omits th…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-message-metadata.json Circular send/stop toggle button for the chat composer. Place it inside ChatComposer where it reads context automatically: no wiring needed. When streaming sta…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-send-button.json Centered system message for non-sender content like date separators, membership changes, and status notices. It is not a chat bubble; it has no avatar, no alig…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-system-message.json Renders a text string with token patterns replaced by inline token content. Wrap any message body inside ChatMessageBubble to turn raw @mentions, #tags, or /co…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-tokenized-text.json ChatToolCalls displays tool or function call invocations from an LLM response. Pass an array of calls and the component handles the rest: a single call renders…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-chat-tool-calls.json The mark on a chosen option: a checkmark by default, and nothing at all when unchosen, so a listbox shows no empty box beside every row. This is the indicator …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-check-indicator.json The checkbox visual: a square box with a checkmark or an indeterminate bar. Decorative (aria-hidden); the owning control keeps the input, role, accessible name…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-checkbox-indicator.json CheckboxInput toggles a single on/off value. Use it for settings like "Enable notifications", terms acceptance, or opt-in choices. For multiple checkboxes in a…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-checkbox-input.json Checkbox group container with field integration for label, description, and status.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-checkbox-list.json Individual checkbox item with label, description, and end content slot. Works in collection mode (inside a CheckboxList with a value array) or standalone mode …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-checkbox-list-item.json Citations display inline references to external sources. Use them to attribute information within AI-generated responses, articles, or anywhere provenance and …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-citation.json An interactive card for navigation or action targets. Nested interactive elements work independently.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-clickable-card.json Code marks short inline references such as function names, variables, file paths, and command-line flags. Use CodeBlock for standalone or multi-line snippets.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-code.json Fenced code block with syntax highlighting. Use for multi-line code snippets.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-code-block.json A primitive that makes any content collapsible: a trigger button toggles visibility of the content area, managing its own state or deferring to a parent Collap…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-collapsible.json Coordinates multiple Collapsible instances so only one (single mode) or any number (multiple mode) can be open at a time. Renders no wrapper DOM element unless…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-collapsible-group.json Root component. Manages open state, search, keyboard navigation, and composition slots.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-command-palette.json Empty state display for the results area. Rendered automatically by CommandPalette for no-results and no-query states.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-command-palette-empty.json Footer with keyboard guidance. CommandPalette renders the default arrow, Enter, and Escape hints automatically.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-command-palette-footer.json Visual grouping with a heading label. Place inside CommandPaletteList.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-command-palette-group.json Search input slot. Auto-focuses on mount. Wires to command palette context when used inside CommandPalette.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-command-palette-input.json One option in a command palette result list. CommandPalette context supplies selection, highlight, identity, and close behavior.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-command-palette-item.json Scrollable results container. Renders as a listbox standalone, and inside CommandPalette while selectable results exist. Contains CommandPaletteItem and Comman…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-command-palette-list.json An input or toolbar trigger and dialog-popover shell for custom selector content.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-complex-selector.json A context menu that appears on right-click at the cursor position. Wraps trigger content as children.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-context-menu.json Menu item component for compound mode. Re-exported from DropdownMenuItem for discoverability.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-context-menu-item.json DateInput lets the user type or pick a date from a calendar popover. Use it for scheduling, deadlines, booking dates, or any form field that needs a specific c…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-date-input.json DateRangeInput lets users select a start and end date from a dual-month calendar popover. Use it for filtering data by time period, report generation, analytic…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-date-range-input.json DateTimeInput combines date and time selection in one field. With presentation="adaptive-native" (the default), mouse/trackpad devices use Astryx typed fields …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-date-time-input.json Modal dialog using the native <dialog> element. Modal and inline content starts with theme body text defaults. Ancestor surface/group membership ends as a whol…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-dialog.json Header for dialogs with a title, optional subtitle, close button, and start/end content slots.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-dialog-header.json A visual separator that divides content into distinct sections. Use to create clear boundaries between groups of related content, or to demarcate interactive r…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-divider.json A side panel that floats above page content for inspectors and detail views: the "click a table row, see its details" pattern. Unlike a docked panel it overlay…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-drawer.json Header for drawers with a title, optional subtitle, close button, and start/end content slots. Same API as DialogHeader.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-drawer-header.json Action menu with a trigger button and anchored, bottom-sheet, or adaptive presentation.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-dropdown-menu.json A checkable menu item (role="menuitemcheckbox") that toggles an independent boolean. Use for on/off options inside a DropdownMenu; for a one-of-N choice use Dr…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-dropdown-menu-checkbox-item.json A horizontal rule separating groups of rows in a compound menu. Renders role="separator", so it is never a stop in the arrow-key order. The data-driven equival…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-dropdown-menu-divider.json A group of rows in a compound menu. A visible title names role="group" through aria-labelledby; an omitted title leaves the group unnamed. The heading is not a…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-dropdown-menu-group.json One action or destination row in the pointer presentation of DropdownMenu. The parent menu owns keyboard navigation; the row owns activation, disabled state, d…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-dropdown-menu-item.json A controlled, named single-select group of DropdownMenuRadioItem children (role="group" of menuitemradio). Owns value propagation, close policy, root compositi…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-dropdown-menu-radio-group.json A single option in a DropdownMenuRadioGroup (role="menuitemradio"). Must be used inside a DropdownMenuRadioGroup.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-dropdown-menu-radio-item.json A single menu row that reveals a nested flyout of its own items. The row adopts DropdownMenuItem semantics (label / icon / description / isDisabled); its child…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-dropdown-menu-sub-menu.json EmptyState shows a placeholder when a content area has no data. Use it for empty lists, zero search results, first-time setups, or cleared inboxes. Always incl…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-empty-state.json Low-level form field wrapper for custom controls that need a label, description, and optional/required indicators.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-field.json Standalone label group for one control or a caller-labelled group, with optional supporting text, optionality indicators, icon, and tooltip.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-field-label.json FieldStatus renders validation feedback for fields and field-like controls. Use it directly for custom controls that need the same error, warning, or success p…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-field-status.json FileInput provides file upload with optional drag-and-drop support. Use it for single or multiple file selection with built-in validation for file type, size, …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-file-input.json A layout container that arranges form fields with consistent spacing and direction. FormLayout handles where fields go, not state or submission. Wrap it in a <…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-form-layout.json Grid container with fixed or responsive columns; `{minWidth, max}` reflows, a number never does.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-grid.json Grid item that spans multiple columns or rows.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-grid-span.json Horizontal stack for arranging items left-to-right. Supports polymorphic rendering.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-h-stack.json Semantic heading component that renders h1-h6 elements with themed styling, themed sizing via type scale tokens, and line-clamp truncation.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-heading.json Component wrapper for hover card display: a richer, larger overlay triggered on hover or focus.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-hover-card.json Icons are small visual symbols that represent actions, objects, or concepts. They improve scannability and reinforce meaning alongside text. Supports both dire…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-icon.json A button that shows only an icon with no visible text. Use IconButton in toolbars, table rows, and compact UI where space is tight and the icon is universally …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-icon-button.json Groups an input with prefix/suffix addons in a visually connected container with shared border and focus ring.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-input-group.json A prefix or suffix text element rendered inside InputGroup. Displays text or icons.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-input-group-text.json Wraps your app to set the active locale and (optionally) merge additional translation catalogs + per-locale overrides. Astryx components inside the subtree res…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-internationalization-provider.json A universal item primitive that unifies the "start content + label + description + end content" layout pattern. Use as a building block for list items, menu it…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-item.json Renders a keyboard shortcut as styled key badges. Use Kbd in tooltips, menus, and help text to show key combinations.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-kbd.json App-level provider for layer systems such as toast viewports and imperative modals. Nested providers pass through.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-layer-provider.json General five-slot layout primitive for arranging header, start, content, end, and footer regions.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-layout.json Scrollable main content area.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-layout-content.json Bottom bar for action bars, pagination, and status bars.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-layout-footer.json Top bar for page titles, app bars, and toolbars.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-layout-header.json Sidebar for navigation, settings, or inspector panels.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-layout-panel.json A fullscreen overlay for viewing images and videos at full resolution. Supports single-item and gallery modes with prev/next navigation, optional zoom and pan …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-lightbox.json Styled anchor link with variants, external link support, and polymorphic rendering.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-link.json Wraps your app to replace the default <a> tag with a framework-specific link component (e.g. Next.js Link) for client-side routing across all Astryx components.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-link-provider.json List container with density, dividers, and header support.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-list.json List item with label, description, start/end content slots, and interactive patterns.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-list-item.json Renders a markdown string as Astryx-styled components. Use Markdown for user-generated content, AI responses, and documentation; it handles headings, lists, ta…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-markdown.json Provides token overrides for content rendered on inverted surfaces: media overlays, scrims, toasts, and tooltips. The base behavior flips color-scheme so all l…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-media-theme.json Container for metadata items with column layout, orientation, and collapse support.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-metadata-list.json A single labeled metadata value within an MetadataList.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-metadata-list-item.json A slide-out drawer for mobile navigation. Accepts SideNav children.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-mobile-nav.json Hamburger button that opens/closes the mobile nav drawer. Reads open state from AppShell context automatically: does NOT accept isOpen or onOpenChange props. R…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-mobile-nav-toggle.json MoreMenu is a three-dot button that opens a list of actions. Use it for secondary actions that don't need to be always visible, like in table rows, card header…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-more-menu.json Multi-select dropdown with checkboxes for choosing multiple items.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-multi-selector.json Accessible menu container and items for nav heading popovers. NavHeadingMenu provides role="menu" with keyboard navigation; NavHeadingMenuItem renders individu…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-nav-heading-menu.json NavIcon is a circular icon container with an accent-colored background. Use it in navigation headers such as TopNavHeading and PageNavHeader to visually identi…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-nav-icon.json A form input for numeric values with built-in validation, min/max constraints, and step controls. Use NumberInput for quantities, measurements, percentages, an…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-number-input.json Document outline navigation with sliding indicator track. Renders a flat heading list as anchor links with a density variant and scroll-spy active state when u…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-outline.json A horizontal list that automatically hides items when they exceed the available width. Use OverflowList for breadcrumbs, toolbars, tag lists, or any row that n…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-overflow-list.json Overlay layers action or supporting content over media, cards, video, or other bounded surfaces with an optional scrim and reveal behavior.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-overlay.json Pagination lets users step through pages of content. Place it below a table, list, or card grid so users can move forward and backward through results. Pick a …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-pagination.json A click-triggered popover for displaying interactive content anchored to a trigger element.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-popover.json PowerSearch is a structured filter bar where each token represents a field, operator, and value. Use it for complex multi-dimensional filtering when users need…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-power-search.json A horizontal bar showing the completion progress of a task. Use it for operations where the duration is known, or as an animated indicator when progress can't …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-progress-bar.json The radio visual: a circle with a filled inner dot when selected. Draws in both states; an unselected radio is an empty circle, which is what lets it stand in …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-radio-indicator.json Radio group container with field integration for label, description, and status.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-radio-list.json Individual radio item with label, description, and content slots.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-radio-list-item.json Draggable separator between panels. Pill-grip design: invisible at rest, visible on hover (0.6 opacity), fully opaque during drag (1.0). Keyboard-accessible.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-resize-handle.json A WYSIWYG rich-text editor built on Lexical, styled with Astryx design tokens. Its field container shares TextArea input visuals for the resting border, hover …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-richtext-rich-text-editor.json Provides a native scroll viewport and a real observed content box. The viewport enters the tab order only while a requested logical axis is effectively scrolla…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-scrollable-area.json Section is the correct way to create page regions and group related content on a page. Use it for settings groups, form sections, sidebar areas, or any time yo…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-section.json Container wrapper providing context (value, onChange, size, isDisabled) to SegmentedControlItem children.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-segmented-control.json Individual segment item rendering as a radio button within the segmented control.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-segmented-control-item.json A card that toggles between selected and unselected states with an accent border. For navigation use ClickableCard.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-selectable-card.json Dropdown selector for choosing from a list of options.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-selector.json Helper component for custom item rendering inside an Selector renderOption prop.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-selector-option.json Container with five zones: header, topContent, children (scrollable), footer, and footerIcons. Supports collapsible and resizable modes.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-side-nav.json Toggle button for sidenav collapse. Place inside SideNav (reads context automatically) or outside it (hand the same controlled collapsible config to both). Ren…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-side-nav-collapse-button.json Product/suite/account heading with smart interaction boundary logic for links and a menu popover.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-side-nav-heading.json Navigation item with icon, selected state, optional end content, and nesting support via children.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-side-nav-item.json Section grouping with an optional title, subtitle, and end content.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-side-nav-section.json An animated shimmer placeholder that previews the shape of content while it loads. Use it to build loading screens that match the layout of the real content. F…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-skeleton.json A draggable control for selecting a numeric value or range within defined bounds. Supports single value and range selection, tick marks, custom value formattin…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-slider.json An animated loading indicator for processes with unknown duration, such as data fetching or form submission. Supports visible labels, multiple sizes, and a dar…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-spinner.json Unified stack layout component with a direction prop. Use direction="horizontal" for left-to-right flow or direction="vertical" (default) for top-to-bottom. Fo…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-stack.json Stack item for controlling individual item behavior within a stack. Supports polymorphic rendering.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-stack-item.json A small colored dot that communicates status like online/offline presence or severity levels. Supports five semantic variants and an optional pulse animation. …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-status-dot.json Individual step within a Stepper. Renders a progress-bar segment, an indicator, and a label with optional description. Progress (completed/active/not-started) …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-step.json Container component that manages step state and renders steps in horizontal or vertical orientation as an ordered list.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-stepper.json A toggle control for on/off states that take effect immediately. Supports labels, descriptions, loading states, and validation. Use it for settings or preferen…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-switch.json Applies syntax highlighting colors to CodeBlock and any code component in the subtree. By default, code components use the theme-level syntax colors (set via d…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-syntax-theme.json Individual tab item that renders as a button or an anchor link, with selected-state styling and optional icons.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-tab.json Tab strip that provides TabListContext (value, onChange, size) to Tab and TabMenu children; a nav landmark, or the WAI-ARIA tabs pattern where role="tablist" a…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-tab-list.json Overflow menu trigger that opens a dropdown of additional tab options, showing the selected option's label as the trigger text. Host attributes and DOM event h…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-tab-menu.json Styled, data-driven table with density, dividers, hover highlight, striped rows, and named plugin support. T must extend Record<string, unknown>.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-table.json <tbody> wrapper for children mode. Holds the data rows. A row must sit inside a section: <table> cannot contain a <tr> directly, because the HTML parser insert…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-table-body.json <td> wrapper that reads TableContext to apply density padding, font size, and divider borders when used inside Table.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-table-cell.json <tfoot> wrapper for children mode. Holds summary or total rows beneath the body. A row must sit inside a section: <table> cannot contain a <tr> directly, becau…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-table-footer.json <thead> wrapper for children mode. Holds the header row, whose cells are TableHeaderCell. A row must sit inside a section: <table> cannot contain a <tr> direct…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-table-header.json <th> wrapper that reads TableContext to apply density padding, semibold weight, secondary text color, and divider borders when used inside Table.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-table-header-cell.json <tr> wrapper that reads TableContext to apply striped, hover, and divider styles when used inside Table.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-table-row.json Selection-aware bulk-action surface built on Toolbar. Pass selectionState from useTableSelectionState so count, visibility, and complete clearing stay synchron…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-table-selection-toolbar.json Semantic body text component that renders text with type-based styling from the theme, with optional truncation, decoration, and layout props.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-text.json TextArea is a multi-line text input for collecting longer-form content like comments, descriptions, or messages. Use it when the expected input spans multiple …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-text-area.json TextInput collects short-form text like names, emails, or search queries. Use it for single-line values where the expected input is brief. Pair it with validat…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-text-input.json Wraps a subtree with a specific Astryx theme. For static production themes, use `astryx theme build` and import the generated CSS plus built theme object for f…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-theme.json Thumbnail displays a compact, square preview of an image attachment. It shows a shimmer effect while uploading, the image on success, and a placeholder icon wh…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-thumbnail.json TimeInput uses a browser/OS time picker on coarse pointers by default and Astryx's typed field on fine pointers. It converts values to a standard format and su…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-time-input.json Displays a standardized elapsed duration for active work without scheduling a React render on every tick. Elapsed format updates by second below one hour and b…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-timer.json Timestamp formats a date or time value into human-readable text. Use it to show when something was created, updated, or is scheduled; picking relative for rece…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-timestamp.json Toast shows a brief, non-blocking notification to confirm an action or present temporary information. Use it for scenarios where the user needs feedback but no…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-toast.json A button that toggles between pressed and unpressed states. Thin wrapper over Button with controlled toggle pattern, icon swap, and font weight emphasis.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-toggle-button.json Groups toggle buttons for exclusive (single) or multi-select behavior. Uses discriminated union on type for type-safe value/onChange.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-toggle-button-group.json Token is a small, inline element for representing discrete pieces of associated data, like tags, categories, or selections. Use it to label content, show activ…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-token.json Tokenizer is a multi-select input that lets users search, select, and manage multiple items displayed as removable chips. Use it when users need to build a set…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-tokenizer.json General-purpose toolbar container with three content slots and roving tabindex.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-toolbar.json Component wrapper for tooltip display triggered on hover or focus.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-tooltip.json Main navigation bar container with slot-based layout. Children are accepted as an alias for startContent.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-top-nav.json Product/suite/account heading for the TopNav heading slot. Supports smart interaction boundary logic: logo, heading text, superheading/subheading with independ…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-top-nav-heading.json Navigation link item for use in TopNav startContent: renders as an anchor with hover and selected states.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-top-nav-item.json Navigation item that displays a full-width mega menu panel on hover. Uses a slots API with items and featured props. TopNavMegaMenuItem renders itself in both …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-top-nav-mega-menu.json Standard featured card for the TopNavMegaMenu featured slot. Provides a consistent card with optional image, title, description, and CTA link.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-top-nav-mega-menu-featured-card.json An individual item inside an TopNavMegaMenu. Renders itself in both desktop (popover grid) and mobile drawer modes via render mode context.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-top-nav-mega-menu-item.json Navigation item that displays a hover-triggered popover menu with rich items containing an icon, title, and optional description.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-top-nav-menu.json Tree list container. Accepts items data and rendering configuration. Expansion state is managed internally.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-tree-list.json Styled typeahead with label, description, validation, and all field features. Wraps BaseTypeahead with Field for the primary use case.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-typeahead.json Default dropdown item renderer for typeahead results. Shows label with optional icon, description, and avatar. Exported for use in custom renderItem implementa…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-typeahead-item.json Vertical stack for arranging items top-to-bottom. Supports polymorphic rendering.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-v-stack.json Renders content in the accessibility tree while hiding it visually. Use for accessible names on icon-only controls, aria-live announcement regions, and supplem…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/component-visually-hidden.json Imperatively announces a message to screen readers through a visually-hidden live region. Use it for state that is only conveyed visually; search result counts…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-announce.json Hook for reading and controlling AppShell mobile navigation state from descendants of AppShell. Use it for custom mobile nav triggers, closing the drawer after…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-app-shell-mobile.json Makes a container element clickable while preserving nested interactive element behavior. Solves the "nested interactive elements" problem: when a card is clic…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-clickable-container.json Copy-to-clipboard behavior: the clipboard write, a transient isCopied flag with its own reset timer, and an optional polite screen-reader announcement. Extract…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-clipboard.json Reusable hook that encapsulates the collapsible state machine. Supports three modes: group-controlled (inside CollapsibleGroup), controlled (isOpen + onOpenCha…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-collapsible.json Returns the sanctioned locale-aware comparator for custom sorting. The collator is recreated when the provider locale or an option changes.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-collator.json Tracks the active option of a single-select combobox and handles its keys, while DOM focus stays on the control. It powers Selector and CommandPalette; use it …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-combobox.json A headless hover/focus reveal primitive. Gives a container a scoped trigger that reveals (or conceals) content inside it when the container is hovered or recei…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-container-reveal.json Fires a dev-only "Component: message" console warning once per mount while the condition holds. It is the render-safe way for a component to flag misuse: warni…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-dev-warning.json Returns a StyleX style for animating an element on mount. Only animates when the element is dynamically inserted after the initial page paint; elements rendere…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-entry-animation.json Traps focus within a container element following the WAI-ARIA dialog focus trap pattern. Listens to focus events on the document and redirects focus back into …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-focus-trap.json Manages keyboard navigation within a 2D grid following the WAI-ARIA grid pattern. Supports arrow keys for cell-to-cell navigation, Home/End for row boundaries,…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-grid-focus.json Registers global keyboard shortcuts with a single window keydown listener per hook instance. Handlers live in a ref, so re-renders never re-subscribe. Skips ev…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-hotkeys.json Headless hook for hover-triggered floating cards. Builds on useLayer with hover/focus intent detection, configurable delays, safe hover behavior, and accessibl…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-hover-card.json Detects whether an image is predominantly dark or light by sampling pixels via OffscreenCanvas. Uses APCA perceptual lightness (sRGB linearization + power curv…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-image-mode.json Hook for showing an alert dialog without managing open state. Call alert.show(options) to open and alert.hide() to close. Render alert.element in your JSX tree.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-imperative-alert-dialog.json Hook for showing a dialog without managing open state. Call dialog.show(content, options) to open and dialog.hide() to close. Render dialog.element in your JSX…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-imperative-dialog.json Draws the standard focus ring on the indicator of a control whose real input is visually hidden; a checkbox or radio focuses an opacity-0 input, so the ring ha…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-indicator-focus-ring.json Makes an input container wrapper clickable, delegating focus to the inner input/textarea when the user clicks non-interactive areas (icons, padding, status ind…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-input-container.json Builds the on-field status affordance for a bordered input and its accessibility wiring, so every input in the family behaves the same for a given status. The …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-input-status-icon.json Resolves what a polymorphic component should render as, in one place: href wins, then onClick, then an interactive trigger context supplied by a parent (Popove…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-interactive-role.json Shows an ephemeral "← → to navigate" hint anchored to the focused item the first time a roving-tabindex composite (Toolbar, TabList, SegmentedControl, etc.) re…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-keyboard-hint.json Core positioning hook for rendering overlay content using CSS Anchor Positioning and the Popover API. Use it as the foundation for custom popovers, hover cards…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-layer.json Manages keyboard navigation within a linear list following WAI-ARIA menu/listbox/toolbar patterns. Supports arrow key navigation (vertical, horizontal, or both…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-list-focus.json Reads the authoritative Astryx locale. Use it to thread the provider locale into pure formatting helpers and sibling-package APIs; do not derive a second local…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-locale.json Detects a single-finger press-and-hold and reports where it happened, so touch users can reach affordances that a pointer gets from right-click. iOS Safari nev…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-long-press.json SSR-safe media query hook that subscribes to window.matchMedia changes. Returns whether the given media query matches. Always returns false on first render for…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-media-query.json The press model of macOS and iOS menus, for any pointer: the row under the pointer when it is RELEASED is the row that acts, the highlight follows the pointer …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-menu-press.json Combines multiple object or callback refs into one stable callback ref. Use it when a component must forward a consumer ref while also attaching internal refs.…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-merged-refs.json Tracks the active option of a multi-select combobox and handles its keys, while DOM focus stays on the control. It powers MultiSelector; unlike useCombobox, to…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-multi-combobox.json Measures children rendered in a hidden container to determine how many fit in the available width without flickering. Uses ResizeObserver to react to container…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-overflow.json Headless hook for click-triggered popovers with focus trapping. Combines useLayer with useFocusTrap, auto-focus, light dismiss, Escape handling, and an optiona…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-popover.json The touch press model every Astryx pressable uses, for a local component that paints its own press. Under a finger, CSS `:active` paints on the touch itself an…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-press-feedback.json Hook for adding drag-to-resize behavior to layout regions. Supports single-region and multi-region configurations with snap points, collapsible panels, localSt…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-resizable.json Locks body scroll when active by pinning the body with position: fixed. This prevents background scrolling behind modals and dialogs, which is necessary for iO…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-scroll-lock.json Tracks scroll overflow state for a horizontally scrollable container. Returns a ref callback and state booleans that update as the user scrolls or the containe…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-scroll-overflow.json Adds canonical axis-aware scroll behavior to structure owned by the caller. An axis is effective only when its computed overflow is scroll-capable and geometry…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-scrollable-area.json Smooths bursty streamed text into a steady character-by-character reveal using requestAnimationFrame. Decouples arrival rate from display rate. Advances on wor…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-streaming-text.json Hook that returns a TablePlugin adding draggable resize handles to column header borders. Supports pointer + keyboard (WAI-ARIA window splitter) resizing, RTL,…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-column-resize.json Headless column visibility and ordering management for Table. Provides filtered columns, toggle helpers, and pre-built MultiSelector options for a column picke…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-column-settings.json Managed state hook for table filtering. Returns the current filter map and an onChange handler. Pass the result directly to useTableFiltering.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-filter-state.json Table plugin that adds inline column filters with popover or inline controls. Pairs with useTableFilterState for managed state. Supports text, select, multi-se…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-filtering.json Hook that groups a flat data array into collapsible section rows. Each distinct groupBy value becomes a full-width section-header row with a chevron toggle, th…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-grouped-rows.json Headless pagination plugin for Table. Call with a config object: `useTablePagination({ page, onPageChange, totalItems })`. Returns a TablePlugin to pass to `<T…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-pagination.json Hook that returns a TablePlugin which expands a full-width detail panel below a row, rendered by the consumer via renderExpanded(item). Adds a leading chevron …
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-row-expansion.json Hook that returns a TablePlugin which prepends a right-aligned, monospaced row-number column. Numbering follows the rendered data order (reflecting the current…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-row-index.json Hook that returns a TablePlugin which prepends a narrow column signaling per-row status. Return {status, label} for a semantic success, warning, or error: Tabl…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-row-status.json Hook that returns a TablePlugin implementing row selection with checkboxes, select-all, and aria-selected. Uses React Context for independent checkbox re-rende…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-selection.json State management companion for useTableSelection. Returns selectionConfig for the behaviour plugin plus selectionState for selection-aware UI such as TableSele…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-selection-state.json Headless multi-sort plugin for Table. Call with a config object: `useTableSortable({ sort, onSortChange })`. Returns a TablePlugin to pass to `<Table plugins={…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-sortable.json Hook that returns a TablePlugin which pins a contiguous run of columns to the start and/or end edge of the table. Pinned columns get cumulative offsets and a s…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-sticky-columns.json Headless tree plugin for Table: renders nested rows with per-level indentation and expand/collapse chevrons in the tree column (the first column by default), a…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-tree-data.json State management companion for useTableTreeData. Owns the expanded set (controlled or uncontrolled) and flattens nested data into the visible row array; collap…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-table-tree-state.json Programmatic access to theme tokens for non-CSS consumers like SVG, canvas, Vega, D3, maps, or chart libraries that need values in JavaScript instead of CSS cu…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-theme.json Hook for showing toast notifications from anywhere in your component tree. Returns a function that accepts toast options and shows the notification. Works auto…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-toast.json Headless hook for hover/focus-triggered tooltips. Builds on useLayer with hover intent, keyboard focus handling, and accessible aria-describedby linking. Use f…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-tooltip.json Returns a translator function that resolves keys against the current locale, provider overrides, and the shipped English fallback catalog. Call inside a compon…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-translator.json Manages roving-tabindex focus and the WAI-ARIA tree keyboard model. ArrowUp/ArrowDown/Home/End roam linearly over the visible treeitems (skipping disabled ones…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-tree-focus.json Adds APG type-to-focus search to a collection: printable keystrokes are buffered (resetting after a pause), and the first item whose label starts with the buff…
npx shadcn@latest add https://astryx.atmeta.com/shadcn/hook-use-typeahead.json A confirmation dialog that shows a spinner while the action runs.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/example-alert-dialog-loading.json Minimal shell with no navigation, useful for full-bleed pages, auth screens, or embedded views.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/example-app-shell-content-only.json App shell with SideNav header providing app identity, no TopNav needed.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/example-app-shell-side-nav-only.json Simple layout with TopNav and no side navigation, suitable for landing pages.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/example-app-shell-top-nav-only.json The most common layout with TopNav for app identity and SideNav for page-level navigation.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/example-app-shell-top-nav-with-side-nav.json Full layout with TopNav, SideNav, and a dismissable info banner between the nav and content.
npx shadcn@latest add https://astryx.atmeta.com/shadcn/example-app-shell-with-banner.json